diff --git a/BUILD.gn b/BUILD.gn
index 4c5a5b19..12d323d9 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -91,6 +91,7 @@
 
   if (!is_ios && !is_android && !is_chromecast && !is_fuchsia) {
     deps += [
+      ":webui_closure_compile",
       "//chrome",
       "//chrome/installer/zucchini:zucchini",
       "//chrome/installer/zucchini:zucchini_unittests",
@@ -643,7 +644,7 @@
     }
   }
 
-  if (is_mac || is_linux) {
+  if (is_mac || is_linux || is_android) {
     deps += [ "//third_party/perfetto:all" ]
   }
 
@@ -1149,13 +1150,10 @@
       "Do not use a platform name in your output directory (found \"$root_build_dir\"). http://crbug.com/548283")
 }
 
-if (!is_win || !is_clang) {
-  group("webui_closure_compile") {
-    data_deps = []
-    if (is_chromeos) {
-      data_deps +=
-          [ "//chrome/browser/resources/chromeos/login:closure_compile" ]
-    }
+group("webui_closure_compile") {
+  data_deps = []
+  if (is_chromeos) {
+    data_deps += [ "//chrome/browser/resources/chromeos/login:closure_compile" ]
   }
 }
 
diff --git a/DEPS b/DEPS
index ee1ef0a..c51c1383 100644
--- a/DEPS
+++ b/DEPS
@@ -79,11 +79,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': '3ba3fa72ae2fd4102cff22b947d124f72ce0f880',
+  'skia_revision': 'ad335bbfafbc5326c62a84342f4e3792e79df8f9',
   # 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': '030cf69a95f91d45843ea7ad2f2a1139f15ac68a',
+  'v8_revision': 'db122bdcd409894d52cccd347d202b97d0bbc9f9',
   # 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.
@@ -91,7 +91,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '0e99b7a3bc8b474cba091ef65bb53264e6384ce2',
+  'angle_revision': 'dd21ecf80a6281a1af060b9383d57b2e79ecde7d',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling build tools
   # and whatever else without interference from each other.
@@ -103,7 +103,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': '1fa1b1f771dd077b0fb4056c7b84f701ba733a8c',
+  'pdfium_revision': '4d4731c620ea1fa95c07f8855f84d28c78090119',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling openmax_dl
   # and whatever else without interference from each other.
@@ -135,7 +135,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': '0a20f3ce6c4d6802892cbaa7489cde394eaa6fac',
+  'catapult_revision': 'b1764295677303c32cf6ca296bb4e50c49f1dba6',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -563,7 +563,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' +  '08591711c32b94eb7e00e897d64124bbcfa48556',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' +  '135841c8077f13f14c6b80e32d391da84d2ee131',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78',
@@ -649,7 +649,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + 'd458ada06171a85af00367251a4ed55db7fe2018',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + '393e2664703351833948a30802e50d4ce101662a', # commit position 20628
+    Var('webrtc_git') + '/src.git' + '@' + 'db9e9d5486c40f4b78513fedc79b9b22ad3e5751', # commit position 20628
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1150,7 +1150,7 @@
     'name': 'checkout_telemetry_benchmark_deps',
     'condition': 'checkout_telemetry_dependencies',
     'pattern': '.',
-    'action': [ 'python',
+    'action': [ 'vpython',
                 'src/tools/perf/fetch_benchmark_deps.py',
                 '-f',
     ],
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
index 2b5eebd3..c986d862 100644
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
@@ -729,7 +729,6 @@
     "//content/public/common:service_names",
     "//crypto",
     "//gin",
-    "//gpu/command_buffer/client:gles2_c_lib",
     "//gpu/command_buffer/client:gles2_implementation",
     "//gpu/command_buffer/service",
     "//gpu/ipc:gl_in_process_context",
diff --git a/android_webview/browser/aw_browser_context.cc b/android_webview/browser/aw_browser_context.cc
index fa205c04..9999713 100644
--- a/android_webview/browser/aw_browser_context.cc
+++ b/android_webview/browser/aw_browser_context.cc
@@ -41,8 +41,8 @@
 #include "content/public/browser/ssl_host_state_delegate.h"
 #include "content/public/browser/storage_partition.h"
 #include "content/public/browser/web_contents.h"
-#include "net/proxy/proxy_config_service_android.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 using base::FilePath;
 using content::BrowserThread;
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
index 3d2a87bf..e6664c6 100644
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
@@ -227,7 +227,8 @@
 }
 
 void AwContentBrowserClient::RenderProcessWillLaunch(
-    content::RenderProcessHost* host) {
+    content::RenderProcessHost* host,
+    service_manager::mojom::ServiceRequest* service_request) {
   // Grant content: scheme access to the whole renderer process, since we impose
   // per-view access checks, and access is granted by default (see
   // AwSettings.mAllowContentUrlAccess).
diff --git a/android_webview/browser/aw_content_browser_client.h b/android_webview/browser/aw_content_browser_client.h
index 637141ac..dc47b33 100644
--- a/android_webview/browser/aw_content_browser_client.h
+++ b/android_webview/browser/aw_content_browser_client.h
@@ -50,7 +50,9 @@
       const content::MainFunctionParams& parameters) override;
   content::WebContentsViewDelegate* GetWebContentsViewDelegate(
       content::WebContents* web_contents) override;
-  void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
+  void RenderProcessWillLaunch(
+      content::RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) override;
   bool IsHandledURL(const GURL& url) override;
   void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
                                       int child_process_id) override;
diff --git a/android_webview/browser/aw_render_thread_context_provider.cc b/android_webview/browser/aw_render_thread_context_provider.cc
index 4e9079a..a860024 100644
--- a/android_webview/browser/aw_render_thread_context_provider.cc
+++ b/android_webview/browser/aw_render_thread_context_provider.cc
@@ -11,7 +11,6 @@
 #include "base/trace_event/trace_event.h"
 #include "components/viz/common/gpu/context_cache_controller.h"
 #include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/client/gles2_lib.h"
 #include "gpu/command_buffer/client/gles2_trace_implementation.h"
 #include "gpu/command_buffer/client/gpu_switches.h"
 #include "gpu/command_buffer/client/shared_memory_limits.h"
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc
index e955e2f..13c9a76 100644
--- a/android_webview/browser/browser_view_renderer.cc
+++ b/android_webview/browser/browser_view_renderer.cc
@@ -368,7 +368,7 @@
     {
       // Reset scroll back to the origin, will go back to the old
       // value when scroll_reset is out of scope.
-      base::AutoReset<gfx::Vector2dF> scroll_reset(&scroll_offset,
+      base::AutoReset<gfx::Vector2dF> scroll_reset(&scroll_offset_dip_,
                                                    gfx::Vector2dF());
       compositor_->DidChangeRootLayerScrollOffset(
           gfx::ScrollOffset(scroll_offset));
diff --git a/android_webview/browser/net/aw_network_delegate.cc b/android_webview/browser/net/aw_network_delegate.cc
index 7faf749..474a535e 100644
--- a/android_webview/browser/net/aw_network_delegate.cc
+++ b/android_webview/browser/net/aw_network_delegate.cc
@@ -14,9 +14,9 @@
 #include "content/public/browser/resource_request_info.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/url_request/url_request.h"
 
 using content::BrowserThread;
diff --git a/android_webview/browser/net/aw_url_request_context_getter.cc b/android_webview/browser/net/aw_url_request_context_getter.cc
index 9b17c7e..5ac58eed 100644
--- a/android_webview/browser/net/aw_url_request_context_getter.cc
+++ b/android_webview/browser/net/aw_url_request_context_getter.cc
@@ -52,7 +52,7 @@
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_util.h"
 #include "net/net_features.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/next_proto.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_config.h"
diff --git a/android_webview/browser/net/aw_url_request_context_getter_unittest.cc b/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
index 57fec56..2f314748 100644
--- a/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
+++ b/android_webview/browser/net/aw_url_request_context_getter_unittest.cc
@@ -15,8 +15,8 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/ssl_config.h"
 #include "net/ssl/ssl_config_service.h"
 #include "net/test/url_request/url_request_failed_job.h"
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
index 3debfbf..f65272f3 100644
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
@@ -94,10 +94,8 @@
           std::move(registry)));
 
 #if BUILDFLAG(ENABLE_SPELLCHECK)
-  if (!spellcheck_) {
-    spellcheck_ = std::make_unique<SpellCheck>(this);
-    thread->AddObserver(spellcheck_.get());
-  }
+  if (!spellcheck_)
+    spellcheck_ = std::make_unique<SpellCheck>(nullptr, this);
 #endif
 }
 
diff --git a/android_webview/ui/translations/aw_strings_bn.xtb b/android_webview/ui/translations/aw_strings_bn.xtb
index 338f06a..adcba60 100644
--- a/android_webview/ui/translations/aw_strings_bn.xtb
+++ b/android_webview/ui/translations/aw_strings_bn.xtb
@@ -1,7 +1,7 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="bn">
-<translation id="6106989379647458772"><ph name="PAGE" /> এ ওয়েবপৃষ্ঠাটি অস্থায়ীভাবে ডাউন হয়ে থাকতে পারে অথবা এটি হয়ত একটি নতুন ওয়েব ঠিকানায় স্থায়ীভাবে সরানো হয়েছে।</translation>
+<translation id="6106989379647458772"><ph name="PAGE" /> এ ওয়েবপৃষ্ঠাটি অস্থায়ীভাবে ডাউন হয়ে থাকতে পারে অথবা এটি হয়তো একটি নতুন ওয়েব ঠিকানায় স্থায়ীভাবে সরানো হয়েছে।</translation>
 <translation id="6312113039770857350">ওয়েবপৃষ্ঠা উপলব্ধ নয়</translation>
 <translation id="8681531050781943054"><ph name="PAGE" /> এ ওয়েবপৃষ্ঠাটি লোড করা যায়নি কারণ:</translation>
 <translation id="8882178685025065378">ওহো! <ph name="PAGE" /> পৃষ্ঠাটি দেখা ঠিক হবে কিনা তা আপনার পিতা বা মাতাকে জিজ্ঞাসা করা প্রয়োজন৷</translation>
diff --git a/ash/BUILD.gn b/ash/BUILD.gn
index acb4f9f..5700ebb 100644
--- a/ash/BUILD.gn
+++ b/ash/BUILD.gn
@@ -584,6 +584,12 @@
     "system/power/power_button_controller.h",
     "system/power/power_button_display_controller.cc",
     "system/power/power_button_display_controller.h",
+    "system/power/power_button_menu_item_view.cc",
+    "system/power/power_button_menu_item_view.h",
+    "system/power/power_button_menu_screen_view.cc",
+    "system/power/power_button_menu_screen_view.h",
+    "system/power/power_button_menu_view.cc",
+    "system/power/power_button_menu_view.h",
     "system/power/power_button_screenshot_controller.cc",
     "system/power/power_button_screenshot_controller.h",
     "system/power/power_event_observer.cc",
diff --git a/ash/app_list/app_list_presenter_delegate_unittest.cc b/ash/app_list/app_list_presenter_delegate_unittest.cc
index 35605fe..e085262 100644
--- a/ash/app_list/app_list_presenter_delegate_unittest.cc
+++ b/ash/app_list/app_list_presenter_delegate_unittest.cc
@@ -188,21 +188,21 @@
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
   EXPECT_TRUE(app_list->is_fullscreen());
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
 
   // Delete the text in the searchbox, the app list should transition to
   // fullscreen all apps.
   generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 }
 
 // Tests that the app list initializes in peeking with bottom shelf alignment
@@ -212,18 +212,18 @@
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
   EXPECT_FALSE(app_list->is_fullscreen());
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   // Enter text in the searchbox, this should transition the app list to half
   // state.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, app_list->app_list_state());
 
   // Empty the searchbox, this should transition the app list to it's previous
   // state.
   generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 }
 
 // Tests that the app list initializes in fullscreen with tablet mode active
@@ -233,21 +233,21 @@
   EnableTabletMode(true);
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
 
   // Delete the text in the searchbox, the app list should transition to
   // fullscreen all apps. generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
   generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 }
 
 // Tests that the app list state responds correctly to tablet mode being
@@ -257,28 +257,28 @@
   // TODO(newcomer): Investigate mash failures crbug.com/726838
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
   // Enable tablet mode, this should force the app list to switch to the
   // fullscreen equivalent of the current state.
   EnableTabletMode(true);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
   // Disable tablet mode, the state of the app list should not change.
   EnableTabletMode(false);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
   // Enter text in the searchbox, the app list should transition to fullscreen
   // search.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
 
   // Delete the text in the searchbox, the app list should transition to
   // fullscreen all apps. generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
   generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 }
 
 // Tests that the app list state responds correctly to tablet mode being
@@ -287,21 +287,21 @@
   // TODO(newcomer): Investigate mash failures crbug.com/726838
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   // Enter text in the search box to transition to half app list.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, app_list->app_list_state());
 
   // Enable tablet mode and force the app list to transition to the fullscreen
   // equivalent of the current state.
   EnableTabletMode(true);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
   generator.PressKey(ui::KeyboardCode::VKEY_BACK, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 }
 
 // Tests that the app list view handles drag properly in laptop mode.
@@ -309,7 +309,7 @@
   // TODO(newcomer): Investigate mash failures crbug.com/726838
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   ui::test::EventGenerator& generator = GetEventGenerator();
   // Execute a slow short upwards drag this should fail to transition the app
@@ -322,14 +322,14 @@
   generator.GestureScrollSequence(gfx::Point(0, top_of_app_list + 20),
                                   gfx::Point(0, top_of_app_list - 20),
                                   base::TimeDelta::FromMilliseconds(500), 50);
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   // Execute a long upwards drag, this should transition the app list.
   generator.GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
                                   gfx::Point(10, 10),
                                   base::TimeDelta::FromMilliseconds(100), 10);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Execute a short downward drag, this should fail to transition the app list.
   gfx::Point start(10, 10);
@@ -338,8 +338,8 @@
       start, end,
       generator.CalculateScrollDurationForFlingVelocity(start, end, 1, 100),
       100);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Execute a long and slow downward drag to switch to peeking.
   start = gfx::Point(10, 200);
@@ -348,19 +348,19 @@
       start, end,
       generator.CalculateScrollDurationForFlingVelocity(start, end, 1, 100),
       100);
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   // Transition to fullscreen.
   generator.GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
                                   gfx::Point(10, 10),
                                   base::TimeDelta::FromMilliseconds(100), 10);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Enter text to transition to |FULLSCREEN_SEARCH|.
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
 
   // Execute a short downward drag, this should fail to close the app list.
   start = gfx::Point(10, 10);
@@ -369,8 +369,8 @@
       start, end,
       generator.CalculateScrollDurationForFlingVelocity(start, end, 1, 100),
       100);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
 
   // Execute a long downward drag, this should close the app list.
   generator.GestureScrollSequence(gfx::Point(10, 10), gfx::Point(10, 900),
@@ -386,8 +386,8 @@
   EnableTabletMode(true);
   app_list_presenter_impl()->Show(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   ui::test::EventGenerator& generator = GetEventGenerator();
   // Drag down.
@@ -405,14 +405,14 @@
   EnableTabletMode(true);
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list->app_list_state());
 
   // Type in the search box to transition to |FULLSCREEN_SEARCH|.
   ui::test::EventGenerator& generator = GetEventGenerator();
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list->app_list_state());
   // Drag down, this should close the app list.
   generator.GestureScrollSequence(gfx::Point(0, 0), gfx::Point(0, 720),
                                   base::TimeDelta::FromMilliseconds(100), 10);
@@ -428,8 +428,8 @@
   ShelfLayoutManager* shelf_layout_manager =
       Shelf::ForWindow(Shell::GetRootWindowForDisplayId(GetPrimaryDisplayId()))
           ->shelf_layout_manager();
-  EXPECT_TRUE(shelf_layout_manager->GetShelfBackgroundType() ==
-              ShelfBackgroundType::SHELF_BACKGROUND_APP_LIST);
+  EXPECT_EQ(ShelfBackgroundType::SHELF_BACKGROUND_APP_LIST,
+            shelf_layout_manager->GetShelfBackgroundType());
 }
 
 // Tests that the peeking app list closes if the user taps or clicks outside
@@ -520,12 +520,12 @@
   app_list::AppListView* app_list_view = app_list_presenter_impl()->GetView();
   app_list::SearchBoxView* search_box_view = app_list_view->search_box_view();
   ui::test::EventGenerator& generator = GetEventGenerator();
-  EXPECT_EQ(app_list_view->app_list_state(),
-            app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING,
+            app_list_view->app_list_state());
 
   // Press a key, the AppListView should transition to half.
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list_view->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, app_list_view->app_list_state());
   EXPECT_TRUE(search_box_view->is_search_box_active());
 
   // Tap outside the search box, the AppListView should transition to Peeking
@@ -537,8 +537,8 @@
   } else {
     generator.GestureTapDownAndUp(GetPointOutsideSearchbox());
   }
-  EXPECT_EQ(app_list_view->app_list_state(),
-            app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING,
+            app_list_view->app_list_state());
   EXPECT_FALSE(search_box_view->is_search_box_active());
 
   // Tap outside the search box again, the AppListView should hide.
@@ -572,14 +572,14 @@
   generator.GestureScrollSequence(gfx::Point(10, top_of_app_list + 20),
                                   gfx::Point(10, 10),
                                   base::TimeDelta::FromMilliseconds(100), 10);
-  EXPECT_EQ(app_list_view->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list_view->app_list_state());
 
   // Press a key, this should activate the searchbox and transition to
   // fullscreen search.
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
-  EXPECT_EQ(app_list_view->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_SEARCH);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_SEARCH,
+            app_list_view->app_list_state());
   EXPECT_TRUE(search_box_view->is_search_box_active());
 
   // Tap outside the searchbox, this should deactivate the searchbox and the
@@ -590,8 +590,8 @@
   } else {
     generator.GestureTapDownAndUp(GetPointOutsideSearchbox());
   }
-  EXPECT_EQ(app_list_view->app_list_state(),
-            app_list::AppListViewState::FULLSCREEN_ALL_APPS);
+  EXPECT_EQ(app_list::AppListViewState::FULLSCREEN_ALL_APPS,
+            app_list_view->app_list_state());
   EXPECT_FALSE(search_box_view->is_search_box_active());
 
   // Tap outside the searchbox again, this should close the applistview.
@@ -659,8 +659,8 @@
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   ShelfLayoutManager* shelf_layout_manager =
       GetPrimaryShelf()->shelf_layout_manager();
-  EXPECT_EQ(shelf_layout_manager->GetShelfBackgroundType(),
-            SHELF_BACKGROUND_APP_LIST);
+  EXPECT_EQ(SHELF_BACKGROUND_APP_LIST,
+            shelf_layout_manager->GetShelfBackgroundType());
   app_list_presenter_impl()->DismissAndRunLoop();
 
   // Set the alignment to the side and show the app list. The background
@@ -668,8 +668,9 @@
   GetPrimaryShelf()->SetAlignment(ShelfAlignment::SHELF_ALIGNMENT_LEFT);
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   EXPECT_FALSE(GetPrimaryShelf()->IsHorizontalAlignment());
-  EXPECT_EQ(GetPrimaryShelf()->shelf_layout_manager()->GetShelfBackgroundType(),
-            SHELF_BACKGROUND_APP_LIST);
+  EXPECT_EQ(
+      SHELF_BACKGROUND_APP_LIST,
+      GetPrimaryShelf()->shelf_layout_manager()->GetShelfBackgroundType());
 }
 
 // Tests that the app list in HALF with an active search transitions to PEEKING
@@ -681,7 +682,7 @@
   // Transition to half app list by entering text.
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, app_list->app_list_state());
 
   // Click or Tap the app list view body.
   if (TestMouseEventParam()) {
@@ -691,7 +692,7 @@
   } else {
     generator.GestureTapAt(GetPointOutsideSearchbox());
   }
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, app_list->app_list_state());
 
   // Click or Tap the app list view body again.
   if (TestMouseEventParam()) {
@@ -714,7 +715,7 @@
   // Transition to half app list by entering text.
   generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
   app_list::AppListView* app_list = app_list_presenter_impl()->GetView();
-  EXPECT_EQ(app_list->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, app_list->app_list_state());
 
   // Clicking/tapping outside the bounds closes the app list.
   if (TestMouseEventParam()) {
@@ -733,25 +734,25 @@
   app_list::AppListView* view = app_list_presenter_impl()->GetView();
   ui::test::EventGenerator& generator = GetEventGenerator();
   EXPECT_FALSE(view->search_box_view()->is_search_box_active());
-  EXPECT_EQ(view->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, view->app_list_state());
 
   // Enter a whitespace query, the searchbox should activate but stay in peeking
   // mode.
   generator.PressKey(ui::VKEY_SPACE, 0);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
-  EXPECT_EQ(view->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, view->app_list_state());
 
   // Enter a non-whitespace character, the Searchbox should stay active and go
   // to HALF
   generator.PressKey(ui::VKEY_0, 0);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
-  EXPECT_EQ(view->app_list_state(), app_list::AppListViewState::HALF);
+  EXPECT_EQ(app_list::AppListViewState::HALF, view->app_list_state());
 
   // Delete the non whitespace character, the Searchbox should not deactivate
   // but go to PEEKING
   generator.PressKey(ui::VKEY_BACK, 0);
   EXPECT_TRUE(view->search_box_view()->is_search_box_active());
-  EXPECT_EQ(view->app_list_state(), app_list::AppListViewState::PEEKING);
+  EXPECT_EQ(app_list::AppListViewState::PEEKING, view->app_list_state());
 }
 
 // Tests that an unhandled tap/click in Peeking mode closes the app
@@ -759,7 +760,7 @@
 TEST_P(AppListPresenterDelegateTest, UnhandledEventOnPeeking) {
   app_list_presenter_impl()->ShowAndRunLoop(GetPrimaryDisplayId());
   app_list::AppListView* view = app_list_presenter_impl()->GetView();
-  ASSERT_EQ(view->app_list_state(), app_list::AppListViewState::PEEKING);
+  ASSERT_EQ(app_list::AppListViewState::PEEKING, view->app_list_state());
 
   // Tap or click in the empty space below the searchbox. The app list should
   // close.
@@ -894,4 +895,26 @@
   EXPECT_EQ(expected_app_list_y, view->GetBoundsInScreen().top_right().y());
 }
 
+// Tests that the AppListView is on screen on a small display.
+TEST_F(AppListPresenterDelegateTest, SearchBoxShownOnSmallDisplay) {
+  app_list_presenter_impl()->Show(GetPrimaryDisplayId());
+  ui::test::EventGenerator& generator = GetEventGenerator();
+  generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
+  app_list::AppListView* view = app_list_presenter_impl()->GetView();
+  EXPECT_EQ(app_list::AppListViewState::HALF, view->app_list_state());
+
+  // Update the display to a small scale factor after the AppList is in HALF,
+  // the AppList should still be on screen.
+  UpdateDisplay("600x400");
+  EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
+
+  // Animate to peeking.
+  generator.PressKey(ui::KeyboardCode::VKEY_DELETE, 0);
+  EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
+
+  // Animate back to Half.
+  generator.PressKey(ui::KeyboardCode::VKEY_0, 0);
+  EXPECT_LE(0, view->GetWidget()->GetNativeView()->bounds().y());
+}
+
 }  // namespace ash
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd
index 660f49e..a95a337 100644
--- a/ash/ash_strings.grd
+++ b/ash/ash_strings.grd
@@ -1225,6 +1225,11 @@
       <message name="IDS_ASH_WINDOW_CONTROL_ACCNAME_BACK" desc="The accessible name for the back button on the window frame.">
         Back button
       </message>
+
+      <!-- Power off menu  -->
+      <message name="IDS_ASH_POWER_OFF_MENU_POWER_OFF_BUTTON" desc="Text shown on power off button in power off menu.">
+        Power off
+      </message>
     </messages>
   </release>
 </grit>
diff --git a/ash/autoclick/mus/BUILD.gn b/ash/autoclick/mus/BUILD.gn
index b881bd5..9a8db0c 100644
--- a/ash/autoclick/mus/BUILD.gn
+++ b/ash/autoclick/mus/BUILD.gn
@@ -28,10 +28,6 @@
     "//ui/views",
     "//ui/views/mus:for_mojo_application",
   ]
-
-  data_deps = [
-    "//services/ui",
-  ]
 }
 
 service("accessibility_autoclick") {
diff --git a/ash/frame/caption_buttons/frame_caption_button_container_view.cc b/ash/frame/caption_buttons/frame_caption_button_container_view.cc
index 658a0d6..7f21aaf3 100644
--- a/ash/frame/caption_buttons/frame_caption_button_container_view.cc
+++ b/ash/frame/caption_buttons/frame_caption_button_container_view.cc
@@ -219,15 +219,21 @@
 
 void FrameCaptionButtonContainerView::Layout() {
   views::View::Layout();
-  if (tablet_mode_animation_->is_animating()) {
+
+  // This ensures that the first frame of the animation to show the size button
+  // pushes the minimize button into the center.
+  if (tablet_mode_animation_->is_animating())
     AnimationProgressed(tablet_mode_animation_.get());
-  }
 }
 
 const char* FrameCaptionButtonContainerView::GetClassName() const {
   return kViewClassName;
 }
 
+void FrameCaptionButtonContainerView::ChildPreferredSizeChanged(View* child) {
+  PreferredSizeChanged();
+}
+
 void FrameCaptionButtonContainerView::AnimationEnded(
     const gfx::Animation* animation) {
   // Ensure that position is calculated at least once.
diff --git a/ash/frame/caption_buttons/frame_caption_button_container_view.h b/ash/frame/caption_buttons/frame_caption_button_container_view.h
index b0e7671..86e184f9 100644
--- a/ash/frame/caption_buttons/frame_caption_button_container_view.h
+++ b/ash/frame/caption_buttons/frame_caption_button_container_view.h
@@ -98,6 +98,7 @@
   // views::View:
   void Layout() override;
   const char* GetClassName() const override;
+  void ChildPreferredSizeChanged(View* child) override;
 
   // gfx::AnimationDelegate:
   void AnimationEnded(const gfx::Animation* animation) override;
diff --git a/ash/frame/default_frame_header.cc b/ash/frame/default_frame_header.cc
index 7160a48..b810829 100644
--- a/ash/frame/default_frame_header.cc
+++ b/ash/frame/default_frame_header.cc
@@ -160,7 +160,6 @@
 
   caption_button_container_->SetUseLightImages(ShouldUseLightImages());
   UpdateSizeButtonImages();
-  caption_button_container_->Layout();
 
   gfx::Size caption_button_container_size =
       caption_button_container_->GetPreferredSize();
diff --git a/ash/frame/header_view.cc b/ash/frame/header_view.cc
index f87a661..4746309f 100644
--- a/ash/frame/header_view.cc
+++ b/ash/frame/header_view.cc
@@ -151,13 +151,12 @@
 }
 
 void HeaderView::ChildPreferredSizeChanged(views::View* child) {
-  // FrameCaptionButtonContainerView animates the visibility changes in
-  // UpdateSizeButtonVisibility(false). Due to this a new size is not available
-  // until the completion of the animation. Layout in response to the preferred
-  // size changes.
   if (child != caption_button_container_)
     return;
-  parent()->Layout();
+
+  // May be null during view initialization.
+  if (parent())
+    parent()->Layout();
 }
 
 void HeaderView::OnTabletModeStarted() {
diff --git a/ash/new_window_controller.cc b/ash/new_window_controller.cc
index 82f71fc..e9922e7a 100644
--- a/ash/new_window_controller.cc
+++ b/ash/new_window_controller.cc
@@ -22,6 +22,7 @@
   client_.Bind(std::move(client));
 }
 
+// TODO(crbug.com/755448): Remove this when the new shortcut viewer is enabled.
 void NewWindowController::ShowKeyboardOverlay() {
   // TODO(estade): implement this here rather than passing off to |client_|.
   if (client_)
@@ -58,6 +59,11 @@
     client_->RestoreTab();
 }
 
+void NewWindowController::ShowKeyboardShortcutViewer() {
+  if (client_)
+    client_->ShowKeyboardShortcutViewer();
+}
+
 void NewWindowController::ShowTaskManager() {
   if (client_)
     client_->ShowTaskManager();
diff --git a/ash/new_window_controller.h b/ash/new_window_controller.h
index 5347f0c..7d2570e4 100644
--- a/ash/new_window_controller.h
+++ b/ash/new_window_controller.h
@@ -34,6 +34,7 @@
   void OpenCrosh();
   void OpenGetHelp();
   void RestoreTab();
+  void ShowKeyboardShortcutViewer();
   void ShowTaskManager();
   void OpenFeedbackPage();
 
diff --git a/ash/public/interfaces/new_window.mojom b/ash/public/interfaces/new_window.mojom
index 8867fa1..05dc4cf 100644
--- a/ash/public/interfaces/new_window.mojom
+++ b/ash/public/interfaces/new_window.mojom
@@ -8,6 +8,8 @@
 interface NewWindowController {
   SetClient(associated NewWindowClient client);
 
+  // TODO(crbug.com/755448): Remove this when the new shortcut viewer is
+  // enabled.
   // Shows the keyboard shortcut overlay. TODO(mash): this calls the client
   // function of the same name below, but it should be implemented inside ash.
   ShowKeyboardOverlay();
@@ -34,9 +36,14 @@
   // Invoked when the user uses Shift+Ctrl+T to restore the closed tab.
   RestoreTab();
 
+  // TODO(crbug.com/755448): Remove this when the new shortcut viewer is
+  // enabled.
   // Shows the keyboard shortcut overlay.
   ShowKeyboardOverlay();
 
+  // Show the keyboard shortcut viewer.
+  ShowKeyboardShortcutViewer();
+
   // Shows the task manager window.
   ShowTaskManager();
 
diff --git a/ash/resources/vector_icons/BUILD.gn b/ash/resources/vector_icons/BUILD.gn
index b0ffd56..cba89a4 100644
--- a/ash/resources/vector_icons/BUILD.gn
+++ b/ash/resources/vector_icons/BUILD.gn
@@ -253,6 +253,8 @@
     "system_menu_volume_medium.icon",
     "system_menu_volume_mute.1x.icon",
     "system_menu_volume_mute.icon",
+    "system_power_button_menu_power_off.icon",
+    "system_power_button_menu_sign_out.icon",
     "system_tray_accessibility.1x.icon",
     "system_tray_accessibility.icon",
     "system_tray_battery_alert.1x.icon",
diff --git a/ash/resources/vector_icons/system_power_button_menu_power_off.icon b/ash/resources/vector_icons/system_power_button_menu_power_off.icon
new file mode 100644
index 0000000..100b953
--- /dev/null
+++ b/ash/resources/vector_icons/system_power_button_menu_power_off.icon
@@ -0,0 +1,27 @@
+// 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.
+
+CANVAS_DIMENSIONS, 18,
+MOVE_TO, -3, -3,
+R_H_LINE_TO, 24,
+R_V_LINE_TO, 24,
+H_LINE_TO, -3,
+CLOSE,
+MOVE_TO, 10, 0,
+H_LINE_TO, 8,
+R_V_LINE_TO, 10,
+R_H_LINE_TO, 2,
+V_LINE_TO, 0,
+CLOSE,
+R_MOVE_TO, 4.83f, 2.17f,
+R_LINE_TO, -1.42f, 1.42f,
+ARC_TO, 6.92f, 6.92f, 0, 0, 1, 16, 9,
+R_CUBIC_TO, 0, 3.87f, -3.13f, 7, -7, 7,
+ARC_TO, 7, 7, 0, 0, 1, 4.58f, 3.58f,
+LINE_TO, 3.17f, 2.17f,
+ARC_TO, 8.93f, 8.93f, 0, 0, 0, 0, 9,
+R_ARC_TO, 9, 9, 0, 0, 0, 18, 0,
+R_CUBIC_TO, 0, -2.74f, -1.23f, -5.18f, -3.17f, -6.83f,
+CLOSE,
+END
diff --git a/ash/resources/vector_icons/system_power_button_menu_sign_out.icon b/ash/resources/vector_icons/system_power_button_menu_sign_out.icon
new file mode 100644
index 0000000..a876d7e
--- /dev/null
+++ b/ash/resources/vector_icons/system_power_button_menu_sign_out.icon
@@ -0,0 +1,40 @@
+// 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.
+
+CANVAS_DIMENSIONS, 18,
+MOVE_TO, -3, -3,
+R_H_LINE_TO, 24,
+R_V_LINE_TO, 24,
+H_LINE_TO, -3,
+CLOSE,
+MOVE_TO, 7.09f, 12.59f,
+LINE_TO, 8.5f, 14,
+R_LINE_TO, 5, -5,
+R_LINE_TO, -5, -5,
+R_LINE_TO, -1.41f, 1.41f,
+LINE_TO, 9.67f, 8,
+H_LINE_TO, 0,
+R_V_LINE_TO, 2,
+R_H_LINE_TO, 9.67f,
+R_LINE_TO, -2.58f, 2.59f,
+CLOSE,
+MOVE_TO, 16, 0,
+H_LINE_TO, 2,
+R_ARC_TO, 2, 2, 0, 0, 0, -2, 2,
+R_V_LINE_TO, 4,
+R_H_LINE_TO, 2,
+V_LINE_TO, 2,
+R_H_LINE_TO, 14,
+R_V_LINE_TO, 14,
+H_LINE_TO, 2,
+R_V_LINE_TO, -4,
+H_LINE_TO, 0,
+R_V_LINE_TO, 4,
+R_ARC_TO, 2, 2, 0, 0, 0, 2, 2,
+R_H_LINE_TO, 14,
+R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
+V_LINE_TO, 2,
+R_CUBIC_TO, 0, -1.1f, -0.9f, -2, -2, -2,
+CLOSE,
+END
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb
index 0e506214..f1f47f9 100644
--- a/ash/strings/ash_strings_id.xtb
+++ b/ash/strings/ash_strings_id.xtb
@@ -181,7 +181,7 @@
 <translation id="5600837773213129531">Tekan Ctrl + Alt + Z untuk menonaktifkan masukan lisan.</translation>
 <translation id="5648021990716966815">Colokan mikrofon</translation>
 <translation id="5673434351075758678">Dari "<ph name="FROM_LOCALE" />" ke "<ph name="TO_LOCALE" />" setelah menyinkronkan setelan Anda.</translation>
-<translation id="5744083938413354016">Tap seret</translation>
+<translation id="5744083938413354016">Tap tarik</translation>
 <translation id="5777841717266010279">Berhenti membagikan layar?</translation>
 <translation id="57838592816432529">Bisukan</translation>
 <translation id="5832805196449965646">Tambahkan Pengguna</translation>
@@ -251,7 +251,7 @@
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">Mengembalikan ke resolusi lama dalam <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7256634071279256947">Mikrofon belakang</translation>
-<translation id="726276584504105859">Seret ke sini untuk menggunakan layar terpisah</translation>
+<translation id="726276584504105859">Tarik ke sini untuk menggunakan layar terpisah</translation>
 <translation id="7348093485538360975">Keyboard di layar</translation>
 <translation id="735745346212279324">VPN terputus</translation>
 <translation id="7377169924702866686">Caps Lock aktif.</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index c0f33da2..55e890c 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -251,7 +251,7 @@
 <translation id="7165278925115064263">Alt+Shift+K</translation>
 <translation id="7168224885072002358">חוזר לרזולוציה הקודמת בעוד <ph name="TIMEOUT_SECONDS" /></translation>
 <translation id="7256634071279256947">מיקרופון אחורי</translation>
-<translation id="726276584504105859">יש לגרור לכאן כדי להשתמש במסך מפוצל</translation>
+<translation id="726276584504105859">לשימוש במסך מפוצל יש לגרור לכאן</translation>
 <translation id="7348093485538360975">מקלדת על המסך</translation>
 <translation id="735745346212279324">‏VPN מנותק</translation>
 <translation id="7377169924702866686">‏Caps Lock מופעל.</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb
index d3f51b9..387522b9 100644
--- a/ash/strings/ash_strings_sk.xtb
+++ b/ash/strings/ash_strings_sk.xtb
@@ -150,7 +150,7 @@
 <translation id="4481530544597605423">Nespárované zariadenia</translation>
 <translation id="4508225577814909926"><ph name="NAME" />: pripája sa...</translation>
 <translation id="4527045527269911712">Zariadenie Bluetooth s názvom <ph name="DEVICE_NAME" /> žiada o povolenie párovania.</translation>
-<translation id="453661520163887813">Zostávajúci čas do úplného nabitia: <ph name="TIME" /></translation>
+<translation id="453661520163887813"><ph name="TIME" /> do úplného nabitia</translation>
 <translation id="4544944664594876241">Skratka uzamknutia obrazovky bola zmenená. Namiesto skratky <ph name="OLD_SHORTCUT" /> používajte kombináciu klávesov <ph name="NEW_SHORTCUT" />.</translation>
 <translation id="4659419629803378708">Funkcia ChromeVox je povolená</translation>
 <translation id="4776917500594043016">Heslo pre účet <ph name="USER_EMAIL_ADDRESS" /></translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb
index a1730c3..3721e5f 100644
--- a/ash/strings/ash_strings_sl.xtb
+++ b/ash/strings/ash_strings_sl.xtb
@@ -261,7 +261,7 @@
 <translation id="7526573455193969409">Omrežje je morda nadzorovano</translation>
 <translation id="7536035074519304529">Naslov IP: <ph name="ADDRESS" /></translation>
 <translation id="7561014039265304140"><ph name="DISPLAY_NAME" /> ne podpira ločljivosti <ph name="SPECIFIED_RESOLUTION" />. Spremenjena je bila na <ph name="FALLBACK_RESOLUTION" /></translation>
-<translation id="7562368315689366235">Paleta znakov »emoji«</translation>
+<translation id="7562368315689366235">Paleta emodžijev</translation>
 <translation id="7569509451529460200">Omogočena sta braillova pisava in ChromeVox</translation>
 <translation id="7593891976182323525">Iskanje ali Shift</translation>
 <translation id="7645176681409127223"><ph name="USER_NAME" /> (lastnik)</translation>
diff --git a/ash/system/audio/volume_view.cc b/ash/system/audio/volume_view.cc
index 2fc328b..6136e466 100644
--- a/ash/system/audio/volume_view.cc
+++ b/ash/system/audio/volume_view.cc
@@ -22,6 +22,7 @@
 #include "ui/gfx/paint_vector_icon.h"
 #include "ui/gfx/vector_icon_types.h"
 #include "ui/native_theme/native_theme.h"
+#include "ui/views/accessibility/view_accessibility.h"
 #include "ui/views/background.h"
 #include "ui/views/border.h"
 #include "ui/views/controls/button/button.h"
@@ -130,7 +131,7 @@
 
   slider_ = TrayPopupUtils::CreateSlider(this);
   slider_->SetValue(CrasAudioHandler::Get()->GetOutputVolumePercent() / 100.0f);
-  slider_->SetAccessibleName(
+  slider_->GetViewAccessibility().OverrideName(
       l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_VOLUME));
   tri_view_->AddView(TriView::Container::CENTER, slider_);
 
diff --git a/ash/system/bluetooth/bluetooth_power_controller.cc b/ash/system/bluetooth/bluetooth_power_controller.cc
index cd858c7..d9a13e1 100644
--- a/ash/system/bluetooth/bluetooth_power_controller.cc
+++ b/ash/system/bluetooth/bluetooth_power_controller.cc
@@ -239,12 +239,22 @@
 }
 
 void BluetoothPowerController::SetBluetoothPower(bool enabled) {
+  if (pending_bluetooth_power_target_.has_value()) {
+    // There is already a pending bluetooth power change request, so don't
+    // enqueue a new SetPowered operation but rather change the target power.
+    pending_bluetooth_power_target_ = enabled;
+    return;
+  }
+  pending_bluetooth_power_target_ = enabled;
   RunBluetoothTaskWhenAdapterReady(
       base::BindOnce(&BluetoothPowerController::SetBluetoothPowerOnAdapterReady,
-                     weak_ptr_factory_.GetWeakPtr(), enabled));
+                     weak_ptr_factory_.GetWeakPtr()));
 }
 
-void BluetoothPowerController::SetBluetoothPowerOnAdapterReady(bool enabled) {
+void BluetoothPowerController::SetBluetoothPowerOnAdapterReady() {
+  DCHECK(pending_bluetooth_power_target_.has_value());
+  bool enabled = pending_bluetooth_power_target_.value();
+  pending_bluetooth_power_target_.reset();
   // Always run the next pending task after SetPowered completes regardless
   // the error.
   bluetooth_adapter_->SetPowered(
diff --git a/ash/system/bluetooth/bluetooth_power_controller.h b/ash/system/bluetooth/bluetooth_power_controller.h
index 94d0933..abd5e02 100644
--- a/ash/system/bluetooth/bluetooth_power_controller.h
+++ b/ash/system/bluetooth/bluetooth_power_controller.h
@@ -89,7 +89,7 @@
   void SetBluetoothPower(bool enabled);
 
   // Sets the bluetooth power given the ready adapter.
-  void SetBluetoothPowerOnAdapterReady(bool enabled);
+  void SetBluetoothPowerOnAdapterReady();
 
   using BluetoothTask = base::OnceClosure;
 
@@ -145,6 +145,11 @@
   // waiting for complete callback.
   bool pending_tasks_busy_ = false;
 
+  // If not empty this indicates the pending target bluetooth power to be set.
+  // This needs to be tracked so that we can combine multiple pending power
+  // change requests.
+  base::Optional<bool> pending_bluetooth_power_target_;
+
   scoped_refptr<device::BluetoothAdapter> bluetooth_adapter_;
 
   base::WeakPtrFactory<BluetoothPowerController> weak_ptr_factory_;
diff --git a/ash/system/bluetooth/bluetooth_power_controller_unittest.cc b/ash/system/bluetooth/bluetooth_power_controller_unittest.cc
index cc398c5..ad78e1db4 100644
--- a/ash/system/bluetooth/bluetooth_power_controller_unittest.cc
+++ b/ash/system/bluetooth/bluetooth_power_controller_unittest.cc
@@ -89,6 +89,20 @@
     GetController()->ApplyBluetoothPrimaryUserPref();
   }
 
+  const base::queue<BluetoothPowerController::BluetoothTask>&
+  GetPendingBluetoothTasks() {
+    return GetController()->pending_bluetooth_tasks_;
+  }
+
+  // Pretends that the controller is busy doing bluetooth work. This is needed
+  // to test the behavior when multiple power change requests are queued when
+  // the controller is busy.
+  void SimulateControllerBusy(bool is_busy) {
+    GetController()->pending_tasks_busy_ = is_busy;
+    if (!is_busy)
+      GetController()->TriggerRunPendingBluetoothTasks();
+  }
+
   TestingPrefServiceSimple active_user_prefs_;
   TestingPrefServiceSimple local_state_prefs_;
 
@@ -160,6 +174,34 @@
   EXPECT_FALSE(GetBluetoothAdapter()->IsPowered());
 }
 
+// Tests that BluetoothPowerController listens to multiple active user pref
+// changes and applies the changes to bluetooth device. The queued multiple
+// power change tasks shouldn't be executed all but rather only the last request
+// is executed.
+TEST_F(BluetoothPowerControllerTest, ListensPrefChangesLongQueue) {
+  AddUserSessionAndStartWatchingPrefsChanges(kUser1Email);
+
+  // Makes sure we start with bluetooth power off.
+  EXPECT_FALSE(GetBluetoothAdapter()->IsPowered());
+  EXPECT_FALSE(
+      active_user_prefs_.GetBoolean(prefs::kUserBluetoothAdapterEnabled));
+
+  // Multiple power change requests come in when the controller is busy.
+  SimulateControllerBusy(true);
+  active_user_prefs_.SetBoolean(prefs::kUserBluetoothAdapterEnabled, true);
+  active_user_prefs_.SetBoolean(prefs::kUserBluetoothAdapterEnabled, false);
+  active_user_prefs_.SetBoolean(prefs::kUserBluetoothAdapterEnabled, true);
+  active_user_prefs_.SetBoolean(prefs::kUserBluetoothAdapterEnabled, false);
+  active_user_prefs_.SetBoolean(prefs::kUserBluetoothAdapterEnabled, true);
+
+  // The controller should execute only the last request.
+  EXPECT_EQ(1u, GetPendingBluetoothTasks().size());
+  // Flush the queue to be executed.
+  SimulateControllerBusy(false);
+  // The power state should represent the last request in the queue.
+  EXPECT_TRUE(GetBluetoothAdapter()->IsPowered());
+}
+
 // Tests how BluetoothPowerController applies the local state pref when
 // the pref hasn't been set before.
 TEST_F(BluetoothPowerControllerTest, ApplyBluetoothLocalStatePrefDefault) {
diff --git a/ash/system/brightness/tray_brightness.cc b/ash/system/brightness/tray_brightness.cc
index f13da16..d70a303 100644
--- a/ash/system/brightness/tray_brightness.cc
+++ b/ash/system/brightness/tray_brightness.cc
@@ -25,6 +25,7 @@
 #include "ui/display/display.h"
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/accessibility/view_accessibility.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
 #include "ui/views/controls/slider.h"
@@ -107,7 +108,7 @@
 
   slider_ = TrayPopupUtils::CreateSlider(this);
   slider_->SetValue(static_cast<float>(initial_percent / 100.0));
-  slider_->SetAccessibleName(
+  slider_->GetViewAccessibility().OverrideName(
       rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_BRIGHTNESS));
   tri_view->AddView(TriView::Container::CENTER, slider_);
 
diff --git a/ash/system/display_scale/scale_view.cc b/ash/system/display_scale/scale_view.cc
index 2496810..155002f6 100644
--- a/ash/system/display_scale/scale_view.cc
+++ b/ash/system/display_scale/scale_view.cc
@@ -20,6 +20,7 @@
 #include "ui/display/display.h"
 #include "ui/display/manager/display_manager.h"
 #include "ui/native_theme/native_theme.h"
+#include "ui/views/accessibility/view_accessibility.h"
 #include "ui/views/background.h"
 #include "ui/views/border.h"
 #include "ui/views/controls/image_view.h"
@@ -46,7 +47,7 @@
 
   slider_ = TrayPopupUtils::CreateSlider(this);
   slider_->SetValue((display::Display::GetForcedDeviceScaleFactor() - 1.f) / 2);
-  slider_->SetAccessibleName(
+  slider_->GetViewAccessibility().OverrideName(
       l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_SCALE_SLIDER));
   tri_view_->AddView(TriView::Container::CENTER, slider_);
 
diff --git a/ash/system/keyboard_brightness/tray_keyboard_brightness.cc b/ash/system/keyboard_brightness/tray_keyboard_brightness.cc
index 992deba..ebf5992 100644
--- a/ash/system/keyboard_brightness/tray_keyboard_brightness.cc
+++ b/ash/system/keyboard_brightness/tray_keyboard_brightness.cc
@@ -24,6 +24,7 @@
 #include "ui/display/display.h"
 #include "ui/gfx/image/image.h"
 #include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/accessibility/view_accessibility.h"
 #include "ui/views/border.h"
 #include "ui/views/controls/image_view.h"
 #include "ui/views/controls/label.h"
@@ -92,7 +93,7 @@
   slider_->SetBorder(views::CreateEmptyBorder(
       gfx::Insets(0, kTrayPopupSliderHorizontalPadding)));
   slider_->SetValue(static_cast<float>(initial_percent / 100.0));
-  slider_->SetAccessibleName(
+  slider_->GetViewAccessibility().OverrideName(
       rb.GetLocalizedString(IDS_ASH_STATUS_TRAY_KEYBOARD_BRIGHTNESS));
   tri_view->AddView(TriView::Container::CENTER, slider_);
   tri_view->SetContainerVisible(TriView::Container::END, false);
diff --git a/ash/system/power/power_button_controller.cc b/ash/system/power/power_button_controller.cc
index 91e3299..bb624e6f 100644
--- a/ash/system/power/power_button_controller.cc
+++ b/ash/system/power/power_button_controller.cc
@@ -17,6 +17,7 @@
 #include "ash/system/power/tablet_power_button_controller.h"
 #include "ash/wm/lock_state_controller.h"
 #include "ash/wm/session_state_animator.h"
+#include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/command_line.h"
 #include "base/time/default_tick_clock.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -198,8 +199,12 @@
     return;
   }
 
-  // Handle tablet power button behavior.
-  if (button_type_ == ButtonType::NORMAL && tablet_controller_) {
+  // Handle tablet power button behavior. Should show power button menu only if
+  // |show_power_button_menu_| is true and the device is in tablet mode.
+  if (button_type_ == ButtonType::NORMAL && tablet_controller_ &&
+      (!show_power_button_menu_ || Shell::Get()
+                                       ->tablet_mode_controller()
+                                       ->IsTabletModeWindowManagerEnabled())) {
     tablet_controller_->OnPowerButtonEvent(down, timestamp);
     return;
   }
@@ -217,7 +222,8 @@
     return;
   if (!force_clamshell_power_button_ && !tablet_controller_) {
     tablet_controller_ = std::make_unique<TabletPowerButtonController>(
-        display_controller_.get(), show_power_button_menu_, tick_clock_.get());
+        display_controller_.get(), backlights_forced_off_setter_,
+        show_power_button_menu_, tick_clock_.get());
   }
 
   if (!screenshot_controller_) {
diff --git a/ash/system/power/power_button_menu_item_view.cc b/ash/system/power/power_button_menu_item_view.cc
new file mode 100644
index 0000000..8a772a7e
--- /dev/null
+++ b/ash/system/power/power_button_menu_item_view.cc
@@ -0,0 +1,85 @@
+// 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 "ash/system/power/power_button_menu_item_view.h"
+
+#include "ui/base/resource/resource_bundle.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/color_palette.h"
+#include "ui/gfx/font.h"
+#include "ui/gfx/paint_vector_icon.h"
+#include "ui/views/controls/image_view.h"
+#include "ui/views/controls/label.h"
+
+namespace ash {
+
+namespace {
+
+// Color of the title of the label.
+constexpr SkColor kItemTitleColor = SkColorSetARGBMacro(0xFF, 0x5F, 0x63, 0x68);
+
+// Font size of the title should be 14p. The default font size is 12p and
+// MediumFont is 15p. We use MediumFont for the title plus the delta here.
+constexpr int kTitleFontSizeDelta = -1;
+
+// Size of the image icon in pixels.
+constexpr int kIconSize = 24;
+
+// Top padding of the image icon to the top of the item view.
+constexpr int kIconTopPadding = 16;
+
+// Top padding of the label of title to the top of the item view.
+constexpr int kTitleTopPadding = 50;
+
+}  // namespace
+
+PowerButtonMenuItemView::PowerButtonMenuItemView(
+    views::ButtonListener* listener,
+    const gfx::VectorIcon& icon,
+    const base::string16& title_text)
+    : views::ImageButton(listener),
+      icon_view_(new views::ImageView),
+      title_(new views::Label) {
+  SetPaintToLayer();
+  icon_view_->SetImage(gfx::CreateVectorIcon(icon, gfx::kChromeIconGrey));
+  AddChildView(icon_view_);
+
+  title_->SetBackgroundColor(SK_ColorTRANSPARENT);
+  title_->SetAutoColorReadabilityEnabled(false);
+
+  title_->SetFontList(ui::ResourceBundle::GetSharedInstance()
+                          .GetFontList(ui::ResourceBundle::MediumFont)
+                          .DeriveWithSizeDelta(kTitleFontSizeDelta));
+  title_->SetEnabledColor(kItemTitleColor);
+  title_->SetText(title_text);
+  AddChildView(title_);
+}
+
+PowerButtonMenuItemView::~PowerButtonMenuItemView() = default;
+
+void PowerButtonMenuItemView::Layout() {
+  const gfx::Rect rect(GetContentsBounds());
+
+  gfx::Rect icon_rect(rect);
+  icon_rect.ClampToCenteredSize(gfx::Size(kIconSize, kIconSize));
+  icon_rect.set_y(kIconTopPadding);
+  icon_view_->SetBoundsRect(icon_rect);
+
+  gfx::Rect title_rect(rect);
+  title_rect.ClampToCenteredSize(
+      gfx::Size(kMenuItemWidth, title_->font_list().GetHeight()));
+  title_rect.set_y(kTitleTopPadding);
+  title_->SetBoundsRect(title_rect);
+}
+
+gfx::Size PowerButtonMenuItemView::CalculatePreferredSize() const {
+  return gfx::Size(kMenuItemWidth, kMenuItemHeight);
+}
+
+void PowerButtonMenuItemView::PaintButtonContents(gfx::Canvas* canvas) {
+  views::View::OnPaint(canvas);
+  canvas->DrawColor(SK_ColorWHITE);
+}
+
+}  // namespace ash
diff --git a/ash/system/power/power_button_menu_item_view.h b/ash/system/power/power_button_menu_item_view.h
new file mode 100644
index 0000000..ed348e34
--- /dev/null
+++ b/ash/system/power/power_button_menu_item_view.h
@@ -0,0 +1,55 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SYSTEM_POWER_BUTTON_MENU_ITEM_VIEW_H_
+#define ASH_SYSTEM_POWER_BUTTON_MENU_ITEM_VIEW_H_
+
+#include "ash/ash_export.h"
+#include "base/macros.h"
+#include "base/strings/string16.h"
+#include "ui/views/controls/button/image_button.h"
+
+namespace views {
+class ImageView;
+class Label;
+}  // namespace views
+
+namespace gfx {
+struct VectorIcon;
+}  // namespace gfx
+
+namespace ash {
+
+// PowerButtonMenuItemView represents an item of the power button menu. It
+// includes an icon and title.
+class ASH_EXPORT PowerButtonMenuItemView : public views::ImageButton {
+ public:
+  // Height of the menu item in pixels.
+  static constexpr int kMenuItemHeight = 96;
+  // Width of the menu item in pixels.
+  static constexpr int kMenuItemWidth = 96;
+
+  PowerButtonMenuItemView(views::ButtonListener* listener,
+                          const gfx::VectorIcon& icon,
+                          const base::string16& title_text);
+  ~PowerButtonMenuItemView() override;
+
+ private:
+  // views::View:
+  void Layout() override;
+  gfx::Size CalculatePreferredSize() const override;
+
+  // views::ImageButton:
+  void PaintButtonContents(gfx::Canvas* canvas) override;
+
+  // Owned by views hierarchy.
+  views::ImageView* icon_view_ = nullptr;
+  views::Label* title_ = nullptr;
+
+  DISALLOW_COPY_AND_ASSIGN(PowerButtonMenuItemView);
+};
+
+}  // namespace ash
+
+#endif  // ASH_SYSTEM_POWER_BUTTON_MENU_ITEM_VIEW_H_
diff --git a/ash/system/power/power_button_menu_screen_view.cc b/ash/system/power/power_button_menu_screen_view.cc
new file mode 100644
index 0000000..4e0fb63
--- /dev/null
+++ b/ash/system/power/power_button_menu_screen_view.cc
@@ -0,0 +1,114 @@
+// 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 "ash/system/power/power_button_menu_screen_view.h"
+
+#include "ash/system/power/power_button_menu_view.h"
+#include "ash/system/power/tablet_power_button_controller.h"
+#include "ui/compositor/layer.h"
+#include "ui/compositor/layer_animation_observer.h"
+#include "ui/compositor/scoped_layer_animation_settings.h"
+#include "ui/display/display.h"
+#include "ui/display/screen.h"
+#include "ui/views/widget/widget.h"
+
+namespace ash {
+
+namespace {
+
+// Color of the fullscreen background shield.
+constexpr SkColor kShieldColor = SkColorSetARGBMacro(0xFF, 0x00, 0x00, 0x00);
+
+// Opacity of the power button menu fullscreen background shield.
+constexpr float kPowerButtonMenuOpacity = 0.6f;
+
+}  // namespace
+
+class PowerButtonMenuScreenView::PowerButtonMenuBackgroundView
+    : public views::View,
+      public ui::ImplicitAnimationObserver {
+ public:
+  explicit PowerButtonMenuBackgroundView(
+      TabletPowerButtonController* controller)
+      : controller_(controller) {
+    DCHECK(controller_);
+    SetPaintToLayer(ui::LAYER_SOLID_COLOR);
+    layer()->SetColor(kShieldColor);
+  }
+
+  ~PowerButtonMenuBackgroundView() override = default;
+
+  void OnImplicitAnimationsCompleted() override {
+    if (layer()->opacity() == 0.f) {
+      SetVisible(false);
+      controller_->DismissMenu();
+    }
+  }
+
+  void ScheduleShowHideAnimation(bool show) {
+    layer()->GetAnimator()->StopAnimating();
+    layer()->SetOpacity(show ? 0.f : kPowerButtonMenuOpacity);
+
+    ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
+    animation.AddObserver(this);
+    animation.SetTweenType(show ? gfx::Tween::EASE_IN_2
+                                : gfx::Tween::FAST_OUT_LINEAR_IN);
+    animation.SetTransitionDuration(base::TimeDelta::FromMilliseconds(
+        PowerButtonMenuView::kAnimationTimeoutMs));
+
+    layer()->SetOpacity(show ? kPowerButtonMenuOpacity : 0.f);
+  }
+
+ private:
+  TabletPowerButtonController* controller_ = nullptr;  // Not owned.
+
+  DISALLOW_COPY_AND_ASSIGN(PowerButtonMenuBackgroundView);
+};
+
+PowerButtonMenuScreenView::PowerButtonMenuScreenView(
+    TabletPowerButtonController* controller) {
+  power_button_screen_background_shield_ =
+      new PowerButtonMenuBackgroundView(controller);
+  AddChildView(power_button_screen_background_shield_);
+
+  power_button_menu_view_ = new PowerButtonMenuView();
+  AddChildView(power_button_menu_view_);
+
+  display::Screen::GetScreen()->AddObserver(this);
+}
+
+PowerButtonMenuScreenView::~PowerButtonMenuScreenView() {
+  display::Screen::GetScreen()->RemoveObserver(this);
+}
+
+void PowerButtonMenuScreenView::ScheduleShowHideAnimation(bool show) {
+  power_button_screen_background_shield_->ScheduleShowHideAnimation(show);
+  power_button_menu_view_->ScheduleShowHideAnimation(show);
+}
+
+void PowerButtonMenuScreenView::Layout() {
+  const gfx::Rect contents_bounds = GetContentsBounds();
+  power_button_screen_background_shield_->SetBoundsRect(contents_bounds);
+
+  // TODO(minch): Get the menu bounds according to the power button position.
+  gfx::Rect menu_bounds = contents_bounds;
+  menu_bounds.ClampToCenteredSize(power_button_menu_view_->GetPreferredSize());
+  menu_bounds.set_y(menu_bounds.y() - PowerButtonMenuView::kMenuViewTopPadding);
+  power_button_menu_view_->SetBoundsRect(menu_bounds);
+}
+
+void PowerButtonMenuScreenView::OnGestureEvent(ui::GestureEvent* event) {
+  // Dismisses the menu if tap anywhere on the background shield.
+  if (event->type() == ui::ET_GESTURE_TAP_DOWN)
+    ScheduleShowHideAnimation(false);
+}
+
+void PowerButtonMenuScreenView::OnDisplayMetricsChanged(
+    const display::Display& display,
+    uint32_t changed_metrics) {
+  GetWidget()->SetBounds(
+      display::Screen::GetScreen()->GetPrimaryDisplay().bounds());
+}
+
+}  // namespace ash
diff --git a/ash/system/power/power_button_menu_screen_view.h b/ash/system/power/power_button_menu_screen_view.h
new file mode 100644
index 0000000..bd5a0ee
--- /dev/null
+++ b/ash/system/power/power_button_menu_screen_view.h
@@ -0,0 +1,56 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SYSTEM_POWER_POWER_BUTTON_MENU_SCREEN_VIEW_H_
+#define ASH_SYSTEM_POWER_POWER_BUTTON_MENU_SCREEN_VIEW_H_
+
+#include "ash/ash_export.h"
+#include "base/macros.h"
+#include "ui/display/display_observer.h"
+#include "ui/views/view.h"
+
+namespace ash {
+class PowerButtonMenuView;
+class TabletPowerButtonController;
+
+// PowerButtonMenuScreenView is the top-level view of power button menu UI. It
+// creates a PowerButtonMenuBackgroundView to display the fullscreen background
+// and a PowerButtonMenuView to display the menu.
+class ASH_EXPORT PowerButtonMenuScreenView : public views::View,
+                                             public display::DisplayObserver {
+ public:
+  explicit PowerButtonMenuScreenView(TabletPowerButtonController* controller);
+  ~PowerButtonMenuScreenView() override;
+
+  PowerButtonMenuView* power_button_menu_view() const {
+    return power_button_menu_view_;
+  }
+
+  // Schedules an animation to show or hide the view.
+  void ScheduleShowHideAnimation(bool show);
+
+ private:
+  class PowerButtonMenuBackgroundView;
+
+  // views::View:
+  void Layout() override;
+
+  // ui::EventHandler:
+  void OnGestureEvent(ui::GestureEvent* event) override;
+
+  // display::DisplayObserver:
+  void OnDisplayMetricsChanged(const display::Display& display,
+                               uint32_t changed_metrics) override;
+
+  // Created by PowerButtonMenuScreenView. Owned by views hierarchy.
+  PowerButtonMenuView* power_button_menu_view_ = nullptr;
+  PowerButtonMenuBackgroundView* power_button_screen_background_shield_ =
+      nullptr;
+
+  DISALLOW_COPY_AND_ASSIGN(PowerButtonMenuScreenView);
+};
+
+}  // namespace ash
+
+#endif  // ASH_SYSTEM_POWER_POWER_BUTTON_MENU_SCREEN_VIEW_H_
diff --git a/ash/system/power/power_button_menu_view.cc b/ash/system/power/power_button_menu_view.cc
new file mode 100644
index 0000000..8627d73
--- /dev/null
+++ b/ash/system/power/power_button_menu_view.cc
@@ -0,0 +1,146 @@
+// 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 "ash/system/power/power_button_menu_view.h"
+
+#include "ash/resources/vector_icons/vector_icons.h"
+#include "ash/session/session_controller.h"
+#include "ash/shell.h"
+#include "ash/strings/grit/ash_strings.h"
+#include "ash/system/power/power_button_menu_item_view.h"
+#include "ash/system/user/login_status.h"
+#include "ash/wm/lock_state_controller.h"
+#include "ui/base/l10n/l10n_util.h"
+#include "ui/compositor/scoped_layer_animation_settings.h"
+#include "ui/gfx/canvas.h"
+
+namespace ash {
+
+namespace {
+
+// Horizontal and vertical padding of the menu item view.
+constexpr int kMenuItemHorizontalPadding = 16;
+constexpr int kMenuItemVerticalPadding = 16;
+
+// The amount of rounding applied to the corners of the menu view.
+constexpr int kMenuViewRoundRectRadiusDp = 16;
+
+}  // namespace
+
+PowerButtonMenuView::PowerButtonMenuView() {
+  SetPaintToLayer();
+  layer()->SetFillsBoundsOpaquely(false);
+
+  CreateItems();
+}
+
+PowerButtonMenuView::~PowerButtonMenuView() = default;
+
+void PowerButtonMenuView::ScheduleShowHideAnimation(bool show) {
+  // Stop any previous animation.
+  layer()->GetAnimator()->StopAnimating();
+
+  // Set initial state.
+  SetVisible(true);
+  layer()->SetOpacity(show ? 0.f : 1.0f);
+
+  ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
+  animation.AddObserver(this);
+  animation.SetTweenType(show ? gfx::Tween::EASE_IN
+                              : gfx::Tween::FAST_OUT_LINEAR_IN);
+  animation.SetTransitionDuration(
+      base::TimeDelta::FromMilliseconds(kAnimationTimeoutMs));
+
+  layer()->SetOpacity(show ? 1.0f : 0.f);
+
+  // Animation of the menu view bounds change.
+  if (show) {
+    gfx::Transform transform;
+    transform.Translate(0, kMenuViewTopPadding);
+    layer()->SetTransform(transform);
+  } else {
+    layer()->SetTransform(gfx::Transform());
+  }
+}
+
+void PowerButtonMenuView::CreateItems() {
+  power_off_item_ = new PowerButtonMenuItemView(
+      this, kSystemPowerButtonMenuPowerOffIcon,
+      l10n_util::GetStringUTF16(IDS_ASH_POWER_OFF_MENU_POWER_OFF_BUTTON));
+  AddChildView(power_off_item_);
+
+  const LoginStatus login_status =
+      Shell::Get()->session_controller()->login_status();
+  if (login_status != LoginStatus::NOT_LOGGED_IN) {
+    sign_out_item_ = new PowerButtonMenuItemView(
+        this, kSystemPowerButtonMenuSignOutIcon,
+        user::GetLocalizedSignOutStringForStatus(login_status, false));
+    AddChildView(sign_out_item_);
+  }
+}
+
+void PowerButtonMenuView::Layout() {
+  const gfx::Rect rect(GetContentsBounds());
+  gfx::Rect power_off_rect(rect);
+  power_off_rect.set_size(power_off_item_->GetPreferredSize());
+  power_off_rect.Offset(
+      gfx::Vector2d(kMenuItemVerticalPadding, kMenuItemHorizontalPadding));
+  power_off_item_->SetBoundsRect(power_off_rect);
+
+  if (sign_out_item_) {
+    gfx::Rect sign_out_rect(rect);
+    sign_out_rect.set_size(sign_out_item_->GetPreferredSize());
+    sign_out_rect.Offset(
+        gfx::Vector2d(kMenuItemHorizontalPadding +
+                          power_off_item_->GetPreferredSize().width(),
+                      kMenuItemVerticalPadding));
+    sign_out_item_->SetBoundsRect(sign_out_rect);
+  }
+}
+
+void PowerButtonMenuView::OnPaint(gfx::Canvas* canvas) {
+  views::View::OnPaint(canvas);
+
+  // Clip into a rounded rectangle.
+  constexpr SkScalar radius = SkIntToScalar(kMenuViewRoundRectRadiusDp);
+  constexpr SkScalar kRadius[8] = {radius, radius, radius, radius,
+                                   radius, radius, radius, radius};
+  SkPath path;
+  path.addRoundRect(gfx::RectToSkRect(gfx::Rect(size())), kRadius);
+  canvas->ClipPath(path, true);
+  canvas->DrawColor(SK_ColorWHITE);
+}
+
+gfx::Size PowerButtonMenuView::CalculatePreferredSize() const {
+  gfx::Size menu_size;
+  DCHECK(power_off_item_);
+  menu_size = gfx::Size(0, PowerButtonMenuItemView::kMenuItemHeight +
+                               2 * kMenuItemVerticalPadding);
+  menu_size.set_width(sign_out_item_
+                          ? 2 * PowerButtonMenuItemView::kMenuItemWidth +
+                                2 * kMenuItemHorizontalPadding
+                          : PowerButtonMenuItemView::kMenuItemWidth +
+                                2 * kMenuItemHorizontalPadding);
+  return menu_size;
+}
+
+void PowerButtonMenuView::ButtonPressed(views::Button* sender,
+                                        const ui::Event& event) {
+  DCHECK(sender);
+  if (sender == power_off_item_) {
+    Shell::Get()->lock_state_controller()->StartShutdownAnimation(
+        ShutdownReason::POWER_BUTTON);
+  } else if (sender == sign_out_item_) {
+    Shell::Get()->session_controller()->RequestSignOut();
+  } else {
+    NOTREACHED() << "Invalid sender";
+  }
+}
+
+void PowerButtonMenuView::OnImplicitAnimationsCompleted() {
+  if (layer()->opacity() == 0.f)
+    SetVisible(false);
+}
+
+}  // namespace ash
diff --git a/ash/system/power/power_button_menu_view.h b/ash/system/power/power_button_menu_view.h
new file mode 100644
index 0000000..e8ea010
--- /dev/null
+++ b/ash/system/power/power_button_menu_view.h
@@ -0,0 +1,61 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ASH_SYSTEM_POWER_BUTTON_MENU_VIEW_H_
+#define ASH_SYSTEM_POWER_BUTTON_MENU_VIEW_H_
+
+#include "ash/ash_export.h"
+#include "base/macros.h"
+#include "ui/compositor/layer_animation_observer.h"
+#include "ui/views/controls/button/button.h"
+#include "ui/views/view.h"
+
+namespace ash {
+class PowerButtonMenuItemView;
+
+// PowerButtonMenuView displays the menu items of the power button menu. It
+// includes power off and sign out items currently.
+class ASH_EXPORT PowerButtonMenuView : public views::View,
+                                       public views::ButtonListener,
+                                       public ui::ImplicitAnimationObserver {
+ public:
+  // The duration of the animation to show or hide the power button menu view.
+  static constexpr int kAnimationTimeoutMs = 500;
+
+  // Top padding of the menu view.
+  static constexpr int kMenuViewTopPadding = 16;
+
+  PowerButtonMenuView();
+  ~PowerButtonMenuView() override;
+
+  bool sign_out_item_for_testing() const { return sign_out_item_; }
+
+  // Schedules an animation to show or hide the view.
+  void ScheduleShowHideAnimation(bool show);
+
+ private:
+  // Creates the items that in the menu.
+  void CreateItems();
+
+  // views::View:
+  void Layout() override;
+  void OnPaint(gfx::Canvas* canvas) override;
+  gfx::Size CalculatePreferredSize() const override;
+
+  // views::ButtonListener:
+  void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+
+  // ui::ImplicitAnimationObserver:
+  void OnImplicitAnimationsCompleted() override;
+
+  // Items in the menu. Owned by views hierarchy.
+  PowerButtonMenuItemView* power_off_item_ = nullptr;
+  PowerButtonMenuItemView* sign_out_item_ = nullptr;
+
+  DISALLOW_COPY_AND_ASSIGN(PowerButtonMenuView);
+};
+
+}  // namespace ash
+
+#endif  // ASH_SYSTEM_POWER_BUTTON_MENU_VIEW_H_
diff --git a/ash/system/power/power_button_screenshot_controller_unittest.cc b/ash/system/power/power_button_screenshot_controller_unittest.cc
index 3115fbe..13f8aca 100644
--- a/ash/system/power/power_button_screenshot_controller_unittest.cc
+++ b/ash/system/power/power_button_screenshot_controller_unittest.cc
@@ -35,9 +35,11 @@
     screenshot_delegate_ = GetScreenshotDelegate();
     EnableTabletMode(true);
 
-    // Advances a long duration from initialized last resume time in
-    // TabletPowerButtonController to avoid cross interference.
-    tick_clock_->Advance(base::TimeDelta::FromMilliseconds(3000));
+    // Advance a duration longer than |kIgnorePowerButtonAfterResumeDelay| to
+    // avoid events being ignored.
+    tick_clock_->Advance(
+        TabletPowerButtonController::kIgnorePowerButtonAfterResumeDelay +
+        base::TimeDelta::FromMilliseconds(2));
   }
 
  protected:
@@ -409,4 +411,66 @@
   EXPECT_FALSE(screenshot_test_api_->ClamshellPowerButtonTimerIsRunning());
 }
 
+// Same as PowerButtonTestBase except that switches::kShowPowerButtonMenu is
+// set.
+class PowerButtonScreenshotControllerShowMenuTest
+    : public PowerButtonScreenshotControllerTest {
+ public:
+  PowerButtonScreenshotControllerShowMenuTest() {
+    set_show_power_button_menu(true);
+  }
+  ~PowerButtonScreenshotControllerShowMenuTest() override = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(PowerButtonScreenshotControllerShowMenuTest);
+};
+
+// Tests volume key pressed stops showing the power button menu.
+TEST_F(PowerButtonScreenshotControllerShowMenuTest,
+       PowerButtonPressedFirst_VolumeKeyCancelTabletPowerButton) {
+  // Tests volume down key can stop the power button menu timer.
+  PressPowerButton();
+  EXPECT_TRUE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  PressKey(ui::VKEY_VOLUME_DOWN);
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  ReleasePowerButton();
+  ReleaseKey(ui::VKEY_VOLUME_DOWN);
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+
+  // Tests volume up key can stop power button menu timer. Also tests that
+  // volume up key is not consumed.
+  PressPowerButton();
+  EXPECT_TRUE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  PressKey(ui::VKEY_VOLUME_UP);
+  EXPECT_FALSE(LastKeyConsumed());
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  ReleasePowerButton();
+  ReleaseKey(ui::VKEY_VOLUME_UP);
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+  EXPECT_FALSE(LastKeyConsumed());
+}
+
+// Tests volume key pressed first invalidates showing the power button menu.
+TEST_F(PowerButtonScreenshotControllerShowMenuTest,
+       VolumeKeyPressedFirst_InvalidateTabletPowerButton) {
+  // Tests volume down key invalidates showing the power button menu.
+  PressKey(ui::VKEY_VOLUME_DOWN);
+  PressPowerButton();
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  ReleasePowerButton();
+  ReleaseKey(ui::VKEY_VOLUME_DOWN);
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+
+  // Tests volume up key invalidates showing the power button menu. Also tests
+  // that volume up key is not consumed.
+  PressKey(ui::VKEY_VOLUME_UP);
+  PressPowerButton();
+  EXPECT_FALSE(LastKeyConsumed());
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  ReleasePowerButton();
+  ReleaseKey(ui::VKEY_VOLUME_UP);
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+  EXPECT_FALSE(LastKeyConsumed());
+}
+
 }  // namespace ash
diff --git a/ash/system/power/power_button_test_base.cc b/ash/system/power/power_button_test_base.cc
index 177512e..8d56e47 100644
--- a/ash/system/power/power_button_test_base.cc
+++ b/ash/system/power/power_button_test_base.cc
@@ -48,6 +48,10 @@
     base::CommandLine::ForCurrentProcess()->AppendSwitch(
         switches::kAshEnableTabletMode);
   }
+  if (show_power_button_menu_) {
+    base::CommandLine::ForCurrentProcess()->AppendSwitch(
+        switches::kShowPowerButtonMenu);
+  }
   AshTestBase::SetUp();
 
   lock_state_controller_ = Shell::Get()->lock_state_controller();
@@ -154,4 +158,10 @@
   Shell::Get()->tablet_mode_controller()->EnableTabletModeWindowManager(enable);
 }
 
+void PowerButtonTestBase::AdvanceClockToAvoidIgnoring() {
+  tick_clock_->Advance(
+      TabletPowerButtonController::kIgnoreRepeatedButtonUpDelay +
+      base::TimeDelta::FromMilliseconds(1));
+}
+
 }  // namespace ash
diff --git a/ash/system/power/power_button_test_base.h b/ash/system/power/power_button_test_base.h
index 08b2ec1..a2e94d2 100644
--- a/ash/system/power/power_button_test_base.h
+++ b/ash/system/power/power_button_test_base.h
@@ -103,10 +103,19 @@
   // Enables or disables tablet mode based on |enable|.
   void EnableTabletMode(bool enable);
 
+  // Advance clock to ensure the intended tablet power button display forcing
+  // off is not ignored since we will ignore the repeated power button up if
+  // they come too close.
+  void AdvanceClockToAvoidIgnoring();
+
   void set_has_tablet_mode_switch(bool has_tablet_mode_switch) {
     has_tablet_mode_switch_ = has_tablet_mode_switch;
   }
 
+  void set_show_power_button_menu(bool show_power_button_menu) {
+    show_power_button_menu_ = show_power_button_menu;
+  }
+
   // Ownership is passed on to chromeos::DBusThreadManager.
   chromeos::FakePowerManagerClient* power_manager_client_ = nullptr;
   chromeos::FakeSessionManagerClient* session_manager_client_ = nullptr;
@@ -123,6 +132,9 @@
   // Indicates whether switches::kAshEnableTabletMode is appended.
   bool has_tablet_mode_switch_ = true;
 
+  // Indicates whether switches::kShowPowerButtonMenu is appended.
+  bool show_power_button_menu_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(PowerButtonTestBase);
 };
 
diff --git a/ash/system/power/power_event_observer.cc b/ash/system/power/power_event_observer.cc
index 9261fcd..a31dd07 100644
--- a/ash/system/power/power_event_observer.cc
+++ b/ash/system/power/power_event_observer.cc
@@ -9,6 +9,7 @@
 #include "ash/shell.h"
 #include "ash/system/tray/system_tray_notifier.h"
 #include "ash/wm/lock_state_controller.h"
+#include "base/location.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_tree_host.h"
@@ -89,7 +90,7 @@
       controller->CanLockScreen()) {
     screen_lock_callback_ = chromeos::DBusThreadManager::Get()
                                 ->GetPowerManagerClient()
-                                ->GetSuspendReadinessCallback();
+                                ->GetSuspendReadinessCallback(FROM_HERE);
     VLOG(1) << "Requesting screen lock from PowerEventObserver";
     // TODO(warx): once crbug.com/748732 is fixed, we probably can treat
     // auto-screen-lock pref set and not set cases as the same. Also remove
@@ -105,7 +106,7 @@
     // is a memory leak in the GPU and weird artifacts on the screen.
     screen_lock_callback_ = chromeos::DBusThreadManager::Get()
                                 ->GetPowerManagerClient()
-                                ->GetSuspendReadinessCallback();
+                                ->GetSuspendReadinessCallback(FROM_HERE);
   } else {
     // The auto-screen-lock pref is not set or the screen has already been
     // locked and the animations have completed.  Rendering can be stopped now.
@@ -117,10 +118,11 @@
   // TODO(derat): After mus exposes a method for suspending displays, call it
   // here: http://crbug.com/692193
   if (Shell::GetAshConfig() != Config::MASH) {
-    Shell::Get()->display_configurator()->SuspendDisplays(base::Bind(
-        &OnSuspendDisplaysCompleted, chromeos::DBusThreadManager::Get()
-                                         ->GetPowerManagerClient()
-                                         ->GetSuspendReadinessCallback()));
+    Shell::Get()->display_configurator()->SuspendDisplays(
+        base::Bind(&OnSuspendDisplaysCompleted,
+                   chromeos::DBusThreadManager::Get()
+                       ->GetPowerManagerClient()
+                       ->GetSuspendReadinessCallback(FROM_HERE)));
   }
 }
 
diff --git a/ash/system/power/tablet_power_button_controller.cc b/ash/system/power/tablet_power_button_controller.cc
index 6b1f9124..03335a97 100644
--- a/ash/system/power/tablet_power_button_controller.cc
+++ b/ash/system/power/tablet_power_button_controller.cc
@@ -6,11 +6,13 @@
 
 #include "ash/accessibility/accessibility_delegate.h"
 #include "ash/public/cpp/ash_switches.h"
+#include "ash/public/cpp/shell_window_ids.h"
 #include "ash/session/session_controller.h"
 #include "ash/shell.h"
 #include "ash/shell_delegate.h"
 #include "ash/shutdown_reason.h"
 #include "ash/system/power/power_button_display_controller.h"
+#include "ash/system/power/power_button_menu_screen_view.h"
 #include "ash/wm/lock_state_controller.h"
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/logging.h"
@@ -21,6 +23,7 @@
 #include "ui/events/devices/input_device_manager.h"
 #include "ui/events/devices/stylus_state.h"
 #include "ui/events/event.h"
+#include "ui/views/widget/widget.h"
 
 namespace ash {
 
@@ -38,16 +41,31 @@
 constexpr base::TimeDelta kShutdownWhenScreenOffTimeout =
     base::TimeDelta::FromMilliseconds(2000);
 
-// Amount of time since last SuspendDone() that power button event needs to be
-// ignored.
-static constexpr base::TimeDelta kIgnorePowerButtonAfterResumeDelay =
-    base::TimeDelta::FromSeconds(2);
-
 // Time that power button should be pressed before starting to show the power
 // off menu animation.
 constexpr base::TimeDelta kStartPowerButtonMenuAnimationTimeout =
     base::TimeDelta::FromMilliseconds(500);
 
+// Creates a fullscreen widget responsible for showing the power button menu.
+std::unique_ptr<views::Widget> CreateMenuWidget() {
+  auto menu_widget = std::make_unique<views::Widget>();
+  views::Widget::InitParams params(
+      views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
+  params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
+  params.keep_on_top = true;
+  params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
+  params.name = "PowerButtonMenuWindow";
+  params.layer_type = ui::LAYER_SOLID_COLOR;
+  params.parent = Shell::GetPrimaryRootWindow()->GetChildById(
+      kShellWindowId_OverlayContainer);
+  menu_widget->Init(params);
+
+  gfx::Rect widget_bounds =
+      display::Screen::GetScreen()->GetPrimaryDisplay().bounds();
+  menu_widget->SetBounds(widget_bounds);
+  return menu_widget;
+}
+
 }  // namespace
 
 constexpr base::TimeDelta TabletPowerButtonController::kScreenStateChangeDelay;
@@ -55,16 +73,22 @@
 constexpr base::TimeDelta
     TabletPowerButtonController::kIgnoreRepeatedButtonUpDelay;
 
+constexpr base::TimeDelta
+    TabletPowerButtonController::kIgnorePowerButtonAfterResumeDelay;
+
 TabletPowerButtonController::TabletPowerButtonController(
     PowerButtonDisplayController* display_controller,
+    BacklightsForcedOffSetter* backlights_forced_off_setter,
     bool show_power_button_menu,
     base::TickClock* tick_clock)
     : lock_state_controller_(Shell::Get()->lock_state_controller()),
       display_controller_(display_controller),
+      backlights_forced_off_observer_(this),
       show_power_button_menu_(show_power_button_menu),
       tick_clock_(tick_clock) {
   chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->AddObserver(
       this);
+  backlights_forced_off_observer_.Add(backlights_forced_off_setter);
   Shell::Get()->tablet_mode_controller()->AddObserver(this);
 }
 
@@ -119,11 +143,13 @@
     // Ignore the event if it comes too soon after the last one.
     if (timestamp - previous_up_time <= kIgnoreRepeatedButtonUpDelay) {
       shutdown_timer_.Stop();
+      power_button_menu_timer_.Stop();
       return;
     }
 
-    if (shutdown_timer_.IsRunning()) {
+    if (shutdown_timer_.IsRunning() || power_button_menu_timer_.IsRunning()) {
       shutdown_timer_.Stop();
+      power_button_menu_timer_.Stop();
       if (!screen_off_when_power_button_down_ && force_off_on_button_up_) {
         display_controller_->SetBacklightsForcedOff(true);
         LockScreenIfRequired();
@@ -132,21 +158,13 @@
   }
 }
 
-void TabletPowerButtonController::SuspendDone(
-    const base::TimeDelta& sleep_duration) {
-  last_resume_time_ = tick_clock_->NowTicks();
+bool TabletPowerButtonController::IsMenuOpened() const {
+  return menu_widget_ && menu_widget_->GetLayer()->GetTargetVisibility();
 }
 
-void TabletPowerButtonController::OnTabletModeStarted() {
-  shutdown_timer_.Stop();
-  if (lock_state_controller_->CanCancelShutdownAnimation())
-    lock_state_controller_->CancelShutdownAnimation();
-}
-
-void TabletPowerButtonController::OnTabletModeEnded() {
-  shutdown_timer_.Stop();
-  if (lock_state_controller_->CanCancelShutdownAnimation())
-    lock_state_controller_->CancelShutdownAnimation();
+void TabletPowerButtonController::DismissMenu() {
+  if (IsMenuOpened())
+    menu_widget_->Hide();
 }
 
 void TabletPowerButtonController::CancelTabletPowerButton() {
@@ -154,6 +172,42 @@
     lock_state_controller_->CancelShutdownAnimation();
   force_off_on_button_up_ = false;
   shutdown_timer_.Stop();
+  power_button_menu_timer_.Stop();
+}
+
+void TabletPowerButtonController::OnBacklightsForcedOffChanged(
+    bool forced_off) {
+  DismissMenu();
+}
+
+void TabletPowerButtonController::OnScreenStateChanged(
+    BacklightsForcedOffSetter::ScreenState screen_state) {
+  DismissMenu();
+}
+
+void TabletPowerButtonController::SuspendImminent(
+    power_manager::SuspendImminent::Reason reason) {
+  DismissMenu();
+}
+
+void TabletPowerButtonController::SuspendDone(
+    const base::TimeDelta& sleep_duration) {
+  last_resume_time_ = tick_clock_->NowTicks();
+}
+
+void TabletPowerButtonController::OnTabletModeStarted() {
+  power_button_menu_timer_.Stop();
+  shutdown_timer_.Stop();
+  if (lock_state_controller_->CanCancelShutdownAnimation())
+    lock_state_controller_->CancelShutdownAnimation();
+}
+
+void TabletPowerButtonController::OnTabletModeEnded() {
+  power_button_menu_timer_.Stop();
+  DismissMenu();
+  shutdown_timer_.Stop();
+  if (lock_state_controller_->CanCancelShutdownAnimation())
+    lock_state_controller_->CancelShutdownAnimation();
 }
 
 void TabletPowerButtonController::StartShutdownTimer() {
@@ -179,7 +233,13 @@
 }
 
 void TabletPowerButtonController::OnPowerButtonMenuTimeout() {
-  // TODO(minch), create the power button menu.
+  if (!menu_widget_)
+    menu_widget_ = CreateMenuWidget();
+  menu_widget_->SetContentsView(new PowerButtonMenuScreenView(this));
+  menu_widget_->Show();
+
+  static_cast<PowerButtonMenuScreenView*>(menu_widget_->GetContentsView())
+      ->ScheduleShowHideAnimation(true);
 }
 
 }  // namespace ash
diff --git a/ash/system/power/tablet_power_button_controller.h b/ash/system/power/tablet_power_button_controller.h
index 10e2e55..59ed886 100644
--- a/ash/system/power/tablet_power_button_controller.h
+++ b/ash/system/power/tablet_power_button_controller.h
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "ash/ash_export.h"
+#include "ash/system/power/backlights_forced_off_setter.h"
 #include "ash/wm/tablet_mode/tablet_mode_observer.h"
 #include "base/macros.h"
 #include "base/scoped_observer.h"
@@ -23,15 +24,19 @@
 class TickClock;
 }  // namespace base
 
-namespace ash {
+namespace views {
+class Widget;
+}  // namespace views
 
+namespace ash {
 class LockStateController;
 class PowerButtonDisplayController;
 
 // Handles power button events on convertible/tablet device. This class is
 // instantiated and used in PowerButtonController.
 class ASH_EXPORT TabletPowerButtonController
-    : public chromeos::PowerManagerClient::Observer,
+    : public BacklightsForcedOffSetter::Observer,
+      public chromeos::PowerManagerClient::Observer,
       public TabletModeObserver {
  public:
   // Public for tests.
@@ -48,24 +53,43 @@
   static constexpr base::TimeDelta kIgnoreRepeatedButtonUpDelay =
       base::TimeDelta::FromMilliseconds(500);
 
-  TabletPowerButtonController(PowerButtonDisplayController* display_controller,
-                              bool show_power_button_menu,
-                              base::TickClock* tick_clock);
+  // Amount of time since last SuspendDone() that power button event needs to be
+  // ignored.
+  static constexpr base::TimeDelta kIgnorePowerButtonAfterResumeDelay =
+      base::TimeDelta::FromSeconds(2);
+
+  TabletPowerButtonController(
+      PowerButtonDisplayController* display_controller,
+      BacklightsForcedOffSetter* backlights_forced_off_setter,
+      bool show_power_button_menu,
+      base::TickClock* tick_clock);
   ~TabletPowerButtonController() override;
 
   // Handles a power button event.
   void OnPowerButtonEvent(bool down, const base::TimeTicks& timestamp);
 
-  // Overridden from chromeos::PowerManagerClient::Observer:
+  // True if the menu is opened.
+  bool IsMenuOpened() const;
+
+  // Dismisses the menu.
+  void DismissMenu();
+
+  // Cancel the ongoing tablet power button behavior.
+  void CancelTabletPowerButton();
+
+  // BacklightsForcedOffSetter::Observer:
+  void OnBacklightsForcedOffChanged(bool forced_off) override;
+  void OnScreenStateChanged(
+      BacklightsForcedOffSetter::ScreenState screen_state) override;
+
+  // chromeos::PowerManagerClient::Observer:
+  void SuspendImminent(power_manager::SuspendImminent::Reason reason) override;
   void SuspendDone(const base::TimeDelta& sleep_duration) override;
 
   // TabletModeObserver:
   void OnTabletModeStarted() override;
   void OnTabletModeEnded() override;
 
-  // Cancel the ongoing tablet power button behavior.
-  void CancelTabletPowerButton();
-
  private:
   friend class TabletPowerButtonControllerTestApi;
 
@@ -106,11 +130,17 @@
   // to show the power button menu.
   base::OneShotTimer power_button_menu_timer_;
 
+  // The fullscreen widget of power button menu.
+  std::unique_ptr<views::Widget> menu_widget_;
+
   LockStateController* lock_state_controller_;  // Not owned.
 
   // Used to interact with the display.
   PowerButtonDisplayController* display_controller_;  // Not owned.
 
+  ScopedObserver<BacklightsForcedOffSetter, BacklightsForcedOffSetter::Observer>
+      backlights_forced_off_observer_;
+
   // If true, start the |power_button_menu_timer_| to show the menu when the
   // power button is long pressed.
   bool show_power_button_menu_ = false;
diff --git a/ash/system/power/tablet_power_button_controller_test_api.cc b/ash/system/power/tablet_power_button_controller_test_api.cc
index 183217a2..c9be0ec 100644
--- a/ash/system/power/tablet_power_button_controller_test_api.cc
+++ b/ash/system/power/tablet_power_button_controller_test_api.cc
@@ -5,7 +5,11 @@
 #include "ash/system/power/tablet_power_button_controller_test_api.h"
 
 #include "ash/system/power/power_button_display_controller.h"
+#include "ash/system/power/power_button_menu_screen_view.h"
+#include "ash/system/power/power_button_menu_view.h"
 #include "ash/system/power/tablet_power_button_controller.h"
+#include "ui/gfx/geometry/rect.h"
+#include "ui/views/widget/widget.h"
 
 namespace ash {
 
@@ -30,8 +34,44 @@
   return true;
 }
 
+bool TabletPowerButtonControllerTestApi::PowerButtonMenuTimerIsRunning() const {
+  return controller_->power_button_menu_timer_.IsRunning();
+}
+
+bool TabletPowerButtonControllerTestApi::TriggerPowerButtonMenuTimeout() {
+  if (!controller_->power_button_menu_timer_.IsRunning())
+    return false;
+
+  base::Closure task = controller_->power_button_menu_timer_.user_task();
+  controller_->power_button_menu_timer_.Stop();
+  task.Run();
+  return true;
+}
+
 void TabletPowerButtonControllerTestApi::SendKeyEvent(ui::KeyEvent* event) {
   controller_->display_controller_->OnKeyEvent(event);
 }
 
+gfx::Rect TabletPowerButtonControllerTestApi::GetMenuBoundsInScreen() const {
+  return IsMenuOpened() ? GetPowerButtonMenuView()->GetBoundsInScreen()
+                        : gfx::Rect();
+}
+
+PowerButtonMenuView*
+TabletPowerButtonControllerTestApi::GetPowerButtonMenuView() const {
+  return IsMenuOpened() ? static_cast<PowerButtonMenuScreenView*>(
+                              controller_->menu_widget_->GetContentsView())
+                              ->power_button_menu_view()
+                        : nullptr;
+}
+
+bool TabletPowerButtonControllerTestApi::IsMenuOpened() const {
+  return controller_->IsMenuOpened();
+}
+
+bool TabletPowerButtonControllerTestApi::MenuHasSignOutItem() const {
+  return IsMenuOpened() &&
+         GetPowerButtonMenuView()->sign_out_item_for_testing();
+}
+
 }  // namespace ash
diff --git a/ash/system/power/tablet_power_button_controller_test_api.h b/ash/system/power/tablet_power_button_controller_test_api.h
index 7abdef7b..6c66177 100644
--- a/ash/system/power/tablet_power_button_controller_test_api.h
+++ b/ash/system/power/tablet_power_button_controller_test_api.h
@@ -12,7 +12,12 @@
 class KeyEvent;
 }  // namespace ui
 
+namespace gfx {
+class Rect;
+}  // namespace gfx
+
 namespace ash {
+class PowerButtonMenuView;
 class TabletPowerButtonController;
 
 // Helper class used by tests to access TabletPowerButtonController's
@@ -30,9 +35,29 @@
   // returns true. Otherwise, returns false.
   bool TriggerShutdownTimeout() WARN_UNUSED_RESULT;
 
+  // Returns true when |power_button_menu_timer_| is running.
+  bool PowerButtonMenuTimerIsRunning() const;
+
+  // If |controller_->power_button_menu_timer_| is running, stops it, runs its
+  // task, and returns true. Otherwise, returns false.
+  bool TriggerPowerButtonMenuTimeout() WARN_UNUSED_RESULT;
+
   // Sends |event| to |controller_->display_controller_|.
   void SendKeyEvent(ui::KeyEvent* event);
 
+  // Gets the bounds of the menu view in screen.
+  gfx::Rect GetMenuBoundsInScreen() const;
+
+  // Gets the PowerButtonMenuView of the |controller_|'s menu, which is used by
+  // GetMenuBoundsInScreen.
+  PowerButtonMenuView* GetPowerButtonMenuView() const;
+
+  // True if the menu is opened.
+  bool IsMenuOpened() const;
+
+  // True if |controller_|'s menu has a sign out item.
+  bool MenuHasSignOutItem() const;
+
  private:
   TabletPowerButtonController* controller_;  // Not owned.
 
diff --git a/ash/system/power/tablet_power_button_controller_unittest.cc b/ash/system/power/tablet_power_button_controller_unittest.cc
index e45ebe18..14c2107b 100644
--- a/ash/system/power/tablet_power_button_controller_unittest.cc
+++ b/ash/system/power/tablet_power_button_controller_unittest.cc
@@ -44,9 +44,11 @@
     power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, true);
     EXPECT_FALSE(power_manager_client_->backlights_forced_off());
 
-    // Advance a long duration from initialized last resume time in
-    // |tablet_controller_| to avoid cross interference.
-    tick_clock_->Advance(base::TimeDelta::FromMilliseconds(3000));
+    // Advance a duration longer than |kIgnorePowerButtonAfterResumeDelay| to
+    // avoid events being ignored.
+    tick_clock_->Advance(
+        TabletPowerButtonController::kIgnorePowerButtonAfterResumeDelay +
+        base::TimeDelta::FromMilliseconds(2));
 
     // Run the event loop so that PowerButtonDisplayController can receive the
     // initial backlights-forced-off state.
@@ -67,15 +69,6 @@
         TouchscreenEnabledSource::GLOBAL);
   }
 
-  // Advance clock to ensure the intended tablet power button display forcing
-  // off is not ignored since we will ignore the repeated power button up if
-  // they come too close.
-  void AdvanceClockToAvoidIgnoring() {
-    tick_clock_->Advance(
-        TabletPowerButtonController::kIgnoreRepeatedButtonUpDelay +
-        base::TimeDelta::FromMilliseconds(1));
-  }
-
   DISALLOW_COPY_AND_ASSIGN(TabletPowerButtonControllerTest);
 };
 
@@ -689,4 +682,166 @@
   EXPECT_FALSE(tablet_controller_);
 }
 
+class TabletPowerButtonControllerShowMenuTest : public PowerButtonTestBase {
+ public:
+  TabletPowerButtonControllerShowMenuTest() {
+    set_show_power_button_menu(true);
+  }
+  ~TabletPowerButtonControllerShowMenuTest() override = default;
+
+  void SetUp() override {
+    PowerButtonTestBase::SetUp();
+
+    InitPowerButtonControllerMembers(true /* send_accelerometer_update */);
+    EnableTabletMode(true);
+
+    // Advance a duration longer than |kIgnorePowerButtonAfterResumeDelay| to
+    // avoid events being ignored.
+    tick_clock_->Advance(
+        TabletPowerButtonController::kIgnorePowerButtonAfterResumeDelay +
+        base::TimeDelta::FromMilliseconds(2));
+  }
+
+  // Press the power button to show the menu.
+  void OpenPowerButtonMenu() {
+    PressPowerButton();
+    EXPECT_TRUE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+    ASSERT_TRUE(tablet_test_api_->TriggerPowerButtonMenuTimeout());
+    ReleasePowerButton();
+    ASSERT_TRUE(tablet_test_api_->IsMenuOpened());
+  }
+
+  // Tap outside of the menu view to dismiss the menu.
+  void TapToDismissPowerButtonMenu() {
+    gfx::Rect menu_bounds = tablet_test_api_->GetMenuBoundsInScreen();
+    GetEventGenerator().GestureTapAt(
+        gfx::Point(menu_bounds.x() - 5, menu_bounds.y() - 5));
+    EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+  }
+
+  DISALLOW_COPY_AND_ASSIGN(TabletPowerButtonControllerShowMenuTest);
+};
+
+// Tests that the power off menu will not be shown if the power button is
+// released quickly.
+TEST_F(TabletPowerButtonControllerShowMenuTest,
+       ReleasePowerButtonBeforeShowPowerButtonMenu) {
+  // Tap the power button when screen is on will turn screen off.
+  PressPowerButton();
+  EXPECT_TRUE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+  ReleasePowerButton();
+  power_manager_client_->SendBrightnessChanged(0, true);
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  EXPECT_TRUE(power_manager_client_->backlights_forced_off());
+
+  AdvanceClockToAvoidIgnoring();
+  // Tap the power button when screen is off will turn screen on.
+  PressPowerButton();
+  EXPECT_TRUE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+  ReleasePowerButton();
+  EXPECT_FALSE(tablet_test_api_->PowerButtonMenuTimerIsRunning());
+  EXPECT_FALSE(power_manager_client_->backlights_forced_off());
+}
+
+// Tests that tap outside of the menu bounds will dimiss the menu.
+TEST_F(TabletPowerButtonControllerShowMenuTest, TapToDismissMenu) {
+  OpenPowerButtonMenu();
+  TapToDismissPowerButtonMenu();
+}
+
+// Tests the menu items according to the login status.
+TEST_F(TabletPowerButtonControllerShowMenuTest, MenuItemsToLoginStatus) {
+  // No sign out item if user is not logged in.
+  ClearLogin();
+  Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::NOT_LOGGED_IN);
+  OpenPowerButtonMenu();
+  EXPECT_FALSE(tablet_test_api_->MenuHasSignOutItem());
+  TapToDismissPowerButtonMenu();
+
+  // Should have sign out item if user is login.
+  CreateUserSessions(1);
+  Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::USER);
+  OpenPowerButtonMenu();
+  EXPECT_TRUE(tablet_test_api_->MenuHasSignOutItem());
+  TapToDismissPowerButtonMenu();
+
+  // Should have sign out item if user is logged in but screen is locked.
+  Shell::Get()->UpdateAfterLoginStatusChange(LoginStatus::LOCKED);
+  OpenPowerButtonMenu();
+  EXPECT_TRUE(tablet_test_api_->MenuHasSignOutItem());
+}
+
+// Repeat long press should redisplay the menu.
+TEST_F(TabletPowerButtonControllerShowMenuTest, PressButtonWhenMenuIsOpened) {
+  OpenPowerButtonMenu();
+  AdvanceClockToAvoidIgnoring();
+  OpenPowerButtonMenu();
+}
+
+// Tests that we do not show power button menu if kShowPowerButtonMenu is set
+// but the device is in clamshell mode.
+TEST_F(TabletPowerButtonControllerShowMenuTest, ClamshellShowPowerButtonMenu) {
+  OpenPowerButtonMenu();
+
+  // Change from tablet mode to clamshell mode should dismiss the menu.
+  EnableTabletMode(false);
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+
+  // Should not show the power button menu even if the kShowPowerButtonMenu of
+  // the device is set but not in tablet mode.
+  PressPowerButton();
+  ASSERT_FALSE(tablet_test_api_->TriggerPowerButtonMenuTimeout());
+  ReleasePowerButton();
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+}
+
+// Tests that screen changes to idle off will dismiss the opened menu.
+TEST_F(TabletPowerButtonControllerShowMenuTest,
+       DismissMenuWhenScreenIsIdleOff) {
+  OpenPowerButtonMenu();
+  // Mock screen idle off.
+  power_manager_client_->SendBrightnessChanged(0, true);
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+}
+
+// Tests that tapping the power button should dimiss the opened menu.
+TEST_F(TabletPowerButtonControllerShowMenuTest,
+       TappingPowerButtonWhenMenuIsOpened) {
+  OpenPowerButtonMenu();
+
+  // Tapping the power button when menu is opened will dismiss the menu.
+  AdvanceClockToAvoidIgnoring();
+  PressPowerButton();
+  ReleasePowerButton();
+  power_manager_client_->SendBrightnessChanged(0, true);
+  EXPECT_TRUE(power_manager_client_->backlights_forced_off());
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+
+  // Long press the power button when backlights are off will show the menu.
+  PressPowerButton();
+  power_manager_client_->SendBrightnessChanged(kNonZeroBrightness, true);
+  EXPECT_TRUE(tablet_test_api_->TriggerPowerButtonMenuTimeout());
+  ReleasePowerButton();
+  EXPECT_TRUE(tablet_test_api_->IsMenuOpened());
+  // Tapping the power button will dismiss the menu.
+  AdvanceClockToAvoidIgnoring();
+  PressPowerButton();
+  ReleasePowerButton();
+  power_manager_client_->SendBrightnessChanged(0, true);
+  EXPECT_TRUE(power_manager_client_->backlights_forced_off());
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+}
+
+// Tests that suspend will dismiss the opened menu.
+TEST_F(TabletPowerButtonControllerShowMenuTest, SuspendWithMenuOn) {
+  OpenPowerButtonMenu();
+  power_manager_client_->SendSuspendImminent(
+      power_manager::SuspendImminent_Reason_OTHER);
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+  power_manager_client_->SendSuspendDone();
+  EXPECT_FALSE(tablet_test_api_->IsMenuOpened());
+}
+
 }  // namespace ash
diff --git a/ash/touch_hud/mus/BUILD.gn b/ash/touch_hud/mus/BUILD.gn
index 97d0989..04de09c 100644
--- a/ash/touch_hud/mus/BUILD.gn
+++ b/ash/touch_hud/mus/BUILD.gn
@@ -26,10 +26,6 @@
     "//ui/views",
     "//ui/views/mus:for_mojo_application",
   ]
-
-  data_deps = [
-    "//services/ui",
-  ]
 }
 
 service("touch_hud") {
diff --git a/base/BUILD.gn b/base/BUILD.gn
index e84daab..379e82bf 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -261,6 +261,7 @@
     "command_line.cc",
     "command_line.h",
     "compiler_specific.h",
+    "component_export.h",
     "containers/adapters.h",
     "containers/circular_deque.h",
     "containers/flat_map.h",
@@ -2073,6 +2074,7 @@
     "callback_unittest.cc",
     "cancelable_callback_unittest.cc",
     "command_line_unittest.cc",
+    "component_export_unittest.cc",
     "containers/adapters_unittest.cc",
     "containers/circular_deque_unittest.cc",
     "containers/flat_map_unittest.cc",
diff --git a/base/android/jni_generator/SampleForTests_jni.golden b/base/android/jni_generator/SampleForTests_jni.golden
index 09a6b43a..f58ee98 100644
--- a/base/android/jni_generator/SampleForTests_jni.golden
+++ b/base/android/jni_generator/SampleForTests_jni.golden
@@ -109,6 +109,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeInit(JNIEnv*
     env, jobject jcaller,
     jstring param) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_SampleForTests_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller), base::android::JavaParamRef<jstring>(env, param));
 }
@@ -117,6 +118,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeDestroy(JNIEnv*
     env, jobject jcaller,
     jlong nativeCPPClass) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Destroy");
   CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
   CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
   return native->Destroy(env, base::android::JavaParamRef<jobject>(env,
@@ -129,6 +131,7 @@
 JNI_GENERATOR_EXPORT jdouble
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetDoubleFunction(JNIEnv*
     env, jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetDoubleFunction");
   return JNI_SampleForTests_GetDoubleFunction(env,
       base::android::JavaParamRef<jobject>(env, jcaller));
 }
@@ -139,6 +142,7 @@
 JNI_GENERATOR_EXPORT jfloat
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetFloatFunction(JNIEnv*
     env, jclass jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetFloatFunction");
   return JNI_SampleForTests_GetFloatFunction(env,
       base::android::JavaParamRef<jclass>(env, jcaller));
 }
@@ -151,18 +155,20 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeSetNonPODDatatype(JNIEnv*
     env, jobject jcaller,
     jobject rect) {
+  TRACE_NATIVE_EXECUTION_SCOPED("SetNonPODDatatype");
   return JNI_SampleForTests_SetNonPODDatatype(env,
       base::android::JavaParamRef<jobject>(env, jcaller),
       base::android::JavaParamRef<jobject>(env, rect));
 }
 
 static base::android::ScopedJavaLocalRef<jobject>
-JNI_SampleForTests_GetNonPODDatatype(JNIEnv* env, const
+    JNI_SampleForTests_GetNonPODDatatype(JNIEnv* env, const
     base::android::JavaParamRef<jobject>& jcaller);
 
 JNI_GENERATOR_EXPORT jobject
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetNonPODDatatype(JNIEnv*
     env, jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetNonPODDatatype");
   return JNI_SampleForTests_GetNonPODDatatype(env,
       base::android::JavaParamRef<jobject>(env, jcaller)).Release();
 }
@@ -171,6 +177,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethod(JNIEnv*
     env, jobject jcaller,
     jlong nativeCPPClass) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Method");
   CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
   CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
   return native->Method(env, base::android::JavaParamRef<jobject>(env,
@@ -181,6 +188,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethodOtherP0(JNIEnv*
     env, jobject jcaller,
     jlong nativePtr) {
+  TRACE_NATIVE_EXECUTION_SCOPED("MethodOtherP0");
   CPPClass::InnerClass* native =
       reinterpret_cast<CPPClass::InnerClass*>(nativePtr);
   CHECK_NATIVE_PTR(env, jcaller, native, "MethodOtherP0", 0);
@@ -193,6 +201,7 @@
     env, jobject jcaller,
     jlong nativeCPPClass,
     jobject b) {
+  TRACE_NATIVE_EXECUTION_SCOPED("AddStructB");
   CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
   CHECK_NATIVE_PTR(env, jcaller, native, "AddStructB");
   return native->AddStructB(env, base::android::JavaParamRef<jobject>(env,
@@ -203,6 +212,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeIterateAndDoSomethingWithStructB(JNIEnv*
     env, jobject jcaller,
     jlong nativeCPPClass) {
+  TRACE_NATIVE_EXECUTION_SCOPED("IterateAndDoSomethingWithStructB");
   CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
   CHECK_NATIVE_PTR(env, jcaller, native, "IterateAndDoSomethingWithStructB");
   return native->IterateAndDoSomethingWithStructB(env,
@@ -213,6 +223,7 @@
     Java_org_chromium_example_jni_1generator_SampleForTests_nativeReturnAString(JNIEnv*
     env, jobject jcaller,
     jlong nativeCPPClass) {
+  TRACE_NATIVE_EXECUTION_SCOPED("ReturnAString");
   CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
   CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", NULL);
   return native->ReturnAString(env, base::android::JavaParamRef<jobject>(env,
@@ -225,6 +236,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_example_jni_1generator_SampleForTests_00024InnerClass_nativeGetInnerIntFunction(JNIEnv*
     env, jclass jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetInnerIntFunction");
   return JNI_InnerClass_GetInnerIntFunction(env,
       base::android::JavaParamRef<jclass>(env, jcaller));
 }
diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py
index 4379cef..7a9494dc 100755
--- a/base/android/jni_generator/jni_generator.py
+++ b/base/android/jni_generator/jni_generator.py
@@ -1043,6 +1043,10 @@
     profiling_entered_native = ''
     if self.options.enable_profiling:
       profiling_entered_native = 'JNI_LINK_SAVED_FRAME_POINTER;'
+    # Temporary annotations for crbug.com/801260. Will be removed once the
+    # memory usage is understood.
+    trace_native_execution_scoped = (
+        'TRACE_NATIVE_EXECUTION_SCOPED("' + native.name + '");')
     values = {
         'RETURN': return_type,
         'RETURN_DECLARATION': return_declaration,
@@ -1054,6 +1058,7 @@
         'POST_CALL': post_call,
         'STUB_NAME': self.helper.GetStubName(native),
         'PROFILING_ENTERED_NATIVE': profiling_entered_native,
+        'TRACE_NATIVE_EXECUTION_SCOPED': trace_native_execution_scoped,
     }
 
     if is_method:
@@ -1068,6 +1073,7 @@
       template = Template("""\
 JNI_GENERATOR_EXPORT ${RETURN} ${STUB_NAME}(JNIEnv* env, ${PARAMS_IN_STUB}) {
   ${PROFILING_ENTERED_NATIVE}
+  ${TRACE_NATIVE_EXECUTION_SCOPED}
   ${P0_TYPE}* native = reinterpret_cast<${P0_TYPE}*>(${PARAM0_NAME});
   CHECK_NATIVE_PTR(env, jcaller, native, "${NAME}"${OPTIONAL_ERROR_RETURN});
   return native->${NAME}(${PARAMS_IN_CALL})${POST_CALL};
@@ -1079,6 +1085,7 @@
 
 JNI_GENERATOR_EXPORT ${RETURN} ${STUB_NAME}(JNIEnv* env, ${PARAMS_IN_STUB}) {
   ${PROFILING_ENTERED_NATIVE}
+  ${TRACE_NATIVE_EXECUTION_SCOPED}
   return ${IMPL_METHOD_NAME}(${PARAMS_IN_CALL})${POST_CALL};
 }
 """)
diff --git a/base/android/jni_generator/jni_generator_helper.h b/base/android/jni_generator/jni_generator_helper.h
index 9cb8efa..11bc3c5 100644
--- a/base/android/jni_generator/jni_generator_helper.h
+++ b/base/android/jni_generator/jni_generator_helper.h
@@ -11,6 +11,7 @@
 #include "base/android/jni_int_wrapper.h"
 #include "base/android/scoped_java_ref.h"
 #include "base/logging.h"
+#include "base/trace_event/heap_profiler.h"
 #include "build/build_config.h"
 
 // Project-specific macros used by the header files generated by
@@ -38,6 +39,9 @@
 #define JNI_REGISTRATION_EXPORT
 #endif
 
+#define TRACE_NATIVE_EXECUTION_SCOPED(name) \
+  TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION heap_profiler_event(name);
+
 namespace jni_generator {
 
 inline void HandleRegistrationError(JNIEnv* env,
diff --git a/base/android/jni_generator/testInnerClassNatives.golden b/base/android/jni_generator/testInnerClassNatives.golden
index ab67c3cb..f46518af8 100644
--- a/base/android/jni_generator/testInnerClassNatives.golden
+++ b/base/android/jni_generator/testInnerClassNatives.golden
@@ -54,6 +54,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_TestJni_00024MyInnerClass_nativeInit(JNIEnv* env, jobject
     jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyInnerClass_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller));
 }
diff --git a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
index 57b3296a..e7a29658 100644
--- a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
+++ b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden
@@ -53,6 +53,7 @@
 
 JNI_GENERATOR_EXPORT jint Java_org_chromium_TestJni_nativeInit(JNIEnv* env,
     jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_TestJni_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller));
 }
@@ -63,6 +64,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_TestJni_00024MyOtherInnerClass_nativeInit(JNIEnv* env,
     jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyOtherInnerClass_Init(env,
       base::android::JavaParamRef<jobject>(env, jcaller));
 }
diff --git a/base/android/jni_generator/testInnerClassNativesMultiple.golden b/base/android/jni_generator/testInnerClassNativesMultiple.golden
index 6cd2835..666c9828c 100644
--- a/base/android/jni_generator/testInnerClassNativesMultiple.golden
+++ b/base/android/jni_generator/testInnerClassNativesMultiple.golden
@@ -71,6 +71,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_TestJni_00024MyInnerClass_nativeInit(JNIEnv* env, jobject
     jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyInnerClass_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller));
 }
@@ -81,6 +82,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_TestJni_00024MyOtherInnerClass_nativeInit(JNIEnv* env,
     jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyOtherInnerClass_Init(env,
       base::android::JavaParamRef<jobject>(env, jcaller));
 }
diff --git a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
index 6df6a7fa..280898b 100644
--- a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
+++ b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden
@@ -40,6 +40,7 @@
     env, jclass jcaller,
     jobject callback1,
     jobject callback2) {
+  TRACE_NATIVE_EXECUTION_SCOPED("DoSomething");
   return JNI_Foo_DoSomething(env, base::android::JavaParamRef<jclass>(env,
       jcaller), base::android::JavaParamRef<jobject>(env, callback1),
       base::android::JavaParamRef<jobject>(env, callback2));
diff --git a/base/android/jni_generator/testNativeExportsOnlyOption.golden b/base/android/jni_generator/testNativeExportsOnlyOption.golden
index 69b781a7..a037342 100644
--- a/base/android/jni_generator/testNativeExportsOnlyOption.golden
+++ b/base/android/jni_generator/testNativeExportsOnlyOption.golden
@@ -81,6 +81,7 @@
     env, jobject jcaller,
     jlong nativeTest,
     jint arg1) {
+  TRACE_NATIVE_EXECUTION_SCOPED("StaticMethod");
   Test* native = reinterpret_cast<Test*>(nativeTest);
   CHECK_NATIVE_PTR(env, jcaller, native, "StaticMethod", 0);
   return native->StaticMethod(env, base::android::JavaParamRef<jobject>(env,
@@ -92,6 +93,7 @@
     env, jobject jcaller,
     jlong nativeTest,
     jint arg1) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Method");
   Test* native = reinterpret_cast<Test*>(nativeTest);
   CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
   return native->Method(env, base::android::JavaParamRef<jobject>(env, jcaller),
@@ -104,6 +106,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_example_jni_1generator_SampleForTests_00024MyInnerClass_nativeInit(JNIEnv*
     env, jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyInnerClass_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller));
 }
@@ -114,6 +117,7 @@
 JNI_GENERATOR_EXPORT jint
     Java_org_chromium_example_jni_1generator_SampleForTests_00024MyOtherInnerClass_nativeInit(JNIEnv*
     env, jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_MyOtherInnerClass_Init(env,
       base::android::JavaParamRef<jobject>(env, jcaller));
 }
diff --git a/base/android/jni_generator/testNatives.golden b/base/android/jni_generator/testNatives.golden
index 81fa9d5..9f02ed8 100644
--- a/base/android/jni_generator/testNatives.golden
+++ b/base/android/jni_generator/testNatives.golden
@@ -36,6 +36,7 @@
 
 JNI_GENERATOR_EXPORT jint Java_org_chromium_TestJni_nativeInit(JNIEnv* env,
     jobject jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Init");
   return JNI_TestJni_Init(env, base::android::JavaParamRef<jobject>(env,
       jcaller));
 }
@@ -43,6 +44,7 @@
 JNI_GENERATOR_EXPORT void Java_org_chromium_TestJni_nativeDestroy(JNIEnv* env,
     jobject jcaller,
     jint nativeChromeBrowserProvider) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Destroy");
   ChromeBrowserProvider* native =
       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
   CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
@@ -57,6 +59,7 @@
     jstring title,
     jboolean isFolder,
     jlong parentId) {
+  TRACE_NATIVE_EXECUTION_SCOPED("AddBookmark");
   ChromeBrowserProvider* native =
       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
   CHECK_NATIVE_PTR(env, jcaller, native, "AddBookmark", 0);
@@ -66,7 +69,7 @@
 }
 
 static base::android::ScopedJavaLocalRef<jstring>
-JNI_TestJni_GetDomainAndRegistry(JNIEnv* env, const
+    JNI_TestJni_GetDomainAndRegistry(JNIEnv* env, const
     base::android::JavaParamRef<jclass>& jcaller,
     const base::android::JavaParamRef<jstring>& url);
 
@@ -74,6 +77,7 @@
     Java_org_chromium_TestJni_nativeGetDomainAndRegistry(JNIEnv* env, jclass
     jcaller,
     jstring url) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetDomainAndRegistry");
   return JNI_TestJni_GetDomainAndRegistry(env,
       base::android::JavaParamRef<jclass>(env, jcaller),
       base::android::JavaParamRef<jstring>(env, url)).Release();
@@ -89,13 +93,14 @@
     jclass jcaller,
     jbyteArray state,
     jint tab_index) {
+  TRACE_NATIVE_EXECUTION_SCOPED("CreateHistoricalTabFromState");
   return JNI_TestJni_CreateHistoricalTabFromState(env,
       base::android::JavaParamRef<jclass>(env, jcaller),
       base::android::JavaParamRef<jbyteArray>(env, state), tab_index);
 }
 
 static base::android::ScopedJavaLocalRef<jbyteArray>
-JNI_TestJni_GetStateAsByteArray(JNIEnv* env, const
+    JNI_TestJni_GetStateAsByteArray(JNIEnv* env, const
     base::android::JavaParamRef<jobject>& jcaller,
     const base::android::JavaParamRef<jobject>& view);
 
@@ -103,6 +108,7 @@
     Java_org_chromium_TestJni_nativeGetStateAsByteArray(JNIEnv* env, jobject
     jcaller,
     jobject view) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetStateAsByteArray");
   return JNI_TestJni_GetStateAsByteArray(env,
       base::android::JavaParamRef<jobject>(env, jcaller),
       base::android::JavaParamRef<jobject>(env, view)).Release();
@@ -115,6 +121,7 @@
 JNI_GENERATOR_EXPORT jobjectArray
     Java_org_chromium_TestJni_nativeGetAutofillProfileGUIDs(JNIEnv* env, jclass
     jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetAutofillProfileGUIDs");
   return JNI_TestJni_GetAutofillProfileGUIDs(env,
       base::android::JavaParamRef<jclass>(env, jcaller)).Release();
 }
@@ -129,6 +136,7 @@
     jcaller,
     jint sessionId,
     jobjectArray results) {
+  TRACE_NATIVE_EXECUTION_SCOPED("SetRecognitionResults");
   return JNI_TestJni_SetRecognitionResults(env,
       base::android::JavaParamRef<jobject>(env, jcaller), sessionId,
       base::android::JavaParamRef<jobjectArray>(env, results));
@@ -145,6 +153,7 @@
     jbyteArray favicon,
     jstring title,
     jobject visits) {
+  TRACE_NATIVE_EXECUTION_SCOPED("AddBookmarkFromAPI");
   ChromeBrowserProvider* native =
       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
   CHECK_NATIVE_PTR(env, jcaller, native, "AddBookmarkFromAPI", 0);
@@ -166,16 +175,18 @@
 JNI_GENERATOR_EXPORT jint Java_org_chromium_TestJni_nativeFindAll(JNIEnv* env,
     jobject jcaller,
     jstring find) {
+  TRACE_NATIVE_EXECUTION_SCOPED("FindAll");
   return JNI_TestJni_FindAll(env, base::android::JavaParamRef<jobject>(env,
       jcaller), base::android::JavaParamRef<jstring>(env, find));
 }
 
 static base::android::ScopedJavaLocalRef<jobject>
-JNI_TestJni_GetInnerClass(JNIEnv* env, const
+    JNI_TestJni_GetInnerClass(JNIEnv* env, const
     base::android::JavaParamRef<jclass>& jcaller);
 
 JNI_GENERATOR_EXPORT jobject
     Java_org_chromium_TestJni_nativeGetInnerClass(JNIEnv* env, jclass jcaller) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GetInnerClass");
   return JNI_TestJni_GetInnerClass(env, base::android::JavaParamRef<jclass>(env,
       jcaller)).Release();
 }
@@ -187,6 +198,7 @@
     jstring selection,
     jobjectArray selectionArgs,
     jstring sortOrder) {
+  TRACE_NATIVE_EXECUTION_SCOPED("QueryBitmap");
   ChromeBrowserProvider* native =
       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
   CHECK_NATIVE_PTR(env, jcaller, native, "QueryBitmap", NULL);
@@ -203,6 +215,7 @@
     jdouble alpha,
     jdouble beta,
     jdouble gamma) {
+  TRACE_NATIVE_EXECUTION_SCOPED("GotOrientation");
   DataFetcherImplAndroid* native =
       reinterpret_cast<DataFetcherImplAndroid*>(nativeDataFetcherImplAndroid);
   CHECK_NATIVE_PTR(env, jcaller, native, "GotOrientation");
@@ -219,6 +232,7 @@
     Java_org_chromium_TestJni_nativeMessWithJavaException(JNIEnv* env, jclass
     jcaller,
     jthrowable e) {
+  TRACE_NATIVE_EXECUTION_SCOPED("MessWithJavaException");
   return JNI_TestJni_MessWithJavaException(env,
       base::android::JavaParamRef<jclass>(env, jcaller),
       base::android::JavaParamRef<jthrowable>(env, e)).Release();
diff --git a/base/android/jni_generator/testNativesLong.golden b/base/android/jni_generator/testNativesLong.golden
index 992b4f5..01ccc0ac 100644
--- a/base/android/jni_generator/testNativesLong.golden
+++ b/base/android/jni_generator/testNativesLong.golden
@@ -33,6 +33,7 @@
 JNI_GENERATOR_EXPORT void Java_org_chromium_TestJni_nativeDestroy(JNIEnv* env,
     jobject jcaller,
     jlong nativeChromeBrowserProvider) {
+  TRACE_NATIVE_EXECUTION_SCOPED("Destroy");
   ChromeBrowserProvider* native =
       reinterpret_cast<ChromeBrowserProvider*>(nativeChromeBrowserProvider);
   CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
diff --git a/base/android/jni_generator/testSingleJNIAdditionalImport.golden b/base/android/jni_generator/testSingleJNIAdditionalImport.golden
index b7e7277..3029730 100644
--- a/base/android/jni_generator/testSingleJNIAdditionalImport.golden
+++ b/base/android/jni_generator/testSingleJNIAdditionalImport.golden
@@ -38,6 +38,7 @@
 JNI_GENERATOR_EXPORT void Java_org_chromium_foo_Foo_nativeDoSomething(JNIEnv*
     env, jclass jcaller,
     jobject callback) {
+  TRACE_NATIVE_EXECUTION_SCOPED("DoSomething");
   return JNI_Foo_DoSomething(env, base::android::JavaParamRef<jclass>(env,
       jcaller), base::android::JavaParamRef<jobject>(env, callback));
 }
diff --git a/base/component_export.h b/base/component_export.h
new file mode 100644
index 0000000..b5cb364
--- /dev/null
+++ b/base/component_export.h
@@ -0,0 +1,87 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_COMPONENT_EXPORT_H_
+#define BASE_COMPONENT_EXPORT_H_
+
+#include "build/build_config.h"
+
+// Used to annotate symbols which are exported by the component named
+// |component|. Note that this only does the right thing if the corresponding
+// component target's sources are compiled with |IS_$component_IMPL| defined
+// as 1. For example:
+//
+//   class COMPONENT_EXPORT(FOO) Bar {};
+//
+// If IS_FOO_IMPL=1 at compile time, then Bar will be annotated using the
+// COMPONENT_EXPORT_ANNOTATION macro defined below. Otherwise it will be
+// annotated using the COMPONENT_IMPORT_ANNOTATION macro.
+#define COMPONENT_EXPORT(component)                         \
+  COMPONENT_MACRO_CONDITIONAL_(IS_##component##_IMPL,       \
+                               COMPONENT_EXPORT_ANNOTATION, \
+                               COMPONENT_IMPORT_ANNOTATION)
+
+// Indicates whether the current compilation unit is being compiled as part of
+// the implementation of the component named |component|. Expands to |1| if
+// |IS_$component_IMPL| is defined as |1|; expands to |0| otherwise.
+//
+// Note in particular that if |IS_$component_IMPL| is not defined at all, it is
+// still fine to test INSIDE_COMPONENT_IMPL(component), which expands to |0| as
+// expected.
+#define INSIDE_COMPONENT_IMPL(component) \
+  COMPONENT_MACRO_CONDITIONAL_(IS_##component##_IMPL, 1, 0)
+
+// Compiler-specific macros to annotate for export or import of a symbol. No-op
+// in non-component builds. These should not see much if any direct use.
+// Instead use the COMPONENT_EXPORT macro defined above.
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+#define COMPONENT_EXPORT_ANNOTATION __declspec(dllexport)
+#define COMPONENT_IMPORT_ANNOTATION __declspec(dllimport)
+#else  // defined(WIN32)
+#define COMPONENT_EXPORT_ANNOTATION __attribute__((visibility("default")))
+#define COMPONENT_IMPORT_ANNOTATION
+#endif  // defined(WIN32)
+#else   // defined(COMPONENT_BUILD)
+#define COMPONENT_EXPORT_ANNOTATION
+#define COMPONENT_IMPORT_ANNOTATION
+#endif  // defined(COMPONENT_BUILD)
+
+// Below this point are several internal utility macros used for the
+// implementation of the above macros. Not intended for external use.
+
+// Helper for conditional expansion to one of two token strings. If |condition|
+// expands to |1| then this macro expands to |consequent|; otherwise it expands
+// to |alternate|.
+#define COMPONENT_MACRO_CONDITIONAL_(condition, consequent, alternate) \
+  COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_(                              \
+      COMPONENT_MACRO_CONDITIONAL_COMMA_(condition), consequent, alternate)
+
+// Expands to a comma (,) iff its first argument expands to |1|. Used in
+// conjunction with |COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_()|, as the presence
+// or absense of an extra comma can be used to conditionally shift subsequent
+// argument positions and thus influence which argument is selected.
+#define COMPONENT_MACRO_CONDITIONAL_COMMA_(...) \
+  COMPONENT_MACRO_CONDITIONAL_COMMA_IMPL_(__VA_ARGS__,)
+#define COMPONENT_MACRO_CONDITIONAL_COMMA_IMPL_(x, ...) \
+  COMPONENT_MACRO_CONDITIONAL_COMMA_##x##_
+#define COMPONENT_MACRO_CONDITIONAL_COMMA_1_ ,
+
+// Helper which simply selects its third argument. Used in conjunction with
+// |COMPONENT_MACRO_CONDITIONAL_COMMA_()| above to implement conditional macro
+// expansion.
+#define COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_(...) \
+  COMPONENT_MACRO_EXPAND_(                          \
+      COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_IMPL_(__VA_ARGS__))
+#define COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_IMPL_(a, b, c, ...) c
+
+// Helper to work around MSVC quirkiness wherein a macro expansion like |,|
+// within a parameter list will be treated as a single macro argument. This is
+// needed to ensure that |COMPONENT_MACRO_CONDITIONAL_COMMA_()| above can expand
+// to multiple separate positional arguments in the affirmative case, thus
+// elliciting the desired conditional behavior with
+// |COMPONENT_MACRO_SELECT_THIRD_ARGUMENT_()|.
+#define COMPONENT_MACRO_EXPAND_(x) x
+
+#endif  // BASE_COMPONENT_EXPORT_H_
diff --git a/base/component_export_unittest.cc b/base/component_export_unittest.cc
new file mode 100644
index 0000000..e9943537
--- /dev/null
+++ b/base/component_export_unittest.cc
@@ -0,0 +1,82 @@
+// 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 "base/component_export.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+namespace {
+
+using ComponentExportTest = testing::Test;
+
+#define IS_TEST_COMPONENT_A_IMPL 1
+#define IS_TEST_COMPONENT_B_IMPL
+#define IS_TEST_COMPONENT_C_IMPL 0
+#define IS_TEST_COMPONENT_D_IMPL 2
+#define IS_TEST_COMPONENT_E_IMPL xyz
+
+TEST(ComponentExportTest, ImportExport) {
+  // Defined as 1. Treat as export.
+  EXPECT_EQ(1, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A));
+
+  // Defined, but empty. Treat as import.
+  EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B));
+
+  // Defined, but 0. Treat as import.
+  EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C));
+
+  // Defined, but some other arbitrary thing that isn't 1. Treat as import.
+  EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D));
+  EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E));
+
+  // Undefined. Treat as import.
+  EXPECT_EQ(0, INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F));
+
+  // And just for good measure, ensure that the macros evaluate properly in the
+  // context of preprocessor #if blocks.
+#if INSIDE_COMPONENT_IMPL(TEST_COMPONENT_A)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+
+#if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_B)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+
+#if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_C)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+
+#if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_D)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+
+#if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_E)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+
+#if !INSIDE_COMPONENT_IMPL(TEST_COMPONENT_F)
+  EXPECT_TRUE(true);
+#else
+  EXPECT_TRUE(false);
+#endif
+}
+
+#undef IS_TEST_COMPONENT_A_IMPL
+#undef IS_TEST_COMPONENT_B_IMPL
+#undef IS_TEST_COMPONENT_C_IMPL
+#undef IS_TEST_COMPONENT_D_IMPL
+#undef IS_TEST_COMPONENT_E_IMPL
+
+}  // namespace
+}  // namespace base
diff --git a/base/memory/weak_ptr.cc b/base/memory/weak_ptr.cc
index 1c3208f..f7c8af6 100644
--- a/base/memory/weak_ptr.cc
+++ b/base/memory/weak_ptr.cc
@@ -32,8 +32,7 @@
 
 WeakReference::WeakReference() = default;
 
-WeakReference::WeakReference(const Flag* flag) : flag_(flag) {
-}
+WeakReference::WeakReference(const scoped_refptr<Flag>& flag) : flag_(flag) {}
 
 WeakReference::~WeakReference() = default;
 
@@ -41,7 +40,9 @@
 
 WeakReference::WeakReference(const WeakReference& other) = default;
 
-bool WeakReference::is_valid() const { return flag_.get() && flag_->IsValid(); }
+bool WeakReference::is_valid() const {
+  return flag_ && flag_->IsValid();
+}
 
 WeakReferenceOwner::WeakReferenceOwner() = default;
 
@@ -54,11 +55,11 @@
   if (!HasRefs())
     flag_ = new WeakReference::Flag();
 
-  return WeakReference(flag_.get());
+  return WeakReference(flag_);
 }
 
 void WeakReferenceOwner::Invalidate() {
-  if (flag_.get()) {
+  if (flag_) {
     flag_->Invalidate();
     flag_ = nullptr;
   }
diff --git a/base/memory/weak_ptr.h b/base/memory/weak_ptr.h
index 9d35ff3..a7be14af 100644
--- a/base/memory/weak_ptr.h
+++ b/base/memory/weak_ptr.h
@@ -109,7 +109,7 @@
   };
 
   WeakReference();
-  explicit WeakReference(const Flag* flag);
+  explicit WeakReference(const scoped_refptr<Flag>& flag);
   ~WeakReference();
 
   WeakReference(WeakReference&& other);
@@ -130,9 +130,7 @@
 
   WeakReference GetRef() const;
 
-  bool HasRefs() const {
-    return flag_.get() && !flag_->HasOneRef();
-  }
+  bool HasRefs() const { return flag_ && !flag_->HasOneRef(); }
 
   void Invalidate();
 
@@ -154,6 +152,11 @@
   WeakPtrBase& operator=(const WeakPtrBase& other) = default;
   WeakPtrBase& operator=(WeakPtrBase&& other) = default;
 
+  void reset() {
+    ref_ = internal::WeakReference();
+    ptr_ = 0;
+  }
+
  protected:
   WeakPtrBase(const WeakReference& ref, uintptr_t ptr);
 
@@ -249,11 +252,6 @@
     return get();
   }
 
-  void reset() {
-    ref_ = internal::WeakReference();
-    ptr_ = 0;
-  }
-
   // Allow conditionals to test validity, e.g. if (weak_ptr) {...};
   explicit operator bool() const { return get() != nullptr; }
 
diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restrictions.h
index abfde3a..c8b422ba 100644
--- a/base/threading/thread_restrictions.h
+++ b/base/threading/thread_restrictions.h
@@ -44,6 +44,7 @@
 class NestedMessagePumpAndroid;
 class ScopedAllowWaitForAndroidLayoutTests;
 class ScopedAllowWaitForDebugURL;
+class SessionStorageDatabase;
 class SoftwareOutputDeviceMus;
 class SynchronousCompositor;
 class SynchronousCompositorBrowserFilter;
@@ -265,6 +266,7 @@
   FRIEND_TEST_ALL_PREFIXES(ThreadRestrictionsTest,
                            ScopedAllowBaseSyncPrimitivesWithBlockingDisallowed);
   friend class base::GetAppOutputScopedAllowBaseSyncPrimitives;
+  friend class content::SessionStorageDatabase;
   friend class leveldb::LevelDBMojoProxy;
   friend class media::BlockingUrlProtocol;
   friend class net::MultiThreadedCertVerifierScopedAllowBaseSyncPrimitives;
diff --git a/base/time/time.cc b/base/time/time.cc
index 2f888d1..3b0f5d7 100644
--- a/base/time/time.cc
+++ b/base/time/time.cc
@@ -10,9 +10,9 @@
 #include <ostream>
 #include <sstream>
 
-#include "base/lazy_instance.h"
 #include "base/logging.h"
 #include "base/macros.h"
+#include "base/no_destructor.h"
 #include "base/strings/stringprintf.h"
 #include "base/third_party/nspr/prtime.h"
 #include "build/build_config.h"
@@ -298,27 +298,11 @@
                             exploded.millisecond);
 }
 
-// Local helper class to hold the conversion from Time to TickTime at the
-// time of the Unix epoch.
-class UnixEpochSingleton {
- public:
-  UnixEpochSingleton()
-      : unix_epoch_(TimeTicks::Now() - (Time::Now() - Time::UnixEpoch())) {}
-
-  TimeTicks unix_epoch() const { return unix_epoch_; }
-
- private:
-  const TimeTicks unix_epoch_;
-
-  DISALLOW_COPY_AND_ASSIGN(UnixEpochSingleton);
-};
-
-static LazyInstance<UnixEpochSingleton>::Leaky
-    leaky_unix_epoch_singleton_instance = LAZY_INSTANCE_INITIALIZER;
-
 // Static
 TimeTicks TimeTicks::UnixEpoch() {
-  return leaky_unix_epoch_singleton_instance.Get().unix_epoch();
+  static const base::NoDestructor<base::TimeTicks> epoch(
+      []() { return TimeTicks::Now() - (Time::Now() - Time::UnixEpoch()); }());
+  return *epoch;
 }
 
 TimeTicks TimeTicks::SnappedToNextTick(TimeTicks tick_phase,
diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
index 6fddf3d0..cf2ff1de 100644
--- a/build/config/compiler/compiler.gni
+++ b/build/config/compiler/compiler.gni
@@ -159,7 +159,9 @@
   use_lld = is_clang && !is_msan &&
             ((is_win && host_os != "win") || is_fuchsia ||
              (use_thin_lto && target_os != "chromeos") ||
-             (is_linux && current_cpu == "x64" && target_os != "chromeos"))
+             (is_linux && current_cpu == "x64" && target_os != "chromeos") ||
+             (is_android && (current_cpu != "arm" || arm_version >= 7) &&
+              current_cpu != "mipsel" && current_cpu != "mips64el"))
 }
 
 declare_args() {
diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn
index 6827f46..4b4d6fe79 100644
--- a/build/config/gcc/BUILD.gn
+++ b/build/config/gcc/BUILD.gn
@@ -128,7 +128,7 @@
       _rpath_link += "/$shlib_subdir"
     }
     if (is_android) {
-      _rebased_sysroot = rebase_path(sysroot, root_build_dir)
+      _rebased_sysroot = rebase_path(link_sysroot, root_build_dir)
       _rpath_link += ":$_rebased_sysroot/usr/lib"
     }
 
diff --git a/build/config/posix/BUILD.gn b/build/config/posix/BUILD.gn
index ae4a1bf..bdcd0cf 100644
--- a/build/config/posix/BUILD.gn
+++ b/build/config/posix/BUILD.gn
@@ -79,28 +79,6 @@
   if (!is_mac && !is_ios && sysroot != "") {
     # Pass the sysroot to all C compiler variants, the assembler, and linker.
     sysroot_flags = [ "--sysroot=" + rebase_path(sysroot, root_build_dir) ]
-
-    # Android uses unified headers in NDK r16 and later, meaning that the
-    # compile time sysroot and link time sysroot are different
-    link_sysroot = sysroot
-    if (is_android) {
-      if (current_cpu == "arm") {
-        link_sysroot = "$android_ndk_root/$arm_android_sysroot_subdir"
-      } else if (current_cpu == "arm64") {
-        link_sysroot = "$android_ndk_root/$arm64_android_sysroot_subdir"
-      } else if (current_cpu == "x86") {
-        link_sysroot = "$android_ndk_root/$x86_android_sysroot_subdir"
-      } else if (current_cpu == "x64") {
-        link_sysroot = "$android_ndk_root/$x86_64_android_sysroot_subdir"
-      } else if (current_cpu == "mipsel") {
-        link_sysroot = "$android_ndk_root/$mips_android_sysroot_subdir"
-      } else if (current_cpu == "mips64el") {
-        link_sysroot = "$android_ndk_root/$mips64_android_sysroot_subdir"
-      } else {
-        assert(false, "No android link sysroot for cpu: $target_cpu")
-      }
-    }
-
     asmflags += sysroot_flags
 
     link_sysroot_flags =
diff --git a/build/config/sysroot.gni b/build/config/sysroot.gni
index daab5f8..825817c 100644
--- a/build/config/sysroot.gni
+++ b/build/config/sysroot.gni
@@ -76,3 +76,26 @@
 } else {
   sysroot = ""
 }
+
+if (is_android) {
+  # Android uses unified headers in NDK r16 and later, meaning that the
+  # compile time sysroot and link time sysroot are different
+  link_sysroot = sysroot
+  if (current_cpu == "arm") {
+    link_sysroot = "$android_ndk_root/$arm_android_sysroot_subdir"
+  } else if (current_cpu == "arm64") {
+    link_sysroot = "$android_ndk_root/$arm64_android_sysroot_subdir"
+  } else if (current_cpu == "x86") {
+    link_sysroot = "$android_ndk_root/$x86_android_sysroot_subdir"
+  } else if (current_cpu == "x64") {
+    link_sysroot = "$android_ndk_root/$x86_64_android_sysroot_subdir"
+  } else if (current_cpu == "mipsel") {
+    link_sysroot = "$android_ndk_root/$mips_android_sysroot_subdir"
+  } else if (current_cpu == "mips64el") {
+    link_sysroot = "$android_ndk_root/$mips64_android_sysroot_subdir"
+  } else {
+    assert(false, "No android link sysroot for cpu: $target_cpu")
+  }
+} else {
+  link_sysroot = sysroot
+}
diff --git a/cc/BUILD.gn b/cc/BUILD.gn
index 1baeacd..5f1f80b 100644
--- a/cc/BUILD.gn
+++ b/cc/BUILD.gn
@@ -367,7 +367,6 @@
     "//components/ukm",
     "//components/viz/common",
     "//gpu",
-    "//gpu/command_buffer/client:gles2_implementation",
     "//gpu/command_buffer/client:gles2_interface",
     "//gpu/command_buffer/client:raster_interface",
     "//gpu/ipc:gl_in_process_context",
@@ -549,8 +548,8 @@
     "//components/viz/common",
     "//components/viz/service",
     "//components/viz/test:test_support",
-    "//gpu/command_buffer/client:gles2_c_lib",
     "//gpu/command_buffer/client:gles2_implementation",
+    "//gpu/command_buffer/client:raster",
     "//gpu/command_buffer/common",
     "//gpu/ipc:gl_in_process_context",
     "//gpu/skia_bindings",
@@ -748,6 +747,7 @@
     "//gpu:test_support",
     "//gpu/command_buffer/client:gles2_implementation",
     "//gpu/command_buffer/client:gles2_interface",
+    "//gpu/command_buffer/client:raster",
     "//gpu/command_buffer/client:raster_interface",
     "//gpu/ipc:gl_in_process_context",
     "//gpu/skia_bindings",
@@ -801,6 +801,7 @@
     "//gpu",
     "//gpu:test_support",
     "//gpu/command_buffer/client:gles2_implementation",
+    "//gpu/command_buffer/client:raster",
     "//gpu/ipc/common:struct_traits",
     "//media",
     "//mojo/edk/system",
diff --git a/cc/paint/paint_filter.cc b/cc/paint/paint_filter.cc
index 469b107..8b0185e5 100644
--- a/cc/paint/paint_filter.cc
+++ b/cc/paint/paint_filter.cc
@@ -30,6 +30,10 @@
     return !one && !two;
   return *one == *two;
 }
+
+bool AreScalarsEqual(SkScalar one, SkScalar two) {
+  return PaintOp::AreEqualEvenIfNaN(one, two);
+}
 }  // namespace
 
 PaintFilter::PaintFilter(Type type, const CropRect* crop_rect) : type_(type) {
@@ -406,7 +410,8 @@
 bool MatrixConvolutionPaintFilter::operator==(
     const MatrixConvolutionPaintFilter& other) const {
   return kernel_size_ == other.kernel_size_ &&
-         kernel_.container() == other.kernel_.container() &&
+         std::equal(kernel_.container().begin(), kernel_.container().end(),
+                    other.kernel_.container().begin(), AreScalarsEqual) &&
          PaintOp::AreEqualEvenIfNaN(gain_, other.gain_) &&
          PaintOp::AreEqualEvenIfNaN(bias_, other.bias_) &&
          kernel_offset_ == other.kernel_offset_ &&
diff --git a/cc/paint/transfer_cache_entry.h b/cc/paint/transfer_cache_entry.h
index 266faef4..351bd55 100644
--- a/cc/paint/transfer_cache_entry.h
+++ b/cc/paint/transfer_cache_entry.h
@@ -50,6 +50,10 @@
   // guaranteed to be at least SerializedSize() bytes. Returns true on success
   // and false otherwise.
   virtual bool Serialize(base::span<uint8_t> data) const = 0;
+
+  // Returns the same value as Type() but as a uint32_t to use via
+  // ContextSupport.
+  uint32_t UnsafeType() const { return static_cast<uint32_t>(Type()); }
 };
 
 // An interface which receives the raw data sent by the client and
diff --git a/cc/paint/transfer_cache_serialize_helper.cc b/cc/paint/transfer_cache_serialize_helper.cc
index 8c941bf..1baec7dd 100644
--- a/cc/paint/transfer_cache_serialize_helper.cc
+++ b/cc/paint/transfer_cache_serialize_helper.cc
@@ -15,34 +15,35 @@
 
 bool TransferCacheSerializeHelper::LockEntry(TransferCacheEntryType type,
                                              uint32_t id) {
+  EntryKey key(type, id);
   // Entry already locked, so we don't need to process it.
-  if (added_entries_.count(std::make_pair(type, id)) != 0)
+  if (added_entries_.count(key) != 0)
     return true;
 
-  bool success = LockEntryInternal(type, id);
+  bool success = LockEntryInternal(key);
   if (!success)
     return false;
-  added_entries_.emplace(type, id);
+  added_entries_.insert(key);
   return true;
 }
 
 void TransferCacheSerializeHelper::CreateEntry(
     const ClientTransferCacheEntry& entry) {
   // We shouldn't be creating entries if they were already created or locked.
-  DCHECK_EQ(added_entries_.count(std::make_pair(entry.Type(), entry.Id())), 0u);
+  EntryKey key(entry.Type(), entry.Id());
+  DCHECK_EQ(added_entries_.count(key), 0u);
   CreateEntryInternal(entry);
-  added_entries_.emplace(entry.Type(), entry.Id());
+  added_entries_.insert(key);
 }
 
 void TransferCacheSerializeHelper::FlushEntries() {
-  FlushEntriesInternal(
-      std::vector<EntryKey>(added_entries_.begin(), added_entries_.end()));
+  FlushEntriesInternal(std::move(added_entries_));
   added_entries_.clear();
 }
 
 void TransferCacheSerializeHelper::AssertLocked(TransferCacheEntryType type,
                                                 uint32_t id) {
-  DCHECK_EQ(added_entries_.count(std::make_pair(type, id)), 1u);
+  DCHECK_EQ(added_entries_.count(EntryKey(type, id)), 1u);
 }
 
 }  // namespace cc
diff --git a/cc/paint/transfer_cache_serialize_helper.h b/cc/paint/transfer_cache_serialize_helper.h
index e1dd58d..7fd947a 100644
--- a/cc/paint/transfer_cache_serialize_helper.h
+++ b/cc/paint/transfer_cache_serialize_helper.h
@@ -24,12 +24,14 @@
 
   void AssertLocked(TransferCacheEntryType type, uint32_t id);
 
- private:
+ protected:
   using EntryKey = std::pair<TransferCacheEntryType, uint32_t>;
-  virtual bool LockEntryInternal(TransferCacheEntryType type, uint32_t id) = 0;
-  virtual void CreateEntryInternal(const ClientTransferCacheEntry& entry) = 0;
-  virtual void FlushEntriesInternal(const std::vector<EntryKey>& entries) = 0;
 
+  virtual bool LockEntryInternal(const EntryKey& key) = 0;
+  virtual void CreateEntryInternal(const ClientTransferCacheEntry& entry) = 0;
+  virtual void FlushEntriesInternal(std::set<EntryKey> keys) = 0;
+
+ private:
   std::set<EntryKey> added_entries_;
 };
 
diff --git a/cc/paint/transfer_cache_unittest.cc b/cc/paint/transfer_cache_unittest.cc
index 177a1cd2..4c1ea28 100644
--- a/cc/paint/transfer_cache_unittest.cc
+++ b/cc/paint/transfer_cache_unittest.cc
@@ -80,6 +80,15 @@
   const ClientRawMemoryTransferCacheEntry& test_client_entry() const {
     return test_client_entry_;
   }
+  void CreateEntry(const ClientTransferCacheEntry& entry) {
+    auto* context_support = ContextSupport();
+    size_t size = entry.SerializedSize();
+    void* data = context_support->MapTransferCacheEntry(size);
+    ASSERT_TRUE(data);
+    entry.Serialize(base::make_span(static_cast<uint8_t*>(data), size));
+    context_support->UnmapAndCreateTransferCacheEntry(entry.UnsafeType(),
+                                                      entry.Id());
+  }
 
  private:
   viz::TestGpuMemoryBufferManager gpu_memory_buffer_manager_;
@@ -96,23 +105,24 @@
 
   // Create an entry.
   const auto& entry = test_client_entry();
-  context_support->CreateTransferCacheEntry(entry);
+  CreateEntry(entry);
   gl->Finish();
 
   // Validate service-side state.
   EXPECT_NE(nullptr, service_cache->GetEntry(entry.Type(), entry.Id()));
 
   // Unlock on client side and flush to service.
-  context_support->UnlockTransferCacheEntries({{entry.Type(), entry.Id()}});
+  context_support->UnlockTransferCacheEntries(
+      {{entry.UnsafeType(), entry.Id()}});
   gl->Finish();
 
   // Re-lock on client side and validate state. No need to flush as lock is
   // local.
-  EXPECT_TRUE(context_support->ThreadsafeLockTransferCacheEntry(entry.Type(),
-                                                                entry.Id()));
+  EXPECT_TRUE(context_support->ThreadsafeLockTransferCacheEntry(
+      entry.UnsafeType(), entry.Id()));
 
   // Delete on client side, flush, and validate that deletion reaches service.
-  context_support->DeleteTransferCacheEntry(entry.Type(), entry.Id());
+  context_support->DeleteTransferCacheEntry(entry.UnsafeType(), entry.Id());
   gl->Finish();
   EXPECT_EQ(nullptr, service_cache->GetEntry(entry.Type(), entry.Id()));
 }
@@ -124,14 +134,15 @@
 
   const auto& entry = test_client_entry();
   // Create an entry.
-  context_support->CreateTransferCacheEntry(entry);
+  CreateEntry(entry);
   gl->Finish();
 
   // Validate service-side state.
   EXPECT_NE(nullptr, service_cache->GetEntry(entry.Type(), entry.Id()));
 
   // Unlock on client side and flush to service.
-  context_support->UnlockTransferCacheEntries({{entry.Type(), entry.Id()}});
+  context_support->UnlockTransferCacheEntries(
+      {{entry.UnsafeType(), entry.Id()}});
   gl->Finish();
 
   // Evict on the service side.
@@ -139,14 +150,13 @@
   EXPECT_EQ(nullptr, service_cache->GetEntry(entry.Type(), entry.Id()));
 
   // Try to re-lock on the client side. This should fail.
-  EXPECT_FALSE(context_support->ThreadsafeLockTransferCacheEntry(entry.Type(),
-                                                                 entry.Id()));
+  EXPECT_FALSE(context_support->ThreadsafeLockTransferCacheEntry(
+      entry.UnsafeType(), entry.Id()));
 }
 
 TEST_F(TransferCacheTest, RawMemoryTransfer) {
   auto* service_cache = ServiceTransferCache();
   auto* gl = Gl();
-  auto* context_support = ContextSupport();
 
   // Create an entry with some initialized data.
   std::vector<uint8_t> data;
@@ -157,7 +167,7 @@
 
   // Add the entry to the transfer cache
   ClientRawMemoryTransferCacheEntry client_entry(data);
-  context_support->CreateTransferCacheEntry(client_entry);
+  CreateEntry(client_entry);
   gl->Finish();
 
   // Validate service-side data matches.
@@ -177,7 +187,6 @@
 
   auto* service_cache = ServiceTransferCache();
   auto* gl = Gl();
-  auto* context_support = ContextSupport();
 
   // Create a 10x10 image.
   SkImageInfo info = SkImageInfo::MakeN32Premul(10, 10);
@@ -190,7 +199,7 @@
 
   // Add the entry to the transfer cache
   ClientImageTransferCacheEntry client_entry(&pixmap, nullptr);
-  context_support->CreateTransferCacheEntry(client_entry);
+  CreateEntry(client_entry);
   gl->Finish();
 
   // Validate service-side data matches.
diff --git a/cc/test/DEPS b/cc/test/DEPS
index 953d17f..c4dabb6 100644
--- a/cc/test/DEPS
+++ b/cc/test/DEPS
@@ -5,7 +5,6 @@
   "+gpu/command_buffer/client/gl_in_process_context.h",
   "+gpu/command_buffer/client/gles2_implementation.h",
   "+gpu/command_buffer/client/gles2_interface_stub.h",
-  "+gpu/command_buffer/client/gles2_lib.h",
   "+gpu/command_buffer/client/raster_implementation_gles.h",
   "+gpu/command_buffer/client/shared_memory_limits.h",
   "+gpu/command_buffer/common/context_creation_attribs.h",
diff --git a/cc/test/test_context_support.cc b/cc/test/test_context_support.cc
index 23bd980..2a4669a 100644
--- a/cc/test/test_context_support.cc
+++ b/cc/test/test_context_support.cc
@@ -113,23 +113,27 @@
   return false;
 }
 
-void TestContextSupport::CreateTransferCacheEntry(
-    const ClientTransferCacheEntry& entry) {
+void* TestContextSupport::MapTransferCacheEntry(size_t serialized_size) {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
+
+void TestContextSupport::UnmapAndCreateTransferCacheEntry(uint32_t type,
+                                                          uint32_t id) {
   NOTIMPLEMENTED();
 }
-bool TestContextSupport::ThreadsafeLockTransferCacheEntry(
-    TransferCacheEntryType entry_type,
-    uint32_t entry_id) {
+
+bool TestContextSupport::ThreadsafeLockTransferCacheEntry(uint32_t entry_type,
+                                                          uint32_t entry_id) {
   NOTIMPLEMENTED();
   return false;
 }
 void TestContextSupport::UnlockTransferCacheEntries(
-    const std::vector<std::pair<TransferCacheEntryType, uint32_t>>& entries) {
+    const std::vector<std::pair<uint32_t, uint32_t>>& entries) {
   NOTIMPLEMENTED();
 }
-void TestContextSupport::DeleteTransferCacheEntry(
-    TransferCacheEntryType entry_type,
-    uint32_t entry_id) {
+void TestContextSupport::DeleteTransferCacheEntry(uint32_t entry_type,
+                                                  uint32_t entry_id) {
   NOTIMPLEMENTED();
 }
 unsigned int TestContextSupport::GetTransferBufferFreeSize() const {
diff --git a/cc/test/test_context_support.h b/cc/test/test_context_support.h
index 94ca25f..80ca821 100644
--- a/cc/test/test_context_support.h
+++ b/cc/test/test_context_support.h
@@ -55,13 +55,13 @@
       uint32_t texture_id) override;
   bool ThreadsafeDiscardableTextureIsDeletedForTracing(
       uint32_t texture_id) override;
-  void CreateTransferCacheEntry(const ClientTransferCacheEntry& entry) override;
-  bool ThreadsafeLockTransferCacheEntry(TransferCacheEntryType entry_type,
+  void* MapTransferCacheEntry(size_t serialized_size) override;
+  void UnmapAndCreateTransferCacheEntry(uint32_t type, uint32_t id) override;
+  bool ThreadsafeLockTransferCacheEntry(uint32_t entry_type,
                                         uint32_t entry_id) override;
   void UnlockTransferCacheEntries(
-      const std::vector<std::pair<TransferCacheEntryType, uint32_t>>& entries)
-      override;
-  void DeleteTransferCacheEntry(TransferCacheEntryType entry_type,
+      const std::vector<std::pair<uint32_t, uint32_t>>& entries) override;
+  void DeleteTransferCacheEntry(uint32_t entry_type,
                                 uint32_t entry_id) override;
   unsigned int GetTransferBufferFreeSize() const override;
 
diff --git a/cc/test/test_in_process_context_provider.cc b/cc/test/test_in_process_context_provider.cc
index 9cab6f2f..5fa328f 100644
--- a/cc/test/test_in_process_context_provider.cc
+++ b/cc/test/test_in_process_context_provider.cc
@@ -14,7 +14,6 @@
 #include "components/viz/common/resources/platform_color.h"
 #include "gpu/GLES2/gl2extchromium.h"
 #include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/client/gles2_lib.h"
 #include "gpu/command_buffer/client/raster_implementation_gles.h"
 #include "gpu/command_buffer/client/shared_memory_limits.h"
 #include "gpu/command_buffer/common/context_creation_attribs.h"
diff --git a/cc/test/transfer_cache_test_helper.cc b/cc/test/transfer_cache_test_helper.cc
index 1fe3e908..655c260 100644
--- a/cc/test/transfer_cache_test_helper.cc
+++ b/cc/test/transfer_cache_test_helper.cc
@@ -13,27 +13,34 @@
     : context_(context) {}
 TransferCacheTestHelper::~TransferCacheTestHelper() = default;
 
-bool TransferCacheTestHelper::LockEntryDirect(TransferCacheEntryType type,
-                                              uint32_t id) {
-  return LockEntryInternal(type, id);
+bool TransferCacheTestHelper::LockEntryDirect(const EntryKey& key) {
+  return LockEntryInternal(key);
 }
 
-void TransferCacheTestHelper::CreateEntryDirect(
-    const ClientTransferCacheEntry& client_entry) {
-  CreateEntryInternal(client_entry);
+void TransferCacheTestHelper::CreateEntryDirect(const EntryKey& key,
+                                                base::span<uint8_t> data) {
+  // Deserialize into a service transfer cache entry.
+  std::unique_ptr<ServiceTransferCacheEntry> service_entry =
+      ServiceTransferCacheEntry::Create(key.first);
+  DCHECK(service_entry);
+  bool success = service_entry->Deserialize(context_, data);
+  DCHECK(success);
+
+  // Put things into the cache.
+  entries_.emplace(key, std::move(service_entry));
+  locked_entries_.insert(key);
+  EnforceLimits();
 }
 
 void TransferCacheTestHelper::UnlockEntriesDirect(
-    const std::vector<std::pair<TransferCacheEntryType, uint32_t>>& entries) {
-  for (const auto& entry : entries) {
-    locked_entries_.erase(entry);
+    const std::vector<EntryKey>& keys) {
+  for (const auto& key : keys) {
+    locked_entries_.erase(key);
   }
   EnforceLimits();
 }
 
-void TransferCacheTestHelper::DeleteEntryDirect(TransferCacheEntryType type,
-                                                uint32_t id) {
-  auto key = std::make_pair(type, id);
+void TransferCacheTestHelper::DeleteEntryDirect(const EntryKey& key) {
   locked_entries_.erase(key);
   entries_.erase(key);
 }
@@ -57,9 +64,7 @@
   return entries_[key].get();
 }
 
-bool TransferCacheTestHelper::LockEntryInternal(TransferCacheEntryType type,
-                                                uint32_t id) {
-  auto key = std::make_pair(type, id);
+bool TransferCacheTestHelper::LockEntryInternal(const EntryKey& key) {
   if (entries_.find(key) == entries_.end())
     return false;
   locked_entries_.insert(key);
@@ -75,27 +80,15 @@
   // Serialize data.
   size_t size = client_entry.SerializedSize();
   std::unique_ptr<uint8_t[]> data(new uint8_t[size]);
-  bool success = client_entry.Serialize(base::make_span(data.get(), size));
+  auto span = base::make_span(data.get(), size);
+  bool success = client_entry.Serialize(span);
   DCHECK(success);
-
-  // Deserialize into a service transfer cache entry.
-  std::unique_ptr<ServiceTransferCacheEntry> service_entry =
-      ServiceTransferCacheEntry::Create(client_entry.Type());
-  DCHECK(service_entry);
-  success =
-      service_entry->Deserialize(context_, base::make_span(data.get(), size));
-  DCHECK(success);
-
-  // Put things into the cache.
-  entries_[key] = std::move(service_entry);
-  locked_entries_.insert(key);
-  EnforceLimits();
+  CreateEntryDirect(key, span);
 }
 
-void TransferCacheTestHelper::FlushEntriesInternal(
-    const std::vector<EntryKey>& entries) {
-  for (auto& entry : entries)
-    locked_entries_.erase(entry);
+void TransferCacheTestHelper::FlushEntriesInternal(std::set<EntryKey> keys) {
+  for (auto& key : keys)
+    locked_entries_.erase(key);
   EnforceLimits();
 }
 
diff --git a/cc/test/transfer_cache_test_helper.h b/cc/test/transfer_cache_test_helper.h
index dc9e9b2..c04cb90 100644
--- a/cc/test/transfer_cache_test_helper.h
+++ b/cc/test/transfer_cache_test_helper.h
@@ -8,6 +8,7 @@
 #include <map>
 #include <vector>
 
+#include "base/containers/span.h"
 #include "cc/paint/transfer_cache_deserialize_helper.h"
 #include "cc/paint/transfer_cache_serialize_helper.h"
 
@@ -25,11 +26,11 @@
   void SetCachedItemsLimit(size_t limit);
 
   // Direct Access API (simulates ContextSupport methods).
-  bool LockEntryDirect(TransferCacheEntryType type, uint32_t id);
-  void CreateEntryDirect(const ClientTransferCacheEntry& entry);
-  void UnlockEntriesDirect(
-      const std::vector<std::pair<TransferCacheEntryType, uint32_t>>& entries);
-  void DeleteEntryDirect(TransferCacheEntryType type, uint32_t id);
+  bool LockEntryDirect(const EntryKey& key);
+
+  void CreateEntryDirect(const EntryKey& key, base::span<uint8_t> data);
+  void UnlockEntriesDirect(const std::vector<EntryKey>& keys);
+  void DeleteEntryDirect(const EntryKey& key);
 
  protected:
   // Deserialization helpers.
@@ -37,10 +38,9 @@
                                               uint32_t id) override;
 
   // Serialization helpers.
-  using EntryKey = std::pair<TransferCacheEntryType, uint32_t>;
-  bool LockEntryInternal(TransferCacheEntryType type, uint32_t id) override;
+  bool LockEntryInternal(const EntryKey& key) override;
   void CreateEntryInternal(const ClientTransferCacheEntry& entry) override;
-  void FlushEntriesInternal(const std::vector<EntryKey>& entries) override;
+  void FlushEntriesInternal(std::set<EntryKey> keys) override;
 
  private:
   // Helper functions.
diff --git a/cc/tiles/gpu_image_decode_cache.cc b/cc/tiles/gpu_image_decode_cache.cc
index 8ef3939..94146e8 100644
--- a/cc/tiles/gpu_image_decode_cache.cc
+++ b/cc/tiles/gpu_image_decode_cache.cc
@@ -1216,9 +1216,9 @@
 #endif
 }
 
-// Ensures that we can fit a new image of size |required_size| in our working
-// set. In doing so, this function will free unreferenced image data as
-// necessary to create rooom.
+// Checks whether we can fit a new image of size |required_size| in our
+// working set. Also frees unreferenced entries to keep us below our preferred
+// items limit.
 bool GpuImageDecodeCache::EnsureCapacity(size_t required_size) {
   TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug"),
                "GpuImageDecodeCache::EnsureCapacity");
@@ -1227,12 +1227,10 @@
   lifetime_max_items_in_cache_ =
       std::max(lifetime_max_items_in_cache_, persistent_cache_.size());
 
-  if (CanFitInWorkingSet(required_size) && !ExceedsPreferredCount())
-    return true;
-
-  // While we are over memory or preferred item capacity, we iterate through
-  // our set of cached image data in LRU order, removing unreferenced images.
-  for (auto it = persistent_cache_.rbegin(); it != persistent_cache_.rend();) {
+  // While we are over preferred item capacity, we iterate through our set of
+  // cached image data in LRU order, removing unreferenced images.
+  for (auto it = persistent_cache_.rbegin();
+       it != persistent_cache_.rend() && ExceedsPreferredCount();) {
     if (it->second->decode.ref_count != 0 ||
         it->second->upload.ref_count != 0) {
       ++it;
@@ -1241,22 +1239,19 @@
 
     // Current entry has no refs. Ensure it is not locked.
     DCHECK(!it->second->decode.is_locked());
+    DCHECK(!it->second->upload.is_locked());
 
-    // If an image without refs is budgeted, it must have an associated image
-    // upload.
-    DCHECK(!it->second->upload.budgeted || it->second->HasUploadedData());
+    // Unlocked images must not be budgeted.
+    DCHECK(!it->second->upload.budgeted);
 
     // Free the uploaded image if it exists.
     if (it->second->HasUploadedData())
       DeleteImage(it->second.get());
 
     it = persistent_cache_.Erase(it);
-
-    if (CanFitInWorkingSet(required_size) && !ExceedsPreferredCount())
-      return true;
   }
 
-  return false;
+  return CanFitInWorkingSet(required_size);
 }
 
 bool GpuImageDecodeCache::CanFitInWorkingSet(size_t size) const {
@@ -1383,7 +1378,15 @@
       return;
 
     ClientImageTransferCacheEntry image_entry(&pixmap, nullptr);
-    context_->ContextSupport()->CreateTransferCacheEntry(image_entry);
+    size_t size = image_entry.SerializedSize();
+    void* data = context_->ContextSupport()->MapTransferCacheEntry(size);
+    // TODO(piman): handle error (failed to allocate/map shm)
+    DCHECK(data);
+    bool succeeded = image_entry.Serialize(
+        base::make_span(reinterpret_cast<uint8_t*>(data), size));
+    DCHECK(succeeded);
+    context_->ContextSupport()->UnmapAndCreateTransferCacheEntry(
+        image_entry.UnsafeType(), image_entry.Id());
     image_data->upload.SetTransferCacheId(image_entry.Id());
   } else {
     DCHECK(!use_transfer_cache_);
@@ -1517,8 +1520,8 @@
   images_pending_unlock_.clear();
 
   for (auto id : ids_pending_unlock_) {
-    context_->ContextSupport()->UnlockTransferCacheEntries(
-        {std::make_pair(TransferCacheEntryType::kImage, id)});
+    context_->ContextSupport()->UnlockTransferCacheEntries({std::make_pair(
+        static_cast<uint32_t>(TransferCacheEntryType::kImage), id)});
   }
   ids_pending_unlock_.clear();
 
@@ -1533,9 +1536,9 @@
 
   for (auto id : ids_pending_deletion_) {
     if (context_->ContextSupport()->ThreadsafeLockTransferCacheEntry(
-            TransferCacheEntryType::kImage, id)) {
+            static_cast<uint32_t>(TransferCacheEntryType::kImage), id)) {
       context_->ContextSupport()->DeleteTransferCacheEntry(
-          TransferCacheEntryType::kImage, id);
+          static_cast<uint32_t>(TransferCacheEntryType::kImage), id);
     }
   }
   ids_pending_deletion_.clear();
@@ -1563,7 +1566,7 @@
     DCHECK(use_transfer_cache_);
     DCHECK(data->upload.transfer_cache_id());
     if (context_->ContextSupport()->ThreadsafeLockTransferCacheEntry(
-            TransferCacheEntryType::kImage,
+            static_cast<uint32_t>(TransferCacheEntryType::kImage),
             *data->upload.transfer_cache_id())) {
       data->upload.OnLock();
       return true;
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc
index 05232f3..c196d38 100644
--- a/cc/tiles/gpu_image_decode_cache_unittest.cc
+++ b/cc/tiles/gpu_image_decode_cache_unittest.cc
@@ -130,22 +130,39 @@
   void CompleteLockDiscardableTexureOnContextThread(
       uint32_t texture_id) override {}
 
-  void CreateTransferCacheEntry(
-      const ClientTransferCacheEntry& entry) override {
-    transfer_cache_helper_->CreateEntryDirect(entry);
+  void* MapTransferCacheEntry(size_t serialized_size) override {
+    mapped_entry_size_ = serialized_size;
+    mapped_entry_.reset(new uint8_t[serialized_size]);
+    return mapped_entry_.get();
   }
-  bool ThreadsafeLockTransferCacheEntry(TransferCacheEntryType entry_type,
-                                        uint32_t entry_id) override {
-    return transfer_cache_helper_->LockEntryDirect(entry_type, entry_id);
+
+  void UnmapAndCreateTransferCacheEntry(uint32_t type, uint32_t id) override {
+    transfer_cache_helper_->CreateEntryDirect(
+        MakeEntryKey(type, id),
+        base::make_span(mapped_entry_.get(), mapped_entry_size_));
+    mapped_entry_ = nullptr;
+    mapped_entry_size_ = 0;
+  }
+
+  bool ThreadsafeLockTransferCacheEntry(uint32_t type, uint32_t id) override {
+    return transfer_cache_helper_->LockEntryDirect(MakeEntryKey(type, id));
   }
   void UnlockTransferCacheEntries(
-      const std::vector<std::pair<TransferCacheEntryType, uint32_t>>& entries)
-      override {
-    transfer_cache_helper_->UnlockEntriesDirect(entries);
+      const std::vector<std::pair<uint32_t, uint32_t>>& entries) override {
+    std::vector<std::pair<TransferCacheEntryType, uint32_t>> keys;
+    keys.reserve(entries.size());
+    for (const auto& e : entries)
+      keys.emplace_back(MakeEntryKey(e.first, e.second));
+    transfer_cache_helper_->UnlockEntriesDirect(keys);
   }
-  void DeleteTransferCacheEntry(TransferCacheEntryType entry_type,
-                                uint32_t entry_id) override {
-    transfer_cache_helper_->DeleteEntryDirect(entry_type, entry_id);
+  void DeleteTransferCacheEntry(uint32_t type, uint32_t id) override {
+    transfer_cache_helper_->DeleteEntryDirect(MakeEntryKey(type, id));
+  }
+
+  std::pair<TransferCacheEntryType, uint32_t> MakeEntryKey(uint32_t type,
+                                                           uint32_t id) {
+    DCHECK_LE(type, static_cast<uint32_t>(TransferCacheEntryType::kLast));
+    return std::make_pair(static_cast<TransferCacheEntryType>(type), id);
   }
 
   // TestGLES2Interface:
@@ -188,6 +205,8 @@
   const std::string extension_string_;
   FakeDiscardableManager* discardable_manager_;
   TransferCacheTestHelper* transfer_cache_helper_;
+  size_t mapped_entry_size_ = 0;
+  std::unique_ptr<uint8_t[]> mapped_entry_;
 };
 
 class GPUImageDecodeTestMockContextProvider : public TestContextProvider {
@@ -880,6 +899,10 @@
   EXPECT_FALSE(cache->DiscardableIsLockedForTesting(draw_image));
 
   cache->DrawWithImageFinished(draw_image, decoded_draw_image);
+
+  // Our 0 working set size shouldn't prevent caching of unlocked discardable,
+  // so our single entry should be cached.
+  EXPECT_EQ(cache->GetNumCacheEntriesForTesting(), 1u);
 }
 
 TEST_P(GpuImageDecodeCacheTest, GetDecodedImageForDrawLargerScale) {
@@ -1084,13 +1107,11 @@
   EXPECT_TRUE(decoded_draw_image.image());
   EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked());
   EXPECT_FALSE(cache->DiscardableIsLockedForTesting(draw_image));
-
-  cache->SetWorkingSetLimitForTesting(96 * 1024 * 1024);
-
-  // Finish our draw after increasing the memory limit, image should be added to
-  // cache.
   cache->DrawWithImageFinished(draw_image, decoded_draw_image);
 
+  // Increase memory limit and attempt to use the same image. It should be in
+  // available for ref.
+  cache->SetWorkingSetLimitForTesting(96 * 1024 * 1024);
   ImageDecodeCache::TaskResult another_result =
       cache->GetTaskForImageAndRef(draw_image, ImageDecodeCache::TracingInfo());
   EXPECT_TRUE(another_result.need_unref);
@@ -1128,6 +1149,10 @@
 
   cache->DrawWithImageFinished(draw_image, decoded_draw_image);
   cache->DrawWithImageFinished(draw_image, another_decoded_draw_image);
+
+  // Our 0 working set size shouldn't prevent caching of unlocked discardable,
+  // so our single entry should be cached.
+  EXPECT_EQ(cache->GetNumCacheEntriesForTesting(), 1u);
 }
 
 TEST_P(GpuImageDecodeCacheTest,
@@ -1988,6 +2013,49 @@
   EXPECT_EQ(0u, cache->GetInUseCacheEntriesForTesting());
 }
 
+TEST_P(GpuImageDecodeCacheTest, EvictDueToCachedItemsLimit) {
+  auto cache = CreateCache();
+  bool is_decomposable = true;
+  SkFilterQuality quality = kHigh_SkFilterQuality;
+
+  // Allow a single 10x10 images.
+  cache->SetWorkingSetLimitForTesting(
+      SkColorTypeBytesPerPixel(GetParam().first) * 10 * 10 * 10);
+  // Set the THROTTLED state, which limits our cache to 100 entries.
+  cache->OnMemoryStateChange(base::MemoryState::THROTTLED);
+
+  // Create and unlock 200 images. We should end up with 100 cached.
+  for (int i = 0; i < 200; ++i) {
+    PaintImage image = CreateDiscardablePaintImage(gfx::Size(10, 10));
+    DrawImage draw_image(
+        image, SkIRect::MakeWH(image.width(), image.height()), quality,
+        CreateMatrix(SkSize::Make(1.0f, 1.0f), is_decomposable),
+        PaintImage::kDefaultFrameIndex, DefaultColorSpace());
+
+    ImageDecodeCache::TaskResult result = cache->GetTaskForImageAndRef(
+        draw_image, ImageDecodeCache::TracingInfo());
+    EXPECT_TRUE(result.need_unref);
+    if (result.task) {
+      TestTileTaskRunner::ProcessTask(result.task->dependencies()[0].get());
+      TestTileTaskRunner::ProcessTask(result.task.get());
+    }
+
+    // Must hold context lock before calling GetDecodedImageForDraw /
+    // DrawWithImageFinished.
+    viz::ContextProvider::ScopedContextLock context_lock(context_provider());
+    DecodedDrawImage decoded_draw_image =
+        EnsureImageBacked(cache->GetDecodedImageForDraw(draw_image));
+    EXPECT_TRUE(decoded_draw_image.image());
+    EXPECT_TRUE(decoded_draw_image.image()->isTextureBacked());
+    EXPECT_FALSE(cache->DiscardableIsLockedForTesting(draw_image));
+
+    cache->DrawWithImageFinished(draw_image, decoded_draw_image);
+    cache->UnrefImage(draw_image);
+  }
+
+  EXPECT_EQ(cache->GetNumCacheEntriesForTesting(), 100u);
+}
+
 INSTANTIATE_TEST_CASE_P(
     GpuImageDecodeCacheTests,
     GpuImageDecodeCacheTest,
diff --git a/chrome/VERSION b/chrome/VERSION
index 8bdd85a..8df5c0c 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=66
 MINOR=0
-BUILD=3329
+BUILD=3330
 PATCH=0
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index 13ce2cd..8524fb3a 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -617,10 +617,13 @@
       "javatests/src/org/chromium/chrome/browser/vr_shell/rules/VrTestRule.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/rules/WebappActivityVrTestRule.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/util/NfcSimUtils.java",
+      "javatests/src/org/chromium/chrome/browser/vr_shell/util/TransitionUtils.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/util/VrInfoBarUtils.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/util/VrShellDelegateUtils.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTestRuleUtils.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTransitionUtils.java",
+      "javatests/src/org/chromium/chrome/browser/vr_shell/util/XrTransitionUtils.java",
+      "javatests/src/org/chromium/chrome/browser/vr_shell/TestFramework.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/TestVrShellDelegate.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/VrFeedbackInfoBarTest.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/VrInstallUpdateInfoBarTest.java",
@@ -634,6 +637,8 @@
       "javatests/src/org/chromium/chrome/browser/vr_shell/WebVrInputTest.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTabTest.java",
       "javatests/src/org/chromium/chrome/browser/vr_shell/WebVrTransitionTest.java",
+      "javatests/src/org/chromium/chrome/browser/vr_shell/WebXrTransitionTest.java",
+      "javatests/src/org/chromium/chrome/browser/vr_shell/XrTestFramework.java",
       "javatests/src/org/chromium/chrome/browser/webapps/TestFetchStorageCallback.java",
       "javatests/src/org/chromium/chrome/browser/webapps/WebappActivityTestRule.java",
     ]
diff --git a/chrome/android/java/res/drawable-hdpi/ic_content_paste_grey600_24dp.png b/chrome/android/java/res/drawable-hdpi/ic_content_paste_grey600_24dp.png
new file mode 100644
index 0000000..20660bf2
--- /dev/null
+++ b/chrome/android/java/res/drawable-hdpi/ic_content_paste_grey600_24dp.png
Binary files differ
diff --git a/chrome/android/java/res/drawable-hdpi/ic_new_releases_black_24dp.png b/chrome/android/java/res/drawable-hdpi/ic_new_releases_black_24dp.png
deleted file mode 100644
index 668c14d..0000000
--- a/chrome/android/java/res/drawable-hdpi/ic_new_releases_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/chrome/android/java/res/drawable-mdpi/ic_content_paste_grey600_24dp.png b/chrome/android/java/res/drawable-mdpi/ic_content_paste_grey600_24dp.png
new file mode 100644
index 0000000..983671f
--- /dev/null
+++ b/chrome/android/java/res/drawable-mdpi/ic_content_paste_grey600_24dp.png
Binary files differ
diff --git a/chrome/android/java/res/drawable-mdpi/ic_new_releases_black_24dp.png b/chrome/android/java/res/drawable-mdpi/ic_new_releases_black_24dp.png
deleted file mode 100644
index d59b229..0000000
--- a/chrome/android/java/res/drawable-mdpi/ic_new_releases_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/chrome/android/java/res/drawable-xhdpi/ic_content_paste_grey600_24dp.png b/chrome/android/java/res/drawable-xhdpi/ic_content_paste_grey600_24dp.png
new file mode 100644
index 0000000..594730eeb
--- /dev/null
+++ b/chrome/android/java/res/drawable-xhdpi/ic_content_paste_grey600_24dp.png
Binary files differ
diff --git a/chrome/android/java/res/drawable-xhdpi/ic_new_releases_black_24dp.png b/chrome/android/java/res/drawable-xhdpi/ic_new_releases_black_24dp.png
deleted file mode 100644
index 0f49f7e..0000000
--- a/chrome/android/java/res/drawable-xhdpi/ic_new_releases_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/chrome/android/java/res/drawable-xxhdpi/ic_content_paste_grey600_24dp.png b/chrome/android/java/res/drawable-xxhdpi/ic_content_paste_grey600_24dp.png
new file mode 100644
index 0000000..7ae9dfbe
--- /dev/null
+++ b/chrome/android/java/res/drawable-xxhdpi/ic_content_paste_grey600_24dp.png
Binary files differ
diff --git a/chrome/android/java/res/drawable-xxhdpi/ic_new_releases_black_24dp.png b/chrome/android/java/res/drawable-xxhdpi/ic_new_releases_black_24dp.png
deleted file mode 100644
index 56c24d8..0000000
--- a/chrome/android/java/res/drawable-xxhdpi/ic_new_releases_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/chrome/android/java/res/drawable-xxxhdpi/ic_content_paste_grey600_24dp.png b/chrome/android/java/res/drawable-xxxhdpi/ic_content_paste_grey600_24dp.png
new file mode 100644
index 0000000..d3416af
--- /dev/null
+++ b/chrome/android/java/res/drawable-xxxhdpi/ic_content_paste_grey600_24dp.png
Binary files differ
diff --git a/chrome/android/java/res/drawable-xxxhdpi/ic_new_releases_black_24dp.png b/chrome/android/java/res/drawable-xxxhdpi/ic_new_releases_black_24dp.png
deleted file mode 100644
index 7eb3da9..0000000
--- a/chrome/android/java/res/drawable-xxxhdpi/ic_new_releases_black_24dp.png
+++ /dev/null
Binary files differ
diff --git a/chrome/android/java/res/drawable/chrome_home_promo_phone_background.xml b/chrome/android/java/res/drawable/chrome_home_promo_phone_background.xml
deleted file mode 100644
index 7b87897..0000000
--- a/chrome/android/java/res/drawable/chrome_home_promo_phone_background.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-<vector
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:targetApi="21"
-    android:height="24dp"
-    android:viewportHeight="134.0"
-    android:viewportWidth="92.0"
-    android:width="24dp">
-
-    <path android:fillColor="#C0E09E"
-        android:pathData="M2.4,-0L89.6,-0C90.93,-0 92,1.07 92,2.4L92,134L0,134L-0,2.4C-0,1.07 1.07,0 2.4,-0Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#55A326"
-        android:pathData="M35.69,45.36C54.53,28.55 73.22,20.39 92,20.88L92,90.71C91.64,90.71 72.87,75.6 35.69,45.36Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#007C6A"
-        android:pathData="M92,88.21L92,134L0,134L0,38C62.95,38.16 92,86.88 92,88.21Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#F6F5ED"
-        android:pathData="M18,92.58C18,89.54 19.44,89.24 22.32,91.68C25.03,93.69 28.26,97.01 32.02,101.66L61.42,101.66C65.2,96.98 68.35,93.66 70.87,91.68C73.62,89.17 75,89.47 75,92.58L75,134.03L18,134.03L18,92.58Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#DA7D92"
-        android:pathData="M43,128l7,0l-3.5,3z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#2E2C29"
-        android:pathData="M31,121.1a2.53,3.1 0,1 0,5.05 0a2.53,3.1 0,1 0,-5.05 0z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#2E2C29"
-        android:pathData="M56.82,121.1a2.53,3.1 0,1 0,5.05 0a2.53,3.1 0,1 0,-5.05 0z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#D6D4CC"
-        android:pathData="M20.35,134C20.76,133.53 21,132.8 21,131.85C21,128.07 17.42,125 13,125C8.58,125 5,128.07 5,131.85C5,132.83 5.23,133.53 5.66,134L20.35,134Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-    <path android:fillColor="#D6D4CC"
-        android:pathData="M86.35,134C86.76,133.53 87,132.8 87,131.85C87,128.07 83.42,125 79,125C74.58,125 71,128.07 71,131.85C71,132.83 71.23,133.53 71.66,134L86.35,134Z"
-        android:strokeColor="#00000000" android:strokeWidth="1"/>
-</vector>
diff --git a/chrome/android/java/res/drawable/chrome_home_promo_static.xml b/chrome/android/java/res/drawable/chrome_home_promo_static.xml
deleted file mode 100644
index af9b2517..0000000
--- a/chrome/android/java/res/drawable/chrome_home_promo_static.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        tools:targetApi="21"
-        android:width="252dp"
-        android:height="216dp"
-        android:viewportWidth="252.0"
-        android:viewportHeight="216.0">
-    <path
-        android:pathData="M131.35,100.06l-9.06,-9.06l-2.29,2.29l9.06,9.06l-9.06,9.06l2.29,2.29l9.06,-9.06l2.29,-2.29z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M93.6,0C101.55,0 108,6.45 108,14.4L108,191.6C108,199.55 101.55,206 93.6,206L14.4,206C6.45,206 0,199.55 0,191.6L0,14.4C0,6.45 6.45,0 14.4,0L93.6,0Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#E8EAED"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M10.4,22L97.6,22C98.93,22 100,23.07 100,24.4L100,156L8,156L8,24.4C8,23.07 9.07,22 10.4,22Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#C0E09E"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M43.69,67.36C62.53,50.55 81.22,42.39 100,42.88L100,112.71C99.64,112.71 80.87,97.6 43.69,67.36Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#55A326"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M100,110.21L100,156L8,156L8,60C70.95,60.16 100,108.88 100,110.21Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#007C6A"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M26,114.58C26,111.54 27.44,111.24 30.32,113.68C33.03,115.69 36.26,119.01 40.02,123.66L69.42,123.66C73.2,118.98 76.35,115.66 78.87,113.68C81.62,111.17 83,111.47 83,114.58L83,156.03L26,156.03L26,114.58Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#F6F5ED"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M51,150l7,0l-3.5,3z"
-        android:strokeColor="#00000000"
-        android:fillColor="#DA7D92"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M39,143.1a2.53,3.1 0,1 0,5.05 0a2.53,3.1 0,1 0,-5.05 0z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M64.82,143.1a2.53,3.1 0,1 0,5.05 0a2.53,3.1 0,1 0,-5.05 0z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M28.35,156C28.76,155.53 29,154.8 29,153.85C29,150.07 25.42,147 21,147C16.58,147 13,150.07 13,153.85C13,154.83 13.23,155.53 13.66,156L28.35,156Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#D6D4CC"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M94.35,156C94.76,155.53 95,154.8 95,153.85C95,150.07 91.42,147 87,147C82.58,147 79,150.07 79,153.85C79,154.83 79.23,155.53 79.66,156L94.35,156Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#D6D4CC"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M8,156h92v25h-92z"
-        android:strokeColor="#00000000"
-        android:fillColor="#FFFFFF"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M18.57,163C15.49,163 13,165.69 13,169C13,172.31 15.49,175 18.57,175L89.43,175C92.51,175 95,172.31 95,169C95,165.69 92.51,163 89.43,163L18.57,163Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#E8EAED"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M54,159C62.28,159 69,165.6 69,173.75L69,216L39,216L39,173.75C39,165.6 45.72,159 54,159Z"
-        android:fillAlpha="0.5"
-        android:strokeColor="#00000000"
-        android:fillColor="#00B7FF"
-        android:strokeWidth="1"
-        android:strokeAlpha="0.5"/>
-    <path
-        android:pathData="M48,172l6,-7l6,7z"
-        android:strokeColor="#00000000"
-        android:fillColor="#FFFFFF"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M237.6,0C245.55,0 252,6.45 252,14.4L252,191.6C252,199.55 245.55,206 237.6,206L158.4,206C150.45,206 144,199.55 144,191.6L144,14.4C144,6.45 150.45,0 158.4,0L237.6,0Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#E8EAED"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M154.4,22L241.6,22C242.93,22 244,23.07 244,24.4L244,91L152,91L152,24.4C152,23.07 153.07,22 154.4,22Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#C0E09E"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M187.69,67.36C206.53,50.55 225.22,42.39 244,42.88L244,112.71C243.64,112.71 224.87,97.6 187.69,67.36Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#55A326"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M152,91L152,60C188.81,60.1 214.03,76.88 228.63,91L152,91Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#007C6A"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M152,91h92v91h-92z"
-        android:strokeColor="#00000000"
-        android:fillColor="#FFFFFF"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M162.57,98C159.49,98 157,100.69 157,104C157,107.31 159.49,110 162.57,110L233.43,110C236.51,110 239,107.31 239,104C239,100.69 236.51,98 233.43,98L162.57,98Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#E8EAED"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M168,124m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#38266E"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M198,124m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#FED7B4"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M228,124m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#FC757D"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M168,147m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#93E4E2"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M198,147m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#55A326"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M228,147m-8,0a8,8 0,1 1,16 0a8,8 0,1 1,-16 0"
-        android:strokeColor="#00000000"
-        android:fillColor="#FCE55F"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M204.33,166.83l-4.79,-0.41l-1.87,-4.41l-1.87,4.42l-4.79,0.41l3.64,3.15l-1.09,4.69l4.12,-2.49l4.12,2.49l-1.09,-4.69z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M173.49,168.92l-3.28,0l0,-4.92l-4.92,0l0,4.92l-3.28,0l5.74,5.74z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M228.24,164C225.35,164 223,166.35 223,169.25C223,172.15 225.35,174.5 228.24,174.5C231.15,174.5 233.5,172.15 233.5,169.25C233.5,166.35 231.15,164 228.24,164Z"
-        android:strokeColor="#00000000"
-        android:fillColor="#404549"
-        android:strokeWidth="1"/>
-    <path
-        android:pathData="M228.79,167l-0.79,0l0,3.15l2.76,1.65l0.39,-0.65l-2.36,-1.4z"
-        android:strokeColor="#00000000"
-        android:fillColor="#FFFFFF"
-        android:strokeWidth="1"/>
-</vector>
diff --git a/chrome/android/java/res/layout/bookmark_edit.xml b/chrome/android/java/res/layout/bookmark_edit.xml
index a9381fb..27fd2b7 100644
--- a/chrome/android/java/res/layout/bookmark_edit.xml
+++ b/chrome/android/java/res/layout/bookmark_edit.xml
@@ -20,7 +20,7 @@
             android:layout_marginStart="16dp"
             android:orientation="vertical" >
 
-            <org.chromium.chrome.browser.widget.FloatLabelLayout
+            <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="22dp" >
@@ -33,7 +33,7 @@
                     android:inputType="textCapSentences|textAutoCorrect"
                     android:singleLine="true"
                     chrome:alertMessage="@string/bookmark_missing_title" />
-            </org.chromium.chrome.browser.widget.FloatLabelLayout>
+            </org.chromium.chrome.browser.widget.CompatibilityTextInputLayout>
 
             <TextView
                 android:layout_width="wrap_content"
@@ -55,7 +55,7 @@
                 android:textAppearance="@style/TextAppearance.AppCompat.Medium"
                 android:textColor="@color/dark_mode_tint" />
 
-            <org.chromium.chrome.browser.widget.FloatLabelLayout
+            <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="24dp" >
@@ -69,7 +69,7 @@
                     android:inputType="textUri"
                     android:singleLine="true"
                     chrome:alertMessage="@string/bookmark_missing_url" />
-            </org.chromium.chrome.browser.widget.FloatLabelLayout>
+            </org.chromium.chrome.browser.widget.CompatibilityTextInputLayout>
         </LinearLayout>
     </ScrollView>
 
diff --git a/chrome/android/java/res/layout/chrome_home_promo_header.xml b/chrome/android/java/res/layout/chrome_home_promo_header.xml
deleted file mode 100644
index b2d7d97..0000000
--- a/chrome/android/java/res/layout/chrome_home_promo_header.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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. -->
-
-<org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoMenuHeader
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    style="@style/OverflowMenuHeaderLayout"
-    android:id="@+id/chrome_home_promo_menu_header" >
-
-    <TextView
-        style="@style/OverflowMenuHeaderText"
-        android:text="@string/chrome_home_opt_out_menu_item" />
-
-    <include layout="@layout/chrome_home_menu_header_icon" />
-
-</org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoMenuHeader>
diff --git a/chrome/android/java/res/layout/distilled_page_prefs_view.xml b/chrome/android/java/res/layout/distilled_page_prefs_view.xml
index ef59467..7df43bf 100644
--- a/chrome/android/java/res/layout/distilled_page_prefs_view.xml
+++ b/chrome/android/java/res/layout/distilled_page_prefs_view.xml
@@ -73,6 +73,7 @@
             android:id="@+id/font_size"
             android:layout_width="0dp"
             android:layout_height="48dp"
+            android:maxHeight="48dp"
             android:layout_gravity="center"
             android:layout_weight="1"
             android:orientation="horizontal"
diff --git a/chrome/android/java/res/layout/download_location_dialog.xml b/chrome/android/java/res/layout/download_location_dialog.xml
new file mode 100644
index 0000000..7bcd361d
--- /dev/null
+++ b/chrome/android/java/res/layout/download_location_dialog.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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. -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical" android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/path_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+</LinearLayout>
\ No newline at end of file
diff --git a/chrome/android/java/res/layout/homepage_editor.xml b/chrome/android/java/res/layout/homepage_editor.xml
index b58a38949..24a7230 100644
--- a/chrome/android/java/res/layout/homepage_editor.xml
+++ b/chrome/android/java/res/layout/homepage_editor.xml
@@ -15,7 +15,7 @@
         android:orientation="vertical"
         android:focusableInTouchMode="true" >
 
-        <org.chromium.chrome.browser.widget.FloatLabelLayout
+        <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
             android:id="@+id/homepage_url"
             style="@style/PreferenceScreenLayout"
             android:layout_width="match_parent"
@@ -27,7 +27,7 @@
                 android:inputType="textUri"
                 android:singleLine="true"
                 android:hint="@string/options_homepage_edit_label" />
-        </org.chromium.chrome.browser.widget.FloatLabelLayout>
+        </org.chromium.chrome.browser.widget.CompatibilityTextInputLayout>
 
         <Space style="@style/ButtonBarTopSpacer" />
         <View style="@style/ButtonBarTopDivider" />
diff --git a/chrome/android/java/res/layout/http_auth_dialog.xml b/chrome/android/java/res/layout/http_auth_dialog.xml
index 468bd2f2..a16edde 100644
--- a/chrome/android/java/res/layout/http_auth_dialog.xml
+++ b/chrome/android/java/res/layout/http_auth_dialog.xml
@@ -17,7 +17,7 @@
           android:layout_width="match_parent"
           android:layout_height="wrap_content" />
 
-      <org.chromium.chrome.browser.widget.FloatLabelLayout
+      <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
           android:id="@+id/username_label"
           android:layout_width="match_parent"
           android:layout_height="wrap_content" >
@@ -29,9 +29,9 @@
               android:inputType="textNoSuggestions"
               android:imeOptions="flagNoExtractUi"
               android:importantForAutofill="no" />
-      </org.chromium.chrome.browser.widget.FloatLabelLayout>
+      </org.chromium.chrome.browser.widget.CompatibilityTextInputLayout>
 
-      <org.chromium.chrome.browser.widget.FloatLabelLayout
+      <org.chromium.chrome.browser.widget.CompatibilityTextInputLayout
           android:id="@+id/password_label"
           android:layout_width="match_parent"
           android:layout_height="wrap_content" >
@@ -43,7 +43,7 @@
               android:inputType="textPassword"
               android:imeOptions="flagNoExtractUi"
               android:importantForAutofill="no" />
-      </org.chromium.chrome.browser.widget.FloatLabelLayout>
+      </org.chromium.chrome.browser.widget.CompatibilityTextInputLayout>
 
     </LinearLayout>
 
diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml
index 5e50e87..38f171a 100644
--- a/chrome/android/java/res/layout/new_tab_page_layout.xml
+++ b/chrome/android/java/res/layout/new_tab_page_layout.xml
@@ -97,32 +97,6 @@
             android:src="@drawable/btn_mic" />
     </LinearLayout>
 
-    <!-- Chrome Home promo -->
-    <LinearLayout
-        android:id="@+id/chrome_home_promo_container"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginEnd="8dp"
-        android:gravity="center_vertical"
-        android:visibility="gone">
-        <org.chromium.chrome.browser.widget.TintedImageView
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="8dp"
-            android:layout_marginBottom="8dp"
-            android:layout_marginStart="8dp"
-            android:src="@drawable/ic_new_releases_black_24dp" />
-        <org.chromium.ui.widget.TextViewWithClickableSpans
-            android:id="@+id/chrome_home_promo_text"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:padding="8dp"
-            android:textAppearance="@style/BlackHint2"
-            chrome:leading="20sp" />
-    </LinearLayout>
-
     <!-- Middle spacer -->
     <View
         android:id="@+id/ntp_middle_spacer"
diff --git a/chrome/android/java/res/xml/download_preferences.xml b/chrome/android/java/res/xml/download_preferences.xml
index 32f57d17..21768ec9 100644
--- a/chrome/android/java/res/xml/download_preferences.xml
+++ b/chrome/android/java/res/xml/download_preferences.xml
@@ -4,7 +4,15 @@
      found in the LICENSE file. -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
     <org.chromium.chrome.browser.preferences.ChromeBaseListPreference
         android:key="location_change"
         android:title="@string/download_location_title" />
+
+    <org.chromium.chrome.browser.preferences.ChromeSwitchPreference
+        android:key="location_prompt_enabled"
+        android:title="@string/download_location_prompt_enabled_title"
+        android:summaryOn="@string/text_on"
+        android:summaryOff="@string/text_off" />
+
 </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 ddad40b..8eef786 100644
--- a/chrome/android/java/res/xml/single_website_preferences.xml
+++ b/chrome/android/java/res/xml/single_website_preferences.xml
@@ -64,6 +64,8 @@
         android:key="sound_permission_list" />
     <org.chromium.chrome.browser.preferences.ChromeBaseListPreference
         android:key="midi_sysex_permission_list" />
+    <org.chromium.chrome.browser.preferences.ChromeBaseListPreference
+        android:key="clipboard_permission_list" />
 
     <org.chromium.chrome.browser.preferences.ButtonPreference
         android:key="reset_site_button"
diff --git a/chrome/android/java/res/xml/site_settings_preferences.xml b/chrome/android/java/res/xml/site_settings_preferences.xml
index 8450b653..afb425b 100644
--- a/chrome/android/java/res/xml/site_settings_preferences.xml
+++ b/chrome/android/java/res/xml/site_settings_preferences.xml
@@ -84,4 +84,8 @@
         android:key="usb"
         android:title="@string/website_settings_usb"
         android:icon="@drawable/settings_usb" />
+    <!-- Clipboard API -->
+    <org.chromium.chrome.browser.preferences.website.SiteSettingsPreference
+        android:fragment="org.chromium.chrome.browser.preferences.website.SingleCategoryPreferences"
+        android:key="clipboard" />
 </PreferenceScreen>
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index c3338ad..87a3e321 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -22,7 +22,6 @@
 import android.os.StrictMode;
 import android.os.SystemClock;
 import android.support.annotation.CallSuper;
-import android.support.v7.app.AlertDialog;
 import android.util.DisplayMetrics;
 import android.util.Pair;
 import android.view.Menu;
@@ -72,7 +71,7 @@
         .ContextualSearchTabPromotionDelegate;
 import org.chromium.chrome.browser.datausage.DataUseTabUIManager;
 import org.chromium.chrome.browser.device.DeviceClassManager;
-import org.chromium.chrome.browser.dom_distiller.DistilledPagePrefsView;
+import org.chromium.chrome.browser.dom_distiller.DomDistillerUIUtils;
 import org.chromium.chrome.browser.dom_distiller.ReaderModeManager;
 import org.chromium.chrome.browser.download.DownloadManagerService;
 import org.chromium.chrome.browser.download.DownloadUtils;
@@ -1970,13 +1969,7 @@
             currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnChange);
             RecordUserAction.record("MobileMenuRequestDesktopSite");
         } else if (id == R.id.reader_mode_prefs_id) {
-            if (currentTab.getWebContents() != null) {
-                RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened");
-                AlertDialog.Builder builder =
-                        new AlertDialog.Builder(this, R.style.AlertDialogTheme);
-                builder.setView(DistilledPagePrefsView.create(this));
-                builder.show();
-            }
+            DomDistillerUIUtils.openSettings(currentTab.getWebContents());
         } else {
             return false;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
index 445bf94..3575477 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -168,13 +168,9 @@
             "ChromeHomeInactivitySheetExpansion";
     public static final String CHROME_HOME_MENU_ITEMS_EXPAND_SHEET =
             "ChromeHomeMenuItemsExpandSheet";
-    public static final String CHROME_HOME_OPT_OUT_SNACKBAR = "ChromeHomeOptOutSnackbar";
     public static final String CHROME_HOME_PERSISTENT_IPH = "ChromeHomePersistentIph";
     public static final String CHROME_HOME_PERSONALIZED_OMNIBOX_SUGGESTIONS =
             "ChromeHomePersonalizedOmniboxSuggestions";
-    public static final String CHROME_HOME_PROMO = "ChromeHomePromo";
-    public static final String CHROME_HOME_PROMO_INFO_ONLY = "ChromeHomePromoInfoOnly";
-    public static final String CHROME_HOME_PROMO_ON_STARTUP = "ChromeHomePromoOnStartup";
     public static final String CHROME_HOME_PULL_TO_REFRESH_IPH_AT_TOP =
             "ChromeHomePullToRefreshIphAtTop";
     public static final String CHROME_HOME_SHOW_GOOGLE_G_WHEN_URL_CLEARED =
@@ -182,8 +178,10 @@
     public static final String CHROME_HOME_SURVEY = "ChromeHomeSurvey";
     public static final String CHROME_HOME_SWIPE_VELOCITY_FEATURE = "ChromeHomeSwipeLogicVelocity";
     public static final String CHROME_MEMEX = "ChromeMemex";
+    public static final String CHROME_MODERN_DESIGN = "ChromeModernDesign";
     public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection";
     public static final String CLEAR_OLD_BROWSING_DATA = "ClearOldBrowsingData";
+    public static final String CLIPBOARD_CONTENT_SETTING = "ClipboardContentSetting";
     public static final String CONTENT_SUGGESTIONS_FAVICONS_FROM_NEW_SERVER =
             "ContentSuggestionsFaviconsFromNewServer";
     public static final String CONTENT_SUGGESTIONS_NOTIFICATIONS =
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 aa995b4..44296c1b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -130,8 +130,6 @@
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet.StateChangeReason;
 import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomeIphMenuHeader;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoDialog;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoMenuHeader;
 import org.chromium.chrome.browser.widget.emptybackground.EmptyBackgroundViewWrapper;
 import org.chromium.chrome.browser.widget.textbubble.ViewAnchoredTextBubble;
 import org.chromium.components.feature_engagement.EventConstants;
@@ -608,14 +606,8 @@
                 isShowingPromo = SigninPromoUtil.launchSigninPromoIfNeeded(this)
                         || DataReductionPromoScreen.launchDataReductionPromo(
                                    this, mTabModelSelectorImpl.getCurrentModel().isIncognito());
-                if (!isShowingPromo) {
-                    if (FeatureUtilities.shouldShowChromeHomePromoForStartup()) {
-                        new ChromeHomePromoDialog(this, ChromeHomePromoDialog.ShowReason.STARTUP)
-                                .show();
-                        isShowingPromo = true;
-                    } else if (getBottomSheet() != null) {
-                        getBottomSheet().showColdStartHelpBubble();
-                    }
+                if (!isShowingPromo && getBottomSheet() != null) {
+                    getBottomSheet().showColdStartHelpBubble();
                 }
             } else {
                 preferenceManager.setPromosSkippedOnFirstStart(true);
@@ -1687,17 +1679,6 @@
                 boolean isPageMenu = getAppMenuPropertiesDelegate().shouldShowPageMenu();
                 LayoutInflater inflater = LayoutInflater.from(ChromeTabbedActivity.this);
 
-                // Show the Chrome Home promo header if available.
-                if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)) {
-                    if (!isPageMenu) return null;
-
-                    ChromeHomePromoMenuHeader menuHeader =
-                            (ChromeHomePromoMenuHeader) inflater.inflate(
-                                    R.layout.chrome_home_promo_header, null);
-                    menuHeader.initialize(ChromeTabbedActivity.this);
-                    return menuHeader;
-                }
-
                 Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
                 if (!tracker.wouldTriggerHelpUI(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE)) {
                     return DataReductionProxySettings.getInstance()
@@ -1739,9 +1720,7 @@
                 if (getBottomSheet() == null) return super.shouldShowHeader(maxMenuHeight);
 
                 Tracker tracker = TrackerFactory.getTrackerForProfile(Profile.getLastUsedProfile());
-                if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)
-                        || tracker.wouldTriggerHelpUI(
-                                   FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE)) {
+                if (tracker.wouldTriggerHelpUI(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE)) {
                     return true;
                 }
 
@@ -2181,8 +2160,6 @@
         }
 
         super.onDestroyInternal();
-
-        FeatureUtilities.finalizePendingFeatures();
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java
index c40ba667..a0feb06f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkAddEditFolderActivity.java
@@ -159,7 +159,7 @@
 
         mParentTextView.setText(mModel.getBookmarkTitle(mParentId));
 
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             findViewById(R.id.shadow).setVisibility(View.VISIBLE);
             toolbar.setTitleTextAppearance(toolbar.getContext(), R.style.BlackHeadline2);
             toolbar.setBackgroundColor(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java
index 08d0e88..d928f84 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkEditActivity.java
@@ -87,7 +87,7 @@
 
         updateViewContent(false);
 
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             findViewById(R.id.shadow).setVisibility(View.VISIBLE);
             toolbar.setTitleTextAppearance(toolbar.getContext(), R.style.BlackHeadline2);
             toolbar.setBackgroundColor(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java
index 2baed9ed..11b504d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkFolderSelectActivity.java
@@ -167,7 +167,7 @@
 
         updateFolderList();
 
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             findViewById(R.id.shadow).setVisibility(View.VISIBLE);
             toolbar.setTitleTextAppearance(toolbar.getContext(), R.style.BlackHeadline2);
             toolbar.setBackgroundColor(
@@ -371,7 +371,7 @@
                 iconDrawable = vectorDrawable;
             }
 
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 startIcon.setBackgroundResource(R.drawable.list_item_icon_modern_bg);
                 startIcon.setImageDrawable(entry.mIsSelected
                                 ? TintedDrawable.constructTintedDrawable(view.getResources(),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java
index b08e8745ad..609ef72 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemRow.java
@@ -43,7 +43,8 @@
         int iconColor = ApiCompatibilityUtils.getColor(
                 getResources(), R.color.default_favicon_background_color);
         mIconGenerator = new RoundedIconGenerator(mDisplayedIconSize, mDisplayedIconSize,
-                FeatureUtilities.isChromeHomeEnabled() ? mDisplayedIconSize / 2 : mCornerRadius,
+                FeatureUtilities.isChromeModernDesignEnabled() ? mDisplayedIconSize / 2
+                                                               : mCornerRadius,
                 iconColor, textSize);
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
index d8fd4173..d5e3670 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManager.java
@@ -155,8 +155,8 @@
         mToolbar = (BookmarkActionBar) mSelectableListLayout.initializeToolbar(
                 R.layout.bookmark_action_bar, mSelectionDelegate, 0, null, R.id.normal_menu_group,
                 R.id.selection_mode_menu_group,
-                FeatureUtilities.isChromeHomeEnabled() ? R.color.modern_toolbar_bg
-                                                       : R.color.modern_primary_color,
+                FeatureUtilities.isChromeModernDesignEnabled() ? R.color.modern_toolbar_bg
+                                                               : R.color.modern_primary_color,
                 null, true);
         mToolbar.initializeSearchView(
                 this, R.string.bookmark_action_bar_search, R.id.search_menu_id);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
index 01f7bb77..f84d77d2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -49,7 +49,6 @@
 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
 import org.chromium.chrome.browser.tabmodel.TabModel;
 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
-import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver;
 import org.chromium.chrome.browser.util.ColorUtils;
 import org.chromium.chrome.browser.widget.ClipDrawableProgressBar.DrawingInfo;
 import org.chromium.chrome.browser.widget.ControlContainer;
@@ -109,7 +108,6 @@
     /** The currently attached View. */
     private View mView;
 
-    private TabModelSelectorObserver mTabModelSelectorObserver;
     private TabObserver mTabObserver;
 
     // Cache objects that should not be created frequently.
@@ -127,6 +125,8 @@
     private int mOverlayContentWidthMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
     private int mOverlayContentHeightMeasureSpec = ContentView.DEFAULT_MEASURE_SPEC;
 
+    private boolean mIsInVr;
+
     /**
      * This view is created on demand to display debugging information.
      */
@@ -208,18 +208,6 @@
             }
         };
 
-        mTabModelSelectorObserver = new EmptyTabModelSelectorObserver() {
-            @Override
-            public void onChange() {
-                onContentChanged();
-            }
-
-            @Override
-            public void onNewTabCreated(Tab tab) {
-                initializeTab(tab);
-            }
-        };
-
         addOnLayoutChangeListener(new OnLayoutChangeListener() {
             @Override
             public void onLayoutChange(View v, int left, int top, int right, int bottom,
@@ -477,6 +465,10 @@
      */
     public void setSize(WebContents webContents, View view, int w, int h) {
         if (webContents == null || view == null) return;
+
+        // When in VR, the CompositorView doesn't control the size of the WebContents.
+        if (mIsInVr) return;
+
         // The view size takes into account of the browser controls whose height
         // should be subtracted from the view if they are visible, therefore shrink
         // Blink-side view size.
@@ -840,7 +832,20 @@
                 androidContentContainer, contextualSearchManager,
                 mCompositorView.getResourceManager().getDynamicResourceLoader());
 
-        attachToTabModelSelector(tabModelSelector);
+        mTabModelSelector = tabModelSelector;
+        tabModelSelector.addObserver(new EmptyTabModelSelectorObserver() {
+            @Override
+            public void onChange() {
+                onContentChanged();
+            }
+
+            @Override
+            public void onNewTabCreated(Tab tab) {
+                initializeTab(tab);
+            }
+        });
+
+        mLayerTitleCache.setTabModelSelector(mTabModelSelector);
 
         onContentChanged();
     }
@@ -1014,37 +1019,18 @@
     }
 
     /**
-     * Detach and return the {@link TabModelSelector} in order to disconnect this
-     * {@link CompositorViewHolder} so that VR can take ownership of Chrome's rendering.
-     * @return The detached {@link TabModelSelector}.
+     * Called when VR is entered. The CompositorViewHolder loses control over WebContents sizing.
      */
-    public TabModelSelector detachForVr() {
-        if (mTabModelSelector != null) mTabModelSelector.removeObserver(mTabModelSelectorObserver);
-        TabModelSelector selector = mTabModelSelector;
-        mTabModelSelector = null;
-        mLayerTitleCache.setTabModelSelector(null);
-        setTab(null);
-        getCompositorView().setVisibility(View.INVISIBLE);
-        return selector;
+    public void onEnterVr() {
+        mIsInVr = true;
     }
 
     /**
-     * Restores the {@link TabModelSelector} to this {@link CompositorViewHolder} after exiting VR
-     * so that it can take back ownership of Chrome's rendering.
-     * @param tabModelSelector
+     * Called when VR is exited. The CompositorViewHolder regains control over WebContents sizing.
      */
-    public void onExitVr(TabModelSelector tabModelSelector) {
-        getCompositorView().setVisibility(View.VISIBLE);
-        attachToTabModelSelector(tabModelSelector);
-    }
-
-    private void attachToTabModelSelector(TabModelSelector tabModelSelector) {
-        assert mTabModelSelector == null;
-        mTabModelSelector = tabModelSelector;
-        mTabModelSelector.addObserver(mTabModelSelectorObserver);
-
-        mLayerTitleCache.setTabModelSelector(mTabModelSelector);
-        onContentChanged();
+    public void onExitVr() {
+        mIsInVr = false;
+        onUpdateViewportSize();
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java
index c75ce213..1b80a09 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java
@@ -126,11 +126,10 @@
 
         boolean isDarkTheme = tab.isIncognito();
         // The theme might require lighter text.
-        if (!DeviceFormFactor.isTablet() && !FeatureUtilities.isChromeHomeEnabled()) {
+        if (!DeviceFormFactor.isTablet() && !FeatureUtilities.isChromeModernDesignEnabled()) {
             isDarkTheme |= ColorUtils.shouldUseLightForegroundOnBackground(tab.getThemeColor());
         }
 
-        ColorUtils.shouldUseLightForegroundOnBackground(tab.getThemeColor());
         boolean isRtl = tab.isTitleDirectionRtl();
         TitleBitmapFactory titleBitmapFactory =
                 isDarkTheme ? mDarkTitleBitmapFactory : mStandardTitleBitmapFactory;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
index 27096123..a1f3ebc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
@@ -292,7 +292,7 @@
                 Resources res = mContext.getResources();
                 if (mToolbarBackgroundColor != 0
                         && !ColorUtils.isUsingDefaultToolbarColor(res,
-                                   FeatureUtilities.isChromeHomeEnabled(), false,
+                                   FeatureUtilities.isChromeModernDesignEnabled(), false,
                                    mToolbarBackgroundColor)
                         && ColorUtils.shouldUseLightForegroundOnBackground(
                                    mToolbarBackgroundColor)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java
index ce2674a..17dea11 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabListSceneLayer.java
@@ -66,7 +66,7 @@
             assert t.isVisible() : "LayoutTab in that list should be visible";
             final float decoration = t.getDecorationAlpha();
 
-            boolean useModernDesign = FeatureUtilities.isChromeHomeEnabled();
+            boolean useModernDesign = FeatureUtilities.isChromeModernDesignEnabled();
 
             float shadowAlpha = decoration;
             if (useModernDesign) shadowAlpha /= 2;
@@ -125,7 +125,7 @@
      * @return The close button resource ID.
      */
     private int getCloseButtonIconId() {
-        if (FeatureUtilities.isChromeHomeEnabled()) return R.drawable.btn_close_white;
+        if (FeatureUtilities.isChromeModernDesignEnabled()) return R.drawable.btn_close_white;
 
         return R.drawable.btn_tab_close;
     }
@@ -137,7 +137,7 @@
      *         Chrome Modern.
      */
     private int getTabThemeColor(Context context, LayoutTab t) {
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             if (t.isIncognito()) {
                 return ApiCompatibilityUtils.getColor(
                         context.getResources(), R.color.incognito_primary_color);
@@ -153,7 +153,7 @@
      */
     protected int getTabListBackgroundColor(Context context) {
         int colorId = R.color.tab_switcher_background;
-        if (FeatureUtilities.isChromeHomeEnabled()) colorId = R.color.modern_grey_300;
+        if (FeatureUtilities.isChromeModernDesignEnabled()) colorId = R.color.modern_grey_300;
         return ApiCompatibilityUtils.getColor(context.getResources(), colorId);
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
index dd1885f4..cc52b58 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ToolbarSceneLayer.java
@@ -155,9 +155,9 @@
             if (!fullscreenManager.getTab().isIncognito()) alpha = 1f;
         }
 
-        // In Chrome Home, the url bar is always drawn in the Java layer rather than the
+        // In Chrome modern design, the url bar is always drawn in the Java layer rather than the
         // compositor layer.
-        if (FeatureUtilities.isChromeHomeEnabled()) alpha = 0;
+        if (FeatureUtilities.isChromeModernDesignEnabled()) alpha = 0;
 
         update(color, alpha, mLayoutProvider.getFullscreenManager(), resourceManager,
                 forceHideBrowserControlsAndroidView, viewportMode, DeviceFormFactor.isTablet(),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java
index 282f344..c41491cd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/TabularContextMenuViewPager.java
@@ -10,6 +10,7 @@
 import android.animation.ValueAnimator.AnimatorUpdateListener;
 import android.content.Context;
 import android.graphics.Canvas;
+import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.support.v4.view.ViewPager;
 import android.support.v4.view.animation.LinearOutSlowInInterpolator;
@@ -36,6 +37,8 @@
     private int mCanvasWidth;
     private int mClipHeight;
 
+    private Rect mClipBounds = new Rect();
+
     private int mDifferenceInHeight;
     private int mPreviousChildIndex = 1;
 
@@ -104,7 +107,6 @@
             heightMeasureSpec = MeasureSpec.makeMeasureSpec(
                     Math.max(mOldHeight, fullHeight), MeasureSpec.EXACTLY);
         }
-
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         mPreviousChildIndex = currentChildIndex;
         // The animation only runs when switching to a tab with a different height.
@@ -127,6 +129,9 @@
                     setTranslationY((1 - animatedValue) * mDifferenceInHeight / 2);
                 }
                 mClipHeight = mOldHeight + (int) (mDifferenceInHeight * animatedValue);
+                mClipBounds.bottom = mClipHeight;
+                mClipBounds.right = mCanvasWidth;
+                setClipBounds(mClipBounds);
                 invalidate();
             }
         });
@@ -136,29 +141,17 @@
                 mOldHeight = mClipHeight;
                 setTranslationY(0);
                 if (mDifferenceInHeight < 0) requestLayout();
+                setClipBounds(null);
             }
         });
     }
 
     @Override
-    public void onDraw(Canvas canvas) {
+    public void draw(Canvas canvas) {
         mCanvasWidth = canvas.getWidth();
-        int backgroundOffsetX = getScrollX();
-        mBackgroundDrawable.setBounds(
-                backgroundOffsetX, 0, canvas.getWidth() + backgroundOffsetX, mClipHeight);
+        mBackgroundDrawable.setBounds(getScrollX(), 0, mCanvasWidth + getScrollX(), mClipHeight);
         mBackgroundDrawable.draw(canvas);
 
-        boolean clipped = false;
-        if (mClipHeight != 0) {
-            canvas.save();
-            canvas.clipRect(0, 0, mCanvasWidth, mClipHeight);
-            clipped = true;
-        }
-
-        super.onDraw(canvas);
-
-        if (clipped) {
-            canvas.restore();
-        }
+        super.draw(canvas);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java
index ba6b5fb..0944a4c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManager.java
@@ -4,6 +4,7 @@
 
 package org.chromium.chrome.browser.download;
 
+import static org.chromium.chrome.browser.download.DownloadNotificationService2.getNextNotificationId;
 import static org.chromium.chrome.browser.download.DownloadSnackbarController.INVALID_NOTIFICATION_ID;
 
 import android.app.Notification;
@@ -220,16 +221,33 @@
         }
     }
 
+    /**
+     * General use case for the method that just relaunches the pinned notification using the
+     * original, stored id of the pinned notification.
+     */
     private void relaunchPinnedNotification() {
+        relaunchPinnedNotification(mPinnedNotificationId);
+    }
+
+    /**
+     * Relaunches the pinned notification based on a specified id.
+     * Used mainly for cases where a notification id needs to be specified (ie. when a new
+     * notification id needs to be retrieved so this notification does not get destroyed when the
+     * service gets destroyed in the complete/faile cases in pre-Marshmallow devices).
+     *
+     * @param notificationId Specific notification id to use for relaunching the notification.
+     */
+    private void relaunchPinnedNotification(int notificationId) {
         if (mPinnedNotificationId != INVALID_NOTIFICATION_ID
+                && notificationId != INVALID_NOTIFICATION_ID
                 && mDownloadUpdateQueue.containsKey(mPinnedNotificationId)
                 && mDownloadUpdateQueue.get(mPinnedNotificationId).mDownloadStatus
                         != DownloadStatus.CANCEL) {
             NotificationManager notificationManager =
                     (NotificationManager) ContextUtils.getApplicationContext().getSystemService(
                             Context.NOTIFICATION_SERVICE);
-            notificationManager.notify(mPinnedNotificationId,
-                    mDownloadUpdateQueue.get(mPinnedNotificationId).mNotification);
+            notificationManager.notify(
+                    notificationId, mDownloadUpdateQueue.get(mPinnedNotificationId).mNotification);
 
             // Record the need to relaunch the notification.
             DownloadNotificationUmaHelper.recordNotificationFlickerCountHistogram(
@@ -244,21 +262,33 @@
         Preconditions.checkNotNull(mBoundService);
         mIsServiceBound = false;
 
+        // In phones that are Lollipop and older, the service gets killed with the task, which might
+        // result in the notification being unable to be relaunched in the COMPLETE and FAIL cases.
+        // Pre-emptively launch a replacement notification before the service is stopped/killed.
+        boolean needAdjustCompleteAndFailPreMarshmallow =
+                isPreMarshmallow() && downloadStatus != DownloadStatus.PAUSE;
+        if (needAdjustCompleteAndFailPreMarshmallow) {
+            relaunchPinnedNotification(getNextNotificationId());
+        }
+
         // For pre-Lollipop phones (API < 21), we need to kill the notification in the pause case
         // because otherwise the notification gets stuck in the ongoing state.
-        boolean needAdjustNotificationPreLollipop =
+        boolean needAdjustPauseNotificationPreLollipop =
                 isPreLollipop() && downloadStatus == DownloadStatus.PAUSE;
 
         // Pause: only try to detach, do not kill notification.
-        // Complete/failed: try to detach, if that doesn't work, kill.
+        // Complete/failed: try to detach, if that doesn't work, kill,
+        //                  In (pre-Marshmallow), only kill the notification.
         // Cancel: don't even try to detach, just kill.
 
-        boolean detachNotification = downloadStatus == DownloadStatus.PAUSE
-                || downloadStatus == DownloadStatus.COMPLETE
-                || downloadStatus == DownloadStatus.FAIL;
+        boolean detachNotification =
+                (downloadStatus == DownloadStatus.PAUSE || downloadStatus == DownloadStatus.COMPLETE
+                        || downloadStatus == DownloadStatus.FAIL)
+                && !needAdjustCompleteAndFailPreMarshmallow;
         boolean killNotification = downloadStatus == DownloadStatus.CANCEL
                 || downloadStatus == DownloadStatus.COMPLETE
-                || downloadStatus == DownloadStatus.FAIL || needAdjustNotificationPreLollipop;
+                || downloadStatus == DownloadStatus.FAIL || needAdjustPauseNotificationPreLollipop
+                || needAdjustCompleteAndFailPreMarshmallow;
 
         boolean notificationHandledProperly =
                 stopAndUnbindServiceInternal(detachNotification, killNotification);
@@ -266,9 +296,11 @@
 
         // Relaunch notification so it is no longer pinned to the foreground service when the
         // download is completed/failed or if a pre-Lollipop adjustment is needed.
-        if (((downloadStatus == DownloadStatus.COMPLETE || downloadStatus == DownloadStatus.FAIL)
-                    && Build.VERSION.SDK_INT < 24)
-                || needAdjustNotificationPreLollipop) {
+        // Make sure not to relaunch if it had been pre-emptively launched if pre-Marshmallow.
+        boolean needRelaunchCompleteAndFailPreNougat =
+                downloadStatus != DownloadStatus.PAUSE && Build.VERSION.SDK_INT < 24;
+        if ((needRelaunchCompleteAndFailPreNougat || needAdjustPauseNotificationPreLollipop)
+                && !needAdjustCompleteAndFailPreMarshmallow) {
             relaunchPinnedNotification();
         }
 
@@ -302,4 +334,9 @@
     boolean isPreLollipop() {
         return Build.VERSION.SDK_INT < 21;
     }
+
+    @VisibleForTesting
+    boolean isPreMarshmallow() {
+        return Build.VERSION.SDK_INT < 23;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialog.java
new file mode 100644
index 0000000..5a6623e
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialog.java
@@ -0,0 +1,67 @@
+// 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.
+
+package org.chromium.chrome.browser.download;
+
+import android.content.Context;
+import android.content.DialogInterface;
+import android.support.v7.app.AlertDialog;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import org.chromium.chrome.R;
+
+import java.io.File;
+
+/**
+ * Dialog that is displayed to ask user where they want to download the file.
+ */
+public class DownloadLocationDialog extends AlertDialog implements DialogInterface.OnClickListener {
+    private DownloadLocationDialogListener mListener;
+    private File mLocationPath;
+
+    /**
+     * Interface for a listener to the events related to the DownloadLocationDialog.
+     */
+    public interface DownloadLocationDialogListener {
+        /**
+         * Notify listeners that the dialog has been completed.
+         * @param returnedPath from the dialog.
+         */
+        void onComplete(File returnedPath);
+    }
+
+    /**
+     * Create a DownloadLocationDialog that is displayed before a download begins.
+     * @param context of the dialog.
+     * @param listener to the updates from the dialog.
+     * @param suggestedPath of the download location.
+     */
+    public DownloadLocationDialog(
+            Context context, DownloadLocationDialogListener listener, File suggestedPath) {
+        super(context, 0);
+
+        mListener = listener;
+        mLocationPath = suggestedPath;
+
+        setButton(BUTTON_POSITIVE, context.getText(R.string.ok), this);
+        setButton(BUTTON_NEGATIVE, context.getText(R.string.cancel), this);
+        setIcon(0);
+        setTitle(context.getString(R.string.download_location_dialog_title));
+
+        LayoutInflater inflater = LayoutInflater.from(context);
+        View view = inflater.inflate(R.layout.download_location_dialog, null);
+        TextView pathText = (TextView) view.findViewById(R.id.path_text);
+        pathText.setText(suggestedPath.getAbsolutePath());
+        setView(view);
+    }
+
+    @Override
+    public void onClick(DialogInterface dialogInterface, int which) {
+        // TODO(jming): In future iterations, distinguish which buttons have been clicked.
+        mListener.onComplete(mLocationPath);
+        dismiss();
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
new file mode 100644
index 0000000..df4ca24
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java
@@ -0,0 +1,58 @@
+// 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.
+
+package org.chromium.chrome.browser.download;
+
+import android.app.Activity;
+
+import org.chromium.base.annotations.CalledByNative;
+import org.chromium.content_public.browser.WebContents;
+
+import java.io.File;
+
+/**
+ * Helper class to handle communication between download location dialog and native.
+ */
+public class DownloadLocationDialogBridge
+        implements DownloadLocationDialog.DownloadLocationDialogListener {
+    private long mNativeDownloadLocationDialogBridge;
+    private DownloadLocationDialog mLocationDialog;
+
+    private DownloadLocationDialogBridge(long nativeDownloadLocationDialogBridge) {
+        mNativeDownloadLocationDialogBridge = nativeDownloadLocationDialogBridge;
+    }
+
+    @CalledByNative
+    public static DownloadLocationDialogBridge create(long nativeDownloadLocationDialogBridge) {
+        return new DownloadLocationDialogBridge(nativeDownloadLocationDialogBridge);
+    }
+
+    @CalledByNative
+    private void destroy() {
+        mNativeDownloadLocationDialogBridge = 0;
+        if (mLocationDialog != null) mLocationDialog.dismiss();
+    }
+
+    @CalledByNative
+    public void showDialog(WebContents webContents, String suggestedPath) {
+        Activity windowAndroidActivity = webContents.getTopLevelNativeWindow().getActivity().get();
+        if (windowAndroidActivity == null) return;
+
+        if (mLocationDialog != null) return;
+        mLocationDialog =
+                new DownloadLocationDialog(windowAndroidActivity, this, new File(suggestedPath));
+        mLocationDialog.show();
+    }
+
+    @Override
+    public void onComplete(File returnedPath) {
+        if (mNativeDownloadLocationDialogBridge == 0) return;
+
+        nativeOnComplete(mNativeDownloadLocationDialogBridge, returnedPath.getAbsolutePath());
+        mLocationDialog = null;
+    }
+
+    public native void nativeOnComplete(
+            long nativeDownloadLocationDialogBridge, String returnedPath);
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
index b14820fb..200a1bd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java
@@ -153,8 +153,6 @@
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
                 cancelIntent = buildActionIntent(context, ACTION_DOWNLOAD_CANCEL,
                         downloadUpdate.getContentId(), downloadUpdate.getIsOffTheRecord());
-                PendingIntent deleteIntent = buildPendingIntent(
-                        context, cancelIntent, downloadUpdate.getNotificationId());
 
                 builder.setAutoCancel(false)
                         .setLargeIcon(downloadUpdate.getIcon())
@@ -167,8 +165,12 @@
                                 context.getResources().getString(
                                         R.string.download_notification_cancel_button),
                                 buildPendingIntent(
-                                        context, cancelIntent, downloadUpdate.getNotificationId()))
-                        .setDeleteIntent(deleteIntent);
+                                        context, cancelIntent, downloadUpdate.getNotificationId()));
+
+                if (downloadUpdate.getIsTransient()) {
+                    builder.setDeleteIntent(buildPendingIntent(
+                            context, cancelIntent, downloadUpdate.getNotificationId()));
+                }
 
                 break;
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
index 3706e46..1a052bd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService.java
@@ -1138,7 +1138,8 @@
         if (entry == null
                 && !(id != null && LegacyHelpers.isLegacyOfflinePage(id)
                            && TextUtils.equals(intent.getAction(), ACTION_DOWNLOAD_OPEN))
-                && !(TextUtils.equals(intent.getAction(), ACTION_NOTIFICATION_CLICKED))) {
+                && !(TextUtils.equals(intent.getAction(), ACTION_NOTIFICATION_CLICKED))
+                && !(TextUtils.equals(intent.getAction(), ACTION_DOWNLOAD_RESUME_ALL))) {
             handleDownloadOperationForMissingNotification(intent);
             hideSummaryNotificationIfNecessary(-1);
             return;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
index 3a58ce8..881dccf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadNotificationService2.java
@@ -80,7 +80,6 @@
 
     private NotificationManager mNotificationManager;
     private SharedPreferences mSharedPrefs;
-    private int mNextNotificationId;
     private Bitmap mDownloadSuccessLargeIcon;
     private DownloadSharedPreferenceHelper mDownloadSharedPreferenceHelper;
     private DownloadForegroundServiceManager mDownloadForegroundServiceManager;
@@ -104,8 +103,6 @@
                         Context.NOTIFICATION_SERVICE);
         mSharedPrefs = ContextUtils.getAppSharedPreferences();
         mDownloadSharedPreferenceHelper = DownloadSharedPreferenceHelper.getInstance();
-        mNextNotificationId =
-                mSharedPrefs.getInt(KEY_NEXT_DOWNLOAD_NOTIFICATION_ID, STARTING_NOTIFICATION_ID);
         mDownloadForegroundServiceManager = new DownloadForegroundServiceManager();
     }
 
@@ -558,12 +555,15 @@
      * Get the next notificationId based on stored value and update shared preferences.
      * @return notificationId that is next based on stored value.
      */
-    private int getNextNotificationId() {
-        int nextNotificationId = mNextNotificationId;
-        mNextNotificationId = mNextNotificationId == Integer.MAX_VALUE ? STARTING_NOTIFICATION_ID
-                                                                       : mNextNotificationId + 1;
-        SharedPreferences.Editor editor = mSharedPrefs.edit();
-        editor.putInt(KEY_NEXT_DOWNLOAD_NOTIFICATION_ID, mNextNotificationId);
+    static int getNextNotificationId() {
+        SharedPreferences sharedPreferences = ContextUtils.getAppSharedPreferences();
+        int nextNotificationId = sharedPreferences.getInt(
+                KEY_NEXT_DOWNLOAD_NOTIFICATION_ID, STARTING_NOTIFICATION_ID);
+        int nextNextNotificationId = nextNotificationId == Integer.MAX_VALUE
+                ? STARTING_NOTIFICATION_ID
+                : nextNotificationId + 1;
+        SharedPreferences.Editor editor = sharedPreferences.edit();
+        editor.putInt(KEY_NEXT_DOWNLOAD_NOTIFICATION_ID, nextNextNotificationId);
         editor.apply();
         return nextNotificationId;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java
index ac40433..ce755a6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadItemView.java
@@ -119,7 +119,7 @@
 
         mIconBackgroundResId = R.drawable.list_item_icon_modern_bg;
 
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             mIconForegroundColorList = ApiCompatibilityUtils.getColorStateList(
                     context.getResources(), R.color.dark_mode_tint);
         } else {
@@ -330,7 +330,7 @@
     @Override
     protected void updateIconView() {
         if (isChecked()) {
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 mIconView.setBackgroundResource(mIconBackgroundResId);
                 mIconView.getBackground().setLevel(
                         getResources().getInteger(R.integer.list_item_level_selected));
@@ -343,7 +343,7 @@
         } else if (mThumbnailBitmap != null) {
             assert !mThumbnailBitmap.isRecycled();
             mIconView.setBackground(null);
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 RoundedBitmapDrawable roundedIcon = RoundedBitmapDrawableFactory.create(
                         getResources(),
                         Bitmap.createScaledBitmap(mThumbnailBitmap, mIconSize, mIconSize, false));
@@ -354,7 +354,7 @@
             }
             mIconView.setTint(null);
         } else {
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 mIconView.setBackgroundResource(mIconBackgroundResId);
                 mIconView.getBackground().setLevel(
                         getResources().getInteger(R.integer.list_item_level_default));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
index de947b9..cca9d25 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadManagerUi.java
@@ -249,8 +249,8 @@
         mToolbar = (DownloadManagerToolbar) mSelectableListLayout.initializeToolbar(
                 R.layout.download_manager_toolbar, mBackendProvider.getSelectionDelegate(), 0, null,
                 R.id.normal_menu_group, R.id.selection_mode_menu_group,
-                FeatureUtilities.isChromeHomeEnabled() ? R.color.modern_toolbar_bg
-                                                       : R.color.modern_primary_color,
+                FeatureUtilities.isChromeModernDesignEnabled() ? R.color.modern_toolbar_bg
+                                                               : R.color.modern_primary_color,
                 this, true);
         mToolbar.setManager(this);
         mToolbar.initializeFilterSpinner(mFilterAdapter);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java
index 37d1097..757f1ff 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java
@@ -60,7 +60,7 @@
                 getTextViewFromResource(convertView, R.layout.download_manager_spinner);
         labelView.setText(position == 0 ? R.string.menu_downloads
                                         : DownloadFilter.getStringIdForFilter(position));
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             ApiCompatibilityUtils.setTextAppearance(labelView, R.style.BlackHeadline2);
         }
         return labelView;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
index 8f8a2531..cbea252 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/OfflineGroupHeaderView.java
@@ -53,7 +53,7 @@
         mCheckedIconForegroundColorList = DownloadUtils.getIconForegroundColorList(context);
         mIconBackgroundResId = R.drawable.list_item_icon_modern_bg;
 
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             mIconForegroundColorList = ApiCompatibilityUtils.getColorStateList(
                     context.getResources(), R.color.dark_mode_tint);
         } else {
@@ -118,7 +118,7 @@
 
     private void updateCheckIcon(boolean checked) {
         if (checked) {
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 mIconImageView.setBackgroundResource(mIconBackgroundResId);
                 mIconImageView.getBackground().setLevel(
                         getResources().getInteger(R.integer.list_item_level_selected));
@@ -130,7 +130,7 @@
             mIconImageView.setTint(mCheckedIconForegroundColorList);
             mCheckDrawable.start();
         } else {
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 mIconImageView.setBackgroundResource(mIconBackgroundResId);
                 mIconImageView.getBackground().setLevel(
                         getResources().getInteger(R.integer.list_item_level_default));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeHomeFeedbackSource.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeHomeFeedbackSource.java
index b00bdd1f..a9bf26da 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeHomeFeedbackSource.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeHomeFeedbackSource.java
@@ -7,9 +7,7 @@
 import android.util.Pair;
 
 import org.chromium.base.CollectionUtil;
-import org.chromium.base.StrictModeContext;
 import org.chromium.base.VisibleForTesting;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
 import org.chromium.chrome.browser.profiles.Profile;
 import org.chromium.chrome.browser.util.FeatureUtilities;
 
@@ -22,8 +20,6 @@
     static final String CHROME_HOME_STATE_KEY = "Chrome Home State";
     private static final String CHROME_HOME_ENABLED_VALUE = "Enabled";
     private static final String CHROME_HOME_DISABLED_VALUE = "Disabled";
-    private static final String CHROME_HOME_OPT_IN_VALUE = "Opt-In";
-    private static final String CHROME_HOME_OPT_OUT_VALUE = "Opt-Out";
 
     private final boolean mIsOffTheRecord;
 
@@ -35,19 +31,8 @@
     public Map<String, String> getFeedback() {
         if (mIsOffTheRecord) return null;
 
-        boolean userPreferenceSet = false;
-        // Allow disk access for preferences while Chrome Home is in experimentation.
-        try (StrictModeContext unused = StrictModeContext.allowDiskReads()) {
-            userPreferenceSet =
-                    ChromePreferenceManager.getInstance().isChromeHomeUserPreferenceSet();
-        }
-
-        String value;
-        if (FeatureUtilities.isChromeHomeEnabled()) {
-            value = userPreferenceSet ? CHROME_HOME_OPT_IN_VALUE : CHROME_HOME_ENABLED_VALUE;
-        } else {
-            value = userPreferenceSet ? CHROME_HOME_OPT_OUT_VALUE : CHROME_HOME_DISABLED_VALUE;
-        }
+        String value = FeatureUtilities.isChromeHomeEnabled() ? CHROME_HOME_ENABLED_VALUE
+                                                              : CHROME_HOME_DISABLED_VALUE;
 
         return CollectionUtil.newHashMap(Pair.create(CHROME_HOME_STATE_KEY, value));
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryItemView.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryItemView.java
index 7a8b77d1..d8b851ea 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryItemView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryItemView.java
@@ -54,7 +54,8 @@
         int iconColor = ApiCompatibilityUtils.getColor(
                 getResources(), R.color.default_favicon_background_color);
         mIconGenerator = new RoundedIconGenerator(mDisplayedIconSize, mDisplayedIconSize,
-                FeatureUtilities.isChromeHomeEnabled() ? mDisplayedIconSize / 2 : mCornerRadius,
+                FeatureUtilities.isChromeModernDesignEnabled() ? mDisplayedIconSize / 2
+                                                               : mCornerRadius,
                 iconColor, textSize);
         mEndPadding = context.getResources().getDimensionPixelSize(
                 R.dimen.selectable_list_layout_row_padding);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
index b2a29dc4..0d8ff0c 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java
@@ -118,8 +118,8 @@
         mToolbar = (HistoryManagerToolbar) mSelectableListLayout.initializeToolbar(
                 R.layout.history_toolbar, mSelectionDelegate, R.string.menu_history, null,
                 R.id.normal_menu_group, R.id.selection_mode_menu_group,
-                FeatureUtilities.isChromeHomeEnabled() ? R.color.modern_toolbar_bg
-                                                       : R.color.modern_primary_color,
+                FeatureUtilities.isChromeModernDesignEnabled() ? R.color.modern_toolbar_bg
+                                                               : R.color.modern_primary_color,
                 this, true);
         mToolbar.setManager(this);
         mToolbar.initializeSearchView(this, R.string.history_manager_search, R.id.search_menu_id);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogManager.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogManager.java
index b25f2285..6d2f158 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ModalDialogManager.java
@@ -16,7 +16,9 @@
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * Manager for managing the display of a queue of {@link ModalDialogView}s.
@@ -95,13 +97,28 @@
     /** The list of pending dialogs */
     private final List<Pair<ModalDialogView, Integer>> mPendingDialogs = new ArrayList<>();
 
+    /**
+     * The list of suspended types of dialogs. The dialogs of types in the list will be suspended
+     * from showing and will only be shown after {@link #resumeType(int)} is called.
+     */
+    private final Set<Integer> mSuspendedTypes = new HashSet<>();
+
     /** The default presenter to be used if a specified type is not supported. */
     private final Presenter mDefaultPresenter;
 
-    /** The presenter of the type of the dialog that is currently showing. */
+    /**
+     * The presenter of the type of the dialog that is currently showing. Note that if there is no
+     * matching {@link Presenter} for {@link #mCurrentType}, this will be the default presenter.
+     */
     private Presenter mCurrentPresenter;
 
     /**
+     * The type of the current dialog. This can be different from the type of the current
+     * {@link Presenter} if there is no registered presenter for this type.
+     */
+    private @ModalDialogType int mCurrentType;
+
+    /**
      * Constructor for initializing default {@link Presenter}.
      * @param defaultPresenter The default presenter to be used when no presenter specified.
      * @param defaultType The dialog type of the default presenter.
@@ -138,12 +155,13 @@
      * @param dialogType The type of the dialog to be shown.
      */
     public void showDialog(ModalDialogView dialog, @ModalDialogType int dialogType) {
-        if (isShowing()) {
+        if (isShowing() || mSuspendedTypes.contains(dialogType)) {
             mPendingDialogs.add(Pair.create(dialog, dialogType));
             return;
         }
 
         dialog.prepareBeforeShow();
+        mCurrentType = dialogType;
         mCurrentPresenter = mPresenters.get(dialogType, mDefaultPresenter);
         mCurrentPresenter.setModalDialog(dialog, () -> cancelDialog(dialog));
     }
@@ -169,11 +187,7 @@
 
         mCurrentPresenter.setModalDialog(null, null);
         mCurrentPresenter = null;
-
-        if (!mPendingDialogs.isEmpty()) {
-            Pair<ModalDialogView, Integer> nextDialog = mPendingDialogs.remove(0);
-            showDialog(nextDialog.first, nextDialog.second);
-        }
+        showNextDialog();
     }
 
     /**
@@ -188,14 +202,57 @@
     }
 
     /**
-     * Dismiss the dialog currently shown and remove all pending dialogs and call the onCancelled
-     * callbacks from the modal dialogs.
+     * Dismiss the dialog currently shown and remove all pending dialogs of the specified type and
+     * call the onCancelled callbacks from the modal dialogs.
+     * @param dialogType The specified type of dialog.
      */
-    protected void cancelAllDialogs() {
-        while (!mPendingDialogs.isEmpty()) {
-            mPendingDialogs.remove(0).first.getController().onCancel();
+    protected void cancelAllDialogs(@ModalDialogType int dialogType) {
+        for (int i = mPendingDialogs.size() - 1; i >= 0; --i) {
+            if (mPendingDialogs.get(i).second == dialogType) {
+                mPendingDialogs.remove(i).first.getController().onCancel();
+            }
         }
-        if (isShowing()) cancelDialog(mCurrentPresenter.getModalDialog());
+
+        if (isShowing() && dialogType == mCurrentType) {
+            cancelDialog(mCurrentPresenter.getModalDialog());
+        }
+    }
+
+    /**
+     * Suspend all dialogs of the specified type, including the one currently shown. These dialogs
+     * will be prevented from showing unless {@link #resumeType(int)} is called after the
+     * suspension. If the current dialog is suspended, it will be moved back to the first dialog
+     * in the pending list. Any dialogs of the specified type in the pending list will be skipped.
+     * @param dialogType The specified type of dialogs to be suspended.
+     */
+    protected void suspendType(@ModalDialogType int dialogType) {
+        mSuspendedTypes.add(dialogType);
+        if (isShowing() && dialogType == mCurrentType) {
+            final ModalDialogView dialog = mCurrentPresenter.getModalDialog();
+            dismissDialog(dialog);
+            mPendingDialogs.add(0, Pair.create(dialog, dialogType));
+        }
+    }
+
+    /**
+     * Resume the specified type of dialogs after suspension.
+     * @param dialogType The specified type of dialogs to be resumed.
+     */
+    protected void resumeType(@ModalDialogType int dialogType) {
+        mSuspendedTypes.remove(dialogType);
+        if (!isShowing()) showNextDialog();
+    }
+
+    /** Helper method for showing the next available dialog in the pending dialog list. */
+    private void showNextDialog() {
+        // Show the next dialog that its type is not suspended.
+        for (int i = 0; i < mPendingDialogs.size(); ++i) {
+            if (!mSuspendedTypes.contains(mPendingDialogs.get(i).second)) {
+                final Pair<ModalDialogView, Integer> nextDialog = mPendingDialogs.remove(i);
+                showDialog(nextDialog.first, nextDialog.second);
+                break;
+            }
+        }
     }
 
     @VisibleForTesting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java
index 0a4a2f91..b8e7ae31 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/TabModalLifetimeHandler.java
@@ -21,8 +21,18 @@
     private final TabObserver mTabObserver = new EmptyTabObserver() {
         @Override
         public void onInteractabilityChanged(boolean isInteractable) {
-            if (!isInteractable && mPresenter.getModalDialog() != null) {
-                mManager.cancelAllDialogs();
+            if (!isInteractable) {
+                mManager.suspendType(ModalDialogManager.TAB_MODAL);
+            } else {
+                mManager.resumeType(ModalDialogManager.TAB_MODAL);
+            }
+        }
+
+        @Override
+        public void onDestroyed(Tab tab) {
+            if (mActiveTab == tab) {
+                mManager.cancelAllDialogs(ModalDialogManager.TAB_MODAL);
+                mActiveTab = null;
             }
         }
     };
@@ -48,9 +58,18 @@
         mTabModelObserver = new TabModelSelectorTabModelObserver(tabModelSelector) {
             @Override
             public void didSelectTab(Tab tab, TabModel.TabSelectionType type, int lastId) {
-                if (mActiveTab != null) mActiveTab.removeObserver(mTabObserver);
-                mActiveTab = tabModelSelector.getCurrentTab();
-                if (mActiveTab != null) mActiveTab.addObserver(mTabObserver);
+                if (tab == null || tab.getId() != lastId) {
+                    mManager.cancelAllDialogs(ModalDialogManager.TAB_MODAL);
+                    if (mActiveTab != null) mActiveTab.removeObserver(mTabObserver);
+
+                    mActiveTab = tab;
+                    if (mActiveTab != null) {
+                        mActiveTab.addObserver(mTabObserver);
+                        if (mActiveTab.isUserInteractable()) {
+                            mManager.resumeType(ModalDialogManager.TAB_MODAL);
+                        }
+                    }
+                }
             }
         };
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
index 93b5a7f..c37f28f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageView.java
@@ -18,7 +18,6 @@
 import android.support.v7.widget.RecyclerView.ViewHolder;
 import android.text.Editable;
 import android.text.TextWatcher;
-import android.text.method.LinkMovementMethod;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
@@ -56,11 +55,8 @@
 import org.chromium.chrome.browser.util.FeatureUtilities;
 import org.chromium.chrome.browser.util.MathUtils;
 import org.chromium.chrome.browser.util.ViewUtils;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoDialog;
 import org.chromium.chrome.browser.widget.displaystyle.UiConfig;
 import org.chromium.ui.base.DeviceFormFactor;
-import org.chromium.ui.text.NoUnderlineClickableSpan;
-import org.chromium.ui.text.SpanApplier;
 
 /**
  * The native new tab page, represented by some basic data such as title and url, and an Android
@@ -296,7 +292,6 @@
 
         initializeSearchBoxTextView();
         initializeVoiceSearchButton();
-        initializeChromeHomePromo();
         initializeLayoutChangeListeners();
         setSearchProviderInfo(searchProviderHasLogo, searchProviderIsGoogle);
         mSearchProviderLogoView.showSearchProviderInitialView();
@@ -432,29 +427,6 @@
         TraceEvent.end(TAG + ".initializeVoiceSearchButton()");
     }
 
-    private void initializeChromeHomePromo() {
-        if (DeviceFormFactor.isTablet()
-                || !ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)) {
-            return;
-        }
-
-        NoUnderlineClickableSpan link = new NoUnderlineClickableSpan() {
-            @Override
-            public void onClick(View view) {
-                new ChromeHomePromoDialog(mTab.getActivity(), ChromeHomePromoDialog.ShowReason.NTP)
-                        .show();
-            }
-        };
-
-        TextView textView = mNewTabPageLayout.findViewById(R.id.chrome_home_promo_text);
-        textView.setText(
-                SpanApplier.applySpans(getResources().getString(R.string.ntp_chrome_home_promo),
-                        new SpanApplier.SpanInfo("<link>", "</link>", link)));
-        textView.setMovementMethod(LinkMovementMethod.getInstance());
-        mNewTabPageLayout.findViewById(R.id.chrome_home_promo_container)
-                .setVisibility(View.VISIBLE);
-    }
-
     private void initializeLayoutChangeListeners() {
         TraceEvent.begin(TAG + ".initializeLayoutChangeListeners()");
         mNewTabPageLayout.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@@ -687,9 +659,6 @@
             // Don't change the visibility of a ViewStub as that will automagically inflate it.
             if (child instanceof ViewStub) continue;
 
-            // Skip the Chrome Home promo.
-            if (child.getId() == R.id.chrome_home_promo_container) continue;
-
             if (child == mSearchProviderLogoView) {
                 child.setVisibility(logoVisibility);
             } else {
@@ -713,16 +682,10 @@
      * Updates the padding for the tile grid based on what is shown above it.
      */
     private void updateTileGridPadding() {
-        final int paddingTop;
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)) {
-            // The Chrome Home promo has enough whitespace.
-            paddingTop = 0;
-        } else {
-            // Set a bit more top padding on the tile grid if there is no logo.
-            paddingTop = getResources().getDimensionPixelSize(shouldShowLogo()
-                            ? R.dimen.tile_grid_layout_padding_top
-                            : R.dimen.tile_grid_layout_no_logo_padding_top);
-        }
+        // Set a bit more top padding on the tile grid if there is no logo.
+        final int paddingTop = getResources().getDimensionPixelSize(shouldShowLogo()
+                        ? R.dimen.tile_grid_layout_padding_top
+                        : R.dimen.tile_grid_layout_no_logo_padding_top);
         mSiteSectionViewHolder.itemView.setPadding(
                 0, paddingTop, 0, mSiteSectionViewHolder.itemView.getPaddingBottom());
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
index cf52ade..db4fbfe 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
@@ -282,7 +282,7 @@
                             ? R.layout.personalized_signin_promo_view_modern_content_suggestions
                             : R.layout.personalized_signin_promo_view_ntp_content_suggestions,
                     parent, config, contextMenuManager);
-            if (!FeatureUtilities.isChromeHomeEnabled()) {
+            if (!FeatureUtilities.isChromeModernDesignEnabled()) {
                 getParams().topMargin = parent.getResources().getDimensionPixelSize(
                         R.dimen.ntp_sign_in_promo_margin_top);
             }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
index 2b083cd..5dbcc52 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java
@@ -182,4 +182,9 @@
      * @return Whether suggestions are being shown for the location bar.
      */
     boolean isSuggestionsListShown();
+
+    /**
+     * @return Whether the location bar is allowed to use Chrome modern design.
+     */
+    boolean useModernDesign();
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
index 09303c9..8c04fd9b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
@@ -1275,11 +1275,10 @@
     /**
      * @param provider The {@link ToolbarDataProvider}.
      * @param resources The Resources for the Context.
-     * @param isChromeHomeEnabled Whether Chrome Home is enabled.
      * @return The {@link ColorStateList} to use to tint the security state icon.
      */
     public static ColorStateList getColorStateList(
-            ToolbarDataProvider provider, Resources resources, boolean isChromeHomeEnabled) {
+            ToolbarDataProvider provider, Resources resources) {
         int securityLevel = provider.getSecurityLevel();
 
         ColorStateList list = null;
@@ -1322,8 +1321,7 @@
         } else {
             // ImageView#setImageResource is no-op if given resource is the current one.
             mSecurityButton.setImageResource(id);
-            mSecurityButton.setTint(getColorStateList(mToolbarDataProvider, getResources(),
-                    mBottomSheet != null));
+            mSecurityButton.setTint(getColorStateList(mToolbarDataProvider, getResources()));
         }
 
         updateVerboseStatusVisibility();
@@ -1537,6 +1535,11 @@
         return mSuggestionList;
     }
 
+    @Override
+    public boolean useModernDesign() {
+        return FeatureUtilities.isChromeModernDesignEnabled();
+    }
+
     /**
      * Initiates the mSuggestionListPopup.  Done on demand to not slow down
      * the initial inflation of the location bar.
@@ -1547,7 +1550,7 @@
         assert mNativeInitialized || mShowCachedZeroSuggestResults
                 : "Trying to initialize native suggestions list before native init";
         if (mSuggestionList != null) return;
-        mSuggestionListAdapter.setUseModernDesign(mBottomSheet != null);
+        mSuggestionListAdapter.setUseModernDesign(useModernDesign());
 
         OnLayoutChangeListener suggestionListResizer = new OnLayoutChangeListener() {
             @Override
@@ -1672,7 +1675,7 @@
     protected Drawable getSuggestionPopupBackground() {
         int omniboxResultsColorForNonIncognito = OMNIBOX_RESULTS_BG_COLOR;
         int omniboxResultsColorForIncognito = OMNIBOX_INCOGNITO_RESULTS_BG_COLOR;
-        if (mBottomSheet != null) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             omniboxResultsColorForNonIncognito = OMNIBOX_RESULTS_CHROME_HOME_MODERN_BG_COLOR;
             omniboxResultsColorForIncognito = OMNIBOX_INCOGNITO_RESULTS_CHROME_HOME_MODERN_BG_COLOR;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
index d6bfae3..acba5cc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SuggestionView.java
@@ -402,7 +402,7 @@
     }
 
     private int getStandardUrlColor() {
-        if (!FeatureUtilities.isChromeHomeEnabled()) return mLightUrlStandardColor;
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) return mLightUrlStandardColor;
         return (mUseDarkColors == null || mUseDarkColors) ? mDarkUrlStandardColor
                                                           : mLightUrlStandardColor;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
index c3188758a..1608bc8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceManager.java
@@ -403,61 +403,12 @@
     }
 
     /**
-     * Set whether or not Chrome Home is enabled by the user.
-     * @param isEnabled If Chrome Home is enabled by the user.
+     * Clean up unused Chrome Home preferences.
      */
-    public void setChromeHomeUserEnabled(boolean isEnabled) {
-        writeBoolean(CHROME_HOME_USER_ENABLED_KEY, isEnabled);
-    }
-
-    /**
-     * Get whether or not Chrome Home is enabled by the user.
-     * @return True if Chrome Home is enabled by the user.
-     */
-    public boolean isChromeHomeUserEnabled() {
-        return mSharedPreferences.getBoolean(CHROME_HOME_USER_ENABLED_KEY, false);
-    }
-
-    /**
-     * @return Whether or not the user has set their Chrome Home preference.
-     */
-    public boolean isChromeHomeUserPreferenceSet() {
-        return mSharedPreferences.contains(CHROME_HOME_USER_ENABLED_KEY);
-    }
-
-    /**
-     * Remove the Chrome Home user preference.
-     */
-    public void clearChromeHomeUserPreference() {
+    public void clearObsoleteChromeHomePrefs() {
         removeKey(CHROME_HOME_USER_ENABLED_KEY);
-    }
-
-    /**
-     * Set that the Chrome Home info-promo has been shown.
-     */
-    public void setChromeHomeInfoPromoShown() {
-        writeBoolean(CHROME_HOME_INFO_PROMO_SHOWN_KEY, true);
-    }
-
-    /**
-     * @return Whether the info-only version of the Chrome Home promo has been shown.
-     */
-    public boolean hasChromeHomeInfoPromoShown() {
-        return mSharedPreferences.getBoolean(CHROME_HOME_INFO_PROMO_SHOWN_KEY, false);
-    }
-
-    /**
-     * Mark that the Chrome Home opt-out snackbar has been shown.
-     */
-    public void setChromeHomeOptOutSnackbarShown() {
-        writeBoolean(CHROME_HOME_OPT_OUT_SNACKBAR_SHOWN, true);
-    }
-
-    /**
-     * @return Whether the Chrome Home opt-out snackbar has been shown.
-     */
-    public boolean getChromeHomeOptOutSnackbarShown() {
-        return mSharedPreferences.getBoolean(CHROME_HOME_OPT_OUT_SNACKBAR_SHOWN, false);
+        removeKey(CHROME_HOME_INFO_PROMO_SHOWN_KEY);
+        removeKey(CHROME_HOME_OPT_OUT_SNACKBAR_SHOWN);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/DownloadPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/DownloadPreferences.java
index 5a93c1b..b7bd7a0f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/DownloadPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/DownloadPreferences.java
@@ -24,9 +24,13 @@
 public class DownloadPreferences
         extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
     private static final String PREF_LOCATION_CHANGE = "location_change";
+    private static final String PREF_LOCATION_PROMPT_ENABLED = "location_prompt_enabled";
     private static final String OPTION_PRIMARY_STORAGE = "primary";
 
     private PrefServiceBridge mPrefServiceBridge;
+    private ListPreference mLocationChangePref;
+    private ChromeSwitchPreference mLocationPromptEnabledPref;
+
     private List<File> mSecondaryDirs = new ArrayList<>();
 
     @Override
@@ -37,24 +41,41 @@
         getActivity().setTitle(R.string.menu_downloads);
         PreferenceUtils.addPreferencesFromResource(this, R.xml.download_preferences);
 
+        mLocationPromptEnabledPref =
+                (ChromeSwitchPreference) findPreference(PREF_LOCATION_PROMPT_ENABLED);
+        mLocationPromptEnabledPref.setOnPreferenceChangeListener(this);
+
+        mLocationChangePref = (ListPreference) findPreference(PREF_LOCATION_CHANGE);
         getLocationOptions();
+
         updateSummaries();
     }
 
     private void updateSummaries() {
-        Preference locationChangePref = (Preference) findPreference(PREF_LOCATION_CHANGE);
-        if (locationChangePref != null) {
-            locationChangePref.setSummary(mPrefServiceBridge.getDownloadDefaultDirectory());
+        if (mLocationChangePref != null) {
+            mLocationChangePref.setSummary(mPrefServiceBridge.getDownloadDefaultDirectory());
+        }
+
+        if (mLocationPromptEnabledPref != null) {
+            boolean isLocationPromptEnabled =
+                    mPrefServiceBridge.getBoolean(Pref.PROMPT_FOR_DOWNLOAD_ANDROID);
+            mLocationPromptEnabledPref.setChecked(isLocationPromptEnabled);
         }
     }
 
     private void getLocationOptions() {
-        ListPreference locationsPreference = (ListPreference) findPreference(PREF_LOCATION_CHANGE);
-
-        File[] externalDirs = ContextCompat.getExternalFilesDirs(
+        File[] externalDirectories = ContextCompat.getExternalFilesDirs(
                 getActivity().getApplicationContext(), Environment.DIRECTORY_DOWNLOADS);
 
-        int numLocations = externalDirs.length;
+        // Go through and remove all null reported directories.
+        List<File> externalDirs = new ArrayList<>();
+        for (File dir : externalDirectories) {
+            if (dir != null) {
+                externalDirs.add(dir);
+            }
+        }
+
+        int numLocations = externalDirs.size();
         CharSequence[] values = new String[numLocations];
         CharSequence[] descriptions = new String[numLocations];
 
@@ -64,7 +85,7 @@
         int selectedValueIndex = 0;
 
         // If there is only one directory option, make sure this is the selected option.
-        if (externalDirs.length == 1) {
+        if (externalDirs.size() == 1) {
             if (!getPrimaryDownloadDirectory().equals(
                         new File(mPrefServiceBridge.getDownloadDefaultDirectory()))) {
                 mPrefServiceBridge.setDownloadDefaultDirectory(
@@ -73,6 +94,8 @@
         }
 
         for (File dir : externalDirs) {
+            if (dir == null) continue;
+
             // Skip directory in primary storage.
             if (dir.getAbsolutePath().contains(
                         Environment.getExternalStorageDirectory().getAbsolutePath())) {
@@ -95,10 +118,10 @@
             }
         }
 
-        locationsPreference.setEntryValues(values);
-        locationsPreference.setEntries(descriptions);
-        locationsPreference.setValueIndex(selectedValueIndex);
-        locationsPreference.setOnPreferenceChangeListener(this);
+        mLocationChangePref.setEntryValues(values);
+        mLocationChangePref.setEntries(descriptions);
+        mLocationChangePref.setValueIndex(selectedValueIndex);
+        mLocationChangePref.setOnPreferenceChangeListener(this);
     }
 
     // Preference.OnPreferenceChangeListener:
@@ -107,6 +130,8 @@
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         if (PREF_LOCATION_CHANGE.equals(preference.getKey())) {
             updateStorageLocation((String) newValue);
+        } else if (PREF_LOCATION_PROMPT_ENABLED.equals(preference.getKey())) {
+            mPrefServiceBridge.setBoolean(Pref.PROMPT_FOR_DOWNLOAD_ANDROID, (boolean) newValue);
         }
         return true;
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java
index a941c0e..7ce87815 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/HomepageEditor.java
@@ -17,7 +17,7 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
-import org.chromium.chrome.browser.widget.FloatLabelLayout;
+import org.chromium.chrome.browser.widget.CompatibilityTextInputLayout;
 import org.chromium.components.url_formatter.UrlFormatter;
 
 /**
@@ -37,14 +37,15 @@
         getActivity().setTitle(R.string.options_homepage_edit_title);
         View v = inflater.inflate(R.layout.homepage_editor, container, false);
 
-        FloatLabelLayout homepageUrl = (FloatLabelLayout) v.findViewById(R.id.homepage_url);
-        homepageUrl.focusWithoutAnimation();
+        CompatibilityTextInputLayout homepageUrl =
+                (CompatibilityTextInputLayout) v.findViewById(R.id.homepage_url);
 
         mHomepageUrlEdit = (EditText) v.findViewById(R.id.homepage_url_edit);
         mHomepageUrlEdit.setText((mHomepageManager.getPrefHomepageUseDefaultUri()
                 ? PartnerBrowserCustomizations.getHomePageUrl()
                 : mHomepageManager.getPrefHomepageCustomUri()));
         mHomepageUrlEdit.addTextChangedListener(this);
+        mHomepageUrlEdit.requestFocus();
 
         initializeSaveCancelResetButtons(v);
         return v;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
index 127dbe36..e9d4892 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/PrefServiceBridge.java
@@ -366,6 +366,13 @@
     }
 
     /**
+     * @return true if websites are allowed to read from the clipboard.
+     */
+    public boolean isClipboardEnabled() {
+        return isContentSettingEnabled(ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ);
+    }
+
+    /**
      * @return true if websites are allowed to play sound.
      */
     public boolean isSoundEnabled() {
@@ -701,6 +708,10 @@
         nativeSetBlockThirdPartyCookiesEnabled(enabled);
     }
 
+    public void setClipboardEnabled(boolean allow) {
+        nativeSetClipboardEnabled(allow);
+    }
+
     public void setDoNotTrackEnabled(boolean enabled) {
         nativeSetDoNotTrackEnabled(enabled);
     }
@@ -1108,6 +1119,7 @@
     private native void nativeSetAllowCookiesEnabled(boolean allow);
     private native void nativeSetBackgroundSyncEnabled(boolean allow);
     private native void nativeSetBlockThirdPartyCookiesEnabled(boolean enabled);
+    private native void nativeSetClipboardEnabled(boolean allow);
     private native void nativeSetDoNotTrackEnabled(boolean enabled);
     private native void nativeSetRememberPasswordsEnabled(boolean allow);
     private native void nativeSetPasswordManagerAutoSigninEnabled(boolean enabled);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ClipboardInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ClipboardInfo.java
new file mode 100644
index 0000000..174d425
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ClipboardInfo.java
@@ -0,0 +1,27 @@
+// 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.
+
+package org.chromium.chrome.browser.preferences.website;
+
+/**
+ * Clipboard information for a given origin.
+ */
+public class ClipboardInfo extends PermissionInfo {
+    public ClipboardInfo(String origin, String embedder, boolean isIncognito) {
+        super(origin, embedder, isIncognito);
+    }
+
+    @Override
+    protected int getNativePreferenceValue(String origin, String embedder, boolean isIncognito) {
+        return WebsitePreferenceBridge.nativeGetClipboardSettingForOrigin(
+                origin, isIncognito);
+    }
+
+    @Override
+    protected void setNativePreferenceValue(
+            String origin, String embedder, ContentSetting value, boolean isIncognito) {
+        WebsitePreferenceBridge.nativeSetClipboardSettingForOrigin(
+                origin, value.toInt(), isIncognito);
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java
index f1509d7..b8ce66b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java
@@ -91,6 +91,11 @@
         ThreadUtils.assertOnUiThread();
         if (sResourceInfo == null) {
             Map<Integer, ResourceItem> localMap = new HashMap<Integer, ResourceItem>();
+            localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS,
+                    new ResourceItem(R.drawable.ic_ad_24dp_grey600, R.string.ads_permission_title,
+                            R.string.ads_permission_title, ContentSetting.ALLOW,
+                            ContentSetting.BLOCK, 0,
+                            R.string.website_settings_category_ads_blocked));
             localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_AUTOPLAY,
                     new ResourceItem(R.drawable.settings_autoplay, R.string.autoplay_title,
                                  R.string.autoplay_title, ContentSetting.ALLOW,
@@ -102,6 +107,13 @@
                                  R.string.background_sync_permission_title, ContentSetting.ALLOW,
                                  ContentSetting.BLOCK,
                                  R.string.website_settings_category_allowed_recommended, 0));
+            localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ,
+                    new ResourceItem(R.drawable.ic_content_paste_grey600_24dp,
+                            R.string.clipboard_permission_title,
+                            R.string.clipboard_permission_title, ContentSetting.ASK,
+                            ContentSetting.BLOCK,
+                            R.string.website_settings_category_clipboard_ask,
+                            R.string.website_settings_category_clipboard_blocked));
             localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES,
                     new ResourceItem(R.drawable.permission_cookie, R.string.cookies_title,
                                  R.string.cookies_title, ContentSetting.ALLOW, ContentSetting.BLOCK,
@@ -147,20 +159,15 @@
                                  org.chromium.chrome.R.string.protected_content,
                                  org.chromium.chrome.R.string.protected_content,
                                  ContentSetting.ASK, ContentSetting.BLOCK, 0, 0));
-            localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_ADS,
-                    new ResourceItem(R.drawable.ic_ad_24dp_grey600, R.string.ads_permission_title,
-                            R.string.ads_permission_title, ContentSetting.ALLOW,
-                            ContentSetting.BLOCK, 0,
-                            R.string.website_settings_category_ads_blocked));
-            localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_USB_CHOOSER_DATA,
-                    new ResourceItem(R.drawable.settings_usb, 0, 0, ContentSetting.ASK,
-                                 ContentSetting.BLOCK, 0, 0));
             localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_SOUND,
                     new ResourceItem(R.drawable.ic_volume_up_grey600_24dp,
                             R.string.sound_permission_title, R.string.sound_permission_title,
                             ContentSetting.ALLOW, ContentSetting.BLOCK,
                             R.string.website_settings_category_sound_allowed,
                             R.string.website_settings_category_sound_blocked));
+            localMap.put(ContentSettingsType.CONTENT_SETTINGS_TYPE_USB_CHOOSER_DATA,
+                    new ResourceItem(R.drawable.settings_usb, 0, 0, ContentSetting.ASK,
+                                 ContentSetting.BLOCK, 0, 0));
             sResourceInfo = localMap;
         }
         return sResourceInfo;
@@ -324,6 +331,14 @@
     }
 
     /**
+     * Returns the blocked summary for the clipboard permission which should be used for display in
+     * the site settings list only.
+     */
+    public static int getClipboardBlockedListSummary() {
+        return R.string.website_settings_category_clipboard_blocked_list;
+    }
+
+    /**
      * Returns the blocked summary for the sound permission which should be used for display in the
      * site settings list only.
      */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
index ad3d964..a5657f82 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleCategoryPreferences.java
@@ -224,6 +224,8 @@
             return website.site().getBackgroundSyncPermission() == ContentSetting.BLOCK;
         } else if (mCategory.showCameraSites()) {
             return website.site().getCameraPermission() == ContentSetting.BLOCK;
+        } else if (mCategory.showClipboardSites()) {
+            return website.site().getClipboardPermission() == ContentSetting.BLOCK;
         } else if (mCategory.showCookiesSites()) {
             return website.site().getCookiePermission() == ContentSetting.BLOCK;
         } else if (mCategory.showGeolocationSites()) {
@@ -503,6 +505,8 @@
                 PrefServiceBridge.getInstance().setBackgroundSyncEnabled((boolean) newValue);
             } else if (mCategory.showCameraSites()) {
                 PrefServiceBridge.getInstance().setCameraEnabled((boolean) newValue);
+            } else if (mCategory.showClipboardSites()) {
+                PrefServiceBridge.getInstance().setClipboardEnabled((boolean) newValue);
             } else if (mCategory.showCookiesSites()) {
                 PrefServiceBridge.getInstance().setAllowCookiesEnabled((boolean) newValue);
                 updateThirdPartyCookiesCheckBox();
@@ -526,7 +530,8 @@
 
             // Categories that support adding exceptions also manage the 'Add site' preference.
             if (mCategory.showAutoplaySites() || mCategory.showBackgroundSyncSites()
-                    || mCategory.showJavaScriptSites() || mCategory.showSoundSites()) {
+                    || mCategory.showJavaScriptSites() || mCategory.showSoundSites()
+                    || mCategory.showClipboardSites()) {
                 if ((boolean) newValue) {
                     Preference addException = getPreferenceScreen().findPreference(
                             ADD_EXCEPTION_KEY);
@@ -559,6 +564,10 @@
             resource = R.string.website_settings_add_site_description_autoplay;
         } else if (mCategory.showBackgroundSyncSites()) {
             resource = R.string.website_settings_add_site_description_background_sync;
+        } else if (mCategory.showClipboardSites()) {
+            resource = PrefServiceBridge.getInstance().isClipboardEnabled()
+                    ? R.string.website_settings_add_site_description_clipboard_block
+                    : R.string.website_settings_add_site_description_clipboard_allow;
         } else if (mCategory.showJavaScriptSites()) {
             resource = R.string.website_settings_add_site_description_javascript;
         } else if (mCategory.showSoundSites()) {
@@ -632,7 +641,7 @@
         if ((mCategory.showAutoplaySites() && !PrefServiceBridge.getInstance().isAutoplayEnabled())
                 || (mCategory.showJavaScriptSites()
                            && !PrefServiceBridge.getInstance().javaScriptEnabled())
-                || mCategory.showSoundSites()
+                || mCategory.showSoundSites() || mCategory.showClipboardSites()
                 || (mCategory.showBackgroundSyncSites()
                            && !PrefServiceBridge.getInstance().isBackgroundSyncAllowed())) {
             getPreferenceScreen().addPreference(
@@ -750,6 +759,8 @@
                             PrefServiceBridge.getInstance().isBackgroundSyncAllowed());
                 } else if (mCategory.showCameraSites()) {
                     globalToggle.setChecked(PrefServiceBridge.getInstance().isCameraEnabled());
+                } else if (mCategory.showClipboardSites()) {
+                    globalToggle.setChecked(PrefServiceBridge.getInstance().isClipboardEnabled());
                 } else if (mCategory.showCookiesSites()) {
                     globalToggle.setChecked(
                             PrefServiceBridge.getInstance().isAcceptCookiesEnabled());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
index c1c16dc..e7762bed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
@@ -68,9 +68,11 @@
     // Buttons:
     public static final String PREF_RESET_SITE = "reset_site_button";
     // Website permissions (if adding new, see hasPermissionsPreferences and resetSite below):
+    public static final String PREF_ADS_PERMISSION = "ads_permission_list";
     public static final String PREF_AUTOPLAY_PERMISSION = "autoplay_permission_list";
     public static final String PREF_BACKGROUND_SYNC_PERMISSION = "background_sync_permission_list";
     public static final String PREF_CAMERA_CAPTURE_PERMISSION = "camera_permission_list";
+    public static final String PREF_CLIPBOARD_PERMISSION = "clipboard_permission_list";
     public static final String PREF_COOKIES_PERMISSION = "cookies_permission_list";
     public static final String PREF_JAVASCRIPT_PERMISSION = "javascript_permission_list";
     public static final String PREF_LOCATION_ACCESS = "location_access_list";
@@ -80,7 +82,6 @@
     public static final String PREF_POPUP_PERMISSION = "popup_permission_list";
     public static final String PREF_PROTECTED_MEDIA_IDENTIFIER_PERMISSION =
             "protected_media_identifier_permission_list";
-    public static final String PREF_ADS_PERMISSION = "ads_permission_list";
     public static final String PREF_SOUND_PERMISSION = "sound_permission_list";
 
     // All permissions from the permissions preference category must be listed here.
@@ -89,6 +90,7 @@
             PREF_AUTOPLAY_PERMISSION,
             PREF_BACKGROUND_SYNC_PERMISSION,
             PREF_CAMERA_CAPTURE_PERMISSION,
+            PREF_CLIPBOARD_PERMISSION,
             PREF_COOKIES_PERMISSION,
             PREF_JAVASCRIPT_PERMISSION,
             PREF_LOCATION_ACCESS,
@@ -195,6 +197,10 @@
                     && other.compareByAddressTo(merged) == 0) {
                 merged.setAdsException(other.getAdsException());
             }
+            if (merged.getClipboardInfo() == null && other.getClipboardInfo() != null
+                    && permissionInfoIsForTopLevelOrigin(other.getClipboardInfo(), origin)) {
+                merged.setClipboardInfo(other.getClipboardInfo());
+            }
             if (merged.getGeolocationInfo() == null && other.getGeolocationInfo() != null
                     && permissionInfoIsForTopLevelOrigin(other.getGeolocationInfo(), origin)) {
                 merged.setGeolocationInfo(other.getGeolocationInfo());
@@ -327,6 +333,8 @@
             setUpListPreference(preference, mSite.getBackgroundSyncPermission());
         } else if (PREF_CAMERA_CAPTURE_PERMISSION.equals(key)) {
             setUpListPreference(preference, mSite.getCameraPermission());
+        } else if (PREF_CLIPBOARD_PERMISSION.equals(key)) {
+            setUpListPreference(preference, mSite.getClipboardPermission());
         } else if (PREF_COOKIES_PERMISSION.equals(key)) {
             setUpListPreference(preference, mSite.getCookiePermission());
         } else if (PREF_JAVASCRIPT_PERMISSION.equals(key)) {
@@ -715,6 +723,8 @@
                 return ContentSettingsType.CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC;
             case PREF_CAMERA_CAPTURE_PERMISSION:
                 return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA;
+            case PREF_CLIPBOARD_PERMISSION:
+                return ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ;
             case PREF_COOKIES_PERMISSION:
                 return ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES;
             case PREF_JAVASCRIPT_PERMISSION:
@@ -774,6 +784,8 @@
             mSite.setBackgroundSyncPermission(permission);
         } else if (PREF_CAMERA_CAPTURE_PERMISSION.equals(preference.getKey())) {
             mSite.setCameraPermission(permission);
+        } else if (PREF_CLIPBOARD_PERMISSION.equals(preference.getKey())) {
+            mSite.setClipboardPermission(permission);
         } else if (PREF_COOKIES_PERMISSION.equals(preference.getKey())) {
             mSite.setCookiePermission(permission);
         } else if (PREF_JAVASCRIPT_PERMISSION.equals(preference.getKey())) {
@@ -856,6 +868,7 @@
         mSite.setAutoplayPermission(ContentSetting.DEFAULT);
         mSite.setBackgroundSyncPermission(ContentSetting.DEFAULT);
         mSite.setCameraPermission(ContentSetting.DEFAULT);
+        mSite.setClipboardPermission(ContentSetting.DEFAULT);
         mSite.setCookiePermission(ContentSetting.DEFAULT);
         mSite.setGeolocationPermission(ContentSetting.DEFAULT);
         mSite.setJavaScriptPermission(ContentSetting.DEFAULT);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java
index 00a41056..91841b7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsCategory.java
@@ -39,6 +39,7 @@
     public static final String CATEGORY_AUTOPLAY = "autoplay";
     public static final String CATEGORY_BACKGROUND_SYNC = "background_sync";
     public static final String CATEGORY_CAMERA = "camera";
+    public static final String CATEGORY_CLIPBOARD = "clipboard";
     public static final String CATEGORY_COOKIES = "cookies";
     public static final String CATEGORY_DEVICE_LOCATION = "device_location";
     public static final String CATEGORY_JAVASCRIPT = "javascript";
@@ -103,6 +104,10 @@
                     android.Manifest.permission.CAMERA,
                     ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA);
         }
+        if (CATEGORY_CLIPBOARD.equals(category)) {
+            return new SiteSettingsCategory(CATEGORY_CLIPBOARD, "",
+                    ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ);
+        }
         if (CATEGORY_COOKIES.equals(category)) {
             return new SiteSettingsCategory(CATEGORY_COOKIES, "",
                     ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES);
@@ -162,17 +167,20 @@
         if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC) {
             return fromString(CATEGORY_BACKGROUND_SYNC);
         }
-        if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
-            return fromString(CATEGORY_CAMERA);
+        if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ) {
+            return fromString(CATEGORY_CLIPBOARD);
         }
         if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES) {
             return fromString(CATEGORY_COOKIES);
         }
+        if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION) {
+            return fromString(CATEGORY_DEVICE_LOCATION);
+        }
         if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_JAVASCRIPT) {
             return fromString(CATEGORY_JAVASCRIPT);
         }
-        if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_GEOLOCATION) {
-            return fromString(CATEGORY_DEVICE_LOCATION);
+        if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) {
+            return fromString(CATEGORY_CAMERA);
         }
         if (contentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) {
             return fromString(CATEGORY_MICROPHONE);
@@ -233,13 +241,6 @@
     }
 
     /**
-     * Returns whether this category is the Cookies category.
-     */
-    public boolean showCookiesSites() {
-        return mContentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES;
-    }
-
-    /**
      * Returns whether this category is the Camera category.
      */
     public boolean showCameraSites() {
@@ -248,6 +249,20 @@
     }
 
     /**
+     * Returns whether this category is the Clipboard category.
+     */
+    public boolean showClipboardSites() {
+        return mContentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ;
+    }
+
+    /**
+     * Returns whether this category is the Cookies category.
+     */
+    public boolean showCookiesSites() {
+        return mContentSettingsType == ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES;
+    }
+
+    /**
      * Returns whether this category is the Geolocation category.
      */
     public boolean showGeolocationSites() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
index 384b22c..24b3a7d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
@@ -40,6 +40,7 @@
     static final String AUTOPLAY_KEY = "autoplay";
     static final String BACKGROUND_SYNC_KEY = "background_sync";
     static final String CAMERA_KEY = "camera";
+    static final String CLIPBOARD_KEY = "clipboard";
     static final String COOKIES_KEY = "cookies";
     static final String JAVASCRIPT_KEY = "javascript";
     static final String LOCATION_KEY = "device_location";
@@ -89,6 +90,8 @@
             return ContentSettingsType.CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC;
         } else if (CAMERA_KEY.equals(key)) {
             return ContentSettingsType.CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA;
+        } else if (CLIPBOARD_KEY.equals(key)) {
+            return ContentSettingsType.CONTENT_SETTINGS_TYPE_CLIPBOARD_READ;
         } else if (COOKIES_KEY.equals(key)) {
             return ContentSettingsType.CONTENT_SETTINGS_TYPE_COOKIES;
         } else if (JAVASCRIPT_KEY.equals(key)) {
@@ -117,6 +120,7 @@
             getPreferenceScreen().removePreference(findPreference(ADS_KEY));
             getPreferenceScreen().removePreference(findPreference(BACKGROUND_SYNC_KEY));
             getPreferenceScreen().removePreference(findPreference(CAMERA_KEY));
+            getPreferenceScreen().removePreference(findPreference(CLIPBOARD_KEY));
             getPreferenceScreen().removePreference(findPreference(COOKIES_KEY));
             getPreferenceScreen().removePreference(findPreference(JAVASCRIPT_KEY));
             getPreferenceScreen().removePreference(findPreference(LOCATION_KEY));
@@ -147,6 +151,9 @@
             if (!ChromeFeatureList.isEnabled(ChromeFeatureList.SOUND_CONTENT_SETTING)) {
                 getPreferenceScreen().removePreference(findPreference(SOUND_KEY));
             }
+            if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
+                getPreferenceScreen().removePreference(findPreference(CLIPBOARD_KEY));
+            }
             // The new Languages Preference *feature* is an advanced version of this translate
             // preference. Once Languages Preference is enabled, remove this setting.
             if (ChromeFeatureList.isEnabled(ChromeFeatureList.LANGUAGES_PREFERENCE)) {
@@ -178,6 +185,9 @@
             if (!mProtectedContentMenuAvailable) websitePrefs.add(AUTOPLAY_KEY);
             websitePrefs.add(BACKGROUND_SYNC_KEY);
             websitePrefs.add(CAMERA_KEY);
+            if (ChromeFeatureList.isEnabled(ChromeFeatureList.CLIPBOARD_CONTENT_SETTING)) {
+                websitePrefs.add(CLIPBOARD_KEY);
+            }
             websitePrefs.add(COOKIES_KEY);
             websitePrefs.add(JAVASCRIPT_KEY);
             websitePrefs.add(LOCATION_KEY);
@@ -202,6 +212,8 @@
                 checked = PrefServiceBridge.getInstance().isBackgroundSyncAllowed();
             } else if (CAMERA_KEY.equals(prefName)) {
                 checked = PrefServiceBridge.getInstance().isCameraEnabled();
+            } else if (CLIPBOARD_KEY.equals(prefName)) {
+                checked = PrefServiceBridge.getInstance().isClipboardEnabled();
             } else if (COOKIES_KEY.equals(prefName)) {
                 checked = PrefServiceBridge.getInstance().isAcceptCookiesEnabled();
             } else if (JAVASCRIPT_KEY.equals(prefName)) {
@@ -232,6 +244,8 @@
             } else if (COOKIES_KEY.equals(prefName) && checked
                     && prefServiceBridge.isBlockThirdPartyCookiesEnabled()) {
                 p.setSummary(ContentSettingsResources.getCookieAllowedExceptThirdPartySummary());
+            } else if (CLIPBOARD_KEY.equals(prefName) && !checked) {
+                p.setSummary(ContentSettingsResources.getClipboardBlockedListSummary());
             } else if (LOCATION_KEY.equals(prefName) && checked
                     && prefServiceBridge.isLocationAllowedByPolicy()) {
                 p.setSummary(ContentSettingsResources.getGeolocationAllowedSummary());
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
index 33fdd8d..48b78d8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/Website.java
@@ -32,6 +32,7 @@
     private ContentSettingException mAutoplayExceptionInfo;
     private ContentSettingException mBackgroundSyncExceptionInfo;
     private CameraInfo mCameraInfo;
+    private ClipboardInfo mClipboardInfo;
     private ContentSettingException mCookieException;
     private GeolocationInfo mGeolocationInfo;
     private ContentSettingException mJavaScriptException;
@@ -215,6 +216,31 @@
     }
 
     /**
+     * Sets the ClipboardInfo object for this Website.
+     */
+    public void setClipboardInfo(ClipboardInfo info) {
+        mClipboardInfo = info;
+    }
+
+    public ClipboardInfo getClipboardInfo() {
+        return mClipboardInfo;
+    }
+
+    /**
+     * Returns what permission governs Clipboard access.
+     */
+    public ContentSetting getClipboardPermission() {
+        return mClipboardInfo != null ? mClipboardInfo.getContentSetting() : null;
+    }
+
+    /**
+     * Configure Clipboard permission access setting for this site.
+     */
+    public void setClipboardPermission(ContentSetting value) {
+        if (mClipboardInfo != null) mClipboardInfo.setContentSetting(value);
+    }
+
+    /**
      * Sets the Cookie exception info for this site.
      */
     public void setCookieException(ContentSettingException exception) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
index ed4affb..e7fe7a1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePermissionsFetcher.java
@@ -134,6 +134,8 @@
         queue.add(new AutoplayExceptionInfoFetcher());
         // USB device permission is per-origin and per-embedder.
         queue.add(new UsbInfoFetcher());
+        // Clipboard info is per-origin.
+        queue.add(new ClipboardInfoFetcher());
 
         queue.add(new PermissionsAvailableCallbackRunner());
 
@@ -198,6 +200,9 @@
         } else if (category.showUsbDevices()) {
             // USB device permission is per-origin.
             queue.add(new UsbInfoFetcher());
+        } else if (category.showClipboardSites()) {
+            // Clipboard permission is per-origin.
+            queue.add(new ClipboardInfoFetcher());
         }
         queue.add(new PermissionsAvailableCallbackRunner());
         queue.next();
@@ -286,6 +291,18 @@
         }
     }
 
+    private class ClipboardInfoFetcher extends Task {
+        @Override
+        public void run() {
+            for (ClipboardInfo info : WebsitePreferenceBridge.getClipboardInfo()) {
+                WebsiteAddress origin = WebsiteAddress.create(info.getOrigin());
+                if (origin == null) continue;
+                WebsiteAddress embedder = WebsiteAddress.create(info.getEmbedder());
+                findOrCreateSite(origin, embedder).setClipboardInfo(info);
+            }
+        }
+    }
+
     private class GeolocationInfoFetcher extends Task {
         @Override
         public void run() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
index badf166cd..8229e379 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/WebsitePreferenceBridge.java
@@ -28,6 +28,22 @@
     }
 
     /**
+     * @return the list of all origins that have clipboard permissions in non-incognito mode.
+     */
+    @SuppressWarnings("unchecked")
+    public static List<ClipboardInfo> getClipboardInfo() {
+        ArrayList<ClipboardInfo> list = new ArrayList<ClipboardInfo>();
+        nativeGetClipboardOrigins(list);
+        return list;
+    }
+
+    @CalledByNative
+    private static void insertClipboardInfoIntoList(
+            ArrayList<ClipboardInfo> list, String origin, String embedder) {
+        list.add(new ClipboardInfo(origin, embedder, false));
+    }
+
+    /**
      * @return the list of all origins that have geolocation permissions in non-incognito mode.
      */
     @SuppressWarnings("unchecked")
@@ -235,6 +251,11 @@
         return nativeGetAdBlockingActivated(origin);
     }
 
+    private static native void nativeGetClipboardOrigins(Object list);
+    static native int nativeGetClipboardSettingForOrigin(
+            String origin, boolean isIncognito);
+    public static native void nativeSetClipboardSettingForOrigin(
+            String origin, int value, boolean isIncognito);
     private static native void nativeGetGeolocationOrigins(Object list, boolean managedOnly);
     static native int nativeGetGeolocationSettingForOrigin(
             String origin, String embedder, boolean isIncognito);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
index 5163de9..91c2247 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
@@ -151,4 +151,9 @@
             }
         });
     }
+
+    @Override
+    public boolean useModernDesign() {
+        return false;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
index 5a3c5c4..e41bdc6 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/Snackbar.java
@@ -59,7 +59,7 @@
     public static final int UMA_TRANSLATE_NEVER = 19;
     public static final int UMA_TRANSLATE_NEVER_SITE = 20;
     public static final int UMA_SNIPPET_FETCH_FAILED = 21;
-    public static final int UMA_CHROME_HOME_OPT_OUT_SURVEY = 22;
+    // Obsolete; don't use: UMA_CHROME_HOME_OPT_OUT_SURVEY = 22;
     public static final int UMA_SNIPPET_FETCH_NO_NEW_SUGGESTIONS = 23;
 
     private SnackbarController mController;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
index adfb86f..a36350925 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java
@@ -275,7 +275,7 @@
             mProfileImageView.setVisibility(View.GONE);
         }
 
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             mActionButtonView.setTextColor(ApiCompatibilityUtils.getColor(
                     mContainerView.getResources(), R.color.blue_when_enabled));
             mShadowView.setVisibility(View.VISIBLE);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
index d8b9cc25..61823ed 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsBottomSheetContent.java
@@ -86,6 +86,7 @@
 
     private boolean mNewTabShown;
     private boolean mSuggestionsInitialized;
+    private boolean mIsDestroyed;
     private boolean mSearchProviderHasLogo = true;
     private float mLastSheetHeightFraction = 1f;
 
@@ -163,6 +164,12 @@
                     .addStartupCompletedObserver(new BrowserStartupController.StartupCallback() {
                         @Override
                         public void onSuccess(boolean alreadyStarted) {
+                            // If this is destroyed before native initialization is finished, don't
+                            // do anything. Otherwise this will be initialized based on out-of-date
+                            // #mSheet and #mActivity, which causes a crash.
+                            // See https://crbug.com/804296.
+                            if (mIsDestroyed) return;
+
                             mRecyclerView.setVisibility(View.VISIBLE);
                             loadingView.hideLoadingUI();
                             initializeWithNative(tabModelSelector, snackbarManager);
@@ -361,6 +368,7 @@
 
     @Override
     public void destroy() {
+        mIsDestroyed = true;
         mSheet.getNewTabController().removeObserver(this);
         mLocationBar.removeUrlFocusChangeListener(this);
         if (mAnimator != null) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java
index cf038a8..50668f9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsRecyclerView.java
@@ -200,10 +200,10 @@
         // be through a OnLayoutChangeListener, but then we get notified of the change after the
         // layout pass, which means that the new style will only be visible after layout happens
         // again. We prefer updating here to avoid having to require that additional layout pass.
-        mUiConfig.updateDisplayStyle();
+        if (mUiConfig != null) mUiConfig.updateDisplayStyle();
 
         // Close the Context Menu as it may have moved (https://crbug.com/642688).
-        mContextMenuManager.closeContextMenu();
+        if (mContextMenuManager != null) mContextMenuManager.closeContextMenu();
     }
 
     /** Highlights the current length of the view by temporarily showing the scrollbar. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java
index 68e904b..b34a282 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/TileRenderer.java
@@ -86,7 +86,7 @@
     }
 
     private static boolean useDecreasedMinSize() {
-        return FeatureUtilities.isChromeHomeEnabled();
+        return FeatureUtilities.isChromeModernDesignEnabled();
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
index 00b5420..31b7b9a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
@@ -477,8 +477,8 @@
         } else {
             // ImageView#setImageResource is no-op if given resource is the current one.
             mSecurityButton.setImageResource(getToolbarDataProvider().getSecurityIconResource());
-            mSecurityButton.setTint(LocationBarLayout.getColorStateList(
-                    getToolbarDataProvider(), getResources(), false));
+            mSecurityButton.setTint(
+                    LocationBarLayout.getColorStateList(getToolbarDataProvider(), getResources()));
         }
 
         if (showSecurityButton) {
@@ -752,4 +752,9 @@
         // Custom tabs do not support suggestions.
         return false;
     }
+
+    @Override
+    public boolean useModernDesign() {
+        return false;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
index e013cba5..8e7ae7cf 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -140,6 +140,8 @@
     private final LocationBar mLocationBar;
     private FindToolbarManager mFindToolbarManager;
     private final AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
+    private OverviewModeBehavior mOverviewModeBehavior;
+    private LayoutManager mLayoutManager;
 
     private final TabObserver mTabObserver;
     private final BookmarkBridge.BookmarkModelObserver mBookmarksObserver;
@@ -642,17 +644,14 @@
      * @param controlsVisibilityDelegate The delegate to handle visibility of browser controls.
      * @param findToolbarManager         The manager for find in page.
      * @param overviewModeBehavior       The overview mode manager.
-     * @param layoutDriver               A {@link LayoutManager} instance used to watch for scene
+     * @param layoutManager              A {@link LayoutManager} instance used to watch for scene
      *                                   changes.
      */
     public void initializeWithNative(TabModelSelector tabModelSelector,
             BrowserStateBrowserControlsVisibilityDelegate controlsVisibilityDelegate,
-            final FindToolbarManager findToolbarManager,
-            final OverviewModeBehavior overviewModeBehavior,
-            final LayoutManager layoutDriver,
-            OnClickListener tabSwitcherClickHandler,
-            OnClickListener newTabClickHandler,
-            OnClickListener bookmarkClickHandler,
+            FindToolbarManager findToolbarManager, OverviewModeBehavior overviewModeBehavior,
+            LayoutManager layoutManager, OnClickListener tabSwitcherClickHandler,
+            OnClickListener newTabClickHandler, OnClickListener bookmarkClickHandler,
             OnClickListener customTabsBackClickHandler) {
         assert !mInitializedWithNative;
         mTabModelSelector = tabModelSelector;
@@ -664,36 +663,13 @@
         mToolbar.setOnNewTabClickHandler(newTabClickHandler);
         mToolbar.setBookmarkClickHandler(bookmarkClickHandler);
         mToolbar.setCustomTabCloseClickHandler(customTabsBackClickHandler);
-        mToolbar.setLayoutUpdateHost(layoutDriver);
+        mToolbar.setLayoutUpdateHost(layoutManager);
 
         mToolbarModel.initializeWithNative();
 
         mToolbar.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
             @Override
-            public void onViewDetachedFromWindow(View v) {
-                HomepageManager.getInstance().removeListener(mHomepageStateListener);
-                mTabModelSelector.removeObserver(mTabModelSelectorObserver);
-                for (TabModel model : mTabModelSelector.getModels()) {
-                    model.removeObserver(mTabModelObserver);
-                }
-                if (mBookmarkBridge != null) {
-                    mBookmarkBridge.destroy();
-                    mBookmarkBridge = null;
-                }
-                if (mTemplateUrlObserver != null) {
-                    TemplateUrlService.getInstance().removeObserver(mTemplateUrlObserver);
-                    mTemplateUrlObserver = null;
-                }
-
-                mFindToolbarManager.removeObserver(mFindToolbarObserver);
-
-                if (overviewModeBehavior != null) {
-                    overviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver);
-                }
-                if (layoutDriver != null) {
-                    layoutDriver.removeSceneChangeObserver(mSceneChangeObserver);
-                }
-            }
+            public void onViewDetachedFromWindow(View v) {}
 
             @Override
             public void onViewAttachedToWindow(View v) {
@@ -714,9 +690,13 @@
         mFindToolbarManager.addObserver(mFindToolbarObserver);
 
         if (overviewModeBehavior != null) {
-            overviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
+            mOverviewModeBehavior = overviewModeBehavior;
+            mOverviewModeBehavior.addOverviewModeObserver(mOverviewModeObserver);
         }
-        if (layoutDriver != null) layoutDriver.addSceneChangeObserver(mSceneChangeObserver);
+        if (layoutManager != null) {
+            mLayoutManager = layoutManager;
+            mLayoutManager.addSceneChangeObserver(mSceneChangeObserver);
+        }
 
         onNativeLibraryReady();
         mInitializedWithNative = true;
@@ -781,6 +761,33 @@
      * Call to tear down all of the toolbar dependencies.
      */
     public void destroy() {
+        if (mInitializedWithNative) {
+            HomepageManager.getInstance().removeListener(mHomepageStateListener);
+            mFindToolbarManager.removeObserver(mFindToolbarObserver);
+        }
+        if (mTabModelSelector != null) {
+            mTabModelSelector.removeObserver(mTabModelSelectorObserver);
+            for (TabModel model : mTabModelSelector.getModels()) {
+                model.removeObserver(mTabModelObserver);
+            }
+        }
+        if (mBookmarkBridge != null) {
+            mBookmarkBridge.destroy();
+            mBookmarkBridge = null;
+        }
+        if (mTemplateUrlObserver != null) {
+            TemplateUrlService.getInstance().removeObserver(mTemplateUrlObserver);
+            mTemplateUrlObserver = null;
+        }
+        if (mOverviewModeBehavior != null) {
+            mOverviewModeBehavior.removeOverviewModeObserver(mOverviewModeObserver);
+            mOverviewModeBehavior = null;
+        }
+        if (mLayoutManager != null) {
+            mLayoutManager.removeSceneChangeObserver(mSceneChangeObserver);
+            mLayoutManager = null;
+        }
+
         mLocationBar.removeUrlFocusChangeListener(this);
         Tab currentTab = mToolbarModel.getTab();
         if (currentTab != null) currentTab.removeObserver(mTabObserver);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
index 5a9d4bf..29aa0e8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarModelImpl.java
@@ -5,7 +5,6 @@
 package org.chromium.chrome.browser.toolbar;
 
 import android.content.Context;
-import android.content.res.Resources;
 import android.os.Build;
 import android.support.annotation.DrawableRes;
 import android.support.annotation.Nullable;
@@ -26,7 +25,6 @@
 import org.chromium.chrome.browser.search_engines.TemplateUrlService;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.toolbar.ToolbarModel.ToolbarModelDelegate;
-import org.chromium.chrome.browser.util.ColorUtils;
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
 import org.chromium.components.dom_distiller.core.DomDistillerService;
 import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
@@ -198,10 +196,6 @@
 
     @Override
     public int getPrimaryColor() {
-        if (mBottomSheet != null) {
-            Resources res = ContextUtils.getApplicationContext().getResources();
-            return ColorUtils.getDefaultThemeColor(res, true, isIncognito());
-        }
         return mPrimaryColor;
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
index 9c22ef16..8865b8d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
@@ -22,7 +22,6 @@
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.library_loader.LibraryLoader;
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.firstrun.FirstRunUtils;
@@ -50,7 +49,6 @@
     private static Boolean sHasGoogleAccountAuthenticator;
     private static Boolean sHasRecognitionIntentHandler;
     private static Boolean sChromeHomeEnabled;
-    private static boolean sChromeHomeNeedsUpdate;
     private static String sChromeHomeSwipeLogicType;
 
     private static Boolean sIsSoleEnabled;
@@ -165,24 +163,6 @@
                 ChromeFeatureList.isEnabled(ChromeFeatureList.DONT_PREFETCH_LIBRARIES));
     }
 
-    public static void notifyChromeHomeStatusChanged(boolean isChromeHomeEnabled) {
-        nativeNotifyChromeHomeStatusChanged(isChromeHomeEnabled);
-    }
-
-    /**
-     * Finalize any static settings that will change when the browser restarts.
-     */
-    public static void finalizePendingFeatures() {
-        if (sChromeHomeNeedsUpdate) {
-            // Clear the Chrome Home flag so that it can be re-cached below.
-            sChromeHomeEnabled = null;
-            // Re-cache the Chrome Home state.
-            cacheChromeHomeEnabled();
-            notifyChromeHomeStatusChanged(isChromeHomeEnabled());
-            sChromeHomeNeedsUpdate = false;
-        }
-    }
-
     /**
      * @return True if tab model merging for Android N+ is enabled.
      */
@@ -200,6 +180,7 @@
     public static void cacheChromeHomeEnabled() {
         // Chrome Home doesn't work with tablets.
         if (DeviceFormFactor.isTablet()) return;
+        ChromePreferenceManager.getInstance().clearObsoleteChromeHomePrefs();
 
         boolean isChromeHomeEnabled = ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME);
         ChromePreferenceManager manager = ChromePreferenceManager.getInstance();
@@ -208,19 +189,6 @@
         PrefServiceBridge.getInstance().setChromeHomePersonalizedOmniboxSuggestionsEnabled(
                 areChromeHomePersonalizedOmniboxSuggestionsEnabled());
 
-        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)
-                && manager.isChromeHomeUserPreferenceSet()) {
-            // If we showed the user the old promo, set the info promo preference so that it is not
-            // presented when the opt-in/out promo is turned off.
-            manager.setChromeHomeInfoPromoShown();
-            manager.clearChromeHomeUserPreference();
-        }
-
-        if (manager.isChromeHomeUserPreferenceSet()) {
-            RecordHistogram.recordBooleanHistogram(
-                    "Android.ChromeHome.UserPreference.Enabled", manager.isChromeHomeUserEnabled());
-        }
-
         UmaSessionStats.registerSyntheticFieldTrial(SYNTHETIC_CHROME_HOME_EXPERIMENT_NAME,
                 isChromeHomeEnabled() ? ENABLED_EXPERIMENT_GROUP : DISABLED_EXPERIMENT_GROUP);
     }
@@ -234,16 +202,6 @@
     }
 
     /**
-     * Update the user's setting for Chrome Home. This is a user-facing setting different from the
-     * one in chrome://flags. This setting will take prescience over the one in flags.
-     * @param enabled Whether or not the feature should be enabled.
-     */
-    public static void switchChromeHomeUserSetting(boolean enabled) {
-        ChromePreferenceManager.getInstance().setChromeHomeUserEnabled(enabled);
-        sChromeHomeNeedsUpdate = sChromeHomeEnabled != null && enabled != sChromeHomeEnabled;
-    }
-
-    /**
      * @return Whether or not chrome should attach the toolbar to the bottom of the screen.
      */
     @CalledByNative
@@ -251,25 +209,19 @@
         if (DeviceFormFactor.isTablet()) return false;
 
         if (sChromeHomeEnabled == null) {
-            boolean isUserPreferenceSet = false;
             ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
 
             // Allow disk access for preferences while Chrome Home is in experimentation.
             StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
             try {
-                if (ChromePreferenceManager.getInstance().isChromeHomeUserPreferenceSet()) {
-                    isUserPreferenceSet = true;
-                    sChromeHomeEnabled = prefManager.isChromeHomeUserEnabled();
-                } else {
-                    sChromeHomeEnabled = prefManager.isChromeHomeEnabled();
-                }
+                sChromeHomeEnabled = prefManager.isChromeHomeEnabled();
             } finally {
                 StrictMode.setThreadPolicy(oldPolicy);
             }
 
             // If the browser has been initialized by this point, check the experiment as well to
             // avoid the restart logic in cacheChromeHomeEnabled.
-            if (ChromeFeatureList.isInitialized() && !isUserPreferenceSet) {
+            if (ChromeFeatureList.isInitialized()) {
                 boolean chromeHomeExperimentEnabled =
                         ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME);
 
@@ -307,40 +259,6 @@
     }
 
     /**
-     * @return Whether the Chrome Home promo should be shown for cold-start.
-     */
-    public static boolean shouldShowChromeHomePromoForStartup() {
-        if (DeviceFormFactor.isTablet()) return false;
-
-        ChromePreferenceManager prefManager = ChromePreferenceManager.getInstance();
-
-        if (!ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_INFO_ONLY)
-                && isChromeHomeEnabled()) {
-            prefManager.setChromeHomeInfoPromoShown();
-        }
-
-        // The preference will be set if the promo has been seen before. If that is the case, do not
-        // show it again.
-        boolean isChromeHomePrefSet = prefManager.isChromeHomeUserPreferenceSet();
-        if (isChromeHomePrefSet) return false;
-
-        if (isChromeHomeEnabled()
-                && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_INFO_ONLY)) {
-            boolean promoShown;
-            try (StrictModeContext unused = StrictModeContext.allowDiskReads()) {
-                promoShown = ChromePreferenceManager.getInstance().hasChromeHomeInfoPromoShown();
-            }
-            return !promoShown;
-        } else if (!isChromeHomeEnabled()
-                && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO)
-                && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_ON_STARTUP)) {
-            return true;
-        }
-
-        return false;
-    }
-
-    /**
      * Cache whether or not Sole integration is enabled.
      */
     public static void cacheSoleEnabled() {
@@ -367,7 +285,16 @@
         return sIsSoleEnabled;
     }
 
+    /**
+     * @return Whether Chrome modern design is enabled. This returns true if Chrome Home is enabled.
+     */
+    @CalledByNative
+    public static boolean isChromeModernDesignEnabled() {
+        if (isChromeHomeEnabled()) return true;
+        return ChromeFeatureList.isInitialized()
+                && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_MODERN_DESIGN);
+    }
+
     private static native void nativeSetCustomTabVisible(boolean visible);
     private static native void nativeSetIsInMultiWindowMode(boolean isInMultiWindowMode);
-    private static native void nativeNotifyChromeHomeStatusChanged(boolean isChromeHomeEnabled);
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShell.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShell.java
index 3ae7c85..86d9908 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShell.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShell.java
@@ -16,8 +16,8 @@
     /**
      * Performs native VrShell initialization.
      */
-    void initializeNative(Tab currentTab, boolean forWebVr, boolean webVrAutopresentationExpected,
-            boolean inCct, boolean browsingDisabled);
+    void initializeNative(
+            Tab currentTab, boolean forWebVr, boolean webVrAutopresentationExpected, boolean inCct);
 
     /**
      * Pauses VrShell.
@@ -72,12 +72,6 @@
     void requestToExitVr(@UiUnsupportedMode int reason);
 
     /**
-     * Gives VrShell a chance to clean up any view-dependent state before removing
-     * VrShell from the view hierarchy.
-     */
-    void onBeforeWindowDetached();
-
-    /**
      *  Triggers VrShell to navigate forward.
      */
     void navigateForward();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
index 5b61d35..3ff9122 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
@@ -134,7 +134,6 @@
     private VrDaydreamApi mVrDaydreamApi;
     private Boolean mIsDaydreamCurrentViewer;
     private VrCoreVersionChecker mVrCoreVersionChecker;
-    private TabModelSelector mTabModelSelector;
 
     private boolean mProbablyInDon;
     private boolean mInVr;
@@ -446,6 +445,14 @@
         return false;
     }
 
+    public static boolean activitySupportsVrBrowsing(Activity activity) {
+        if (activity instanceof ChromeTabbedActivity) return true;
+        if (activity instanceof CustomTabActivity) {
+            return ChromeFeatureList.isEnabled(ChromeFeatureList.VR_BROWSING_IN_CUSTOM_TAB);
+        }
+        return false;
+    }
+
     @CalledByNative
     private static VrShellDelegate getInstance() {
         Activity activity = ApplicationStatus.getLastTrackedFocusedActivity();
@@ -486,14 +493,6 @@
         return activity instanceof ChromeTabbedActivity || activity instanceof CustomTabActivity;
     }
 
-    private static boolean activitySupportsVrBrowsing(Activity activity) {
-        if (activity instanceof ChromeTabbedActivity) return true;
-        if (activity instanceof CustomTabActivity) {
-            return ChromeFeatureList.isEnabled(ChromeFeatureList.VR_BROWSING_IN_CUSTOM_TAB);
-        }
-        return false;
-    }
-
     private static boolean activitySupportsExitFeedback(Activity activity) {
         return activity instanceof ChromeTabbedActivity
                 && ChromeFeatureList.isEnabled(ChromeFeatureList.VR_BROWSING_FEEDBACK);
@@ -808,8 +807,9 @@
         return true;
     }
 
-    private boolean isVrBrowsingEnabled() {
-        return isVrShellEnabled(mVrSupportLevel) && activitySupportsVrBrowsing(mActivity);
+    /* package */ boolean isVrBrowsingEnabled() {
+        return isVrShellEnabled(mVrSupportLevel) && activitySupportsVrBrowsing(mActivity)
+                && isDaydreamCurrentViewer();
     }
 
     private void enterVr(final boolean tentativeWebVrMode) {
@@ -841,7 +841,7 @@
         addVrViews();
         boolean webVrMode = mRequestedWebVr || tentativeWebVrMode || mAutopresentWebVr;
         mVrShell.initializeNative(mActivity.getActivityTab(), webVrMode, mAutopresentWebVr,
-                mActivity instanceof CustomTabActivity, !isVrBrowsingEnabled());
+                mActivity instanceof CustomTabActivity);
         mVrShell.setWebVrModeEnabled(webVrMode, false);
 
         // We're entering VR, but not in WebVr mode.
@@ -1172,8 +1172,7 @@
             mVrDaydreamApi.launchVrHomescreen();
             return;
         }
-        if (!isVrShellEnabled(mVrSupportLevel) || !activitySupportsVrBrowsing(mActivity)
-                || !isDaydreamCurrentViewer()) {
+        if (!isVrBrowsingEnabled()) {
             if (isDaydreamCurrentViewer()) {
                 mVrDaydreamApi.launchVrHomescreen();
             } else {
@@ -1683,11 +1682,11 @@
         assert mVrShell == null;
         if (mVrClassesWrapper == null) return false;
         if (mActivity.getCompositorViewHolder() == null) return false;
-        mTabModelSelector = mActivity.getCompositorViewHolder().detachForVr();
-        if (mTabModelSelector == null) return false;
+        TabModelSelector tabModelSelector = mActivity.getTabModelSelector();
+        if (tabModelSelector == null) return false;
         StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
         try {
-            mVrShell = mVrClassesWrapper.createVrShell(mActivity, this, mTabModelSelector);
+            mVrShell = mVrClassesWrapper.createVrShell(mActivity, this, tabModelSelector);
         } finally {
             StrictMode.setThreadPolicy(oldPolicy);
         }
@@ -1704,7 +1703,6 @@
     }
 
     private void removeVrViews() {
-        mVrShell.onBeforeWindowDetached();
         mActivity.onExitVr();
         FrameLayout decor = (FrameLayout) mActivity.getWindow().getDecorView();
         decor.removeView(mVrShell.getContainer());
@@ -1718,10 +1716,6 @@
             mVrShell.getContainer().setOnSystemUiVisibilityChangeListener(null);
             mVrShell.teardown();
             mVrShell = null;
-            if (mActivity.getCompositorViewHolder() != null) {
-                mActivity.getCompositorViewHolder().onExitVr(mTabModelSelector);
-            }
-            mTabModelSelector = null;
         }
     }
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java
index c8d91b1..5c9de29 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellImpl.java
@@ -5,7 +5,7 @@
 package org.chromium.chrome.browser.vr_shell;
 
 import android.annotation.SuppressLint;
-import android.graphics.Canvas;
+import android.graphics.PixelFormat;
 import android.graphics.Point;
 import android.os.StrictMode;
 import android.util.DisplayMetrics;
@@ -15,7 +15,7 @@
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
 import android.view.View;
-import android.view.ViewTreeObserver.OnPreDrawListener;
+import android.view.ViewGroup;
 import android.widget.FrameLayout;
 
 import com.google.vr.ndk.base.AndroidCompat;
@@ -27,8 +27,8 @@
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
-import org.chromium.chrome.browser.NativePage;
 import org.chromium.chrome.browser.UrlConstants;
+import org.chromium.chrome.browser.compositor.CompositorView;
 import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager;
 import org.chromium.chrome.browser.page_info.PageInfoPopup;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
@@ -48,7 +48,6 @@
 import org.chromium.content.browser.ContentViewCore;
 import org.chromium.content_public.browser.LoadUrlParams;
 import org.chromium.content_public.browser.WebContents;
-import org.chromium.ui.UiUtils;
 import org.chromium.ui.base.WindowAndroid;
 import org.chromium.ui.base.WindowAndroid.PermissionCallback;
 import org.chromium.ui.display.DisplayAndroid;
@@ -63,26 +62,25 @@
     private static final float INCHES_TO_METERS = 0.0254f;
 
     private final ChromeActivity mActivity;
+    private final CompositorView mCompositorView;
+    private final VrCompositorSurfaceManager mVrCompositorSurfaceManager;
     private final VrShellDelegate mDelegate;
     private final VirtualDisplayAndroid mContentVirtualDisplay;
     private final TabRedirectHandler mTabRedirectHandler;
     private final TabObserver mTabObserver;
     private final TabModelSelectorObserver mTabModelSelectorObserver;
     private final View.OnTouchListener mTouchListener;
+    private final boolean mVrBrowsingEnabled;
+
     private TabModelSelectorTabObserver mTabModelSelectorTabObserver;
-    private OnPreDrawListener mPredrawListener;
 
     private long mNativeVrShell;
 
-    private FrameLayout mRenderToSurfaceLayoutParent;
-    private FrameLayout mRenderToSurfaceLayout;
-    private Surface mSurface;
     private View mPresentationView;
 
     // The tab that holds the main ContentViewCore.
     private Tab mTab;
     private ContentViewCore mContentViewCore;
-    private NativePage mNativePage;
     private Boolean mCanGoBack;
     private Boolean mCanGoForward;
 
@@ -104,15 +102,33 @@
 
     private OnDispatchTouchEventCallback mOnDispatchTouchEventForTesting;
 
+    private Surface mContentSurface;
+    private VrViewContainer mNonVrViews;
+
     public VrShellImpl(
             ChromeActivity activity, VrShellDelegate delegate, TabModelSelector tabModelSelector) {
         super(activity);
         mActivity = activity;
         mDelegate = delegate;
         mTabModelSelector = tabModelSelector;
+        mVrBrowsingEnabled = mDelegate.isVrBrowsingEnabled();
 
         mActivity.getToolbarManager().setProgressBarEnabled(false);
 
+        DisplayAndroid primaryDisplay = DisplayAndroid.getNonMultiDisplay(activity);
+        mContentVirtualDisplay = VirtualDisplayAndroid.createVirtualDisplay();
+        mContentVirtualDisplay.setTo(primaryDisplay);
+
+        mContentVrWindowAndroid = new VrWindowAndroid(mActivity, mContentVirtualDisplay);
+
+        mActivity.getCompositorViewHolder().onEnterVr();
+        mCompositorView = mActivity.getCompositorViewHolder().getCompositorView();
+        mVrCompositorSurfaceManager = new VrCompositorSurfaceManager(mCompositorView);
+        mCompositorView.replaceSurfaceManagerForVr(
+                mVrCompositorSurfaceManager, mContentVrWindowAndroid);
+
+        if (mVrBrowsingEnabled) injectVrRootView();
+
         // This overrides the default intent created by GVR to return to Chrome when the DON flow
         // is triggered by resuming the GvrLayout, which is the usual way Daydream apps enter VR.
         // See VrShellDelegate#getEnterVrPendingIntent for why we need to do this.
@@ -137,9 +153,6 @@
 
         getUiLayout().setCloseButtonListener(mDelegate.getVrCloseButtonListener());
 
-        DisplayAndroid primaryDisplay = DisplayAndroid.getNonMultiDisplay(activity);
-        mContentVirtualDisplay = VirtualDisplayAndroid.createVirtualDisplay();
-        mContentVirtualDisplay.setTo(primaryDisplay);
         // Set the initial content size and DPR to be applied to reparented tabs. Otherwise, Chrome
         // will crash due to a GL buffer initialized with zero bytes.
         ContentViewCore activeContentViewCore =
@@ -169,40 +182,16 @@
                     forceExitVr();
                     return;
                 }
-                if (mNativePage != null) {
-                    UiUtils.removeViewFromParent(mNativePage.getView());
-                    mNativePage = null;
-                    mAndroidUiGestureTarget = null;
-                    if (tab.getNativePage() == null) {
-                        nativeRestoreContentSurface(mNativeVrShell);
-                        mRenderToSurfaceLayoutParent.setVisibility(View.INVISIBLE);
-                        mSurface = null;
-                    }
-                }
-                if (tab.getNativePage() != null) {
-                    mRenderToSurfaceLayoutParent.setVisibility(View.VISIBLE);
-                    mNativePage = tab.getNativePage();
-                    if (mSurface == null) mSurface = nativeTakeContentSurface(mNativeVrShell);
-                    mRenderToSurfaceLayout.addView(mNativePage.getView(),
-                            new FrameLayout.LayoutParams(
-                                    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
-                    mNativePage.getView().invalidate();
-                    mAndroidUiGestureTarget = new AndroidUiGestureTarget(mRenderToSurfaceLayout,
-                            mContentVrWindowAndroid.getDisplay().getDipScale(),
-                            getNativePageScrollRatio());
-                }
                 setContentCssSize(mLastContentWidth, mLastContentHeight, mLastContentDpr);
-                if (tab.getNativePage() == null && tab.getContentViewCore() != null) {
+                if (tab.getContentViewCore() != null) {
                     mContentViewCore = tab.getContentViewCore();
-                    mContentViewCore.onAttachedToWindow();
                     mContentViewCore.getContainerView().requestFocus();
                     // We need the CVC to think it has Window Focus so it doesn't blur the page,
                     // even though we're drawing VR layouts over top of it.
                     mContentViewCore.onWindowFocusChanged(true);
-                    nativeSwapContents(mNativeVrShell, tab, null);
-                } else {
-                    nativeSwapContents(mNativeVrShell, tab, mAndroidUiGestureTarget);
                 }
+                nativeSwapContents(mNativeVrShell, tab,
+                        DisplayAndroid.getNonMultiDisplay(activity).getDipScale());
                 updateHistoryButtonsVisibility();
             }
 
@@ -268,51 +257,38 @@
                 return false;
             }
         };
-        // We need a parent for the RenderToSurfaceLayout because we want screen taps to only be
-        // routed to the GvrUiLayout, and not propagate through to the NativePage. So screen taps
-        // fall through the RenderToSurfaceLayoutParent, onto the GvrUiLayout, while touch events
-        // generated from the VR controller are injected directly into the RenderToSurfaceLayout,
-        // bypassing the parent.
-        mRenderToSurfaceLayoutParent = new FrameLayout(mActivity) {
-            @Override
-            public boolean dispatchTouchEvent(MotionEvent event) {
-                return false;
-            }
-        };
-        mRenderToSurfaceLayoutParent.setVisibility(View.INVISIBLE);
-        mRenderToSurfaceLayout = new FrameLayout(mActivity) {
-            @Override
-            protected void dispatchDraw(Canvas canvas) {
-                if (mSurface == null) return;
-                // TODO(mthiesse): Support mSurface.lockHardwareCanvas(); crbug.com/692775
-                final Canvas surfaceCanvas = mSurface.lockCanvas(null);
-                super.dispatchDraw(surfaceCanvas);
-                mSurface.unlockCanvasAndPost(surfaceCanvas);
-            }
-        };
-        mRenderToSurfaceLayout.setVisibility(View.VISIBLE);
-        // We need a pre-draw listener to invalidate the native page because scrolling usually
-        // doesn't trigger an onDraw call, so our texture won't get updated.
-        mPredrawListener = new OnPreDrawListener() {
-            @Override
-            public boolean onPreDraw() {
-                if (mRenderToSurfaceLayout.isDirty()) {
-                    mRenderToSurfaceLayout.invalidate();
-                    if (mNativePage != null) mNativePage.getView().invalidate();
-                }
-                return true;
-            }
-        };
-        mRenderToSurfaceLayout.getViewTreeObserver().addOnPreDrawListener(mPredrawListener);
-        mRenderToSurfaceLayoutParent.addView(mRenderToSurfaceLayout);
-        addView(mRenderToSurfaceLayoutParent);
+    }
+
+    private void injectVrRootView() {
+        // Inject a view into the hierarchy above R.id.content so that the rest of Chrome can
+        // remain unaware/uncaring of its existence. This view is used to draw the view hierarchy
+        // into a texture when browsing in VR. See https://crbug.com/793430.
+        View content = mActivity.getWindow().findViewById(android.R.id.content);
+        ViewGroup parent = (ViewGroup) content.getParent();
+        VrViewContainer viewContainer = new VrViewContainer(mActivity);
+        parent.removeView(content);
+        parent.addView(viewContainer);
+        viewContainer.addView(content);
+        mNonVrViews = viewContainer;
+    }
+
+    private void removeVrRootView() {
+        ViewGroup parent = (ViewGroup) mNonVrViews.getParent();
+        assert mNonVrViews.getChildCount() == 1;
+        ViewGroup child = (ViewGroup) mNonVrViews.getChildAt(0);
+        mNonVrViews.removeAllViews();
+        parent.removeView(mNonVrViews);
+        parent.addView(child);
+        // Ensure the omnibox doesn't get initial focus (as it would when re-attaching the views
+        // to a window), and immediately bring up the keyboard.
+        mActivity.getCompositorViewHolder().requestFocus();
     }
 
     @Override
     // TODO(crbug.com/762588): Fix getRealMetrics and remove suppression.
     @SuppressLint("NewApi")
     public void initializeNative(Tab currentTab, boolean forWebVr,
-            boolean webVrAutopresentationExpected, boolean inCct, boolean browsingDisabled) {
+            boolean webVrAutopresentationExpected, boolean inCct) {
         assert currentTab != null;
         // Get physical and pixel size of the display, which is needed by native
         // to dynamically calculate the content's resolution and window size.
@@ -321,16 +297,14 @@
         float displayWidthMeters = (dm.widthPixels / dm.xdpi) * INCHES_TO_METERS;
         float displayHeightMeters = (dm.heightPixels / dm.ydpi) * INCHES_TO_METERS;
 
-        mContentVrWindowAndroid = new VrWindowAndroid(mActivity, mContentVirtualDisplay);
         boolean hasOrCanRequestAudioPermission =
                 mActivity.getWindowAndroid().hasPermission(android.Manifest.permission.RECORD_AUDIO)
                 || mActivity.getWindowAndroid().canRequestPermission(
                            android.Manifest.permission.RECORD_AUDIO);
-        mNativeVrShell = nativeInit(mDelegate, mContentVrWindowAndroid, forWebVr,
-                webVrAutopresentationExpected, inCct, browsingDisabled,
-                hasOrCanRequestAudioPermission, getGvrApi().getNativeGvrContext(),
-                mReprojectedRendering, displayWidthMeters, displayHeightMeters, dm.widthPixels,
-                dm.heightPixels);
+        mNativeVrShell = nativeInit(mDelegate, forWebVr, webVrAutopresentationExpected, inCct,
+                !mVrBrowsingEnabled, hasOrCanRequestAudioPermission,
+                getGvrApi().getNativeGvrContext(), mReprojectedRendering, displayWidthMeters,
+                displayHeightMeters, dm.widthPixels, dm.heightPixels);
 
         reparentAllTabs(mContentVrWindowAndroid);
         swapToTab(currentTab);
@@ -340,6 +314,12 @@
         updateHistoryButtonsVisibility();
 
         mPresentationView.setOnTouchListener(mTouchListener);
+
+        if (mVrBrowsingEnabled) {
+            mAndroidUiGestureTarget = new AndroidUiGestureTarget(mNonVrViews.getInputTarget(),
+                    mContentVrWindowAndroid.getDisplay().getDipScale(), getNativePageScrollRatio());
+            nativeSetAndroidGestureTarget(mNativeVrShell, mAndroidUiGestureTarget);
+        }
     }
 
     private void createTabList() {
@@ -488,37 +468,41 @@
         mLastContentHeight = height;
         mLastContentDpr = dpr;
 
-        // Native pages don't listen to our DPR changes, so to get them to render at the correct
+        // Java views don't listen to our DPR changes, so to get them to render at the correct
         // size we need to make them larger.
         DisplayAndroid primaryDisplay = DisplayAndroid.getNonMultiDisplay(mActivity);
         float dip = primaryDisplay.getDipScale();
 
-        if (mNativePage != null) {
-            width *= (dip / dpr);
-            height *= (dip / dpr);
-        }
+        int contentWidth = (int) Math.ceil(width * dpr);
+        int contentHeight = (int) Math.ceil(height * dpr);
 
-        int surfaceWidth = (int) Math.ceil(width * dpr);
-        int surfaceHeight = (int) Math.ceil(height * dpr);
+        int overlayWidth = (int) Math.ceil(width * dip);
+        int overlayHeight = (int) Math.ceil(height * dip);
 
-        Point size = new Point(surfaceWidth, surfaceHeight);
+        if (mVrBrowsingEnabled) mNonVrViews.resize(overlayWidth, overlayHeight);
+
+        Point size = new Point(contentWidth, contentHeight);
         mContentVirtualDisplay.update(size, dpr, dip / dpr, null, null, null, null, null);
-        assert mTab != null;
-        if (mTab.getContentViewCore() != null) {
-            nativeOnPhysicalBackingSizeChanged(
-                    mNativeVrShell, mTab.getWebContents(), surfaceWidth, surfaceHeight);
+        nativeOnPhysicalBackingSizeChanged(
+                mNativeVrShell, mTab.getWebContents(), contentWidth, contentHeight);
+        nativeBufferBoundsChanged(
+                mNativeVrShell, contentWidth, contentHeight, overlayWidth, overlayHeight);
+        if (mContentSurface != null) {
+            mVrCompositorSurfaceManager.surfaceResized(contentWidth, contentHeight);
         }
-        mRenderToSurfaceLayout.setLayoutParams(
-                new FrameLayout.LayoutParams(surfaceWidth, surfaceHeight));
-        nativeContentPhysicalBoundsChanged(mNativeVrShell, surfaceWidth, surfaceHeight, dpr);
     }
 
     @CalledByNative
-    public void contentSurfaceChanged() {
-        if (mSurface != null || mNativePage == null) return;
-        mSurface = nativeTakeContentSurface(mNativeVrShell);
-        mNativePage.getView().invalidate();
-        mRenderToSurfaceLayout.invalidate();
+    public void contentSurfaceCreated(Surface surface) {
+        mContentSurface = surface;
+        int width = (int) Math.ceil(mLastContentWidth * mLastContentDpr);
+        int height = (int) Math.ceil(mLastContentHeight * mLastContentDpr);
+        mVrCompositorSurfaceManager.setSurface(mContentSurface, PixelFormat.OPAQUE, width, height);
+    }
+
+    @CalledByNative
+    public void contentOverlaySurfaceCreated(Surface surface) {
+        if (mVrBrowsingEnabled) mNonVrViews.setSurface(surface);
     }
 
     @Override
@@ -570,31 +554,27 @@
         if (mPaused != null && mPaused) return;
         mPaused = true;
         super.onPause();
-        if (mNativeVrShell != 0) {
-            nativeOnPause(mNativeVrShell);
-        }
-    }
-
-    @Override
-    public void onBeforeWindowDetached() {
-        mRenderToSurfaceLayout.getViewTreeObserver().removeOnPreDrawListener(mPredrawListener);
+        if (mNativeVrShell != 0) nativeOnPause(mNativeVrShell);
     }
 
     @Override
     public void shutdown() {
+        if (mVrBrowsingEnabled) {
+            mNonVrViews.destroy();
+            removeVrRootView();
+        }
+
         mActivity.getFullscreenManager().setPersistentFullscreenMode(false);
         reparentAllTabs(mActivity.getWindowAndroid());
         if (mNativeVrShell != 0) {
             nativeDestroy(mNativeVrShell);
             mNativeVrShell = 0;
         }
-        if (mNativePage != null) UiUtils.removeViewFromParent(mNativePage.getView());
         mTabModelSelector.removeObserver(mTabModelSelectorObserver);
         mTabModelSelectorTabObserver.destroy();
+        assert mTab != null;
         mTab.removeObserver(mTabObserver);
         restoreTabFromVR();
-
-        assert mTab != null;
         if (mTab.getContentViewCore() != null) {
             View parent = mTab.getContentViewCore().getContainerView();
             mTab.getWebContents().setSize(parent.getWidth(), parent.getHeight());
@@ -604,6 +584,12 @@
 
         mContentVirtualDisplay.destroy();
 
+        mCompositorView.onExitVr(mActivity.getWindowAndroid());
+        if (mActivity.getCompositorViewHolder() != null) {
+            mActivity.getCompositorViewHolder().onExitVr();
+        }
+        mActivity.getToolbarManager().setProgressBarEnabled(true);
+
         // Since VSync was paused, control heights may not have been propagated. If we request to
         // show the controls before the old values have propagated we'll end up with the old values
         // (ie. the controls hidden). The values will have propagated with the next frame received
@@ -633,30 +619,33 @@
 
     @Override
     public void setWebVrModeEnabled(boolean enabled, boolean showToast) {
-        nativeSetWebVrMode(mNativeVrShell, enabled, showToast);
-        if (!enabled) mContentVrWindowAndroid.setVSyncPaused(false);
-
-        // Wait for the compositor to produce a frame to allow the omnibox to start hiding before
-        // we pause VSync. Control heights may not be correct as the omnibox might animate, but this
-        // is handled when exiting VR.
-        mPendingVSyncPause = enabled;
-    }
-
-    @CalledByNative
-    private void didSwapBuffers() {
-        if (mPendingVSyncPause) {
-            mContentVrWindowAndroid.setVSyncPaused(true);
+        if (mNativeVrShell != 0) nativeSetWebVrMode(mNativeVrShell, enabled, showToast);
+        if (!enabled) {
+            mContentVrWindowAndroid.setVSyncPaused(false);
             mPendingVSyncPause = false;
+            return;
         }
+        // Wait for the compositor to produce a frame to allow the omnibox to start hiding
+        // before we pause VSync. Control heights may not be correct as the omnibox might
+        // animate, but this is handled when exiting VR.
+        mPendingVSyncPause = true;
+        mActivity.getCompositorViewHolder().getCompositorView().surfaceRedrawNeededAsync(() -> {
+            if (mPendingVSyncPause) {
+                mContentVrWindowAndroid.setVSyncPaused(true);
+                mPendingVSyncPause = false;
+            }
+        });
     }
 
     @Override
     public boolean getWebVrModeEnabled() {
+        if (mNativeVrShell == 0) return false;
         return nativeGetWebVrMode(mNativeVrShell);
     }
 
     @Override
     public boolean isDisplayingUrlForTesting() {
+        assert mNativeVrShell != 0;
         return nativeIsDisplayingUrlForTesting(mNativeVrShell);
     }
 
@@ -667,6 +656,7 @@
 
     @Override
     public void surfaceCreated(SurfaceHolder holder) {
+        if (mNativeVrShell == 0) return;
         nativeSetSurface(mNativeVrShell, holder.getSurface());
     }
 
@@ -677,7 +667,8 @@
 
     @Override
     public void surfaceDestroyed(SurfaceHolder holder) {
-        nativeSetSurface(mNativeVrShell, null);
+        mVrCompositorSurfaceManager.surfaceDestroyed();
+        if (mNativeVrShell != 0) nativeSetSurface(mNativeVrShell, null);
     }
 
     private void createTabModelSelectorTabObserver() {
@@ -715,13 +706,13 @@
 
     @Override
     public void requestToExitVr(@UiUnsupportedMode int reason) {
-        nativeRequestToExitVr(mNativeVrShell, reason);
+        if (mNativeVrShell != 0) nativeRequestToExitVr(mNativeVrShell, reason);
     }
 
     @CalledByNative
     private void onExitVrRequestResult(@UiUnsupportedMode int reason, boolean shouldExit) {
         if (shouldExit) {
-            nativeLogUnsupportedModeUserMetric(mNativeVrShell, reason);
+            if (mNativeVrShell != 0) nativeLogUnsupportedModeUserMetric(mNativeVrShell, reason);
         }
         mDelegate.onExitVrRequestResult(shouldExit);
     }
@@ -776,6 +767,7 @@
     }
 
     private void updateHistoryButtonsVisibility() {
+        if (mNativeVrShell == 0) return;
         assert mTab != null;
         boolean willCloseTab = false;
         if (mActivity instanceof ChromeTabbedActivity) {
@@ -842,14 +834,15 @@
         return mPresentationView;
     }
 
-    private native long nativeInit(VrShellDelegate delegate, WindowAndroid window, boolean forWebVR,
+    private native long nativeInit(VrShellDelegate delegate, boolean forWebVR,
             boolean webVrAutopresentationExpected, boolean inCct, boolean browsingDisabled,
             boolean hasOrCanRequestAudioPermission, long gvrApi, boolean reprojectedRendering,
             float displayWidthMeters, float displayHeightMeters, int displayWidthPixels,
             int displayHeightPixels);
     private native void nativeSetSurface(long nativeVrShell, Surface surface);
-    private native void nativeSwapContents(
-            long nativeVrShell, Tab tab, AndroidUiGestureTarget androidUiGestureTarget);
+    private native void nativeSwapContents(long nativeVrShell, Tab tab, float androidViewDipScale);
+    private native void nativeSetAndroidGestureTarget(
+            long nativeVrShell, AndroidUiGestureTarget androidUiGestureTarget);
     private native void nativeDestroy(long nativeVrShell);
     private native void nativeOnTriggerEvent(long nativeVrShell, boolean touched);
     private native void nativeOnPause(long nativeVrShell);
@@ -857,8 +850,8 @@
     private native void nativeOnLoadProgressChanged(long nativeVrShell, double progress);
     private native void nativeOnPhysicalBackingSizeChanged(
             long nativeVrShell, WebContents webContents, int width, int height);
-    private native void nativeContentPhysicalBoundsChanged(long nativeVrShell, int width,
-            int height, float dpr);
+    private native void nativeBufferBoundsChanged(long nativeVrShell, int contentWidth,
+            int contentHeight, int overlayWidth, int overlayHeight);
     private native void nativeSetWebVrMode(long nativeVrShell, boolean enabled, boolean showToast);
     private native boolean nativeGetWebVrMode(long nativeVrShell);
     private native boolean nativeIsDisplayingUrlForTesting(long nativeVrShell);
@@ -867,8 +860,6 @@
     private native void nativeOnTabUpdated(long nativeVrShell, boolean incognito, int id,
             String title);
     private native void nativeOnTabRemoved(long nativeVrShell, boolean incognito, int id);
-    private native Surface nativeTakeContentSurface(long nativeVrShell);
-    private native void nativeRestoreContentSurface(long nativeVrShell);
     private native void nativeSetHistoryButtonsEnabled(
             long nativeVrShell, boolean canGoBack, boolean canGoForward);
     private native void nativeRequestToExitVr(long nativeVrShell, @UiUnsupportedMode int reason);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrViewContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrViewContainer.java
new file mode 100644
index 0000000..ea94d81
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrViewContainer.java
@@ -0,0 +1,85 @@
+// 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.
+
+package org.chromium.chrome.browser.vr_shell;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.view.MotionEvent;
+import android.view.Surface;
+import android.view.View;
+import android.view.ViewTreeObserver.OnPreDrawListener;
+import android.widget.FrameLayout;
+
+import org.chromium.base.TraceEvent;
+
+/**
+ * Holds views that will be drawn into a texture when in VR. Has no effect outside of VR.
+ */
+public class VrViewContainer extends FrameLayout {
+    private Surface mSurface;
+    private OnPreDrawListener mPredrawListener;
+
+    /**
+     * See {@link FrameLayout#FrameLayout(Context)}.
+     */
+    public VrViewContainer(Context context) {
+        super(context);
+        // We need a pre-draw listener to invalidate the native page because scrolling usually
+        // doesn't trigger an onDraw call, so our texture won't get updated.
+        mPredrawListener = new OnPreDrawListener() {
+            @Override
+            public boolean onPreDraw() {
+                // Since we're drawing to a texture we have to fully invalidate the view or we won't
+                // pick up things like scrolling and will encounter tons of rendering artifacts.
+                if (isDirty()) invalidate();
+                return true;
+            }
+        };
+        getViewTreeObserver().addOnPreDrawListener(mPredrawListener);
+        setBackgroundColor(Color.TRANSPARENT);
+    }
+
+    // We want screen taps to only be routed to the GvrUiLayout, and not propagate through to the
+    // java views. So screen taps are ignored here and received by the GvrUiLayout.
+    // Touch events generated from the VR controller are injected directly into this View's
+    // child.
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        return false;
+    }
+
+    @Override
+    protected void dispatchDraw(Canvas canvas) {
+        if (mSurface == null) return;
+        try (TraceEvent e = TraceEvent.scoped("VrViewContainer.dispatchDraw")) {
+            // TODO(mthiesse): Support mSurface.lockHardwareCanvas(); https://crbug.com/692775
+            final Canvas surfaceCanvas = mSurface.lockCanvas(null);
+            surfaceCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
+            super.dispatchDraw(surfaceCanvas);
+            mSurface.unlockCanvasAndPost(surfaceCanvas);
+        }
+    }
+
+    /* package */ View getInputTarget() {
+        assert getChildCount() == 1;
+        return getChildAt(0);
+    }
+
+    /* package */ void setSurface(Surface surface) {
+        mSurface = surface;
+        invalidate();
+    }
+
+    /* package */ void resize(int width, int height) {
+        setLayoutParams(new FrameLayout.LayoutParams(width, height));
+    }
+
+    /* package */ void destroy() {
+        getViewTreeObserver().removeOnPreDrawListener(mPredrawListener);
+        mSurface = null;
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/FloatLabelLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/FloatLabelLayout.java
deleted file mode 100644
index 78bfb65..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/FloatLabelLayout.java
+++ /dev/null
@@ -1,296 +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.
-
-
-package org.chromium.chrome.browser.widget;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.os.Build;
-import android.support.v4.view.ViewCompat;
-import android.support.v4.view.ViewPropertyAnimatorListenerAdapter;
-import android.text.Editable;
-import android.text.TextUtils;
-import android.text.TextWatcher;
-import android.util.AttributeSet;
-import android.util.TypedValue;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.widget.EditText;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.chrome.R;
-
-/**
- * Layout which uses a {@link android.widget.TextView} to show a floating label above an
- * {@link android.widget.EditText} when the hint is hidden due to the user inputting text.
- *
- * @see <a href="https://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction">Matt D. Smith on Dribble</a>
- * @see <a href="http://bradfrostweb.com/blog/post/float-label-pattern/">Brad Frost's blog post</a>
- *
- * This class was originally written by Chris Banes; it should be replaced if/when floating labels
- * are available in the support library.
- * @see https://gist.github.com/chrisbanes/11247418
- *
- * Example XML layout:
- *     <org.chromium.chrome.browser.widget.FloatLabelLayout
- *          android:layout_width="match_parent"
- *          android:layout_height="wrap_content"
- *          app:floatLabelTextAppearance="@style/TextAppearance.YourApp.FloatLabel">
- *          <EditText
- *              android:id="@+id/edit_username"
- *              android:layout_width="match_parent"
- *              android:layout_height="wrap_content"
- *              android:hint="@string/account_username_hint" />
- *     </org.chromium.chrome.browser.widget.FloatLabelLayout>
- */
-public class FloatLabelLayout extends LinearLayout {
-
-    private static final long ANIMATION_DURATION = 150;
-
-    private static final float DEFAULT_LABEL_PADDING_LEFT = 3f;
-    private static final float DEFAULT_LABEL_PADDING_TOP = 4f;
-    private static final float DEFAULT_LABEL_PADDING_RIGHT = 3f;
-    private static final float DEFAULT_LABEL_PADDING_BOTTOM = 4f;
-
-    private EditText mEditText;
-    private TextView mLabel;
-
-    private CharSequence mHint;
-    private Interpolator mInterpolator;
-
-    public FloatLabelLayout(Context context) {
-        this(context, null);
-    }
-
-    public FloatLabelLayout(Context context, AttributeSet attrs) {
-        this(context, attrs, 0);
-    }
-
-    public FloatLabelLayout(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-
-        setOrientation(VERTICAL);
-
-        final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.FloatLabelLayout);
-
-        int leftPadding = a.getDimensionPixelSize(
-                R.styleable.FloatLabelLayout_floatLabelPaddingLeft,
-                dipsToPix(DEFAULT_LABEL_PADDING_LEFT));
-        int topPadding = a.getDimensionPixelSize(
-                R.styleable.FloatLabelLayout_floatLabelPaddingTop,
-                dipsToPix(DEFAULT_LABEL_PADDING_TOP));
-        int rightPadding = a.getDimensionPixelSize(
-                R.styleable.FloatLabelLayout_floatLabelPaddingRight,
-                dipsToPix(DEFAULT_LABEL_PADDING_RIGHT));
-        int bottomPadding = a.getDimensionPixelSize(
-                R.styleable.FloatLabelLayout_floatLabelPaddingBottom,
-                dipsToPix(DEFAULT_LABEL_PADDING_BOTTOM));
-        mHint = a.getText(R.styleable.FloatLabelLayout_floatLabelHint);
-
-        mLabel = new TextView(context);
-        mLabel.setPadding(leftPadding, topPadding, rightPadding, bottomPadding);
-        mLabel.setVisibility(INVISIBLE);
-        mLabel.setText(mHint);
-        mLabel.setFocusable(true);
-        mLabel.setPivotX(0f);
-        mLabel.setPivotY(0f);
-
-        ApiCompatibilityUtils.setTextAppearance(mLabel,
-                a.getResourceId(R.styleable.FloatLabelLayout_floatLabelTextAppearance,
-                        android.R.style.TextAppearance_Small));
-        a.recycle();
-
-        addView(mLabel, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
-
-        mInterpolator = AnimationUtils.loadInterpolator(context,
-                Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
-                    ? android.R.interpolator.fast_out_slow_in
-                    : android.R.anim.decelerate_interpolator);
-    }
-
-    @Override
-    public final void addView(View child, int index, ViewGroup.LayoutParams params) {
-        if (child instanceof EditText) {
-            setEditText((EditText) child);
-        }
-
-        // Carry on adding the View...
-        super.addView(child, index, params);
-    }
-
-    /**
-     * Focuses the EditText and makes the label visible without the normal
-     * animation that occurs on focus. This is particularly useful when
-     * auto-focusing the first field on a form.
-     */
-    public void focusWithoutAnimation() {
-        mEditText.setHint(null);
-        mLabel.setVisibility(View.VISIBLE);
-        mEditText.requestFocus();
-    }
-
-    private void setEditText(EditText editText) {
-        // If we already have an EditText, throw an exception
-        if (mEditText != null) {
-            throw new IllegalArgumentException("We already have an EditText, can only have one");
-        }
-        mEditText = editText;
-
-        // Update the label visibility with no animation
-        updateLabelVisibility(false);
-
-        // Add a TextWatcher so that we know when the text input has changed
-        mEditText.addTextChangedListener(new TextWatcher() {
-            @Override
-            public void afterTextChanged(Editable s) {
-                updateLabelVisibility(true);
-            }
-
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
-
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {}
-        });
-
-        // Add focus listener to the EditText so that we can notify the label that it is activated.
-        // Allows the use of a ColorStateList for the text color on the label
-        mEditText.setOnFocusChangeListener(new OnFocusChangeListener() {
-            @Override
-            public void onFocusChange(View view, boolean focused) {
-                updateLabelVisibility(true);
-            }
-        });
-
-        // If we do not have a valid hint, try and retrieve it from the EditText
-        if (TextUtils.isEmpty(mHint)) {
-            setHint(mEditText.getHint());
-        }
-
-        // If we do not have a valid content description, set it to the hint text.
-        if (TextUtils.isEmpty(mEditText.getContentDescription())) {
-            mEditText.setContentDescription(mHint);
-        }
-    }
-
-    private void updateLabelVisibility(boolean animate) {
-        boolean hasText = !TextUtils.isEmpty(mEditText.getText());
-        boolean isFocused = mEditText.isFocused();
-
-        mLabel.setActivated(isFocused);
-
-        if (hasText || isFocused) {
-            // We should be showing the label so do so if it isn't already
-            if (mLabel.getVisibility() != VISIBLE) {
-                showLabel(animate);
-            }
-        } else {
-            // We should not be showing the label so hide it
-            if (mLabel.getVisibility() == VISIBLE) {
-                hideLabel(animate);
-            }
-        }
-    }
-
-    /**
-     * @return the {@link android.widget.EditText} text input
-     */
-    public EditText getEditText() {
-        return mEditText;
-    }
-
-    /**
-     * @return the {@link android.widget.TextView} label
-     */
-    public TextView getLabel() {
-        return mLabel;
-    }
-
-    /**
-     * Set the hint to be displayed in the floating label
-     */
-    public void setHint(CharSequence hint) {
-        mHint = hint;
-        mLabel.setText(hint);
-    }
-
-    /**
-     * Sets the EditText text and shows the floating label without animation. To set the EditText
-     * text with animation, use getEditText().setText().
-     *
-     * @param text The text to display in EditText.
-     */
-    public void setText(CharSequence text) {
-        showLabel(false);
-        mEditText.setText(text);
-    }
-
-    /**
-     * Show the label
-     */
-    private void showLabel(boolean animate) {
-        if (animate) {
-            mLabel.setVisibility(View.VISIBLE);
-            ViewCompat.setTranslationY(mLabel, mLabel.getHeight());
-
-            float scale = mEditText.getTextSize() / mLabel.getTextSize();
-            mLabel.setScaleX(scale);
-            mLabel.setScaleY(scale);
-
-            ViewCompat.animate(mLabel)
-                    .translationY(0f)
-                    .scaleY(1f)
-                    .scaleX(1f)
-                    .setDuration(ANIMATION_DURATION)
-                    .setListener(null)
-                    .setInterpolator(mInterpolator).start();
-        } else {
-            mLabel.setVisibility(VISIBLE);
-        }
-
-        mEditText.setHint(null);
-    }
-
-    /**
-     * Hide the label
-     */
-    private void hideLabel(boolean animate) {
-        if (animate) {
-            float scale = mEditText.getTextSize() / mLabel.getTextSize();
-            mLabel.setScaleX(1f);
-            mLabel.setScaleY(1f);
-            ViewCompat.setTranslationY(mLabel, 0f);
-
-            ViewCompat.animate(mLabel)
-                    .translationY(mLabel.getHeight())
-                    .setDuration(ANIMATION_DURATION)
-                    .scaleX(scale)
-                    .scaleY(scale)
-                    .setListener(new ViewPropertyAnimatorListenerAdapter() {
-                        @Override
-                        public void onAnimationEnd(View view) {
-                            mLabel.setVisibility(INVISIBLE);
-                            mEditText.setHint(mHint);
-                        }
-                    })
-                    .setInterpolator(mInterpolator).start();
-        } else {
-            mLabel.setVisibility(INVISIBLE);
-            mEditText.setHint(mHint);
-        }
-    }
-
-    /**
-     * Helper method to convert dips to pixels.
-     */
-    private int dipsToPix(float dps) {
-        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dps,
-                getResources().getDisplayMetrics());
-    }
-}
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java
index 5ec4a0c..0210398 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/accessibility/AccessibilityTabModelListItem.java
@@ -229,7 +229,7 @@
     @Override
     public void onFinishInflate() {
         super.onFinishInflate();
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             mTabContents = findViewById(R.id.tab_contents_modern);
             mTitleView = mTabContents.findViewById(R.id.title);
             mDescriptionView = mTabContents.findViewById(R.id.description);
@@ -246,7 +246,7 @@
 
         mUndoContents = (LinearLayout) findViewById(R.id.undo_contents);
         mUndoButton = (Button) findViewById(R.id.undo_button);
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             findViewById(R.id.undo_start_space).setVisibility(View.VISIBLE);
             ApiCompatibilityUtils.setTextAppearance(mUndoButton, R.style.BlueButtonText2);
         }
@@ -318,7 +318,7 @@
                     getContext().getString(R.string.accessibility_tabstrip_btn_close_tab, title));
         }
 
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             if (mTab.isIncognito()) {
                 setBackgroundResource(R.color.incognito_primary_color);
                 mFaviconView.getBackground().setLevel(mIncognitoLevel);
@@ -351,7 +351,7 @@
                 mFaviconView.setImageResource(R.drawable.globe_incognito_favicon);
             }
 
-            if (FeatureUtilities.isChromeHomeEnabled()) {
+            if (FeatureUtilities.isChromeModernDesignEnabled()) {
                 ((TintedImageView) mFaviconView).setTint(bitmap != null ? null : mDarkIconColor);
             }
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoDialog.java
deleted file mode 100644
index 84e27e43..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoDialog.java
+++ /dev/null
@@ -1,250 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.widget.bottomsheet;
-
-import android.app.Activity;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.support.annotation.IntDef;
-import android.support.annotation.VisibleForTesting;
-import android.view.View;
-
-import org.chromium.base.ApplicationStatus;
-import org.chromium.base.StrictModeContext;
-import org.chromium.base.SysUtils;
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.metrics.RecordHistogram;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.ChromeFeatureList;
-import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.util.AccessibilityUtil;
-import org.chromium.chrome.browser.util.FeatureUtilities;
-import org.chromium.chrome.browser.widget.PromoDialog;
-import org.chromium.ui.base.DeviceFormFactor;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.ref.WeakReference;
-
-/**
- * A promotion for Chrome Home (the bottom sheet). This dialog can optionally restart the current
- * activity to bring a user in or out of the feature.
- */
-public class ChromeHomePromoDialog extends PromoDialog {
-    /** Notified about dialog events. */
-    public static interface ChromeHomePromoDialogTestObserver {
-        void onDialogShown(ChromeHomePromoDialog shownDialog);
-    }
-
-    private static ChromeHomePromoDialogTestObserver sTestObserver;
-
-    /** Reasons that the promo was shown. */
-    @IntDef({ShowReason.NTP, ShowReason.MENU, ShowReason.STARTUP, ShowReason.BOUNDARY})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ShowReason {
-        int NTP = 0;
-        int MENU = 1;
-        int STARTUP = 2;
-        int BOUNDARY = 3;
-    }
-
-    /** States the promo was closed in. */
-    @IntDef({PromoResult.ENABLED, PromoResult.DISABLED, PromoResult.REMAINED_ENABLED,
-            PromoResult.REMAINED_DISABLED, PromoResult.BOUNDARY})
-    @Retention(RetentionPolicy.SOURCE)
-    private @interface PromoResult {
-        int ENABLED = 0;
-        int DISABLED = 1;
-        int REMAINED_ENABLED = 2;
-        int REMAINED_DISABLED = 3;
-        int BOUNDARY = 4;
-    }
-
-    /** The reason the promo was shown. */
-    @ShowReason
-    private final int mShowReason;
-
-    /** Whether Chrome Home should be enabled or disabled after the promo is dismissed. */
-    private boolean mChromeHomeShouldBeEnabled;
-
-    /** Whether Chrome Home is enabled when the promo is shown. */
-    private boolean mChromeHomeEnabledOnShow;
-
-    /**
-     * Default constructor.
-     * @param activity The {@link Activity} showing the promo.
-     * @param showReason The reason that the promo was shown.
-     */
-    public ChromeHomePromoDialog(Activity activity, @ShowReason int showReason) {
-        super(activity);
-        setOnDismissListener(this);
-        mShowReason = showReason;
-        mChromeHomeShouldBeEnabled = FeatureUtilities.isChromeHomeEnabled();
-
-        RecordHistogram.recordEnumeratedHistogram("Android.ChromeHome.Promo.ShowReason", showReason,
-                ChromeHomePromoDialog.ShowReason.BOUNDARY);
-    }
-
-    @Override
-    public void show() {
-        if (DeviceFormFactor.isTablet()) {
-            throw new RuntimeException("Promo should not be shown for tablet devices!");
-        }
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_INFO_ONLY)) {
-            ChromePreferenceManager.getInstance().setChromeHomeInfoPromoShown();
-        }
-        super.show();
-    }
-
-    @Override
-    protected DialogParams getDialogParams() {
-        PromoDialog.DialogParams params = new PromoDialog.DialogParams();
-        params.headerStringResource = R.string.chrome_home_promo_dialog_title;
-        params.subheaderStringResource = AccessibilityUtil.isAccessibilityEnabled()
-                ? R.string.chrome_home_promo_dialog_message_accessibility
-                : R.string.chrome_home_promo_dialog_message;
-
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_INFO_ONLY)) {
-            params.primaryButtonStringResource = R.string.ok;
-        } else if (FeatureUtilities.isChromeHomeEnabled()) {
-            params.primaryButtonStringResource = R.string.ok;
-            params.secondaryButtonStringResource = R.string.chrome_home_promo_dialog_turn_off;
-        } else {
-            params.primaryButtonStringResource = R.string.chrome_home_promo_dialog_try_it;
-            params.secondaryButtonStringResource = R.string.chrome_home_promo_dialog_not_yet;
-        }
-
-        if (SysUtils.isLowEndDevice()) {
-            params.drawableResource = R.drawable.chrome_home_promo_static;
-        } else {
-            params.drawableInstance = new ChromeHomePromoIllustration(getContext());
-        }
-
-        return params;
-    }
-
-    @Override
-    public void onClick(View view) {
-        if (view.getId() == R.id.button_primary) {
-            mChromeHomeShouldBeEnabled = true;
-        } else if (view.getId() == R.id.button_secondary) {
-            mChromeHomeShouldBeEnabled = false;
-        }
-
-        dismiss();
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mChromeHomeEnabledOnShow = FeatureUtilities.isChromeHomeEnabled();
-
-        if (sTestObserver != null) sTestObserver.onDialogShown(this);
-    }
-
-    /**
-     * Restart any open Chrome instances, including the activity this promo is running in.
-     */
-    private void restartChromeInstances() {
-        // If there can be multiple activities, restart them before restarting this one.
-        if (FeatureUtilities.isTabModelMergingEnabled()) {
-            Class<?> otherWindowActivityClass =
-                    MultiWindowUtils.getInstance().getOpenInOtherWindowActivity(getOwnerActivity());
-
-            for (WeakReference<Activity> activityRef : ApplicationStatus.getRunningActivities()) {
-                Activity activity = activityRef.get();
-                if (activity == null) continue;
-                if (activity.getClass().equals(otherWindowActivityClass)) {
-                    activity.recreate();
-                    break;
-                }
-            }
-        }
-
-        ChromeActivity activity = (ChromeActivity) getOwnerActivity();
-        final Tab tab = activity.getActivityTab();
-
-        boolean showOptOutSnackbar = false;
-        if (tab != null && !mChromeHomeShouldBeEnabled
-                && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_OPT_OUT_SNACKBAR)) {
-            try (StrictModeContext unused = StrictModeContext.allowDiskReads()) {
-                showOptOutSnackbar =
-                        !ChromePreferenceManager.getInstance().getChromeHomeOptOutSnackbarShown();
-            }
-        }
-
-        Runnable finalizeCallback = null;
-        if (showOptOutSnackbar) {
-            finalizeCallback = new Runnable() {
-                @Override
-                public void run() {
-                    ChromeHomeSnackbarController.initialize(tab);
-                }
-            };
-        }
-
-        // Detach the foreground tab and. It will be reattached when the activity is restarted.
-        if (tab != null) tab.detachAndStartReparenting(null, null, finalizeCallback);
-
-        getOwnerActivity().recreate();
-    }
-
-    @Override
-    public void onDismiss(DialogInterface dialogInterface) {
-        // If the dialog is info-only, do not record any metrics since there were no provided
-        // options.
-        if (ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO_INFO_ONLY)) return;
-
-        // If the state of Chrome Home changed while this dialog was opened, do nothing. This can
-        // happen in multi-window if this dialog is shown in both windows.
-        if (mChromeHomeEnabledOnShow != FeatureUtilities.isChromeHomeEnabled()) return;
-
-        String histogramName = null;
-        switch (mShowReason) {
-            case ShowReason.MENU:
-                histogramName = "Android.ChromeHome.Promo.Result.Menu";
-                break;
-            case ShowReason.NTP:
-                histogramName = "Android.ChromeHome.Promo.Result.NTP";
-                break;
-            case ShowReason.STARTUP:
-                histogramName = "Android.ChromeHome.Promo.Result.Startup";
-                break;
-            default:
-                assert false;
-        }
-
-        @PromoResult
-        int state;
-        if (FeatureUtilities.isChromeHomeEnabled()) {
-            state = mChromeHomeShouldBeEnabled ? PromoResult.REMAINED_ENABLED
-                                               : PromoResult.DISABLED;
-        } else {
-            state = mChromeHomeShouldBeEnabled ? PromoResult.ENABLED
-                                               : PromoResult.REMAINED_DISABLED;
-        }
-        RecordHistogram.recordEnumeratedHistogram(histogramName, state, PromoResult.BOUNDARY);
-
-        boolean restartRequired =
-                mChromeHomeShouldBeEnabled != FeatureUtilities.isChromeHomeEnabled();
-        FeatureUtilities.switchChromeHomeUserSetting(mChromeHomeShouldBeEnabled);
-
-        if (restartRequired) restartChromeInstances();
-    }
-
-    /**
-     * An observer to be notified about dialog events.  Used for testing. Must be called on the UI
-     * thread.
-     */
-    @VisibleForTesting
-    public static void setObserverForTests(ChromeHomePromoDialogTestObserver observer) {
-        ThreadUtils.assertOnUiThread();
-        sTestObserver = observer;
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoIllustration.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoIllustration.java
deleted file mode 100644
index 3104068..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoIllustration.java
+++ /dev/null
@@ -1,893 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.widget.bottomsheet;
-
-import android.animation.Animator;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.PixelFormat;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffXfermode;
-import android.graphics.Rect;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.os.Handler;
-import android.support.annotation.ColorRes;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
-import android.support.graphics.drawable.VectorDrawableCompat;
-import android.support.v4.view.animation.FastOutSlowInInterpolator;
-import android.util.Property;
-import android.view.animation.Interpolator;
-
-import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.util.MathUtils;
-import org.chromium.chrome.browser.widget.animation.AnimatorProperties;
-import org.chromium.chrome.browser.widget.animation.CancelAwareAnimatorListener;
-
-/**
- * Promo illustration for Chrome Home.
- */
-public class ChromeHomePromoIllustration extends Drawable implements Drawable.Callback {
-    private static final long DURATION_BETWEEN_REPEATS_MS = 1000;
-
-    private static final long DURATION_SHEET_COLLAPSED_MS = 500;
-    private static final long DURATION_SHEET_HALF_EXPANSION_MS = 400;
-    private static final long DURATION_SHEET_HALF_PAUSE_MS = 300;
-    private static final long DURATION_SHEET_FULL_EXPANSION_MS = 500;
-    private static final long DURATION_HIGHLIGHT_EXPANSION_MS = 400;
-    private static final long DURATION_HIGHLIGHT_START_DELAY_MS = 200;
-
-    private static final float PHONE_HEIGHT_PERCENT = .9f;
-    private static final float PHONE_ASPECT_RATIO_PERCENT = .524f;
-    private static final float HOME_SHEET_HEIGHT_PERCENT = .572f;
-    private static final float HIGHLIGHT_DIAMETER_PERCENT = .888f;
-
-    private static final int[] BOOKMARK_ROW_COLORS = {Color.parseColor("#01579B"),
-            Color.parseColor("#039BE5"), Color.parseColor("#4FC3F7"), Color.parseColor("#B3E5FC")};
-
-    private final PhoneDrawable mPhoneDrawable;
-    private final VectorDrawableCompat mBackgroundDrawable;
-    private final SheetDrawable mSheetDrawable;
-    private final HomeSectionDrawable mHomeSectionDrawable;
-    private final BookmarkSectionDrawable mBookmarkSectionDrawable;
-    private final HighlightDrawable mHighlightDrawable;
-
-    private Animator mAnimator;
-    private float mSheetAnimationPercent;
-    private float mHighlightAnimationPercent;
-
-    private int mIntrinsicWidth;
-    private int mIntrinsicHeight;
-
-    public ChromeHomePromoIllustration(@NonNull Context context) {
-        Resources resources = context.getResources();
-
-        mIntrinsicWidth =
-                resources.getDimensionPixelSize(R.dimen.chrome_home_promo_illustration_width);
-        mIntrinsicHeight =
-                resources.getDimensionPixelSize(R.dimen.chrome_home_promo_illustration_height);
-
-        int phoneOmniboxNtpTileColor =
-                ApiCompatibilityUtils.getColor(resources, R.color.modern_grey_300);
-
-        Drawable bookmarkStar =
-                ApiCompatibilityUtils.getDrawable(resources, R.drawable.btn_star_filled);
-
-        mPhoneDrawable = new PhoneDrawable(phoneOmniboxNtpTileColor);
-        mBackgroundDrawable = VectorDrawableCompat.create(
-                resources, R.drawable.chrome_home_promo_phone_background, context.getTheme());
-        mSheetDrawable = new SheetDrawable();
-
-        mHomeSectionDrawable = new HomeSectionDrawable(resources,
-                ApiCompatibilityUtils.getDrawable(resources, R.drawable.ic_file_download_white_24dp)
-                        .mutate(),
-                bookmarkStar.getConstantState().newDrawable(resources).mutate(),
-                ApiCompatibilityUtils.getDrawable(resources, R.drawable.ic_watch_later_24dp)
-                        .mutate(),
-                phoneOmniboxNtpTileColor);
-        mHomeSectionDrawable.setCallback(this);
-
-        mBookmarkSectionDrawable = new BookmarkSectionDrawable(
-                bookmarkStar.getConstantState().newDrawable(resources).mutate());
-        mBookmarkSectionDrawable.setCallback(this);
-
-        mHighlightDrawable = new HighlightDrawable(
-                resources, bookmarkStar.getConstantState().newDrawable(resources).mutate());
-
-        buildAnimation();
-    }
-
-    @Override
-    public int getIntrinsicWidth() {
-        return mIntrinsicWidth;
-    }
-
-    @Override
-    public int getIntrinsicHeight() {
-        return mIntrinsicHeight;
-    }
-
-    @Override
-    protected void onBoundsChange(Rect bounds) {
-        super.onBoundsChange(bounds);
-
-        int viewHeight = bounds.height();
-
-        int phoneHeight = (int) (viewHeight * PHONE_HEIGHT_PERCENT);
-        int phoneWidth = (int) (phoneHeight * PHONE_ASPECT_RATIO_PERCENT);
-        mPhoneDrawable.setBounds(0, 0, phoneWidth, phoneHeight);
-
-        int phoneInnerHeight = mPhoneDrawable.getInnerHeight();
-        int phoneInnerWidth = mPhoneDrawable.getInnerWidth();
-        mSheetDrawable.setBounds(0, 0,
-                (int) (phoneInnerWidth + (phoneWidth - phoneInnerWidth) / 2f), phoneInnerHeight);
-        mHomeSectionDrawable.setBounds(
-                0, 0, phoneInnerWidth, (int) (phoneInnerHeight * HOME_SHEET_HEIGHT_PERCENT));
-        mBookmarkSectionDrawable.setBounds(mSheetDrawable.getBounds());
-        mBackgroundDrawable.setBounds(0, 0, phoneInnerWidth,
-                phoneInnerHeight - mHomeSectionDrawable.getCollapsedShowHeight());
-
-        int highlightDiameter = (int) (phoneWidth * HIGHLIGHT_DIAMETER_PERCENT);
-        mHighlightDrawable.setBounds(0, 0, highlightDiameter, highlightDiameter);
-        mHighlightDrawable.setIconSize(mHomeSectionDrawable.getBookmarkIconWidth());
-    }
-
-    @Override
-    public boolean setVisible(boolean visible, boolean restart) {
-        boolean changed = super.setVisible(visible, restart);
-        if (!visible) {
-            mAnimator.cancel();
-        } else {
-            if (!mAnimator.isRunning() && !mAnimator.isStarted()) {
-                mAnimator.start();
-            }
-        }
-        return changed;
-    }
-
-    private void buildAnimation() {
-        Interpolator interpolator = new FastOutSlowInInterpolator();
-        AnimatorSet set = new AnimatorSet();
-
-        Property<ChromeHomePromoIllustration, Float> sheetAnimationProperty =
-                new Property<ChromeHomePromoIllustration, Float>(Float.class, "") {
-                    @Override
-                    public Float get(ChromeHomePromoIllustration illustration) {
-                        return mSheetAnimationPercent;
-                    }
-
-                    @Override
-                    public void set(ChromeHomePromoIllustration illustration, Float value) {
-                        mSheetAnimationPercent = value;
-                        invalidateSelf();
-                    }
-                };
-
-        Animator sheetHalfHeightAnimation =
-                ObjectAnimator.ofFloat(this, sheetAnimationProperty, 0, 0.5f);
-        sheetHalfHeightAnimation.setDuration(DURATION_SHEET_HALF_EXPANSION_MS);
-
-        Animator highlightAnimation = ObjectAnimator.ofFloat(
-                this, new Property<ChromeHomePromoIllustration, Float>(Float.class, "") {
-                    @Override
-                    public Float get(ChromeHomePromoIllustration illustration) {
-                        return mHighlightAnimationPercent;
-                    }
-
-                    @Override
-                    public void set(ChromeHomePromoIllustration illustration, Float value) {
-                        mHighlightAnimationPercent = value;
-                        invalidateSelf();
-                    }
-                }, 0, 1f);
-        highlightAnimation.setStartDelay(DURATION_HIGHLIGHT_START_DELAY_MS);
-        highlightAnimation.setDuration(DURATION_HIGHLIGHT_EXPANSION_MS);
-
-        Animator sheetFullHeightAnimation =
-                ObjectAnimator.ofFloat(this, sheetAnimationProperty, 0.5f, 1f);
-        sheetFullHeightAnimation.setStartDelay(DURATION_SHEET_HALF_PAUSE_MS);
-        sheetFullHeightAnimation.setDuration(DURATION_SHEET_FULL_EXPANSION_MS);
-
-        long fadeDuration = DURATION_SHEET_FULL_EXPANSION_MS / 2;
-        Animator homeFadeOutAnimation = ObjectAnimator.ofInt(
-                mHomeSectionDrawable, AnimatorProperties.DRAWABLE_ALPHA_PROPERTY, 255, 0);
-        homeFadeOutAnimation.setDuration(fadeDuration);
-
-        Animator bookmarkFadeInAnimation = ObjectAnimator.ofInt(
-                mBookmarkSectionDrawable, AnimatorProperties.DRAWABLE_ALPHA_PROPERTY, 0, 255);
-        bookmarkFadeInAnimation.setDuration(fadeDuration);
-
-        AnimatorSet sheetFadeAnimation = new AnimatorSet();
-        sheetFadeAnimation.setStartDelay(DURATION_SHEET_HALF_PAUSE_MS);
-        sheetFadeAnimation.playSequentially(homeFadeOutAnimation, bookmarkFadeInAnimation);
-
-        AnimatorSet fullHeightTransition = new AnimatorSet();
-        fullHeightTransition.playTogether(sheetFullHeightAnimation, sheetFadeAnimation);
-
-        set.playSequentially(sheetHalfHeightAnimation, highlightAnimation, fullHeightTransition);
-        set.setStartDelay(DURATION_SHEET_COLLAPSED_MS);
-        set.setInterpolator(interpolator);
-        set.addListener(new CancelAwareAnimatorListener() {
-            private final Handler mHandler = new Handler();
-            private final Runnable mRepeatRunnable = new Runnable() {
-                @Override
-                public void run() {
-                    resetInitialState();
-                    invalidateSelf();
-                    mAnimator.start();
-                }
-            };
-
-            private void resetInitialState() {
-                mSheetAnimationPercent = 0f;
-                mHighlightAnimationPercent = 0f;
-
-                mHomeSectionDrawable.setAlpha(255);
-                mBookmarkSectionDrawable.setAlpha(0);
-            }
-
-            @Override
-            public void onCancel(Animator animator) {
-                resetInitialState();
-                mHandler.removeCallbacks(mRepeatRunnable);
-            }
-
-            @Override
-            public void onEnd(Animator animator) {
-                if (!isVisible()) {
-                    resetInitialState();
-                    return;
-                }
-                mHandler.postDelayed(mRepeatRunnable, DURATION_BETWEEN_REPEATS_MS);
-            }
-        });
-        mAnimator = set;
-    }
-
-    @Override
-    @SuppressLint("NewApi") // getAlpha() requires API 19, but the inner classes do not rely on
-                            // super.getAlpha() for the value.
-    public void draw(Canvas canvas) {
-        canvas.save();
-        // Center the phone in the drawable.
-        canvas.translate((getBounds().width() - mPhoneDrawable.getBounds().width()) / 2f, 0);
-
-        canvas.save();
-        Rect phoneBounds = mPhoneDrawable.getBounds();
-        Rect sheetBounds = mSheetDrawable.getBounds();
-        float sheetPhoneWidthDiff = (phoneBounds.width() - sheetBounds.width()) / 2f;
-        canvas.translate(
-                mPhoneDrawable.getInnerLeft() - sheetPhoneWidthDiff, mPhoneDrawable.getInnerTop());
-        canvas.clipRect(0, 0, sheetBounds.width(), sheetBounds.height());
-
-        if (mSheetAnimationPercent < 1f) {
-            canvas.save();
-            canvas.translate(sheetPhoneWidthDiff, 0);
-            mBackgroundDrawable.draw(canvas);
-            canvas.restore();
-        }
-
-        float sheetTranslationY;
-        if (mSheetAnimationPercent <= 0.5) {
-            int hideableAmount = mHomeSectionDrawable.getBounds().height()
-                    - mHomeSectionDrawable.getCollapsedShowHeight();
-            sheetTranslationY = sheetBounds.height() - mHomeSectionDrawable.getBounds().height()
-                    + hideableAmount * (1f - mSheetAnimationPercent * 2f);
-        } else {
-            sheetTranslationY = (sheetBounds.height() - mHomeSectionDrawable.getBounds().height())
-                    * (1f - ((mSheetAnimationPercent - .5f) * 2f));
-        }
-        canvas.translate(0, sheetTranslationY);
-        mSheetDrawable.draw(canvas);
-
-        canvas.translate(sheetPhoneWidthDiff, 0);
-        if (mHomeSectionDrawable.getAlpha() > 0) mHomeSectionDrawable.draw(canvas);
-        if (mBookmarkSectionDrawable.getAlpha() > 0) mBookmarkSectionDrawable.draw(canvas);
-        canvas.restore();
-
-        mPhoneDrawable.draw(canvas);
-
-        if (mHighlightAnimationPercent > 0
-                && MathUtils.areFloatsEqual(mSheetAnimationPercent, 0.5f)) {
-            canvas.save();
-            Rect highlightBounds = mHighlightDrawable.getBounds();
-            int highlightWidth = highlightBounds.width();
-            int highlightHeight = highlightBounds.height();
-            canvas.translate((phoneBounds.width() - highlightWidth) / 2f,
-                    mPhoneDrawable.getInnerTop() + sheetTranslationY
-                            + mHomeSectionDrawable.getHighlightCenterYPoint()
-                            - highlightHeight / 2f);
-            mHighlightDrawable.setExpansionPercent(mHighlightAnimationPercent);
-            mHighlightDrawable.draw(canvas);
-            canvas.restore();
-        }
-
-        canvas.restore();
-    }
-
-    @Override
-    public int getOpacity() {
-        return PixelFormat.TRANSLUCENT;
-    }
-
-    @Override
-    public void setAlpha(int alpha) {
-        assert false : "Unsupported";
-    }
-
-    @Override
-    public void setColorFilter(ColorFilter colorFilter) {
-        assert false : "Unsupported";
-    }
-
-    // Drawable.Callback implementation.
-    @Override
-    public void invalidateDrawable(Drawable who) {
-        invalidateSelf();
-    }
-
-    @Override
-    public void scheduleDrawable(Drawable who, Runnable what, long when) {
-        scheduleSelf(what, when);
-    }
-
-    @Override
-    public void unscheduleDrawable(Drawable who, Runnable what) {
-        unscheduleSelf(what);
-    }
-
-    private static class HomeSectionDrawable extends Drawable {
-        private static final int NTP_TILE_PER_ROW_COUNT = 3;
-        private static final int ICON_ROW_COUNT = 3;
-
-        private static final float HANDLE_TOP_PADDING_PERCENT = .033f;
-        private static final float HANDLE_HEIGHT_PERCENT = .013f;
-        private static final float OMNIBOX_HEIGHT_PERCENT = .132f;
-        private static final float OMNIBOX_TOP_PADDING_PERCENT = .031f;
-        private static final float OMNIBOX_SIDE_PADDING_PERCENT = 0.0375f;
-        private static final float NTP_TILE_DIAMETER_PERCENT = .17f;
-        private static final float NTP_TILE_TOP_PADDING_INITIAL_PERCENT = .066f;
-        private static final float NTP_TILE_TOP_PADDING_PERCENT = .086f;
-        private static final float NTP_TILE_INNER_PADDING_PERCENT = .153f;
-        private static final float ICON_HEIGHT_PERCENT = .143f;
-
-        private final Paint mPaint = new Paint();
-        private final RectF mTempRect = new RectF();
-        private final Drawable mDownloadIcon;
-        private final Drawable mBookmarkStarIcon;
-        private final Drawable mHistoryIcon;
-        @ColorRes
-        private final int mOmniboxNtpTileColor;
-
-        private int mHandleHeight;
-        private int mHandleTopInset;
-        private int mOmniboxSidePadding;
-        private int mOmniboxTopPadding;
-        private int mOmniboxHeight;
-        private int mOmniboxCornerRadius;
-        private int mNtpTileTopPadding;
-        private int mNtpTileInitialTopPadding;
-        private int mNtpTileOuterPadding;
-        private int mNtpTileInnerPadding;
-        private int mNtpTileRadius;
-        private int mIconWidth;
-
-        private int mAlpha = 255;
-
-        private int mBottomBarOffsetY;
-
-        public HomeSectionDrawable(Resources resources, Drawable downloadIconDrawable,
-                Drawable bookmarkStarDrawable, Drawable historyIconDrawable,
-                @ColorRes int omniboxNtpTileColor) {
-            int tintColor = ApiCompatibilityUtils.getColor(resources, R.color.black_alpha_65);
-            mDownloadIcon = downloadIconDrawable;
-            mDownloadIcon.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN);
-
-            mBookmarkStarIcon = bookmarkStarDrawable;
-            mBookmarkStarIcon.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN);
-
-            mHistoryIcon = historyIconDrawable;
-            mHistoryIcon.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN);
-
-            mOmniboxNtpTileColor = omniboxNtpTileColor;
-        }
-
-        @Override
-        public void draw(@NonNull Canvas canvas) {
-            if (mAlpha == 0) return;
-
-            canvas.clipRect(getBounds());
-            int w = getBounds().width();
-
-            mPaint.setColor(mOmniboxNtpTileColor);
-            mPaint.setAlpha(mAlpha);
-
-            mTempRect.set(mOmniboxSidePadding, mHandleTopInset + mOmniboxTopPadding + mHandleHeight,
-                    w - mOmniboxSidePadding,
-                    mHandleTopInset + mOmniboxTopPadding + mHandleHeight + mOmniboxHeight);
-            canvas.drawRoundRect(mTempRect, mOmniboxCornerRadius, mOmniboxCornerRadius, mPaint);
-
-            int translateY = mHandleTopInset + mOmniboxTopPadding + mHandleHeight + mOmniboxHeight
-                    + mNtpTileInitialTopPadding;
-            mBottomBarOffsetY = translateY;
-            canvas.translate(0, translateY);
-            drawNtpTiles(canvas);
-
-            translateY = 2 * mNtpTileRadius + mNtpTileTopPadding;
-            mBottomBarOffsetY += translateY;
-            canvas.translate(0, translateY);
-            drawNtpTiles(canvas);
-
-            translateY = 2 * mNtpTileRadius + mNtpTileTopPadding;
-            mBottomBarOffsetY += translateY;
-            canvas.translate(0, translateY);
-            drawBottomBar(canvas);
-        }
-
-        private void drawNtpTiles(Canvas canvas) {
-            mPaint.setColor(mOmniboxNtpTileColor);
-            mPaint.setAlpha(mAlpha);
-
-            for (int i = 0; i < NTP_TILE_PER_ROW_COUNT; i++) {
-                int cx = mNtpTileOuterPadding + mNtpTileInnerPadding * i + (2 * i * mNtpTileRadius)
-                        + mNtpTileRadius;
-                canvas.drawCircle(cx, mNtpTileRadius, mNtpTileRadius, mPaint);
-            }
-        }
-
-        private void drawBottomBar(Canvas canvas) {
-            int iconSpacing = (getBounds().width() - mIconWidth * 3) / 4;
-            for (int i = 0; i < ICON_ROW_COUNT; i++) {
-                Drawable icon;
-                if (i == 0) {
-                    icon = mDownloadIcon;
-                } else if (i == 1) {
-                    icon = mBookmarkStarIcon;
-                } else {
-                    icon = mHistoryIcon;
-                }
-                icon.setAlpha(mAlpha);
-
-                canvas.save();
-                canvas.translate(iconSpacing * (i + 1) + (i * mIconWidth), 0);
-                icon.draw(canvas);
-                canvas.restore();
-            }
-        }
-
-        @Override
-        protected void onBoundsChange(Rect bounds) {
-            super.onBoundsChange(bounds);
-
-            int height = bounds.height();
-            int width = bounds.width();
-
-            mHandleHeight = (int) (HANDLE_HEIGHT_PERCENT * height);
-            mHandleTopInset = (int) (HANDLE_TOP_PADDING_PERCENT * height);
-
-            mOmniboxSidePadding = (int) (OMNIBOX_SIDE_PADDING_PERCENT * width);
-            mOmniboxTopPadding = (int) (OMNIBOX_TOP_PADDING_PERCENT * height);
-            mOmniboxHeight = (int) (OMNIBOX_HEIGHT_PERCENT * height);
-            mOmniboxCornerRadius = mOmniboxHeight / 2;
-
-            mNtpTileInitialTopPadding = (int) (NTP_TILE_TOP_PADDING_INITIAL_PERCENT * height);
-            mNtpTileTopPadding = (int) (NTP_TILE_TOP_PADDING_PERCENT * height);
-            mNtpTileRadius = (int) ((NTP_TILE_DIAMETER_PERCENT * height) / 2);
-            mNtpTileInnerPadding = (int) (NTP_TILE_INNER_PADDING_PERCENT * width);
-            mNtpTileOuterPadding = (width - 6 * mNtpTileRadius - 2 * mNtpTileInnerPadding) / 2;
-
-            mIconWidth = (int) (ICON_HEIGHT_PERCENT * height);
-            mDownloadIcon.setBounds(0, 0, mIconWidth, mIconWidth);
-            mBookmarkStarIcon.setBounds(0, 0, mIconWidth, mIconWidth);
-            mHistoryIcon.setBounds(0, 0, mIconWidth, mIconWidth);
-        }
-
-        /**
-         * @return The amount of the home sheet to be visible in the collapsed/peeking state.
-         */
-        public int getCollapsedShowHeight() {
-            return mHandleTopInset + mOmniboxTopPadding + mHandleHeight + mOmniboxHeight
-                    + mNtpTileTopPadding / 2;
-        }
-
-        /**
-         * @return The center Y position for the highlight over the middle icon.  Based off the
-         *         top of the home sheet being 0.
-         */
-        public int getHighlightCenterYPoint() {
-            return mBottomBarOffsetY + mIconWidth / 2;
-        }
-
-        /**
-         * @return The width
-         */
-        public int getBookmarkIconWidth() {
-            return mIconWidth;
-        }
-
-        @Override
-        public int getAlpha() {
-            return mAlpha;
-        }
-
-        @Override
-        public void setAlpha(int i) {
-            int previousAlpha = mAlpha;
-            mAlpha = i;
-            if (previousAlpha != mAlpha) invalidateSelf();
-        }
-
-        @Override
-        public void setColorFilter(@Nullable ColorFilter colorFilter) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public int getOpacity() {
-            return PixelFormat.OPAQUE;
-        }
-    }
-
-    private static class BookmarkSectionDrawable extends Drawable {
-        private static final float BOOKMARK_WIDTH_PERCENT = .174f;
-        private static final float BOOKMARK_INITIAL_TOP_PADDING_PERCENT = .107f;
-        private static final float BOOKMARK_TOP_PADDING_PERCENT = .055f;
-        private static final float BOOKMARK_TEXT_BLOCK_HEIGHT_PERCENT = .031f;
-        private static final float BOOKMARK_TEXT_BLOCK_WIDTH_PERCENT = .435f;
-        private static final float SIDE_PADDING_PERCENT = .141f;
-        private static final float STAR_TEXT_HORIZONTAL_PADDING = .087f;
-
-        private Paint mPaint = new Paint();
-        private Drawable mBookmarkStar;
-
-        private int mSidePadding;
-        private int mBookmarkHeight;
-        private int mBookmarkInitialVerticalPadding;
-        private int mBookmarkVerticalPadding;
-        private int mBookmarkStarTextSpacing;
-        private int mBookmarkTextBlockHeight;
-        private int mBookmarkTextBlockWidth;
-
-        private int mAlpha;
-
-        public BookmarkSectionDrawable(Drawable bookmarkStarDrawable) {
-            mBookmarkStar = bookmarkStarDrawable;
-        }
-
-        @Override
-        public void draw(@NonNull Canvas canvas) {
-            if (mAlpha == 0) return;
-
-            canvas.save();
-            canvas.translate(0, mBookmarkInitialVerticalPadding);
-            for (int i = 0; i < BOOKMARK_ROW_COLORS.length; i++) {
-                if (i > 0) {
-                    canvas.translate(0, mBookmarkVerticalPadding + mBookmarkHeight);
-                }
-                mPaint.setColor(BOOKMARK_ROW_COLORS[i]);
-                mPaint.setAlpha(mAlpha);
-
-                canvas.save();
-                canvas.translate(mSidePadding, 0);
-                mBookmarkStar.setColorFilter(BOOKMARK_ROW_COLORS[i], PorterDuff.Mode.SRC_IN);
-                mBookmarkStar.draw(canvas);
-                canvas.restore();
-
-                int textBoxTop = (mBookmarkHeight - mBookmarkTextBlockHeight) / 2;
-                int textBoxLeft = mBookmarkHeight + mSidePadding + mBookmarkStarTextSpacing;
-                canvas.drawRect(textBoxLeft, textBoxTop, textBoxLeft + mBookmarkTextBlockWidth,
-                        textBoxTop + mBookmarkTextBlockHeight, mPaint);
-            }
-            canvas.restore();
-        }
-
-        @Override
-        protected void onBoundsChange(Rect bounds) {
-            super.onBoundsChange(bounds);
-
-            int width = bounds.width();
-            int height = bounds.height();
-
-            mSidePadding = (int) (SIDE_PADDING_PERCENT * width);
-            mBookmarkHeight = (int) (BOOKMARK_WIDTH_PERCENT * width);
-            mBookmarkInitialVerticalPadding = (int) (BOOKMARK_INITIAL_TOP_PADDING_PERCENT * height);
-            mBookmarkVerticalPadding = (int) (BOOKMARK_TOP_PADDING_PERCENT * height);
-            mBookmarkStarTextSpacing = (int) (STAR_TEXT_HORIZONTAL_PADDING * width);
-            mBookmarkTextBlockHeight = (int) (BOOKMARK_TEXT_BLOCK_HEIGHT_PERCENT * height);
-            mBookmarkTextBlockWidth = (int) (BOOKMARK_TEXT_BLOCK_WIDTH_PERCENT * width);
-            mBookmarkStar.setBounds(0, 0, mBookmarkHeight, mBookmarkHeight);
-        }
-
-        @Override
-        public int getAlpha() {
-            return mAlpha;
-        }
-
-        @Override
-        public void setAlpha(int i) {
-            int previousAlpha = mAlpha;
-            mAlpha = i;
-            if (previousAlpha != mAlpha) invalidateSelf();
-        }
-
-        @Override
-        public void setColorFilter(@Nullable ColorFilter colorFilter) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public int getOpacity() {
-            return PixelFormat.TRANSLUCENT;
-        }
-    }
-
-    private static class SheetDrawable extends Drawable {
-        private static final float HANDLE_TOP_PADDING_PERCENT = .019f;
-        private static final float HANDLE_HEIGHT_PERCENT = .008f;
-        private static final float HANDLE_WIDTH_PERCENT = .065f;
-
-        private Paint mPaint = new Paint();
-        private RectF mTempRect = new RectF();
-
-        private int mHandleWidth;
-        private int mHandleHeight;
-        private int mHandleTopInset;
-        private int mHandleRoundedRadius;
-
-        @Override
-        public void draw(@NonNull Canvas canvas) {
-            int w = getBounds().width();
-
-            mPaint.setColor(Color.WHITE);
-            canvas.drawRect(getBounds(), mPaint);
-
-            mPaint.setColor(Color.DKGRAY);
-            mTempRect.set(w / 2 - mHandleWidth / 2, mHandleTopInset, w / 2 + mHandleWidth / 2,
-                    mHandleTopInset + mHandleHeight);
-            canvas.drawRoundRect(mTempRect, mHandleRoundedRadius, mHandleRoundedRadius, mPaint);
-        }
-
-        @Override
-        protected void onBoundsChange(Rect bounds) {
-            super.onBoundsChange(bounds);
-
-            mHandleWidth = (int) (HANDLE_WIDTH_PERCENT * bounds.width());
-            mHandleHeight = (int) (HANDLE_HEIGHT_PERCENT * bounds.height());
-            mHandleRoundedRadius = mHandleHeight / 2;
-            mHandleTopInset = (int) (HANDLE_TOP_PADDING_PERCENT * bounds.height());
-        }
-
-        @Override
-        public void setAlpha(int i) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public void setColorFilter(@Nullable ColorFilter colorFilter) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public int getOpacity() {
-            return PixelFormat.OPAQUE;
-        }
-    }
-
-    private static class HighlightDrawable extends Drawable {
-        private static final float INNER_CIRCLE_PERCENT = 0.467f;
-        private static final float ICON_MAX_GROWTH_PERCENT = 1.3f;
-        private static final float INVERSE_GROWTH_PERCENT = 1 / ICON_MAX_GROWTH_PERCENT;
-
-        private final Paint mPaint = new Paint();
-        private final Drawable mIcon;
-
-        private float mExpansionPercent;
-
-        public HighlightDrawable(Resources resources, Drawable iconDrawable) {
-            mIcon = iconDrawable;
-            mIcon.setColorFilter(
-                    ApiCompatibilityUtils.getColor(resources, R.color.light_active_color),
-                    PorterDuff.Mode.SRC_IN);
-        }
-
-        public void setIconSize(int iconSize) {
-            mIcon.setBounds(0, 0, (int) (iconSize * ICON_MAX_GROWTH_PERCENT),
-                    (int) (iconSize * ICON_MAX_GROWTH_PERCENT));
-        }
-
-        public void setExpansionPercent(float percent) {
-            mExpansionPercent = percent;
-        }
-
-        @Override
-        public void draw(@NonNull Canvas canvas) {
-            int w = getBounds().width();
-            int h = getBounds().height();
-            float centerPoint = w / 2f;
-
-            mPaint.setColor(Color.parseColor("#1929B6F6"));
-            canvas.drawCircle(centerPoint, centerPoint, centerPoint * mExpansionPercent, mPaint);
-
-            mPaint.setColor(Color.parseColor("#3D29B6F6"));
-            canvas.drawCircle(centerPoint, centerPoint,
-                    ((w * INNER_CIRCLE_PERCENT) / 2f) * mExpansionPercent, mPaint);
-
-            int iconWidth = mIcon.getBounds().width();
-            int iconHeight = mIcon.getBounds().height();
-            canvas.save();
-            canvas.translate((w - iconWidth) / 2f, (h - iconHeight) / 2f);
-            float scale = MathUtils.interpolate(INVERSE_GROWTH_PERCENT, 1f, mExpansionPercent);
-            canvas.scale(scale, scale, iconWidth / 2f, iconHeight / 2f);
-            mIcon.draw(canvas);
-            canvas.restore();
-        }
-
-        @Override
-        public void setAlpha(int i) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public void setColorFilter(@Nullable ColorFilter colorFilter) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public int getOpacity() {
-            return PixelFormat.TRANSLUCENT;
-        }
-    }
-
-    private static class PhoneDrawable extends Drawable {
-        private static final float STROKE_WIDTH_PERCENT = .0048f;
-        private static final float OUTER_CORNER_RADIUS_PERCENT = .13f;
-        private static final float INNER_CORNER_RADIUS_PERCENT = .07f;
-        private static final float BEZEL_TOP_PERCENT = .107f;
-        private static final float BEZEL_BOTTOM_PERCENT = .121f;
-        private static final float BEZEL_SIDE_PERCENT = .074f;
-        private static final float SPEAKER_WIDTH_PERCENT = .203f;
-        private static final float SPEAKER_HEIGHT_PERCENT = .015f;
-        private static final float SPEAKER_TOP_PADDING_PERCENT = .039f;
-
-        private final Paint mPaint = new Paint();
-        @ColorRes
-        private final int mPhoneColor;
-
-        private Bitmap mBitmap;
-
-        private int mOuterCornerRadius;
-        private int mInnerCornerRadius;
-        private int mBezelTopHeight;
-        private int mBezelBottomHeight;
-        private int mBezelSideWidth;
-        private int mStrokeWidth;
-
-        private int mSpeakerWidth;
-        private int mSpeakerHeight;
-        private int mSpeakerInset;
-        private int mSpeakerCornerRadius;
-
-        public PhoneDrawable(@ColorRes int phoneColor) {
-            mPhoneColor = phoneColor;
-        }
-
-        @Override
-        protected void onBoundsChange(Rect bounds) {
-            super.onBoundsChange(bounds);
-
-            int height = bounds.height();
-            int width = bounds.width();
-
-            mStrokeWidth = (int) (STROKE_WIDTH_PERCENT * width);
-            mOuterCornerRadius = (int) (OUTER_CORNER_RADIUS_PERCENT * width);
-            mInnerCornerRadius = (int) (INNER_CORNER_RADIUS_PERCENT * width);
-            mBezelTopHeight = (int) (BEZEL_TOP_PERCENT * height);
-            mBezelBottomHeight = (int) (BEZEL_BOTTOM_PERCENT * height);
-            mBezelSideWidth = (int) (BEZEL_SIDE_PERCENT * width);
-
-            mSpeakerWidth = (int) (SPEAKER_WIDTH_PERCENT * width);
-            mSpeakerHeight = (int) (SPEAKER_HEIGHT_PERCENT * height);
-            mSpeakerInset = (int) (SPEAKER_TOP_PADDING_PERCENT * height);
-            mSpeakerCornerRadius = mSpeakerHeight / 2;
-
-            mBitmap = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888);
-            drawPhone();
-        }
-
-        /**
-         * @return The inner height of the phone drawable.
-         */
-        public int getInnerHeight() {
-            return getBounds().height() - mBezelTopHeight - mBezelBottomHeight;
-        }
-
-        /**
-         * @return The inner width of the phone drawable.
-         */
-        public int getInnerWidth() {
-            return getBounds().width() - mBezelSideWidth * 2;
-        }
-
-        /**
-         * @return The left X position of the inner content area of the phone drawable.
-         */
-        public int getInnerLeft() {
-            return mBezelSideWidth;
-        }
-
-        /**
-         * @return The top Y position of the inner content area of the phone drawable.
-         */
-        public int getInnerTop() {
-            return mBezelTopHeight;
-        }
-
-        private void drawPhone() {
-            Canvas canvas = new Canvas(mBitmap);
-
-            int w = getBounds().width();
-            int h = getBounds().height();
-
-            int left = 0;
-            int right = w;
-            int top = 0;
-            int bottom = h;
-
-            canvas.save();
-            RectF rectF = new RectF(left, top, right, bottom);
-            mPaint.setColor(Color.parseColor("#BDC1C6"));
-            canvas.drawRoundRect(rectF, mOuterCornerRadius, mOuterCornerRadius, mPaint);
-
-            mPaint.setColor(mPhoneColor);
-            rectF.inset(mStrokeWidth, mStrokeWidth);
-            canvas.drawRoundRect(rectF, mOuterCornerRadius, mOuterCornerRadius, mPaint);
-
-            int halfWidth = w / 2;
-            rectF.set(halfWidth - (mSpeakerWidth / 2), mSpeakerInset,
-                    halfWidth + (mSpeakerWidth / 2), mSpeakerInset + mSpeakerHeight);
-            mPaint.setColor(Color.parseColor("#9C9C9C"));
-            mPaint.setStyle(Paint.Style.FILL);
-            canvas.drawRoundRect(rectF, mSpeakerCornerRadius, mSpeakerCornerRadius, mPaint);
-
-            rectF.set(mBezelSideWidth, mBezelTopHeight, right - mBezelSideWidth,
-                    bottom - mBezelBottomHeight);
-            mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_OUT));
-            canvas.drawRoundRect(rectF, mInnerCornerRadius, mInnerCornerRadius, mPaint);
-            canvas.restore();
-        }
-
-        @Override
-        public void draw(@NonNull Canvas canvas) {
-            if (mBitmap == null) return;
-
-            canvas.drawBitmap(mBitmap, 0, 0, null);
-        }
-
-        @Override
-        public void setAlpha(int i) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public void setColorFilter(@Nullable ColorFilter colorFilter) {
-            assert false : "Unsupported";
-        }
-
-        @Override
-        public int getOpacity() {
-            return PixelFormat.TRANSLUCENT;
-        }
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoMenuHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoMenuHeader.java
deleted file mode 100644
index a2f1003..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoMenuHeader.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.widget.bottomsheet;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.LinearLayout;
-
-import org.chromium.chrome.browser.ChromeActivity;
-
-/**
- * A menu header that is displayed when the Chrome Home promo is enabled. Shows the
- * {@link ChromeHomePromoDialog} on click.
- */
-public class ChromeHomePromoMenuHeader extends LinearLayout implements OnClickListener {
-    private ChromeActivity mActivity;
-
-    public ChromeHomePromoMenuHeader(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    /**
-     * Initializes the menu header.
-     * @param activity The {@link ChromeActivity} that will display the app menu containing this
-     *                 header.
-     */
-    public void initialize(ChromeActivity activity) {
-        mActivity = activity;
-        setOnClickListener(this);
-    }
-
-    @Override
-    public void onClick(View v) {
-        new ChromeHomePromoDialog(mActivity, ChromeHomePromoDialog.ShowReason.MENU).show();
-
-        mActivity.getAppMenuHandler().hideAppMenu();
-    }
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeSnackbarController.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeSnackbarController.java
deleted file mode 100644
index b04d7e7..0000000
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeSnackbarController.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.chrome.browser.widget.bottomsheet;
-
-import android.text.TextUtils;
-
-import org.chromium.base.ContextUtils;
-import org.chromium.base.metrics.RecordUserAction;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.ChromeActivity;
-import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
-import org.chromium.chrome.browser.snackbar.Snackbar;
-import org.chromium.chrome.browser.snackbar.SnackbarManager;
-import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
-import org.chromium.chrome.browser.tab.Tab;
-import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator;
-import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
-import org.chromium.components.variations.VariationsAssociatedData;
-import org.chromium.content_public.browser.LoadUrlParams;
-
-/**
- * A {@link SnackbarController} that displays a snackbar prompting users to provide feedback after
- * opting out of Chrome Home.
- */
-public class ChromeHomeSnackbarController implements SnackbarController {
-    private static final String FIELD_TRIAL_NAME = "ChromeHomeOptOutSnackbar";
-    private static final String SURVEY_URL_PARAM = "survey_url";
-    private static final String DEFAULT_SURVEY_URL =
-            "https://support.google.com/chrome/?p=home_optout";
-    private static final Integer SNACKBAR_DURATION_MS = 5000;
-
-    private TabCreator mTabCreator;
-
-    /**
-     * @param tab The {@link Tab} that was reparented after opting out of Chrome Home. The Tab is
-     *            used to retrieve the new {@link ChromeActivity}.
-     */
-    public static void initialize(Tab tab) {
-        ChromeActivity activity = tab.getActivity();
-        new ChromeHomeSnackbarController(
-                activity.getSnackbarManager(), activity.getTabCreator(false));
-    }
-
-    private ChromeHomeSnackbarController() {}
-
-    private ChromeHomeSnackbarController(SnackbarManager manager, TabCreator defaultTabCreator) {
-        mTabCreator = defaultTabCreator;
-
-        ChromePreferenceManager.getInstance().setChromeHomeOptOutSnackbarShown();
-
-        Snackbar snackbar = Snackbar.make(ContextUtils.getApplicationContext().getString(
-                                                  R.string.chrome_home_opt_out_snackbar_text),
-                this, Snackbar.TYPE_ACTION, Snackbar.UMA_CHROME_HOME_OPT_OUT_SURVEY);
-        snackbar.setAction(ContextUtils.getApplicationContext().getString(
-                                   R.string.chrome_home_opt_out_snackbar_action),
-                null);
-        snackbar.setSingleLine(false);
-        snackbar.setDuration(SNACKBAR_DURATION_MS);
-        manager.showSnackbar(snackbar);
-    }
-
-    @Override
-    public void onAction(Object actionData) {
-        String surveyUrl =
-                VariationsAssociatedData.getVariationParamValue(FIELD_TRIAL_NAME, SURVEY_URL_PARAM);
-        if (TextUtils.isEmpty(surveyUrl)) surveyUrl = DEFAULT_SURVEY_URL;
-
-        mTabCreator.createNewTab(new LoadUrlParams(surveyUrl), TabLaunchType.FROM_CHROME_UI, null);
-        RecordUserAction.record("Android.ChromeHome.OptOutSnackbarClicked");
-    }
-
-    @Override
-    public void onDismissNoAction(Object actionData) {}
-}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java
index 64a5847..804ef95 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableItemView.java
@@ -111,7 +111,7 @@
         if (mIconView != null) {
             mIconView.setBackgroundResource(R.drawable.list_item_icon_modern_bg);
             mIconView.setTint(getDefaultIconTint());
-            if (!FeatureUtilities.isChromeHomeEnabled()) {
+            if (!FeatureUtilities.isChromeModernDesignEnabled()) {
                 mIconView.getBackground().setAlpha(0);
             }
         }
@@ -222,7 +222,7 @@
             mIconView.setTint(getDefaultIconTint());
         }
 
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             mIconView.getBackground().setAlpha(isChecked() ? 255 : 0);
         }
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java
index 3efaa3a7..ad791e8 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListLayout.java
@@ -204,7 +204,7 @@
         mToolbarShadow.init(
                 ApiCompatibilityUtils.getColor(getResources(), R.color.toolbar_shadow_color),
                 FadingShadow.POSITION_TOP);
-        if (FeatureUtilities.isChromeHomeEnabled()) mToolbarShadow.setAlpha(0);
+        if (FeatureUtilities.isChromeModernDesignEnabled()) mToolbarShadow.setAlpha(0);
 
         mShowShadowOnSelection = showShadowOnSelection;
         delegate.addObserver(this);
@@ -346,7 +346,7 @@
     }
 
     private void setEmptyOrLoadingViewStyle(View view) {
-        if (!FeatureUtilities.isChromeHomeEnabled()) return;
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) return;
 
         ((FrameLayout.LayoutParams) view.getLayoutParams()).gravity = Gravity.CENTER_HORIZONTAL;
         ApiCompatibilityUtils.setPaddingRelative(view, ApiCompatibilityUtils.getPaddingStart(view),
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java
index 0189db8..4058811 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java
@@ -215,7 +215,7 @@
         mSelectionMenuButton = TintedDrawable.constructTintedDrawable(
                 getResources(), R.drawable.ic_more_vert_black_24dp, android.R.color.white);
 
-        if (!FeatureUtilities.isChromeHomeEnabled()) {
+        if (!FeatureUtilities.isChromeModernDesignEnabled()) {
             setTitleTextAppearance(getContext(), R.style.BlackHeadline2);
         }
     }
@@ -266,7 +266,7 @@
             }
         });
 
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             mClearTextButton.setPadding(ApiCompatibilityUtils.getPaddingStart(mClearTextButton),
                     mClearTextButton.getPaddingTop(),
                     getResources().getDimensionPixelSize(R.dimen.clear_text_button_end_padding),
@@ -491,8 +491,8 @@
         int padding =
                 SelectableListLayout.getPaddingForDisplayStyle(newDisplayStyle, getResources());
         int paddingStartOffset = 0;
-        boolean isModernSearchViewEnabled =
-                mIsSearching && !mIsSelectionEnabled && FeatureUtilities.isChromeHomeEnabled();
+        boolean isModernSearchViewEnabled = mIsSearching && !mIsSelectionEnabled
+                && FeatureUtilities.isChromeModernDesignEnabled();
         MarginLayoutParams params = (MarginLayoutParams) getLayoutParams();
 
         if (newDisplayStyle.horizontal == HorizontalDisplayStyle.WIDE
@@ -611,7 +611,7 @@
         mSearchView.setVisibility(View.VISIBLE);
 
         setNavigationButton(NAVIGATION_BUTTON_BACK);
-        if (FeatureUtilities.isChromeHomeEnabled()) {
+        if (FeatureUtilities.isChromeModernDesignEnabled()) {
             setBackgroundResource(R.drawable.search_toolbar_modern_bg);
         } else {
             setBackgroundColor(mSearchBackgroundColor);
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd
index 16e69e26..cfc162e 100644
--- a/chrome/android/java/strings/android_chrome_strings.grd
+++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -775,6 +775,9 @@
       <message name="IDS_SOUND_PERMISSION_TITLE" desc="Title of the permission to play sound [CHAR-LIMIT=32]">
         Sound
       </message>
+      <message name="IDS_CLIPBOARD_PERMISSION_TITLE" desc="Title of the permission to read from clipboard [CHAR-LIMIT=32]">
+        Clipboard
+      </message>
       <message name="IDS_ENABLE_NOTIFICATIONS_VIBRATE_TITLE" desc="Title for the preference to enable vibration for notifications">
         Vibrate
       </message>
@@ -808,6 +811,12 @@
       <message name="IDS_WEBSITE_SETTINGS_ADD_SITE_DESCRIPTION_BACKGROUND_SYNC" desc="The description for the allow Background Sync for website dialog.">
         Allow Background Sync for a specific site.
       </message>
+      <message name="IDS_WEBSITE_SETTINGS_ADD_SITE_DESCRIPTION_CLIPBOARD_ALLOW" desc="The description for the allow clipboard for website dialog.">
+        Allow clipboard read access for a specific site.
+      </message>
+      <message name="IDS_WEBSITE_SETTINGS_ADD_SITE_DESCRIPTION_CLIPBOARD_BLOCK" desc="The description for the block clipboard for website dialog.">
+        Block clipboard read access for a specific site.
+      </message>
       <message name="IDS_WEBSITE_SETTINGS_ADD_SITE_DESCRIPTION_SOUND_ALLOW" desc="The description for the allow sound for website dialog.">
         Allow sound for a specific site.
       </message>
@@ -874,6 +883,15 @@
       <message name="IDS_WEBSITE_SETTINGS_CATEGORY_JAVASCRIPT_ALLOWED" desc="Summary text explaining that sites are allowed to run Javascript and that it is the recommended setting.">
         Allow sites to run JavaScript (recommended)
       </message>
+      <message name="IDS_WEBSITE_SETTINGS_CATEGORY_CLIPBOARD_ASK" desc="Summary text explaining that sites need to ask for permission before reading from the clipboard and that it is the recommended setting.">
+        Ask before allowing sites to read text and images from the clipboard (recommended)
+      </message>
+      <message name="IDS_WEBSITE_SETTINGS_CATEGORY_CLIPBOARD_BLOCKED" desc="Summary text explaining that sites are currently blocked from reading from the clipboard.">
+        Block sites from reading text and images from the clipboard
+      </message>
+      <message name="IDS_WEBSITE_SETTINGS_CATEGORY_CLIPBOARD_BLOCKED_LIST" desc="Summary text explaining that the clipboard permission is set to block read access on some sites. To be shown in the list of permission categories.">
+        Blocked from reading clipboard
+      </message>
       <message name="IDS_WEBSITE_SETTINGS_CATEGORY_SOUND_ALLOWED" desc="Summary text explaining that sites are allowed to play sound and that it is the recommended setting.">
         Allow sites to play sound (recommended)
       </message>
@@ -1167,6 +1185,9 @@
       <message name="IDS_DOWNLOADS_SECONDARY_STORAGE" desc="Option for setting the default download location to be external storage (ie. an SD card).">
         Secondary storage
       </message>
+      <message name="IDS_DOWNLOAD_LOCATION_PROMPT_ENABLED_TITLE" desc="Title for preference that allows the user to indicate whether they want to show a change downloads location prompt every time they download.">
+        Ask where to save each file before downloading
+      </message>
 
       <!-- About Chrome preferences -->
       <message name="IDS_PREFS_ABOUT_CHROME" desc="Title for the About Chrome page. [CHAR-LIMIT=32]">
@@ -2199,6 +2220,9 @@
       <message name="IDS_ACCESSIBILITY_COLLAPSE_OFFLINE_PAGES" desc="Content description for the suggested section header collapse button.">
         Tap to collapse
       </message>
+      <message name="IDS_DOWNLOAD_LOCATION_DIALOG_TITLE" desc="Title for the dialog that asks where the user wants to save the download file before the download begins.">
+        Download file
+      </message>
 
       <!-- Browsing History UI -->
       <message name="IDS_HISTORY_MANAGER_EMPTY" desc="Indicates that there are no browsing history items.">
@@ -2415,9 +2439,6 @@
       <message name="IDS_ACCESSIBILITY_SUGGESTION_WITH_VIDEO_BADGE" desc="Content description for the badge that indicates a content suggestion on the new tab page has a video.">
         With video
       </message>
-      <message name="IDS_NTP_CHROME_HOME_PROMO" desc="Tappable line of text that appears when a user opens a new tab in Chrome. This text is promotional and is intended to suggest that users try the new Chrome, which has new features. When tapped, a dialog explaining the feature opens. “Try” is imperative. “To browse” (infinitive) means to browse the web.">
-        Try an <ph name="BEGIN_LINK">&lt;link&gt;</ph>easier way to browse<ph name="END_LINK">&lt;/link&gt;</ph>
-      </message>
       <message name="IDS_NTP_LEARN_MORE_ABOUT_SUGGESTED_CONTENT" desc="Text in the footer of the New Tab Page. Part of the text is a link to a help center page where the user can learn more about suggested content.">
         <ph name="BEGIN_LINK">&lt;link&gt;</ph>Learn more<ph name="END_LINK">&lt;/link&gt;</ph> about suggested content
       </message>
@@ -3263,33 +3284,6 @@
       <message name="IDS_CHROME_HOME_MENU_HISTORY_HELP_BUBBLE" desc="Help text. Shown after a user taps the ‘History’ item in the three-dot menu of mobile Chrome. Context: In Chrome Hub, ‘History’ is moving from the three-dot menu to a bottom navigation bar, which can be accessed by swiping the address bar up. This help text notifies the user of the change. Please ensure ‘History’ in this message matches the ‘History’ menu item and button label.">
         “History” is moving. Next time, pull the address bar up.
       </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_MESSAGE" desc="Dialog body text. Describes the new features available in the new Chrome. “Swipe up” (imperative) refers to the gesture on a mobile phone. “access” is a noun. “Popular” modifies both “sites and articles.” “Downloads” refers to items the user has downloaded in Chrome.">
-        Swipe up for easy access to popular sites and articles, downloads, and more
-      </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_MESSAGE_ACCESSIBILITY" desc="Dialog body text when accessibility is enabled. Dialog describes a new feature called “Chrome Home” (which is a placeholder name, official naming is underway; for now, do not translate the feature name). “Swipe up” (imperative) refers to the gesture on a mobile phone. “access” is a noun. “Popular” modifies both “sites and articles.” “Downloads” refers to items the user has downloaded in Chrome.">
-        Swipe up from the bottom of the screen or tap the expand button for easy access to popular sites and articles, downloads, and more
-      </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_NOT_YET" desc="Dialog button text that is visible if the new Chrome is disabled and will dismiss the dialog when pressed without changing the state of Chrome.">
-        Not yet
-      </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_TITLE" desc="Dialog title text. Dialog describes the new Chrome. Object is omitted; intended meaning is that we wish to introduce you, the user, to a new version of Chrome. Infinitive or other verb form may be used if the gerund is not appropriate in your language.">
-        Introducing the new Chrome
-      </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_TRY_IT" desc="Dialog button text that is visible if the new Chrome is disabled and will dismiss the dialog and enable the new Chrome when pressed.">
-        Try it
-      </message>
-      <message name="IDS_CHROME_HOME_PROMO_DIALOG_TURN_OFF" desc="Dialog button text that is visible if the new Chrome is enabled and will dismiss the dialog and disable the new Chrome when pressed.">
-        Turn off
-      </message>
-      <message name="IDS_CHROME_HOME_OPT_OUT_MENU_ITEM" desc="Item that appears at the top of the Chrome options menu on mobile. Gerund is used to indicate the current state, e.g. you are now using the new Chrome. Tapping this item opens a dialog that allows the user to turn off the new Chrome and revert to an older version.">
-        You’re using the new Chrome
-      </message>
-       <message name="IDS_CHROME_HOME_OPT_OUT_SNACKBAR_TEXT" desc="Message in that appears after the user has turned off the new Chrome and reverted to using an older version. Message requests that the user provide feedback via a survey. “Us” refers to the Chrome team.">
-        Tell us why you turned off the new Chrome
-      </message>
-      <message name="IDS_CHROME_HOME_OPT_OUT_SNACKBAR_ACTION" desc="Action button that appears on a snackbar after the user has turned off the new Chrome.">
-        Take survey
-      </message>
       <message name="IDS_BOTTOM_SHEET_ACCESSIBILITY_TOOLBAR" desc="Accessibilty string read when the bottom toolbar, containing the adddress bar and some buttons, is focused. Informs users that they can pull up on the address bar to see their bookmarks and other content.">
         Address bar. Swipe up to see downloads, bookmarks, and history.
       </message>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
index 3e28f43..3d1e8bb 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="am">
 <translation id="1006017844123154345">መስመር ላይ ክፈት</translation>
-<translation id="1036348656032585052">አጥፋ</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" />ን በማከል ላይ...</translation>
 <translation id="1041308826830691739">ከድር ጣቢያዎች</translation>
 <translation id="1049743911850919806">ማንነት የማያሳውቅ</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">ይህን ጣቢያ በጭራሽ አትተርጉም</translation>
 <translation id="1291207594882862231">ታሪክ፣ ኩኪዎች፣ የጣቢያ ውሂብ፣ መሸጎጫን አጽዳ…</translation>
 <translation id="129553762522093515">በቅርብ ጊዜ የተዘጉ</translation>
-<translation id="1320663236730331991">የታዋቂ ጣቢያዎች እና ጽሑፎች፣ ውርዶች እና ተጨማሪ ነገሮች ቀላል መዳረሻ ለማግኘት ወደ ላይ ያንሸራትቱ</translation>
 <translation id="1326317727527857210">ትሮችዎን ከሌሎች መሣሪያዎችዎ ለማግኘት ወደ Chrome ይግቡ።</translation>
 <translation id="1332501820983677155">የGoogle Chrome ባህሪ አቋራጮች</translation>
 <translation id="136248372334525878">ለበለጠ ፈጣን ጭነት እና የመስመር ውጭ ንባብ ገጾችን አስቀድመው ይጫኑ</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> ጊባ ሌሎች መተግበሪያዎች</translation>
 <translation id="2079545284768500474">ቀልብስ</translation>
 <translation id="2082238445998314030">ውጤት <ph name="RESULT_NUMBER" /> ከ<ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">አዲሱን Chrome በማስተዋወቅ ላይ</translation>
 <translation id="2086652334978798447">በGoogle የሚጠቆም ግላዊነት የተላበሰ ይዘትን ለማግኘት በመለያ ወደ Chrome ይግቡ።</translation>
 <translation id="2091887806945687916">ድምፅ</translation>
 <translation id="209354263896846928">በእርስዎ የማያ ገጽ ግርጌ ላይ ያለውን የአድራሻ አሞሌ ይድረሱበት</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">በራስ-ግባ</translation>
 <translation id="2111511281910874386">ወደዚህ ገጽ ይሂዱ</translation>
 <translation id="2122601567107267586">መተግበሪያውን መክፈት አልተቻለም</translation>
-<translation id="2123074103454259350">ቆይ ገና</translation>
 <translation id="2126426811489709554">በChrome የጎለበተ</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> ተቀምጧል</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> ተዘግቷል</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">ካርትን ያርትዑ</translation>
 <translation id="2154710561487035718">URL ቅዳ</translation>
 <translation id="2156074688469523661">ቀሪ ጣቢያዎች (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">አዲሱን Chrome ለምን እንዳጠፉት ይንገሩን</translation>
-<translation id="2185784955520093231">አዲሱን Chrome እየተጠቀሙ ነው</translation>
 <translation id="219985413780390209">እርስዎን እና መሣሪያዎን ከአደገኛ ጣቢያዎች ይጠብቃል</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />፣ የድር መተግበሪያ። <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">እንደ <ph name="USER_FULL_NAME" /> ሆነው ይቀጥሉ</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome ይህን ገጽ ለእርስዎ ለማሳየት ያነሰ ውሂብ በመጠቀም ላይ ነው</translation>
 <translation id="2888126860611144412">ስለChrome</translation>
 <translation id="2891154217021530873">ገጹን መጫን አቁም</translation>
-<translation id="2892933203342091350">በሁሉም ጽሑፎች ላይ የተቃለለ እይታን ያንቁ</translation>
 <translation id="2900528713135656174">ክስተት ፍጠር</translation>
 <translation id="2902702728133930130">Chrome ባልተጠበቀ ስህተት ምክንያት ሊጀምር አልቻለም።</translation>
 <translation id="2903493209154104877">አድራሻዎች</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">የሶስተኛ ወገን የድርጣቢያዎች የኩኪ ውሂብን ማስቀመጥ እና ማንበብ ይችላሉ</translation>
 <translation id="3662546969139119822">እዚህ ምንም ታሪክ የለም</translation>
 <translation id="3672452749423051839">የአሰሳ ስህተት ጥቆማ አስተያየቶች</translation>
-<translation id="3682249951633602029">የእርስዎ የይለፍ ቃላት ወደ ውጭ የተላከውን የይለፍ ቃላት ፋይሉን መመልከት ለሚችል ማንኛውም ሰው የሚታዩ ይሆናሉ።</translation>
 <translation id="3712575778697986964">ውሂብ ቆጣቢ ዳግም ይጀመር?</translation>
 <translation id="3714981814255182093">የአግኝ አሞሌን ክፈት</translation>
 <translation id="3716182511346448902">ይህ ገጽ በጣም ብዙ ማህደረ ትውስታን ይጠቀማል፣ ስለዚህ Chrome ባለበት አቁሞታል።</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> ጊባ ወርዷል</translation>
 <translation id="654446541061731451">በሞገድ የሚለቅቁት ትር ይምረጡ</translation>
 <translation id="6545017243486555795">ሁሉንም ውሂብ አጽዳ</translation>
-<translation id="6550675742724504774">አማራጮች</translation>
 <translation id="6556716549745717622">ጣቢያ ጣልቃ ገቢ ማስታወቂያዎችን የማሳየት አዝማሚያ ካለው አግድ (የሚመከር)</translation>
 <translation id="6560414384669816528">ከSogou ጋር ይፈልጉ</translation>
 <translation id="6566259936974865419">Chrome <ph name="GIGABYTES" /> ጊባ ቆጥቦልዎታል</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">የይለፍ ቃልዎን ለመቅዳት ይክፈቱ</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d ክፍት ትር}one{%1$d ክፍት ትሮች}other{%1$d ክፍት ትሮች}}</translation>
 <translation id="6896758677409633944">ቅዳ</translation>
-<translation id="6905163627763043954">ሞክረው</translation>
 <translation id="6910211073230771657">ተሰርዟል</translation>
 <translation id="6945221475159498467">ይምረጡ</translation>
 <translation id="6959661084585705671">ሁለተኛ ማከማቻ</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">የአስተያየት ጥቆማዎችን ማግኘት አልተቻለም</translation>
 <translation id="7562080006725997899">የአሰሳ ውሂብን በማጽዳት ላይ</translation>
 <translation id="756809126120519699">የChrome ውሂብ ጸድቷል</translation>
-<translation id="7581273696622423628">አጠቃላይ ጥናት ላይ ይሳተፉ</translation>
 <translation id="7588950540487816470">አካላዊ ድር</translation>
 <translation id="7589445247086920869">አሁን ላለው የፍለጋ ፕሮግራም አግድ</translation>
 <translation id="7593557518625677601">የChrome ስምረትን ለመጀመር የAndroid ቅንብሮችን ይክፈቱና የAndroid ስርዓት ስምረትን ዳግም ያንቁ</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">ስምረት እየሠራ አይደለም</translation>
 <translation id="7612619742409846846">እንደሚከተለው ሆነው ወደ Google ይግቡ፦</translation>
 <translation id="7619072057915878432">በአውታረ መረብ ችግሮች ምክንያት <ph name="FILE_NAME" />ን ማውረድ አልተሳካም።</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />ቀለል ያለ የሚያስሱበት መንገድ<ph name="END_LINK" /> ይሞክሩ</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />እገዛን ያግኙ<ph name="END_LINK1" /> ወይም <ph name="BEGIN_LINK2" />ዳግም ይቃኙ<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">ወደ Chrome እንኳን ደህና መጡ</translation>
 <translation id="7638584964844754484">ትክክል ያልሆነ የይለፍ ሐረግ</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">ምርጫ ሰርዝ</translation>
 <translation id="784934925303690534">የጊዜ ወሰን</translation>
 <translation id="7851858861565204677">ሌሎች መሣሪያዎች</translation>
-<translation id="785312750761189439">የታዋቂ ጣቢያዎች እና ጽሑፎች፣ ውርዶች እና ተጨማሪ ነገሮች ቀላል መዳረሻ ለማግኘት ከማያ ገጹ ታችኛው ክፍል ወደ ላይ ያንሸራትቱ</translation>
 <translation id="7875915731392087153">ኢሜይል ይፍጠሩ</translation>
 <translation id="7876243839304621966">ሁሉንም አስወግድ</translation>
 <translation id="7882131421121961860">ምንም ታሪክ አልተገኘም</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
index 674466c3..daed5621 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ar">
 <translation id="1006017844123154345">فتح عبر الإنترنت</translation>
-<translation id="1036348656032585052">إيقاف</translation>
 <translation id="1036727731225946849">جارٍ إضافة <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">من المواقع الإلكترونية</translation>
 <translation id="1049743911850919806">التصفح المتخفي</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">عدم ترجمة هذا الموقع مطلقًا</translation>
 <translation id="1291207594882862231">محو السجل وملفات تعريف الارتباط وبيانات المواقع وذاكرة التخزين المؤقت...</translation>
 <translation id="129553762522093515">المغلقة حديثًا</translation>
-<translation id="1320663236730331991">ما عليك سوى التمرير سريعًا لأعلى للوصول بسهولة إلى المواقع والمقالات والتنزيلات الرائجة وغيرها</translation>
 <translation id="1326317727527857210">‏للحصول على علامات التبويب من أجهزتك الأخرى، سجّل الدخول إلى Chrome.</translation>
 <translation id="1332501820983677155">‏اختصارات ميزات Google Chrome</translation>
 <translation id="136248372334525878">التحميل المسبق للصفحات للحصول على تحميل أسرع والقراءة بلا اتصال بالإنترنت</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">تطبيقات أخرى بحجم <ph name="GIGABYTES" /> غيغابايت</translation>
 <translation id="2079545284768500474">تراجع</translation>
 <translation id="2082238445998314030">النتيجة <ph name="RESULT_NUMBER" /> من <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">‏إليك متصفّح Chrome الجديد</translation>
 <translation id="2086652334978798447">‏للحصول على محتوى مخصص اقترحته Google، سجِّلْ الدخول إلى Chrome.</translation>
 <translation id="2091887806945687916">الصوت</translation>
 <translation id="209354263896846928">الوصول إلى شريط العناوين في أسفل الشاشة</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">تسجيل الدخول التلقائي</translation>
 <translation id="2111511281910874386">الانتقال إلى الصفحة</translation>
 <translation id="2122601567107267586">تعذر فتح التطبيق</translation>
-<translation id="2123074103454259350">ليس الآن</translation>
 <translation id="2126426811489709554">‏يدعمها Chrome</translation>
 <translation id="2131665479022868825">تم توفير <ph name="DATA" /></translation>
 <translation id="213279576345780926">تم إغلاق <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">تعديل البطاقة</translation>
 <translation id="2154710561487035718">‏نسخ عنوان URL</translation>
 <translation id="2156074688469523661">المواقع المتبقية (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">‏أخبرنا عن سبب إيقاف تشغيل متصفّح Chrome الجديد</translation>
-<translation id="2185784955520093231">‏أنت تستخدم متصفّح Chrome الجديد</translation>
 <translation id="219985413780390209">حمايتك وحماية جهازك من المواقع الخطرة</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />، تطبيق ويب. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">متابعة باسم <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">‏يستخدم Chrome بيانات أقل لعرض هذه الصفحة لك</translation>
 <translation id="2888126860611144412">‏حول Chrome</translation>
 <translation id="2891154217021530873">إيقاف تحميل الصفحة</translation>
-<translation id="2892933203342091350">تفعيل العرض المبسَّط في جميع المقالات</translation>
 <translation id="2900528713135656174">إنشاء حدث</translation>
 <translation id="2902702728133930130">‏تعذّر Chrome أثناء بدء التشغيل بسبب خطأ غير متوقع.</translation>
 <translation id="2903493209154104877">العناوين</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">يمكن للمواقع الإلكترونية التابعة لجهات خارجية حفظ بيانات ملفات تعريف الارتباط وقراءتها</translation>
 <translation id="3662546969139119822">لا يوجد سجلّ هنا</translation>
 <translation id="3672452749423051839">اقتراحات أخطاء التنقل</translation>
-<translation id="3682249951633602029">ستكون كلمات مرورك مرئية لأي شخص يمكنه الاطلاع على ملف كلمات المرور الذي تم تصديره.</translation>
 <translation id="3712575778697986964">أترغب في إعادة ضبط توفير البيانات؟</translation>
 <translation id="3714981814255182093">فتح شريط البحث</translation>
 <translation id="3716182511346448902">‏تستهلك هذه الصفحة مساحة كبيرة من الذاكرة، لذلك أوقفها Chrome مؤقتًا.</translation>
@@ -619,7 +611,6 @@
 <translation id="6538442820324228105">تم التنزيل بحجم <ph name="GBS" /> غيغابايت</translation>
 <translation id="654446541061731451">حدد علامة تبويب لإرسالها باستخدام الشعاع</translation>
 <translation id="6545017243486555795">مسح جميع البيانات</translation>
-<translation id="6550675742724504774">خيارات</translation>
 <translation id="6556716549745717622">الحظر إذا كان موقع الويب يميل إلى عرض إعلانات متداخلة (مستحسن)</translation>
 <translation id="6560414384669816528">‏البحث باستخدام Sogou</translation>
 <translation id="6566259936974865419">‏لقد وفر Chrome لك <ph name="GIGABYTES" /> غيغابايت</translation>
@@ -663,7 +654,6 @@
 <translation id="6891726759199484455">إلغاء القفل لنسخ كلمة المرور</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{‏علامة تبويب واحدة (%1$d) مفتوحة}zero{‏%1$d علامة تبويب مفتوحة}two{‏علامتا تبويب (%1$d) مفتوحتان}few{‏%1$d علامات تبويب مفتوحة}many{‏%1$d علامة تبويب مفتوحة}other{‏%1$d علامة تبويب مفتوحة}}</translation>
 <translation id="6896758677409633944">نسخ</translation>
-<translation id="6905163627763043954">جرّبه</translation>
 <translation id="6910211073230771657">تم الحذف</translation>
 <translation id="6945221475159498467">تحديد</translation>
 <translation id="6959661084585705671">سعة التخزين الثانوية</translation>
@@ -728,7 +718,6 @@
 <translation id="7542481630195938534">يتعذر الحصول على الاقتراحات</translation>
 <translation id="7562080006725997899">جارٍ محو بيانات التصفح</translation>
 <translation id="756809126120519699">‏بيانات Chrome التي تم محوها</translation>
-<translation id="7581273696622423628">المشاركة في استطلاع الرأي</translation>
 <translation id="7588950540487816470">الشبكة المادية</translation>
 <translation id="7589445247086920869">حظر محرك البحث الحالي</translation>
 <translation id="7593557518625677601">‏فتح إعدادات Android وإعادة تمكين مزامنة نظام Android لبدء مزامنة Chrome</translation>
@@ -737,7 +726,6 @@
 <translation id="7605594153474022051">المزامنة لا تعمل</translation>
 <translation id="7612619742409846846">‏تسجيل الدخول إلى Google باسم</translation>
 <translation id="7619072057915878432">تعذّر تنزيل الملف <ph name="FILE_NAME" /> بسبب إخفاقات الشبكة.</translation>
-<translation id="7620146066550602128">تجربة <ph name="BEGIN_LINK" />طريقة أسهل للتصفّح<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />الحصول على مساعدة<ph name="END_LINK1" /> أو <ph name="BEGIN_LINK2" />إعادة الفحص<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">‏مرحبًا بك في Chrome‏</translation>
 <translation id="7638584964844754484">عبارة مرور غير صحيحة</translation>
@@ -762,8 +750,6 @@
 <translation id="7846076177841592234">إلغاء التحديد</translation>
 <translation id="784934925303690534">النطاق الزمني</translation>
 <translation id="7851858861565204677">أجهزة أخرى</translation>
-<translation id="785312750761189439">ما عليك سوى التمرير سريعًا من أسفل الشاشة إلى أعلاها أو النقر على زر التوسيع للوصول بسهولة إلى التنزيلات والمواقع 
- الإلكترونية والمقالات الرائجة وغيرها</translation>
 <translation id="7875915731392087153">إنشاء بريد إلكتروني</translation>
 <translation id="7876243839304621966">إزالة الكل</translation>
 <translation id="7882131421121961860">لم يتم العثور على أي سجلّ</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
index b89a0f0..f48612eb 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="bg">
 <translation id="1006017844123154345">Отваряне онлайн</translation>
-<translation id="1036348656032585052">Изключване</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> се добавя...</translation>
 <translation id="1041308826830691739">От уебсайтове</translation>
 <translation id="1049743911850919806">„Инкогнито“</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Този сайт да не се превежда никога</translation>
 <translation id="1291207594882862231">Изчистване на историята, „бисквитките“, данните за сайтове и кеша…</translation>
 <translation id="129553762522093515">Наскоро затворени</translation>
-<translation id="1320663236730331991">Прекарайте пръст нагоре за лесен достъп до популярни сайтове и статии, изтеглени файлове и още много други неща</translation>
 <translation id="1326317727527857210">Влезте в Chrome, за да получите разделите си от другите си устройства.</translation>
 <translation id="1332501820983677155">Комбинации за функции на Google Chrome</translation>
 <translation id="136248372334525878">Предварително зареждане на страниците с цел по-бързо отваряне и четене офлайн</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Други приложения: <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="2079545284768500474">Отмяна</translation>
 <translation id="2082238445998314030">Резултат <ph name="RESULT_NUMBER" /> от <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Представяме ви новата версия на Chrome</translation>
 <translation id="2086652334978798447">За да получавате персонализирано съдържание, предлагано от Google, влезте в Chrome.</translation>
 <translation id="2091887806945687916">Звук</translation>
 <translation id="209354263896846928">Осъществявайте достъп до адресната лента от долната част на екрана</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Автоматичен вход</translation>
 <translation id="2111511281910874386">Към страницата</translation>
 <translation id="2122601567107267586">Приложението не можа да бъде отворено</translation>
-<translation id="2123074103454259350">Още не</translation>
 <translation id="2126426811489709554">Предоставено от Chrome</translation>
 <translation id="2131665479022868825">Спестихте <ph name="DATA" /></translation>
 <translation id="213279576345780926">Затворихте „<ph name="TAB_TITLE" />“</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Редактиране на картата</translation>
 <translation id="2154710561487035718">Копиране на URL адреса</translation>
 <translation id="2156074688469523661">Останали сайтове (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Кажете ни защо изключихте новата версия на Chrome</translation>
-<translation id="2185784955520093231">Използвате новата версия на Chrome</translation>
 <translation id="219985413780390209">Защита от опасни сайтове за вас и устройството ви</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, уеб приложение. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Продължаване като <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome използва по-малко данни, за да ви покаже тази страница</translation>
 <translation id="2888126860611144412">Всичко за Chrome</translation>
 <translation id="2891154217021530873">Спиране на зареждането на страницата</translation>
-<translation id="2892933203342091350">Активиране на опростения изглед за всички статии</translation>
 <translation id="2900528713135656174">Създайте събитие</translation>
 <translation id="2902702728133930130">Стартирането на Chrome не бе успешно поради неочаквана грешка.</translation>
 <translation id="2903493209154104877">Адреси</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Уебсайтовете на трети страни могат да запазват „бисквитки“ и да четат данни от такива</translation>
 <translation id="3662546969139119822">Тук няма история</translation>
 <translation id="3672452749423051839">Предложения в случай на грешки при сърфиране</translation>
-<translation id="3682249951633602029">Паролите ви ще бъдат видими за всички, които могат да видят съответния експортиран файл.</translation>
 <translation id="3712575778697986964">Да се нулира ли статистиката от Икономия на данни?</translation>
 <translation id="3714981814255182093">Отваряне на лентата за търсене</translation>
 <translation id="3716182511346448902">Тази страница използва твърде много памет, така че Chrome я постави на пауза.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Изтеглено: <ph name="GBS" /> ГБ</translation>
 <translation id="654446541061731451">Изберете раздел за излъчване</translation>
 <translation id="6545017243486555795">Изчистване на всички данни</translation>
-<translation id="6550675742724504774">Опции</translation>
 <translation id="6556716549745717622">Блокиране, ако на сайта обикновено се показват натрапчиви реклами (препоръчително)</translation>
 <translation id="6560414384669816528">Търсене със Sogou</translation>
 <translation id="6566259936974865419">Chrome ви спести <ph name="GIGABYTES" /> ГБ</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Отключете, за да копирате паролата си</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d отворен раздел}other{%1$d отворени раздела}}</translation>
 <translation id="6896758677409633944">Копиране</translation>
-<translation id="6905163627763043954">Изпробвайте</translation>
 <translation id="6910211073230771657">Изтрито</translation>
 <translation id="6945221475159498467">Изберете</translation>
 <translation id="6959661084585705671">Вторично хранилище</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Предложенията не могат да бъдат показани</translation>
 <translation id="7562080006725997899">Данните за сърфирането се изчистват</translation>
 <translation id="756809126120519699">Данните в Chrome са изчистени</translation>
-<translation id="7581273696622423628">Участие в анкетата</translation>
 <translation id="7588950540487816470">Физическа мрежа</translation>
 <translation id="7589445247086920869">Блокиране за текущата търсеща машина</translation>
 <translation id="7593557518625677601">За старт на синхронизирането активирайте системното синхронизиране на Android</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Синхронизирането не работи</translation>
 <translation id="7612619742409846846">Влезли сте в Google като</translation>
 <translation id="7619072057915878432">Изтеглянето на „<ph name="FILE_NAME" />“ не бе успешно поради грешки в мрежата.</translation>
-<translation id="7620146066550602128">Изпробвайте <ph name="BEGIN_LINK" />по-лесен начин за сърфиране<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Получете помощ<ph name="END_LINK1" /> или <ph name="BEGIN_LINK2" />сканирайте отново<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Добре дошли в Chrome</translation>
 <translation id="7638584964844754484">Неправилен пропуск</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Анулиране на избора</translation>
 <translation id="784934925303690534">Период от време</translation>
 <translation id="7851858861565204677">Други устройства</translation>
-<translation id="785312750761189439">Прекарайте пръст нагоре от долната част на екрана или докоснете бутона за разгъване, за да осъществите лесен достъп до популярни сайтове и статии, изтеглени файлове и ощe много други неща</translation>
 <translation id="7875915731392087153">Създайте имейл</translation>
 <translation id="7876243839304621966">Премахване на всички</translation>
 <translation id="7882131421121961860">Няма намерена история</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
index 5394316..5bfec97 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ca">
 <translation id="1006017844123154345">Obre en línia</translation>
-<translation id="1036348656032585052">Desactiva</translation>
 <translation id="1036727731225946849">S'està afegint <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De llocs web</translation>
 <translation id="1049743911850919806">Incògnit</translation>
@@ -16,7 +15,7 @@
 <translation id="1145536944570833626">Suprimeix les dades existents.</translation>
 <translation id="1146678959555564648">Activa el mode RV</translation>
 <translation id="116280672541001035">Dades utilitzades</translation>
-<translation id="1178581264944972037">Pausa</translation>
+<translation id="1178581264944972037">Posa en pausa</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
 <translation id="1197267115302279827">Mou les adreces d'interès</translation>
 <translation id="119944043368869598">Esborra-ho tot</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">No tradueixis mai aquest lloc</translation>
 <translation id="1291207594882862231">Esborra l'historial, les galetes, les dades del lloc, la memòria cau, etc.</translation>
 <translation id="129553762522093515">Tancades recentment</translation>
-<translation id="1320663236730331991">Llisca cap amunt per accedir fàcilment a articles i llocs web populars, a baixades i a moltes altres coses</translation>
 <translation id="1326317727527857210">Inicieu la sessió a Chrome per accedir a les vostres pestanyes des dels altres dispositius que tingueu.</translation>
 <translation id="1332501820983677155">Dreceres per a funcions de Google Chrome</translation>
 <translation id="136248372334525878">Carrega les pàgines prèviament perquè es mostrin més ràpid i per poder llegir-les sense connexió</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB en altres aplicacions</translation>
 <translation id="2079545284768500474">Desfés</translation>
 <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Et presentem la nova versió de Chrome</translation>
 <translation id="2086652334978798447">Inicia la sessió a Chrome perquè Google et suggereixi contingut personalitzat</translation>
 <translation id="2091887806945687916">So</translation>
 <translation id="209354263896846928">Accedeix a la barra d'adreces que hi ha a la part inferior de la pantalla</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Inici de sessió automàtic</translation>
 <translation id="2111511281910874386">Ves a la pàgina</translation>
 <translation id="2122601567107267586">L'aplicació no s'ha pogut obrir</translation>
-<translation id="2123074103454259350">Encara no</translation>
 <translation id="2126426811489709554">Amb tecnologia de Chrome</translation>
 <translation id="2131665479022868825">Dades estalviades: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Pestanya <ph name="TAB_TITLE" /> tancada</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Edita la targeta</translation>
 <translation id="2154710561487035718">Copia l'URL</translation>
 <translation id="2156074688469523661">Llocs restants (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Explica'ns per què has desactivat la nova versió de Chrome</translation>
-<translation id="2185784955520093231">Fas servir la nova versió de Chrome</translation>
 <translation id="219985413780390209">Protegeix-me a mi i al meu dispositiu de llocs web perillosos</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, aplicació web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continua com a <ph name="USER_FULL_NAME" /></translation>
@@ -205,8 +199,7 @@
 <translation id="2874939134665556319">Pista anterior</translation>
 <translation id="2876764156902388290">Chrome utilitza menys dades per mostrar-te aquesta pàgina</translation>
 <translation id="2888126860611144412">Sobre Chrome</translation>
-<translation id="2891154217021530873">Atura la pujada de la pàgina</translation>
-<translation id="2892933203342091350">Activa la visualització simplificada en tots els articles</translation>
+<translation id="2891154217021530873">Atura la càrrega de la pàgina</translation>
 <translation id="2900528713135656174">Crea un esdeveniment</translation>
 <translation id="2902702728133930130">S'ha produït un error inesperat amb Chrome durant l'arrencada.</translation>
 <translation id="2903493209154104877">Adreces</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Els llocs web de tercers poden desar i llegir les dades de les galetes</translation>
 <translation id="3662546969139119822">L'historial és buit</translation>
 <translation id="3672452749423051839">Suggeriments d'errors de navegació</translation>
-<translation id="3682249951633602029">Tothom que pugui veure el fitxer de contrasenyes exportat podrà veure també les teves contrasenyes.</translation>
 <translation id="3712575778697986964">Vols restablir l'extensió Economitzador de dades?</translation>
 <translation id="3714981814255182093">Obre la Barra de cerca</translation>
 <translation id="3716182511346448902">Com que aquesta pàgina fa servir massa memòria, Chrome l'ha posat en pausa.</translation>
@@ -576,7 +568,7 @@
 <translation id="6165508094623778733">Més informació</translation>
 <translation id="6177111841848151710">S'ha bloquejat per al motor de cerca actual</translation>
 <translation id="6177390657002841081">Activa l'Economitzador de dades</translation>
-<translation id="6181444274883918285">Afegeix una excepció per a un lloc</translation>
+<translation id="6181444274883918285">Afegeix una excepció per a un lloc web</translation>
 <translation id="618555311922999635">El tauler de navegació ocupa tota la pantalla</translation>
 <translation id="6192792657125177640">Excepcions</translation>
 <translation id="6210748933810148297">No ets <ph name="EMAIL" />?</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">S'han baixat <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Trieu una pestanya per compartir-la.</translation>
 <translation id="6545017243486555795">Esborra totes les dades</translation>
-<translation id="6550675742724504774">Opcions</translation>
 <translation id="6556716549745717622">Bloqueja si el lloc web acostuma a mostrar anuncis intrusius (opció recomanada)</translation>
 <translation id="6560414384669816528">Cerca amb Sogou</translation>
 <translation id="6566259936974865419">Chrome t'ha estalviat <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Desbloqueja la pantalla per copiar la contrasenya</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d pestanya oberta}other{%1$d pestanyes obertes}}</translation>
 <translation id="6896758677409633944">Copia</translation>
-<translation id="6905163627763043954">Prova-la</translation>
 <translation id="6910211073230771657">Suprimit</translation>
 <translation id="6945221475159498467">Selecciona</translation>
 <translation id="6959661084585705671">Emmagatzematge secundari</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">No es poden obtenir suggeriments</translation>
 <translation id="7562080006725997899">S'estan esborrant les dades de navegació</translation>
 <translation id="756809126120519699">S'han esborrat les dades de Chrome</translation>
-<translation id="7581273696622423628">Ves a l'enquesta</translation>
 <translation id="7588950540487816470">El Web físic</translation>
 <translation id="7589445247086920869">Bloqueja per al motor de cerca actual</translation>
 <translation id="7593557518625677601">Obre la configuració d'Android i torna a activar la sincronització del sistema Android per començar la sincronització de Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">La sincronització no funciona</translation>
 <translation id="7612619742409846846">Heu iniciat la sessió a Google com a</translation>
 <translation id="7619072057915878432">No s'ha pogut baixar <ph name="FILE_NAME" /> a causa d'errors a la xarxa.</translation>
-<translation id="7620146066550602128">Prova una <ph name="BEGIN_LINK" />manera més fàcil de navegar<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obtén ajuda<ph name="END_LINK1" /> o <ph name="BEGIN_LINK2" />torna a fer la cerca<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Us donem la benvinguda a Chrome</translation>
 <translation id="7638584964844754484">La frase de contrasenya és incorrecta</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Cancel·la la selecció</translation>
 <translation id="784934925303690534">Interval de temps</translation>
 <translation id="7851858861565204677">Altres dispositius</translation>
-<translation id="785312750761189439">Llisca cap amunt des de la part inferior de la pantalla o toca el botó de desplegar per accedir fàcilment a articles i llocs web populars, a baixades i a moltes altres coses</translation>
 <translation id="7875915731392087153">Crea una adreça electrònica</translation>
 <translation id="7876243839304621966">Suprimeix-ho tot</translation>
 <translation id="7882131421121961860">No s'ha trobat cap historial</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
index 5f31f36e..9446e2f3 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="cs">
 <translation id="1006017844123154345">Otevřít online</translation>
-<translation id="1036348656032585052">Vypnout</translation>
 <translation id="1036727731225946849">Přidávání aplikace <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Z webů</translation>
 <translation id="1049743911850919806">Anonymní režim</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Tento web nikdy nepřekládat</translation>
 <translation id="1291207594882862231">Vymazat historii, soubory cookie, data webů, mezipaměť…</translation>
 <translation id="129553762522093515">Nedávno zavřené</translation>
-<translation id="1320663236730331991">Přejetím prstem nahoru snadno otevřete oblíbené weby a články, soubory ke stažení a mnoho dalšího.</translation>
 <translation id="1326317727527857210">Chcete-li získat přístup ke kartám ze svých ostatních zařízení, přihlaste se do Chromu.</translation>
 <translation id="1332501820983677155">Zkratky funkcí prohlížeče Google Chrome</translation>
 <translation id="136248372334525878">Načítat stránky předem kvůli rychlejšímu načítání a čtení offline</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Ostatní aplikace: <ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474" />
 <translation id="2082238445998314030">Výsledek <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Představujeme vám nový Chrome</translation>
 <translation id="2086652334978798447">Chcete-li od Googlu získat personalizované návrhy obsahu, přihlaste se do Chromu.</translation>
 <translation id="2091887806945687916">Zvuk</translation>
 <translation id="209354263896846928">Adresní řádek najdete v dolní části obrazovky</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Přihlásit se automaticky</translation>
 <translation id="2111511281910874386">Přejít na stránku</translation>
 <translation id="2122601567107267586">Aplikaci nelze otevřít</translation>
-<translation id="2123074103454259350">Zatím ne</translation>
 <translation id="2126426811489709554">Používá technologii Chrome</translation>
 <translation id="2131665479022868825">Uspořeno: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Karta <ph name="TAB_TITLE" /> byla zavřena.</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Úprava karty</translation>
 <translation id="2154710561487035718">Kopírovat adresu URL</translation>
 <translation id="2156074688469523661">Zbývající weby (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Sdělte nám, proč jste nový Chrome vypnuli</translation>
-<translation id="2185784955520093231">Používáte nový Chrome</translation>
 <translation id="219985413780390209">Chránit mě i mé zařízení před nebezpečnými weby</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, webová aplikace <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Pokračovat jako uživatel <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome tuto stránku zobrazuje s menším využitím dat</translation>
 <translation id="2888126860611144412">O aplikaci Chrome</translation>
 <translation id="2891154217021530873">Zastavit načítání stránky</translation>
-<translation id="2892933203342091350">Povolit zjednodušené zobrazení ve všech článcích</translation>
 <translation id="2900528713135656174">Vytvořit událost</translation>
 <translation id="2902702728133930130">Spuštění Chromu se nezdařilo kvůli neočekávané chybě.</translation>
 <translation id="2903493209154104877">Adresy</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Weby třetích stran mohou ukládat a číst data souborů cookie</translation>
 <translation id="3662546969139119822">Zde žádná historie není</translation>
 <translation id="3672452749423051839">Návrhy při chybách navigace</translation>
-<translation id="3682249951633602029">Vaše hesla uvidí každý, kdo může zobrazit exportovaný soubor s hesly.</translation>
 <translation id="3712575778697986964">Resetovat Spořič dat?</translation>
 <translation id="3714981814255182093">Otevřít lištu Najít</translation>
 <translation id="3716182511346448902">Tato stránka využívá příliš mnoho paměti, proto ji Chrome pozastavil.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Staženo: <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Vyberte kartu, kterou chcete přenést</translation>
 <translation id="6545017243486555795">Vymazat všechna data</translation>
-<translation id="6550675742724504774">Možnosti</translation>
 <translation id="6556716549745717622">Blokovat, pokud web často zobrazuje rušivé reklamy (doporučeno)</translation>
 <translation id="6560414384669816528">Vyhledávat pomocí Sogou</translation>
 <translation id="6566259936974865419">Chrome vám ušetřil <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Chcete-li zkopírovat heslo, odemkněte zařízení</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d otevřená karta}few{%1$d otevřené karty}many{%1$d otevřené karty}other{%1$d otevřených karet}}</translation>
 <translation id="6896758677409633944">Kopírovat</translation>
-<translation id="6905163627763043954">Vyzkoušet</translation>
 <translation id="6910211073230771657">Smazáno</translation>
 <translation id="6945221475159498467">Vybrat</translation>
 <translation id="6959661084585705671">Sekundární úložiště</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Návrhy nelze načíst</translation>
 <translation id="7562080006725997899">Mazání údajů o prohlížení</translation>
 <translation id="756809126120519699">Vymazání údajů Chromu</translation>
-<translation id="7581273696622423628">Zúčastnit se průzkumu</translation>
 <translation id="7588950540487816470">Fyzický web</translation>
 <translation id="7589445247086920869">Blokovat pro aktuální vyhledávač</translation>
 <translation id="7593557518625677601">Chcete-li spustit synchronizaci Chromu, povolte synchronizaci systému Android.</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synchronizace nefunguje</translation>
 <translation id="7612619742409846846">Jste přihlášeni do Googlu jako</translation>
 <translation id="7619072057915878432">Stahování souboru <ph name="FILE_NAME" /> se nezdařilo z důvodu selhání sítě.</translation>
-<translation id="7620146066550602128">Vyzkoušejte <ph name="BEGIN_LINK" />snazší způsob procházení<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Prohlédněte si nápovědu<ph name="END_LINK1" /> nebo zařízení <ph name="BEGIN_LINK2" />vyhledejte znovu<ph name="END_LINK2" />.</translation>
 <translation id="7626032353295482388">Vítá vás Chrome</translation>
 <translation id="7638584964844754484">Nesprávná heslová fráze</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Zrušit výběr</translation>
 <translation id="784934925303690534">Časové období</translation>
 <translation id="7851858861565204677">Jiná zařízení</translation>
-<translation id="785312750761189439">K populárním webům a článkům, staženým souborům a dalším položkám se snadno dostanete přejetím prstem nahoru z dolního okraje obrazovky nebo klepnutím na rozbalovací tlačítko.</translation>
 <translation id="7875915731392087153">Vytvořit e-mail</translation>
 <translation id="7876243839304621966">Odstranit vše</translation>
 <translation id="7882131421121961860">Nebyla nalezena žádná historie</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
index b2ed21e..a7a1760 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="da">
 <translation id="1006017844123154345">Åbn på nettet</translation>
-<translation id="1036348656032585052">Deaktiver</translation>
 <translation id="1036727731225946849">Tilføjer <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Fra websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Oversæt aldrig dette website</translation>
 <translation id="1291207594882862231">Ryd historik, cookies, websitedata, cache...</translation>
 <translation id="129553762522093515">Senest lukkede</translation>
-<translation id="1320663236730331991">Stryg opad for at få hurtig adgang til populære websites og artikler, downloads og meget mere</translation>
 <translation id="1326317727527857210">Log ind på Chrome for at få adgang til dine faner på dine andre enheder.</translation>
 <translation id="1332501820983677155">Funktionsgenveje i Google Chrome</translation>
 <translation id="136248372334525878">Forudindlæs sider, så de indlæses hurtigere og kan ses offline</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB af andre apps</translation>
 <translation id="2079545284768500474">Fortryd</translation>
 <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> af <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Her er det nye Chrome</translation>
 <translation id="2086652334978798447">Log ind på Chrome for at hente brugertilpasset indhold, som er foreslået af Chrome.</translation>
 <translation id="2091887806945687916">Lyd</translation>
 <translation id="209354263896846928">Du finder adresselinjen nederst på din skærm</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatisk login</translation>
 <translation id="2111511281910874386">Gå til side</translation>
 <translation id="2122601567107267586">Appen kunne ikke åbnes</translation>
-<translation id="2123074103454259350">Ikke endnu</translation>
 <translation id="2126426811489709554">Leveret af Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> gemt</translation>
 <translation id="213279576345780926">Lukkede <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Rediger kort</translation>
 <translation id="2154710561487035718">Kopier webadresse</translation>
 <translation id="2156074688469523661">Tilbageværende websites (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Fortæl os, hvorfor du har deaktiveret det nye Chrome</translation>
-<translation id="2185784955520093231">Du bruger det nye Chrome</translation>
 <translation id="219985413780390209">Beskyt dig selv og din enhed mod farlige websites</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, webapp. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Fortsæt som <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome anvender færre data til at vise dig denne side</translation>
 <translation id="2888126860611144412">Om Chrome</translation>
 <translation id="2891154217021530873">Stop sideindlæsning</translation>
-<translation id="2892933203342091350">Aktivér Enkel visning for alle artikler</translation>
 <translation id="2900528713135656174">Opret begivenhed</translation>
 <translation id="2902702728133930130">Der opstod en uventet fejl under start af Chrome.</translation>
 <translation id="2903493209154104877">Adresser</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Tredjepartswebsites kan gemme og læse cookiedata</translation>
 <translation id="3662546969139119822">Der er ingen historik her</translation>
 <translation id="3672452749423051839">Forslag ved navigationsfejl</translation>
-<translation id="3682249951633602029">Dine adgangskoder vil være synlige for alle, der kan se den eksporterede fil med adgangskoder.</translation>
 <translation id="3712575778697986964">Vil du nulstille Datasparefunktion?</translation>
 <translation id="3714981814255182093">Åbn søgefeltet</translation>
 <translation id="3716182511346448902">Denne side anvender for meget hukommelse, så Chrome har sat den på pause.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Der er downloadet <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Vælg en fane, der skal overføres</translation>
 <translation id="6545017243486555795">Ryd alle data</translation>
-<translation id="6550675742724504774">Valgmuligheder</translation>
 <translation id="6556716549745717622">Blokér, hvis websitet har tendens til at vise påtrængende annoncer (anbefales)</translation>
 <translation id="6560414384669816528">Søg via Sogou</translation>
 <translation id="6566259936974865419">Chrome har sparet dig <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Lås op for at kopiere din adgangskode</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d åben fane}one{%1$d åben fane}other{%1$d åbne faner}}</translation>
 <translation id="6896758677409633944">Kopiér</translation>
-<translation id="6905163627763043954">Prøv det</translation>
 <translation id="6910211073230771657">Slettet</translation>
 <translation id="6945221475159498467">Vælg</translation>
 <translation id="6959661084585705671">Sekundær lagerplads</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Forslagene kan ikke hentes</translation>
 <translation id="7562080006725997899">Browserdata ryddes</translation>
 <translation id="756809126120519699">Chrome-dataene blev ryddet</translation>
-<translation id="7581273696622423628">Deltag i undersøgelsen</translation>
 <translation id="7588950540487816470">Fysisk web</translation>
 <translation id="7589445247086920869">Bloker for den aktuelle søgemaskine</translation>
 <translation id="7593557518625677601">Åbn Android-indstillinger, og genaktiver synkronisering af Android-systemet for at starte Chrome-synkroniseringen</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synkronisering fungerer ikke</translation>
 <translation id="7612619742409846846">Du er logget ind på Google som</translation>
 <translation id="7619072057915878432">Download af <ph name="FILE_NAME" /> mislykkedes på grund af netværksfejl.</translation>
-<translation id="7620146066550602128">Prøv en <ph name="BEGIN_LINK" />hurtigere søgning<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Få hjælp<ph name="END_LINK1" />, eller <ph name="BEGIN_LINK2" />scan igen<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Velkommen til Chrome</translation>
 <translation id="7638584964844754484">Forkert adgangssætning</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Annuller valg</translation>
 <translation id="784934925303690534">Tidsinterval</translation>
 <translation id="7851858861565204677">Andre enheder</translation>
-<translation id="785312750761189439">Stryg opad fra bunden af skærmen, eller tryk på Udvid-knappen for nemt at få adgang til populære sider og artikler, downloads og meget mere.</translation>
 <translation id="7875915731392087153">Opret e-mail</translation>
 <translation id="7876243839304621966">Fjern alt</translation>
 <translation id="7882131421121961860">Der blev ikke fundet nogen historik</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
index 60d9f72..31994fbf 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="de">
 <translation id="1006017844123154345">Online öffnen</translation>
-<translation id="1036348656032585052">Deaktivieren</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> wird hinzugefügt...</translation>
 <translation id="1041308826830691739">Von Websites</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Diese Website nie übersetzen</translation>
 <translation id="1291207594882862231">Verlauf, Cookies, Websitedaten, Cache leeren…</translation>
 <translation id="129553762522093515">Kürzlich geschlossen</translation>
-<translation id="1320663236730331991">Durch Wischen nach oben erhalten Sie schnellen Zugriff auf beliebte Websites und Artikel, auf Downloads und vieles mehr</translation>
 <translation id="1326317727527857210">Melden Sie sich in Chrome an, um Tabs von Ihren anderen Geräten abzurufen.</translation>
 <translation id="1332501820983677155">Tastenkombinationen für Google Chrome-Funktionen</translation>
 <translation id="136248372334525878">Laden Sie Seiten vorab, um das Laden und Offlinelesen zu beschleunigen</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB sonstiger Apps</translation>
 <translation id="2079545284768500474">Rückgängig machen</translation>
 <translation id="2082238445998314030">Ergebnis <ph name="RESULT_NUMBER" /> von <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Das neue Chrome</translation>
 <translation id="2086652334978798447">Melden Sie sich in Chrome an, um personalisierte, von Google vorgeschlagene Inhalte zu erhalten.</translation>
 <translation id="2091887806945687916">Ton</translation>
 <translation id="209354263896846928">Die Adressleiste befindet sich am unteren Bildschirmrand</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatisch anmelden</translation>
 <translation id="2111511281910874386">Seite aufrufen</translation>
 <translation id="2122601567107267586">App konnte nicht geöffnet werden</translation>
-<translation id="2123074103454259350">Noch nicht</translation>
 <translation id="2126426811489709554">Powered by Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> eingespart</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> geschlossen</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Karte bearbeiten</translation>
 <translation id="2154710561487035718">URL kopieren</translation>
 <translation id="2156074688469523661">Restliche Websites (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Bitte teilen Sie uns mit, warum Sie das neue Chrome deaktiviert haben</translation>
-<translation id="2185784955520093231">Sie verwenden das neue Chrome</translation>
 <translation id="219985413780390209">Mich und mein Gerät vor schädlichen Websites schützen</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, Web-App. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Als <ph name="USER_FULL_NAME" /> fortfahren</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome nutzt weniger Daten zum Anzeigen dieser Seite</translation>
 <translation id="2888126860611144412">Über Google Chrome</translation>
 <translation id="2891154217021530873">Laden der Seite anhalten</translation>
-<translation id="2892933203342091350">Vereinfachte Ansicht in allen Artikeln aktivieren</translation>
 <translation id="2900528713135656174">Termin erstellen</translation>
 <translation id="2902702728133930130">Während des Startvorgangs ist in Chrome ein unerwarteter Fehler aufgetreten.</translation>
 <translation id="2903493209154104877">Adressen</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Websites Dritter können Cookiedaten speichern und lesen.</translation>
 <translation id="3662546969139119822">Kein Verlauf vorhanden</translation>
 <translation id="3672452749423051839">Vorschläge bei Navigationsfehlern</translation>
-<translation id="3682249951633602029">Ihre Passwörter sind für jeden zugänglich, der die exportierte Passwortdatei sehen kann.</translation>
 <translation id="3712575778697986964">Datensparmodus zurücksetzen?</translation>
 <translation id="3714981814255182093">Suchleiste öffnen</translation>
 <translation id="3716182511346448902">Diese Seite benötigt zu viel Arbeitsspeicher und wurde daher von Chrome angehalten.</translation>
@@ -619,7 +611,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB heruntergeladen</translation>
 <translation id="654446541061731451">Tab zum Beamen auswählen</translation>
 <translation id="6545017243486555795">Alle Daten löschen</translation>
-<translation id="6550675742724504774">Optionen</translation>
 <translation id="6556716549745717622">Blockieren, wenn Website für gewöhnlich aufdringliche Werbung anzeigt (empfohlen)</translation>
 <translation id="6560414384669816528">Suche mit Sogou</translation>
 <translation id="6566259936974865419">Dank Chrome haben Sie <ph name="GIGABYTES" /> GB eingespart</translation>
@@ -663,7 +654,6 @@
 <translation id="6891726759199484455">Entsperren, um Ihr Passwort zu kopieren</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d geöffneter Tab}other{%1$d geöffnete Tabs}}</translation>
 <translation id="6896758677409633944">Kopieren</translation>
-<translation id="6905163627763043954">Jetzt ausprobieren</translation>
 <translation id="6910211073230771657">Gelöscht</translation>
 <translation id="6945221475159498467">Auswählen</translation>
 <translation id="6959661084585705671">Sekundärspeicher</translation>
@@ -728,7 +718,6 @@
 <translation id="7542481630195938534">Vorschläge können nicht abgerufen werden</translation>
 <translation id="7562080006725997899">Browserdaten werden gelöscht</translation>
 <translation id="756809126120519699">Gelöschte Chrome-Daten</translation>
-<translation id="7581273696622423628">An Umfrage teilnehmen</translation>
 <translation id="7588950540487816470">Physical Web</translation>
 <translation id="7589445247086920869">Für aktuelle Suchmaschine blockieren</translation>
 <translation id="7593557518625677601">Einstellungen öffnen und Systemsynchr. aktivieren, um Chrome-Synchr. zu starten</translation>
@@ -737,7 +726,6 @@
 <translation id="7605594153474022051">Synchronisierung funktioniert nicht</translation>
 <translation id="7612619742409846846">Bei Google angemeldet als</translation>
 <translation id="7619072057915878432"><ph name="FILE_NAME" /> konnte aufgrund von Netzwerkfehlern nicht heruntergeladen werden.</translation>
-<translation id="7620146066550602128">Testen Sie die <ph name="BEGIN_LINK" />einfachere Art zu browsen<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Hilfe aufrufen<ph name="END_LINK1" /> oder <ph name="BEGIN_LINK2" />noch einmal suchen<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Willkommen bei Chrome</translation>
 <translation id="7638584964844754484">Falsche Passphrase</translation>
@@ -762,7 +750,6 @@
 <translation id="7846076177841592234">Auswahl aufheben</translation>
 <translation id="784934925303690534">Zeitraum</translation>
 <translation id="7851858861565204677">Andere Geräte</translation>
-<translation id="785312750761189439">Wischen Sie vom unteren Bildschirmrand nach oben oder tippen Sie auf die Schaltfläche "Maximieren", um schnell auf beliebte Websites, Artikel und mehr zugreifen zu können</translation>
 <translation id="7875915731392087153">E-Mail erstellen</translation>
 <translation id="7876243839304621966">Alle entfernen</translation>
 <translation id="7882131421121961860">Kein Verlauf gefunden</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
index 64deaaa..e5a08c0 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="el">
 <translation id="1006017844123154345">Άνοιγμα στο διαδίκτυο</translation>
-<translation id="1036348656032585052">Απενεργοποίηση</translation>
 <translation id="1036727731225946849">Προσθήκη <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Από ιστοτόπους</translation>
 <translation id="1049743911850919806">Ανώνυμη περιήγηση</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Να μην γίνεται ποτέ μετάφραση αυτού του ιστότοπου</translation>
 <translation id="1291207594882862231">Διαγραφή ιστορικού, cookie, δεδομένων ιστότοπου, κρυφής μνήμης…</translation>
 <translation id="129553762522093515">Έκλεισαν πρόσφατα</translation>
-<translation id="1320663236730331991">Σύρετε προς τα επάνω, για να αποκτήσετε εύκολα πρόσβαση σε δημοφιλείς ιστοτόπους, άρθρα κ.ά.</translation>
 <translation id="1326317727527857210">Για να εμφανίζονται οι καρτέλες από τις άλλες συσκευές σας, συνδεθείτε στο Chrome.</translation>
 <translation id="1332501820983677155">Συντομεύσεις λειτουργιών Google Chrome</translation>
 <translation id="136248372334525878">Προφόρτωση ιστοσελίδων για ταχύτερη φόρτωση και ανάγνωση εκτός σύνδεσης</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB από άλλες εφαρμογές</translation>
 <translation id="2079545284768500474">Αναίρεση</translation>
 <translation id="2082238445998314030">Αποτέλεσμα <ph name="RESULT_NUMBER" /> από <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Παρουσίαση του νέου Chrome</translation>
 <translation id="2086652334978798447">Για να λάβετε εξατομικευμένο περιεχόμενο που προτείνεται από την Google, συνδεθείτε στο Chrome.</translation>
 <translation id="2091887806945687916">Ήχος</translation>
 <translation id="209354263896846928">Χρησιμοποιήστε τη γραμμή διευθύνσεων στο κάτω μέρος της οθόνης σας</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Αυτόματη σύνδεση</translation>
 <translation id="2111511281910874386">Μετάβαση στη σελίδα</translation>
 <translation id="2122601567107267586">Δεν ήταν δυνατό το άνοιγμα της εφαρμογής</translation>
-<translation id="2123074103454259350">Όχι ακόμη</translation>
 <translation id="2126426811489709554">Με την υποστήριξη του Chrome</translation>
 <translation id="2131665479022868825">Αποθηκεύτηκαν <ph name="DATA" /></translation>
 <translation id="213279576345780926">Η καρτέλα <ph name="TAB_TITLE" /> έκλεισε</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Επεξεργασία κάρτας</translation>
 <translation id="2154710561487035718">Αντιγραφή διεύθυνσης URL</translation>
 <translation id="2156074688469523661">Ιστότοποι που απομένουν (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Πείτε μας γιατί απενεργοποιήσατε το νέο Chrome</translation>
-<translation id="2185784955520093231">Χρησιμοποιείτε το νέο Chrome</translation>
 <translation id="219985413780390209">Προστατεύει εσάς και τη συσκευή σας από επικίνδυνους ιστότοπους</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, εφαρμογή ιστού. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Συνέχεια ως <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Το Chrome χρησιμοποιεί λιγότερα δεδομένα για να εμφανίσει αυτήν τη σελίδα</translation>
 <translation id="2888126860611144412">Σχετικά με το Chrome</translation>
 <translation id="2891154217021530873">Διακοπή φόρτωσης σελίδας</translation>
-<translation id="2892933203342091350">Ενεργοποίηση της απλοποιημένης προβολής σε όλα τα άρθρα</translation>
 <translation id="2900528713135656174">Δημιουργία συμβάντος</translation>
 <translation id="2902702728133930130">Η εκκίνηση του Chrome απέτυχε λόγω ενός μη αναμενόμενου σφάλματος.</translation>
 <translation id="2903493209154104877">Διευθύνσεις</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Οι ιστότοποι τρίτου μέρους μπορούν να αποθηκεύουν και να διαβάζουν δεδομένα cookie</translation>
 <translation id="3662546969139119822">Δεν υπάρχει ιστορικό εδώ</translation>
 <translation id="3672452749423051839">Προτάσεις σφάλματος πλοήγησης</translation>
-<translation id="3682249951633602029">Οι κωδικοί πρόσβασής σας θα είναι ορατοί σε οποιονδήποτε μπορεί να δει το αρχείο εξαγωγής κωδικών πρόσβασης.</translation>
 <translation id="3712575778697986964">Επαναφορά δεδομένων Εξοικονόμησης δεδομένων;</translation>
 <translation id="3714981814255182093">Άνοιγμα της γραμμής εύρεσης</translation>
 <translation id="3716182511346448902">Αυτή η σελίδα χρησιμοποιεί πάρα πολλή μνήμη. Για αυτόν τον λόγο, το Chrome την έθεσε σε παύση.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Έγινε λήψη <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Επιλέξτε μια καρτέλα για ζεύξη</translation>
 <translation id="6545017243486555795">Διαγραφή όλων των δεδομένων</translation>
-<translation id="6550675742724504774">Επιλογές</translation>
 <translation id="6556716549745717622">Αποκλεισμός εάν ο ιστότοπος τείνει να εμφανίζει παρεμβατικές διαφημίσεις (συνιστάται)</translation>
 <translation id="6560414384669816528">Αναζήτηση με το Sogou</translation>
 <translation id="6566259936974865419">Το Chrome έχει εξοικονομήσει <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Ξεκλειδώστε για αντιγραφή του κωδικού πρόσβασης</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d ανοικτή καρτέλα}other{%1$d ανοικτές καρτέλες}}</translation>
 <translation id="6896758677409633944">Αντιγραφή</translation>
-<translation id="6905163627763043954">Δοκιμάστε το</translation>
 <translation id="6910211073230771657">Διαγράφηκε</translation>
 <translation id="6945221475159498467">Επιλογή</translation>
 <translation id="6959661084585705671">Δευτερεύων αποθηκευτικός χώρος</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Δεν είναι δυνατή η λήψη προτάσεων</translation>
 <translation id="7562080006725997899">Διαγραφή δεδομένων περιήγησης</translation>
 <translation id="756809126120519699">Τα δεδομένα του Chrome διαγράφηκαν</translation>
-<translation id="7581273696622423628">Συμμετοχή σε έρευνα</translation>
 <translation id="7588950540487816470">Φυσικό δίκτυο</translation>
 <translation id="7589445247086920869">Αποκλεισμός για την τρέχουσα μηχανή αναζήτησης</translation>
 <translation id="7593557518625677601">Ανοίξτε Ρυθμίσεις Android και ενεργοποιήστε τον συγχρ. συστ. Android για έναρξη Συγχρ. Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Ο συγχρονισμός δεν λειτουργεί</translation>
 <translation id="7612619742409846846">Έχετε συνδεθεί στο Google ως</translation>
 <translation id="7619072057915878432">Η λήψη του αρχείου <ph name="FILE_NAME" /> απέτυχε λόγω προβλημάτων στο δίκτυο.</translation>
-<translation id="7620146066550602128">Δοκιμάστε έναν <ph name="BEGIN_LINK" />ευκολότερο τρόπο περιήγησης<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Λήψη βοήθειας<ph name="END_LINK1" /> ή <ph name="BEGIN_LINK2" />επανάληψη σάρωσης<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Καλώς ήρθατε στο Chrome</translation>
 <translation id="7638584964844754484">Εσφαλμένη φράση πρόσβασης</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Ακύρωση επιλογής</translation>
 <translation id="784934925303690534">Χρονικό εύρος</translation>
 <translation id="7851858861565204677">Άλλες συσκευές</translation>
-<translation id="785312750761189439">Σύρετε το δάχτυλό σας από το κάτω μέρος της οθόνης ή αγγίξτε το κουμπί επέκτασης για να αποκτήσετε εύκολη πρόσβαση σε δημοφιλείς ιστοτόπους και άρθρα, λήψεις και περισσότερα</translation>
 <translation id="7875915731392087153">Δημιουργία μηνύματος ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="7876243839304621966">Κατάργηση όλων</translation>
 <translation id="7882131421121961860">Δεν βρέθηκε ιστορικό</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
index 53da651..81bc731b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="en-GB">
 <translation id="1006017844123154345">Open Online</translation>
-<translation id="1036348656032585052">Turn off</translation>
 <translation id="1036727731225946849">Adding <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">From websites</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Never translate this site</translation>
 <translation id="1291207594882862231">Clear history, cookies, site data, cache…</translation>
 <translation id="129553762522093515">Recently closed</translation>
-<translation id="1320663236730331991">Swipe up for easy access to popular sites and articles, downloads and more</translation>
 <translation id="1326317727527857210">To get your tabs from your other devices, sign in to Chrome.</translation>
 <translation id="1332501820983677155">Google Chrome feature shortcuts</translation>
 <translation id="136248372334525878">Preload pages for faster loading and offline reading</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB other apps</translation>
 <translation id="2079545284768500474">Undo</translation>
 <translation id="2082238445998314030">Result <ph name="RESULT_NUMBER" /> of <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Introducing the new Chrome</translation>
 <translation id="2086652334978798447">To get personalised content suggested by Google, sign in to Chrome.</translation>
 <translation id="2091887806945687916">Sound</translation>
 <translation id="209354263896846928">Access the address bar at the bottom of your screen</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Auto Sign-in</translation>
 <translation id="2111511281910874386">Go to page</translation>
 <translation id="2122601567107267586">Could not open app</translation>
-<translation id="2123074103454259350">Not yet</translation>
 <translation id="2126426811489709554">Powered by Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> saved</translation>
 <translation id="213279576345780926">Closed <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Edit card</translation>
 <translation id="2154710561487035718">Copy URL</translation>
 <translation id="2156074688469523661">Remaining sites (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Tell us why you turned off the new Chrome</translation>
-<translation id="2185784955520093231">You’re using the new Chrome</translation>
 <translation id="219985413780390209">Protect you and your device from dangerous sites</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, web app. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continue as <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome is using less data to show you this page</translation>
 <translation id="2888126860611144412">About Chrome</translation>
 <translation id="2891154217021530873">Stop page loading</translation>
-<translation id="2892933203342091350">Enable simplified view on all articles</translation>
 <translation id="2900528713135656174">Create event</translation>
 <translation id="2902702728133930130">Chrome failed during start-up with an unexpected error.</translation>
 <translation id="2903493209154104877">Addresses</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Third-party websites can save and read cookie data</translation>
 <translation id="3662546969139119822">No history here</translation>
 <translation id="3672452749423051839">Navigation error suggestions</translation>
-<translation id="3682249951633602029">Your passwords will be visible to anyone who can see the exported passwords file.</translation>
 <translation id="3712575778697986964">Reset Data Saver?</translation>
 <translation id="3714981814255182093">Open the Find Bar</translation>
 <translation id="3716182511346448902">This page uses too much memory, so Chrome paused it.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Downloaded <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Select a tab to beam</translation>
 <translation id="6545017243486555795">Clear All Data</translation>
-<translation id="6550675742724504774">Options</translation>
 <translation id="6556716549745717622">Block if site tends to show intrusive ads (recommended)</translation>
 <translation id="6560414384669816528">Search with Sogou</translation>
 <translation id="6566259936974865419">Chrome has saved you <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Unlock to copy your password</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d open tab}other{%1$d open tabs}}</translation>
 <translation id="6896758677409633944">Copy</translation>
-<translation id="6905163627763043954">Try it</translation>
 <translation id="6910211073230771657">Deleted</translation>
 <translation id="6945221475159498467">Select</translation>
 <translation id="6959661084585705671">Secondary storage</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Can’t get suggestions</translation>
 <translation id="7562080006725997899">Clear browsing data</translation>
 <translation id="756809126120519699">Cleared Chrome data</translation>
-<translation id="7581273696622423628">Take survey</translation>
 <translation id="7588950540487816470">Physical Web</translation>
 <translation id="7589445247086920869">Block for current search engine</translation>
 <translation id="7593557518625677601">Open Android settings and re-enable Android system sync to start Chrome sync</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sync isn't working</translation>
 <translation id="7612619742409846846">Signed in to Google as</translation>
 <translation id="7619072057915878432"><ph name="FILE_NAME" /> download failed due to network failures.</translation>
-<translation id="7620146066550602128">Try an <ph name="BEGIN_LINK" />easier way to browse<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Get help<ph name="END_LINK1" /> or <ph name="BEGIN_LINK2" />re-scan<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Welcome to Chrome</translation>
 <translation id="7638584964844754484">Incorrect passphrase</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Cancel selection</translation>
 <translation id="784934925303690534">Time range</translation>
 <translation id="7851858861565204677">Other Devices</translation>
-<translation id="785312750761189439">Swipe up from the bottom of the screen or tap the expand button for easy access to popular sites and articles, downloads and more</translation>
 <translation id="7875915731392087153">Create email</translation>
 <translation id="7876243839304621966">Remove all</translation>
 <translation id="7882131421121961860">No history found</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
index 077846a..818ee6e 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="es-419">
 <translation id="1006017844123154345">Abrir en línea</translation>
-<translation id="1036348656032585052">Desactivar</translation>
 <translation id="1036727731225946849">Agregando <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">De sitios web</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nunca traducir este sitio</translation>
 <translation id="1291207594882862231">Borra el historial, las cookies, los datos del sitio, la caché…</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
-<translation id="1320663236730331991">Desliza el dedo hacia arriba para acceder fácilmente a sitios y artículos populares, descargas y mucho más</translation>
 <translation id="1326317727527857210">Accede a Chrome para obtener las pestañas de tus otros dispositivos.</translation>
 <translation id="1332501820983677155">Accesos directos a las funciones de Google Chrome</translation>
 <translation id="136248372334525878">Carga las páginas previamente para acelerar la carga y leerlas sin conexión</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Otras apps: <ph name="GIGABYTES" /> gigabytes</translation>
 <translation id="2079545284768500474">Deshacer</translation>
 <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Presentamos el nuevo Chrome</translation>
 <translation id="2086652334978798447">Para obtener contenido personalizado y sugerido por Google, accede a tu cuenta en Chrome.</translation>
 <translation id="2091887806945687916">Sonido</translation>
 <translation id="209354263896846928">Accede a la barra de direcciones en la parte inferior de la pantalla</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Acceso automático</translation>
 <translation id="2111511281910874386">Ir a la página</translation>
 <translation id="2122601567107267586">No se pudo abrir la app</translation>
-<translation id="2123074103454259350">Aún no</translation>
 <translation id="2126426811489709554">Con tecnología de Chrome</translation>
 <translation id="2131665479022868825">Datos ahorrados: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Pestaña <ph name="TAB_TITLE" /> cerrada</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Editar tarjeta</translation>
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sitios restantes (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Cuéntanos por qué desactivaste el nuevo Chrome</translation>
-<translation id="2185784955520093231">Estás usando el nuevo Chrome</translation>
 <translation id="219985413780390209">Protegerte a ti y a tu dispositivo contra sitios peligrosos</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" /> (aplicación web), <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuar como <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome usa menos datos para mostrarte esta página</translation>
 <translation id="2888126860611144412">Acerca de Chrome</translation>
 <translation id="2891154217021530873">Detener la carga de la página</translation>
-<translation id="2892933203342091350">Habilitar la vista simplificada en todos los artículos</translation>
 <translation id="2900528713135656174">Crear evento</translation>
 <translation id="2902702728133930130">Se produjo un error inesperado durante el inicio de Chrome.</translation>
 <translation id="2903493209154104877">Direcciones</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Los sitios web de terceros pueden guardar y leer datos de cookies.</translation>
 <translation id="3662546969139119822">Aquí no hay elementos en el historial</translation>
 <translation id="3672452749423051839">Sugerencias relacionadas con errores de navegación</translation>
-<translation id="3682249951633602029">Las personas que tengan acceso al archivo de contraseñas exportado podrán ver tus contraseñas.</translation>
 <translation id="3712575778697986964">¿Deseas restablecer Reducir datos?</translation>
 <translation id="3714981814255182093">Abrir la barra de búsqueda</translation>
 <translation id="3716182511346448902">Chrome pausó esta página porque usa demasiada memoria.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Se descargaron <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Elige una pestaña para transmitir.</translation>
 <translation id="6545017243486555795">Borrar todos los datos</translation>
-<translation id="6550675742724504774">Opciones</translation>
 <translation id="6556716549745717622">Bloquear si el sitio tiende a mostrar anuncios intrusivos (opción recomendada)</translation>
 <translation id="6560414384669816528">Buscar con Sogou</translation>
 <translation id="6566259936974865419">Chrome te permitió ahorrar <ph name="GIGABYTES" /> gigabytes</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Desbloquea la pantalla para copiar tu contraseña</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d pestaña abierta}other{%1$d pestañas abiertas}}</translation>
 <translation id="6896758677409633944">Copiar</translation>
-<translation id="6905163627763043954">Probar la contraseña</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="6945221475159498467">Seleccionar</translation>
 <translation id="6959661084585705671">Almacenamiento secundario</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">No se pueden obtener sugerencias</translation>
 <translation id="7562080006725997899">Borrando datos de navegación</translation>
 <translation id="756809126120519699">Datos de Chrome borrados</translation>
-<translation id="7581273696622423628">Responder encuesta</translation>
 <translation id="7588950540487816470">Web física</translation>
 <translation id="7589445247086920869">Bloquear el motor de búsqueda actual</translation>
 <translation id="7593557518625677601">Para iniciar la Sincronización de Chrome, abre la configuración de Android y vuelve a habilitar la sincronización del sistema Android</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">La sincronización no funciona</translation>
 <translation id="7612619742409846846">Accediste a Google como</translation>
 <translation id="7619072057915878432"><ph name="FILE_NAME" /> no se pudo descargar debido a fallas en la red.</translation>
-<translation id="7620146066550602128">Prueba una <ph name="BEGIN_LINK" />manera más sencilla de navegar<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obtener ayuda<ph name="END_LINK1" /> o <ph name="BEGIN_LINK2" />volver a buscar<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Te damos la bienvenida a Chrome</translation>
 <translation id="7638584964844754484">Frase de contraseña incorrecta</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Cancelar la selección</translation>
 <translation id="784934925303690534">Intervalo de tiempo</translation>
 <translation id="7851858861565204677">Otros dispositivos</translation>
-<translation id="785312750761189439">Desliza desde la parte inferior de la pantalla o presiona el botón de expandir para acceder fácilmente a los sitios y artículos populares, las descargas y más</translation>
 <translation id="7875915731392087153">Crear correo electrónico</translation>
 <translation id="7876243839304621966">Eliminar todo</translation>
 <translation id="7882131421121961860">No se encontraron entradas en el historial</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
index f673a88..091b24f 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="es">
 <translation id="1006017844123154345">Abrir versión online</translation>
-<translation id="1036348656032585052">Desactivar</translation>
 <translation id="1036727731225946849">Añadiendo <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De sitios web</translation>
 <translation id="1049743911850919806">Incógnito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">No traducir nunca este sitio</translation>
 <translation id="1291207594882862231">Borrar el historial, las cookies, los datos de sitios web, la caché…</translation>
 <translation id="129553762522093515">Cerrado recientemente</translation>
-<translation id="1320663236730331991">Desliza el dedo hacia arriba para acceder fácilmente a artículos y sitios web populares, descargas y mucho más.</translation>
 <translation id="1326317727527857210">Inicia sesión en Chrome para ver las pestañas de tus otros dispositivos.</translation>
 <translation id="1332501820983677155">Combinaciones de teclas de funciones de Google Chrome</translation>
 <translation id="136248372334525878">Carga las páginas previamente para mostrarlas más rápido y poder leerlas sin conexión</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de otras aplicaciones</translation>
 <translation id="2079545284768500474">Deshacer</translation>
 <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Presentamos la nueva versión de Chrome</translation>
 <translation id="2086652334978798447">Para obtener contenido personalizado sugerido por Google, inicia sesión en Chrome.</translation>
 <translation id="2091887806945687916">Sonido</translation>
 <translation id="209354263896846928">Accede a la barra de direcciones en la parte inferior de la pantalla</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Iniciar sesión automáticamente</translation>
 <translation id="2111511281910874386">Ir a la página</translation>
 <translation id="2122601567107267586">No se ha podido abrir la aplicación</translation>
-<translation id="2123074103454259350">Aún no</translation>
 <translation id="2126426811489709554">Con la tecnología de Chrome</translation>
 <translation id="2131665479022868825">Datos guardados: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Pestaña de <ph name="TAB_TITLE" /> cerrada</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Editar tarjeta</translation>
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sitios web restantes (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Indícanos los motivos por los que has desactivado la nueva versión de Chrome</translation>
-<translation id="2185784955520093231">Estás utilizando la nueva versión de Chrome</translation>
 <translation id="219985413780390209">Obtener protección para ti y para tu dispositivo frente a sitios web peligrosos</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, una aplicación web disponible en <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuar como <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome está utilizando menos datos para mostrarte esta página</translation>
 <translation id="2888126860611144412">Información de Chrome</translation>
 <translation id="2891154217021530873">Detener la carga de la página</translation>
-<translation id="2892933203342091350">Habilita la vista simplificada en todos los artículos</translation>
 <translation id="2900528713135656174">Crear evento</translation>
 <translation id="2902702728133930130">Se ha producido un error inesperado en Chrome durante el inicio.</translation>
 <translation id="2903493209154104877">Direcciones</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Los sitios web externos pueden guardar y leer datos de cookies</translation>
 <translation id="3662546969139119822">Ningún elemento del historial</translation>
 <translation id="3672452749423051839">Sugerencias para errores de navegación</translation>
-<translation id="3682249951633602029">Cualquier usuario que pueda ver el archivo de contraseñas exportado podrá ver tus contraseñas.</translation>
 <translation id="3712575778697986964">¿Quieres vaciar el historial de ahorro de datos?</translation>
 <translation id="3714981814255182093">Abre la barra de búsqueda</translation>
 <translation id="3716182511346448902">Esta página utiliza demasiada memoria y Chrome la ha pausado.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">GB descargados: <ph name="GBS" /></translation>
 <translation id="654446541061731451">Selecciona una pestaña para compartir</translation>
 <translation id="6545017243486555795">Borrar todos los datos</translation>
-<translation id="6550675742724504774">Configuración</translation>
 <translation id="6556716549745717622">Bloquear si el sitio web suele mostrar anuncios invasivos (recomendado)</translation>
 <translation id="6560414384669816528">Realizar búsquedas con Sogou</translation>
 <translation id="6566259936974865419">Chrome te ha permitido ahorrar <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Desbloquea la pantalla para copiar tu contraseña</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d pestaña abierta}other{%1$d pestañas abiertas}}</translation>
 <translation id="6896758677409633944">Copiar</translation>
-<translation id="6905163627763043954">Probar</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="6945221475159498467">Seleccionar</translation>
 <translation id="6959661084585705671">Almacenamiento secundario</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">No se pueden obtener sugerencias</translation>
 <translation id="7562080006725997899">Borrando datos de navegación</translation>
 <translation id="756809126120519699">Datos de Chrome borrados</translation>
-<translation id="7581273696622423628">Responder encuesta</translation>
 <translation id="7588950540487816470">Web física</translation>
 <translation id="7589445247086920869">Bloquearlo para el motor de búsqueda actual</translation>
 <translation id="7593557518625677601">Abre los ajustes de Android y vuelve a habilitar la sincronización del sistema Android para iniciar la sincronización de Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">La sincronización no funciona</translation>
 <translation id="7612619742409846846">Has iniciado sesión en Google como</translation>
 <translation id="7619072057915878432">No se ha podido descargar <ph name="FILE_NAME" /> debido a problemas de la red.</translation>
-<translation id="7620146066550602128">Prueba una <ph name="BEGIN_LINK" />forma más sencilla de navegar<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obtener ayuda<ph name="END_LINK1" /> o <ph name="BEGIN_LINK2" />volver a buscar<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Te damos la bienvenida a Chrome</translation>
 <translation id="7638584964844754484">Frase de contraseña incorrecta</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Cancelar selección</translation>
 <translation id="784934925303690534">Intervalo de tiempo</translation>
 <translation id="7851858861565204677">Otros dispositivos</translation>
-<translation id="785312750761189439">Desliza el dedo hacia arriba desde la parte inferior de la pantalla o toca el botón de ampliar para acceder fácilmente a artículos y sitios web populares, descargas y mucho más.</translation>
 <translation id="7875915731392087153">Crear correo electrónico</translation>
 <translation id="7876243839304621966">Eliminar todo</translation>
 <translation id="7882131421121961860">No se ha encontrado el elemento buscado en el historial</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
index 282b274..b9bd8f4 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fa">
 <translation id="1006017844123154345">باز کردن نسخه آنلاین</translation>
-<translation id="1036348656032585052">خاموش کردن</translation>
 <translation id="1036727731225946849">درحال افزودن <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">از وب‌سایت‌ها</translation>
 <translation id="1049743911850919806">ناشناس</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">این سایت هرگز ترجمه نشود</translation>
 <translation id="1291207594882862231">پاک کردن سابقه، کوکی‌ها، داده‌های سایت، حافظه پنهان…</translation>
 <translation id="129553762522093515">اخیراً بسته‌شده</translation>
-<translation id="1320663236730331991">برای دسترسی آسان به سایت‌ها و مقاله‌های محبوب، بارگیری‌ها و غیره، تند به بالا بکشید</translation>
 <translation id="1326317727527857210">‏برای دسترسی به برگه‌هایتان در دستگاه‌های دیگر، به سیستم Chrome وارد شوید.</translation>
 <translation id="1332501820983677155">‏میان‌برهای ویژه Google Chrome</translation>
 <translation id="136248372334525878">برای بارگیری سریع‌تر و خواندن درحالت آفلاین، صفحات را پیش‌بارگیری کنید</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> گیگابایت توسط سایر برنامه‌ها</translation>
 <translation id="2079545284768500474">لغو</translation>
 <translation id="2082238445998314030"><ph name="RESULT_NUMBER" /> نتیجه از <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">‏معرفی Chrome جدید</translation>
 <translation id="2086652334978798447">‏برای دریافت محتوای شخصی‌سازی‌شده پیشنهادی Google، به Chrome وارد شوید.</translation>
 <translation id="2091887806945687916">صدا</translation>
 <translation id="209354263896846928">در پایین صفحه‌نمایش به نوار نشانی دسترسی پیدا کنید</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">ورود به سیستم خودکار</translation>
 <translation id="2111511281910874386">رفتن به صفحه</translation>
 <translation id="2122601567107267586">باز کردن برنامه امکان‌پذیر نیست</translation>
-<translation id="2123074103454259350">هنوز نه</translation>
 <translation id="2126426811489709554">‏ارائه توسط Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> صرفه‌جویی شد</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> بسته شد</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">ویرایش کارت</translation>
 <translation id="2154710561487035718">کپی نشانی وب</translation>
 <translation id="2156074688469523661">سایت‌های باقی‌مانده (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">‏علت خاموش کردن Chrome جدید را به ما بگویید</translation>
-<translation id="2185784955520093231">‏درحال استفاده از Chrome جدید هستید</translation>
 <translation id="219985413780390209">محافظت از شما و دستگاهتان دربرابر سایت‌های خطرناک</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />، برنامه وب. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">ادامه دادن به‌عنوان <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">‏Chrome از داده کمتری برای نمایش این صفحه به شما استفاده می‌کند</translation>
 <translation id="2888126860611144412">‏درباره Chrome</translation>
 <translation id="2891154217021530873">توقف بارگیری صفحه</translation>
-<translation id="2892933203342091350">فعال کردن نمای ساده‌شده برای همه مقاله‌ها</translation>
 <translation id="2900528713135656174">ایجاد رویداد</translation>
 <translation id="2902702728133930130">‏Chrome در هنگام شروع به کار با خطایی غیرمنتظره متوقف شد.</translation>
 <translation id="2903493209154104877">آدرس‌ها</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">وب‌سایت‌های طرف ثالث می‌توانند داده‌های کوکی را ذخیره کنند و بخوانند</translation>
 <translation id="3662546969139119822">سابقه‌ای اینجا نیست</translation>
 <translation id="3672452749423051839">پیشنهادات خطای پیمایش</translation>
-<translation id="3682249951633602029">گذرواژه شما برای همه افرادی که می‌توانند فایل گذرواژه‌های صادرشده را ببینید، قابل مشاهده خواهد بود.</translation>
 <translation id="3712575778697986964">صرفه‌جویی داده بازنشانی شود؟</translation>
 <translation id="3714981814255182093">باز کردن «نوار پیدا کردن»</translation>
 <translation id="3716182511346448902">‏این صفحه از حافظه بسیار زیادی استفاده می‌کند، بنابراین Chrome موقتاً آن را متوقف کرد.</translation>
@@ -617,7 +609,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> گیگابایت بارگیری شد</translation>
 <translation id="654446541061731451">برگه‌ای برای انتقال با پرتو انتخاب کنید</translation>
 <translation id="6545017243486555795">پاک کردن همه داده‌ها</translation>
-<translation id="6550675742724504774">گزینه‌ها</translation>
 <translation id="6556716549745717622">اگر سایت تمایل دارد آگهی‌های مزاحم نشان دهد مسدود شود (توصیه می‌شود)</translation>
 <translation id="6560414384669816528">‏جستجو با Sogou</translation>
 <translation id="6566259936974865419">‏Chrome‏ <ph name="GIGABYTES" /> گیگابایت از داده‌های شما را ذخیره کرده است</translation>
@@ -661,7 +652,6 @@
 <translation id="6891726759199484455">برای کپی کردن گذرواژه‌تان، قفل صفحه را باز کنید</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{‏%1$d برگه باز}one{‏%1$d برگه باز}other{‏%1$d برگه باز}}</translation>
 <translation id="6896758677409633944">کپی</translation>
-<translation id="6905163627763043954">امتحانش کنید</translation>
 <translation id="6910211073230771657">حذف شد</translation>
 <translation id="6945221475159498467">انتخاب</translation>
 <translation id="6959661084585705671">حافظه ثانویه</translation>
@@ -726,7 +716,6 @@
 <translation id="7542481630195938534">دریافت پیشنهادها امکان‌پذیر نیست</translation>
 <translation id="7562080006725997899">پاک کردن داده‌های مرور</translation>
 <translation id="756809126120519699">‏داده‌های Chrome پاک شد</translation>
-<translation id="7581273696622423628">در نظرسنجی شرکت کنید</translation>
 <translation id="7588950540487816470">وب فیزیکی</translation>
 <translation id="7589445247086920869">مسدود کردن موتور جستجوی کنونی</translation>
 <translation id="7593557518625677601">‏برای شروع همگام‌سازی Chrome، تنظیمات Android را باز کنید و همگام‌سازی سیستم Android را دوباره فعال کنید</translation>
@@ -735,7 +724,6 @@
 <translation id="7605594153474022051">همگام‌سازی کار نمی‌کند</translation>
 <translation id="7612619742409846846">‏ثبت ورودشده در Google به‌عنوان</translation>
 <translation id="7619072057915878432">به‌دلیل نقص‌هایی در شبکه، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />روش مرور آسان‌تری<ph name="END_LINK" /> را امتحان کنید</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />دریافت راهنمایی<ph name="END_LINK1" /> یا <ph name="BEGIN_LINK2" />اسکن مجدد<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">‏به Chrome خوش آمدید</translation>
 <translation id="7638584964844754484">عبارت عبور نادرست است</translation>
@@ -760,7 +748,6 @@
 <translation id="7846076177841592234">لغو انتخاب</translation>
 <translation id="784934925303690534">محدوده زمانی</translation>
 <translation id="7851858861565204677">دستگاه‌های دیگر</translation>
-<translation id="785312750761189439">برای دسترسی آسان به سایت‌های پرطرفدار و مقاله‌ها، بارگیری‌ها و سایر موارد، از پایین صفحه تند به بالا بکشید یا روی دکمه بزرگ کردن ضربه بزنید</translation>
 <translation id="7875915731392087153">ایجاد رایانامه</translation>
 <translation id="7876243839304621966">حذف همه</translation>
 <translation id="7882131421121961860">هیچ سابقه‌ای پیدا نشد</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
index 06efa4d8..601102fc 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fi">
 <translation id="1006017844123154345">Avaa verkkoversio</translation>
-<translation id="1036348656032585052">Poista käytöstä</translation>
 <translation id="1036727731225946849">Lisätään <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Verkkosivustoilta</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Älä käännä tätä sivustoa</translation>
 <translation id="1291207594882862231">Tyhjennä historia, evästeet, sivustojen tiedot, välimuisti ja niin edelleen.</translation>
 <translation id="129553762522093515">Hiljattain suljetut välilehdet</translation>
-<translation id="1320663236730331991">Pyyhkäise ylös, niin pääset nopeasti suosituille sivustoille, artikkeleihin, latauksiin ja muuhun sisältöön</translation>
 <translation id="1326317727527857210">Käytä välilehtiä muilta laitteiltasi kirjautumalla Chromeen.</translation>
 <translation id="1332501820983677155">Google Chromen ominaisuuksien pikanäppäimet</translation>
 <translation id="136248372334525878">Sivujen esilataaminen nopeuttaa lataamista ja mahdollistaa lukemisen offline-tilassa.</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> Gt muita sovelluksia</translation>
 <translation id="2079545284768500474">Kumoa</translation>
 <translation id="2082238445998314030">Tulos <ph name="RESULT_NUMBER" />/<ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Uusi Chrome</translation>
 <translation id="2086652334978798447">Kirjaudu Chromeen, niin voit lisätä Googlen suosittelemaa sisältöä.</translation>
 <translation id="2091887806945687916">Ääni</translation>
 <translation id="209354263896846928">Osoitepalkki on näytön alareunassa.</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automaattinen kirjautuminen</translation>
 <translation id="2111511281910874386">Siirry sivulle</translation>
 <translation id="2122601567107267586">Sovelluksen avaaminen epäonnistui</translation>
-<translation id="2123074103454259350">Ei vielä</translation>
 <translation id="2126426811489709554">Palvelun tarjoaa Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> tallennettu</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> suljettiin</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Muokkaa korttia</translation>
 <translation id="2154710561487035718">Kopioi URL-osoite</translation>
 <translation id="2156074688469523661">Jäljellä olevat sivustot (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Kerro meille, miksi poistit uuden Chromen käytöstä</translation>
-<translation id="2185784955520093231">Käytät uutta Chromea</translation>
 <translation id="219985413780390209">Suojaa itseäsi ja laitettasi vaarallisilta sivustoilta</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, verkkosovellus. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Jatka tilillä <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome käyttää vähemmän dataa tämän sivun näyttämiseen.</translation>
 <translation id="2888126860611144412">Tietoja Chromesta</translation>
 <translation id="2891154217021530873">Pysäytä sivun lataus</translation>
-<translation id="2892933203342091350">Salli yksinkertaistettu näkymä kaikille artikkeleille</translation>
 <translation id="2900528713135656174">Luo tapahtuma</translation>
 <translation id="2902702728133930130">Chromen käynnistys epäonnistui odottamattoman virheen takia.</translation>
 <translation id="2903493209154104877">Osoitteet</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Kolmannen osapuolen verkkosivustot voivat tallentaa ja lukea evästeiden tietoja.</translation>
 <translation id="3662546969139119822">Ei historiatietoja</translation>
 <translation id="3672452749423051839">Selausvirheiden ehdotukset</translation>
-<translation id="3682249951633602029">Salasanasi näkyvät kaikille, jotka näkevät viedyn salasanatiedoston.</translation>
 <translation id="3712575778697986964">Nollataanko Data Saver?</translation>
 <translation id="3714981814255182093">Avaa hakupalkki</translation>
 <translation id="3716182511346448902">Tämä sivu käyttää liikaa muistia, joten Chrome keskeytti sen.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Ladattu: <ph name="GBS" /> Gt</translation>
 <translation id="654446541061731451">Valitse siirrettävä välilehti</translation>
 <translation id="6545017243486555795">Poista kaikki tiedot</translation>
-<translation id="6550675742724504774">Asetukset</translation>
 <translation id="6556716549745717622">Estä, jos sivusto näyttää häiritseviä mainoksia toistuvasti (suositus)</translation>
 <translation id="6560414384669816528">Käytä Sogouta</translation>
 <translation id="6566259936974865419">Chrome on säästänyt <ph name="GIGABYTES" /> Gt tilaa</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Avaa lukitus kopioidaksesi salasanan</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d avoin välilehti}other{%1$d avointa välilehteä}}</translation>
 <translation id="6896758677409633944">Kopioi</translation>
-<translation id="6905163627763043954">Kokeile</translation>
 <translation id="6910211073230771657">Poistettu</translation>
 <translation id="6945221475159498467">Valitse</translation>
 <translation id="6959661084585705671">Toissijainen tallennustila</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Ehdotusten haku epäonnistui</translation>
 <translation id="7562080006725997899">Selaustietoja poistetaan</translation>
 <translation id="756809126120519699">Chrome-tiedot tyhjennetty</translation>
-<translation id="7581273696622423628">Vastaa kyselyyn</translation>
 <translation id="7588950540487816470">Fyysinen web</translation>
 <translation id="7589445247086920869">Estä nykyiselle hakukoneelle</translation>
 <translation id="7593557518625677601">Avaa Android-asetukset ja ota järjestelmän synkronointi uudelleen käyttöön.</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synkronointi ei toimi</translation>
 <translation id="7612619742409846846">Olet kirjautunut Googleen käyttäjänä</translation>
 <translation id="7619072057915878432">Tiedoston <ph name="FILE_NAME" /> lataus epäonnistui verkkovirheen vuoksi.</translation>
-<translation id="7620146066550602128">Kokeile <ph name="BEGIN_LINK" />helpompaa selaamista<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Lue ohjeita<ph name="END_LINK1" /> tai <ph name="BEGIN_LINK2" />hae uudelleen<ph name="END_LINK2" />.</translation>
 <translation id="7626032353295482388">Tervetuloa Chromeen</translation>
 <translation id="7638584964844754484">Väärä tunnuslause.</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Peruuta valinta</translation>
 <translation id="784934925303690534">Aikaväli</translation>
 <translation id="7851858861565204677">Muut laitteet</translation>
-<translation id="785312750761189439">Pyyhkäise ylös näytön alalaidasta tai kosketa laajennuspainiketta, niin pääset nopeasti suosituille sivustoille, artikkeleihin, latauksiin ja muuhun sisältöön.</translation>
 <translation id="7875915731392087153">Luo sähköposti</translation>
 <translation id="7876243839304621966">Poista kaikki</translation>
 <translation id="7882131421121961860">Historiaa ei löytynyt.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
index 68a3993..4698f86 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fil">
 <translation id="1006017844123154345">Buksan Online</translation>
-<translation id="1036348656032585052">I-off</translation>
 <translation id="1036727731225946849">Idinaragdag ang <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Mula sa mga website</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Huwag isalin kailanman ang site na ito</translation>
 <translation id="1291207594882862231">I-clear ang history, cookies, site data, cache…</translation>
 <translation id="129553762522093515">Kamakailang isinara</translation>
-<translation id="1320663236730331991">Mag-swipe pataas para sa madaling access sa mga sikat na site at artikulo, download, at higit pa</translation>
 <translation id="1326317727527857210">Upang makuha ang iyong mga tab mula sa iba mo pang mga device, mag-sign in sa Chrome.</translation>
 <translation id="1332501820983677155">Mga shortcut ng feature ng Google Chrome</translation>
 <translation id="136248372334525878">Mag-preload ng mga page para sa mas mabilis na pag-load at offline na pagbabasa</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB na iba pang mga app</translation>
 <translation id="2079545284768500474">I-undo</translation>
 <translation id="2082238445998314030">Resulta <ph name="RESULT_NUMBER" /> sa <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Ipinakikilala ang bagong Chrome</translation>
 <translation id="2086652334978798447">Upang makakuha ng naka-personalize na content na iminumungkahi ng Google, mag-sign in sa Chrome.</translation>
 <translation id="2091887806945687916">Tunog</translation>
 <translation id="209354263896846928">I-access ang address bar sa ibaba ng iyong screen</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Awtomatikong Mag-sign in</translation>
 <translation id="2111511281910874386">Pumunta sa page</translation>
 <translation id="2122601567107267586">Hindi mabuksan ang app</translation>
-<translation id="2123074103454259350">Hindi muna</translation>
 <translation id="2126426811489709554">Pinapagana ng Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> ang natipid</translation>
 <translation id="213279576345780926">Isinarang <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">I-edit ang card</translation>
 <translation id="2154710561487035718">Kopyahin ang URL</translation>
 <translation id="2156074688469523661">Mga natitirang site (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Ipaalam sa amin kung bakit mo na-off ang bagong Chrome</translation>
-<translation id="2185784955520093231">Ginagamit mo ang bagong Chrome</translation>
 <translation id="219985413780390209">Protektahan ang iyong sarili at ang iyong device mula sa mga mapanganib na site</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, web app. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Magpatuloy bilang si <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Gumagamit ang Chrome ng mas kaunting data upang ipakita sa iyo ang page na ito</translation>
 <translation id="2888126860611144412">Tungkol sa Chrome</translation>
 <translation id="2891154217021530873">Ihinto ang pag-load ng page</translation>
-<translation id="2892933203342091350">I-enable ang pinasimpleng view sa lahat ng artikulo</translation>
 <translation id="2900528713135656174">Gumawa ng event</translation>
 <translation id="2902702728133930130">Nagkaroon ng hindi inaasahang error ang Chrome habang nagsasagawa ng pag-start up.</translation>
 <translation id="2903493209154104877">Mga Address</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Maaaring mag-save at magbasa ng data ng cookie ang mga third-party na website</translation>
 <translation id="3662546969139119822">Walang history rito</translation>
 <translation id="3672452749423051839">Mga suhestyon para sa error sa pag-navigate</translation>
-<translation id="3682249951633602029">Ang iyong mga password ay makikita ng sinumang nakakakita sa file ng mga na-export na password.</translation>
 <translation id="3712575778697986964">I-reset ang Data Saver?</translation>
 <translation id="3714981814255182093">Buksan ang Bar sa Paghahanap</translation>
 <translation id="3716182511346448902">Masyadong malaki ang ginagamit na memory ng page na ito kaya na-pause ito ng Chrome.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB ang na-download</translation>
 <translation id="654446541061731451">Pumili ng tab upang mag-beam</translation>
 <translation id="6545017243486555795">I-clear ang Lahat ng Data</translation>
-<translation id="6550675742724504774">Mga Pagpipilian</translation>
 <translation id="6556716549745717622">I-block kung malamang na magpakita ang site ng mga nakakasagabal na ad (inirerekomenda)</translation>
 <translation id="6560414384669816528">Maghanap gamit ang Sogou</translation>
 <translation id="6566259936974865419">Nag-save ang Chrome ng <ph name="GIGABYTES" /> GB para sa iyo</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">I-unlock upang kopyahin ang iyong password</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d bukas na tab}one{%1$d bukas na tab}other{%1$d na bukas na tab}}</translation>
 <translation id="6896758677409633944">Copy</translation>
-<translation id="6905163627763043954">Subukan ito</translation>
 <translation id="6910211073230771657">Na-delete</translation>
 <translation id="6945221475159498467">Pumili</translation>
 <translation id="6959661084585705671">Pangalawang storage</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Hindi makakuha ng mga suhestyon</translation>
 <translation id="7562080006725997899">Kini-clear ang data mula sa pagba-browse</translation>
 <translation id="756809126120519699">Na-clear ang data ng Chrome</translation>
-<translation id="7581273696622423628">Sagutan ang survey</translation>
 <translation id="7588950540487816470">Pisikal na Web</translation>
 <translation id="7589445247086920869">I-block para sa kasalukuyang search engine</translation>
 <translation id="7593557518625677601">Buksan ang mga setting ng Android at muling i-enable ang Android system sync upang simulan ang Chrome sync</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Hindi gumagana ang pag-sync</translation>
 <translation id="7612619742409846846">Naka-sign in sa Google bilang</translation>
 <translation id="7619072057915878432">Hindi na-download ang <ph name="FILE_NAME" /> dahil sa mga problema sa network.</translation>
-<translation id="7620146066550602128">Sumubok ng <ph name="BEGIN_LINK" />mas madaling paraan ng pag-browse<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Humingi ng tulong<ph name="END_LINK1" /> o <ph name="BEGIN_LINK2" />muling mag-scan<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Maligayang pagdating sa Chrome</translation>
 <translation id="7638584964844754484">Maling passphrase</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Kanselahin ang pinili</translation>
 <translation id="784934925303690534">Sakop na oras</translation>
 <translation id="7851858861565204677">Iba pang mga device</translation>
-<translation id="785312750761189439">Mag-swipe pataas mula sa ibaba ng screen o i-tap ang button na i-expand para sa madaling pag-access sa mga sikat na site at artikulo, mga download, at higit pa</translation>
 <translation id="7875915731392087153">Gumawa ng email</translation>
 <translation id="7876243839304621966">Alisin lahat</translation>
 <translation id="7882131421121961860">Walang nakitang history</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
index 9d8458d..c27dfce 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="fr">
 <translation id="1006017844123154345">Ouvrir la version en ligne</translation>
-<translation id="1036348656032585052">Désactiver</translation>
 <translation id="1036727731225946849">Ajout de <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">À partir de sites Web</translation>
 <translation id="1049743911850919806">Navigation privée</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Ne jamais traduire ce site</translation>
 <translation id="1291207594882862231">Effacer l'historique, vider le cache, supprimer les cookies et les données du site…</translation>
 <translation id="129553762522093515">Récemment fermés</translation>
-<translation id="1320663236730331991">Balayez l'écran vers le haut pour accéder facilement à des sites et articles populaires, à des téléchargements, etc.</translation>
 <translation id="1326317727527857210">Connectez-vous à Chrome pour accéder à vos onglets sur vos autres appareils.</translation>
 <translation id="1332501820983677155">Raccourcis liés aux fonctionnalités de Google Chrome</translation>
 <translation id="136248372334525878">Préchargez des pages pour accélérer leur chargement ou les lire hors connexion</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> Go par d'autres applis</translation>
 <translation id="2079545284768500474">Annuler</translation>
 <translation id="2082238445998314030">Résultat <ph name="RESULT_NUMBER" /> sur <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Présentation de la nouvelle version de Chrome</translation>
 <translation id="2086652334978798447">Pour obtenir une recommandation de contenu personnalisé de la part de Google, connectez-vous à Chrome.</translation>
 <translation id="2091887806945687916">Son</translation>
 <translation id="209354263896846928">Accédez à la barre d'adresse en bas de l'écran</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Connexion automatique</translation>
 <translation id="2111511281910874386">Accéder à la page</translation>
 <translation id="2122601567107267586">Impossible d'ouvrir l'application</translation>
-<translation id="2123074103454259350">Pas encore</translation>
 <translation id="2126426811489709554">Proposé par Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> économisés</translation>
 <translation id="213279576345780926">L'onglet "<ph name="TAB_TITLE" />" a été fermé.</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Modifier la carte</translation>
 <translation id="2154710561487035718">Copier l'URL</translation>
 <translation id="2156074688469523661">Sites restants (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Indiquez-nous pourquoi vous avez désactivé la nouvelle version de Chrome</translation>
-<translation id="2185784955520093231">Vous utilisez la nouvelle version de Chrome</translation>
 <translation id="219985413780390209">Assurer votre protection et celle de votre appareil contre les sites dangereux</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, application Web : <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuer en tant que <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome utilise moins de données pour afficher cette page</translation>
 <translation id="2888126860611144412">À propos de Chrome</translation>
 <translation id="2891154217021530873">Arrêter le chargement de la page</translation>
-<translation id="2892933203342091350">Activer la vue simplifiée pour tous les articles</translation>
 <translation id="2900528713135656174">Créer un événement</translation>
 <translation id="2902702728133930130">Échec du démarrage de Chrome, en raison d'une erreur inattendue.</translation>
 <translation id="2903493209154104877">Adresses</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Les sites tiers peuvent enregistrer et lire les données des cookies.</translation>
 <translation id="3662546969139119822">Aucun historique ici</translation>
 <translation id="3672452749423051839">Suggestions en cas d'erreur de navigation</translation>
-<translation id="3682249951633602029">Toute personne ayant accès au fichier exporté de mots de passe pourra voir ces mots de passe.</translation>
 <translation id="3712575778697986964">Réinitialiser l'économiseur de données ?</translation>
 <translation id="3714981814255182093">Ouvrir la barre de recherche</translation>
 <translation id="3716182511346448902">Cette page utilise trop de mémoire, Chrome a donc interrompu son chargement.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> Go téléchargé(s)</translation>
 <translation id="654446541061731451">Sélectionnez un onglet à partager.</translation>
 <translation id="6545017243486555795">Supprimer toutes les données</translation>
-<translation id="6550675742724504774">Options</translation>
 <translation id="6556716549745717622">Bloquer si le site a tendance à afficher des annonces intrusives (recommandé)</translation>
 <translation id="6560414384669816528">Rechercher avec Sogou</translation>
 <translation id="6566259936974865419">Chrome vous a permis de gagner <ph name="GIGABYTES" /> Go</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Déverrouillez pour copier votre mot de passe</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d onglet ouvert}one{%1$d onglet ouvert}other{%1$d onglets ouverts}}</translation>
 <translation id="6896758677409633944">Copier</translation>
-<translation id="6905163627763043954">Essayer</translation>
 <translation id="6910211073230771657">Supprimé</translation>
 <translation id="6945221475159498467">Sélectionner</translation>
 <translation id="6959661084585705671">Espace de stockage secondaire</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Impossible d'obtenir des suggestions</translation>
 <translation id="7562080006725997899">Effacement des données de navigation en cours</translation>
 <translation id="756809126120519699">Données de Chrome effacées</translation>
-<translation id="7581273696622423628">Participer à l'enquête</translation>
 <translation id="7588950540487816470">Web physique</translation>
 <translation id="7589445247086920869">Bloquer l'accès pour le moteur de recherche actuel</translation>
 <translation id="7593557518625677601">Ouvrez paramètres Android et réactivez synchro système Android pour démarrer synchro Chrome.</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">La synchronisation ne fonctionne pas</translation>
 <translation id="7612619742409846846">Connecté à Google en tant que</translation>
 <translation id="7619072057915878432">Échec du téléchargement du fichier "<ph name="FILE_NAME" />" en raison de l'échec du réseau.</translation>
-<translation id="7620146066550602128">Découvrez une <ph name="BEGIN_LINK" />navigation simplifiée<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obtenir de l'aide<ph name="END_LINK1" /> ou <ph name="BEGIN_LINK2" />effectuer une nouvelle recherche<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Bienvenue dans Chrome</translation>
 <translation id="7638584964844754484">Phrase secrète incorrecte.</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Annuler la sélection</translation>
 <translation id="784934925303690534">Période</translation>
 <translation id="7851858861565204677">Autres appareils</translation>
-<translation id="785312750761189439">Balayez l'écran de bas en haut ou appuyez sur le bouton "Développer" pour accéder facilement aux téléchargements, aux sites et aux articles populaires, etc.</translation>
 <translation id="7875915731392087153">Créer un e-mail</translation>
 <translation id="7876243839304621966">Tout supprimer</translation>
 <translation id="7882131421121961860">Aucun historique trouvé</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
index c6970ad..c0b76ce 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="hi">
 <translation id="1006017844123154345">ऑनलाइन खोलें</translation>
-<translation id="1036348656032585052">बंद करें</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> जोड़ा जा रहा है...</translation>
 <translation id="1041308826830691739">वेबसाइटों से</translation>
 <translation id="1049743911850919806">गुप्त</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">कभी भी इस साइट का अनुवाद न करें</translation>
 <translation id="1291207594882862231">इतिहास, कुकी, साइट डेटा, संचय साफ़ करें…</translation>
 <translation id="129553762522093515">हाल ही में बंद किए गए</translation>
-<translation id="1320663236730331991">लोकप्रिय साइटों और लेखों, डाउनलोड आदि तक आसानी से पहुंचने के लिए ऊपर स्वाइप करें</translation>
 <translation id="1326317727527857210">अपने अन्य डिवाइस से अपने टैब प्राप्त करने के लिए, Chrome में प्रवेश करें.</translation>
 <translation id="1332501820983677155">Google Chrome सुविधा शॉर्टकट</translation>
 <translation id="136248372334525878">तेज़ी से लोड करने और ऑफ़लाइन पढ़ने के लिए पेज पहले से लोड करें</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB अन्य ऐप्लिकेशन</translation>
 <translation id="2079545284768500474">वापस लाएं</translation>
 <translation id="2082238445998314030"><ph name="TOTAL_RESULTS" /> में से <ph name="RESULT_NUMBER" /> परिणाम</translation>
-<translation id="2086116129690175316">पेश है नया Chrome</translation>
 <translation id="2086652334978798447">Google द्वारा सुझाई गई वैयक्तिकृत सामग्री प्राप्त करने के लिए, Chrome में प्रवेश करें.</translation>
 <translation id="2091887806945687916">ध्वनि</translation>
 <translation id="209354263896846928">अपनी स्क्रीन के नीचे दिया गया पता बार एक्सेस करें</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">स्वतः प्रवेश करें</translation>
 <translation id="2111511281910874386">पेज पर जाएं</translation>
 <translation id="2122601567107267586">ऐप नहीं खोला जा सका</translation>
-<translation id="2123074103454259350">अभी नहीं</translation>
 <translation id="2126426811489709554">Chrome के द्वारा संचालित</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> बचाया गया</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> बंद है</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">कार्ड संपादित करें</translation>
 <translation id="2154710561487035718">URL की कॉपी बनाएं</translation>
 <translation id="2156074688469523661">बाकी साइटें (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">हमें बताएं कि आपने नए Chrome को बंद क्यों कर दिया है</translation>
-<translation id="2185784955520093231">आप नए Chrome का उपयोग कर रहे हैं</translation>
 <translation id="219985413780390209">खतरनाक साइटों से आपकी और आपके डिवाइस की सुरक्षा करता है</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, वेब ऐप. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048"><ph name="USER_FULL_NAME" /> के रूप में जारी रखें</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome आपको यह पेज दिखाने के लिए कम डेटा का उपयोग कर रहा है</translation>
 <translation id="2888126860611144412">क्रोम के बारे में</translation>
 <translation id="2891154217021530873">पेज को लोड करना रोकें</translation>
-<translation id="2892933203342091350">सभी लेखों पर सरल बनाया गया व्यू चालू करें</translation>
 <translation id="2900528713135656174">इवेंट बनाएं</translation>
 <translation id="2902702728133930130">अनपेक्षित गड़बड़ी के साथ स्टार्टअप के दौरान Chrome विफल रहा.</translation>
 <translation id="2903493209154104877">पते</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">तृतीय-पक्ष वेबसाइटें कुकी डेटा को सहेज सकती हैं और पढ़ सकती हैं</translation>
 <translation id="3662546969139119822">यहां कोई इतिहास नहीं है</translation>
 <translation id="3672452749423051839">मार्गदर्शक गड़बड़ी सुझाव</translation>
-<translation id="3682249951633602029">आपके पासवर्ड, निर्यात की गई पासवर्ड फ़ाइल देख सकने वाले सभी व्यक्तियों को दिखाई देंगे.</translation>
 <translation id="3712575778697986964">डेटा बचाने का साधन रीसेट करें?</translation>
 <translation id="3714981814255182093">ढूंढें बार खोलें</translation>
 <translation id="3716182511346448902">यह पेज बहुत ज़्यादा मेमोरी का इस्तेमाल करता है, इसलिए Chrome ने इसे रोक दिया है.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> जीबी डाउनलोड किया गया</translation>
 <translation id="654446541061731451">बीम के लिए टैब को चुनें</translation>
 <translation id="6545017243486555795">सभी डेटा साफ़ करें</translation>
-<translation id="6550675742724504774">विकल्प</translation>
 <translation id="6556716549745717622">अगर साइट तंग करने वाले विज्ञापन दिखाने के लिए जानी जाती है, तो ब्लॉक करें (सुझाया गया)</translation>
 <translation id="6560414384669816528">Sogou से खोजें</translation>
 <translation id="6566259936974865419">Chrome ने आपके <ph name="GIGABYTES" /> GB की बचत की</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">अपना पासवर्ड कॉपी करने के लिए अनलॉक करें</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d खुला टैब}one{%1$d खुले टैब}other{%1$d खुले टैब}}</translation>
 <translation id="6896758677409633944">कॉपी बनाएं</translation>
-<translation id="6905163627763043954">इसे आज़माएं</translation>
 <translation id="6910211073230771657">हटाया गया</translation>
 <translation id="6945221475159498467">चुनें</translation>
 <translation id="6959661084585705671">दूसरी मेमोरी</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">सुझाव नहीं मिल पा रहे हैं</translation>
 <translation id="7562080006725997899">ब्राउज़िंग डेटा साफ़ हो रहा है</translation>
 <translation id="756809126120519699">साफ़ किया गया Chrome डेटा</translation>
-<translation id="7581273696622423628">सर्वेक्षण में भाग लें</translation>
 <translation id="7588950540487816470">जीता-जागता वेब</translation>
 <translation id="7589445247086920869">वर्तमान खोज इंजन के लिए अवरुद्ध करें</translation>
 <translation id="7593557518625677601">Android सेटिंग खोलें व Chrome सिंक शुरू करने हेतु Android सिस्टम समन्वयन फिर से सक्षम करें</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">समन्वयन काम नहीं कर रहा है</translation>
 <translation id="7612619742409846846">Google में इस रूप में प्रवेश किया हुआ है</translation>
 <translation id="7619072057915878432">नेटवर्क विफलताओं के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />ब्राउज़ करने का अधिक आसान तरीका<ph name="END_LINK" /> आज़माएं</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />सहायता पाएं<ph name="END_LINK1" /> या <ph name="BEGIN_LINK2" />फिर से स्कैन करें<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Chrome में आपका स्वागत है</translation>
 <translation id="7638584964844754484">गलत पासफ़्रेज़</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">चयन हटाएं</translation>
 <translation id="784934925303690534">समय सीमा</translation>
 <translation id="7851858861565204677">अन्य डिवाइस</translation>
-<translation id="785312750761189439">लोकप्रिय साइटों और लेखों, डाउनलोड आदि की आसान एक्सेस के लिए स्क्रीन पर नीचे से ऊपर स्वाइप करें या विस्तार करें बटन को टैप करें</translation>
 <translation id="7875915731392087153">ईमेल बनाएं</translation>
 <translation id="7876243839304621966">सभी को निकालें</translation>
 <translation id="7882131421121961860">कोई इतिहास नहीं मिला</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
index 02b4a29..ac85503e 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="hr">
 <translation id="1006017844123154345">Otvori online</translation>
-<translation id="1036348656032585052">Isključi</translation>
 <translation id="1036727731225946849">Dodavanje stavke <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">S web-lokacija</translation>
 <translation id="1049743911850919806">Anonimno</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nikad nemoj prevoditi ovu web-lokaciju</translation>
 <translation id="1291207594882862231">Brisanje povijesti, kolačića, podataka web-lokacija, predmemorije...</translation>
 <translation id="129553762522093515">Nedavno zatvoreno</translation>
-<translation id="1320663236730331991">Prijeđite prstom prema gore da biste lako pristupili popularnim web-lokacijama i člancima, sadržajima za preuzimanje i drugom</translation>
 <translation id="1326317727527857210">Da bi se prikazale kartice s vaših ostalih uređaja, prijavite se na Chrome.</translation>
 <translation id="1332501820983677155">Prečaci za značajke Google Chromea</translation>
 <translation id="136248372334525878">Prethodno učitajte stranice za brže učitavanje i čitanje izvan mreže</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB ostale aplikacije</translation>
 <translation id="2079545284768500474">Poništi</translation>
 <translation id="2082238445998314030"><ph name="RESULT_NUMBER" /> od <ph name="TOTAL_RESULTS" /> rezultata</translation>
-<translation id="2086116129690175316">Predstavljamo novi Chrome</translation>
 <translation id="2086652334978798447">Prijavite se u Chrome ako želite da vam Google predlaže sadržaje.</translation>
 <translation id="2091887806945687916">Zvuk</translation>
 <translation id="209354263896846928">Pristupite adresnoj traci u dnu zaslona</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatska prijava</translation>
 <translation id="2111511281910874386">Idi na stranicu</translation>
 <translation id="2122601567107267586">Otvaranje aplikacije nije uspjelo</translation>
-<translation id="2123074103454259350">Još ne</translation>
 <translation id="2126426811489709554">Omogućuje Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> spremljeno</translation>
 <translation id="213279576345780926">Zatvorena je kartica <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Uredite karticu</translation>
 <translation id="2154710561487035718">Kopiraj URL</translation>
 <translation id="2156074688469523661">Preostale web-lokacije (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Recite nam zašto ste isključili novi Chrome</translation>
-<translation id="2185784955520093231">Upotrebljavate novi Chrome</translation>
 <translation id="219985413780390209">Zaštitite sebe i svoj uređaj od opasnih web-lokacija</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, web-aplikacija. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Nastavite kao <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome koristi manje podataka za prikaz ove stranice</translation>
 <translation id="2888126860611144412">O Chromeu</translation>
 <translation id="2891154217021530873">Zaustavljanje učitavanja stranice</translation>
-<translation id="2892933203342091350">Omogući pojednostavljeni prikaz na svim člancima</translation>
 <translation id="2900528713135656174">Stvori događaj</translation>
 <translation id="2902702728133930130">Chrome se nije pokrenuo zbog neočekivane pogreške.</translation>
 <translation id="2903493209154104877">Adrese</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Web-lokacije trećih strana mogu spremati i čitati podatke kolačića</translation>
 <translation id="3662546969139119822">Ovdje nema povijesti</translation>
 <translation id="3672452749423051839">Prijedlozi pogreške kretanja</translation>
-<translation id="3682249951633602029">Vaše zaporke bit će vidljive svima koji vide izvezenu datoteku sa zaporkama.</translation>
 <translation id="3712575778697986964">Želite li vratiti Uštedu podataka na zadano?</translation>
 <translation id="3714981814255182093">Otvaranje Trake za traženje</translation>
 <translation id="3716182511346448902">Ova stranica upotrebljava previše memorije, pa ju je Chrome pauzirao.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Preuzeto <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Odaberite karticu za emitiranje</translation>
 <translation id="6545017243486555795">Izbriši sve podatke</translation>
-<translation id="6550675742724504774">Opcije</translation>
 <translation id="6556716549745717622">Blokiraj ako web-lokacija često prikazuje ometajuće oglase (preporučeno)</translation>
 <translation id="6560414384669816528">Pretražujte na usluzi Sogou</translation>
 <translation id="6566259936974865419">Chrome vam je uštedio <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Otključajte za kopiranje zaporke</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d otvorena kartica}one{%1$d otvorena kartica}few{%1$d otvorene kartice}other{%1$d otvorenih kartica}}</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
-<translation id="6905163627763043954">Isprobaj</translation>
 <translation id="6910211073230771657">Izbrisano</translation>
 <translation id="6945221475159498467">Odaberi</translation>
 <translation id="6959661084585705671">Sekundarna pohrana</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Prijedlozi se ne mogu dohvatiti</translation>
 <translation id="7562080006725997899">Brisanje podataka o pregledavanju</translation>
 <translation id="756809126120519699">Chromeovi su podaci izbrisani</translation>
-<translation id="7581273696622423628">Ispunite anketu</translation>
 <translation id="7588950540487816470">Fizički web</translation>
 <translation id="7589445247086920869">Blokiraj za trenutačnu tražilicu</translation>
 <translation id="7593557518625677601">U postavkama omogućite sink. sustava Android da se pokrene Chrome sinkronizacija</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sinkronizacija ne radi</translation>
 <translation id="7612619742409846846">Prijavljeni ste na Google kao</translation>
 <translation id="7619072057915878432">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspjelo zbog kvarova na mreži.</translation>
-<translation id="7620146066550602128">Isprobajte <ph name="BEGIN_LINK" />lakši način pregledavanja weba<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Potražite pomoć<ph name="END_LINK1" /> ili <ph name="BEGIN_LINK2" />pretražite ponovo<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Dobro došli u Chrome</translation>
 <translation id="7638584964844754484">Pogrešna zaporka</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Poništi odabir</translation>
 <translation id="784934925303690534">Vremenski raspon</translation>
 <translation id="7851858861565204677">Ostali uređaji</translation>
-<translation id="785312750761189439">Prijeđite prstom prema gore od dna zaslona ili dodirnite gumb Proširi da biste lako pristupili popularnim web-lokacijama i člancima, preuzimanjima i drugim sadržajima</translation>
 <translation id="7875915731392087153">Izradite e-poruku</translation>
 <translation id="7876243839304621966">Ukloni sve</translation>
 <translation id="7882131421121961860">Povijest nije pronađena</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
index 2b2dccc..b56e9eb 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="hu">
 <translation id="1006017844123154345">Online megnyitás</translation>
-<translation id="1036348656032585052">Kikapcsolás</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> hozzáadása…</translation>
 <translation id="1041308826830691739">Webhelyekről</translation>
 <translation id="1049743911850919806">Inkognitómód</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Ezt a webhelyet soha ne fordítsa le</translation>
 <translation id="1291207594882862231">Előzmények, cookie-k, webhelyadatok és a gyorsítótár törlése…</translation>
 <translation id="129553762522093515">Mostanában bezárt</translation>
-<translation id="1320663236730331991">Népszerű webhelyekhez, cikkekhez, letöltésekhez és sok minden máshoz is hozzáférhet egyszerűen, ha felfelé csúsztatja az ujját</translation>
 <translation id="1326317727527857210">Ha hozzá szeretne férni lapjaihoz a többi eszközéről, jelentkezzen be a Chrome-ba.</translation>
 <translation id="1332501820983677155">A Google Chrome-funkciók billentyűparancsai</translation>
 <translation id="136248372334525878">Oldalak előtöltése a gyorsabb betöltés és az offline módban történő olvasás érdekében</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB más alkalmazások által</translation>
 <translation id="2079545284768500474">Visszavonás</translation>
 <translation id="2082238445998314030">Eredmény: <ph name="RESULT_NUMBER" />/<ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Bemutatjuk az új Chrome-ot</translation>
 <translation id="2086652334978798447">A Google által javasolt, személyre szabott tartalmak fogadásához jelentkezzen be a Chrome-ba.</translation>
 <translation id="2091887806945687916">Hang</translation>
 <translation id="209354263896846928">Nyissa meg a képernyő alján található címsávot</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatikus bejelentkezés</translation>
 <translation id="2111511281910874386">Ugrás az oldalhoz</translation>
 <translation id="2122601567107267586">Nem sikerült megnyitni az alkalmazást</translation>
-<translation id="2123074103454259350">Még nem</translation>
 <translation id="2126426811489709554">A Chrome erejével</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> megtakarítva</translation>
 <translation id="213279576345780926">Bezárva: <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Kártya szerkesztése</translation>
 <translation id="2154710561487035718">URL másolása</translation>
 <translation id="2156074688469523661">A többi webhely (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Mondja el nekünk, miért kapcsolta ki az új Chrome-ot</translation>
-<translation id="2185784955520093231">Jelenleg az új Chrome-ot használja</translation>
 <translation id="219985413780390209">Védje meg magát és eszközét a veszélyes webhelyektől</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, internetes alkalmazás. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Folytatás mint <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">A Chrome kevesebb adatot használ az oldal megjelenítéséhez.</translation>
 <translation id="2888126860611144412">A Chrome névjegye</translation>
 <translation id="2891154217021530873">Oldal betöltésének leállítása</translation>
-<translation id="2892933203342091350">Az egyszerűsített nézet engedélyezése minden cikknél</translation>
 <translation id="2900528713135656174">Esemény létrehozása</translation>
 <translation id="2902702728133930130">A Chrome indítása sikertelen volt egy váratlan hiba miatt.</translation>
 <translation id="2903493209154104877">Címek</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">A hamardik felek webhelyei menthetik és olvashatják a cookie-adatokat</translation>
 <translation id="3662546969139119822">Nincsenek előzmények</translation>
 <translation id="3672452749423051839">Navigálási hibákkal kapcsolatos javaslatok</translation>
-<translation id="3682249951633602029">Jelszavai mindenki számára láthatók lesznek, aki hozzáfér az exportált jelszavakat tartalmazó fájlhoz.</translation>
 <translation id="3712575778697986964">Alaphelyzetbe állítja az Adatforgalom-csökkentőt?</translation>
 <translation id="3714981814255182093">A keresősáv megnyitása</translation>
 <translation id="3716182511346448902">Ez az oldal túl sok memóriát használ, ezért a Chrome szünetelteti.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB letöltve</translation>
 <translation id="654446541061731451">Válassza ki a sugározni kívánt lapot</translation>
 <translation id="6545017243486555795">Összes adat törlése</translation>
-<translation id="6550675742724504774">Beállítások</translation>
 <translation id="6556716549745717622">Letiltás, ha a webhely jellemzően tolakodó hirdetéseket jelenít meg (ajánlott)</translation>
 <translation id="6560414384669816528">Keresés a Sogou használatával</translation>
 <translation id="6566259936974865419">A Chrome megspórolt Önnek <ph name="GIGABYTES" /> GB-ot</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Oldja fel a képernyőzárat a jelszó másolásához</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d nyitott lap}other{%1$d nyitott lap}}</translation>
 <translation id="6896758677409633944">Másolás</translation>
-<translation id="6905163627763043954">Kipróbálás</translation>
 <translation id="6910211073230771657">Törölve</translation>
 <translation id="6945221475159498467">Kiválasztás</translation>
 <translation id="6959661084585705671">Másodlagos tárhely</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Nem sikerült lekérni a javaslatokat</translation>
 <translation id="7562080006725997899">Böngészési adatok törlése</translation>
 <translation id="756809126120519699">Chrome-adatok törölve</translation>
-<translation id="7581273696622423628">Kérdőív kitöltése</translation>
 <translation id="7588950540487816470">Fizikai web</translation>
 <translation id="7589445247086920869">Tiltja a jelenlegi keresőmotor számára</translation>
 <translation id="7593557518625677601">Aktiválja újra az Android rendszer szinkronizálását a Chrome-szinkronizáláshoz</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">A szinkronizálás nem működik.</translation>
 <translation id="7612619742409846846">Bejelentkezve a Google rendszerébe mint</translation>
 <translation id="7619072057915878432">A következő fájl letöltése hálózati hibák miatt nem sikerült: <ph name="FILE_NAME" />.</translation>
-<translation id="7620146066550602128">Próbálja ki <ph name="BEGIN_LINK" />a böngészés még egyszerűbb módját<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Kérjen segítséget<ph name="END_LINK1" />, vagy <ph name="BEGIN_LINK2" />keressen rá újra<ph name="END_LINK2" />.</translation>
 <translation id="7626032353295482388">A Chrome üdvözli Önt!</translation>
 <translation id="7638584964844754484">Hibás összetett jelszó</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Kijelölés törlése</translation>
 <translation id="784934925303690534">Időszak</translation>
 <translation id="7851858861565204677">Egyéb eszközök</translation>
-<translation id="785312750761189439">Csúsztassa ujját gyorsan a képernyő aljáról felfelé, vagy kattintson a kibontás gombra a népszerű webhelyek és cikkek, letöltések és egyebek egyszerű eléréséhez.</translation>
 <translation id="7875915731392087153">E-mail létrehozása</translation>
 <translation id="7876243839304621966">Összes eltávolítása</translation>
 <translation id="7882131421121961860">Nincsenek előzmények</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
index b56b5e89..85827c56 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="id">
 <translation id="1006017844123154345">Buka versi Online</translation>
-<translation id="1036348656032585052">Matikan</translation>
 <translation id="1036727731225946849">Menambahkan <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Dari situs</translation>
 <translation id="1049743911850919806">Penyamaran</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Jangan pernah terjemahkan situs ini</translation>
 <translation id="1291207594882862231">Menghapus histori, cookie, data situs, cache...</translation>
 <translation id="129553762522093515">Barusan ditutup</translation>
-<translation id="1320663236730331991">Geser ke atas untuk mengakses situs dan artikel populer, hasil download, dan lain-lain dengan mudah</translation>
 <translation id="1326317727527857210">Untuk mendapatkan tab dari perangkat lainnya, masuk ke Chrome.</translation>
 <translation id="1332501820983677155">Pintasan fitur Google Chrome</translation>
 <translation id="136248372334525878">Pramuat halaman agar loading dan membaca offline lebih cepat</translation>
@@ -116,14 +114,13 @@
 <translation id="1993768208584545658"><ph name="SITE" /> ingin menyandingkan</translation>
 <translation id="1994173015038366702">URL situs</translation>
 <translation id="200815880754187296"><ph name="KILOBYTES" /> KB aplikasi lain</translation>
-<translation id="2015632741368427174">Pengalihan diblokir ke situs:</translation>
+<translation id="2015632741368427174">Pengalihan ke situs di bawah ini diblokir:</translation>
 <translation id="2017836877785168846">Hapus histori dan pelengkapan otomatis di kolom URL.</translation>
 <translation id="2021896219286479412">Kontrol situs layar penuh</translation>
 <translation id="2038563949887743358">Aktifkan Ubah situs desktop</translation>
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB aplikasi lain</translation>
 <translation id="2079545284768500474">Urungkan</translation>
 <translation id="2082238445998314030">Hasil <ph name="RESULT_NUMBER" /> dari <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Memperkenalkan Chrome baru</translation>
 <translation id="2086652334978798447">Untuk mendapatkan konten hasil personalisasi yang disarankan oleh Google, masuk ke Chrome.</translation>
 <translation id="2091887806945687916">Suara</translation>
 <translation id="209354263896846928">Akses kolom URL di bagian bawah halaman</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Masuk Otomatis</translation>
 <translation id="2111511281910874386">Buka halaman</translation>
 <translation id="2122601567107267586">Tidak dapat membuka aplikasi</translation>
-<translation id="2123074103454259350">Belum</translation>
 <translation id="2126426811489709554">Diberdayakan oleh Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> tersimpan</translation>
 <translation id="213279576345780926">Menutup <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Edit kartu</translation>
 <translation id="2154710561487035718">Salin URL</translation>
 <translation id="2156074688469523661">Situs yang tersisa (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Beri tahu kami alasan Anda menonaktifkan Chrome baru</translation>
-<translation id="2185784955520093231">Anda menggunakan Chrome baru</translation>
 <translation id="219985413780390209">Lindungi perangkat dan diri Anda dari situs berbahaya</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, aplikasi web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Lanjutkan sebagai <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome menggunakan data lebih sedikit untuk menampilkan halaman ini kepada Anda</translation>
 <translation id="2888126860611144412">Tentang Chrome</translation>
 <translation id="2891154217021530873">Hentikan pemuatan halaman</translation>
-<translation id="2892933203342091350">Mengaktifkan tampilan sederhana di semua artikel</translation>
 <translation id="2900528713135656174">Buat acara</translation>
 <translation id="2902702728133930130">Chrome gagal memulai karena ada kesalahan yang tidak terduga.</translation>
 <translation id="2903493209154104877">Alamat</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Situs web pihak ketiga dapat menyimpan dan membaca data cookie</translation>
 <translation id="3662546969139119822">Tidak ada histori di sini</translation>
 <translation id="3672452749423051839">Saran untuk kesalahan navigasi</translation>
-<translation id="3682249951633602029">Sandi akan terlihat oleh orang yang dapat melihat file sandi yang diekspor.</translation>
 <translation id="3712575778697986964">Setel ulang Penghemat Kuota Internet?</translation>
 <translation id="3714981814255182093">Membuka Bilah Cari</translation>
 <translation id="3716182511346448902">Halaman ini menggunakan terlalu banyak memori, sehingga Chrome menjedanya.</translation>
@@ -462,7 +454,7 @@
 <translation id="5224771365102442243">Dengan video</translation>
 <translation id="5233638681132016545">Tab baru</translation>
 <translation id="5271967389191913893">Perangkat tidak dapat membuka konten untuk didownload.</translation>
-<translation id="528192093759286357">Seret dari atas dan ketuk tombol kembali untuk keluar dari mode layar penuh.</translation>
+<translation id="528192093759286357">Tarik dari atas dan ketuk tombol kembali untuk keluar dari mode layar penuh.</translation>
 <translation id="5284584623296338184">Perubahan pada bookmark, histori, sandi, dan setelan lainnya tidak akan disinkronkan lagi dengan Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di akun Google Anda.</translation>
 <translation id="5301954838959518834">Oke, mengerti</translation>
 <translation id="5304593522240415983">Bidang ini tidak boleh kosong</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Terdownload <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Pilih tab untuk dipancarkan</translation>
 <translation id="6545017243486555795">Hapus Semua Data</translation>
-<translation id="6550675742724504774">Opsi</translation>
 <translation id="6556716549745717622">Blokir jika situs cenderung menampilkan iklan mengganggu (direkomendasikan)</translation>
 <translation id="6560414384669816528">Menelusuri menggunakan Sogou</translation>
 <translation id="6566259936974865419">Chrome telah menghemat <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Buka kunci untuk menyalin sandi Anda</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d tab terbuka}other{%1$d tab terbuka}}</translation>
 <translation id="6896758677409633944">Salin</translation>
-<translation id="6905163627763043954">Cobalah</translation>
 <translation id="6910211073230771657">Dihapus</translation>
 <translation id="6945221475159498467">Pilih</translation>
 <translation id="6959661084585705671">Penyimpanan sekunder</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Tidak bisa mendapatkan saran</translation>
 <translation id="7562080006725997899">Menghapus data penjelajahan</translation>
 <translation id="756809126120519699">Data Chrome telah dihapus</translation>
-<translation id="7581273696622423628">Ikuti survei</translation>
 <translation id="7588950540487816470">Web Fisik</translation>
 <translation id="7589445247086920869">Memblokir mesin telusur saat ini</translation>
 <translation id="7593557518625677601">Buka setelan Android dan aktifkan kembali sinkronisasi sistem Android untuk memulai Sinkronisasi Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sinkronisasi tidak berfungsi</translation>
 <translation id="7612619742409846846">Masuk ke Google sebagai</translation>
 <translation id="7619072057915878432">Download <ph name="FILE_NAME" /> gagal karena kesalahan jaringan.</translation>
-<translation id="7620146066550602128">Coba <ph name="BEGIN_LINK" />cara yang lebih mudah untuk browsing<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Dapatkan bantuan<ph name="END_LINK1" /> atau <ph name="BEGIN_LINK2" />pindai ulang<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Selamat Menggunakan Chrome</translation>
 <translation id="7638584964844754484">Frasa sandi salah</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Batalkan pilihan</translation>
 <translation id="784934925303690534">Rentang waktu</translation>
 <translation id="7851858861565204677">Perangkat lain</translation>
-<translation id="785312750761189439">Geser ke atas dari bawah layar atau tap tombol luaskan untuk akses mudah ke artikel dan situs populer, hasil download, dan lainnya</translation>
 <translation id="7875915731392087153">Buat email</translation>
 <translation id="7876243839304621966">Hapus semua</translation>
 <translation id="7882131421121961860">Tidak ada histori</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
index 87ce0454..a05e897 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="it">
 <translation id="1006017844123154345">Apri online</translation>
-<translation id="1036348656032585052">Disattiva</translation>
 <translation id="1036727731225946849">Aggiunta di <ph name="WEBAPK_NAME" /> in corso…</translation>
 <translation id="1041308826830691739">Da siti web</translation>
 <translation id="1049743911850919806">In incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Non tradurre mai questo sito</translation>
 <translation id="1291207594882862231">Cancella la cronologia, i cookie, i dati dei siti, la cache…</translation>
 <translation id="129553762522093515">Chiuse di recente</translation>
-<translation id="1320663236730331991">Scorri verso l'alto per accedere facilmente a siti e articoli più letti, download e altro ancora</translation>
 <translation id="1326317727527857210">Accedi a Chrome per trovare le tue schede degli altri dispositivi.</translation>
 <translation id="1332501820983677155">Scorciatoie delle funzioni di Google Chrome</translation>
 <translation id="136248372334525878">Le pagine vengono precaricate per velocizzare il caricamento e per la lettura offline</translation>
@@ -116,14 +114,13 @@
 <translation id="1993768208584545658">Il sito <ph name="SITE" /> desidera accoppiarsi</translation>
 <translation id="1994173015038366702">URL sito</translation>
 <translation id="200815880754187296"><ph name="KILOBYTES" /> kB per altre app</translation>
-<translation id="2015632741368427174">Reindirizzamento al sito bloccato:</translation>
+<translation id="2015632741368427174">Reindirizzamento bloccato al seguente sito:</translation>
 <translation id="2017836877785168846">Consente di cancellare la cronologia e i completamenti automatici nella barra degli indirizzi.</translation>
 <translation id="2021896219286479412">Controlli sito a schermo intero</translation>
 <translation id="2038563949887743358">Attiva Richiedi sito desktop</translation>
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB per altre app</translation>
 <translation id="2079545284768500474">Annulla</translation>
 <translation id="2082238445998314030">Risultato <ph name="RESULT_NUMBER" /> di <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Ecco il nuovo Chrome</translation>
 <translation id="2086652334978798447">Per ricevere contenuti suggeriti appositamente per te da Google, accedi a Chrome.</translation>
 <translation id="2091887806945687916">Audio</translation>
 <translation id="209354263896846928">Accedi alla barra degli indirizzi nella parte inferiore dello schermo</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Accesso automatico</translation>
 <translation id="2111511281910874386">Vai alla pagina</translation>
 <translation id="2122601567107267586">Impossibile aprire l'app</translation>
-<translation id="2123074103454259350">Non ancora</translation>
 <translation id="2126426811489709554">Con tecnologia Chrome</translation>
 <translation id="2131665479022868825">Dati salvati: <ph name="DATA" /></translation>
 <translation id="213279576345780926">La scheda <ph name="TAB_TITLE" /> è stata chiusa</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Modifica la carta</translation>
 <translation id="2154710561487035718">Copia URL</translation>
 <translation id="2156074688469523661">Siti rimanenti (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Dicci perché hai disattivato il nuovo Chrome</translation>
-<translation id="2185784955520093231">Stai usando il nuovo Chrome</translation>
 <translation id="219985413780390209">Proteggi te stesso e il tuo dispositivo da siti pericolosi</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, app web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continua come <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome usa meno dati per mostrarti questa pagina</translation>
 <translation id="2888126860611144412">Informazioni su Chrome</translation>
 <translation id="2891154217021530873">Interrompe il caricamento della pagina</translation>
-<translation id="2892933203342091350">Attiva la Visualizzazione semplificata per tutti gli articoli</translation>
 <translation id="2900528713135656174">Crea evento</translation>
 <translation id="2902702728133930130">Impossibile avviare Chrome a causa di un errore imprevisto.</translation>
 <translation id="2903493209154104877">Indirizzi</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">I siti web di terze parti possono salvare e leggere i dati dei cookie</translation>
 <translation id="3662546969139119822">Nessuna cronologia presente</translation>
 <translation id="3672452749423051839">Suggerimenti per gli errori di navigazione</translation>
-<translation id="3682249951633602029">Le tue password saranno visibili a chiunque abbia accesso al file di password esportato.</translation>
 <translation id="3712575778697986964">Vuoi reimpostare il Risparmio dati?</translation>
 <translation id="3714981814255182093">Apri la barra Trova</translation>
 <translation id="3716182511346448902">Questa pagina è stata messa in pausa da Chromium perché utilizza troppa memoria.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Sono stati scaricati <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Seleziona una scheda da trasmettere</translation>
 <translation id="6545017243486555795">Cancella tutti i dati</translation>
-<translation id="6550675742724504774">Opzioni</translation>
 <translation id="6556716549745717622">Blocca se il sito tende a mostrare annunci invasivi (opzione consigliata)</translation>
 <translation id="6560414384669816528">Ricerche con Sogou</translation>
 <translation id="6566259936974865419">Chrome ti ha fatto risparmiare <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Sblocca per copiare la password</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d scheda aperta}other{%1$d schede aperte}}</translation>
 <translation id="6896758677409633944">Copia</translation>
-<translation id="6905163627763043954">Prova</translation>
 <translation id="6910211073230771657">Eliminato</translation>
 <translation id="6945221475159498467">Seleziona</translation>
 <translation id="6959661084585705671">Archiviazione secondaria</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Impossibile ricevere suggerimenti</translation>
 <translation id="7562080006725997899">Cancellazione dei dati di navigazione in corso</translation>
 <translation id="756809126120519699">Dati di Chrome cancellati</translation>
-<translation id="7581273696622423628">Vai al sondaggio</translation>
 <translation id="7588950540487816470">Physical Web</translation>
 <translation id="7589445247086920869">Blocca motore di ricerca corrente</translation>
 <translation id="7593557518625677601">Apri le impostazioni di Android e abilita nuovamente la sincronizzazione del sistema Android per poter avviare la Sicronizzazione Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">La sincronizzazione non funziona</translation>
 <translation id="7612619742409846846">Accesso effettuato a Google come</translation>
 <translation id="7619072057915878432">Download di <ph name="FILE_NAME" /> non riuscito a causa di errori di rete.</translation>
-<translation id="7620146066550602128">Prova un <ph name="BEGIN_LINK" />modo più semplice di navigare<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Richiedi assistenza<ph name="END_LINK1" /> o <ph name="BEGIN_LINK2" />ripeti la ricerca<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Benvenuto in Chrome</translation>
 <translation id="7638584964844754484">Passphrase sbagliata</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Annulla selezione</translation>
 <translation id="784934925303690534">Intervallo di tempo</translation>
 <translation id="7851858861565204677">Altri dispositivi</translation>
-<translation id="785312750761189439">Scorri verso l'alto dalla parte inferiore dello schermo o tocca il pulsante di espansione per accedere facilmente a siti e articoli più letti, download e altro ancora</translation>
 <translation id="7875915731392087153">Crea email</translation>
 <translation id="7876243839304621966">Rimuovi tutto</translation>
 <translation id="7882131421121961860">Nessuna cronologia trovata</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
index dd08766..d28713f 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="iw">
 <translation id="1006017844123154345">פתח גרסה מקוונת</translation>
-<translation id="1036348656032585052">כבה</translation>
 <translation id="1036727731225946849">מוסיף את <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">מאתרים</translation>
 <translation id="1049743911850919806">גלישה פרטית</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">לעולם אל תתרגם אתר זה</translation>
 <translation id="1291207594882862231">‏נקה את ההיסטוריה, קובצי ה-Cookie, נתוני האתרים, המטמון…</translation>
 <translation id="129553762522093515">נסגרו לאחרונה</translation>
-<translation id="1320663236730331991">החלקה כלפי מעלה מאפשרת לך לגשת בקלות אל אתרים ומאמרים פופולריים, הורדות ועוד</translation>
 <translation id="1326317727527857210">‏כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, היכנס ל-Chrome.</translation>
 <translation id="1332501820983677155">‏מקשי קיצור לתכונות של Google Chrome‏</translation>
 <translation id="136248372334525878">טעינה מקדימה של דפים מאפשרת טעינה מהירה יותר וקריאה במצב לא מקוון</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">‏‎<ph name="GIGABYTES" /> GB ליישומים אחרים</translation>
 <translation id="2079545284768500474">בטל פעולה</translation>
 <translation id="2082238445998314030">תוצאה <ph name="RESULT_NUMBER" /> מתוך <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">‏אנחנו משיקים גירסה חדשה של Chrome</translation>
 <translation id="2086652334978798447">‏כדי לקבל מ-Google הצעות לתוכן מותאם אישית, היכנס אל Chrome.</translation>
 <translation id="2091887806945687916">צליל</translation>
 <translation id="209354263896846928">סרגל הכתובות נמצא בחלק התחתון של המסך</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">כניסה אוטומטית</translation>
 <translation id="2111511281910874386">מעבר לדף</translation>
 <translation id="2122601567107267586">לא ניתן היה לפתוח את היישום</translation>
-<translation id="2123074103454259350">עדיין לא</translation>
 <translation id="2126426811489709554">‏מבוסס על Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> נשמרו</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> נסגר</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">עריכת כרטיס</translation>
 <translation id="2154710561487035718">העתק כתובת אתר</translation>
 <translation id="2156074688469523661">אתרים שנותרו (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">‏חשוב לנו לדעת למה כיבית את הגירסה החדשה של Chrome</translation>
-<translation id="2185784955520093231">‏זו הגירסה החדשה של Chrome</translation>
 <translation id="219985413780390209">הגן על עצמך ועל המכשיר מפני אתרים מסוכנים</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, אפליקציית אינטרנט. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">המשך בשם <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">‏Chrome צורך פחות נתונים כדי להציג לך את הדף הזה</translation>
 <translation id="2888126860611144412">‏מידע כללי על Chrome</translation>
 <translation id="2891154217021530873">הפסק את טעינת הדף</translation>
-<translation id="2892933203342091350">הפעלה של תצוגה נקייה בכל המאמרים</translation>
 <translation id="2900528713135656174">צור אירוע</translation>
 <translation id="2902702728133930130">‏שגיאה בלתי צפויה גרמה לכשל של Chrome בעת ההפעלה.</translation>
 <translation id="2903493209154104877">כתובות</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">‏אתרים של צד שלישי יוכלו לשמור ולקרוא נתונים של קובצי Cookie</translation>
 <translation id="3662546969139119822">ההיסטוריה ריקה</translation>
 <translation id="3672452749423051839">הצעות לשגיאת ניווט</translation>
-<translation id="3682249951633602029">כל מי שיוכל לגשת אל קובץ הסיסמאות המיוצא יוכל לראות את הסיסמאות שלך.</translation>
 <translation id="3712575778697986964">‏לאפס את חוסך הנתונים (Data Saver)?</translation>
 <translation id="3714981814255182093">פתח את סרגל החיפוש</translation>
 <translation id="3716182511346448902">‏הדף הזה מנצל יותר מדי זיכרון, כך שהוא הושהה על-ידי Chrome.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">‏בוצעה הורדה של GB <ph name="GBS" /></translation>
 <translation id="654446541061731451">בחר כרטיסייה להעברת התוכן שלה</translation>
 <translation id="6545017243486555795">נקה את כל הנתונים</translation>
-<translation id="6550675742724504774">אפשרויות</translation>
 <translation id="6556716549745717622">חסום אם האתר נוטה להציג מודעות שמפריעות (מומלץ)</translation>
 <translation id="6560414384669816528">‏השתמש ב-Sogou לחיפוש</translation>
 <translation id="6566259936974865419">‏Chrome חסך לך ‎<ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">ביטול הנעילה יאפשר להעתיק את הסיסמה</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{כרטיסייה פתוחה אחת}two{שתי כרטיסיות פתוחות}many{‏%1$d כרטיסיות פתוחות}other{‏%1$d כרטיסיות פתוחות}}</translation>
 <translation id="6896758677409633944">העתק</translation>
-<translation id="6905163627763043954">נסה זאת</translation>
 <translation id="6910211073230771657">נמחק</translation>
 <translation id="6945221475159498467">בחר</translation>
 <translation id="6959661084585705671">אחסון משני</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">לא ניתן לקבל הצעות</translation>
 <translation id="7562080006725997899">מנקה נתוני גלישה</translation>
 <translation id="756809126120519699">‏נתוני Chrome נוקו</translation>
-<translation id="7581273696622423628">השתתף בסקר</translation>
 <translation id="7588950540487816470">האינטרנט הווירטופיזי</translation>
 <translation id="7589445247086920869">חסום למנוע החיפוש הנוכחי</translation>
 <translation id="7593557518625677601">‏פתח את הגדרות Android והפעל מחדש את הסנכרון של מערכת Android כדי להתחיל בסנכרון של Chrome</translation>
@@ -736,11 +725,10 @@
 <translation id="7605594153474022051">הסנכרון לא עובד</translation>
 <translation id="7612619742409846846">‏מחובר ל-Google בשם</translation>
 <translation id="7619072057915878432">הורדת <ph name="FILE_NAME" /> נכשלה עקב כשלים ברשת.</translation>
-<translation id="7620146066550602128">יש <ph name="BEGIN_LINK" />דרך קלה יותר לגלוש באינטרנט<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />קבל עזרה<ph name="END_LINK1" /> או <ph name="BEGIN_LINK2" />חפש שוב<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">‏ברוכים הבאים ל-Chrome</translation>
 <translation id="7638584964844754484">ביטוי סיסמה שגוי</translation>
-<translation id="7641339528570811325">נקה את נתוני הגלישה...</translation>
+<translation id="7641339528570811325">מחיקת נתוני הגלישה...</translation>
 <translation id="7648422057306047504">‏הצפן סיסמאות באמצעות פרטי הכניסה שלך ל-Google</translation>
 <translation id="7649070708921625228">עזרה</translation>
 <translation id="7658239707568436148">ביטול</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">בטל את הבחירה</translation>
 <translation id="784934925303690534">טווח זמן</translation>
 <translation id="7851858861565204677">מכשירים אחרים</translation>
-<translation id="785312750761189439">אפשר לגשת בקלות אל אתרים ומאמרים פופולריים, הורדות ועוד על-ידי החלקה כלפי מעלה מתחתית המסך או הקשה על לחצן ההרחבה.</translation>
 <translation id="7875915731392087153">צור הודעת אימייל</translation>
 <translation id="7876243839304621966">הסר הכל</translation>
 <translation id="7882131421121961860">לא נמצאה היסטוריה</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
index 484a4e5..fb76b72 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ja">
 <translation id="1006017844123154345">オンライン版を開く</translation>
-<translation id="1036348656032585052">オフにする</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> を追加しています...</translation>
 <translation id="1041308826830691739">ウェブサイトから</translation>
 <translation id="1049743911850919806">シークレット モード</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">このサイトは翻訳しない</translation>
 <translation id="1291207594882862231">履歴、Cookie、サイトデータ、キャッシュを消去…</translation>
 <translation id="129553762522093515">最近閉じたタブ</translation>
-<translation id="1320663236730331991">上にスワイプすると、人気の高いサイトや記事、ダウンロードしたアイテムなどにすばやくアクセスできます</translation>
 <translation id="1326317727527857210">他の端末と同じタブを使用するには、Chrome にログインします。</translation>
 <translation id="1332501820983677155">Google Chrome 機能のショートカット</translation>
 <translation id="136248372334525878">ページをプリロードすると、読み込みが速くなり、オフラインでの閲覧も可能になります</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB を他のアプリで使用中</translation>
 <translation id="2079545284768500474">元に戻す</translation>
 <translation id="2082238445998314030">結果 <ph name="TOTAL_RESULTS" /> 件中 <ph name="RESULT_NUMBER" /> 件目</translation>
-<translation id="2086116129690175316">新しい Chrome のご紹介</translation>
 <translation id="2086652334978798447">ユーザーに合わせた Google からのおすすめコンテンツを表示するには、Chrome にログインします。</translation>
 <translation id="2091887806945687916">音声</translation>
 <translation id="209354263896846928">アドレスバーは画面下部にあります</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">自動ログイン</translation>
 <translation id="2111511281910874386">ページを開く</translation>
 <translation id="2122601567107267586">アプリを開けませんでした</translation>
-<translation id="2123074103454259350">いいえ</translation>
 <translation id="2126426811489709554">Powered by Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> 削減しました</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> を閉じました</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">カードを編集</translation>
 <translation id="2154710561487035718">URL をコピー</translation>
 <translation id="2156074688469523661">その他のサイト(<ph name="NUMBER_OF_SITES" /> 件)</translation>
-<translation id="2172731970979873816">新しい Chrome を無効にした理由をお聞かせください</translation>
-<translation id="2185784955520093231">新しい Chrome を使用しています</translation>
 <translation id="219985413780390209">危険なサイトからユーザーとデバイスを保護する</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" /> はウェブアプリです(<ph name="APP_URL" />)。</translation>
 <translation id="2227444325776770048"><ph name="USER_FULL_NAME" /> として続行</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome ではデータ使用量を削減してこのページを表示しています</translation>
 <translation id="2888126860611144412">Chrome について</translation>
 <translation id="2891154217021530873">ページの読み込みを停止</translation>
-<translation id="2892933203342091350">すべての記事で簡易表示を有効にする</translation>
 <translation id="2900528713135656174">予定を作成</translation>
 <translation id="2902702728133930130">Chrome の起動時に予期しないエラーが発生し、起動できませんでした。</translation>
 <translation id="2903493209154104877">住所</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">サードパーティのウェブサイトに Cookie データの保存と読み取りを許可する</translation>
 <translation id="3662546969139119822">履歴はありません</translation>
 <translation id="3672452749423051839">アクセスエラー時の候補表示</translation>
-<translation id="3682249951633602029">あなたのパスワードは、エクスポートしたパスワード ファイルにアクセスできるユーザーに見られる可能性があります。</translation>
 <translation id="3712575778697986964">データセーバーをリセットしますか?</translation>
 <translation id="3714981814255182093">検索バーを開く</translation>
 <translation id="3716182511346448902">このページは大量のメモリを使用しているため、Chrome により一時停止されました。</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB をダウンロード済み</translation>
 <translation id="654446541061731451">ビームするにはタブを選択してください</translation>
 <translation id="6545017243486555795">すべてのデータを消去</translation>
-<translation id="6550675742724504774">オプション</translation>
 <translation id="6556716549745717622">煩わしい広告がよく表示されるサイトの場合にブロック(推奨)</translation>
 <translation id="6560414384669816528">Sogou で検索します</translation>
 <translation id="6566259936974865419">Chrome で <ph name="GIGABYTES" /> GB の容量を節約しました</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">パスワードをコピーするにはロックを解除してください</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d 個の開いているタブ}other{%1$d 個の開いているタブ}}</translation>
 <translation id="6896758677409633944">コピー</translation>
-<translation id="6905163627763043954">使ってみる</translation>
 <translation id="6910211073230771657">削除済み</translation>
 <translation id="6945221475159498467">選択</translation>
 <translation id="6959661084585705671">予備の保存先</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">候補を取得できません</translation>
 <translation id="7562080006725997899">閲覧データの消去</translation>
 <translation id="756809126120519699">Chrome データの消去完了</translation>
-<translation id="7581273696622423628">アンケートに答える</translation>
 <translation id="7588950540487816470">フィジカルウェブ</translation>
 <translation id="7589445247086920869">現在の検索エンジンをブロックする</translation>
 <translation id="7593557518625677601">Chrome の同期を開始するには、Android の設定で Android システムの同期を再度有効にします</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">同期が機能していません</translation>
 <translation id="7612619742409846846">次のユーザーとして Google にログインしています:</translation>
 <translation id="7619072057915878432">ネットワーク障害が発生したため、<ph name="FILE_NAME" /> をダウンロードできませんでした。</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />より簡単な閲覧方法<ph name="END_LINK" />をお試しください</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />ヘルプ<ph name="END_LINK1" />または<ph name="BEGIN_LINK2" />再スキャン<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Chrome にようこそ</translation>
 <translation id="7638584964844754484">パスフレーズが正しくありません</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">選択解除</translation>
 <translation id="784934925303690534">期間</translation>
 <translation id="7851858861565204677">その他のデバイス</translation>
-<translation id="785312750761189439">画面を下から上にスワイプするか、展開ボタンをタップすると、人気の高いサイトや記事、ダウンロードしたアイテムなどにすばやくアクセスできます</translation>
 <translation id="7875915731392087153">メールを作成</translation>
 <translation id="7876243839304621966">すべて削除</translation>
 <translation id="7882131421121961860">履歴が見つかりません</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
index b7e7cad8..0d01cae 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ko">
 <translation id="1006017844123154345">온라인 열기</translation>
-<translation id="1036348656032585052">사용 중지</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> 추가 중...</translation>
 <translation id="1041308826830691739">웹사이트 알림</translation>
 <translation id="1049743911850919806">시크릿</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">이 사이트 번역 안함</translation>
 <translation id="1291207594882862231">방문 기록, 쿠키, 사이트 데이터, 캐시 삭제…</translation>
 <translation id="129553762522093515">최근에 닫은 탭</translation>
-<translation id="1320663236730331991">위로 스와이프하여 인기 사이트 및 기사, 다운로드 항목 등에 간편하게 액세스하세요</translation>
 <translation id="1326317727527857210">다른 기기에서 탭을 가져오려면 Chrome에 로그인하세요.</translation>
 <translation id="1332501820983677155">Chrome 기능 단축키</translation>
 <translation id="136248372334525878">더 빠른 로드와 오프라인 읽기를 위해 페이지를 미리 로드합니다</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">기타 앱 <ph name="GIGABYTES" />GB</translation>
 <translation id="2079545284768500474">실행취소</translation>
 <translation id="2082238445998314030">전체 결과 <ph name="TOTAL_RESULTS" />개 중 <ph name="RESULT_NUMBER" />개</translation>
-<translation id="2086116129690175316">새 Chrome을 소개합니다</translation>
 <translation id="2086652334978798447">Google에서 추천한 맞춤설정 콘텐츠를 받으려면 Chrome에 로그인합니다.</translation>
 <translation id="2091887806945687916">소리</translation>
 <translation id="209354263896846928">화면 하단에서 검색주소창에 액세스하세요</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">자동 로그인</translation>
 <translation id="2111511281910874386">페이지로 이동</translation>
 <translation id="2122601567107267586">앱을 열 수 없음</translation>
-<translation id="2123074103454259350">아직 안함</translation>
 <translation id="2126426811489709554">Chrome에서 실행 중</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> 절약됨</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> 닫음</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">카드 수정</translation>
 <translation id="2154710561487035718">URL 복사</translation>
 <translation id="2156074688469523661">남은 사이트(<ph name="NUMBER_OF_SITES" />개)</translation>
-<translation id="2172731970979873816">새 Chrome을 사용 중지한 이유를 알려주세요</translation>
-<translation id="2185784955520093231">새 Chrome을 사용 중입니다</translation>
 <translation id="219985413780390209">위험한 사이트로부터 사용자와 기기 보호</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, 웹 앱. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048"><ph name="USER_FULL_NAME" />(으)로 계속</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome에서 이 페이지를 표시할 때 데이터가 더 적게 사용됩니다.</translation>
 <translation id="2888126860611144412">크롬 정보</translation>
 <translation id="2891154217021530873">페이지 로딩 중지</translation>
-<translation id="2892933203342091350">모든 기사에서 간단히 보기 사용</translation>
 <translation id="2900528713135656174">일정 만들기</translation>
 <translation id="2902702728133930130">예기치 않은 오류로 인해 Chrome을 시작하지 못했습니다.</translation>
 <translation id="2903493209154104877">주소</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">타사 웹사이트에서 쿠키 데이터를 저장하고 읽을 수 있도록 허용</translation>
 <translation id="3662546969139119822">기록 없음</translation>
 <translation id="3672452749423051839">탐색 오류 시 추천사항 표시</translation>
-<translation id="3682249951633602029">내보낸 비밀번호 파일을 볼 수 있는 모든 사용자에게 비밀번호가 표시됩니다.</translation>
 <translation id="3712575778697986964">데이터 절약 모드를 초기화하시겠습니까?</translation>
 <translation id="3714981814255182093">찾기 창 열기</translation>
 <translation id="3716182511346448902">페이지에서 너무 많은 메모리를 사용하므로 Chrome에서 페이지를 일시중지했습니다.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" />GB 다운로드됨</translation>
 <translation id="654446541061731451">공유할 탭을 선택하세요.</translation>
 <translation id="6545017243486555795">모든 데이터 삭제</translation>
-<translation id="6550675742724504774">옵션</translation>
 <translation id="6556716549745717622">사이트에 방해가 되는 광고를 표시하는 경향이 있는 경우 차단(권장)</translation>
 <translation id="6560414384669816528">Sogou로 검색</translation>
 <translation id="6566259936974865419">Chrome을 통해 <ph name="GIGABYTES" />GB를 절약했습니다.</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">비밀번호를 복사하려면 잠금 해제하세요</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d개의 열린 탭}other{%1$d개의 열린 탭}}</translation>
 <translation id="6896758677409633944">복사</translation>
-<translation id="6905163627763043954">사용해 보기</translation>
 <translation id="6910211073230771657">삭제됨</translation>
 <translation id="6945221475159498467">선택</translation>
 <translation id="6959661084585705671">보조 저장소</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">추천을 받을 수 없음</translation>
 <translation id="7562080006725997899">인터넷 사용 기록 삭제</translation>
 <translation id="756809126120519699">Chrome 데이터 삭제됨</translation>
-<translation id="7581273696622423628">설문조사 참여</translation>
 <translation id="7588950540487816470">피지컬 웹</translation>
 <translation id="7589445247086920869">현재 검색 엔진에 허용 안함</translation>
 <translation id="7593557518625677601">Android 설정을 열고 Android 시스템 동기화를 다시 사용 설정하여 Chrome 동기화를 시작합니다.</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">동기화가 작동하지 않음</translation>
 <translation id="7612619742409846846">다음 계정으로 Google에 로그인함:</translation>
 <translation id="7619072057915878432">네트워크에 문제가 발생하여 <ph name="FILE_NAME" />을(를) 다운로드할 수 없습니다.</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />웹을 더 간편하게 탐색<ph name="END_LINK" />해 보세요.</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />도움말 보기<ph name="END_LINK1" /> 또는 <ph name="BEGIN_LINK2" />다시 검색하기<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Chrome에 오신 것을 환영합니다.</translation>
 <translation id="7638584964844754484">암호가 잘못되었습니다.</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">선택 취소</translation>
 <translation id="784934925303690534">기간</translation>
 <translation id="7851858861565204677">다른 기기</translation>
-<translation id="785312750761189439">화면 하단에서 위로 스와이프하거나 펼치기 버튼을 탭하여 인기 사이트 및 기사, 다운로드 항목 등에 간단히 액세스하세요</translation>
 <translation id="7875915731392087153">이메일 만들기</translation>
 <translation id="7876243839304621966">모두 삭제</translation>
 <translation id="7882131421121961860">방문 기록이 없습니다.</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
index 6363db28..afe7c15a 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="lt">
 <translation id="1006017844123154345">Atidaryti prisijungus</translation>
-<translation id="1036348656032585052">Išjungti</translation>
 <translation id="1036727731225946849">Pridedamas APK „<ph name="WEBAPK_NAME" />“...</translation>
 <translation id="1041308826830691739">Iš svetainių</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Niekada neversti šios svetainės</translation>
 <translation id="1291207594882862231">Išvalykite istoriją, slapukus, svetainės duomenis, talpyklą…</translation>
 <translation id="129553762522093515">Neseniai uždarytas</translation>
-<translation id="1320663236730331991">Perbraukite aukštyn, kad lengvai pasiektumėte populiarius straipsnius, svetaines, atsisiuntimus ir daugiau</translation>
 <translation id="1326317727527857210">Prisijunkite prie „Chrome“, kad pasiektumėte skirtukus iš kitų įrenginių.</translation>
 <translation id="1332501820983677155">„Google Chrome“ funkcijų spartieji klavišai</translation>
 <translation id="136248372334525878">Iš anksto įkeliami puslapiai, kad įkėlimo procesas vyktų greičiau ir būtų galima skaityti neprisijungus</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB užima kitos programos</translation>
 <translation id="2079545284768500474">Anuliuoti</translation>
 <translation id="2082238445998314030">Rezultatų: <ph name="RESULT_NUMBER" /> iš <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Pristatome naująją „Chrome“</translation>
 <translation id="2086652334978798447">Jei norite gauti „Google“ siūlomo suasmeninto turinio, prisijunkite prie „Chrome“.</translation>
 <translation id="2091887806945687916">Garsas</translation>
 <translation id="209354263896846928">Pasiekite adreso juostą, esančią ekrano apačioje</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatinis prisijungimas</translation>
 <translation id="2111511281910874386">Eiti į puslapį</translation>
 <translation id="2122601567107267586">Nepavyko atidaryti programos</translation>
-<translation id="2123074103454259350">Dar ne</translation>
 <translation id="2126426811489709554">Teikia „Chrome“</translation>
 <translation id="2131665479022868825">Išsaugota: <ph name="DATA" /></translation>
 <translation id="213279576345780926">„<ph name="TAB_TITLE" />“ uždaryta</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Kortelės informacijos redagavimas</translation>
 <translation id="2154710561487035718">Kopijuoti URL adresą</translation>
 <translation id="2156074688469523661">Likusios svetainės (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Nurodykite, kodėl išjungėte naująją „Chrome“</translation>
-<translation id="2185784955520093231">Naudojate naująją „Chrome“</translation>
 <translation id="219985413780390209">Apsaugokite save ir įrenginį nuo pavojingų svetainių</translation>
 <translation id="2206488550163399966">„<ph name="APP_NAME" />“, žiniatinklio programa. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Tęsti kaip <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">„Chrome“ naudoja mažiau duomenų, kad parodytų jums šį puslapį</translation>
 <translation id="2888126860611144412">Apie „Chrome“</translation>
 <translation id="2891154217021530873">Sustabdyti puslapio įkėlimą</translation>
-<translation id="2892933203342091350">Visuose straipsniuose įgalinti supaprastintą rodinį</translation>
 <translation id="2900528713135656174">Sukurti įvykį</translation>
 <translation id="2902702728133930130">Nepavyko paleisti „Chrome“, nes kilo netikėta klaida.</translation>
 <translation id="2903493209154104877">Adresai</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Trečiųjų šalių svetainės gali saugoti ir nuskaityti slapukų duomenis</translation>
 <translation id="3662546969139119822">Nėra istorijos elementų</translation>
 <translation id="3672452749423051839">Naršymo klaidų pasiūlymai</translation>
-<translation id="3682249951633602029">Jūsų slaptažodžiai bus matomi visiems, kurie gali peržiūrėti eksportuotą slaptažodžių failą.</translation>
 <translation id="3712575778697986964">Iš naujo nustatyti Duomenų taupymo priemonę?</translation>
 <translation id="3714981814255182093">Atidaryti radimo juostą</translation>
 <translation id="3716182511346448902">Šis puslapis naudoja per daug atminties, todėl „Chrome“ jį pristabdė.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Atsisiųsta <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Kad perduotumėte, pasirinkite skirtuką</translation>
 <translation id="6545017243486555795">Išvalyti visus duomenis</translation>
-<translation id="6550675742724504774">Parinktys</translation>
 <translation id="6556716549745717622">Blokuoti, jei svetainėje bandoma rodyti nepageidaujamus skelbimus (rekomenduojama)</translation>
 <translation id="6560414384669816528">Atlikti paiešką naudojant „Sogou“</translation>
 <translation id="6566259936974865419">„Chrome“ sutaupė jums <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Atrakinkite, kad galėtumėte kopijuoti slaptažodį</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{Atidarytas %1$d skirtukas}one{Atidarytas %1$d skirtukas}few{Atidaryti %1$d skirtukai}many{Atidaryta %1$d skirtuko}other{Atidaryta %1$d skirtukų}}</translation>
 <translation id="6896758677409633944">Kopijuoti</translation>
-<translation id="6905163627763043954">Išbandyti</translation>
 <translation id="6910211073230771657">Ištrintas</translation>
 <translation id="6945221475159498467">Pasirinkti</translation>
 <translation id="6959661084585705671">Antrinė saugykla</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Nepavyksta gauti pasiūlymų</translation>
 <translation id="7562080006725997899">Naršymo duomenų išvalymas</translation>
 <translation id="756809126120519699">Išvalyti „Chrome“ duomenys</translation>
-<translation id="7581273696622423628">Dalyvauti apklausoje</translation>
 <translation id="7588950540487816470">Fizinis žiniatinklis</translation>
 <translation id="7589445247086920869">Blokuoti dabartiniam paieškos varikliui</translation>
 <translation id="7593557518625677601">Atid. „Android“ nust. ir iš n. įgal. „Android“ sist., kad prad. „Chrome“ sinchr.</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sinchronizavimas neveikia</translation>
 <translation id="7612619742409846846">Prisijungta prie „Google“ kaip</translation>
 <translation id="7619072057915878432">Nepavyko atsisiųsti „<ph name="FILE_NAME" />“ dėl tinklo trikčių.</translation>
-<translation id="7620146066550602128">Išbandykite <ph name="BEGIN_LINK" />paprastesnį naršymo būdą<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Gaukite pagalbos<ph name="END_LINK1" /> arba <ph name="BEGIN_LINK2" />ieškokite iš naujo<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Sveiki, tai „Chrome“</translation>
 <translation id="7638584964844754484">Neteisinga slaptafrazė</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Atšaukti pasirinkimą</translation>
 <translation id="784934925303690534">Laikotarpis</translation>
 <translation id="7851858861565204677">Kiti įrenginiai</translation>
-<translation id="785312750761189439">Nuo ekrano apačios perbraukite aukštyn arba palieskite išskleidimo mygtuką, kad matytumėte populiarias svetaines, straipsnius, atsisiuntimus ir daugiau</translation>
 <translation id="7875915731392087153">Kurti el. laišką</translation>
 <translation id="7876243839304621966">Pašalinti viską</translation>
 <translation id="7882131421121961860">Nerasta istorijos</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
index fb8d4f9..b3c87cf 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="lv">
 <translation id="1006017844123154345">Atvērt tiešsaistē</translation>
-<translation id="1036348656032585052">Izslēgt</translation>
 <translation id="1036727731225946849">Tiek pievienots <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">No vietnēm</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nekad netulkot šo vietni</translation>
 <translation id="1291207594882862231">Dzēst vēsturi, sīkfailus, vietnes datus, kešatmiņu…</translation>
 <translation id="129553762522093515">Nesen aizvērtas</translation>
-<translation id="1320663236730331991">Velciet augšup, lai ērti piekļūtu populārām vietnēm un rakstiem, lejupielādēm, kā arī citam saturam.</translation>
 <translation id="1326317727527857210">Pierakstieties pārlūkā Chrome, lai būtu pieejamas cilnes no citām jūsu ierīcēm.</translation>
 <translation id="1332501820983677155">Google Chrome funkciju īsinājumtaustiņi</translation>
 <translation id="136248372334525878">Veiciet lapu pirmsielādi, lai ātrāk ielādētu lapas un lasītu tās bezsaistē.</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Citas lietotnes: <ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474">Atsaukt</translation>
 <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. rezultāts no <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Iepazīstieties ar jauno Chrome</translation>
 <translation id="2086652334978798447">Lai saņemtu Google ieteikto personalizēto saturu, pierakstieties pārlūkā Chrome.</translation>
 <translation id="2091887806945687916">Signāls</translation>
 <translation id="209354263896846928">Piekļūstiet adreses joslai ekrāna apakšdaļā</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automātiski pierakstīties</translation>
 <translation id="2111511281910874386">Doties uz lapu</translation>
 <translation id="2122601567107267586">Nevarēja atvērt lietotni</translation>
-<translation id="2123074103454259350">Vēl ne</translation>
 <translation id="2126426811489709554">Nodrošina Chrome</translation>
 <translation id="2131665479022868825">Ietaupījums: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Tika aizvērta cilne <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Kartes informācijas rediģēšana</translation>
 <translation id="2154710561487035718">Kopēt URL</translation>
 <translation id="2156074688469523661">Pārējās vietnes (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Pastāstiet, kāpēc izslēdzāt jauno Chrome</translation>
-<translation id="2185784955520093231">Jūs izmantojat jauno Chrome</translation>
 <translation id="219985413780390209">Aizsargāt jūs un ierīci pret bīstamām vietnēm</translation>
 <translation id="2206488550163399966">Tīmekļa lietotne <ph name="APP_NAME" />. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Turpināt kā: <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome izmanto mazāk datu, lai parādītu jums šo lapu.</translation>
 <translation id="2888126860611144412">Par Chrome</translation>
 <translation id="2891154217021530873">Pārtraukt lapas ielādi</translation>
-<translation id="2892933203342091350">Iespējot vienkāršoto skatu visiem rakstiem</translation>
 <translation id="2900528713135656174">Izveidot pasākumu</translation>
 <translation id="2902702728133930130">Pārlūka Chrome palaišanas laikā radās neparedzēta kļūda.</translation>
 <translation id="2903493209154104877">Adreses</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Trešo pušu vietnes var saglabāt un lasīt sīkfailu datus</translation>
 <translation id="3662546969139119822">Nav vēstures</translation>
 <translation id="3672452749423051839">Navigācijas kļūdu ieteikumi</translation>
-<translation id="3682249951633602029">Jūsu paroles būs redzamas ikvienam, kas var skatīt eksportēto failu ar parolēm.</translation>
 <translation id="3712575778697986964">Vai atiestatīt datu lietojuma samazinātāju?</translation>
 <translation id="3714981814255182093">Atvērt atrašanas joslu</translation>
 <translation id="3716182511346448902">Šī lapa izmanto pārāk daudz atmiņas, tādēļ Chrome to apturēja.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Lejupielādēts: <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Atlasiet cilni, ko kopīgot.</translation>
 <translation id="6545017243486555795">Notīrīt visus datus</translation>
-<translation id="6550675742724504774">Opcijas</translation>
 <translation id="6556716549745717622">Bloķēt, ja vietnē parasti tiek rādītas traucējošas reklāmas (ieteicams)</translation>
 <translation id="6560414384669816528">Meklēšana, izmantojot Sogou</translation>
 <translation id="6566259936974865419">Pārlūkā Chrome esat ietaupījis <ph name="GIGABYTES" /> GB.</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Atbloķējiet, lai kopētu paroli</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d atvērta cilne}zero{%1$d atvērtas cilnes}one{%1$d atvērta cilne}other{%1$d atvērtas cilnes}}</translation>
 <translation id="6896758677409633944">Kopēt</translation>
-<translation id="6905163627763043954">Izmēģināt</translation>
 <translation id="6910211073230771657">Dzēsts</translation>
 <translation id="6945221475159498467">Atlasīt</translation>
 <translation id="6959661084585705671">Sekundārā krātuve</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Nevar iegūt ieteikumus.</translation>
 <translation id="7562080006725997899">Notiek pārlūkošanas datu notīrīšana</translation>
 <translation id="756809126120519699">Chrome dati tika notīrīti</translation>
-<translation id="7581273696622423628">Piedalīties aptaujā</translation>
 <translation id="7588950540487816470">Fiziskais tīmeklis</translation>
 <translation id="7589445247086920869">Aizliegšana pašreizējai meklētājprogrammai</translation>
 <translation id="7593557518625677601">Lai sāktu Chrome sinhronizēšanu, atveriet Android iestatījumus un atkārtoti iespējojiet Android sistēmas sinhronizēšanu</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sinhronizācija nedarbojas</translation>
 <translation id="7612619742409846846">Pierakstījies Google kontā kā</translation>
 <translation id="7619072057915878432">Neizdevās lejupielādēt failu <ph name="FILE_NAME" />, jo radās tīkla kļūdas.</translation>
-<translation id="7620146066550602128">Izmēģiniet <ph name="BEGIN_LINK" />ērtāku pārlūkošanas veidu<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Saņemiet palīdzību<ph name="END_LINK1" /> vai <ph name="BEGIN_LINK2" />meklējiet ierīces atkārtoti<ph name="END_LINK2" />.</translation>
 <translation id="7626032353295482388">Laipni lūdzam pārlūkā Chrome</translation>
 <translation id="7638584964844754484">Nepareiza ieejas frāze</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Atcelt atlasi</translation>
 <translation id="784934925303690534">Laika periods</translation>
 <translation id="7851858861565204677">Citas ierīces</translation>
-<translation id="785312750761189439">Lai ātri piekļūtu populārām vietnēm un iecienītākajiem rakstiem, lejupielādēm un citai informācijai, ekrāna apakšdaļā velciet augšup vai pieskarieties izvēršanas pogai.</translation>
 <translation id="7875915731392087153">Izveidojiet e-pasta ziņojumu.</translation>
 <translation id="7876243839304621966">Noņemt visu</translation>
 <translation id="7882131421121961860">Vēsture nav atrasta</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
index 4972b55..e755a06 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="nl">
 <translation id="1006017844123154345">Online openen</translation>
-<translation id="1036348656032585052">Uitschakelen</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> toevoegen...</translation>
 <translation id="1041308826830691739">Van websites</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Deze site nooit vertalen</translation>
 <translation id="1291207594882862231">Geschiedenis, cookies, sitegegevens, cachegeheugen wissen…</translation>
 <translation id="129553762522093515">Recent gesloten</translation>
-<translation id="1320663236730331991">Veeg omhoog om eenvoudig toegang te krijgen tot populaire sites en artikelen, downloads en meer</translation>
 <translation id="1326317727527857210">Log in bij Chrome om de tabbladen van je andere apparaten te bekijken.</translation>
 <translation id="1332501820983677155">Functiesneltoetsen in Google Chrome</translation>
 <translation id="136248372334525878">Pagina's vooraf laden voor sneller laden en offline lezen</translation>
@@ -83,7 +81,7 @@
 <translation id="1660204651932907780">Toestaan dat sites geluid afspelen (aanbevolen)</translation>
 <translation id="1670399744444387456">Basis</translation>
 <translation id="1671236975893690980">Download in behandeling…</translation>
-<translation id="1674523662097951983">Bladwijzers wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
+<translation id="1674523662097951983">Het item Bladwijzers wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
 <translation id="169033420419426091">Downloaden van <ph name="FILE_NAME" /> is mislukt door een ontbrekende SD-kaart.</translation>
 <translation id="1709438864123551175">Databesparing</translation>
 <translation id="1718835860248848330">Afgelopen uur</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB voor andere apps</translation>
 <translation id="2079545284768500474">Ongedaan maken</translation>
 <translation id="2082238445998314030">Resultaat <ph name="RESULT_NUMBER" /> van <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Maak kennis met de nieuwe versie van Chrome</translation>
 <translation id="2086652334978798447">Log in bij Chrome om suggesties met gepersonaliseerde content van Google te ontvangen.</translation>
 <translation id="2091887806945687916">Geluid</translation>
 <translation id="209354263896846928">Je hebt onderaan je scherm toegang tot de adresbalk</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatisch inloggen</translation>
 <translation id="2111511281910874386">Ga naar pagina</translation>
 <translation id="2122601567107267586">Kan app niet openen</translation>
-<translation id="2123074103454259350">Nog niet</translation>
 <translation id="2126426811489709554">Mogelijk gemaakt door Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> bespaard</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> gesloten</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Kaart bewerken</translation>
 <translation id="2154710561487035718">URL kopiëren</translation>
 <translation id="2156074688469523661">Resterende sites (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Laat ons weten waarom je de nieuwe versie van Chrome hebt uitgeschakeld</translation>
-<translation id="2185784955520093231">Je gebruikt de nieuwe versie van Chrome</translation>
 <translation id="219985413780390209">Jou en je apparaat beschermen tegen gevaar</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, webapp. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Doorgaan als <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome gebruikt minder data om deze pagina weer te geven</translation>
 <translation id="2888126860611144412">Over Chrome</translation>
 <translation id="2891154217021530873">Stoppen met het laden van de pagina</translation>
-<translation id="2892933203342091350">Vereenvoudigde weergave inschakelen voor alle artikelen</translation>
 <translation id="2900528713135656174">Afspraak maken</translation>
 <translation id="2902702728133930130">Kan Chrome niet starten door een onverwachte fout.</translation>
 <translation id="2903493209154104877">Adressen</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Websites van derden kunnen cookiegegevens opslaan en lezen</translation>
 <translation id="3662546969139119822">Geen geschiedenis hier</translation>
 <translation id="3672452749423051839">Suggesties bij navigatiefouten</translation>
-<translation id="3682249951633602029">Je wachtwoorden zijn zichtbaar voor iedereen die het geëxporteerde bestand met wachtwoorden kan bekijken.</translation>
 <translation id="3712575778697986964">Databesparing resetten?</translation>
 <translation id="3714981814255182093">De zoekbalk openen</translation>
 <translation id="3716182511346448902">Omdat deze pagina te veel geheugen gebruikt, heeft Chrome de pagina onderbroken.</translation>
@@ -555,7 +547,7 @@
 <translation id="5956665950594638604">Helpcentrum van Chrome openen in een nieuw tabblad</translation>
 <translation id="5958275228015807058">Vind je bestanden en pagina's in Downloads</translation>
 <translation id="5962718611393537961">Tik om samen te vouwen</translation>
-<translation id="5974562976030145789">Downloads wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
+<translation id="5974562976030145789">Het item Downloads wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
 <translation id="6000066717592683814">Google blijven gebruiken</translation>
 <translation id="6031101910111098835">Samengevouwen; klik om uit te vouwen</translation>
 <translation id="6039379616847168523">Naar het volgende tabblad gaan</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB gedownload</translation>
 <translation id="654446541061731451">Selecteer een tabblad om te beamen</translation>
 <translation id="6545017243486555795">Alle gegevens wissen</translation>
-<translation id="6550675742724504774">Opties</translation>
 <translation id="6556716549745717622">Blokkeren als de site opdringerige advertenties vertoont (aanbevolen)</translation>
 <translation id="6560414384669816528">Zoeken met Sogou</translation>
 <translation id="6566259936974865419">Chrome bespaart je <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Ontgrendelen om je wachtwoord te kopiëren</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d tabblad geopend}other{%1$d tabbladen geopend}}</translation>
 <translation id="6896758677409633944">Kopieer</translation>
-<translation id="6905163627763043954">Uitproberen</translation>
 <translation id="6910211073230771657">Verwijderd</translation>
 <translation id="6945221475159498467">Selecteren</translation>
 <translation id="6959661084585705671">Secundaire opslag</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Kan suggesties niet ophalen</translation>
 <translation id="7562080006725997899">Browsegegevens wissen</translation>
 <translation id="756809126120519699">Chrome-gegevens gewist</translation>
-<translation id="7581273696622423628">Enquête invullen</translation>
 <translation id="7588950540487816470">Fysieke web</translation>
 <translation id="7589445247086920869">Blokkeren voor huidige zoekmachine</translation>
 <translation id="7593557518625677601">Open Android-instellingen en schakel Android-systeemsynchronisatie weer in om Chrome-synchronisatie te starten</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synchronisatie werkt niet</translation>
 <translation id="7612619742409846846">Ingelogd bij Google als</translation>
 <translation id="7619072057915878432">Downloaden van <ph name="FILE_NAME" /> is mislukt door netwerkfouten.</translation>
-<translation id="7620146066550602128">Probeer een <ph name="BEGIN_LINK" />eenvoudigere manier om te browsen<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Hulp vragen<ph name="END_LINK1" /> of <ph name="BEGIN_LINK2" />opnieuw scannen<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Welkom bij Chrome</translation>
 <translation id="7638584964844754484">Onjuiste wachtwoordzin</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Selectie opheffen</translation>
 <translation id="784934925303690534">Periode</translation>
 <translation id="7851858861565204677">Andere apparaten</translation>
-<translation id="785312750761189439">Veeg omhoog vanaf de onderkant van het scherm of tik op de knop voor uitvouwen om snel toegang tot populaire sites en artikelen, downloads en meer te krijgen</translation>
 <translation id="7875915731392087153">E-mail maken</translation>
 <translation id="7876243839304621966">Alles verwijderen</translation>
 <translation id="7882131421121961860">Geen geschiedenis gevonden</translation>
@@ -820,7 +807,7 @@
 <translation id="8487700953926739672">Offline beschikbaar</translation>
 <translation id="8489271220582375723">De pagina Geschiedenis openen</translation>
 <translation id="8493948351860045254">Ruimte vrijmaken</translation>
-<translation id="8494508527479967437">Geschiedenis wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
+<translation id="8494508527479967437">Het item Geschiedenis wordt verplaatst. Trek de volgende keer de adresbalk omhoog.</translation>
 <translation id="8497726226069778601">Hier is nog niets te zien</translation>
 <translation id="8503813439785031346">Gebruikersnaam</translation>
 <translation id="8514477925623180633">Wachtwoorden exporteren die zijn opgeslagen in Chrome</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
index 49241b2..7a1172c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="no">
 <translation id="1006017844123154345">Åpne på nettet</translation>
-<translation id="1036348656032585052">Slå av</translation>
 <translation id="1036727731225946849">Legger til <ph name="WEBAPK_NAME" /> …</translation>
 <translation id="1041308826830691739">Fra nettsteder</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Oversett aldri dette nettstedet</translation>
 <translation id="1291207594882862231">Slett loggoppføringer, informasjonskapsler, nettstedsdata, bufferen …</translation>
 <translation id="129553762522093515">Nylig lukket</translation>
-<translation id="1320663236730331991">Sveip opp for enkel tilgang til populære nettsteder og artikler, nedlastinger med mer</translation>
 <translation id="1326317727527857210">For å få fanene dine fra de andre enhetene du bruker, logg på Chrome.</translation>
 <translation id="1332501820983677155">Hurtigtaster for funksjoner i Google Chrome.</translation>
 <translation id="136248372334525878">Last inn sider på forhånd for raskere innlasting og lesing uten nett</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB andre apper</translation>
 <translation id="2079545284768500474">Angre</translation>
 <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> av <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Dette er nye Chrome</translation>
 <translation id="2086652334978798447">For å få forslag om personlig tilpasset innhold fra Google, logg på Chrome.</translation>
 <translation id="2091887806945687916">Lyd</translation>
 <translation id="209354263896846928">Du finner adressefeltet nederst på skjermen</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatisk pålogging</translation>
 <translation id="2111511281910874386">Gå til side</translation>
 <translation id="2122601567107267586">Kunne ikke åpne appen</translation>
-<translation id="2123074103454259350">Ikke ennå</translation>
 <translation id="2126426811489709554">Drevet av Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> spart</translation>
 <translation id="213279576345780926">Lukket <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Endre kortet</translation>
 <translation id="2154710561487035718">Kopier nettadresse</translation>
 <translation id="2156074688469523661">Andre nettsteder (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Fortell oss hvorfor du slo av nye Chrome</translation>
-<translation id="2185784955520093231">Du bruker nye Chrome</translation>
 <translation id="219985413780390209">Beskytt deg selv og enheten din mot farlige nettsteder</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, nettprogram. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Fortsett som <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome bruker mindre data for å vise deg denne siden</translation>
 <translation id="2888126860611144412">Om Chrome</translation>
 <translation id="2891154217021530873">Stopp innlastingen av siden</translation>
-<translation id="2892933203342091350">Slå på forenklet visning for alle artikler</translation>
 <translation id="2900528713135656174">Opprett hendelse</translation>
 <translation id="2902702728133930130">Kunne ikke starte Chrome på grunn av en uventet feil.</translation>
 <translation id="2903493209154104877">Adresser</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Tredjepartsnettsteder kan lagre og lese data i informasjonskapsler.</translation>
 <translation id="3662546969139119822">Her er det ingen logg</translation>
 <translation id="3672452749423051839">Forslag ved navigasjonsfeil</translation>
-<translation id="3682249951633602029">Passordene dine blir synlige for alle som kan se den eksporterte passordfilen.</translation>
 <translation id="3712575778697986964">Vil du tilbakestille Datasparing?</translation>
 <translation id="3714981814255182093">Åpne søkeraden</translation>
 <translation id="3716182511346448902">Denne siden bruker for mye minne, så Chrome har satt den på pause.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB er lastet ned</translation>
 <translation id="654446541061731451">Velg en fane for beaming</translation>
 <translation id="6545017243486555795">Slett alle data</translation>
-<translation id="6550675742724504774">Alternativer</translation>
 <translation id="6556716549745717622">Blokkér hvis nettstedet ofte viser forstyrrende annonser (anbefalt)</translation>
 <translation id="6560414384669816528">Søk med Sogou</translation>
 <translation id="6566259936974865419">Chrome har spart deg for <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Lås opp for å kopiere passordet ditt</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d åpen fane}other{%1$d åpne faner}}</translation>
 <translation id="6896758677409633944">Kopiér</translation>
-<translation id="6905163627763043954">Prøv det</translation>
 <translation id="6910211073230771657">Slettet</translation>
 <translation id="6945221475159498467">Velg</translation>
 <translation id="6959661084585705671">Sekundær lagring</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Kan ikke hente forslag</translation>
 <translation id="7562080006725997899">Sletter nettlesingsdata</translation>
 <translation id="756809126120519699">Chrome-dataene er slettet</translation>
-<translation id="7581273696622423628">Besvar undersøkelsen</translation>
 <translation id="7588950540487816470">Fysisk nett</translation>
 <translation id="7589445247086920869">Blokkert for den aktive søkemotoren</translation>
 <translation id="7593557518625677601">Start Chrome-synkronisering ved å slå på synkronisering i Android-innstillingene</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synkronisering fungerer ikke</translation>
 <translation id="7612619742409846846">Logget på Google som</translation>
 <translation id="7619072057915878432">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av nettverksproblemer.</translation>
-<translation id="7620146066550602128">Prøv en <ph name="BEGIN_LINK" />enklere måte å se nettsider på<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Få hjelp<ph name="END_LINK1" /> eller <ph name="BEGIN_LINK2" />skann på nytt<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Velkommen til Chrome</translation>
 <translation id="7638584964844754484">Feil passordfrase</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Opphev valget</translation>
 <translation id="784934925303690534">Tidsperiode</translation>
 <translation id="7851858861565204677">Andre enheter</translation>
-<translation id="785312750761189439">Sveip opp fra bunnen av skjermen, eller trykk på knappen for å vise mer. Da får du enkel tilgang til populære nettsteder og artikler, nedlastinger med mer</translation>
 <translation id="7875915731392087153">Opprett e-post</translation>
 <translation id="7876243839304621966">Fjern alle</translation>
 <translation id="7882131421121961860">Fant ingen logg</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
index 40b52a3c..4ddd109 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="pl">
 <translation id="1006017844123154345">Otwórz online</translation>
-<translation id="1036348656032585052">Wyłącz</translation>
 <translation id="1036727731225946849">Dodaję aplikację <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">Ze stron internetowych</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nigdy nie tłumacz tej witryny</translation>
 <translation id="1291207594882862231">Wyczyść historię, pliki cookie, dane witryn, pamięć podręczną…</translation>
 <translation id="129553762522093515">Ostatnio zamknięte</translation>
-<translation id="1320663236730331991">Przesuń palcem w górę, by łatwo uzyskać dostęp do popularnych stron i artykułów, pobranych plików oraz innych elementów</translation>
 <translation id="1326317727527857210">Aby korzystać z kart ze swoich innych urządzeń, zaloguj się w Chrome.</translation>
 <translation id="1332501820983677155">Skróty do funkcji Google Chrome</translation>
 <translation id="136248372334525878">Ładuj wstępnie strony, by szybciej się wczytywały i były dostępne do czytania w trybie offline</translation>
@@ -83,7 +81,7 @@
 <translation id="1660204651932907780">Zezwalaj na odtwarzanie dźwięku na stronach internetowych (zalecane)</translation>
 <translation id="1670399744444387456">Podstawy</translation>
 <translation id="1671236975893690980">Oczekuję na pobranie…</translation>
-<translation id="1674523662097951983">„Zakładki” wędrują w inne miejsce. Aby następnym razem je wyświetlić, przeciągnij pasek adresu w górę.</translation>
+<translation id="1674523662097951983">„Zakładki” przenoszą się w inne miejsce. Aby następnym razem je wyświetlić, przeciągnij pasek adresu w górę.</translation>
 <translation id="169033420419426091">Nie udało się pobrać pliku <ph name="FILE_NAME" /> z powodu braku karty SD.</translation>
 <translation id="1709438864123551175">Oszczędzanie danych</translation>
 <translation id="1718835860248848330">Ostatnia godzina</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB innych aplikacji</translation>
 <translation id="2079545284768500474">Cofnij</translation>
 <translation id="2082238445998314030">Wynik <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Poznaj nową wersję Chrome</translation>
 <translation id="2086652334978798447">Aby uzyskać dostęp do spersonalizowanej treści proponowanej przez Google, zaloguj się w Chrome.</translation>
 <translation id="2091887806945687916">Dźwięk</translation>
 <translation id="209354263896846928">Użyj paska adresu u dołu ekranu</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Autologowanie</translation>
 <translation id="2111511281910874386">Przejdź do strony</translation>
 <translation id="2122601567107267586">Nie udało się otworzyć aplikacji</translation>
-<translation id="2123074103454259350">Jeszcze nie</translation>
 <translation id="2126426811489709554">Technologia Chrome</translation>
 <translation id="2131665479022868825">Zaoszczędzono <ph name="DATA" /></translation>
 <translation id="213279576345780926">Zamknięto <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Edytowanie karty</translation>
 <translation id="2154710561487035718">Kopiuj adres URL</translation>
 <translation id="2156074688469523661">Pozostałe strony (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Powiedz, dlaczego wyłączasz nową wersję Chrome</translation>
-<translation id="2185784955520093231">Używasz nowej wersji Chrome</translation>
 <translation id="219985413780390209">Chroń siebie i swoje urządzenie przed niebezpiecznymi witrynami</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" /> – aplikacja internetowa. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Kontynuuj jako <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome wyświetla tę stronę przy użyciu mniejszej ilości danych</translation>
 <translation id="2888126860611144412">Chrome – informacje</translation>
 <translation id="2891154217021530873">Zatrzymaj wczytywanie strony</translation>
-<translation id="2892933203342091350">Włącz widok uproszczony dla wszystkich artykułów</translation>
 <translation id="2900528713135656174">Utwórz wydarzenie</translation>
 <translation id="2902702728133930130">Podczas uruchamiania Chrome wystąpił nieoczekiwany błąd.</translation>
 <translation id="2903493209154104877">Adresy</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Witryny innych firm mogą zapisywać dane w plikach cookie i je odczytywać</translation>
 <translation id="3662546969139119822">Brak historii</translation>
 <translation id="3672452749423051839">Podpowiedzi przy błędach nawigacji</translation>
-<translation id="3682249951633602029">Twoje hasła będą widoczne dla każdego, kto może zobaczyć wyeksportowany plik z hasłami.</translation>
 <translation id="3712575778697986964">Zresetować Oszczędzanie danych?</translation>
 <translation id="3714981814255182093">Otwórz pasek wyszukiwania</translation>
 <translation id="3716182511346448902">Ta strona używa zbyt dużo pamięci, dlatego została wstrzymana w Chrome.</translation>
@@ -555,7 +547,7 @@
 <translation id="5956665950594638604">Otwórz Centrum pomocy Chrome w nowej karcie</translation>
 <translation id="5958275228015807058">Znajdź pliki i strony w Pobranych plikach</translation>
 <translation id="5962718611393537961">Kliknij, by zwinąć</translation>
-<translation id="5974562976030145789">„Pobrane pliki” wędrują w inne miejsce. Aby następnym razem je wyświetlić, przeciągnij pasek adresu w górę.</translation>
+<translation id="5974562976030145789">„Pobrane pliki” przenoszą się w inne miejsce. Aby następnym razem je wyświetlić, przeciągnij pasek adresu w górę.</translation>
 <translation id="6000066717592683814">Zachowaj Google</translation>
 <translation id="6031101910111098835">Zwinięty – kliknij, by rozwinąć</translation>
 <translation id="6039379616847168523">Przejdź do następnej karty</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Pobrano <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Wybierz kartę do przesłania</translation>
 <translation id="6545017243486555795">Wyczyść wszystkie dane</translation>
-<translation id="6550675742724504774">Opcje</translation>
 <translation id="6556716549745717622">Blokuj, jeśli na stronie wyświetlają się uciążliwe reklamy (zalecane)</translation>
 <translation id="6560414384669816528">Szukaj w Sogou</translation>
 <translation id="6566259936974865419">Chrome pozwolił Ci zaoszczędzić <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Odblokuj, by skopiować hasło</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d otwarta karta}few{%1$d otwarte karty}many{%1$d otwartych kart}other{%1$d otwartej karty}}</translation>
 <translation id="6896758677409633944">Kopiuj</translation>
-<translation id="6905163627763043954">Wypróbuj</translation>
 <translation id="6910211073230771657">Usunięto</translation>
 <translation id="6945221475159498467">Wybierz</translation>
 <translation id="6959661084585705671">Pamięć dodatkowa</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Nie można uzyskać sugestii</translation>
 <translation id="7562080006725997899">Czyszczenie danych przeglądania</translation>
 <translation id="756809126120519699">Wyczyszczono dane Chrome</translation>
-<translation id="7581273696622423628">Wypełnij ankietę</translation>
 <translation id="7588950540487816470">Internet rzeczy</translation>
 <translation id="7589445247086920869">Blokuj dostęp obecnej wyszukiwarce</translation>
 <translation id="7593557518625677601">Otwórz ustawienia Androida i ponownie włącz jego synchronizację, by uruchomić Synchronizację Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synchronizacja nie działa</translation>
 <translation id="7612619742409846846">Jesteś zalogowany w Google jako</translation>
 <translation id="7619072057915878432">Nie udało się pobrać pliku <ph name="FILE_NAME" /> z powodu problemów z siecią.</translation>
-<translation id="7620146066550602128">Wypróbuj <ph name="BEGIN_LINK" />łatwiejszy sposób przeglądania internetu<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Skorzystaj z pomocy<ph name="END_LINK1" /> lub <ph name="BEGIN_LINK2" />skanuj ponownie<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Witamy w Chrome</translation>
 <translation id="7638584964844754484">Nieprawidłowe hasło</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Anuluj wybór</translation>
 <translation id="784934925303690534">Zakres czasu</translation>
 <translation id="7851858861565204677">Inne urządzenia</translation>
-<translation id="785312750761189439">Przesuń palcem od dołu ekranu lub kliknij przycisk rozwijania, by szybko zobaczyć popularne strony i artykuły, pobrane pliki itd.</translation>
 <translation id="7875915731392087153">Utwórz e-maila</translation>
 <translation id="7876243839304621966">Usuń wszystkie</translation>
 <translation id="7882131421121961860">Brak historii</translation>
@@ -820,7 +807,7 @@
 <translation id="8487700953926739672">Dostępny offline</translation>
 <translation id="8489271220582375723">Otwórz stronę historii</translation>
 <translation id="8493948351860045254">Zwolnij miejsce</translation>
-<translation id="8494508527479967437">„Historia” wędruje w inne miejsce. Aby następnym razem ją wyświetlić, przeciągnij pasek adresu w górę.</translation>
+<translation id="8494508527479967437">„Historia” przenosi się w inne miejsce. Aby następnym razem ją wyświetlić, przeciągnij pasek adresu w górę.</translation>
 <translation id="8497726226069778601">Tu jeszcze niczego nie ma</translation>
 <translation id="8503813439785031346">Nazwa użytkownika</translation>
 <translation id="8514477925623180633">Eksportuj hasła zapisane w Chrome</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
index dfd1579..2d521d7 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-BR">
 <translation id="1006017844123154345">Abrir on-line</translation>
-<translation id="1036348656032585052">Desativar</translation>
 <translation id="1036727731225946849">Adicionando <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">De sites</translation>
 <translation id="1049743911850919806">Modo anônimo</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nunca traduzir este site</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados do site, cache…</translation>
 <translation id="129553762522093515">Recentemente fechadas</translation>
-<translation id="1320663236730331991">Deslize para cima para ter acesso fácil a sites e artigos muito visitados, downloads e muito mais</translation>
 <translation id="1326317727527857210">Para ver as guias dos seus outros dispositivos, faça login no Chrome.</translation>
 <translation id="1332501820983677155">Atalhos de recursos do Google Chrome</translation>
 <translation id="136248372334525878">Pré-carregue páginas para um carregamento mais rápido e leitura off-line</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de outros apps</translation>
 <translation id="2079545284768500474">Desfazer</translation>
 <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Apresentamos o novo Chrome</translation>
 <translation id="2086652334978798447">Para receber conteúdo personalizado sugerido pelo Google, faça login no Chrome.</translation>
 <translation id="2091887806945687916">Som</translation>
 <translation id="209354263896846928">Acesse a barra de endereço na parte inferior da tela</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Login automático</translation>
 <translation id="2111511281910874386">Ir para a página</translation>
 <translation id="2122601567107267586">Não foi possível abrir o aplicativo</translation>
-<translation id="2123074103454259350">Ainda não</translation>
 <translation id="2126426811489709554">Em execução no Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> salvo(s)</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> fechada</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Editar cartão</translation>
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sites restantes (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Conte-nos por que você desativou o novo Chrome</translation>
-<translation id="2185784955520093231">Você está usando o novo Chrome</translation>
 <translation id="219985413780390209">Proteger você e seu dispositivo de sites perigosos</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, aplicativo da Web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuar como <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">O Chrome está usando menos dados para mostrar esta página</translation>
 <translation id="2888126860611144412">Sobre o Google Chrome</translation>
 <translation id="2891154217021530873">Para de carregar a página</translation>
-<translation id="2892933203342091350">Ativar a visualização simplificada em todos os artigos</translation>
 <translation id="2900528713135656174">Criar evento</translation>
 <translation id="2902702728133930130">O Chrome falhou durante a inicialização devido a um erro inesperado.</translation>
 <translation id="2903493209154104877">Endereços</translation>
@@ -293,7 +286,6 @@
 <translation id="3661699943263275414">Websites de terceiros podem ler e armazenar os arquivos "cookies".</translation>
 <translation id="3662546969139119822">Não há histórico aqui</translation>
 <translation id="3672452749423051839">Sugerir opções quando houver erro de navegação</translation>
-<translation id="3682249951633602029">Suas senhas ficarão visíveis para qualquer pessoa que tiver acesso aos arquivos exportados.</translation>
 <translation id="3712575778697986964">Redefinir a Economia de dados?</translation>
 <translation id="3714981814255182093">Abrir a barra Localizar</translation>
 <translation id="3716182511346448902">Como esta página usa muita memória, o Chrome a pausou.</translation>
@@ -617,7 +609,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB transferido(s) por download</translation>
 <translation id="654446541061731451">Selecione uma guia para transferir</translation>
 <translation id="6545017243486555795">Limpar todos os dados</translation>
-<translation id="6550675742724504774">Opções</translation>
 <translation id="6556716549745717622">Bloquear se o site costuma mostrar anúncios invasivos (recomendado)</translation>
 <translation id="6560414384669816528">Pesquisar usando o Sogou</translation>
 <translation id="6566259936974865419">O Chrome economizou <ph name="GIGABYTES" /> GB</translation>
@@ -661,7 +652,6 @@
 <translation id="6891726759199484455">Desbloqueie para copiar sua senha</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d guia aberta}one{%1$d guia aberta}other{%1$d guias abertas}}</translation>
 <translation id="6896758677409633944">Copiar</translation>
-<translation id="6905163627763043954">Experimente</translation>
 <translation id="6910211073230771657">Excluído</translation>
 <translation id="6945221475159498467">Selecionar</translation>
 <translation id="6959661084585705671">Armazenamento secundário</translation>
@@ -726,7 +716,6 @@
 <translation id="7542481630195938534">Não é possível exibir as sugestões</translation>
 <translation id="7562080006725997899">Limpando dados de navegação</translation>
 <translation id="756809126120519699">Dados do Chrome apagados</translation>
-<translation id="7581273696622423628">Responder à pesquisa</translation>
 <translation id="7588950540487816470">Web física</translation>
 <translation id="7589445247086920869">Bloquear o mecanismo de pesquisa atual</translation>
 <translation id="7593557518625677601">Abrir configs. Android e reativar sincronização do Android p/ sincronizar Chrome</translation>
@@ -735,7 +724,6 @@
 <translation id="7605594153474022051">A sincronização não está funcionando</translation>
 <translation id="7612619742409846846">Conectado ao Google como</translation>
 <translation id="7619072057915878432">Falha no download do arquivo <ph name="FILE_NAME" /> devido a falhas na rede.</translation>
-<translation id="7620146066550602128">Teste uma <ph name="BEGIN_LINK" />forma mais fácil de navegar<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Receber ajuda<ph name="END_LINK1" /> ou <ph name="BEGIN_LINK2" />verificar novamente<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Bem-vindo ao Google Chrome</translation>
 <translation id="7638584964844754484">Senha incorreta</translation>
@@ -760,7 +748,6 @@
 <translation id="7846076177841592234">Cancelar seleção</translation>
 <translation id="784934925303690534">Intervalo de tempo</translation>
 <translation id="7851858861565204677">Outros dispositivos</translation>
-<translation id="785312750761189439">Deslize de baixo para cima na tela ou toque no botão "Expandir" para ter acesso fácil a sites e artigos muito visitados, downloads e muito mais.</translation>
 <translation id="7875915731392087153">Criar e-mail</translation>
 <translation id="7876243839304621966">Remover tudo</translation>
 <translation id="7882131421121961860">Nenhum histórico encontrado</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
index b1e2917..deed804 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="pt-PT">
 <translation id="1006017844123154345">Abrir online</translation>
-<translation id="1036348656032585052">Desativar</translation>
 <translation id="1036727731225946849">A adicionar <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De Websites</translation>
 <translation id="1049743911850919806">Navegação anónima</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nunca traduzir este site</translation>
 <translation id="1291207594882862231">Limpar histórico, cookies, dados de sites, cache…</translation>
 <translation id="129553762522093515">Fechados recentemente</translation>
-<translation id="1320663236730331991">Deslize rapidamente para cima de forma a aceder facilmente a sites e artigos populares, às transferências e a muito mais</translation>
 <translation id="1326317727527857210">Para obter os separadores dos seus outros dispositivos, inicie sessão no Chrome.</translation>
 <translation id="1332501820983677155">Atalhos das funcionalidades do Google Chrome</translation>
 <translation id="136248372334525878">Pré-carregar páginas para um carregamento mais rápido e para leitura offline</translation>
@@ -116,14 +114,13 @@
 <translation id="1993768208584545658"><ph name="SITE" /> pretende sincronizar</translation>
 <translation id="1994173015038366702">URL do site</translation>
 <translation id="200815880754187296"><ph name="KILOBYTES" /> KB de outras aplicações</translation>
-<translation id="2015632741368427174">Redirecionamento bloqueado para o site:</translation>
+<translation id="2015632741368427174">Redirecionamento bloqueado para o seguinte site:</translation>
 <translation id="2017836877785168846">Limpa o histórico e os preenchimentos automáticos da barra de endereço.</translation>
 <translation id="2021896219286479412">Controlos de site em ecrã int.</translation>
 <translation id="2038563949887743358">Ativar Pedir site para computador</translation>
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB de outras aplicações</translation>
 <translation id="2079545284768500474">Anular</translation>
 <translation id="2082238445998314030">Resultado <ph name="RESULT_NUMBER" /> de <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Apresentação do novo Chrome</translation>
 <translation id="2086652334978798447">Para obter conteúdo personalizado sugerido pelo Google, inicie sessão no Chrome.</translation>
 <translation id="2091887806945687916">Som</translation>
 <translation id="209354263896846928">Aceda à barra de endereço na parte inferior do ecrã.</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Início de sessão automático</translation>
 <translation id="2111511281910874386">Ir para a página</translation>
 <translation id="2122601567107267586">Não foi possível abrir a aplicação.</translation>
-<translation id="2123074103454259350">Ainda não</translation>
 <translation id="2126426811489709554">Com tecnologia do Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> guardado(s)</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> fechado</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Editar cartão</translation>
 <translation id="2154710561487035718">Copiar URL</translation>
 <translation id="2156074688469523661">Sites restantes (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Indique-nos porque desativou o novo Chrome</translation>
-<translation id="2185784955520093231">Está a utilizar o novo Chrome</translation>
 <translation id="219985413780390209">Proteja-se e ao seu dispositivo contra sites perigosos</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, aplicação Web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuar como <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">O Chrome está a utilizar menos dados para lhe mostrar esta página.</translation>
 <translation id="2888126860611144412">Acerca do Chrome</translation>
 <translation id="2891154217021530873">Parar carregamento da página</translation>
-<translation id="2892933203342091350">Ativar a vista simplificada em todos os artigos</translation>
 <translation id="2900528713135656174">Criar evento</translation>
 <translation id="2902702728133930130">O Chrome falhou durante o arranque com um erro inesperado.</translation>
 <translation id="2903493209154104877">Endereços</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Os Sites de terceiros podem guardar e ler dados de cookies</translation>
 <translation id="3662546969139119822">Sem histórico</translation>
 <translation id="3672452749423051839">Sugestões de erros de navegação</translation>
-<translation id="3682249951633602029">As suas palavras-passe serão visíveis para todas as pessoas que consigam ver o ficheiro de palavras-passe exportado.</translation>
 <translation id="3712575778697986964">Pretende repor a Poupança de dados?</translation>
 <translation id="3714981814255182093">Abrir a barra Localizar</translation>
 <translation id="3716182511346448902">Esta página utiliza demasiada memória, pelo que o Chrome a colocou em pausa.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB transferido(s)</translation>
 <translation id="654446541061731451">Selecione um separador a transmitir</translation>
 <translation id="6545017243486555795">Limpar todos os dados</translation>
-<translation id="6550675742724504774">Opções</translation>
 <translation id="6556716549745717622">Bloquear se o site tiver tendência para mostrar anúncios intrusivos (recomendado)</translation>
 <translation id="6560414384669816528">Pesquisar com o Sogou</translation>
 <translation id="6566259936974865419">O Chrome permitiu-lhe poupar <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Desbloqueie para copiar a palavra-passe.</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d separador aberto}other{%1$d separadores abertos}}</translation>
 <translation id="6896758677409633944">Copiar</translation>
-<translation id="6905163627763043954">Testar</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="6945221475159498467">Selecionar</translation>
 <translation id="6959661084585705671">Armazenamento secundário</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Não é possível obter sugestões</translation>
 <translation id="7562080006725997899">A limpar dados de navegação</translation>
 <translation id="756809126120519699">Dados do Chrome limpos</translation>
-<translation id="7581273696622423628">Participar no inquérito</translation>
 <translation id="7588950540487816470">Web física</translation>
 <translation id="7589445247086920869">Bloquear no motor de pesquisa atual</translation>
 <translation id="7593557518625677601">Abrir definiç. Android e reativar sinc. sistema Android p/ iniciar sinc. Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">A sincronização não está a funcionar</translation>
 <translation id="7612619742409846846">Iniciou sessão no Google como</translation>
 <translation id="7619072057915878432">A transferência de <ph name="FILE_NAME" /> falhou devido a falhas de rede.</translation>
-<translation id="7620146066550602128">Experimente uma <ph name="BEGIN_LINK" />forma mais fácil de navegar<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obter ajuda<ph name="END_LINK1" /> ou <ph name="BEGIN_LINK2" />voltar a procurar<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Bem-vindo ao Chrome</translation>
 <translation id="7638584964844754484">Frase de acesso incorreta</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Cancelar seleção</translation>
 <translation id="784934925303690534">Intervalo de tempo</translation>
 <translation id="7851858861565204677">Outros aparelhos</translation>
-<translation id="785312750761189439">Deslize rapidamente para cima a partir da parte inferior do ecrã ou toque no botão para expandir de forma a aceder facilmente a sites e artigos populares, a transferências, entre outros.</translation>
 <translation id="7875915731392087153">Criar email</translation>
 <translation id="7876243839304621966">Remover tudo</translation>
 <translation id="7882131421121961860">Nenhum histórico encontrado</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
index ed15de0..1badd906 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ro">
 <translation id="1006017844123154345">Deschide online</translation>
-<translation id="1036348656032585052">Dezactivează</translation>
 <translation id="1036727731225946849">Se adaugă <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">De la site-uri</translation>
 <translation id="1049743911850919806">Incognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nu traduce niciodată acest site</translation>
 <translation id="1291207594882862231">Șterge istoricul, cookie-urile, datele privind site-urile și memoria cache…</translation>
 <translation id="129553762522093515">Închise recent</translation>
-<translation id="1320663236730331991">Glisează în sus pentru acces facil la site-uri și articole populare, descărcări și altele</translation>
 <translation id="1326317727527857210">Pentru a accesa filele de pe alte dispozitive, conectează-te la Chrome.</translation>
 <translation id="1332501820983677155">Comenzi rapide pentru funcțiile Google Chrome</translation>
 <translation id="136248372334525878">Preîncarcă paginile pentru încărcare mai rapidă și lectură offline</translation>
@@ -116,14 +114,13 @@
 <translation id="1993768208584545658"><ph name="SITE" /> dorește să se asocieze</translation>
 <translation id="1994173015038366702">Adresa URL a site-ului</translation>
 <translation id="200815880754187296"><ph name="KILOBYTES" /> KB pentru alte aplicații</translation>
-<translation id="2015632741368427174">Redirecționarea a fost blocată pentru site-ul:</translation>
+<translation id="2015632741368427174">S-a blocat redirecționarea către site-ul:</translation>
 <translation id="2017836877785168846">Șterge istoricul și completările automate din bara de adrese.</translation>
 <translation id="2021896219286479412">Comenzi site în ecran complet</translation>
 <translation id="2038563949887743358">Activează opțiunea Versiune site pentru desktop</translation>
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB pentru alte aplicații</translation>
 <translation id="2079545284768500474">Anulează</translation>
 <translation id="2082238445998314030">Rezultatul <ph name="RESULT_NUMBER" /> din <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Îți prezentăm noul Chrome</translation>
 <translation id="2086652334978798447">Pentru a obține sugestii de conținut personalizat de la Google, conectează-te la Chrome.</translation>
 <translation id="2091887806945687916">Sunet</translation>
 <translation id="209354263896846928">Accesează bara de adrese din partea de jos a ecranului</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Conectare automată</translation>
 <translation id="2111511281910874386">Accesează pagina</translation>
 <translation id="2122601567107267586">Aplicația nu poate fi deschisă</translation>
-<translation id="2123074103454259350">Nu încă</translation>
 <translation id="2126426811489709554">Afișată de Chrome</translation>
 <translation id="2131665479022868825">Date economisite: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Fila <ph name="TAB_TITLE" /> a fost închisă</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Editează cardul</translation>
 <translation id="2154710561487035718">Copiați adresa URL</translation>
 <translation id="2156074688469523661">Site-uri rămase (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Spune-ne de ce ai dezactivat noul Chrome</translation>
-<translation id="2185784955520093231">Folosești noul Chrome</translation>
 <translation id="219985413780390209">Protecție împotriva site-urilor periculoase</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, aplicație web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Continuă ca <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome folosește mai puține date pentru a afișa această pagină</translation>
 <translation id="2888126860611144412">Despre Chrome</translation>
 <translation id="2891154217021530873">Oprește încărcarea paginii</translation>
-<translation id="2892933203342091350">Activează afișarea simplificată pentru toate articolele</translation>
 <translation id="2900528713135656174">Creează un eveniment</translation>
 <translation id="2902702728133930130">Chrome nu a pornit. A apărut o eroare neașteptată.</translation>
 <translation id="2903493209154104877">Adrese</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Site-urile terță parte pot să salveze și să citească datele asociate cookie-urilor</translation>
 <translation id="3662546969139119822">Istoric gol</translation>
 <translation id="3672452749423051839">Sugestii pentru erori de navigare</translation>
-<translation id="3682249951633602029">Parolele vor fi vizibile pentru toți cei care pot vedea fișierul de parole exportat.</translation>
 <translation id="3712575778697986964">Resetezi Economizorul de date?</translation>
 <translation id="3714981814255182093">Deschide Bara de căutare</translation>
 <translation id="3716182511346448902">Această pagină folosește prea multă memorie, prin urmare Chrome a întrerupt-o.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB descărcați</translation>
 <translation id="654446541061731451">Selectează o filă pentru transmitere</translation>
 <translation id="6545017243486555795">Șterge toate datele</translation>
-<translation id="6550675742724504774">Opțiuni</translation>
 <translation id="6556716549745717622">Blochează dacă site-ul tinde să afișeze anunțuri deranjante (recomandat)</translation>
 <translation id="6560414384669816528">Caută cu Sogou</translation>
 <translation id="6566259936974865419">Chrome a economisit <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Deblochează pentru a copia parola</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d filă deschisă}few{%1$d file deschise}other{%1$d de file deschise}}</translation>
 <translation id="6896758677409633944">Copiază</translation>
-<translation id="6905163627763043954">Încearcă-l</translation>
 <translation id="6910211073230771657">Șters</translation>
 <translation id="6945221475159498467">Selectează</translation>
 <translation id="6959661084585705671">Stocare secundară</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Nu se pot obține sugestii</translation>
 <translation id="7562080006725997899">Se șterg datele de navigare</translation>
 <translation id="756809126120519699">Datele Chrome au fost șterse</translation>
-<translation id="7581273696622423628">Participă la sondaj</translation>
 <translation id="7588950540487816470">Web material</translation>
 <translation id="7589445247086920869">Blochează pentru motorul de căutare actual</translation>
 <translation id="7593557518625677601">Deschide setările Android și reactivează sincronizarea sistemului Android pentru a porni sincronizarea Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sincronizarea nu funcționează</translation>
 <translation id="7612619742409846846">Conectat(ă) la Google ca</translation>
 <translation id="7619072057915878432">Descărcarea fișierului <ph name="FILE_NAME" /> nu a reușit din cauza erorilor de rețea.</translation>
-<translation id="7620146066550602128">Încearcă un <ph name="BEGIN_LINK" />mod mai simplu de a naviga<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Obține ajutor<ph name="END_LINK1" /> sau <ph name="BEGIN_LINK2" />scanează din nou<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Bun venit la Chrome</translation>
 <translation id="7638584964844754484">Expresie de acces incorectă</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Anulează selecția</translation>
 <translation id="784934925303690534">Interval de timp</translation>
 <translation id="7851858861565204677">Alte dispozitive</translation>
-<translation id="785312750761189439">Glisează în sus din partea de jos a ecranului sau atinge butonul de extindere pentru acces ușor la site-uri și articole populare, la descărcări și la altele</translation>
 <translation id="7875915731392087153">Creează un e-mail</translation>
 <translation id="7876243839304621966">Elimină tot</translation>
 <translation id="7882131421121961860">Nu s-a găsit niciun istoric</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
index 7de7f9b..e58f801 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="ru">
 <translation id="1006017844123154345">Открыть в Интернете</translation>
-<translation id="1036348656032585052">Отключить</translation>
 <translation id="1036727731225946849">Добавление файла "<ph name="WEBAPK_NAME" />"…</translation>
 <translation id="1041308826830691739">От сайтов</translation>
 <translation id="1049743911850919806">Инкогнито</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Никогда не переводить этот сайт</translation>
 <translation id="1291207594882862231">Удалить файлы cookie и данные сайтов, очистить историю и кеш…</translation>
 <translation id="129553762522093515">Недавно закрытые</translation>
-<translation id="1320663236730331991">Удобный доступ к популярным сайтам и статьям, скачанным файлам и не только. Просто проведите по экрану вверх!</translation>
 <translation id="1326317727527857210">Чтобы получить доступ к вкладкам на всех ваших устройствах, войдите в Chrome.</translation>
 <translation id="1332501820983677155">Функции Google Chrome</translation>
 <translation id="136248372334525878">Загружать страницы предварительно для повышения скорости работы и просмотра офлайн.</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Другие приложения: <ph name="GIGABYTES" /> ГБ</translation>
 <translation id="2079545284768500474">Отмена</translation>
 <translation id="2082238445998314030">Результат <ph name="RESULT_NUMBER" />, всего <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Представляем новый Chrome</translation>
 <translation id="2086652334978798447">Чтобы мы могли рекомендовать вам интересный контент, войдите в свой аккаунт в Chrome.</translation>
 <translation id="2091887806945687916">Звук</translation>
 <translation id="209354263896846928">Адресная строка расположена в нижней части экрана.</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Автоматический вход</translation>
 <translation id="2111511281910874386">Перейти на страницу</translation>
 <translation id="2122601567107267586">Не удалось открыть приложение</translation>
-<translation id="2123074103454259350">Пока нет</translation>
 <translation id="2126426811489709554">Технологии Chrome</translation>
 <translation id="2131665479022868825">Сэкономлено: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Вкладка "<ph name="TAB_TITLE" />" закрыта</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Изменение данных карты</translation>
 <translation id="2154710561487035718">Копировать URL</translation>
 <translation id="2156074688469523661">Прочие сайты (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Расскажите нам, почему вы вернулись к старой версии Chrome.</translation>
-<translation id="2185784955520093231">Вы используете новую версию Chrome</translation>
 <translation id="219985413780390209">Защитить устройство от опасных сайтов</translation>
 <translation id="2206488550163399966">Приложение "<ph name="APP_NAME" />" (<ph name="APP_URL" />)</translation>
 <translation id="2227444325776770048">Продолжить как <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Для отображения этой страницы Chrome расходует меньше трафика</translation>
 <translation id="2888126860611144412">О браузере Chrome</translation>
 <translation id="2891154217021530873">Остановить загрузку страницы</translation>
-<translation id="2892933203342091350">Включить упрощенный просмотр на всех страницах.</translation>
 <translation id="2900528713135656174">Создать мероприятие</translation>
 <translation id="2902702728133930130">При запуске Chrome произошла непредвиденная ошибка.</translation>
 <translation id="2903493209154104877">Адреса</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Сторонние веб-сайты могут сохранять и читать файлы cookie</translation>
 <translation id="3662546969139119822">Нет записей</translation>
 <translation id="3672452749423051839">Подсказки при ошибке навигации</translation>
-<translation id="3682249951633602029">Просмотреть ваши пароли сможет любой, кому доступен экспортированный файл с паролями.</translation>
 <translation id="3712575778697986964">Сбросить статистику?</translation>
 <translation id="3714981814255182093">Открыть панель поиска</translation>
 <translation id="3716182511346448902">Эта страница расходовала слишком много памяти, поэтому работа ее скриптов была приостановлена.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Скачано <ph name="GBS" /> ГБ</translation>
 <translation id="654446541061731451">Выберите вкладку для передачи</translation>
 <translation id="6545017243486555795">Удалить все данные</translation>
-<translation id="6550675742724504774">Параметры</translation>
 <translation id="6556716549745717622">Блокировать, если на сайте много навязчивой рекламы (рекомендуется)</translation>
 <translation id="6560414384669816528">Поиск в Sogou</translation>
 <translation id="6566259936974865419">Благодаря Chrome вы сэкономили <ph name="GIGABYTES" /> ГБ свободного места</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Чтобы скопировать пароль, разблокируйте экран</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d открытая вкладка}one{%1$d открытая вкладка}few{%1$d открытые вкладки}many{%1$d открытых вкладок}other{%1$d открытой вкладки}}</translation>
 <translation id="6896758677409633944">Копировать</translation>
-<translation id="6905163627763043954">Применить пароль</translation>
 <translation id="6910211073230771657">Удалено</translation>
 <translation id="6945221475159498467">Выбрать</translation>
 <translation id="6959661084585705671">Дополнительное хранилище</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Не удалось получить рекомендации</translation>
 <translation id="7562080006725997899">Очистить историю</translation>
 <translation id="756809126120519699">Данные Chrome удалены</translation>
-<translation id="7581273696622423628">Пройти опрос</translation>
 <translation id="7588950540487816470">Интернет вокруг нас</translation>
 <translation id="7589445247086920869">Закрыть доступ текущей поисковой системе</translation>
 <translation id="7593557518625677601">Откройте настройки Android и снова включите синхронизацию системы</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Ошибка синхронизации</translation>
 <translation id="7612619742409846846">Вы вошли в аккаунт</translation>
 <translation id="7619072057915878432">Не удалось скачать файл <ph name="FILE_NAME" /> из-за сбоев сети.</translation>
-<translation id="7620146066550602128">Просмотр веб-страниц стал ещё удобнее! <ph name="BEGIN_LINK" />Попробовать<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Справка<ph name="END_LINK1" /> или <ph name="BEGIN_LINK2" />повторное сканирование<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Добро пожаловать в Chrome!</translation>
 <translation id="7638584964844754484">Неверная кодовая фраза</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Отменить выбор</translation>
 <translation id="784934925303690534">Временной диапазон</translation>
 <translation id="7851858861565204677">Другие устройства</translation>
-<translation id="785312750761189439">Проведите по экрану сверху вниз или нажмите кнопку "Развернуть", чтобы получить доступ к популярным сайтам и статьям, а также к загрузкам и не только.</translation>
 <translation id="7875915731392087153">Написать письмо</translation>
 <translation id="7876243839304621966">Удалить все</translation>
 <translation id="7882131421121961860">История не найдена</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
index 7cfe790..054094e0 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sk">
 <translation id="1006017844123154345">Otvoriť online</translation>
-<translation id="1036348656032585052">Vypnúť</translation>
 <translation id="1036727731225946849">Pridáva sa <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Z webov</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nikdy neprekladať tieto webové stránky</translation>
 <translation id="1291207594882862231">Vymazať históriu, súbory cookie, údaje stránok, vyrovnávaciu pamäť…</translation>
 <translation id="129553762522093515">Naposledy zatvorené</translation>
-<translation id="1320663236730331991">Potiahnite nahor a ľahko sa dostanete k obľúbeným webom a článkom, stiahnutým súborom a ďalšiemu obsahu.</translation>
 <translation id="1326317727527857210">Ak chcete získať karty z ďalších svojich zariadení, prihláste sa do Chromu.</translation>
 <translation id="1332501820983677155">Skratky pre funkcie prehliadača Google Chrome</translation>
 <translation id="136248372334525878">Predbežné načítanie urýchľujúce načítanie a čítanie offline</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Ďalšie aplikácie: <ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474">Späť</translation>
 <translation id="2082238445998314030">Výsledok <ph name="RESULT_NUMBER" /> z <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Predstavujeme nový Chrome</translation>
 <translation id="2086652334978798447">Ak chcete získavať prispôsobený obsah navrhnutý Googlom, prihláste sa do Chromu.</translation>
 <translation id="2091887806945687916">Zvuk</translation>
 <translation id="209354263896846928">Prejdite na panel s adresou v dolnej časti obrazovky</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatické prihlasovanie</translation>
 <translation id="2111511281910874386">Prejdite na stránku</translation>
 <translation id="2122601567107267586">Aplikáciu sa nepodarilo otvoriť</translation>
-<translation id="2123074103454259350">Ešte nie</translation>
 <translation id="2126426811489709554">Používa technológiu prehliadača Chrome</translation>
 <translation id="2131665479022868825">Uložené: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Karta <ph name="TAB_TITLE" /> je zavretá</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Úprava karty</translation>
 <translation id="2154710561487035718">Kopírovať webovú adresu</translation>
 <translation id="2156074688469523661">Zostávajúce weby (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Povedzte nám, prečo ste vypli nový Chrome</translation>
-<translation id="2185784955520093231">Používate nový Chrome</translation>
 <translation id="219985413780390209">Chrániť mňa aj moje zariadenie pred nebezpečnými webmi</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, webová aplikácia: <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Pokračovať ako <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome spotrebúva na zobrazenie tejto stránky menej dát</translation>
 <translation id="2888126860611144412">O aplikácii Chrome</translation>
 <translation id="2891154217021530873">Zastaviť načítavanie stránky</translation>
-<translation id="2892933203342091350">Aktivovať zjednodušené zobrazenie pre všetky články</translation>
 <translation id="2900528713135656174">Vytvorte udalosť</translation>
 <translation id="2902702728133930130">Prehliadač Chrome sa nepodarilo spustiť, pretože sa vyskytla neočakávaná chyba</translation>
 <translation id="2903493209154104877">Adresy</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Webové stránky tretej strany môžu ukladať a čítať údaje súborov cookie</translation>
 <translation id="3662546969139119822">Žiadna história</translation>
 <translation id="3672452749423051839">Návrhy v prípade chýb navigácie</translation>
-<translation id="3682249951633602029">Vaše heslá sa zobrazia všetkým používateľom, ktorí vidia exportovaný súbor hesiel.</translation>
 <translation id="3712575778697986964">Resetovať Šetrič dát?</translation>
 <translation id="3714981814255182093">Otvorenie Panela vyhľadávania</translation>
 <translation id="3716182511346448902">Táto stránka využíva príliš veľa pamäte, a preto ju Chrome pozastavil.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Stiahnuté: <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Vyberte kartu, ktorú chcete preniesť</translation>
 <translation id="6545017243486555795">Vymazať všetky dáta</translation>
-<translation id="6550675742724504774">Možnosti</translation>
 <translation id="6556716549745717622">Blokovať, ak web zvykne zobrazovať obťažujúce reklamy (odporúčané)</translation>
 <translation id="6560414384669816528">Vyhľadávať pomocou Sogou</translation>
 <translation id="6566259936974865419">Chrome ušetril <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Heslo môžete kopírovať po odomknutí</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d otvorená karta}few{%1$d otvorené karty}many{%1$d otvorenej karty}other{%1$d otvorených kariet}}</translation>
 <translation id="6896758677409633944">Kopírovať</translation>
-<translation id="6905163627763043954">Vyskúšať</translation>
 <translation id="6910211073230771657">Odstránené</translation>
 <translation id="6945221475159498467">Vybrať</translation>
 <translation id="6959661084585705671">Sekundárne úložisko</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Návrhy sa nedajú získať</translation>
 <translation id="7562080006725997899">Vymazávajú sa údaje prehliadania</translation>
 <translation id="756809126120519699">Údaje Chromu boli vymazané</translation>
-<translation id="7581273696622423628">Zúčastniť sa prieskumu</translation>
 <translation id="7588950540487816470">Fyzický web</translation>
 <translation id="7589445247086920869">Blokovať pre aktuálny vyhľadávač</translation>
 <translation id="7593557518625677601">V nastaveniach Androidu spustite synchronizáciu Chromu opätovným povolením synchronizácie Androidu</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Synchronizácia nefunguje</translation>
 <translation id="7612619742409846846">Prihlásený/-á do Googlu ako</translation>
 <translation id="7619072057915878432">Súbor <ph name="FILE_NAME" /> sa nepodarilo stiahnuť z dôvodu problémov so sieťou.</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />Prehliadajte jednoduchšie<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Získajte pomoc<ph name="END_LINK1" /> alebo <ph name="BEGIN_LINK2" />znova spustite vyhľadávanie<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Víta vás prehliadač Chrome</translation>
 <translation id="7638584964844754484">Nesprávna prístupová fráza</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Zrušiť výber</translation>
 <translation id="784934925303690534">Časové obdobie</translation>
 <translation id="7851858861565204677">Ďalšie zariadenia</translation>
-<translation id="785312750761189439">Ak chcete rýchlo získať prístup k populárnym webom, článkom, stiahnutým súborom a ďalšiemu obsahu, potiahnite prstom nahor z dolnej časti obrazovky alebo klepnite na tlačidlo Rozbaliť</translation>
 <translation id="7875915731392087153">Vytvorte správu</translation>
 <translation id="7876243839304621966">Odstrániť všetko</translation>
 <translation id="7882131421121961860">Nenašla sa žiadna história</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
index f93037c..995dcfc 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sl">
 <translation id="1006017844123154345">Odpri v spletu</translation>
-<translation id="1036348656032585052">Izklop</translation>
 <translation id="1036727731225946849">Dodajanje <ph name="WEBAPK_NAME" /> ...</translation>
 <translation id="1041308826830691739">S spletnih mest</translation>
 <translation id="1049743911850919806">Način brez beleženja zgodovine</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Nikoli ne prevedi tega spletnega mesta</translation>
 <translation id="1291207594882862231">Izbris zgodovine, piškotkov, podatkov spletnih mest, predpomnilnika …</translation>
 <translation id="129553762522093515">Nedavno zaprto</translation>
-<translation id="1320663236730331991">Povlecite navzgor za preprost dostop do priljubljenih spletnih mest in člankov, prenosov in drugega</translation>
 <translation id="1326317727527857210">Če želite dostopati do zavihkov v drugih napravah, se prijavite v Chrome.</translation>
 <translation id="1332501820983677155">Bližnjice za funkcije Google Chroma</translation>
 <translation id="136248372334525878">Vnaprejšnje nalaganje strani za hitrejše nalaganje in branje brez povezave</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB drugih aplikacij</translation>
 <translation id="2079545284768500474">Razveljavi</translation>
 <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. rezultat od <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Predstavljamo novi Chrome</translation>
 <translation id="2086652334978798447">Če želite prejemati prilagojeno vsebino, ki jo predlaga Google, se prijavite v Chrome.</translation>
 <translation id="2091887806945687916">Zvok</translation>
 <translation id="209354263896846928">Naslovna vrstica je dostopna na dnu zaslona</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Samodejna prijava</translation>
 <translation id="2111511281910874386">Pojdi na stran</translation>
 <translation id="2122601567107267586">Aplikacije ni bilo mogoče odpreti</translation>
-<translation id="2123074103454259350">Ne še</translation>
 <translation id="2126426811489709554">Uporablja tehnologijo Chrome</translation>
 <translation id="2131665479022868825">Shranjeno <ph name="DATA" /></translation>
 <translation id="213279576345780926">Zaprt zavihek: <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Urejanje kartice</translation>
 <translation id="2154710561487035718">Kopiraj URL</translation>
 <translation id="2156074688469523661">Preostala spletna mesta (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Povejte nam, zakaj ste izklopili novi Chrome</translation>
-<translation id="2185784955520093231">Uporabljate novi Chrome</translation>
 <translation id="219985413780390209">Zaščitite sebe in napravo pred nevarnimi spletnimi mesti</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, spletna aplikacija. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Nadaljujte kot <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome uporablja manj podatkov za prikaz te strani</translation>
 <translation id="2888126860611144412">O brskalniku Chrome</translation>
 <translation id="2891154217021530873">Ustavi nalaganje strani</translation>
-<translation id="2892933203342091350">Omogoči poenostavljen pogled na vse članke</translation>
 <translation id="2900528713135656174">Ustvarite dogodek</translation>
 <translation id="2902702728133930130">Zaradi nepričakovane napake se Chrome ni uspel zagnati.</translation>
 <translation id="2903493209154104877">Naslovi</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Druga spletna mesta lahko shranjujejo in berejo podatke piškotkov</translation>
 <translation id="3662546969139119822">Tu ni zgodovine</translation>
 <translation id="3672452749423051839">Predlogi za napake pri krmarjenju</translation>
-<translation id="3682249951633602029">Gesla bodo vidna vsakomur, ki si lahko ogleda izvoženo datoteko z gesli.</translation>
 <translation id="3712575778697986964">Želite ponastaviti varčevanje s podatki?</translation>
 <translation id="3714981814255182093">Odpiranje vrstice za iskanje</translation>
 <translation id="3716182511346448902">Ta stran uporablja preveč pomnilnika, zato jo je Chrome zaustavil.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Preneseno <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Izberite zavihek za prenos</translation>
 <translation id="6545017243486555795">Izbris vseh podatkov</translation>
-<translation id="6550675742724504774">Možnosti</translation>
 <translation id="6556716549745717622">Blokiraj, če spletno mesto prikazuje vsiljive oglase (priporočljivo)</translation>
 <translation id="6560414384669816528">Iskanje z iskalnikom Sogou</translation>
 <translation id="6566259936974865419">S Chromom ste prihranili <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Odklenite, če želite kopirati geslo</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d odprt zavihek}one{%1$d odprt zavihek}two{%1$d odprta zavihka}few{%1$d odprti zavihki}other{%1$d odprtih zavihkov}}</translation>
 <translation id="6896758677409633944">Kopiraj</translation>
-<translation id="6905163627763043954">Preskusi</translation>
 <translation id="6910211073230771657">Izbrisano</translation>
 <translation id="6945221475159498467">Izberi</translation>
 <translation id="6959661084585705671">Sekundarna shramba</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Prejemanje predlogov ni mogoče</translation>
 <translation id="7562080006725997899">Brisanje podatkov brskanja</translation>
 <translation id="756809126120519699">Chromovi podatki so izbrisani.</translation>
-<translation id="7581273696622423628">Izpolnjevanje ankete</translation>
 <translation id="7588950540487816470">Fizični splet</translation>
 <translation id="7589445247086920869">Blokiraj za trenutni iskalnik</translation>
 <translation id="7593557518625677601">Odprite nast. za Android in znova omog. sinh. v Androidu za zač. sinh. za Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Sync isn't working</translation>
 <translation id="7612619742409846846">Signed in to Google as</translation>
 <translation id="7619072057915878432">Prenos datoteke <ph name="FILE_NAME" /> ni uspel zaradi napak v omrežju.</translation>
-<translation id="7620146066550602128">Preskusite <ph name="BEGIN_LINK" />preprostejši način brskanja<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Poiščite pomoč<ph name="END_LINK1" /> ali <ph name="BEGIN_LINK2" />znova iščite<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Dobrodošli v brskalniku Chrome</translation>
 <translation id="7638584964844754484">Napačno geslo</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Prekliči izbor</translation>
 <translation id="784934925303690534">Časovno obdobje</translation>
 <translation id="7851858861565204677">Druge naprave</translation>
-<translation id="785312750761189439">Povlecite navzgor z dna zaslona ali se dotaknite gumba za razširitev, da boste lažje dostopali do priljubljenih spletnih mest in člankov, prenosov in druge vsebine</translation>
 <translation id="7875915731392087153">Ustvarite e-poštno sporočilo</translation>
 <translation id="7876243839304621966">Odstrani vse</translation>
 <translation id="7882131421121961860">Ni zgodovine</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
index 4aa53c0..9859872 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sr">
 <translation id="1006017844123154345">Отвори онлајн</translation>
-<translation id="1036348656032585052">Искључи</translation>
 <translation id="1036727731225946849">Додаје се <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Са веб-сајтова</translation>
 <translation id="1049743911850919806">Без архивирања</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Никад не преводи овај сајт</translation>
 <translation id="1291207594882862231">Обришите историју, колачиће, податке о сајтовима, кеш...</translation>
 <translation id="129553762522093515">Недавно затворено</translation>
-<translation id="1320663236730331991">Превуците нагоре да бисте лако приступали популарним сајтовима и чланцима, преузимањима и још много тога</translation>
 <translation id="1326317727527857210">Да би вам картице биле доступне на другим уређајима, пријавите се у Chrome.</translation>
 <translation id="1332501820983677155">Пречице за Google Chrome функције</translation>
 <translation id="136248372334525878">Странице се учитавају унапред за брже учитавање и офлајн читање</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB – друге апликације</translation>
 <translation id="2079545284768500474">Опозови</translation>
 <translation id="2082238445998314030"><ph name="RESULT_NUMBER" />. од <ph name="TOTAL_RESULTS" /> резултата</translation>
-<translation id="2086116129690175316">Представљамо нови Chrome</translation>
 <translation id="2086652334978798447">Да бисте добијали персонализовани садржај који предлаже Google, пријавите се у Chrome.</translation>
 <translation id="2091887806945687916">Звук</translation>
 <translation id="209354263896846928">Приступајте траци за адресу у дну екрана</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Аутоматско пријављивање</translation>
 <translation id="2111511281910874386">Иди на страницу</translation>
 <translation id="2122601567107267586">Отварање апликације није успело</translation>
-<translation id="2123074103454259350">Не још</translation>
 <translation id="2126426811489709554">Омогућава Chrome</translation>
 <translation id="2131665479022868825">Сачувано: <ph name="DATA" /></translation>
 <translation id="213279576345780926">Затворили сте картицу <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Измените картицу</translation>
 <translation id="2154710561487035718">Копирање URL адресе</translation>
 <translation id="2156074688469523661">Преостали сајтови (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Реците нам зашто сте искључили нови Chrome</translation>
-<translation id="2185784955520093231">Користите нови Chrome</translation>
 <translation id="219985413780390209">Заштите себе и уређај од опасних сајтова</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, веб-апликација. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Настави као <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome користи мање података за приказивање ове странице</translation>
 <translation id="2888126860611144412">О Chrome прегледачу</translation>
 <translation id="2891154217021530873">Заустави учитавање странице</translation>
-<translation id="2892933203342091350">Омогући поједностављени приказ у свим чланцима</translation>
 <translation id="2900528713135656174">Направите догађај</translation>
 <translation id="2902702728133930130">Chrome је отказао током покретања због неочекиване грешке.</translation>
 <translation id="2903493209154104877">Адресе</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Веб-сајтови треће стране могу да чувају и читају податке колачића</translation>
 <translation id="3662546969139119822">Нема историје</translation>
 <translation id="3672452749423051839">Предлози за грешке при навигацији</translation>
-<translation id="3682249951633602029">Лозинке ће бити видљиве свима који могу да виде извезену датотеку са лозинкама.</translation>
 <translation id="3712575778697986964">Желите ли да ресетујете Уштеду података?</translation>
 <translation id="3714981814255182093">Отварање траке за тражење</translation>
 <translation id="3716182511346448902">Ова страница користи превише меморије, па ју је Chrome паузирао.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Преузели сте <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Изаберите картицу за пребацивање</translation>
 <translation id="6545017243486555795">Обриши све податке</translation>
-<translation id="6550675742724504774">Опције</translation>
 <translation id="6556716549745717622">Блокирај ако сајт приказује огласе који ометају (препоручено)</translation>
 <translation id="6560414384669816528">Претрага помоћу Sogou-а</translation>
 <translation id="6566259936974865419">Chrome вам је уштедео <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Откључајте да бисте копирали лозинку</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d отворена картица}one{%1$d отворена картица}few{%1$d отворене картице}other{%1$d отворених картица}}</translation>
 <translation id="6896758677409633944">Копирај</translation>
-<translation id="6905163627763043954">Испробај</translation>
 <translation id="6910211073230771657">Избрисано</translation>
 <translation id="6945221475159498467">Изабери</translation>
 <translation id="6959661084585705671">Секундарни меморијски простор</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Не можете да добијете предлоге</translation>
 <translation id="7562080006725997899">Брисање података прегледања</translation>
 <translation id="756809126120519699">Chrome подаци су обрисани</translation>
-<translation id="7581273696622423628">Прикажи анкету</translation>
 <translation id="7588950540487816470">Интернет око нас</translation>
 <translation id="7589445247086920869">Блокирај за актуелни претраживач</translation>
 <translation id="7593557518625677601">Отворите Android подешавања и поново омогућите синхронизацију Android система да бисте започели Chrome синхронизацију</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Синхронизација не функционише</translation>
 <translation id="7612619742409846846">Пријављени сте у Google као</translation>
 <translation id="7619072057915878432">Преузимање датотеке <ph name="FILE_NAME" /> није успело због проблема са мрежом.</translation>
-<translation id="7620146066550602128">Испробајте <ph name="BEGIN_LINK" />лакши начин за прегледање<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Потражите помоћ<ph name="END_LINK1" /> или <ph name="BEGIN_LINK2" />поново скенирајте<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Добро дошли у Chrome</translation>
 <translation id="7638584964844754484">Неисправна приступна фраза</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Откажи избор</translation>
 <translation id="784934925303690534">Временски опсег</translation>
 <translation id="7851858861565204677">Други уређаји</translation>
-<translation id="785312750761189439">Превуците нагоре од дна екрана или додирните дугме Прошири ако желите једноставан приступ популарним сајтовима и чланцима, преузимањима и другим стварима</translation>
 <translation id="7875915731392087153">Напишите имејл</translation>
 <translation id="7876243839304621966">Уклони све</translation>
 <translation id="7882131421121961860">Историја није пронађена</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
index 4a2be1e..a3fc34c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sv">
 <translation id="1006017844123154345">Öppna onlineversionen</translation>
-<translation id="1036348656032585052">Inaktivera</translation>
 <translation id="1036727731225946849">Lägger till <ph name="WEBAPK_NAME" /> …</translation>
 <translation id="1041308826830691739">Från webbplatser</translation>
 <translation id="1049743911850919806">Inkognito</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Översätt aldrig den här webbplatsen</translation>
 <translation id="1291207594882862231">Rensa historiken, cookies, webbplatsdata, cacheminnet …</translation>
 <translation id="129553762522093515">Nyligen stängda</translation>
-<translation id="1320663236730331991">Hitta snabbt till populära webbplatser och artiklar, nedladdningar med mera genom att svepa uppåt.</translation>
 <translation id="1326317727527857210">Logga in i Chrome om du vill ha samma flikar tillgängliga på alla enheter.</translation>
 <translation id="1332501820983677155">Kortkommandon för funktioner i Google Chrome</translation>
 <translation id="136248372334525878">Genom att läsa in sidor i förväg går det snabbare att läsa in sidor och läsa offline</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB används av övriga appar</translation>
 <translation id="2079545284768500474">Ångra</translation>
 <translation id="2082238445998314030">Resultat <ph name="RESULT_NUMBER" /> av <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Detta är nya Chrome</translation>
 <translation id="2086652334978798447">Logga in i Chrome om du vill få förslag på anpassat innehåll från Google.</translation>
 <translation id="2091887806945687916">Ljud</translation>
 <translation id="209354263896846928">Adressfältet finns längst ned på skärmen</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Automatisk inloggning</translation>
 <translation id="2111511281910874386">Öppna sida</translation>
 <translation id="2122601567107267586">Det gick inte att öppna appen</translation>
-<translation id="2123074103454259350">Inte än</translation>
 <translation id="2126426811489709554">Drivs av Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> har sparats</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> har stängts</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Redigera kortet</translation>
 <translation id="2154710561487035718">Kopiera webbadress</translation>
 <translation id="2156074688469523661">Återstående webbplatser (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Berätta varför du inaktiverade nya Chrome</translation>
-<translation id="2185784955520093231">Du använder nya Chrome</translation>
 <translation id="219985413780390209">Skydda dig själv och enheten från farliga webbplatser</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, webbapp. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Fortsätt som <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Mängden data som krävs för att visa den här sidan har reducerats i Chrome</translation>
 <translation id="2888126860611144412">Om Chrome</translation>
 <translation id="2891154217021530873">Avbryt inläsningen av sidan</translation>
-<translation id="2892933203342091350">Aktivera förenklad visning för alla artiklar</translation>
 <translation id="2900528713135656174">Skapa händelse</translation>
 <translation id="2902702728133930130">Ett oväntat fel uppstod när Chrome skulle startas.</translation>
 <translation id="2903493209154104877">Adresser</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Webbplatser från tredje part kan spara och läsa cookiedata</translation>
 <translation id="3662546969139119822">Det finns ingen historik här</translation>
 <translation id="3672452749423051839">Förslag vid navigeringsfel</translation>
-<translation id="3682249951633602029">Alla med tillgång till den exporterade lösenordsfilen kan läsa dina lösenord.</translation>
 <translation id="3712575778697986964">Vill du återställa Databesparing?</translation>
 <translation id="3714981814255182093">Öppna sökfältet</translation>
 <translation id="3716182511346448902">Den här sidan har pausats i Chrome eftersom den använder för mycket minne.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB har laddats ned</translation>
 <translation id="654446541061731451">Välj en flik som du vill överföra</translation>
 <translation id="6545017243486555795">Rensa all data</translation>
-<translation id="6550675742724504774">Alternativ</translation>
 <translation id="6556716549745717622">Blockera om påträngande annonser brukar visas på webbplatsen (rekommenderas)</translation>
 <translation id="6560414384669816528">Sök med Sogou</translation>
 <translation id="6566259936974865419">Du har sparat <ph name="GIGABYTES" /> GB med Chrome</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Lås upp om du vill kopiera lösenordet</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d öppen flik}other{%1$d öppna flikar}}</translation>
 <translation id="6896758677409633944">Kopiera</translation>
-<translation id="6905163627763043954">Testa det</translation>
 <translation id="6910211073230771657">Borttagen</translation>
 <translation id="6945221475159498467">Välj</translation>
 <translation id="6959661084585705671">Sekundärt lagringsutrymme</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Det går inte att få förslag</translation>
 <translation id="7562080006725997899">Tar bort webbinformation</translation>
 <translation id="756809126120519699">Data i Chrome har rensats</translation>
-<translation id="7581273696622423628">Svara på enkäten</translation>
 <translation id="7588950540487816470">Physical Web</translation>
 <translation id="7589445247086920869">Blockera för den nuvarande sökmotorn</translation>
 <translation id="7593557518625677601">Återaktivera synkronisering i Android-inställningarna så börjar Chrome synkas</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Det går inte att synkronisera</translation>
 <translation id="7612619742409846846">Inloggad i Google som</translation>
 <translation id="7619072057915878432">Det gick inte att ladda ned <ph name="FILE_NAME" /> på grund av nätverksfel.</translation>
-<translation id="7620146066550602128">Testa ett <ph name="BEGIN_LINK" />enklare sätt att surfa på<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Få hjälp<ph name="END_LINK1" /> eller <ph name="BEGIN_LINK2" />sök igen<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Välkommen till Chrome</translation>
 <translation id="7638584964844754484">Felaktig lösenfras</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Rensa val</translation>
 <translation id="784934925303690534">Tidsintervall</translation>
 <translation id="7851858861565204677">Andra enheter</translation>
-<translation id="785312750761189439">Svep uppåt från skärmens nederkant eller tryck på knappen Utöka om du vill få enkel åtkomst till populära sidor och artiklar, nedladdningar och annat.</translation>
 <translation id="7875915731392087153">Skapa ett e-postmeddelande</translation>
 <translation id="7876243839304621966">Ta bort alla</translation>
 <translation id="7882131421121961860">Ingen historik hittades</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
index 430a156..e3d6a1b 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="sw">
 <translation id="1006017844123154345">Fungua Mtandaoni</translation>
-<translation id="1036348656032585052">Zima</translation>
 <translation id="1036727731225946849">Inaongeza <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Kutoka kwenye tovuti</translation>
 <translation id="1049743911850919806">Kichupo fiche</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Kamwe usitafsiri tovuti hii</translation>
 <translation id="1291207594882862231">Futa historia, vidakuzi, data ya tovuti, akiba…</translation>
 <translation id="129553762522093515">Vilivyofungwa hivi karibuni</translation>
-<translation id="1320663236730331991">Telezesha kidole juu ili ufikie kwa urahisi tovuti, makala, vipakuliwa na vipengee vingine maarufu</translation>
 <translation id="1326317727527857210">Ili upate vichupo kutoka kwenye vifaa vyako vingine, ingia katika Chrome.</translation>
 <translation id="1332501820983677155">Njia za mikato za vipengele vya Google Chrome</translation>
 <translation id="136248372334525878">Pakia mapema kurasa ili zipakie kwa haraka na kwa usomaji wa nje ya mtandao</translation>
@@ -83,7 +81,7 @@
 <translation id="1660204651932907780">Ruhusu tovuti kucheza sauti (inapendekezwa)</translation>
 <translation id="1670399744444387456">Msingi</translation>
 <translation id="1671236975893690980">Inasubiri kupakua...</translation>
-<translation id="1674523662097951983">Kipengele cha “Alamisho” kinahamishwa. Wakati ujao, utavuta juu upau wa anwani.</translation>
+<translation id="1674523662097951983">Kipengele cha “Alamisho” kinahamishwa. Wakati ujao, utavuta juu sehemu ya anwani.</translation>
 <translation id="169033420419426091">Kipakuliwa cha <ph name="FILE_NAME" /> hakijafaulu kwa sababu hakuna Kadi ya SD.</translation>
 <translation id="1709438864123551175">Kiokoa Data</translation>
 <translation id="1718835860248848330">Saa iliyopita</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Programu nyingine za GB <ph name="GIGABYTES" /></translation>
 <translation id="2079545284768500474">Tendua</translation>
 <translation id="2082238445998314030">Tokeo <ph name="RESULT_NUMBER" /> kati ya <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Tunawaletea toleo jipya la Chrome</translation>
 <translation id="2086652334978798447">Ili Google ikupendekezee maudhui yanayokufaa, ingia katika Chrome.</translation>
 <translation id="2091887806945687916">Sauti</translation>
 <translation id="209354263896846928">Fikia sehemu ya anwani kwenye sehemu ya chini ya skrini yako</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Ingia katika Akaunti Kiotomatiki</translation>
 <translation id="2111511281910874386">Nenda kwenye ukurasa</translation>
 <translation id="2122601567107267586">Imeshindwa kufungua programu</translation>
-<translation id="2123074103454259350">Bado</translation>
 <translation id="2126426811489709554">Unaendeshwa na Chrome</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> imeokolewa</translation>
 <translation id="213279576345780926">Umefunga <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Badilisha kadi</translation>
 <translation id="2154710561487035718">Nakili UR:</translation>
 <translation id="2156074688469523661">Tovuti zilizosalia (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Tueleze kwa nini ulizima toleo jipya la Chrome</translation>
-<translation id="2185784955520093231">Unatumia toleo jipya la Chrome</translation>
 <translation id="219985413780390209">Jilinde na ulinde vifaa vyako dhidi ya tovuti hatari</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, programu ya wavuti. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Endelea ukitumia <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome inatumia kiasi kidogo cha data kukuonyesha ukurasa huu</translation>
 <translation id="2888126860611144412">Kuhusu Chrome</translation>
 <translation id="2891154217021530873">Simamisha upakiaji wa ukurasa</translation>
-<translation id="2892933203342091350">Washa mwonekano rahisi kwenye makala yote</translation>
 <translation id="2900528713135656174">Unda tukio</translation>
 <translation id="2902702728133930130">Chrome haikufaulu wakati wa kuanza kutokana na hitilafu isiyotarajiwa.</translation>
 <translation id="2903493209154104877">Anwani</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Tovuti nyingine zinaweza kuhifadhi na kusoma data ya vidakuzi</translation>
 <translation id="3662546969139119822">Hamna historia hapa</translation>
 <translation id="3672452749423051839">Mapendekezo ya hitilafu ya kuelekea unapotaka</translation>
-<translation id="3682249951633602029">Manenosiri yako yataonekana na mtu yeyote anayeweza kuona faili ya manenosiri yaliyohamishwa.</translation>
 <translation id="3712575778697986964">Ungependa kuweka upya takwimu za Kiokoa Data?</translation>
 <translation id="3714981814255182093">Fungua Upau wa Kutafuta</translation>
 <translation id="3716182511346448902">Ukurasa huu unatumia hifadhi kubwa zaidi, kwa hivyo Chrome imeusitisha.</translation>
@@ -555,7 +547,7 @@
 <translation id="5956665950594638604">Fungua Kituo cha Usaidizi cha Chrome katika kichupo kipya</translation>
 <translation id="5958275228015807058">Tafuta faili na kurasa zako katika Vipakuliwa</translation>
 <translation id="5962718611393537961">Gusa ili ukunje</translation>
-<translation id="5974562976030145789">Kipengele cha “Vipakuliwa” kinahamishwa. Wakati ujao, utavuta juu upau wa anwani.</translation>
+<translation id="5974562976030145789">Kipengele cha “Vipakuliwa” kinahamishwa. Wakati ujao, utavuta juu sehemu ya anwani.</translation>
 <translation id="6000066717592683814">Endelea Kutumia Google</translation>
 <translation id="6031101910111098835">Imekunjwa - Bofya ili upanue</translation>
 <translation id="6039379616847168523">Nenda kwenye kichupo kinachofuata</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Umepakua GB <ph name="GBS" /></translation>
 <translation id="654446541061731451">Chagua kichupo cha kusambaza</translation>
 <translation id="6545017243486555795">Futa Data Yote</translation>
-<translation id="6550675742724504774">Chaguo</translation>
 <translation id="6556716549745717622">Zuia ikiwa tovuti inaonyesha matangazo yanayokatiza matumizi (inapendekezwa)</translation>
 <translation id="6560414384669816528">Tafuta kwa kutumia Sogou</translation>
 <translation id="6566259936974865419">Chrome imekuokolea GB <ph name="GIGABYTES" /></translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Fungua ili unakili nenosiri lako</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{Kichupo %1$d kilicho wazi}other{Vichupo %1$d vilivyo wazi}}</translation>
 <translation id="6896758677409633944">Nakili</translation>
-<translation id="6905163627763043954">Ijaribu</translation>
 <translation id="6910211073230771657">Imeondolewa</translation>
 <translation id="6945221475159498467">Chagua</translation>
 <translation id="6959661084585705671">Hifadhi nyingine</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Imeshindwa kupata mapendekezo</translation>
 <translation id="7562080006725997899">Inafuta data ya kuvinjari</translation>
 <translation id="756809126120519699">Data ya Chrome imefutwa</translation>
-<translation id="7581273696622423628">Shiriki katika utafiti</translation>
 <translation id="7588950540487816470">Wavuti Kila Mahali</translation>
 <translation id="7589445247086920869">Zuia kwa mtambo wa sasa wa kutafuta</translation>
 <translation id="7593557518625677601">Fungua mipangilio ya Android na uwashe upya usawazishaji wa mfumo wa Android ili uanze usawazishaji wa Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Kipengele cha usawazishaji hakifanyi kazi</translation>
 <translation id="7612619742409846846">Umeingia katika akaunti ya Google ukitumia</translation>
 <translation id="7619072057915878432">Kipakuliwa cha <ph name="FILE_NAME" /> hakijafaulu kwa sababu ya hitilafu za mtandao.</translation>
-<translation id="7620146066550602128">Jaribu <ph name="BEGIN_LINK" />njia rahisi ya kuvinjari<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Pata usaidizi<ph name="END_LINK1" /> au <ph name="BEGIN_LINK2" />tafuta tena<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Karibu kwenye Chrome</translation>
 <translation id="7638584964844754484">Kaulisiri si sahihi</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Ghairi uchaguzi</translation>
 <translation id="784934925303690534">Muda</translation>
 <translation id="7851858861565204677">Vifaa vingine</translation>
-<translation id="785312750761189439">Telezesha kidole kutoka chini kwenda juu kwenye skrini au uguse kitufe cha kupanua ili ufikie kwa urahisi tovuti, makala, vipakuliwa na vipengee vingine maarufu</translation>
 <translation id="7875915731392087153">Tunga barua pepe</translation>
 <translation id="7876243839304621966">Ondoa yote</translation>
 <translation id="7882131421121961860">Hakuna historia iliyopatikana</translation>
@@ -820,7 +807,7 @@
 <translation id="8487700953926739672">Kinapatikana nje ya mtandao</translation>
 <translation id="8489271220582375723">Fungua ukurasa wa historia</translation>
 <translation id="8493948351860045254">Ongeza nafasi ya hifadhi</translation>
-<translation id="8494508527479967437">Kipengele cha “Historia” kinahamishwa. Wakati ujao, utavuta juu upau wa anwani.</translation>
+<translation id="8494508527479967437">Kipengele cha “Historia” kinahamishwa. Wakati ujao, utavuta juu sehemu ya anwani.</translation>
 <translation id="8497726226069778601">Bado hapana chochote cha kuangalia...</translation>
 <translation id="8503813439785031346">Jina la mtumiaji</translation>
 <translation id="8514477925623180633">Tuma manenosiri yaliyohifadhiwa kwenye Chrome</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
index 570090d5..cddc609 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="th">
 <translation id="1006017844123154345">เปิดแบบออนไลน์</translation>
-<translation id="1036348656032585052">ปิด</translation>
 <translation id="1036727731225946849">กำลังเพิ่ม <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">จากเว็บไซต์</translation>
 <translation id="1049743911850919806">โหมดไม่ระบุตัวตน</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">ไม่ต้องแปลไซต์นี้</translation>
 <translation id="1291207594882862231">ล้างประวัติการเข้าชม คุกกี้ ข้อมูลเว็บไซต์ แคช…</translation>
 <translation id="129553762522093515">เพิ่งปิด</translation>
-<translation id="1320663236730331991">เลื่อนขึ้นเพื่อเข้าถึงไซต์และบทความยอดนิยม การดาวน์โหลด และอื่นๆ อย่างง่ายดาย</translation>
 <translation id="1326317727527857210">ลงชื่อเข้าใช้ Chrome เพื่อรับแท็บจากอุปกรณ์เครื่องอื่นๆ ของคุณ</translation>
 <translation id="1332501820983677155">แป้นพิมพ์ลัดสำหรับฟีเจอร์ของ Google Chrome</translation>
 <translation id="136248372334525878">โหลดหน้าเว็บไว้ล่วงหน้าเพื่อให้โหลดได้เร็วและไว้อ่านแบบออฟไลน์</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB จากแอปอื่นๆ</translation>
 <translation id="2079545284768500474">เลิกทำ</translation>
 <translation id="2082238445998314030">ผลลัพธ์ <ph name="RESULT_NUMBER" /> จาก <ph name="TOTAL_RESULTS" /> รายการ</translation>
-<translation id="2086116129690175316">ขอแนะนำ Chrome ใหม่</translation>
 <translation id="2086652334978798447">หากต้องการรับคำแนะนำเนื้อหาที่เหมาะสำหรับคุณจาก Google ให้ลงชื่อเข้าใช้ Chrome</translation>
 <translation id="2091887806945687916">เสียง</translation>
 <translation id="209354263896846928">ไปที่แถบที่อยู่เว็บที่ด้านล่างของหน้าจอ</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">ลงชื่อเข้าใช้อัตโนมัติ</translation>
 <translation id="2111511281910874386">ไปที่หน้า</translation>
 <translation id="2122601567107267586">เปิดแอปไม่ได้</translation>
-<translation id="2123074103454259350">ยังก่อน</translation>
 <translation id="2126426811489709554">สนับสนุนโดย Chrome</translation>
 <translation id="2131665479022868825">ประหยัดไป <ph name="DATA" /></translation>
 <translation id="213279576345780926">ปิด <ph name="TAB_TITLE" /> แล้ว</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">แก้ไขบัตร</translation>
 <translation id="2154710561487035718">คัดลอก URL</translation>
 <translation id="2156074688469523661">เว็บไซต์ที่เหลือ (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">โปรดบอกเหตุผลที่คุณปิด Chrome ใหม่</translation>
-<translation id="2185784955520093231">คุณกำลังใช้ Chrome ใหม่</translation>
 <translation id="219985413780390209">ปกป้องคุณและอุปกรณ์ของคุณจากเว็บไซต์อันตราย</translation>
 <translation id="2206488550163399966">เว็บแอป <ph name="APP_NAME" />, <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">ดำเนินการต่อในชื่อ <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome ใช้อินเทอร์เน็ตน้อยลงเพื่อแสดงหน้านี้</translation>
 <translation id="2888126860611144412">เกี่ยวกับ Chrome</translation>
 <translation id="2891154217021530873">หยุดการโหลดหน้า</translation>
-<translation id="2892933203342091350">เปิดใช้ "มุมมองอย่างง่าย" กับบทความทั้งหมด</translation>
 <translation id="2900528713135656174">สร้างกิจกรรม</translation>
 <translation id="2902702728133930130">Chrome ล้มเหลวในระหว่างเริ่มต้นเนื่องจากข้อผิดพลาดที่ไม่คาดคิด</translation>
 <translation id="2903493209154104877">ที่อยู่</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">เว็บไซต์ของบุคคลที่สามสามารถบันทึกและอ่านข้อมูลคุกกี้ได้</translation>
 <translation id="3662546969139119822">ไม่มีประวัติการเข้าชมที่นี่</translation>
 <translation id="3672452749423051839">คำแนะนำเมื่อเกิดข้อผิดพลาดในการนำทาง</translation>
-<translation id="3682249951633602029">คนที่ดูไฟล์รหัสผ่านที่ส่งออกได้จะเห็นรหัสผ่านของคุณ</translation>
 <translation id="3712575778697986964">รีเซ็ตโปรแกรมประหยัดอินเทอร์เน็ตไหม</translation>
 <translation id="3714981814255182093">เปิดแถบค้นหา</translation>
 <translation id="3716182511346448902">หน้านี้ใช้หน่วยความจำมากเกินไป Chrome จึงหยุดหน้าชั่วคราว</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">ดาวน์โหลดแล้ว <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">เลือกแท็บที่จะบีม</translation>
 <translation id="6545017243486555795">ล้างข้อมูลทั้งหมด</translation>
-<translation id="6550675742724504774">ตัวเลือก</translation>
 <translation id="6556716549745717622">บล็อกหากไซต์มักแสดงโฆษณาที่แทรก (แนะนำ)</translation>
 <translation id="6560414384669816528">ค้นหาด้วย Sogou</translation>
 <translation id="6566259936974865419">Chrome ได้ประหยัดพื้นที่ให้คุณไป <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">ปลดล็อกเพื่อคัดลอกรหัสผ่าน</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{แท็บที่เปิดอยู่ %1$d แท็บ}other{แท็บที่เปิดอยู่ %1$d แท็บ}}</translation>
 <translation id="6896758677409633944">คัดลอก</translation>
-<translation id="6905163627763043954">ลอง</translation>
 <translation id="6910211073230771657">ลบแล้ว</translation>
 <translation id="6945221475159498467">เลือก</translation>
 <translation id="6959661084585705671">พื้นที่เก็บข้อมูลรอง</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">รับคำแนะนำไม่ได้</translation>
 <translation id="7562080006725997899">กำลังล้างข้อมูลการท่องเว็บ</translation>
 <translation id="756809126120519699">ล้างข้อมูล Chrome แล้ว</translation>
-<translation id="7581273696622423628">ตอบแบบสำรวจ</translation>
 <translation id="7588950540487816470">Physical Web</translation>
 <translation id="7589445247086920869">บล็อกสำหรับเครื่องมือค้นหาปัจจุบัน</translation>
 <translation id="7593557518625677601">เปิดการตั้งค่า Android และเปิดการซิงค์ Android ใหม่เพื่อเริ่มการซิงค์ของ Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">การซิงค์ไม่ทำงาน</translation>
 <translation id="7612619742409846846">ลงชื่อเข้าใช้ Google ด้วย</translation>
 <translation id="7619072057915878432">การดาวน์โหลด <ph name="FILE_NAME" /> ล้มเหลวเพราะเครือข่ายขัดข้อง</translation>
-<translation id="7620146066550602128">ลองใช้<ph name="BEGIN_LINK" />วิธีที่ง่ายกว่าในการท่องเว็บ<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />รับความช่วยเหลือ<ph name="END_LINK1" />หรือ<ph name="BEGIN_LINK2" />สแกนใหม่<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">ยินดีต้อนรับสู่ Chrome</translation>
 <translation id="7638584964844754484">รหัสผ่านไม่ถูกต้อง</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">ยกเลิกการเลือก</translation>
 <translation id="784934925303690534">ช่วงเวลา</translation>
 <translation id="7851858861565204677">อุปกรณ์อื่นๆ</translation>
-<translation id="785312750761189439">เลื่อนขึ้นจากด้านล่างของหน้าจอหรือแตะปุ่มขยายเพื่อเข้าถึงเว็บไซต์และบทความยอดนิยม การดาวน์โหลด และอื่นๆ ได้อย่างง่ายดาย</translation>
 <translation id="7875915731392087153">สร้างอีเมล</translation>
 <translation id="7876243839304621966">ลบทั้งหมด</translation>
 <translation id="7882131421121961860">ไม่พบประวัติ</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
index 2015462..dfc5136 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="tr">
 <translation id="1006017844123154345">İnternet'te aç</translation>
-<translation id="1036348656032585052">Kapat</translation>
 <translation id="1036727731225946849"><ph name="WEBAPK_NAME" /> ekleniyor...</translation>
 <translation id="1041308826830691739">Web sitelerinden</translation>
 <translation id="1049743911850919806">Gizli mod</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Bu siteyi hiçbir zaman çevirme</translation>
 <translation id="1291207594882862231">Geçmişi, çerezleri, site verilerini, önbelleği temizleyin…</translation>
 <translation id="129553762522093515">Son kapatılan</translation>
-<translation id="1320663236730331991">Popüler sitelere, makalelere, indirilenlere ve diğerlerine kolayca erişmek için yukarı kaydırın</translation>
 <translation id="1326317727527857210">Diğer cihazlarınızdaki sekmelerinize ulaşmak için Chrome'da oturum açın.</translation>
 <translation id="1332501820983677155">Google Chrome'un özellik kısayolları</translation>
 <translation id="136248372334525878">Daha hızlı yükleme ve çevrimdışı okuma için sayfaları önceden yükle</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> GB diğer uygulamalar</translation>
 <translation id="2079545284768500474">Geri al</translation>
 <translation id="2082238445998314030"><ph name="TOTAL_RESULTS" /> sonuçtan <ph name="RESULT_NUMBER" /> numaralı sonuç</translation>
-<translation id="2086116129690175316">Yeni Chrome ile tanışın</translation>
 <translation id="2086652334978798447">Google tarafından önerilen kişiselleştirilmiş içeriği almak için Chrome'da oturum açın.</translation>
 <translation id="2091887806945687916">Ses</translation>
 <translation id="209354263896846928">Adres çubuğuna ekranınızın alt tarafından erişin</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Otomatik Oturum Aç</translation>
 <translation id="2111511281910874386">Sayfaya gidin</translation>
 <translation id="2122601567107267586">Uygulama açılamadı</translation>
-<translation id="2123074103454259350">Henüz değil</translation>
 <translation id="2126426811489709554">Chrome tarafından desteklenmektedir</translation>
 <translation id="2131665479022868825"><ph name="DATA" /> tasarruf edildi</translation>
 <translation id="213279576345780926"><ph name="TAB_TITLE" /> kapatıldı</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Kartı düzenle</translation>
 <translation id="2154710561487035718">URL'yi Kopyala</translation>
 <translation id="2156074688469523661">Kalan site sayısı (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Yeni Chrome'u neden kullanmadığınızı bizimle paylaşın</translation>
-<translation id="2185784955520093231">Yeni Chrome'u kullanıyorsunuz</translation>
 <translation id="219985413780390209">Kendinizi ve cihazınızı tehlikeli sitelerden koruyun</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, web uygulaması. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048"><ph name="USER_FULL_NAME" /> olarak devam edin</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome bu sayfayı göstermek için daha az veri kullanıyor</translation>
 <translation id="2888126860611144412">Chrome hakkında</translation>
 <translation id="2891154217021530873">Sayfa yüklemeyi durdur</translation>
-<translation id="2892933203342091350">Tüm makalelerde basitleştirilmiş görünümü etkinleştir</translation>
 <translation id="2900528713135656174">Etkinlik oluştur</translation>
 <translation id="2902702728133930130">Chrome başlatılırken beklenmeyen bir hata yüzünden başarısız oldu.</translation>
 <translation id="2903493209154104877">Adresler</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Üçüncü taraf web siteleri, çerez verilerini kaydedebilir ve okuyabilir.</translation>
 <translation id="3662546969139119822">Burada geçmiş yok</translation>
 <translation id="3672452749423051839">Gezinme hataları ile ilgili öneriler</translation>
-<translation id="3682249951633602029">Şifreleriniz, dışa aktarılan şifre dosyasını görebilen herkes tarafından görülebilir.</translation>
 <translation id="3712575778697986964">Veri Tasarrufu sıfırlansın mı?</translation>
 <translation id="3714981814255182093">Bulma Çubuğu'nu açar</translation>
 <translation id="3716182511346448902">Bu sayfa, bellekte çok fazla yer kapladığından Chrome tarafından duraklatıldı.</translation>
@@ -517,7 +509,7 @@
 <translation id="5665379678064389456"><ph name="APP_NAME" /> adlı uygulamada etkinlik oluştur</translation>
 <translation id="5668404140385795438">Web sitesinin yakınlaştırmayı önleme isteğini geçersiz kıl</translation>
 <translation id="5676636989614905379">Video <ph name="SCREEN_NAME" /> üzerinde oynatılamıyor.</translation>
-<translation id="5677928146339483299">Engellenenler</translation>
+<translation id="5677928146339483299">Engellendi</translation>
 <translation id="5684874026226664614">Hata! Bu sayfa çevrilemedi.</translation>
 <translation id="5689516760719285838">Konum</translation>
 <translation id="5719837394786370183">Gizli sekmelerde görüntülediğiniz sayfalar, gizli sekmelerinizin tamamını kapattıktan sonra tarayıcı geçmişinizde, çerez deponuzda veya arama geçmişinizde kalmaz. İndirdiğiniz dosyalar veya oluşturduğunuz yer işaretleri saklanır.
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105"><ph name="GBS" /> GB indirildi</translation>
 <translation id="654446541061731451">Işınlamak için bir sekme seçin</translation>
 <translation id="6545017243486555795">Tüm Verileri Temizle</translation>
-<translation id="6550675742724504774">Seçenekler</translation>
 <translation id="6556716549745717622">Site, araya giren reklamlar gösterme eğiliminde olduğunda engelle (önerilen)</translation>
 <translation id="6560414384669816528">Sogou ile arama</translation>
 <translation id="6566259936974865419">Chrome <ph name="GIGABYTES" /> GB tasarruf sağladı</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Şifrenizi kopyalamak için kilidi açın</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d açık sekme}other{%1$d açık sekme}}</translation>
 <translation id="6896758677409633944">Kopyala</translation>
-<translation id="6905163627763043954">Dene</translation>
 <translation id="6910211073230771657">Silindi</translation>
 <translation id="6945221475159498467">Seç</translation>
 <translation id="6959661084585705671">İkincil depolama alanı</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Öneriler alınamıyor</translation>
 <translation id="7562080006725997899">Göz atma verileri temizleniyor</translation>
 <translation id="756809126120519699">Chrome verileri temizlendi</translation>
-<translation id="7581273696622423628">Ankete katıl</translation>
 <translation id="7588950540487816470">Fiziksel Web</translation>
 <translation id="7589445247086920869">Geçerli arama motoru için engelleyin</translation>
 <translation id="7593557518625677601">Chrome Senkronizasyonu'nu başlatmak için Android ayarlarını açın ve Android sistem senkronizasyonunu yeniden etkinleştirin</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Senkronizasyon çalışmıyor</translation>
 <translation id="7612619742409846846">Google'da şu hesapla oturum açıldı:</translation>
 <translation id="7619072057915878432">Ağ sorunları nedeniyle <ph name="FILE_NAME" /> dosyası indirilemedi.</translation>
-<translation id="7620146066550602128"><ph name="BEGIN_LINK" />Daha kolay bir tarayıcı deneyimi<ph name="END_LINK" /> ister misiniz?</translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Yardım alın<ph name="END_LINK1" /> veya <ph name="BEGIN_LINK2" />yeniden tarayın<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Chrome'a Hoş Geldiniz</translation>
 <translation id="7638584964844754484">Yanlış parola</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Seçimi iptal et</translation>
 <translation id="784934925303690534">Zaman aralığı</translation>
 <translation id="7851858861565204677">Diğer cihazlar</translation>
-<translation id="785312750761189439">Popüler sitelere ve makalelere, indirmelere ve daha fazlasına kolayca erişmek için parmağınızı ekranın alt kısmından yukarıya hızlıca kaydırın veya genişlet düğmesine dokunun</translation>
 <translation id="7875915731392087153">E-posta oluşturun</translation>
 <translation id="7876243839304621966">Tümünü kaldır</translation>
 <translation id="7882131421121961860">Geçmiş bulunamadı</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
index 7bb021c..a04f863 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="uk">
 <translation id="1006017844123154345">Відкрити в режимі онлайн</translation>
-<translation id="1036348656032585052">Вимкнути</translation>
 <translation id="1036727731225946849">Додається <ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">З веб-сайтів</translation>
 <translation id="1049743911850919806">Анонімний перегляд</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Ніколи не перекладати цей сайт</translation>
 <translation id="1291207594882862231">Очистити історію, файли cookie, дані сайтів, кеш…</translation>
 <translation id="129553762522093515">Нещодавно закриті</translation>
-<translation id="1320663236730331991">Проведіть пальцем угору, щоб легко отримати доступ до популярних сайтів і статей, своїх завантажень тощо</translation>
 <translation id="1326317727527857210">Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис Chrome.</translation>
 <translation id="1332501820983677155">Комбінації клавіш для функцій Google Chrome</translation>
 <translation id="136248372334525878">Попередньо завантажує сторінки, щоб швидше завантажувати та переглядати їх у режимі офлайн</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016"><ph name="GIGABYTES" /> ГБ використовується іншими додатками</translation>
 <translation id="2079545284768500474">Відмінити</translation>
 <translation id="2082238445998314030">Результат <ph name="RESULT_NUMBER" /> з <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Представляємо новий Chrome</translation>
 <translation id="2086652334978798447">Щоб отримувати персоналізовані пропозиції від Google, увійдіть в обліковий запис Chrome.</translation>
 <translation id="2091887806945687916">Сигнал</translation>
 <translation id="209354263896846928">Перейдіть до адресного рядка внизу екрана</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Автоматичний вхід</translation>
 <translation id="2111511281910874386">Перейти на сторінку</translation>
 <translation id="2122601567107267586">Не вдалося відкрити додаток</translation>
-<translation id="2123074103454259350">Поки що ні</translation>
 <translation id="2126426811489709554">Технології Chrome</translation>
 <translation id="2131665479022868825">Заощаджено <ph name="DATA" /></translation>
 <translation id="213279576345780926">Вкладку "<ph name="TAB_TITLE" />" закрито</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Редагувати картку</translation>
 <translation id="2154710561487035718">Копіювати URL-адресу</translation>
 <translation id="2156074688469523661">Інші сайти (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Розкажіть, чому ви вимкнули новий Chrome</translation>
-<translation id="2185784955520093231">Ви користуєтеся новим Chrome</translation>
 <translation id="219985413780390209">Захистіть себе та свій пристрій від небезпечних сайтів</translation>
 <translation id="2206488550163399966">Веб-додаток <ph name="APP_NAME" />: <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Продовжити як <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome використовує менше даних, щоб показати цю сторінку</translation>
 <translation id="2888126860611144412">Про Chrome</translation>
 <translation id="2891154217021530873">Припинити завантаження сторінки</translation>
-<translation id="2892933203342091350">Увімкнути спрощений перегляд для всіх статей</translation>
 <translation id="2900528713135656174">Створити подію</translation>
 <translation id="2902702728133930130">Не вдалося запустити Chrome через неочікувану помилку.</translation>
 <translation id="2903493209154104877">Адреси</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Сторонні веб-сайти можуть зберігати та розпізнавати дані файлів cookie</translation>
 <translation id="3662546969139119822">Немає історії</translation>
 <translation id="3672452749423051839">Пропозиції у випадку помилок навігації</translation>
-<translation id="3682249951633602029">Ваші паролі бачитимуть усі, хто може переглядати експортований файл із паролями.</translation>
 <translation id="3712575778697986964">Скинути дані Заощадження трафіку?</translation>
 <translation id="3714981814255182093">Відкрити рядок пошуку</translation>
 <translation id="3716182511346448902">Ця сторінка займає велику кількість пам’яті, тому Chrome призупинив її роботу.</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Завантажено <ph name="GBS" /> ГБ</translation>
 <translation id="654446541061731451">Виберіть вкладку для передавання даних</translation>
 <translation id="6545017243486555795">Видалити всі дані</translation>
-<translation id="6550675742724504774">Параметри</translation>
 <translation id="6556716549745717622">Блокувати, якщо сайт часто показує нав’язливі оголошення (рекомендовано)</translation>
 <translation id="6560414384669816528">Шукати за допомогою Sogou</translation>
 <translation id="6566259936974865419">Chrome заощадив <ph name="GIGABYTES" /> ГБ</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Розблокуйте, щоб скопіювати пароль</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d відкрита вкладка}one{%1$d відкрита вкладка}few{%1$d відкриті вкладки}many{%1$d відкритих вкладок}other{%1$d відкритої вкладки}}</translation>
 <translation id="6896758677409633944">Копіювати</translation>
-<translation id="6905163627763043954">Спробувати</translation>
 <translation id="6910211073230771657">Видалено</translation>
 <translation id="6945221475159498467">Вибрати</translation>
 <translation id="6959661084585705671">Зовнішня пам’ять</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Не вдається отримати пропозиції</translation>
 <translation id="7562080006725997899">Очищення даних веб-перегляду</translation>
 <translation id="756809126120519699">Дані Chrome видалено</translation>
-<translation id="7581273696622423628">Відповісти на запитання</translation>
 <translation id="7588950540487816470">Інтернет навколо нас</translation>
 <translation id="7589445247086920869">Заблокувати для поточної пошукової системи</translation>
 <translation id="7593557518625677601">Щоб почати синхронізацію Chrome, відкрийте параметри Android і знову ввімкніть синхронізацію системи</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Синхронізація не працює</translation>
 <translation id="7612619742409846846">Ви ввійшли в обліковий запис Google як</translation>
 <translation id="7619072057915878432">Не вдалося завантажити файл <ph name="FILE_NAME" />. Помилка мережі.</translation>
-<translation id="7620146066550602128">Спробуйте <ph name="BEGIN_LINK" />простіший спосіб перегляду веб-сторінок<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Отримайте допомогу<ph name="END_LINK1" /> або <ph name="BEGIN_LINK2" />повторіть сканування<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Вітаємо у Chrome!</translation>
 <translation id="7638584964844754484">Неправильна парольна фраза</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Скасувати вибір</translation>
 <translation id="784934925303690534">Період часу</translation>
 <translation id="7851858861565204677">Інші пристрої</translation>
-<translation id="785312750761189439">Проведіть пальцем знизу вверх на екрані або торкніться кнопки "Розгорнути", щоб отримати доступ до популярних сайтів і статей, завантажень тощо</translation>
 <translation id="7875915731392087153">Створити електронну адресу</translation>
 <translation id="7876243839304621966">Видалити все</translation>
 <translation id="7882131421121961860">Історії не знайдено</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
index 544287e..3149729 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="vi">
 <translation id="1006017844123154345">Mở trực tuyến</translation>
-<translation id="1036348656032585052">Tắt</translation>
 <translation id="1036727731225946849">Đang thêm <ph name="WEBAPK_NAME" />...</translation>
 <translation id="1041308826830691739">Từ trang web</translation>
 <translation id="1049743911850919806">Ẩn danh</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">Không bao giờ dịch trang web này</translation>
 <translation id="1291207594882862231">Xóa lịch sử, cookie, dữ liệu trang web, bộ nhớ cache…</translation>
 <translation id="129553762522093515">Các tab đã đóng gần đây</translation>
-<translation id="1320663236730331991">Vuốt lên để dễ dàng truy cập vào các trang web và bài viết phổ biến, tài nguyên đã tải xuống, v.v</translation>
 <translation id="1326317727527857210">Để có các tab từ các thiết bị khác của bạn, hãy đăng nhập vào Chrome.</translation>
 <translation id="1332501820983677155">Phím tắt cho các tính năng của Google Chrome</translation>
 <translation id="136248372334525878">Tải trước trang để tải nhanh hơn và đọc ngoại tuyến</translation>
@@ -83,7 +81,7 @@
 <translation id="1660204651932907780">Cho phép các trang web phát âm thanh (được đề xuất)</translation>
 <translation id="1670399744444387456">Cơ bản</translation>
 <translation id="1671236975893690980">Đang chờ tải xuống...</translation>
-<translation id="1674523662097951983">“Dấu trang” đang chuyển đổi. Vào lần tiếp theo, hãy kéo thanh địa chỉ lên.</translation>
+<translation id="1674523662097951983">Vị trí “Dấu trang” sắp thay đổi. Lần sau, bạn chỉ cần kéo thanh địa chỉ lên để truy cập.</translation>
 <translation id="169033420419426091">Tải xuống <ph name="FILE_NAME" /> không thành công do thiếu thẻ SD.</translation>
 <translation id="1709438864123551175">Trình tiết kiệm dữ liệu</translation>
 <translation id="1718835860248848330">Giờ vừa qua</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">Các ứng dụng khác chiếm <ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474">Hoàn tác</translation>
 <translation id="2082238445998314030">Kết quả <ph name="RESULT_NUMBER" /> trong tổng số <ph name="TOTAL_RESULTS" /></translation>
-<translation id="2086116129690175316">Giới thiệu Chrome mới</translation>
 <translation id="2086652334978798447">Để nhận nội dung được cá nhân hóa do Google đề xuất, hãy đăng nhập vào Chrome.</translation>
 <translation id="2091887806945687916">Âm thanh</translation>
 <translation id="209354263896846928">Truy cập vào thanh địa chỉ ở cuối màn hình của bạn</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">Tự động đăng nhập</translation>
 <translation id="2111511281910874386">Chuyển đến trang</translation>
 <translation id="2122601567107267586">Không thể mở ứng dụng</translation>
-<translation id="2123074103454259350">Chưa được bật</translation>
 <translation id="2126426811489709554">Được hỗ trợ bởi Chrome</translation>
 <translation id="2131665479022868825">Đã lưu <ph name="DATA" /></translation>
 <translation id="213279576345780926">Đã đóng <ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">Chỉnh sửa thẻ</translation>
 <translation id="2154710561487035718">Sao chép URL</translation>
 <translation id="2156074688469523661">Số trang web còn lại (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">Hãy cho chúng tôi biết lý do bạn tắt Chrome mới</translation>
-<translation id="2185784955520093231">Bạn đang sử dụng Chrome mới</translation>
 <translation id="219985413780390209">Bảo vệ bạn và thiết bị của bạn khỏi các trang web nguy hiểm</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />, ứng dụng web. <ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">Tiếp tục bằng <ph name="USER_FULL_NAME" /></translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome đang sử dụng ít dữ liệu hơn để hiển thị cho bạn trang này</translation>
 <translation id="2888126860611144412">Giới thiệu Chrome</translation>
 <translation id="2891154217021530873">Ngừng tải trang</translation>
-<translation id="2892933203342091350">Bật chế độ xem đơn giản trên tất cả các bài viết</translation>
 <translation id="2900528713135656174">Tạo sự kiện</translation>
 <translation id="2902702728133930130">Chrome khởi động không thành công với lỗi không mong muốn.</translation>
 <translation id="2903493209154104877">Địa chỉ</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">Các trang web của bên thứ ba có thể lưu và đọc dữ liệu cookie</translation>
 <translation id="3662546969139119822">Không có lịch sử ở đây</translation>
 <translation id="3672452749423051839">Đề xuất cho lỗi điều hướng</translation>
-<translation id="3682249951633602029">Bất cứ ai có thể xem tệp mật khẩu đã xuất đều có thể biết mật khẩu của bạn.</translation>
 <translation id="3712575778697986964">Đặt lại Trình tiết kiệm dữ liệu?</translation>
 <translation id="3714981814255182093">Mở thanh Tìm kiếm</translation>
 <translation id="3716182511346448902">Chrome đã tạm dừng trang này vì trang dùng quá nhiều bộ nhớ.</translation>
@@ -555,7 +547,7 @@
 <translation id="5956665950594638604">Mở Trung tâm trợ giúp Chrome trong tab mới</translation>
 <translation id="5958275228015807058">Tìm tệp và trang của bạn trong Tài nguyên đã tải xuống</translation>
 <translation id="5962718611393537961">Nhấn để thu gọn</translation>
-<translation id="5974562976030145789">“Tài nguyên đã tải xuống” đang chuyển đổi. Vào lần tiếp theo, hãy kéo thanh địa chỉ lên.</translation>
+<translation id="5974562976030145789">Vị trí “Tài nguyên đã tải xuống” sắp thay đổi. Lần sau, bạn chỉ cần kéo thanh địa chỉ lên để truy cập.</translation>
 <translation id="6000066717592683814">Giữ Google làm công cụ tìm kiếm mặc định</translation>
 <translation id="6031101910111098835">Đã thu gọn - Nhấp để mở rộng</translation>
 <translation id="6039379616847168523">Chuyển sang tab tiếp theo</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">Đã tải xuống <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">Chọn một tab để chiếu</translation>
 <translation id="6545017243486555795">Xóa tất cả dữ liệu</translation>
-<translation id="6550675742724504774">Tùy chọn</translation>
 <translation id="6556716549745717622">Chặn nếu trang web thường hiển thị quảng cáo xâm nhập (được đề xuất)</translation>
 <translation id="6560414384669816528">Tìm kiếm với Sogou</translation>
 <translation id="6566259936974865419">Chrome đã tiết kiệm <ph name="GIGABYTES" /> GB cho bạn</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">Mở khóa để sao chép mật khẩu của bạn</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d tab đang mở}other{%1$d tab đang mở}}</translation>
 <translation id="6896758677409633944">Sao chép</translation>
-<translation id="6905163627763043954">Dùng thử</translation>
 <translation id="6910211073230771657">Đã xóa</translation>
 <translation id="6945221475159498467">Chọn</translation>
 <translation id="6959661084585705671">Bộ nhớ phụ</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">Không thể nhận đề xuất</translation>
 <translation id="7562080006725997899">Xóa dữ liệu duyệt web</translation>
 <translation id="756809126120519699">Đã xóa dữ liệu Chrome</translation>
-<translation id="7581273696622423628">Thực hiện khảo sát</translation>
 <translation id="7588950540487816470">Web trong cuộc sống</translation>
 <translation id="7589445247086920869">Chặn đối với công cụ tìm kiếm hiện tại</translation>
 <translation id="7593557518625677601">Mở c.đặt Android &amp; bật lại đ.bộ hóa hệ thống Android để b.đầu đồng bộ hóa Chrome</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">Đồng bộ hóa không hoạt động</translation>
 <translation id="7612619742409846846">Đã đăng nhập vào Google bằng</translation>
 <translation id="7619072057915878432">Tải xuống không thành công <ph name="FILE_NAME" /> do lỗi mạng.</translation>
-<translation id="7620146066550602128">Hãy thử một <ph name="BEGIN_LINK" />cách duyệt web dễ dàng hơn<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />Nhận trợ giúp<ph name="END_LINK1" /> hoặc <ph name="BEGIN_LINK2" />quét lại<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">Chào mừng bạn đến với Chrome</translation>
 <translation id="7638584964844754484">Cụm mật khẩu không chính xác</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">Hủy chọn</translation>
 <translation id="784934925303690534">Phạm vi thời gian</translation>
 <translation id="7851858861565204677">Thiết bị khác</translation>
-<translation id="785312750761189439">Vuốt lên từ cuối màn hình hoặc nhấn vào nút mở rộng để dễ dàng truy cập các trang web và bài viết phổ biến, tài nguyên đã tải xuống, v.v</translation>
 <translation id="7875915731392087153">Tạo email</translation>
 <translation id="7876243839304621966">Xóa tất cả</translation>
 <translation id="7882131421121961860">Không tìm thấy lịch sử nào</translation>
@@ -820,7 +807,7 @@
 <translation id="8487700953926739672">Khả dụng ngoại tuyến</translation>
 <translation id="8489271220582375723">Mở trang lịch sử</translation>
 <translation id="8493948351860045254">Giải phóng dung lượng</translation>
-<translation id="8494508527479967437">“Lịch sử” đang chuyển đổi. Vào lần tiếp theo, hãy kéo thanh địa chỉ lên.</translation>
+<translation id="8494508527479967437">Vị trí “Lịch sử” sắp thay đổi. Lần sau, bạn chỉ cần kéo thanh địa chỉ lên để truy cập.</translation>
 <translation id="8497726226069778601">Chưa có gì để xem ở đây...</translation>
 <translation id="8503813439785031346">Tên người dùng</translation>
 <translation id="8514477925623180633">Xuất mật khẩu đã lưu trữ với Chrome</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
index c084fc4..af24bd2 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-CN">
 <translation id="1006017844123154345">在线打开</translation>
-<translation id="1036348656032585052">关闭</translation>
 <translation id="1036727731225946849">正在添加<ph name="WEBAPK_NAME" />…</translation>
 <translation id="1041308826830691739">来自网站</translation>
 <translation id="1049743911850919806">隐身</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">一律不翻译此网站</translation>
 <translation id="1291207594882862231">清除历史记录、Cookie、网站数据、缓存内容…</translation>
 <translation id="129553762522093515">最近关闭的标签页</translation>
-<translation id="1320663236730331991">向上滑动即可轻松浏览热门网站和文章,查看各项下载内容等等</translation>
 <translation id="1326317727527857210">要在您的其他设备上访问您的标签页,请登录 Chrome。</translation>
 <translation id="1332501820983677155">Google Chrome 功能快捷键</translation>
 <translation id="136248372334525878">预加载网页,以便更快地加载并实现离线阅读</translation>
@@ -83,7 +81,7 @@
 <translation id="1660204651932907780">允许网站播放声音(推荐)</translation>
 <translation id="1670399744444387456">基本</translation>
 <translation id="1671236975893690980">正在等待下载…</translation>
-<translation id="1674523662097951983">正在移动“书签”文件夹。下次,您只需上拉地址栏即可查看书签。</translation>
+<translation id="1674523662097951983">“书签”的位置即将变更。下次只需上拉地址栏即可查看书签。</translation>
 <translation id="169033420419426091">未能成功下载 <ph name="FILE_NAME" />,因为找不到 SD 卡。</translation>
 <translation id="1709438864123551175">流量节省程序</translation>
 <translation id="1718835860248848330">过去一小时</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">其他应用已占用的空间:<ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474">撤消</translation>
 <translation id="2082238445998314030">第 <ph name="RESULT_NUMBER" /> 条结果,共 <ph name="TOTAL_RESULTS" /> 条</translation>
-<translation id="2086116129690175316">欢迎使用新版 Chrome</translation>
 <translation id="2086652334978798447">要获取 Google 推荐的个性化内容,请登录 Chrome。</translation>
 <translation id="2091887806945687916">声音</translation>
 <translation id="209354263896846928">前往屏幕底部的地址栏</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">自动登录</translation>
 <translation id="2111511281910874386">转至相关网页</translation>
 <translation id="2122601567107267586">无法打开此应用</translation>
-<translation id="2123074103454259350">目前还不可以</translation>
 <translation id="2126426811489709554">由 Chrome 提供支持</translation>
 <translation id="2131665479022868825">节省了 <ph name="DATA" /></translation>
 <translation id="213279576345780926">已关闭<ph name="TAB_TITLE" /></translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">修改支付卡</translation>
 <translation id="2154710561487035718">复制网址</translation>
 <translation id="2156074688469523661">其余的网站(<ph name="NUMBER_OF_SITES" /> 个)</translation>
-<translation id="2172731970979873816">请告诉我们您为何停用新版 Chrome</translation>
-<translation id="2185784955520093231">您目前使用的是新版 Chrome</translation>
 <translation id="219985413780390209">保护您和您的设备不受危险网站的侵害</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />,网络应用。<ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">以“<ph name="USER_FULL_NAME" />”的身份继续</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome 向您显示此网页时消耗的数据流量更少</translation>
 <translation id="2888126860611144412">关于 Chrome</translation>
 <translation id="2891154217021530873">停止加载网页</translation>
-<translation id="2892933203342091350">为所有文章启用简化版视图</translation>
 <translation id="2900528713135656174">创建活动</translation>
 <translation id="2902702728133930130">由于出现意外错误,Chrome 启动失败。</translation>
 <translation id="2903493209154104877">地址</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">第三方网站可以保存和读取 Cookie 数据</translation>
 <translation id="3662546969139119822">此处没有任何历史记录</translation>
 <translation id="3672452749423051839">导航错误建议</translation>
-<translation id="3682249951633602029">所有能查看这个被导出的密码文件的人员都能看到您的密码。</translation>
 <translation id="3712575778697986964">重置流量节省程序?</translation>
 <translation id="3714981814255182093">打开查找栏</translation>
 <translation id="3716182511346448902">此网页占用的内存过多,因此 Chrome 已将其暂停。</translation>
@@ -555,7 +547,7 @@
 <translation id="5956665950594638604">在新标签页中打开 Chrome 帮助中心</translation>
 <translation id="5958275228015807058">在“下载内容”中查找您的文件和网页</translation>
 <translation id="5962718611393537961">点按即可收起</translation>
-<translation id="5974562976030145789">正在移动“下载内容”文件夹。下次,您只需上拉地址栏即可查看下载内容。</translation>
+<translation id="5974562976030145789">“下载内容”的位置即将变更。下次只需上拉地址栏即可查看下载内容。</translation>
 <translation id="6000066717592683814">继续使用 Google</translation>
 <translation id="6031101910111098835">已收起 - 点击即可展开</translation>
 <translation id="6039379616847168523">跳转到下一个标签页</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">已下载 <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">选择要传输的标签页</translation>
 <translation id="6545017243486555795">清除所有数据</translation>
-<translation id="6550675742724504774">选项</translation>
 <translation id="6556716549745717622">如果网站常常会展示侵扰性广告,则予以阻止(推荐)</translation>
 <translation id="6560414384669816528">改用搜狗搜索</translation>
 <translation id="6566259936974865419">Chrome 已为您保存的数据量:<ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">需解锁才能复制您的密码</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d 个打开的标签页}other{%1$d 个打开的标签页}}</translation>
 <translation id="6896758677409633944">复制</translation>
-<translation id="6905163627763043954">试用一下</translation>
 <translation id="6910211073230771657">已删除</translation>
 <translation id="6945221475159498467">选择</translation>
 <translation id="6959661084585705671">辅助存储空间</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">无法获取建议</translation>
 <translation id="7562080006725997899">正在清除浏览数据</translation>
 <translation id="756809126120519699">已清除 Chrome 数据</translation>
-<translation id="7581273696622423628">参与调查</translation>
 <translation id="7588950540487816470">实物网</translation>
 <translation id="7589445247086920869">不适用于当前的搜索引擎</translation>
 <translation id="7593557518625677601">打开 Android 设置,重新启用 Android 系统同步功能以开始 Chrome 同步</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">同步功能无法正常运行</translation>
 <translation id="7612619742409846846">已使用以下帐号登录 Google:</translation>
 <translation id="7619072057915878432">未能成功下载 <ph name="FILE_NAME" />,因为出现了网络故障。</translation>
-<translation id="7620146066550602128">体验<ph name="BEGIN_LINK" />更轻松的浏览方式<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />获取帮助<ph name="END_LINK1" />或<ph name="BEGIN_LINK2" />重新扫描<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">欢迎使用 Chrome</translation>
 <translation id="7638584964844754484">密码不正确</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">取消选择</translation>
 <translation id="784934925303690534">时间范围</translation>
 <translation id="7851858861565204677">来自其他设备的同步</translation>
-<translation id="785312750761189439">从屏幕底部向上滑动手指或点按“展开”按钮,即可轻松浏览热门网站和文章,查看各项下载内容等等</translation>
 <translation id="7875915731392087153">创建电子邮件</translation>
 <translation id="7876243839304621966">全部删除</translation>
 <translation id="7882131421121961860">未找到任何记录</translation>
@@ -820,7 +807,7 @@
 <translation id="8487700953926739672">可离线使用</translation>
 <translation id="8489271220582375723">打开历史记录页</translation>
 <translation id="8493948351860045254">释放空间</translation>
-<translation id="8494508527479967437">正在移动“历史记录”文件夹。下次,您只需上拉地址栏即可查看历史记录。</translation>
+<translation id="8494508527479967437">“历史记录”的位置即将变更。下次只需上拉地址栏即可查看历史记录。</translation>
 <translation id="8497726226069778601">目前还未列出任何网页…</translation>
 <translation id="8503813439785031346">用户名</translation>
 <translation id="8514477925623180633">导出存储在 Chrome 中的密码</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
index b7ddd52..cb7cc56780 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -2,7 +2,6 @@
 <!DOCTYPE translationbundle>
 <translationbundle lang="zh-TW">
 <translation id="1006017844123154345">在網路上開啟</translation>
-<translation id="1036348656032585052">關閉</translation>
 <translation id="1036727731225946849">正在新增「<ph name="WEBAPK_NAME" />」...</translation>
 <translation id="1041308826830691739">來自網站</translation>
 <translation id="1049743911850919806">無痕模式</translation>
@@ -37,7 +36,6 @@
 <translation id="1285320974508926690">一律不翻譯此網站</translation>
 <translation id="1291207594882862231">清除歷史紀錄、Cookie、網站資料、快取…</translation>
 <translation id="129553762522093515">最近關閉的分頁</translation>
-<translation id="1320663236730331991">向上滑動即可輕鬆瀏覽熱門網站和文章、下載項目等內容</translation>
 <translation id="1326317727527857210">如要存取您在其他裝置上開啟的分頁,請登入 Chrome。</translation>
 <translation id="1332501820983677155">Google Chrome 功能快速鍵</translation>
 <translation id="136248372334525878">預先載入網頁,以加快載入速度,並提供離線瀏覽功能</translation>
@@ -123,7 +121,6 @@
 <translation id="2045104531052923016">其他應用程式佔 <ph name="GIGABYTES" /> GB</translation>
 <translation id="2079545284768500474">復原</translation>
 <translation id="2082238445998314030">第 <ph name="RESULT_NUMBER" /> 個結果,共 <ph name="TOTAL_RESULTS" /> 個</translation>
-<translation id="2086116129690175316">新版 Chrome 隆重登場</translation>
 <translation id="2086652334978798447">如要取得個人化的 Google 推薦內容,請登入 Chrome。</translation>
 <translation id="2091887806945687916">音訊</translation>
 <translation id="209354263896846928">在畫面底部存取網址列</translation>
@@ -131,7 +128,6 @@
 <translation id="2100273922101894616">自動登入</translation>
 <translation id="2111511281910874386">前往指定頁面</translation>
 <translation id="2122601567107267586">無法開啟應用程式</translation>
-<translation id="2123074103454259350">暫時不要</translation>
 <translation id="2126426811489709554">技術提供:Chrome</translation>
 <translation id="2131665479022868825">已節省 <ph name="DATA" /></translation>
 <translation id="213279576345780926">已關閉的「<ph name="TAB_TITLE" />」</translation>
@@ -141,8 +137,6 @@
 <translation id="2154484045852737596">編輯卡片資訊</translation>
 <translation id="2154710561487035718">複製網址</translation>
 <translation id="2156074688469523661">其餘網站 (<ph name="NUMBER_OF_SITES" />)</translation>
-<translation id="2172731970979873816">請告訴我們您為何不想使用新版 Chrome</translation>
-<translation id="2185784955520093231">你目前使用的是新版 Chrome</translation>
 <translation id="219985413780390209">保護您和您的裝置不受危險網站攻擊</translation>
 <translation id="2206488550163399966"><ph name="APP_NAME" />,網路應用程式。<ph name="APP_URL" /></translation>
 <translation id="2227444325776770048">以<ph name="USER_FULL_NAME" />的身分繼續使用</translation>
@@ -206,7 +200,6 @@
 <translation id="2876764156902388290">Chrome 正以較少的數據用量顯示這個網頁</translation>
 <translation id="2888126860611144412">關於 Chrome</translation>
 <translation id="2891154217021530873">停止載入網頁</translation>
-<translation id="2892933203342091350">為所有文章啟用「簡易檢視」模式</translation>
 <translation id="2900528713135656174">建立活動</translation>
 <translation id="2902702728133930130">發生未預期的錯誤,Chrome 啟動失敗。</translation>
 <translation id="2903493209154104877">地址</translation>
@@ -294,7 +287,6 @@
 <translation id="3661699943263275414">第三方網站可以儲存及讀取 Cookie 資料</translation>
 <translation id="3662546969139119822">這裡沒有任何紀錄</translation>
 <translation id="3672452749423051839">瀏覽錯誤建議</translation>
-<translation id="3682249951633602029">凡是可查看匯出的密碼檔案者都看得到你的密碼。</translation>
 <translation id="3712575778697986964">確定要重設 Data Saver 嗎?</translation>
 <translation id="3714981814255182093">開啟搜尋列</translation>
 <translation id="3716182511346448902">這個網頁使用了過多記憶體,因此遭到 Chrome 暫停。</translation>
@@ -618,7 +610,6 @@
 <translation id="6538442820324228105">已下載 <ph name="GBS" /> GB</translation>
 <translation id="654446541061731451">選取要傳輸的分頁</translation>
 <translation id="6545017243486555795">清除所有資料</translation>
-<translation id="6550675742724504774">選項</translation>
 <translation id="6556716549745717622">針對經常顯示侵入式廣告的網站封鎖廣告 (建議)</translation>
 <translation id="6560414384669816528">使用 Sogou 搜尋</translation>
 <translation id="6566259936974865419">Chrome 為你節省了 <ph name="GIGABYTES" /> GB</translation>
@@ -662,7 +653,6 @@
 <translation id="6891726759199484455">解鎖即可複製你的密碼</translation>
 <translation id="6891858906296486776">{OPEN_TABS,plural, =1{%1$d 個開啟的分頁}other{%1$d 個開啟的分頁}}</translation>
 <translation id="6896758677409633944">複製</translation>
-<translation id="6905163627763043954">試用</translation>
 <translation id="6910211073230771657">已刪除</translation>
 <translation id="6945221475159498467">選取</translation>
 <translation id="6959661084585705671">次要儲存空間</translation>
@@ -727,7 +717,6 @@
 <translation id="7542481630195938534">無法取得建議</translation>
 <translation id="7562080006725997899">正在清除瀏覽資料</translation>
 <translation id="756809126120519699">已清除 Chrome 資料</translation>
-<translation id="7581273696622423628">填寫問卷</translation>
 <translation id="7588950540487816470">實體化網路</translation>
 <translation id="7589445247086920869">對目前的搜尋引擎封鎖</translation>
 <translation id="7593557518625677601">如要啟動 Chrome 同步功能,請開啟 Android 設定並重新啟用 Android 系統同步處理設定</translation>
@@ -736,7 +725,6 @@
 <translation id="7605594153474022051">同步處理功能無法正常運作</translation>
 <translation id="7612619742409846846">已使用下列帳戶登入 Google:</translation>
 <translation id="7619072057915878432">無法連上網路,因此無法下載 <ph name="FILE_NAME" />。</translation>
-<translation id="7620146066550602128">體驗<ph name="BEGIN_LINK" />更輕鬆的瀏覽方式<ph name="END_LINK" /></translation>
 <translation id="7624880197989616768"><ph name="BEGIN_LINK1" />查看說明<ph name="END_LINK1" />或<ph name="BEGIN_LINK2" />重新掃描<ph name="END_LINK2" /></translation>
 <translation id="7626032353295482388">歡迎使用 Chrome</translation>
 <translation id="7638584964844754484">通關密語不正確</translation>
@@ -761,7 +749,6 @@
 <translation id="7846076177841592234">全部取消選取</translation>
 <translation id="784934925303690534">時間範圍</translation>
 <translation id="7851858861565204677">其他裝置</translation>
-<translation id="785312750761189439">從畫面底部向上滑動或輕觸展開按鈕,即可輕鬆瀏覽熱門網站和文章,並查看各項下載內容等等</translation>
 <translation id="7875915731392087153">建立電子郵件</translation>
 <translation id="7876243839304621966">全部移除</translation>
 <translation id="7882131421121961860">找不到瀏覽紀錄</translation>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
index 447b586..3db4227 100644
--- a/chrome/android/java_sources.gni
+++ b/chrome/android/java_sources.gni
@@ -346,6 +346,8 @@
   "java/src/org/chromium/chrome/browser/download/DownloadForegroundServiceObservers.java",
   "java/src/org/chromium/chrome/browser/download/DownloadInfo.java",
   "java/src/org/chromium/chrome/browser/download/DownloadItem.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadLocationDialog.java",
+  "java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java",
   "java/src/org/chromium/chrome/browser/download/DownloadManagerDelegate.java",
   "java/src/org/chromium/chrome/browser/download/DownloadManagerService.java",
   "java/src/org/chromium/chrome/browser/download/DownloadNotificationFactory.java",
@@ -1006,6 +1008,7 @@
   "java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java",
   "java/src/org/chromium/chrome/browser/preferences/website/CameraInfo.java",
   "java/src/org/chromium/chrome/browser/preferences/website/ClearWebsiteStorage.java",
+  "java/src/org/chromium/chrome/browser/preferences/website/ClipboardInfo.java",
   "java/src/org/chromium/chrome/browser/preferences/website/ContentSetting.java",
   "java/src/org/chromium/chrome/browser/preferences/website/ContentSettingException.java",
   "java/src/org/chromium/chrome/browser/preferences/website/ContentSettingsResources.java",
@@ -1271,6 +1274,7 @@
   "java/src/org/chromium/chrome/browser/vr_shell/OnExitVrRequestListener.java",
   "java/src/org/chromium/chrome/browser/vr_shell/VrFirstRunActivity.java",
   "java/src/org/chromium/chrome/browser/vr_shell/VrShell.java",
+  "java/src/org/chromium/chrome/browser/vr_shell/VrViewContainer.java",
   "java/src/org/chromium/chrome/browser/webapps/ActivityAssigner.java",
   "java/src/org/chromium/chrome/browser/webapps/AddToHomescreenDialog.java",
   "java/src/org/chromium/chrome/browser/webapps/AddToHomescreenManager.java",
@@ -1341,7 +1345,6 @@
   "java/src/org/chromium/chrome/browser/widget/FadingEdgeScrollView.java",
   "java/src/org/chromium/chrome/browser/widget/FadingShadow.java",
   "java/src/org/chromium/chrome/browser/widget/FadingShadowView.java",
-  "java/src/org/chromium/chrome/browser/widget/FloatLabelLayout.java",
   "java/src/org/chromium/chrome/browser/widget/FullscreenControlContainer.java",
   "java/src/org/chromium/chrome/browser/widget/ImageViewTinter.java",
   "java/src/org/chromium/chrome/browser/widget/ListMenuButton.java",
@@ -1391,10 +1394,6 @@
   "java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetPaddingUtils.java",
   "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeIphBubbleController.java",
   "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeIphMenuHeader.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoDialog.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoMenuHeader.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomePromoIllustration.java",
-  "java/src/org/chromium/chrome/browser/widget/bottomsheet/ChromeHomeSnackbarController.java",
   "java/src/org/chromium/chrome/browser/widget/bottomsheet/EmptyBottomSheetObserver.java",
   "java/src/org/chromium/chrome/browser/widget/bottomsheet/PlaceholderSheetContent.java",
   "java/src/org/chromium/chrome/browser/widget/displaystyle/MarginResizer.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/ChromeHomeAppMenuTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/ChromeHomeAppMenuTest.java
index 6b2e0d7..5be8f0a3 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/ChromeHomeAppMenuTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/appmenu/ChromeHomeAppMenuTest.java
@@ -35,9 +35,6 @@
 import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet;
 import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomeIphMenuHeader;
 import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomeIphMenuHeader.ChromeHomeIphMenuHeaderTestObserver;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoDialog;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoDialog.ChromeHomePromoDialogTestObserver;
-import org.chromium.chrome.browser.widget.bottomsheet.ChromeHomePromoMenuHeader;
 import org.chromium.chrome.test.BottomSheetTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.ChromeTabUtils;
@@ -234,44 +231,6 @@
 
     @Test
     @SmallTest
-    @CommandLineFlags.Add({"enable-features=" + ChromeFeatureList.CHROME_HOME_PROMO})
-    public void testPromoAppMenuHeader() throws InterruptedException, TimeoutException {
-        // Create a callback to be notified when the dialog is shown.
-        final CallbackHelper dialogShownCallback = new CallbackHelper();
-        ThreadUtils.runOnUiThreadBlocking(() -> {
-            ChromeHomePromoDialog.setObserverForTests(new ChromeHomePromoDialogTestObserver() {
-                @Override
-                public void onDialogShown(ChromeHomePromoDialog shownDialog) {
-                    dialogShownCallback.notifyCalled();
-                }
-            });
-        });
-
-        // Load a test page and show the app menu. The header is only shown on the page menu.
-        loadTestPage();
-        showAppMenuAndAssertMenuShown();
-
-        // Check for the existence of a header.
-        ListView listView = mAppMenuHandler.getAppMenu().getListView();
-        Assert.assertEquals("There should be one header.", 1, listView.getHeaderViewsCount());
-
-        // Click the header.
-        ChromeHomePromoMenuHeader promoHeader = (ChromeHomePromoMenuHeader) listView.findViewById(
-                R.id.chrome_home_promo_menu_header);
-        ThreadUtils.runOnUiThreadBlocking(() -> { promoHeader.performClick(); });
-
-        // Wait for the dialog to show and the app menu to hide.
-        dialogShownCallback.waitForCallback(0);
-        assertFalse("Menu should be hidden.", mAppMenuHandler.isAppMenuShowing());
-
-        // Reset state.
-        ThreadUtils.runOnUiThreadBlocking(
-                () -> { ChromeHomePromoDialog.setObserverForTests(null); });
-    }
-
-    @Test
-    @SmallTest
-    @CommandLineFlags.Add({"disable-features=" + ChromeFeatureList.CHROME_HOME_PROMO})
     public void testIphAppMenuHeader_Click() throws InterruptedException, TimeoutException {
         TestTracker tracker = new TestTracker(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE);
         TrackerFactory.setTrackerForTests(tracker);
@@ -333,7 +292,6 @@
 
     @Test
     @SmallTest
-    @CommandLineFlags.Add({"disable-features=" + ChromeFeatureList.CHROME_HOME_PROMO})
     public void testIphAppMenuHeader_Dismiss() throws InterruptedException, TimeoutException {
         TestTracker tracker = new TestTracker(FeatureConstants.CHROME_HOME_MENU_HEADER_FEATURE);
         TrackerFactory.setTrackerForTests(tracker);
@@ -391,9 +349,8 @@
 
     @Test
     @SmallTest
-    @CommandLineFlags.Add({
-        "disable-features=IPH_ChromeHomeMenuHeader," + ChromeFeatureList.CHROME_HOME_PROMO,
-        "enable-features=" + ChromeFeatureList.DATA_REDUCTION_MAIN_MENU})
+    @CommandLineFlags.Add({"disable-features=IPH_ChromeHomeMenuHeader",
+            "enable-features=" + ChromeFeatureList.DATA_REDUCTION_MAIN_MENU})
     public void testDataSaverAppMenuHeader() {
         showAppMenuAndAssertMenuShown();
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java
index f3dbf6c..bd7946c 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/DownloadForegroundServiceManagerTest.java
@@ -212,6 +212,8 @@
                 mContext, DownloadStatus.PAUSE, FAKE_DOWNLOAD_1, mNotification);
         assertFalse(mDownloadServiceManager.mIsServiceBound);
 
+        // In the case that the phone is pre-Lollipop, make sure the paused notification gets killed
+        // so that it will no longer be an "on-going" notification.
         assertEquals(mDownloadServiceManager.isPreLollipop(),
                 mDownloadServiceManager.mIsNotificationKilled);
         assertTrue(mDownloadServiceManager.mIsNotificationDetached);
@@ -238,7 +240,10 @@
                 mContext, DownloadStatus.COMPLETE, FAKE_DOWNLOAD_2, mNotification);
         assertFalse(mDownloadServiceManager.mIsServiceBound);
         assertTrue(mDownloadServiceManager.mIsNotificationKilled);
-        assertTrue(mDownloadServiceManager.mIsNotificationDetached);
+        // In the case that the phone is pre-Marshmallow, make sure the notification no longer needs
+        // to be detached, rather, is just killed.
+        assertEquals(!mDownloadServiceManager.isPreMarshmallow(),
+                mDownloadServiceManager.mIsNotificationDetached);
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogManagerTest.java
index 27a9b4e1..3546abd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogManagerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/modaldialog/ModalDialogManagerTest.java
@@ -17,6 +17,7 @@
 import static org.hamcrest.Matchers.allOf;
 import static org.hamcrest.Matchers.not;
 
+import android.support.test.InstrumentationRegistry;
 import android.support.test.espresso.Espresso;
 import android.support.test.filters.SmallTest;
 import android.view.View;
@@ -37,6 +38,7 @@
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
+import org.chromium.chrome.test.util.ChromeTabUtils;
 import org.chromium.ui.test.util.UiRestriction;
 
 /**
@@ -48,7 +50,7 @@
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
 
-    private static final int MAX_DIALOGS = 3;
+    private static final int MAX_DIALOGS = 4;
     private ChromeTabbedActivity mActivity;
     private ModalDialogManager mManager;
     private ModalDialogView[] mModalDialogViews;
@@ -255,7 +257,7 @@
     @Test
     @SmallTest
     @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
-    public void testDismiss_ToggleOverview() throws Exception {
+    public void testSuspend_ToggleOverview() throws Exception {
         // Initially there are no dialogs in the pending list. Browser controls are not restricted.
         checkPendingSize(0);
         checkBrowserControls(false);
@@ -271,14 +273,184 @@
         checkBrowserControls(true);
         checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
 
-        // Dialogs should all be dismissed on entering tab switcher.
+        //  Tab modal dialogs should be suspended on entering tab switcher.
         onView(withId(R.id.tab_switcher_button)).perform(click());
-        checkPendingSize(0);
+        checkPendingSize(2);
         onView(withId(R.id.tab_modal_dialog_container))
                 .check(matches(allOf(
                         not(hasDescendant(withText("0"))), not(hasDescendant(withText("1"))))));
         checkBrowserControls(false);
         checkCurrentPresenter(null);
+
+        // Exit overview mode. The first dialog should be showing again.
+        onView(withId(R.id.tab_switcher_button)).perform(click());
+        checkPendingSize(1);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(
+                        allOf(hasDescendant(withText("0")), not(hasDescendant(withText("1"))))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+
+        // Dismiss the first dialog. The second dialog should be shown.
+        onView(withText(R.string.ok)).perform(click());
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(
+                        allOf(not(hasDescendant(withText("0"))), hasDescendant(withText("1")))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+    }
+
+    @Test
+    @SmallTest
+    @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
+    public void testSuspend_ShowNext() throws Exception {
+        // Initially there are no dialogs in the pending list. Browser controls are not restricted.
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Add a tab modal and an app modal dialogs available for showing.
+        showDialog(0, ModalDialogManager.TAB_MODAL);
+        showDialog(1, ModalDialogManager.APP_MODAL);
+        checkPendingSize(1);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("0"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+
+        // Tab modal dialogs should be suspended on entering tab switcher. App modal dialog should
+        // be showing.
+        onView(withId(R.id.tab_switcher_button)).perform(click());
+        checkPendingSize(1);
+        onView(withId(R.id.tab_modal_dialog_container)).check(doesNotExist());
+        onView(withText("1")).check(matches(isDisplayed()));
+        checkCurrentPresenter(ModalDialogManager.APP_MODAL);
+
+        // Close the app modal dialog and exit overview mode. The first dialog should be showing
+        // again.
+        onView(withText(R.string.ok)).perform(click());
+        checkPendingSize(1);
+        onView(withId(R.id.tab_switcher_button)).perform(click());
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("0"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+    }
+
+    @Test
+    @SmallTest
+    @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
+    public void testSuspend_LastTabClosed() throws Exception {
+        // Make sure there is only one opened tab.
+        while (mActivity.getCurrentTabModel().getCount() > 1) {
+            ChromeTabUtils.closeCurrentTab(InstrumentationRegistry.getInstrumentation(), mActivity);
+        }
+
+        // Initially there are no dialogs in the pending list. Browser controls are not restricted.
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Add a tab modal and an app modal dialogs available for showing.
+        showDialog(0, ModalDialogManager.TAB_MODAL);
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("0"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+
+        // Tab modal dialogs should be suspended on entering tab switcher.
+        onView(withId(R.id.tab_switcher_button)).perform(click());
+        checkPendingSize(1);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Close the only tab in the tab switcher.
+        ChromeTabUtils.closeCurrentTab(InstrumentationRegistry.getInstrumentation(), mActivity);
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+    }
+
+    @Test
+    @SmallTest
+    @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
+    public void testSuspend_TabClosed() throws Exception {
+        mActivityTestRule.loadUrlInNewTab("about:blank");
+
+        // Initially there are no dialogs in the pending list. Browser controls are not restricted.
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Add a tab modal and an app modal dialogs available for showing.
+        showDialog(0, ModalDialogManager.TAB_MODAL);
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("0"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+
+        // Tab modal dialogs should be suspended on entering tab switcher.
+        onView(withId(R.id.tab_switcher_button)).perform(click());
+        checkPendingSize(1);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Close current tab in the tab switcher.
+        ChromeTabUtils.closeCurrentTab(InstrumentationRegistry.getInstrumentation(), mActivity);
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Show a new tab modal dialog, and it should be suspended in tab switcher.
+        showDialog(1, ModalDialogManager.TAB_MODAL);
+        checkPendingSize(1);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Show an app modal dialog. The app modal dialog should be shown.
+        showDialog(2, ModalDialogManager.APP_MODAL);
+        checkPendingSize(1);
+        onView(withText("2")).check(matches(isDisplayed()));
+        checkCurrentPresenter(ModalDialogManager.APP_MODAL);
+    }
+
+    @Test
+    @SmallTest
+    public void testDismiss_SwitchTab() throws Exception {
+        // Open a new tab and make sure that the current tab is at index 0.
+        mActivityTestRule.loadUrlInNewTab("about:blank");
+        ChromeTabUtils.switchTabInCurrentTabModel(mActivity, 0);
+
+        // Initially there are no dialogs in the pending list. Browser controls are not restricted.
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Add a tab modal and an app modal dialogs available for showing.
+        showDialog(0, ModalDialogManager.TAB_MODAL);
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("0"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
+
+        // Dialog should be dismissed after switching to a different tab.
+        ChromeTabUtils.switchTabInCurrentTabModel(mActivity, 1);
+        checkPendingSize(0);
+        checkBrowserControls(false);
+        checkCurrentPresenter(null);
+
+        // Open a tab modal dialog in the current tab. The dialog should be shown.
+        showDialog(1, ModalDialogManager.TAB_MODAL);
+        checkPendingSize(0);
+        onView(withId(R.id.tab_modal_dialog_container))
+                .check(matches(hasDescendant(withText("1"))));
+        checkBrowserControls(true);
+        checkCurrentPresenter(ModalDialogManager.TAB_MODAL);
     }
 
     @Test
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java
index 2969030..9014d77 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/NewTabPageUiCaptureTest.java
@@ -35,8 +35,6 @@
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
 import org.chromium.chrome.test.util.NewTabPageTestUtils;
 import org.chromium.chrome.test.util.browser.Features;
-import org.chromium.chrome.test.util.browser.Features.DisableFeatures;
-import org.chromium.chrome.test.util.browser.Features.EnableFeatures;
 import org.chromium.chrome.test.util.browser.RecyclerViewTestUtils;
 import org.chromium.chrome.test.util.browser.compositor.layouts.DisableChromeAnimations;
 import org.chromium.chrome.test.util.browser.suggestions.SuggestionsDependenciesRule;
@@ -96,7 +94,6 @@
     @Test
     @MediumTest
     @Feature({"NewTabPage", "UiCatalogue"})
-    @DisableFeatures({ChromeFeatureList.CHROME_HOME_PROMO})
     @ScreenShooter.Directory("New Tab Page")
     public void testCaptureNewTabPage() {
         assertThat(ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_MODERN_LAYOUT),
@@ -129,18 +126,6 @@
         shoot("New Tab Page scrolled thrice");
     }
 
-    @Test
-    @MediumTest
-    @Feature({"NewTabPage", "UiCatalogue"})
-    @EnableFeatures({ChromeFeatureList.CHROME_HOME_PROMO})
-    @ScreenShooter.Directory("New Tab Page")
-    public void testCaptureNewTabPageWithChromeHomePromo() {
-        assertThat(ChromeFeatureList.isEnabled(ChromeFeatureList.NTP_MODERN_LAYOUT),
-                is(mEnableNTPModernLayout));
-        Assert.assertTrue(ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_PROMO));
-        shoot("New Tab Page with Chrome Home Promo");
-    }
-
     /**
      * Takes a screenshot with the given name. Applies a suffix to the name to differentiate
      * parameterized features.
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
index 01e63a6..6af2e6d 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/searchwidget/SearchActivityTest.java
@@ -272,7 +272,7 @@
                 mTestDelegate.showSearchEngineDialogIfNeededCallback.waitForCallback(0);
                 mTestDelegate.onFinishDeferredInitializationCallback.waitForCallback(0);
             } catch (InterruptedException | TimeoutException e) {
-                Assert.fail("Unexpected exception");
+                throw new AssertionError("Unexpected exception", e);
             }
         }, ContentUrlConstants.ABOUT_BLANK_DISPLAY_URL);
     }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java
index 5cd71df..a2ac40f 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/share/ShareMenuActionHandlerTest.java
@@ -388,6 +388,16 @@
 
         @Override
         public void setSize(int width, int height) {}
+
+        @Override
+        public int getWidth() {
+            return 0;
+        }
+
+        @Override
+        public int getHeight() {
+            return 0;
+        }
     }
 
     private static class MockRenderFrameHost implements RenderFrameHost {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/TestFramework.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/TestFramework.java
new file mode 100644
index 0000000..8ea8c073
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/TestFramework.java
@@ -0,0 +1,270 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.vr_shell;
+
+import android.support.annotation.IntDef;
+
+import org.junit.Assert;
+
+import org.chromium.base.Log;
+import org.chromium.base.test.util.UrlUtils;
+import org.chromium.chrome.browser.UrlConstants;
+import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.content.browser.ContentViewCore;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
+import org.chromium.content.browser.test.util.JavaScriptUtils;
+import org.chromium.content_public.browser.WebContents;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Class containing most of the test framework for WebVR and WebXR testing, which requires
+ * back-and-forth communication with JavaScript running in the browser. WebVR and WebXR-specific
+ * functionality can be found in the VrTestFramework and XrTestFramework subclasses.
+ *
+ * The general test flow is:
+ * - Load the HTML file containing the test, which:
+ *   - Loads the WebVR boilerplate code and some test functions
+ *   - Sets up common elements like the canvas and synchronization variable
+ *   - Sets up any steps that need to be triggered by the Java code
+ * - Check if any VRDisplay objects were found and fail the test if it doesn't
+ *       match what we expect for that test
+ * - Repeat:
+ *   - Run any necessary Java-side code, e.g. trigger a user action
+ *   - Trigger the next JavaScript test step and wait for it to finish
+ *
+ * The JavaScript code will automatically process test results once all
+ * testharness.js tests are done, just like in layout tests. Once the results
+ * are processed, the JavaScript code will automatically signal the Java code,
+ * which can then grab the results and pass/fail the instrumentation test.
+ */
+public class TestFramework {
+    public static final int PAGE_LOAD_TIMEOUT_S = 10;
+    public static final int POLL_CHECK_INTERVAL_SHORT_MS = 50;
+    public static final int POLL_CHECK_INTERVAL_LONG_MS = 100;
+    public static final int POLL_TIMEOUT_SHORT_MS = 1000;
+    public static final int POLL_TIMEOUT_LONG_MS = 10000;
+
+    public static final String[] NATIVE_URLS_OF_INTEREST = {UrlConstants.BOOKMARKS_FOLDER_URL,
+            UrlConstants.BOOKMARKS_UNCATEGORIZED_URL, UrlConstants.BOOKMARKS_URL,
+            UrlConstants.DOWNLOADS_URL, UrlConstants.NATIVE_HISTORY_URL, UrlConstants.NTP_URL,
+            UrlConstants.RECENT_TABS_URL};
+
+    private static final String TAG = "TestFramework";
+    static final String TEST_DIR = "chrome/test/data/vr/e2e_test_files";
+
+    // Test status enum
+    private static final int STATUS_RUNNING = 0;
+    private static final int STATUS_PASSED = 1;
+    private static final int STATUS_FAILED = 2;
+    @Retention(RetentionPolicy.SOURCE)
+    @IntDef({STATUS_RUNNING, STATUS_PASSED, STATUS_FAILED})
+    private @interface TestStatus {}
+
+    private ChromeActivityTestRule mRule;
+    private WebContents mFirstTabWebContents;
+    private ContentViewCore mFirstTabCvc;
+
+    /**
+     * Must be constructed after the rule has been applied (e.g. in whatever method is
+     * tagged with @Before)
+     */
+    public TestFramework(ChromeActivityTestRule rule) {
+        mRule = rule;
+        mFirstTabWebContents = mRule.getActivity().getActivityTab().getWebContents();
+        mFirstTabCvc = mRule.getActivity().getActivityTab().getContentViewCore();
+        Assert.assertFalse("Test did not start in VR", VrShellDelegate.isInVr());
+    }
+
+    public WebContents getFirstTabWebContents() {
+        return mFirstTabWebContents;
+    }
+
+    public ContentViewCore getFirstTabCvc() {
+        return mFirstTabCvc;
+    }
+
+    public ChromeActivityTestRule getRule() {
+        return mRule;
+    }
+
+    /**
+     * Gets the file:// URL to the test file
+     * @param testName The name of the test whose file will be retrieved.
+     * @return The file:// URL to the specified test file.
+     */
+    public static String getHtmlTestFile(String testName) {
+        return "file://" + UrlUtils.getIsolatedTestFilePath(TEST_DIR) + "/html/" + testName
+                + ".html";
+    }
+
+    /**
+     * Loads the given URL with the given timeout then waits for JavaScript to
+     * signal that it's ready for testing.
+     * @param url The URL of the page to load.
+     * @param timeoutSec The timeout of the page load in seconds.
+     * @return The return value of ChromeActivityTestRule.loadUrl()
+     */
+    public int loadUrlAndAwaitInitialization(String url, int timeoutSec)
+            throws InterruptedException {
+        int result = mRule.loadUrl(url, timeoutSec);
+        Assert.assertTrue("JavaScript initialization successful",
+                pollJavaScriptBoolean("isInitializationComplete()", POLL_TIMEOUT_LONG_MS,
+                        mRule.getActivity().getActivityTab().getWebContents()));
+        return result;
+    }
+
+    /**
+     * Helper function to run the given JavaScript, return the return value,
+     * and fail if a timeout/interrupt occurs so we don't have to catch or
+     * declare exceptions all the time.
+     * @param js The JavaScript to run.
+     * @param timeout The timeout in milliseconds before a failure.
+     * @param webContents The WebContents object to run the JavaScript in.
+     * @return The return value of the JavaScript.
+     */
+    public static String runJavaScriptOrFail(String js, int timeout, WebContents webContents) {
+        try {
+            return JavaScriptUtils.executeJavaScriptAndWaitForResult(
+                    webContents, js, timeout, TimeUnit.MILLISECONDS);
+        } catch (InterruptedException | TimeoutException e) {
+            Assert.fail("Fatal interruption or timeout running JavaScript: " + js);
+        }
+        return "Not reached";
+    }
+
+    /**
+     * Retrieves the current status of the JavaScript test and returns an enum corresponding to it.
+     * @param webContents The WebContents for the tab to check the status in.
+     * @return A TestStatus integer corresponding to the current state of the JavaScript test
+     */
+    @TestStatus
+    public static int checkTestStatus(WebContents webContents) {
+        String resultString =
+                runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
+        boolean testPassed = Boolean.parseBoolean(
+                runJavaScriptOrFail("testPassed", POLL_TIMEOUT_SHORT_MS, webContents));
+        if (testPassed) {
+            return STATUS_PASSED;
+        } else if (!testPassed && resultString.equals("\"\"")) {
+            return STATUS_RUNNING;
+        } else {
+            // !testPassed && !resultString.equals("\"\"")
+            return STATUS_FAILED;
+        }
+    }
+
+    /**
+     * Helper function to end the test harness test and assert that it passed,
+     * setting the failure reason as the description if it didn't.
+     * @param webContents The WebContents for the tab to check test results in.
+     */
+    public static void endTest(WebContents webContents) {
+        switch (checkTestStatus(webContents)) {
+            case STATUS_PASSED:
+                break;
+            case STATUS_FAILED:
+                String resultString =
+                        runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
+                Assert.fail("JavaScript testharness failed with result: " + resultString);
+                break;
+            case STATUS_RUNNING:
+                Assert.fail("Attempted to end test in Java without finishing in JavaScript.");
+                break;
+            default:
+                Assert.fail("Received unknown test status.");
+        }
+    }
+
+    /**
+     * Polls the provided JavaScript boolean until the timeout is reached or
+     * the boolean is true.
+     * @param boolName The name of the JavaScript boolean or expression to poll.
+     * @param timeoutMs The polling timeout in milliseconds.
+     * @param webContents The WebContents to run the JavaScript through.
+     * @return True if the boolean evaluated to true, false if timed out.
+     */
+    public static boolean pollJavaScriptBoolean(
+            final String boolName, int timeoutMs, final WebContents webContents) {
+        try {
+            CriteriaHelper.pollInstrumentationThread(Criteria.equals(true, new Callable<Boolean>() {
+                @Override
+                public Boolean call() {
+                    String result = "false";
+                    try {
+                        result = JavaScriptUtils.executeJavaScriptAndWaitForResult(webContents,
+                                boolName, POLL_CHECK_INTERVAL_SHORT_MS, TimeUnit.MILLISECONDS);
+                    } catch (InterruptedException | TimeoutException e) {
+                        // Expected to happen regularly, do nothing
+                    }
+                    return Boolean.parseBoolean(result);
+                }
+            }), timeoutMs, POLL_CHECK_INTERVAL_LONG_MS);
+        } catch (AssertionError e) {
+            Log.d(TAG, "pollJavaScriptBoolean() timed out");
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Waits for a JavaScript step to finish, asserting that the step finished
+     * instead of timing out.
+     * @param webContents The WebContents for the tab the JavaScript step is in.
+     */
+    public static void waitOnJavaScriptStep(WebContents webContents) {
+        // Make sure we aren't trying to wait on a JavaScript test step without the code to do so.
+        Assert.assertTrue("Attempted to wait on a JavaScript step without the code to do so. You "
+                        + "either forgot to import webvr_e2e.js or are incorrectly using a Java "
+                        + "method.",
+                Boolean.parseBoolean(runJavaScriptOrFail("typeof javascriptDone !== 'undefined'",
+                        POLL_TIMEOUT_SHORT_MS, webContents)));
+
+        // Actually wait for the step to finish
+        boolean success =
+                pollJavaScriptBoolean("javascriptDone", POLL_TIMEOUT_LONG_MS, webContents);
+
+        // Check what state we're in to make sure javascriptDone wasn't called because the test
+        // failed.
+        int testStatus = checkTestStatus(webContents);
+        if (!success || testStatus == STATUS_FAILED) {
+            // Failure states: Either polling failed or polling succeeded, but because the test
+            // failed.
+            String reason;
+            if (!success) {
+                reason = "Polling JavaScript boolean javascriptDone timed out.";
+            } else {
+                reason = "Polling JavaScript boolean javascriptDone succeeded, but test failed.";
+            }
+            String resultString =
+                    runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
+            if (resultString.equals("\"\"")) {
+                reason += " Did not obtain specific reason from testharness.";
+            } else {
+                reason += " Testharness reported failure: " + resultString;
+            }
+            Assert.fail(reason);
+        }
+
+        // Reset the synchronization boolean
+        runJavaScriptOrFail("javascriptDone = false", POLL_TIMEOUT_SHORT_MS, webContents);
+    }
+
+    /**
+     * Executes a JavaScript step function using the given WebContents.
+     * @param stepFunction The JavaScript step function to call.
+     * @param webContents The WebContents for the tab the JavaScript is in.
+     */
+    public static void executeStepAndWait(String stepFunction, WebContents webContents) {
+        // Run the step and block
+        JavaScriptUtils.executeJavaScript(webContents, stepFunction);
+        waitOnJavaScriptStep(webContents);
+    }
+}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellCompositorViewHolderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellCompositorViewHolderTest.java
index fdccd0f..ffabdfc 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellCompositorViewHolderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrShellCompositorViewHolderTest.java
@@ -18,12 +18,11 @@
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
-import org.chromium.chrome.browser.tabmodel.TabModelSelector;
 import org.chromium.chrome.browser.vr_shell.rules.ChromeTabbedActivityVrTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-import org.chromium.content.browser.ContentViewCore;
 import org.chromium.content.browser.test.util.Criteria;
 import org.chromium.content.browser.test.util.CriteriaHelper;
+import org.chromium.content_public.browser.WebContents;
 
 import java.util.concurrent.Callable;
 import java.util.concurrent.TimeoutException;
@@ -51,11 +50,11 @@
     @RetryOnFailure
     public void testResizeWithCompositorViewHolderDetached()
             throws InterruptedException, TimeoutException {
-        final AtomicReference<TabModelSelector> selector = new AtomicReference<>();
         final AtomicReference<Integer> oldWidth = new AtomicReference<>();
+        final AtomicReference<Integer> oldHeight = new AtomicReference<>();
         final int testWidth = 123;
-        final ContentViewCore cvc =
-                mVrTestRule.getActivity().getActivityTab().getActiveContentViewCore();
+        final int testHeight = 456;
+        final WebContents webContents = mVrTestRule.getActivity().getActivityTab().getWebContents();
 
         ThreadUtils.runOnUiThreadBlocking(new Runnable() {
             @Override
@@ -63,12 +62,14 @@
                 CompositorViewHolder compositorViewHolder =
                         (CompositorViewHolder) mVrTestRule.getActivity().findViewById(
                                 R.id.compositor_view_holder);
-                selector.set(compositorViewHolder.detachForVr());
-                oldWidth.set(cvc.getViewportWidthPix());
+                compositorViewHolder.onEnterVr();
+
+                oldWidth.set(webContents.getWidth());
+                oldHeight.set(webContents.getHeight());
 
                 ViewGroup.LayoutParams layoutParams = compositorViewHolder.getLayoutParams();
                 layoutParams.width = testWidth;
-                layoutParams.height = 456;
+                layoutParams.height = testHeight;
                 compositorViewHolder.requestLayout();
             }
         });
@@ -81,25 +82,29 @@
             }
         }));
 
-        Assert.assertEquals("Viewport width should not have changed when resizing a detached "
-                        + "CompositorViewHolder",
-                cvc.getViewportWidthPix(), oldWidth.get().intValue());
-
         ThreadUtils.runOnUiThreadBlocking(new Runnable() {
             @Override
             public void run() {
+                Assert.assertEquals(
+                        "Viewport width should not have changed when resizing a detached "
+                                + "CompositorViewHolder",
+                        webContents.getWidth(), oldWidth.get().intValue());
+                Assert.assertEquals(
+                        "Viewport width should not have changed when resizing a detached "
+                                + "CompositorViewHolder",
+                        webContents.getHeight(), oldHeight.get().intValue());
+
                 CompositorViewHolder compositorViewHolder =
                         (CompositorViewHolder) mVrTestRule.getActivity().findViewById(
                                 R.id.compositor_view_holder);
-                compositorViewHolder.onExitVr(selector.get());
+                compositorViewHolder.onExitVr();
+                Assert.assertNotEquals("Viewport width should have changed after the "
+                                + "CompositorViewHolder was re-attached",
+                        webContents.getHeight(), oldHeight.get().intValue());
+                Assert.assertNotEquals("Viewport width should have changed after the "
+                                + "CompositorViewHolder was re-attached",
+                        webContents.getWidth(), oldWidth.get().intValue());
             }
         });
-
-        CriteriaHelper.pollUiThread(Criteria.equals(testWidth, new Callable<Integer>() {
-            @Override
-            public Integer call() {
-                return cvc.getViewportWidthPix();
-            }
-        }));
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrTestFramework.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrTestFramework.java
index 510ccf79..698446d 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrTestFramework.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/VrTestFramework.java
@@ -1,123 +1,18 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// 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.
 
 package org.chromium.chrome.browser.vr_shell;
 
-import android.support.annotation.IntDef;
-
-import org.junit.Assert;
-
-import org.chromium.base.Log;
-import org.chromium.base.test.util.UrlUtils;
-import org.chromium.chrome.browser.UrlConstants;
 import org.chromium.chrome.test.ChromeActivityTestRule;
-import org.chromium.content.browser.ContentViewCore;
-import org.chromium.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-import org.chromium.content.browser.test.util.JavaScriptUtils;
 import org.chromium.content_public.browser.WebContents;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.util.concurrent.Callable;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
 /**
- * Class containing the test framework for WebVR testing, which requires back-and-forth
- * communication with JavaScript running in the browser.
- *
- * The general test flow is:
- * - Load the HTML file containing the test, which:
- *   - Loads the WebVR boilerplate code and some test functions
- *   - Sets up common elements like the canvas and synchronization variable
- *   - Sets up any steps that need to be triggered by the Java code
- * - Check if any VRDisplay objects were found and fail the test if it doesn't
- *       match what we expect for that test
- * - Repeat:
- *   - Run any necessary Java-side code, e.g. trigger a user action
- *   - Trigger the next JavaScript test step and wait for it to finish
- *
- * The JavaScript code will automatically process test results once all
- * testharness.js tests are done, just like in layout tests. Once the results
- * are processed, the JavaScript code will automatically signal the Java code,
- * which can then grab the results and pass/fail the instrumentation test.
+ * Extension of TestFramework containing WebVR-specific functionality.
  */
-public class VrTestFramework {
-    public static final int PAGE_LOAD_TIMEOUT_S = 10;
-    public static final int POLL_CHECK_INTERVAL_SHORT_MS = 50;
-    public static final int POLL_CHECK_INTERVAL_LONG_MS = 100;
-    public static final int POLL_TIMEOUT_SHORT_MS = 1000;
-    public static final int POLL_TIMEOUT_LONG_MS = 10000;
-
-    public static final String[] NATIVE_URLS_OF_INTEREST = {UrlConstants.BOOKMARKS_FOLDER_URL,
-            UrlConstants.BOOKMARKS_UNCATEGORIZED_URL, UrlConstants.BOOKMARKS_URL,
-            UrlConstants.DOWNLOADS_URL, UrlConstants.NATIVE_HISTORY_URL, UrlConstants.NTP_URL,
-            UrlConstants.RECENT_TABS_URL};
-
-    private static final String TAG = "VrTestFramework";
-    static final String TEST_DIR = "chrome/test/data/vr/e2e_test_files";
-
-    // Test status enum
-    private static final int STATUS_RUNNING = 0;
-    private static final int STATUS_PASSED = 1;
-    private static final int STATUS_FAILED = 2;
-    @Retention(RetentionPolicy.SOURCE)
-    @IntDef({STATUS_RUNNING, STATUS_PASSED, STATUS_FAILED})
-    private @interface TestStatus {}
-
-    private ChromeActivityTestRule mRule;
-    private WebContents mFirstTabWebContents;
-    private ContentViewCore mFirstTabCvc;
-
-    /**
-     * Must be constructed after the rule has been applied (e.g. in whatever method is
-     * tagged with @Before)
-     */
+public class VrTestFramework extends TestFramework {
     public VrTestFramework(ChromeActivityTestRule rule) {
-        mRule = rule;
-        mFirstTabWebContents = mRule.getActivity().getActivityTab().getWebContents();
-        mFirstTabCvc = mRule.getActivity().getActivityTab().getContentViewCore();
-        Assert.assertFalse("Test did not start in VR", VrShellDelegate.isInVr());
-    }
-
-    public WebContents getFirstTabWebContents() {
-        return mFirstTabWebContents;
-    }
-
-    public ContentViewCore getFirstTabCvc() {
-        return mFirstTabCvc;
-    }
-
-    public ChromeActivityTestRule getRule() {
-        return mRule;
-    }
-
-    /**
-     * Gets the file:// URL to the test file
-     * @param testName The name of the test whose file will be retrieved.
-     * @return The file:// URL to the specified test file.
-     */
-    public static String getHtmlTestFile(String testName) {
-        return "file://" + UrlUtils.getIsolatedTestFilePath(TEST_DIR) + "/html/" + testName
-                + ".html";
-    }
-
-    /**
-     * Loads the given URL with the given timeout then waits for JavaScript to
-     * signal that it's ready for testing.
-     * @param url The URL of the page to load.
-     * @param timeoutSec The timeout of the page load in seconds.
-     * @return The return value of ChromeActivityTestRule.loadUrl()
-     */
-    public int loadUrlAndAwaitInitialization(String url, int timeoutSec)
-            throws InterruptedException {
-        int result = mRule.loadUrl(url, timeoutSec);
-        Assert.assertTrue("JavaScript initialization successful",
-                pollJavaScriptBoolean("isInitializationComplete()", POLL_TIMEOUT_LONG_MS,
-                        mRule.getActivity().getActivityTab().getWebContents()));
-        return result;
+        super(rule);
     }
 
     /**
@@ -128,151 +23,4 @@
     public static boolean vrDisplayFound(WebContents webContents) {
         return !runJavaScriptOrFail("vrDisplay", POLL_TIMEOUT_SHORT_MS, webContents).equals("null");
     }
-
-    /**
-     * Helper function to run the given JavaScript, return the return value,
-     * and fail if a timeout/interrupt occurs so we don't have to catch or
-     * declare exceptions all the time.
-     * @param js The JavaScript to run.
-     * @param timeout The timeout in milliseconds before a failure.
-     * @param webContents The WebContents object to run the JavaScript in.
-     * @return The return value of the JavaScript.
-     */
-    public static String runJavaScriptOrFail(String js, int timeout, WebContents webContents) {
-        try {
-            return JavaScriptUtils.executeJavaScriptAndWaitForResult(
-                    webContents, js, timeout, TimeUnit.MILLISECONDS);
-        } catch (InterruptedException | TimeoutException e) {
-            Assert.fail("Fatal interruption or timeout running JavaScript: " + js);
-        }
-        return "Not reached";
-    }
-
-    /**
-     * Retrieves the current status of the JavaScript test and returns an enum corresponding to it.
-     * @param webContents The WebContents for the tab to check the status in.
-     * @return A TestStatus integer corresponding to the current state of the JavaScript test
-     */
-    @TestStatus
-    public static int checkTestStatus(WebContents webContents) {
-        String resultString =
-                runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
-        boolean testPassed = Boolean.parseBoolean(
-                runJavaScriptOrFail("testPassed", POLL_TIMEOUT_SHORT_MS, webContents));
-        if (testPassed) {
-            return STATUS_PASSED;
-        } else if (!testPassed && resultString.equals("\"\"")) {
-            return STATUS_RUNNING;
-        } else {
-            // !testPassed && !resultString.equals("\"\"")
-            return STATUS_FAILED;
-        }
-    }
-
-    /**
-     * Helper function to end the test harness test and assert that it passed,
-     * setting the failure reason as the description if it didn't.
-     * @param webContents The WebContents for the tab to check test results in.
-     */
-    public static void endTest(WebContents webContents) {
-        switch (checkTestStatus(webContents)) {
-            case STATUS_PASSED:
-                break;
-            case STATUS_FAILED:
-                String resultString =
-                        runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
-                Assert.fail("JavaScript testharness failed with result: " + resultString);
-                break;
-            case STATUS_RUNNING:
-                Assert.fail("Attempted to end test in Java without finishing in JavaScript.");
-                break;
-            default:
-                Assert.fail("Received unknown test status.");
-        }
-    }
-
-    /**
-     * Polls the provided JavaScript boolean until the timeout is reached or
-     * the boolean is true.
-     * @param boolName The name of the JavaScript boolean or expression to poll.
-     * @param timeoutMs The polling timeout in milliseconds.
-     * @param webContents The WebContents to run the JavaScript through.
-     * @return True if the boolean evaluated to true, false if timed out.
-     */
-    public static boolean pollJavaScriptBoolean(
-            final String boolName, int timeoutMs, final WebContents webContents) {
-        try {
-            CriteriaHelper.pollInstrumentationThread(Criteria.equals(true, new Callable<Boolean>() {
-                @Override
-                public Boolean call() {
-                    String result = "false";
-                    try {
-                        result = JavaScriptUtils.executeJavaScriptAndWaitForResult(webContents,
-                                boolName, POLL_CHECK_INTERVAL_SHORT_MS, TimeUnit.MILLISECONDS);
-                    } catch (InterruptedException | TimeoutException e) {
-                        // Expected to happen regularly, do nothing
-                    }
-                    return Boolean.parseBoolean(result);
-                }
-            }), timeoutMs, POLL_CHECK_INTERVAL_LONG_MS);
-        } catch (AssertionError e) {
-            Log.d(TAG, "pollJavaScriptBoolean() timed out");
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Waits for a JavaScript step to finish, asserting that the step finished
-     * instead of timing out.
-     * @param webContents The WebContents for the tab the JavaScript step is in.
-     */
-    public static void waitOnJavaScriptStep(WebContents webContents) {
-        // Make sure we aren't trying to wait on a JavaScript test step without the code to do so.
-        Assert.assertTrue("Attempted to wait on a JavaScript step without the code to do so. You "
-                        + "either forgot to import webvr_e2e.js or are incorrectly using a Java "
-                        + "method.",
-                Boolean.parseBoolean(runJavaScriptOrFail("typeof javascriptDone !== 'undefined'",
-                        POLL_TIMEOUT_SHORT_MS, webContents)));
-
-        // Actually wait for the step to finish
-        boolean success =
-                pollJavaScriptBoolean("javascriptDone", POLL_TIMEOUT_LONG_MS, webContents);
-
-        // Check what state we're in to make sure javascriptDone wasn't called because the test
-        // failed.
-        int testStatus = checkTestStatus(webContents);
-        if (!success || testStatus == STATUS_FAILED) {
-            // Failure states: Either polling failed or polling succeeded, but because the test
-            // failed.
-            String reason;
-            if (!success) {
-                reason = "Polling JavaScript boolean javascriptDone timed out.";
-            } else {
-                reason = "Polling JavaScript boolean javascriptDone succeeded, but test failed.";
-            }
-            String resultString =
-                    runJavaScriptOrFail("resultString", POLL_TIMEOUT_SHORT_MS, webContents);
-            if (resultString.equals("\"\"")) {
-                reason += " Did not obtain specific reason from testharness.";
-            } else {
-                reason += " Testharness reported failure: " + resultString;
-            }
-            Assert.fail(reason);
-        }
-
-        // Reset the synchronization boolean
-        runJavaScriptOrFail("javascriptDone = false", POLL_TIMEOUT_SHORT_MS, webContents);
-    }
-
-    /**
-     * Executes a JavaScript step function using the given WebContents.
-     * @param stepFunction The JavaScript step function to call.
-     * @param webContents The WebContents for the tab the JavaScript is in.
-     */
-    public static void executeStepAndWait(String stepFunction, WebContents webContents) {
-        // Run the step and block
-        JavaScriptUtils.executeJavaScript(webContents, stepFunction);
-        waitOnJavaScriptStep(webContents);
-    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebXrTransitionTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebXrTransitionTest.java
new file mode 100644
index 0000000..aa12e95
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/WebXrTransitionTest.java
@@ -0,0 +1,75 @@
+// 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.
+
+package org.chromium.chrome.browser.vr_shell;
+
+import static org.chromium.chrome.browser.vr_shell.XrTestFramework.PAGE_LOAD_TIMEOUT_S;
+
+import android.os.Build;
+import android.support.test.filters.MediumTest;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.RuleChain;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.test.params.ParameterAnnotations.ClassParameter;
+import org.chromium.base.test.params.ParameterAnnotations.UseRunnerDelegate;
+import org.chromium.base.test.params.ParameterSet;
+import org.chromium.base.test.params.ParameterizedRunner;
+import org.chromium.base.test.util.CommandLineFlags;
+import org.chromium.base.test.util.MinAndroidSdkLevel;
+import org.chromium.chrome.browser.ChromeSwitches;
+import org.chromium.chrome.browser.vr_shell.rules.VrActivityRestriction;
+import org.chromium.chrome.browser.vr_shell.util.VrTestRuleUtils;
+import org.chromium.chrome.browser.vr_shell.util.XrTransitionUtils;
+import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
+
+import java.util.List;
+import java.util.concurrent.Callable;
+
+/**
+ * end-to-end tests for transitioning between WebXR's magic window (non-exclusive session) and
+ * presentation (exclusive session) modes.
+ */
+@RunWith(ParameterizedRunner.class)
+@UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class)
+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, "enable-features=WebXR"})
+@MinAndroidSdkLevel(Build.VERSION_CODES.KITKAT) // WebXR is only supported on K+
+public class WebXrTransitionTest {
+    @ClassParameter
+    private static List<ParameterSet> sClassParams =
+            VrTestRuleUtils.generateDefaultVrTestRuleParameters();
+    @Rule
+    public RuleChain mRuleChain;
+
+    private ChromeActivityTestRule mVrTestRule;
+    private XrTestFramework mXrTestFramework;
+
+    public WebXrTransitionTest(Callable<ChromeActivityTestRule> callable) throws Exception {
+        mVrTestRule = callable.call();
+        mRuleChain = VrTestRuleUtils.wrapRuleInVrActivityRestrictionRule(mVrTestRule);
+    }
+
+    @Before
+    public void setUp() throws Exception {
+        mXrTestFramework = new XrTestFramework(mVrTestRule);
+    }
+
+    /**
+     * Tests that a successful request for an exclusive session actually enters VR.
+     */
+    @Test
+    @MediumTest
+    @VrActivityRestriction({VrActivityRestriction.SupportedActivity.ALL})
+    public void testRequestSessionEntersVr() throws InterruptedException {
+        mXrTestFramework.loadUrlAndAwaitInitialization(
+                XrTestFramework.getHtmlTestFile("generic_webxr_page"), PAGE_LOAD_TIMEOUT_S);
+        XrTransitionUtils.enterPresentationOrFail(mXrTestFramework.getFirstTabCvc());
+        Assert.assertTrue("VrShellDelegate is in VR", VrShellDelegate.isInVr());
+    }
+}
\ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/XrTestFramework.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/XrTestFramework.java
new file mode 100644
index 0000000..e274186
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/XrTestFramework.java
@@ -0,0 +1,26 @@
+// 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.
+
+package org.chromium.chrome.browser.vr_shell;
+
+import org.chromium.chrome.test.ChromeActivityTestRule;
+import org.chromium.content_public.browser.WebContents;
+
+/**
+ * Extension of TestFramework containing WebXR-specific functionality.
+ */
+public class XrTestFramework extends TestFramework {
+    public XrTestFramework(ChromeActivityTestRule rule) {
+        super(rule);
+    }
+
+    /**
+     * Checks whether an XRDevice was actually found.
+     * @param webContents The WebContents to run the JavaScript through.
+     * @return Whether an XRDevice was found.
+     */
+    public static boolean xrDeviceFound(WebContents webContents) {
+        return !runJavaScriptOrFail("xrDevice", POLL_TIMEOUT_SHORT_MS, webContents).equals("null");
+    }
+}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/TransitionUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/TransitionUtils.java
new file mode 100644
index 0000000..79d2d2c
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/TransitionUtils.java
@@ -0,0 +1,203 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.vr_shell.util;
+
+import static org.chromium.chrome.browser.vr_shell.TestFramework.POLL_CHECK_INTERVAL_SHORT_MS;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+
+import com.google.vr.ndk.base.DaydreamApi;
+
+import org.junit.Assert;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.ThreadUtils;
+import org.chromium.chrome.browser.vr.VrMainActivity;
+import org.chromium.chrome.browser.vr_shell.TestFramework;
+import org.chromium.chrome.browser.vr_shell.TestVrShellDelegate;
+import org.chromium.chrome.browser.vr_shell.VrClassesWrapperImpl;
+import org.chromium.chrome.browser.vr_shell.VrIntentUtils;
+import org.chromium.chrome.browser.vr_shell.VrShellDelegate;
+import org.chromium.content.browser.ContentViewCore;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
+import org.chromium.content.browser.test.util.DOMUtils;
+import org.chromium.content_public.browser.WebContents;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+/**
+ * Class containing utility functions for transitioning between different
+ * states in VR and XR, such as fullscreen, WebVR/WebXR presentation, and the VR browser.
+ *
+ * WebVR and WebXR-specific functionality can be found in the VrTransitionUtils and
+ * XrTransitionUtils subclasses.
+ *
+ * All the transitions in this class are performed directly through Chrome,
+ * as opposed to NFC tag simulation which involves receiving an intent from
+ * an outside application (VR Services).
+ */
+public class TransitionUtils {
+    /**
+     * Forces the browser into VR mode via a VrShellDelegate call.
+     */
+    public static void forceEnterVr() {
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                VrShellDelegate.enterVrIfNecessary();
+            }
+        });
+    }
+
+    /**
+     * Forces the browser out of VR mode via a VrShellDelegate call.
+     */
+    public static void forceExitVr() {
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                VrShellDelegateUtils.getDelegateInstance().shutdownVr(
+                        true /* disableVrMode */, true /* stayingInChrome */);
+            }
+        });
+    }
+
+    /**
+     * Waits until the given VrShellDelegate's isInVR() returns true. Should
+     * only be used when VR support is expected.
+     * @param timeout How long to wait before giving up, in milliseconds
+     */
+    public static void waitForVrEntry(final int timeout) {
+        // If VR Shell is supported, mInVr should eventually go to true
+        // Relatively long timeout because sometimes GVR takes a while to enter VR
+        CriteriaHelper.pollUiThread(Criteria.equals(true, new Callable<Boolean>() {
+            @Override
+            public Boolean call() {
+                return VrShellDelegateUtils.getDelegateInstance().isVrEntryComplete();
+            }
+        }), timeout, POLL_CHECK_INTERVAL_SHORT_MS);
+    }
+
+    /**
+     * Sends a click event directly to the WebGL canvas, triggering its onclick
+     * that by default calls WebVR's requestPresent. Will have a similar result to
+     * CardboardUtils.sendCardboardClick if not already presenting, but less prone
+     * to errors, e.g. if there's dialog in the center of the screen blocking the canvas.
+     *
+     * Only meant to be used alongside the test framework from VrTestFramework.
+     * @param cvc The ContentViewCore for the tab the canvas is in.
+     */
+    public static void enterPresentation(ContentViewCore cvc) {
+        try {
+            DOMUtils.clickNode(cvc, "webgl-canvas");
+        } catch (InterruptedException | TimeoutException e) {
+            Assert.fail("Failed to click canvas to enter presentation: " + e.toString());
+        }
+    }
+
+    /**
+     * Sends a click event directly to the WebGL canvas then waits for the
+     * JavaScript step to finish.
+     *
+     * Only meant to be used alongside the test framework from VrTestFramework.
+     * @param cvc The ContentViewCore for the tab the canvas is in.
+     * @param webContents The WebContents for the tab the JavaScript step is in.
+     */
+    public static void enterPresentationAndWait(ContentViewCore cvc, WebContents webContents) {
+        enterPresentation(cvc);
+        TestFramework.waitOnJavaScriptStep(webContents);
+    }
+
+    /**
+     * @return Whether the VR back button is enabled.
+     */
+    public static Boolean isBackButtonEnabled() {
+        final AtomicBoolean isBackButtonEnabled = new AtomicBoolean();
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                isBackButtonEnabled.set(
+                        TestVrShellDelegate.getVrShellForTesting().isBackButtonEnabled());
+            }
+        });
+        return isBackButtonEnabled.get();
+    }
+
+    /**
+     * @return Whether the VR forward button is enabled.
+     */
+    public static Boolean isForwardButtonEnabled() {
+        final AtomicBoolean isForwardButtonEnabled = new AtomicBoolean();
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                isForwardButtonEnabled.set(
+                        TestVrShellDelegate.getVrShellForTesting().isForwardButtonEnabled());
+            }
+        });
+        return isForwardButtonEnabled.get();
+    }
+
+    /**
+     * Navigates VrShell back.
+     */
+    public static void navigateBack() {
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                TestVrShellDelegate.getVrShellForTesting().navigateBack();
+            }
+        });
+    }
+
+    /**
+     * Navigates VrShell forward.
+     */
+    public static void navigateForward() {
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                TestVrShellDelegate.getVrShellForTesting().navigateForward();
+            }
+        });
+    }
+
+    /**
+     * Sends an intent to Chrome telling it to launch in VR mode. If the given autopresent param is
+     * true, this is expected to fail unless the trusted intent check is disabled in
+     * VrShellDelegate.
+     *
+     * @param url String containing the URL to open
+     * @param activity The activity to launch the intent from
+     * @param autopresent If this intent is expected to auto-present WebVR
+     */
+    public static void sendVrLaunchIntent(
+            String url, final Activity activity, boolean autopresent) {
+        // Create an intent that will launch Chrome at the specified URL.
+        final Intent intent =
+                new Intent(ContextUtils.getApplicationContext(), VrMainActivity.class);
+        intent.setData(Uri.parse(url));
+        intent.putExtra(VrIntentUtils.DAYDREAM_VR_EXTRA, true);
+        DaydreamApi.setupVrIntent(intent);
+        if (autopresent) {
+            // Daydream removes this category for deep-linked URLs for legacy reasons.
+            intent.removeCategory(VrIntentUtils.DAYDREAM_CATEGORY);
+            intent.putExtra(VrIntentUtils.AUTOPRESENT_WEVBVR_EXTRA, true);
+        }
+
+        final VrClassesWrapperImpl wrapper = new VrClassesWrapperImpl();
+        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+            @Override
+            public void run() {
+                wrapper.createVrDaydreamApi(activity).launchInVr(intent);
+            }
+        });
+    }
+}
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTransitionUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTransitionUtils.java
index 1d73dc79..fb541cd 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTransitionUtils.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/VrTransitionUtils.java
@@ -1,37 +1,16 @@
-// Copyright 2017 The Chromium Authors. All rights reserved.
+// 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.
 
 package org.chromium.chrome.browser.vr_shell.util;
 
-import static org.chromium.chrome.browser.vr_shell.VrTestFramework.POLL_CHECK_INTERVAL_SHORT_MS;
 import static org.chromium.chrome.browser.vr_shell.VrTestFramework.POLL_TIMEOUT_LONG_MS;
 
-import android.app.Activity;
-import android.content.Intent;
-import android.net.Uri;
-
-import com.google.vr.ndk.base.DaydreamApi;
-
 import org.junit.Assert;
 
-import org.chromium.base.ContextUtils;
-import org.chromium.base.ThreadUtils;
-import org.chromium.chrome.browser.vr.VrMainActivity;
 import org.chromium.chrome.browser.vr_shell.TestVrShellDelegate;
-import org.chromium.chrome.browser.vr_shell.VrClassesWrapperImpl;
-import org.chromium.chrome.browser.vr_shell.VrIntentUtils;
-import org.chromium.chrome.browser.vr_shell.VrShellDelegate;
 import org.chromium.chrome.browser.vr_shell.VrTestFramework;
 import org.chromium.content.browser.ContentViewCore;
-import org.chromium.content.browser.test.util.Criteria;
-import org.chromium.content.browser.test.util.CriteriaHelper;
-import org.chromium.content.browser.test.util.DOMUtils;
-import org.chromium.content_public.browser.WebContents;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.TimeoutException;
-import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * Class containing utility functions for transitioning between different
@@ -41,78 +20,7 @@
  * as opposed to NFC tag simulation which involves receiving an intent from
  * an outside application (VR Services).
  */
-public class VrTransitionUtils {
-    /**
-     * Forces the browser into VR mode via a VrShellDelegate call.
-     */
-    public static void forceEnterVr() {
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                VrShellDelegate.enterVrIfNecessary();
-            }
-        });
-    }
-
-    /**
-     * Forces the browser out of VR mode via a VrShellDelegate call.
-     */
-    public static void forceExitVr() {
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                VrShellDelegateUtils.getDelegateInstance().shutdownVr(
-                        true /* disableVrMode */, true /* stayingInChrome */);
-            }
-        });
-    }
-
-    /**
-     * Waits until the given VrShellDelegate's isInVR() returns true. Should
-     * only be used when VR support is expected.
-     * @param timeout How long to wait before giving up, in milliseconds
-     */
-    public static void waitForVrEntry(final int timeout) {
-        // If VR Shell is supported, mInVr should eventually go to true
-        // Relatively long timeout because sometimes GVR takes a while to enter VR
-        CriteriaHelper.pollUiThread(Criteria.equals(true, new Callable<Boolean>() {
-            @Override
-            public Boolean call() {
-                return VrShellDelegateUtils.getDelegateInstance().isVrEntryComplete();
-            }
-        }), timeout, POLL_CHECK_INTERVAL_SHORT_MS);
-    }
-
-    /**
-     * Sends a click event directly to the WebGL canvas, triggering its onclick
-     * that by default calls WebVR's requestPresent. Will have a similar result to
-     * CardboardUtils.sendCardboardClick if not already presenting, but less prone
-     * to errors, e.g. if there's dialog in the center of the screen blocking the canvas.
-     *
-     * Only meant to be used alongside the test framework from VrTestFramework.
-     * @param cvc The ContentViewCore for the tab the canvas is in.
-     */
-    public static void enterPresentation(ContentViewCore cvc) {
-        try {
-            DOMUtils.clickNode(cvc, "webgl-canvas");
-        } catch (InterruptedException | TimeoutException e) {
-            Assert.fail("Failed to click canvas to enter presentation: " + e.toString());
-        }
-    }
-
-    /**
-     * Sends a click event directly to the WebGL canvas then waits for the
-     * JavaScript step to finish.
-     *
-     * Only meant to be used alongside the test framework from VrTestFramework.
-     * @param cvc The ContentViewCore for the tab the canvas is in.
-     * @param webContents The WebContents for the tab the JavaScript step is in.
-     */
-    public static void enterPresentationAndWait(ContentViewCore cvc, WebContents webContents) {
-        enterPresentation(cvc);
-        VrTestFramework.waitOnJavaScriptStep(webContents);
-    }
-
+public class VrTransitionUtils extends TransitionUtils {
     /**
      * Sends a click event directly to the WebGL canvas then waits for WebVR to
      * think that it is presenting, failing if this does not occur within the
@@ -126,90 +34,4 @@
                 "vrDisplay.isPresenting", POLL_TIMEOUT_LONG_MS, cvc.getWebContents()));
         Assert.assertTrue(TestVrShellDelegate.getVrShellForTesting().getWebVrModeEnabled());
     }
-
-    /**
-     * @return Whether the VR back button is enabled.
-     */
-    public static Boolean isBackButtonEnabled() {
-        final AtomicBoolean isBackButtonEnabled = new AtomicBoolean();
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                isBackButtonEnabled.set(
-                        TestVrShellDelegate.getVrShellForTesting().isBackButtonEnabled());
-            }
-        });
-        return isBackButtonEnabled.get();
-    }
-
-    /**
-     * @return Whether the VR forward button is enabled.
-     */
-    public static Boolean isForwardButtonEnabled() {
-        final AtomicBoolean isForwardButtonEnabled = new AtomicBoolean();
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                isForwardButtonEnabled.set(
-                        TestVrShellDelegate.getVrShellForTesting().isForwardButtonEnabled());
-            }
-        });
-        return isForwardButtonEnabled.get();
-    }
-
-    /**
-     * Navigates VrShell back.
-     */
-    public static void navigateBack() {
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                TestVrShellDelegate.getVrShellForTesting().navigateBack();
-            }
-        });
-    }
-
-    /**
-     * Navigates VrShell forward.
-     */
-    public static void navigateForward() {
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                TestVrShellDelegate.getVrShellForTesting().navigateForward();
-            }
-        });
-    }
-
-    /**
-     * Sends an intent to Chrome telling it to launch in VR mode. If the given autopresent param is
-     * true, this is expected to fail unless the trusted intent check is disabled in
-     * VrShellDelegate.
-     *
-     * @param url String containing the URL to open
-     * @param activity The activity to launch the intent from
-     * @param autopresent If this intent is expected to auto-present WebVR
-     */
-    public static void sendVrLaunchIntent(
-            String url, final Activity activity, boolean autopresent) {
-        // Create an intent that will launch Chrome at the specified URL.
-        final Intent intent =
-                new Intent(ContextUtils.getApplicationContext(), VrMainActivity.class);
-        intent.setData(Uri.parse(url));
-        intent.putExtra(VrIntentUtils.DAYDREAM_VR_EXTRA, true);
-        DaydreamApi.setupVrIntent(intent);
-        if (autopresent) {
-            // Daydream removes this category for deep-linked URLs for legacy reasons.
-            intent.removeCategory(VrIntentUtils.DAYDREAM_CATEGORY);
-            intent.putExtra(VrIntentUtils.AUTOPRESENT_WEVBVR_EXTRA, true);
-        }
-
-        final VrClassesWrapperImpl wrapper = new VrClassesWrapperImpl();
-        ThreadUtils.runOnUiThreadBlocking(new Runnable() {
-            @Override
-            public void run() {
-                wrapper.createVrDaydreamApi(activity).launchInVr(intent);
-            }
-        });
-    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/XrTransitionUtils.java b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/XrTransitionUtils.java
new file mode 100644
index 0000000..83152b5
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/vr_shell/util/XrTransitionUtils.java
@@ -0,0 +1,34 @@
+// 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.
+
+package org.chromium.chrome.browser.vr_shell.util;
+
+import static org.chromium.chrome.browser.vr_shell.XrTestFramework.POLL_TIMEOUT_LONG_MS;
+
+import org.junit.Assert;
+
+import org.chromium.chrome.browser.vr_shell.TestVrShellDelegate;
+import org.chromium.chrome.browser.vr_shell.XrTestFramework;
+import org.chromium.content.browser.ContentViewCore;
+
+/**
+ * Class containing utility functions for transitioning between different
+ * states in VR, such as fullscreen, WebVR presentation, and the VR browser.
+ *
+ * All the transitions in this class are performed directly through Chrome,
+ * as opposed to NFC tag simulation which involves receiving an intent from
+ * an outside application (VR Services).
+ */
+public class XrTransitionUtils extends TransitionUtils {
+    /**
+     * WebXR version of enterPresentationOrFail since the condition to check is different between
+     * the two APIs.
+     */
+    public static void enterPresentationOrFail(ContentViewCore cvc) {
+        enterPresentation(cvc);
+        Assert.assertTrue(XrTestFramework.pollJavaScriptBoolean(
+                "exclusiveSession != null", POLL_TIMEOUT_LONG_MS, cvc.getWebContents()));
+        Assert.assertTrue(TestVrShellDelegate.getVrShellForTesting().getWebVrModeEnabled());
+    }
+}
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn
index 149008e2..b478b0c1 100644
--- a/chrome/app/BUILD.gn
+++ b/chrome/app/BUILD.gn
@@ -428,6 +428,10 @@
   source = "chrome_manifest.json"
 }
 
+service_manifest("chrome_renderer_manifest") {
+  source = "chrome_renderer_manifest.json"
+}
+
 service_manifest("chrome_content_packaged_services_manifest_overlay") {
   source =
       "//chrome/browser/chrome_content_packaged_services_manifest_overlay.json"
@@ -542,6 +546,7 @@
     ":chrome_content_plugin_manifest",
     ":chrome_content_renderer_manifest",
     ":chrome_content_utility_manifest",
+    ":chrome_renderer_manifest",
   ]
 
   catalog("catalog") {
diff --git a/chrome/app/OWNERS b/chrome/app/OWNERS
index add35f0..22841e6 100644
--- a/chrome/app/OWNERS
+++ b/chrome/app/OWNERS
@@ -38,3 +38,6 @@
 
 per-file chrome_manifest.json=set noparent
 per-file chrome_manifest.json=file://ipc/SECURITY_OWNERS
+
+per-file chrome_renderer_manifest.json=set noparent

+per-file chrome_renderer_manifest.json=file://ipc/SECURITY_OWNERS

diff --git a/chrome/app/chrome_manifest.json b/chrome/app/chrome_manifest.json
index 26e78463..46b6f8f8 100644
--- a/chrome/app/chrome_manifest.json
+++ b/chrome/app/chrome_manifest.json
@@ -19,8 +19,11 @@
         ]
       },
       "requires": {
+        "chrome_renderer": [ "browser" ],
         "service_manager": [
-          "service_manager:all_users"
+          "service_manager:all_users",
+          "service_manager:client_process",
+          "service_manager:instance_name"
         ]
       }
     }
diff --git a/chrome/app/chrome_renderer_manifest.json b/chrome/app/chrome_renderer_manifest.json
new file mode 100644
index 0000000..7ea56ad
--- /dev/null
+++ b/chrome/app/chrome_renderer_manifest.json
@@ -0,0 +1,16 @@
+{
+  "name": "chrome_renderer",
+  "display_name": "Chrome Renderer",
+  "interface_provider_specs": {
+    "service_manager:connector": {
+      "provides": {
+        "browser": [
+          "spellcheck::mojom::SpellChecker"
+        ]
+      },
+      "requires": {
+        "chrome": [ "renderer" ]
+      }
+    }
+  }
+}
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index 59cc684..3314b60 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -3810,60 +3810,15 @@
       </if>
 
       <!-- Extension/App error messages -->
-      <message name="IDS_EXTENSION_CANT_GET_ABSOLUTE_PATH" desc="Warning displayed in pack dialog when the absolute path to the extension directory can not be found.">
-        Can't find the absolute path to the directory to pack.
-      </message>
-      <message name="IDS_EXTENSION_DIRECTORY_NO_EXISTS" desc="Warning displayed in pack dialog when the extension directory does not exist.">
-        Input directory must exist.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID_PATH" desc="Warning displayed in pack dialog when the private key must be a valid path.">
-        Input value for private key must be a valid path.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension already exists.">
-        A private key for specified extension already exists. Reuse that key or delete it first.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_NO_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension does not exist.">
-        Input value for private key must exist.
-      </message>
       <message name="IDS_EXTENSION_PACK_WARNING_TITLE" desc="Warning title message for pack extension">
         Pack Extension Warning
       </message>
       <message name="IDS_EXTENSION_PACK_ERROR_TITLE" desc="Error title message for pack extension">
         Pack Extension Error
       </message>
-      <message name="IDS_EXTENSION_CRX_EXISTS" desc="Warning displayed in pack dialog when the crx file already exists.">
-        There is already a CRX file present with this name.
-      </message>
       <message name="IDS_EXTENSION_PROCEED_ANYWAY" desc="Button to continue with operation in extension packing">
         Proceed anyway
       </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_READ" desc="Warning displayed in pack dialog when was not possible to read the private key of the extension.">
-        Failed to read private key.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID" desc="Warning displayed in pack dialog when the private key of extensions is invalid.">
-        Invalid private key.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_GENERATE" desc="Warning displayed in pack dialog when generating a random RSA private key failed.">
-        Yikes! Failed to generate random RSA private key.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a private key failed.">
-        Failed to export private key.
-      </message>
-      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_OUTPUT" desc="Warning displayed in pack dialog when outputing a private key failed.">
-        Failed to output private key.
-      </message>
-      <message name="IDS_EXTENSION_FAILED_DURING_PACKAGING" desc="Warning displayed in pack dialog when was not possible to create a zip file.">
-        Failed to create temporary zip file during packaging.
-      </message>
-      <message name="IDS_EXTENSION_ERROR_WHILE_SIGNING" desc="Warning displayed in pack dialog when occurred an error while signing an extension.">
-        Error while signing extension.
-      </message>
-      <message name="IDS_EXTENSION_SHARING_VIOLATION" desc="Warning displayed in pack dialog when a sharing violation is found during creation of the crx.">
-        Failed to replace crx file. Check to see if the file is in use.
-      </message>
-      <message name="IDS_EXTENSION_PUBLIC_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a public key failed.">
-        Failed to export public key.
-      </message>
       <message name="IDS_EXTENSION_CANT_DOWNGRADE_VERSION" desc="Error message when a user tries to install an extension with a lower version than a version that it already installed.">
         Attempted to downgrade extension.
       </message>
@@ -3992,6 +3947,15 @@
         <message name="IDS_EXTENSION_INSTALLED_SIGNIN_PROMO" desc="The remaining text of the sign-in promo paragraph. Will be appended as a label to the string above. The triple single quotes are needed to preserve the space before the word 'to' (which is handy when the language (Chrome is being translated to) uses space as word separator).">
           ''' to get this extension, your history, and other Chrome settings on all your devices.'''
         </message>
+
+        <!-- Begin of Sync Promo strings for Desktop Identity Consistency. -->
+        <message name="IDS_EXTENSION_INSTALLED_DICE_PROMO_SIGNIN_MESSAGE" desc="Text of the sync promo displayed at the bottom of the extension installed bubble asking the user to sign in and enable sync.">
+          To get all your extensions on all your devices, sign in and turn on sync.
+        </message>
+        <message name="IDS_EXTENSION_INSTALLED_DICE_PROMO_SYNC_MESSAGE" desc="Text of the sync promo displayed at the bottom of the extension installed bubble asking the user to enable sync.">
+          To get all your extensions on all your devices, turn on sync.
+        </message>
+        <!-- End of Sync Promo strings for Desktop Identity Consistency. -->
       </if>
 
       <!-- Directory access confirmation dialog -->
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index 4484356..19af658 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">ይህ «<ph name="EXTENSION_NAME" />» ቅጥያ Chromiumን ሲጀምሩት የሚታየውን ገጽ ቀይሮታል።</translation>
 <translation id="2483889755041906834">በChromium ውስጥ</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
-<translation id="2486653164587200256">Chromium በWindows XP ወይም Windows Vista ላይ ከእንግዲህ ስለማይደገፍ በአግባቡ ላይሰራ ይችላል።</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ን ለማንቃት Chromiumን ዳግም ያስጀምሩ</translation>
 <translation id="2535480412977113886">የመለያ መግቢያ ዝርዝሮችዎ ጊዜ ያለፈባቸው ስለሆኑ Chromium OS ውሂብዎን ማመሳሰል አልቻለም።</translation>
 <translation id="2572494885440352020">Chromium አጋዥ</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">አደገኛ መተግበሪያዎች እና ጣቢያዎች እንዲገኙ ለማገዝ አንዳንድ የሥርዓት መረጃን እና የገጽ ይዘትን ለGoogle በመላክ Chromium ደህንነቱ ይበልጥ የተጠበቀ እና ለመጠቀም ይበልጥ የቀለለ እንዲሆን ማድረግ ይችላሉ።</translation>
 <translation id="4567424176335768812">እንደ <ph name="USER_EMAIL_ADDRESS" /> ሆነው ገብተዋል። አሁን የእርስዎን ዕልባቶች፣ ታሪክ እና ሌሎች ቅንብሮች በመለያ በገቡ ሁሉም መሣሪያዎችዎ ላይ መድረስ ይችላሉ።</translation>
 <translation id="459535195905078186">የChromium መተግበሪያዎች</translation>
-<translation id="4611246891205775468">Chromium ለዚህ ጣቢያ የእርስዎን ማይክራፎን ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="4621240073146040695">የተዘመነ ለመሆን ጥቂት ብቻ ቀርቷል! ማዘመን ለማጠናቀቅ Chromiumን ዳግም ያስጀምሩት።</translation>
 <translation id="4677944499843243528">መገለጫው በሌላ ኮምፒውተር (<ph name="HOST_NAME" />) ላይ በሌላ የChromium ሂደት (<ph name="PROCESS_ID" />) የተያዘ ይመስላል። Chromium መገለጫው እንዳይበላሽ ቆልፎታል።  ሌሎች ሂደቶች ይህን መገለጫ እየተጠቀሙበት እንዳልሆኑ እርግጠኛ ከሆኑ መገለጫውን አስከፍተው Chromiumን ዳግም ማስጀመር ይችላሉ።</translation>
 <translation id="469338717132742108">Chromium OS ላይ እገዛ ያግኙ</translation>
 <translation id="4708774505295300557">የሆነ ሰው ከዚህ ቀደም በዚህ ኮምፒውተር ላይ እንደ <ph name="ACCOUNT_EMAIL_LAST" /> ሆነው ገብተዋል። የእርስዎን መረጃ ለይተው ለማስቀመጥ እባክዎ አዲስ የChromium ተጠቃሚ ይፍጠሩ።</translation>
 <translation id="4714956846925717402">ወደ Chromium በፍጥነት ይግቡ</translation>
-<translation id="4825874709045178029">Chromium ለዚህ ጣቢያ የእርስዎን ካሜራ ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="4888717733111232871">Chromium ለmDNS ትራፊክ ለመፍቀድ የውስጥ ደንብ።</translation>
 <translation id="4943838377383847465">Chromium በጀርባ ሁነታ ላይ ነው።</translation>
 <translation id="4987820182225656817">እንግዳዎች ማንኛውንም ነገር ወደኋላ ሳይተዉ Chromium መጠቀም ይችላሉ።</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium ድረ-ገጾችን እና መተግበሪያዎችን እጅግ በጣም ፈጣን በሆነ ፍጥነት የሚያሄድ ድር አሳሽ ነው። ፈጣን፣ የረጋ እና ለመጠቀም ቀላል ነው። Chromium ውስጥ አብሮ በተሰራላቸው የተንኮል-አዘል ሶፍትዌር እና የማስገሪያ መከላከያዎች አማካኝነት ደህንነትዎ ይበልጥ በተጠበቀ ሁኔታ ድሩን ያስሱ።</translation>
 <translation id="6475912303565314141">እንዲሁም Chromiumን ሲጀምሩት የሚታየውን ገጽ ይቆጣጠራል።</translation>
 <translation id="6485906693002546646">የChromium ነገሮችዎን ለማመሳሰል <ph name="PROFILE_EMAIL" />ን እየተጠቀሙ ነው። የማመሳሰል ምርጫዎን ለማዘመን ወይም Chromium ያለGoogle መለያ መጠቀም የሚፈልጉ ከሆኑ <ph name="SETTINGS_LINK" />ን ይጎብኙ።</translation>
-<translation id="6505742536731484931">Chromium አካባቢዎን ለዚህ ጣቢያ ለማጋራት የአካባቢዎ መዳረሻ ይፈልጋል።</translation>
 <translation id="6510925080656968729">Chromiumን ያራግፉ</translation>
-<translation id="6526111688217511984">Chromium ፋይሎችን ለማውረድ የማከማቻ መዳረሻ ያስፈልገዋል።</translation>
 <translation id="6598877126913850652">ወደ የChromium ማሳወቂያ ቅንብሮች ይሂዱ</translation>
 <translation id="6676384891291319759">በይነመረብን ተዳረስ</translation>
 <translation id="6717134281241384636">መገለጫዎ ከአዲስ የChromium ስሪት ስለሆነ የመጣው ስራ ላይ ሊውል አይችልም።
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">ለChromium ልዩ የደህንነት ዝማኔ አሁን ተጭኗል፤ አሁን እንዲተገበር ዳግም ማስጀመር አለብዎት (ትሮችዎን ወደነበሩበት እንመልሳቸዋለን)።</translation>
 <translation id="761356813943268536">Chromium ካሜራዎን እና ማይክሮፎንዎን እየተጠቀመ ነው።</translation>
 <translation id="7617377681829253106">Chromium አሁን ይበልጥ ተሻሽሏል</translation>
-<translation id="7641113255207688324">Chromium ነባሪ አሳሽዎ አይደለም።</translation>
 <translation id="7729447699958282447">ማመሳሰል ለጎራዎ ስለማይገኝ Chromium ውሂብዎን ማመሳሰል አይችልም።</translation>
 <translation id="7745317241717453663">ይሄ የአሰሳ ውሂብዎን ከዚህ መሣሪያ ይሰርዘዋል። ውሂብዎን በኋላ ላይ ሰርስረው ለማውጣት እንደ <ph name="USER_EMAIL" /> ሆነው ወደ Chromium ይግቡ።</translation>
 <translation id="7747138024166251722">ጫኝው ጊዜያዊ ማውጫ መፍጠር አልቻለም። እባክዎ ነፃ የዲስክ ቦታ እና ሶፍትዌር የመጫን ፍቃድ እንዳለ ይፈትሹ።</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Chromiumን በእርስዎ ስልክ ላይ ይጫኑ። አንድ ኤስኤምኤስ ወደዚህ የመለያ መልሶ ማግኛ ስልክዎ እንልካለን፦ <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium ይበልጥ የተሻለ እንዲሆን ያግዙ</translation>
 <translation id="8290862415967981663">ይህ ፋይል አደገኛ ሊሆን ስለሚችል Chromium አግዶታል።</translation>
-<translation id="8328596990138326317">Chromium ለዚህ ጣቢያ የእርስዎን ካሜራ እና ማይክራፎን ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ከዚህ ቀደም Chromiumን እየተጠቀመ ነበር</translation>
 <translation id="8453117565092476964">የጫኚው መዝገብ ተበላሽቷል ወይም ትክክል አይደለም። እባክዎ Chromiumን እንደገና ያውርዱ።</translation>
 <translation id="8493179195440786826">Chromium ጊዜው አልፎበታል</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index 8752d07..01ad4d9 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">‏غيّرت الإضافة "<ph name="EXTENSION_NAME" />" الصفحة التي تظهر عند بدء Chromium.</translation>
 <translation id="2483889755041906834">‏في Chromium</translation>
 <translation id="2485422356828889247">إزالة التثبيت</translation>
-<translation id="2486653164587200256">‏ربما لن يعمل Chromium بشكل صحيح لأنه لم يعد مدعومًا على أنظمة Windows XP أو Windows Vista.</translation>
 <translation id="2527042973354814951">‏إعادة تشغيل Chromium لتمكين <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">‏تعذر على نظام التشغيل Chromium مزامنة البيانات نظرًا لأن تفاصيل تسجيل الدخول إلى حسابك قديمة.</translation>
 <translation id="2572494885440352020">‏أداة مساعدة Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">‏يمكنك المساعدة في جعل Chromium أكثر أمانًا وأسهل استخدامًا بإرسال بعض معلومات النظام ومحتوى الصفحة تلقائيًا إلى Google للمساعدة في اكتشاف التطبيقات والمواقع الضارة.</translation>
 <translation id="4567424176335768812">لقد سجلت دخولك باعتبارك <ph name="USER_EMAIL_ADDRESS" />. ويُمكنك الآن الاستمتاع بالدخول إلى الإشارات المرجعية، والسجلّ، والإعدادات الأخرى على جميع الأجهزة التي تسجّل الدخول إليها.</translation>
 <translation id="459535195905078186">‏تطبيقات Chromium</translation>
-<translation id="4611246891205775468">‏يحتاج Chromium إلى إذن لاستخدام الميكروفون لموقع الويب هذا.</translation>
 <translation id="4621240073146040695">‏أوشك التحديث على الانتهاء! إعادة تشغيل Chromium لإنهاء التحديث.</translation>
 <translation id="4677944499843243528">‏يبدو أن الملف الشخصي قيد الاستخدام بواسطة عملية أخرى في Chromium (<ph name="PROCESS_ID" />) على جهاز كمبيوتر آخر (<ph name="HOST_NAME" />). وقد تمّ قفل الملف الشخصي من جانب Chromium لضمان عدم تعرضه للتلف. فإذا كنت واثقًا من عدم وجود عمليات أخرى قيد التشغيل على جهاز الكمبيوتر، فيُمكنك إلغاء قفل الملف الشخصي وإعادة تشغيل Chromium مجددًا.</translation>
 <translation id="469338717132742108">‏الحصول على مساعدة في نظام التشغيل Chromium</translation>
 <translation id="4708774505295300557">‏سجّل شخص ما الدخول من قبل إلى Chromium على جهاز الكمبيوتر هذا باسم <ph name="ACCOUNT_EMAIL_LAST" />. يُرجى إنشاء حساب مستخدم جديد في Chromium للإبقاء على معلوماتك بشكلٍ منفصل.</translation>
 <translation id="4714956846925717402">‏الوصول إلى Chromium بشكلٍ أسرع</translation>
-<translation id="4825874709045178029">‏يحتاج Chromium إلى إذن لاستخدام الكاميرا لموقع الويب هذا.</translation>
 <translation id="4888717733111232871">‏قاعدة الوارد إلى Chromium للسماح بحركة مرور mDNS.</translation>
 <translation id="4943838377383847465">‏Chromium في وضع الخلفية.</translation>
 <translation id="4987820182225656817">‏يمكن للضيف استخدام Chromium بدون أن يترك أي أثر وراءه.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">‏ إن Chromium هو متصفح ويب يشغّل صفحات الويب والتطبيقات بسرعة مذهلة. إنه سريع وثابت وسهل الاستخدام. يمكنك تصفح الويب بشكل أكثر أمانًا من خلال ميزات الحماية من البرامج الضارة والتصيّد الاحتيالي المدمجة في Chromium.</translation>
 <translation id="6475912303565314141">‏كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chromium.</translation>
 <translation id="6485906693002546646">‏أنت تستخدم <ph name="PROFILE_EMAIL" /> لمزامنة عناصرك في Chromium. لتحديث تفضيل المزامنة أو استخدام Chromium بدون حساب Google، يُرجى الانتقال إلى <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">‏يحتاج Chromium إلى الوصول إلى موقعك الجغرافي لمشاركة موقعك الجغرافي مع موقع الويب هذا.</translation>
 <translation id="6510925080656968729">‏إزالة Chromium</translation>
-<translation id="6526111688217511984">‏يحتاج Chromium الوصول إلى سعة التخزين لتنزيل الملفات.</translation>
 <translation id="6598877126913850652">‏الانتقال إلى إعدادات الإشعارات في Chromium</translation>
 <translation id="6676384891291319759">الدخول إلى الإنترنت</translation>
 <translation id="6717134281241384636">‏لا يمكن استخدام ملفك الشخصي نظرًا لأنه من إصدار أحدث من Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">‏تم الآن تطبيق تحديث أمان خاص لـ Chromium؛ تجب إعادة التشغيل الآن لتسري التغييرات التي أجريتها (ستتم استعادة علامات التبويب).</translation>
 <translation id="761356813943268536">‏يستخدم Chromium الكاميرا والميكروفون.</translation>
 <translation id="7617377681829253106">‏Chromium أصبح أفضل</translation>
-<translation id="7641113255207688324">‏ليس Chromium متصفحك الافتراضي.</translation>
 <translation id="7729447699958282447">‏تعذر على Chromium مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation>
 <translation id="7745317241717453663">‏سيؤدي هذا إلى حذف بيانات التصفح من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chromium كـ <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">تعذر على أداة المثبِّت إنشاء دليل مؤقت. يُرجى التحقق من وجود مساحة خالية على القرص وتوفر الإذن اللازم لتثبيت البرنامج.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">‏بادِر بتثبيت Chromium على هاتفك. سنرسل رسالة قصيرة SMS إلى رقم هاتف استرداد حسابك: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">‏المساعدة في تحسين Chromium</translation>
 <translation id="8290862415967981663">‏قد يكون هذا الملف ضارًا، لذلك فقد حظره Chromium.</translation>
-<translation id="8328596990138326317">‏يحتاج Chromium إلى إذن لاستخدام الكاميرا والميكروفون لموقع الويب هذا.</translation>
 <translation id="8340674089072921962">‏كان <ph name="USER_EMAIL_ADDRESS" /> يستخدم Chromium مسبقًا</translation>
 <translation id="8453117565092476964">‏أرشيف أداة التثبيت تالف أو غير صالح. يُرجى إعادة تنزيل Chromium.</translation>
 <translation id="8493179195440786826">‏إصدار Chromium قديم</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index 7ac9cc5..9257681 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Разширението „<ph name="EXTENSION_NAME" />“ промени страницата, която се показва при стартиране на Chromium.</translation>
 <translation id="2483889755041906834">В Chromium</translation>
 <translation id="2485422356828889247">Деинсталиране</translation>
-<translation id="2486653164587200256">Chromium може да не функционира правилно, тъй като вече не се поддържа под Windows XP и Windows Vista.</translation>
 <translation id="2527042973354814951">Рестартирайте Chromium, за да активирате <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS не можа да синхронизира данните ви, защото потребителското име и паролата за вход в профила ви не са актуални.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Можете да ни помогнете да направим браузъра Chromium по-надежден и по-лесен за използване, като автоматично изпращате до Google системна информация и част от съдържанието на страниците, за да ни съдействате при откриването на опасни приложения и сайтове.</translation>
 <translation id="4567424176335768812">Влезли сте като <ph name="USER_EMAIL_ADDRESS" />. Сега имате достъп до отметките, историята и другите си настройки на всички устройства, на които сте влезли.</translation>
 <translation id="459535195905078186">Приложения в Chromium</translation>
-<translation id="4611246891205775468">Chromium се нуждае от разрешение за достъп до микрофона ви за този сайт.</translation>
 <translation id="4621240073146040695">Актуализирането почти завърши! Остава само да стартирате отново Chromium.</translation>
 <translation id="4677944499843243528">Изглежда, че потребителският профил се използва от друг процес на Chromium  (<ph name="PROCESS_ID" />) на друг компютър (<ph name="HOST_NAME" />). Chromium заключи потребителския профил, за да не се повреди. Ако сте сигурни, че нито един друг процес не го използва, можете да отключите потребителския профил и да стартирате Chromium повторно.</translation>
 <translation id="469338717132742108">Получаване на помощ за Chromium OS</translation>
 <translation id="4708774505295300557">По-рано някой влезе в Chromium на този компютър като <ph name="ACCOUNT_EMAIL_LAST" />. Моля, създайте нов потребител в браузъра, така че информацията ви да се съхранява отделно.</translation>
 <translation id="4714956846925717402">Стартирайте Chromium по-бързо</translation>
-<translation id="4825874709045178029">Chromium се нуждае от разрешение за достъп до камерата ви за този сайт.</translation>
 <translation id="4888717733111232871">Правило за Chromium за допускане на входящия трафик за mDNS.</translation>
 <translation id="4943838377383847465">Chromium работи на заден план.</translation>
 <translation id="4987820182225656817">Гостите могат да използват Chromium, без да оставят следи.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium е уеб браузър, който зарежда уеб страници и изпълнява приложения със светкавична скорост. Той е бърз, стабилен и лесен за употреба. Сърфирайте в мрежата по-безопасно с вградената защита на Chromium срещу злонамерен софтуер и фишинг.</translation>
 <translation id="6475912303565314141">То също контролира коя страница се показва при стартиране на Chromium.</translation>
 <translation id="6485906693002546646">Използвате <ph name="PROFILE_EMAIL" /> за синхронизиране на нещата си в Chromium. За да актуализирате съответното предпочитание или да ползвате браузъра без профил в Google, посетете <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium се нуждае от достъп до данните за местоположението ви, за да ги сподели с този сайт.</translation>
 <translation id="6510925080656968729">Деинсталиране на Chromium</translation>
-<translation id="6526111688217511984">Chromium се нуждае от достъп до хранилището, за да изтегля файлове.</translation>
 <translation id="6598877126913850652">Към настройките за известия в Chromium</translation>
 <translation id="6676384891291319759">Достъп до интернет</translation>
 <translation id="6717134281241384636">Потребителският ви профил не може да се използва, защото е от по-нова версия на Chromium. Някои функции може да не са налице. Моля, посочете друга директория в потребителския профил или използвайте по-нова версия на Chromium.</translation>
@@ -192,7 +187,6 @@
 <translation id="7577193603922410712">Току-що бе приложена специална актуализация за сигурност за Chromium. Сега трябва да рестартирате, за да влезе в сила (ще възстановим разделите ви).</translation>
 <translation id="761356813943268536">Chromium използва камерата и микрофона ви.</translation>
 <translation id="7617377681829253106">Chromium се подобри</translation>
-<translation id="7641113255207688324">Chromium не е браузърът ви по подразбиране.</translation>
 <translation id="7729447699958282447">Chromium не можа да синхронизира данните ви, защото синхронизирането не е налице за домейна ви.</translation>
 <translation id="7745317241717453663">Данните за сърфирането ви ще се изтрият от това устройство. За да ги извлечете по-късно, влезте в Chromium като <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Инсталационната програма не можа да създаде временна директория. Моля, проверете дали има свободно дисково пространство и разрешение за инсталиране на софтуер.</translation>
@@ -211,7 +205,6 @@
 <translation id="8222496066431494154">Инсталирайте Chromium на телефона си. Ще изпратим SMS на телефонния номер за възстановяване на профила ви: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Помощ за подобряването на Chromium</translation>
 <translation id="8290862415967981663">Chromium блокира този файл, тъй като може да е опасен.</translation>
-<translation id="8328596990138326317">Chromium се нуждае от разрешение за достъп до камерата и микрофона ви за този сайт.</translation>
 <translation id="8340674089072921962">По-рано <ph name="USER_EMAIL_ADDRESS" /> използва Chromium</translation>
 <translation id="8453117565092476964">Архивът на инсталационната програма е повреден или невалиден. Моля, изтеглете отново Chromium.</translation>
 <translation id="8493179195440786826">Chromium не е актуален</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index c3b99fb..a6c28b3e 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -19,7 +19,7 @@
 <translation id="1688750314291223739">ওয়েবে আপনার ব্যক্তিগতকৃত ব্রাউজার বিষয় সংরক্ষণ করতে সিঙ্ক সেট করুন এবং যেকোনো কম্পিউটারে Chromium থেকে সেগুলিতে অ্যাক্সেস করুন৷</translation>
 <translation id="1708666629004767631">Chromium-এর একটি নতুন, নিরাপদ সংস্করণ উপলব্ধ আছে৷</translation>
 <translation id="1774152462503052664">Chromium-কে পটভূমিতে চলতে দিন</translation>
-<translation id="1779356040007214683">Chromium কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
+<translation id="1779356040007214683">Chromium কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়তো আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
 <translation id="1808667845054772817">Chromium আবার ইন্সটল করুন</translation>
 <translation id="1869480248812203386">আপনি Google-এ নিরাপত্তার সম্ভাব্য লঙ্ঘনের ঘটনাগুলি স্বয়ংক্রিয়ভাবে প্রতিবেদন করার মাধ্যমে Chromium কে নিরাপদ ও সহজে ব্যবহারযোগ্য করতে তুলতে সাহায্য করতে পারেন।</translation>
 <translation id="1881322772814446296">আপনি একটি পরিচালিত অ্যাকাউন্টের মাধ্যমে প্রবেশ করুন করছেন এবং এর প্রশাসককে আপনার Chromium প্রোফাইলের উপরে নিয়ন্ত্রণ দিচ্ছেন৷ আপনার Chromium ডেটা, যেমন অ্যাপ্লিকেশান, বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংস <ph name="USER_NAME" /> এতে স্থায়ীভাবে সম্পৃক্ত হবে৷ আপনি Google অ্যাকাউন্টগুলির ড্যাশবোর্ডের মাধ্যমে এই ডেটাগুলি মুছতে সক্ষম হবেন, কিন্তু অন্য অ্যাকাউন্টের সাথে এই ডেটা সংশ্লিষ্ট করতে পারবেন না৷ বিকল্প হিসাবে আপনি আপনার বিদ্যমান Chromium তথ্য আলাদা রাখার জন্য একটি নতুন প্রোফাইল তৈরি করতে পারেন৷ <ph name="LEARN_MORE" /></translation>
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">আপনি Chromium শুরু করলে কোন পৃষ্ঠাটি দেখানো হবে তা "<ph name="EXTENSION_NAME" />" এক্সটেনশান পরিবর্তন করেছে।</translation>
 <translation id="2483889755041906834">Chromium এ</translation>
 <translation id="2485422356828889247">আনইনস্টল</translation>
-<translation id="2486653164587200256">Chromium সঠিকভাবে কাজ নাও করতে পারে কারণ এটি এখন আর Windows XP বা Windows Vista সমর্থিত নয়।</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> কে সক্ষম করতে Chromium আবার চালু করুন</translation>
 <translation id="2535480412977113886">আপনার অ্যাকাউন্টের সাইন ইনের বিবরণটি সেকেলে হওয়ায় Chromium OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation>
 <translation id="2572494885440352020">Chromium সহায়ক</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">বিপজ্জনক অ্যাপ্লিকেশান এবং সাইট সনাক্ত করতে সহায়তা দিতে স্বয়ংক্রিয়ভাবে কিছু তথ্য ও পৃষ্ঠা সামগ্রী Google এ পাঠানোর মাধ্যমে Chromium কে আরও নিরাপদ ও সহজে ব্যবহারযোগ্য করে তুলতে সাহায্য করতে পারেন।</translation>
 <translation id="4567424176335768812">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে প্রবেশ করেছেন৷ এখন আপনি আপনার সমস্ত প্রবেশ করা ডিভাইসে আপনার বুকমার্ক, ইতিহাস এবং অন্যান্য সেটিংস অ্যাক্সেস করতে পারেন৷</translation>
 <translation id="459535195905078186">Chromium অ্যাপ্লিকেশানগুলি</translation>
-<translation id="4611246891205775468">এই সাইটটির জন্য Chromium কে আপনার মাইক্রোফোনে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="4621240073146040695">প্রায় আপ-টু-ডেট হয়েছে! আপডেট শেষ করতে Chromium আবার চালু করুন।</translation>
 <translation id="4677944499843243528">অন্য একটি কম্পিউটারে (<ph name="HOST_NAME" />) প্রোফাইলটি অন্য Chromium প্রক্রিয়া (<ph name="PROCESS_ID" />) দ্বারা ব্যবহৃত হচ্ছে বলে মনে হচ্ছে৷ Chromium প্রোফাইলটিকে লক করেছে যাতে এটি বিকৃত না হয়ে যায়৷ যদি আপনি নিশ্চিত হন যে আর কোনো প্রক্রিয়া এই প্রোফাইলটিকে ব্যবহার করছে না, তবে আপনি প্রোফাইলটিকে আনলক করতে পারেন এবং Chromium কে পুনরায় লঞ্চ করতে পারেন৷</translation>
 <translation id="469338717132742108">Chromium OS সম্পর্কে সহায়তা পান</translation>
 <translation id="4708774505295300557">আগে কোনো একজন এই কম্পিউটারে <ph name="ACCOUNT_EMAIL_LAST" /> হিসাবে Chromium এ প্রবেশ করেছেন। আপনার তথ্য পৃথক রাখার জন্য অনুগ্রহ করে একটি Chromium ব্যবহারকারী তৈরি করুন।</translation>
 <translation id="4714956846925717402">Chromium এ আরও দ্রুত যান</translation>
-<translation id="4825874709045178029">এই সাইটটির জন্য Chromium কে আপনার ক্যামেরায় অ্যাক্সেস দিতে হবে।</translation>
 <translation id="4888717733111232871">mDNS ট্রাফিকের অনুমতি দিতে Chromium এর জন্য ইনবাউন্ড নিয়ম।</translation>
 <translation id="4943838377383847465">Chromium পটভূমিতে চলছে৷</translation>
 <translation id="4987820182225656817">অতিথিগণ কোনো কিছুর জন্য অভাব বোধ না করেই Chromium ব্যবহার করতে পারবেন৷</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium হল একটি ওয়েব ব্রাউজার যা ওয়েব পৃষ্ঠার গতি এবং অ্যাপ্লিকেশনগুলিকে আলোকের গতিতে সঞ্চালিত করে৷ এটা দ্রুত, স্থিতিশীল, এবং সহজে ব্যবহারের যোগ্য৷ Chromium নির্মিত ম্যালওয়ার এবং ফিশিং সুরক্ষার সাহায্যে আরও সুরক্ষিত ভাবে ওয়েব ব্রাউজ করুন৷</translation>
 <translation id="6475912303565314141">আপনি Chromium শুরু করলে কোন পৃষ্ঠাটি দেখানো হবে তাও এটি নিয়ন্ত্রণ করে।</translation>
 <translation id="6485906693002546646">আপনার Chromium জিনিসপত্র সমন্বয় করার জন্য আপনি <ph name="PROFILE_EMAIL" /> ব্যবহার করছেন৷ আপনার সিঙ্ক পছন্দগুলি আপডেট করতে বা Google অ্যাকাউন্ট ছাড়া Chromium ব্যবহার করতে <ph name="SETTINGS_LINK" /> এ যান৷</translation>
-<translation id="6505742536731484931">এই সাইটটির সাথে আপনার অবস্থান শেয়ার করার জন্য Chromium কে আপনার অবস্থানের তথ্যে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="6510925080656968729">Chromium আনইনস্টল করুন</translation>
-<translation id="6526111688217511984">ফাইল ডাউনলোড করতে Chromium এর জন্য সঞ্চয়স্থানের অ্যাক্সেস প্রয়োজন।</translation>
 <translation id="6598877126913850652">Chromium বিজ্ঞপ্তি সেটিংসে যান</translation>
 <translation id="6676384891291319759">ইন্টারনেটটি অ্যাক্সেস করুন</translation>
 <translation id="6717134281241384636">আপনার প্রোফাইলটি ব্যবহার করতে পারা যাবে না কারণ এটি একটি Chromium-এর নতুন সংস্করণ৷ কিছু বিষয় অনুপলব্ধ হতে পারে৷ দয়া করে একটি ভিন্ন প্রোফাইল ডিরেক্টরি উল্লেখ করুন অথবা Chromium-এর একটি নতুন সংস্করণ ব্যবহার করুন৷</translation>
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">Chromium এর জন্য একটি বিশেষ সুরক্ষা আপডেট এইমাত্র প্রয়োগ করা হয়েছে; এটা কার্যকর করার জন্য (আমরা আপনার ট্যাবগুলি পুনরুদ্ধার করব) আপনার এখনই একে পুনরায় চালু করা উচিত হবে।</translation>
 <translation id="761356813943268536">Chromium আপনার ক্যামেরা এবং মাইক্রোফোন ব্যবহার করছে৷</translation>
 <translation id="7617377681829253106">Chromium আরও ভাল হয়ে উঠেছে</translation>
-<translation id="7641113255207688324">Chromium আপনার ডিফল্ট ব্রাউজার নয়৷</translation>
 <translation id="7729447699958282447">আপনার ডোমেনে সিঙ্ক উপলব্ধ না থাকার কারণে Chromium সিঙ্ক করতে পারেনি৷</translation>
 <translation id="7745317241717453663">এটি এই ডিভাইস থেকে আপনার ব্রাউজিং ডেটা মুছে ফেলবে। আপনার ডেটা পরে পুনরুদ্ধার করার জন্য, Chromium এ <ph name="USER_EMAIL" /> হিসেবে সাইন ইন করুন।</translation>
 <translation id="7747138024166251722">ইনস্টলারটি অস্থায়ী ডাইরেক্টরি তৈরি করতে পারে নি৷ দয়া করে মুক্ত ডিস্ক স্থান এবং সফ্টওয়্যারটি ইনস্টল করার অনুমতি যাচাই করে নিন৷</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">আপনার ফোনে Chromium ইনস্টল করুন। আমরা আপনার অ্যাকাউন্ট পুনরুদ্ধারের ফোন নম্বরে একটি এসএমএস পাঠাব: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium কে আরও  করে তুলতে সাহায্য করুন৷</translation>
 <translation id="8290862415967981663">এই ফাইলটি বিপজ্জনক হতে পারে, তাই Chromium এটিকে অবরুদ্ধ করেছে।</translation>
-<translation id="8328596990138326317">এই সাইটটির জন্য Chromium কে আপনার ক্যামেরা এবং মাইক্রোফোনে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> পূর্বে Chromium ব্যবহার করছিলেন</translation>
 <translation id="8453117565092476964">ইনস্টলার আর্কাইভ অবিশুদ্ধ বা অবৈধ৷ দয়া করে Chromium পুনরায় ডাউনলোড করুন৷</translation>
 <translation id="8493179195440786826">Chromium পুরানো হয়ে গেছে</translation>
@@ -242,7 +235,7 @@
 
 যেকোনো উপায়ে প্রবেশ করা হলে তা বুকমার্কগুলি, ইতিহাস, এবং অন্যান্য সেটিংসের মত Chromium তথ্যকে <ph name="ACCOUNT_EMAIL_NEW" /> এ মার্জ করবে৷</translation>
 <translation id="9013087743919948559">Chromium-এ জুড়ুন</translation>
-<translation id="9019929317751753759">Chromium কে আরও নিরাপদ করতে, আমরা নীচের এক্সটেনশানটি অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছিল৷</translation>
+<translation id="9019929317751753759">Chromium কে আরও নিরাপদ করতে, আমরা নীচের এক্সটেনশানটি অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়তো আপনাকে না জানিয়ে যোগ করা হয়েছিল৷</translation>
 <translation id="9022552996538154597">Chromium-এ প্রবেশ করুন</translation>
 <translation id="9025992965467895364">এই পৃষ্ঠাটি খুব বেশি মেমরি ব্যবহার করছে তাই Chromium এটি বিরত রেখেছে।</translation>
 <translation id="9036189287518468038">Chromium অ্যাপ্লিকেশান লঞ্চার</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 33a4e54..f22ab04 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">L'extensió <ph name="EXTENSION_NAME" /> ha canviat la pàgina que es mostra quan inicieu Chromium.</translation>
 <translation id="2483889755041906834">A Chromium</translation>
 <translation id="2485422356828889247">Desinstal·la</translation>
-<translation id="2486653164587200256">Pot ser que Chromium no funcioni correctament perquè ja no és compatible amb Windows XP ni amb Windows Vista.</translation>
 <translation id="2527042973354814951">Reinicia Chromium per activar <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS no ha pogut sincronitzar les vostres dades perquè la informació d'inici de sessió del vostre compte no està actualitzada.</translation>
 <translation id="2572494885440352020">Aplicació auxiliar de Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Per fer que Chromium sigui més segur i més fàcil d'utilitzar, envia automàticament algunes dades del sistema i contingut de les pàgines a Google per ajudar a detectar les aplicacions i els llocs perillosos.</translation>
 <translation id="4567424176335768812">Heu iniciat la sessió com a <ph name="USER_EMAIL_ADDRESS" />. Ja podeu accedir a les vostres adreces d'interès, al vostre historial i a altres paràmetres en tots els dispositius en què hàgiu iniciat la sessió.</translation>
 <translation id="459535195905078186">Aplicacions de Chromium</translation>
-<translation id="4611246891205775468">Per visitar aquest lloc web, Chromium necessita permís per accedir al teu micròfon.</translation>
 <translation id="4621240073146040695">Gairebé heu acabat. Reinicieu Chromium per completar l'actualització.</translation>
 <translation id="4677944499843243528">Sembla que un altre procés de Chromium (<ph name="PROCESS_ID" />) està fent servir el perfil en un altre ordinador (<ph name="HOST_NAME" />). Chromium ha bloquejat el perfil perquè no es malmeti. Si esteu segur que no hi ha cap altre procés que utilitzi el perfil, podeu desbloquejar-lo i tornar a iniciar Chromium.</translation>
 <translation id="469338717132742108">Obtén ajuda per a Chromium OS</translation>
 <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="4714956846925717402">Accedeix a Chromium més de pressa</translation>
-<translation id="4825874709045178029">Per visitar aquest lloc web, Chromium necessita permís per accedir a la teva càmera.</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>
 <translation id="4987820182225656817">Els convidats poden utilitzar Chromium sense deixar-hi rastre.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium és un navegador web que executa les pàgines web i les aplicacions a gran velocitat. És ràpid, estable i fàcil d'utilitzar. Navegueu per Internet amb més seguretat amb protecció inserida a Chromium contra el programari maliciós i contra la pesca (suplantació d'identitat).</translation>
 <translation id="6475912303565314141">També controla la pàgina que es mostra quan inicieu Chromium.</translation>
 <translation id="6485906693002546646">Utilitzeu <ph name="PROFILE_EMAIL" /> per sincronitzar el contingut de Chromium. Per modificar la preferència de sincronització o per utilitzar Chromium sense cap compte de Google, dirigiu-vos a <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium necessita accés a la teva ubicació per compartir-la amb aquest lloc web.</translation>
 <translation id="6510925080656968729">Desinstal·la Chromium</translation>
-<translation id="6526111688217511984">Chromium necessita tenir accés a l'emmagatzematge per poder baixar fitxers.</translation>
 <translation id="6598877126913850652">Ves a la configuració de notificacions de Chromium</translation>
 <translation id="6676384891291319759">Accedeix a Internet</translation>
 <translation id="6717134281241384636">El vostre perfil no es pot utilitzar perquè es va crear amb una versió més recent de Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">S'acaba d'aplicar una actualització de seguretat especial per a Chromium; reinicieu el navegador ara perquè es faci efectiva (restaurarem les pestanyes).</translation>
 <translation id="761356813943268536">Chromium està utilitzant la càmera i el micròfon.</translation>
 <translation id="7617377681829253106">Chromium és millor que mai</translation>
-<translation id="7641113255207688324">Chromium no és el navegador predeterminat.</translation>
 <translation id="7729447699958282447">Chromium no ha pogut sincronitzar les dades perquè l'opció de sincronització no està disponible per al vostre domini.</translation>
 <translation id="7745317241717453663">Amb aquesta acció, se suprimiran les teves dades de navegació d'aquest dispositiu. Per recuperar les teves dades més endavant, inicia la sessió a Chromium com a <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">L'instal·lador no ha pogut crear un directori temporal. Comprova que hi ha espai lliure al disc i que tens permís per instal·lar el programari.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Instal·la Chromium al telèfon. T'enviarem un SMS al número de telèfon de recuperació del compte: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Ajudeu a millorar Chromium</translation>
 <translation id="8290862415967981663">Chromium ha bloquejat aquest fitxer perquè pot ser perillós.</translation>
-<translation id="8328596990138326317">Per visitar aquest lloc web, Chromium necessita permís per accedir a la teva càmera i al teu micròfon.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> abans utilitzava Chromium</translation>
 <translation id="8453117565092476964">L'arxiu d'instal·lació està malmès o no és vàlid. Torneu a baixar Chromium.</translation>
 <translation id="8493179195440786826">Chromium no està actualitzat</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 8b0e904..5e731cc 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -40,7 +40,6 @@
 <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>
 <translation id="2483889755041906834">V prohlížeči Chromium</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
-<translation id="2486653164587200256">Prohlížeč Chromium nemusí fungovat správně, protože v systémech Windows XP a Windows Vista již není podporován.</translation>
 <translation id="2527042973354814951">Chcete-li aktivovat plugin <ph name="PLUGIN_NAME" />, restartujte prohlížeč Chromium</translation>
 <translation id="2535480412977113886">Chromium OS nemůže synchronizovat data, protože vaše přihlašovací údaje k účtu jsou zastaralé.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Automatickým hlášením některých informací o systému a obsahu stránek do Googlu můžete pomoci rozpoznávat nebezpečné aplikace a weby a zvýšit tak bezpečnost prohlížeče Chromium a usnadnit jeho používání.</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="4611246891205775468">Chromium pro tento web potřebuje oprávnění k přístupu k mikrofonu.</translation>
 <translation id="4621240073146040695">Aktualizace je téměř hotova. Dokončíte ji restartováním prohlížeče 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>
 <translation id="469338717132742108">Pomoc se systémem Chromium OS</translation>
 <translation id="4708774505295300557">Prohlížeč Chromium 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 prohlížeče Chromium.</translation>
 <translation id="4714956846925717402">Mějte Chromium při ruce</translation>
-<translation id="4825874709045178029">Chromium pro tento web potřebuje oprávnění k přístupu k fotoaparátu.</translation>
 <translation id="4888717733111232871">Pravidlo příchozího provozu pro prohlížeč Chromium, které povolí provoz mDNS.</translation>
 <translation id="4943838377383847465">Chromium je v režimu na pozadí.</translation>
 <translation id="4987820182225656817">Hosté mohou Chromium používat, aniž by po nich zůstaly jakékoliv stopy.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium je webový prohlížeč, který spouští webové stránky a aplikace rychlostí blesku. Je rychlý a snadno se používá. Prohlížejte web bezpečněji díky ochraně proti malwaru a phishingu integrované v prohlížeči Chromium.</translation>
 <translation id="6475912303565314141">Také řídí, která stránka se zobrazí při spuštění prohlížeče Chromium.</translation>
 <translation id="6485906693002546646">Synchronizujete obsah a nastavení prohlížeče Chromium s účtem <ph name="PROFILE_EMAIL" />. Chcete-li možnosti synchronizace upravit nebo Chromium používat bez účtu Google, navštivte <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Prohlížeč Chromium potřebuje přístup k vaší poloze, aby ji mohl sdílet s tímto webem.</translation>
 <translation id="6510925080656968729">Odinstalovat Chromium</translation>
-<translation id="6526111688217511984">Aby bylo možné stahovat soubory, Chromium potřebuje přístup k úložišti.</translation>
 <translation id="6598877126913850652">Přejít na nastavení oznámení prohlížeče Chromium</translation>
 <translation id="6676384891291319759">Přístup k internetu</translation>
 <translation id="6717134281241384636">Nelze použít váš profil, protože byl vytvořen v novější verzi prohlížeče Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Právě byla nainstalována mimořádná bezpečnostní aktualizace prohlížeče Chromium. Aby se projevila, měli byste prohlížeč nyní restartovat (otevřené karty se automaticky obnoví).</translation>
 <translation id="761356813943268536">Chromium používá vaši kameru a mikrofon.</translation>
 <translation id="7617377681829253106">Prohlížeč Chromium je opět o něco lepší</translation>
-<translation id="7641113255207688324">Chromium není vaším výchozím prohlížečem.</translation>
 <translation id="7729447699958282447">Prohlížeč Chromium nemůže synchronizovat data, protože ve vaší doméně není k dispozici Synchronizace.</translation>
 <translation id="7745317241717453663">Ze zařízení budou smazány vaše údaje o prohlížení. Budete-li chtít své údaje později načíst, přihlaste se do prohlížeče Chromium jako <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Instalační soubor nemohl vytvořit dočasný adresář. Zkontrolujte prosím volné místo na disku a povolení instalovat software.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Nainstalujte si Chromium do telefonu. Zašleme vám SMS na toto telefonní číslo pro obnovení účtu: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Pomozte projekt Chromium vylepšit</translation>
 <translation id="8290862415967981663">Tento soubor může být nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation>
-<translation id="8328596990138326317">Chromium pro tento web potřebuje oprávnění k přístupu k fotoaparátu a mikrofonu.</translation>
 <translation id="8340674089072921962">Před vámi prohlížeč Chromium používal uživatel <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8453117565092476964">Archiv instalačního programu je poškozený nebo neplatný. Stáhněte prosím Chromium znovu.</translation>
 <translation id="8493179195440786826">Prohlížeč Chromium je zastaralý</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index 92f8791..5e58fd3d 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Udvidelsen "<ph name="EXTENSION_NAME" />" har ændret din startside i Chromium.</translation>
 <translation id="2483889755041906834">I Chromium</translation>
 <translation id="2485422356828889247">Afinstaller</translation>
-<translation id="2486653164587200256">Chromium fungerer muligvis ikke korrekt på grund af manglende understøttelse i Windows XP og Windows Vista.</translation>
 <translation id="2527042973354814951">Genstart Chromium for at aktivere <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS kunne ikke synkronisere dine data, fordi loginoplysningerne til din konto er forældede.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Du kan gøre Chromium mere sikker og lettere at bruge ved automatisk at sende nogle systemoplysninger og sideindhold til Google som en hjælp til at registrere skadelige apps og websites.</translation>
 <translation id="4567424176335768812">Du er logget ind som <ph name="USER_EMAIL_ADDRESS" />. Nu kan du få adgang til dine bogmærker, din historik og andre indstillinger på alle de enheder, hvor du er logget ind.</translation>
 <translation id="459535195905078186">Chromium-apps</translation>
-<translation id="4611246891205775468">Chromium skal have tilladelse til at bruge din mikrofon på dette website.</translation>
 <translation id="4621240073146040695">Næsten opdateret. Genstart Chromium for at afslutte opdateringen.</translation>
 <translation id="4677944499843243528">Profilen ser ud til at være i brug i en anden Chromium-proces (<ph name="PROCESS_ID" />) på en anden computer (<ph name="HOST_NAME" />). Chromium har låst profilen, så den ikke bliver beskadiget. Hvis du er sikker på, at ingen andre processer anvender denne profil, kan du fjerne blokeringen af profilen og genstarte Chromium.</translation>
 <translation id="469338717132742108">Få hjælp til Chromium OS</translation>
 <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="4714956846925717402">Kom hurtigere til Chromium</translation>
-<translation id="4825874709045178029">Chromium skal have tilladelse til at bruge dit kamera på dette website.</translation>
 <translation id="4888717733111232871">Indgående regel for Chromium om at tillade mDNS-trafik.</translation>
 <translation id="4943838377383847465">Chromium kører i baggrunden.</translation>
 <translation id="4987820182225656817">Gæster kan bruge Chromium uden at efterlade noget.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium er en webbrowser, der kører websider og applikationer med lynets hast. Den er hurtig, stabil og brugervenlig. Beskyttelse mod malware og phishing er indbygget i Chromium, så du kan søge mere sikkert på internettet.</translation>
 <translation id="6475912303565314141">Den styrer også, hvilken side der vises, når du åbner Chromium.</translation>
 <translation id="6485906693002546646">Du bruger <ph name="PROFILE_EMAIL" /> til at synkronisere dine Chromium-ting med. Gå til <ph name="SETTINGS_LINK" />, hvis du vil opdatere dine synkroniseringspræference eller bruge Chromium uden en Google-konto.</translation>
-<translation id="6505742536731484931">Chromium skal have adgang til din placering for at dele din placering med dette website.</translation>
 <translation id="6510925080656968729">Afinstaller Chromium</translation>
-<translation id="6526111688217511984">Chromium skal have lageradgang for at kunne downloade filer.</translation>
 <translation id="6598877126913850652">Gå til indstillinger for Chromium-underretninger</translation>
 <translation id="6676384891291319759">Få adgang til internettet</translation>
 <translation id="6717134281241384636">Din profil kan ikke bruges, da den stammer fra en nyere version af Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">En særlig sikkerhedsopdatering til Chromium blev netop anvendt. Du bør genstarte nu, så den kan træde i kraft (dine faner gendannes).</translation>
 <translation id="761356813943268536">Chromium bruger dit kamera og din mikrofon.</translation>
 <translation id="7617377681829253106">Chromium er blevet bedre</translation>
-<translation id="7641113255207688324">Chromium er ikke din standardbrowser.</translation>
 <translation id="7729447699958282447">Chromium kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængelig for dit domæne.</translation>
 <translation id="7745317241717453663">Denne handling sletter dine browserdata på denne enhed. Hvis du senere vil hente dine data igen, skal du logge ind på Chromium som <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Installationsprogrammet kunne ikke oprette en midlertidig mappe. Tjek, om der er tilstrækkelig diskplads, og om der er tilladelse til at installere software.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Installer Chromium på din telefon. Vi sender en sms til dit telefonnummer til gendannelse: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Hjælp med at gøre Chromium bedre</translation>
 <translation id="8290862415967981663">Denne fil kan være farlig, så Chromium har blokeret den.</translation>
-<translation id="8328596990138326317">Chromium skal have tilladelse til at bruge dit kamera og din mikrofon på dette website.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> brugte tidligere Chromium</translation>
 <translation id="8453117565092476964">Installationsarkivet er beskadiget eller ugyldigt. Download Chromium igen.</translation>
 <translation id="8493179195440786826">Chromium er forældet</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index 59d4a62..c22df2b 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Die beim Start von Chromium angezeigte Seite wurde durch die Erweiterung <ph name="EXTENSION_NAME" /> geändert.</translation>
 <translation id="2483889755041906834">In Chromium</translation>
 <translation id="2485422356828889247">Deinstallieren</translation>
-<translation id="2486653164587200256">Chromium funktioniert unter Umständen nicht ordnungsgemäß, da es unter Windows XP und Windows Vista nicht mehr unterstützt wird.</translation>
 <translation id="2527042973354814951">Chromium neu starten, um <ph name="PLUGIN_NAME" /> zu aktivieren</translation>
 <translation id="2535480412977113886">Chromium OS konnte Ihre Daten nicht synchronisieren, da die Anmeldedaten Ihres Kontos veraltet sind.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Sie können dazu beitragen, die Verwendung von Chromium sicherer und nutzerfreundlicher zu machen, indem Sie einige Systeminformationen und Seiteninhalte automatisch an Google senden. Google kann so schädliche Apps und Websites besser erfassen.</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="4611246891205775468">Chromium benötigt für diese Website die Berechtigung, auf Ihr Mikrofon zuzugreifen.</translation>
 <translation id="4621240073146040695">Fast fertig! Starten Sie Chromium neu, um die Aktualisierung abzuschließen.</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>
 <translation id="469338717132742108">Hilfe für Chromium OS aufrufen</translation>
 <translation id="4708774505295300557">Auf diesem Computer war zuvor ein Nutzer mit dem Konto <ph name="ACCOUNT_EMAIL_LAST" /> in Chromium angemeldet. Erstellen Sie einen neuen Chromium-Nutzer, um Ihre Daten getrennt zu verwenden.</translation>
 <translation id="4714956846925717402">Schneller Zugriff auf Chromium</translation>
-<translation id="4825874709045178029">Chromium benötigt für diese Website die Berechtigung, auf Ihre Kamera zuzugreifen.</translation>
 <translation id="4888717733111232871">Eingangsregel für die Zulassung von mDNS-Verkehr in Chromium</translation>
 <translation id="4943838377383847465">Chromium wird im Hintergrundmodus ausgeführt.</translation>
 <translation id="4987820182225656817">Gastnutzer können Chromium verwenden, ohne Daten zu hinterlassen.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium ist ein Webbrowser, der Webseiten und Apps in Sekundenschnelle lädt und dabei äußerst stabil und nutzerfreundlich ist. Dank des integrierten Malware- und Phishing-Schutzes können Sie bedenkenlos im Internet surfen.</translation>
 <translation id="6475912303565314141">Die Erweiterung legt auch die Seite fest, die beim Start von Chromium angezeigt wird.</translation>
 <translation id="6485906693002546646">Ihre E-Mail-Adresse <ph name="PROFILE_EMAIL" /> wird zurzeit für die Synchronisierung Ihrer Chromium-Inhalte verwendet. Wenn Sie Ihre Synchronisierungseinstellungen ändern oder Chromium ohne Google-Konto verwenden möchten, rufen Sie <ph name="SETTINGS_LINK" /> auf.</translation>
-<translation id="6505742536731484931">Chromium benötigt Zugriff auf Ihren Standort, um ihn mit dieser Website zu teilen.</translation>
 <translation id="6510925080656968729">Chromium deinstallieren</translation>
-<translation id="6526111688217511984">Chromium benötigt Speicherzugriff, um Dateien herunterladen zu können.</translation>
 <translation id="6598877126913850652">Zu Chromium-Benachrichtigungseinstellungen wechseln</translation>
 <translation id="6676384891291319759">Internetzugriff</translation>
 <translation id="6717134281241384636">Ihr Profil kann nicht verwendet werden, da es aus einer neueren Version von Chromium stammt.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Soeben wurde ein spezielles Sicherheitsupdate für Chromium installiert. Führen Sie einen Neustart durch, damit es wirksam wird. Ihre Tabs werden automatisch wiederhergestellt.</translation>
 <translation id="761356813943268536">Chromium verwendet Ihre Kamera und Ihr Mikrofon.</translation>
 <translation id="7617377681829253106">Chromium ist jetzt noch besser</translation>
-<translation id="7641113255207688324">Chromium ist nicht als Ihr Standardbrowser festgelegt.</translation>
 <translation id="7729447699958282447">Chromium konnte Ihre Daten nicht synchronisieren, da die Synchronisierung für Ihre Domain nicht zur Verfügung steht.</translation>
 <translation id="7745317241717453663">Dadurch werden Ihre Browserdaten von diesem Gerät gelöscht. Wenn Sie Ihre Daten später abrufen möchten, melden Sie sich als <ph name="USER_EMAIL" /> in Chromium an.</translation>
 <translation id="7747138024166251722">Das Installationsprogramm konnte kein temporäres Verzeichnis erstellen. Überprüfen Sie, ob freier Speicherplatz und die Rechte zum Installieren von Software vorhanden sind.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Installieren Sie Chromium auf Ihrem Smartphone. Wir senden Ihnen eine SMS an die Telefonnummer zur Kontowiederherstellung: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Chromium mit Ihrer Hilfe verbessern</translation>
 <translation id="8290862415967981663">Diese Datei ist eventuell schädlich und wurde von Chromium blockiert.</translation>
-<translation id="8328596990138326317">Chromium benötigt für diese Website die Berechtigung, auf Ihre Kamera und Ihr Mikrofon zuzugreifen.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> hat zuvor Chromium verwendet</translation>
 <translation id="8453117565092476964">Das Installationsarchiv ist beschädigt oder ungültig. Bitte laden Sie Chromium erneut herunter.</translation>
 <translation id="8493179195440786826">Chromium ist veraltet.</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 83ffc764..15c8b80 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Η επέκταση <ph name="EXTENSION_NAME" /> άλλαξε τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chromium.</translation>
 <translation id="2483889755041906834">Στο Chromium</translation>
 <translation id="2485422356828889247">Κατάργηση Εγκατάστασης</translation>
-<translation id="2486653164587200256">Το Chromium ενδέχεται να μην λειτουργεί σωστά, επειδή δεν υποστηρίζεται πια σε Windows XP και Windows Vista.</translation>
 <translation id="2527042973354814951">Επανεκκίνηση του Chromium για την ενεργοποίηση του <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Το Chromium OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή τα στοιχεία σύνδεσης στο λογαριασμό σας δεν είναι ενημερωμένα.</translation>
 <translation id="2572494885440352020">Πρόγραμμα βοήθειας Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Μπορείτε να βοηθήσετε να κάνουμε το Chromium πιο ασφαλές και εύχρηστο, αποστέλλοντας αυτόματα ορισμένες πληροφορίες συστήματος και περιεχόμενο σελίδων στην Google, για να διευκολυνθεί ο εντοπισμός επικίνδυνων εφαρμογών και ιστοτόπων.</translation>
 <translation id="4567424176335768812">Έχετε συνδεθεί ως <ph name="USER_EMAIL_ADDRESS" />. Τώρα μπορείτε να αποκτήσετε πρόσβαση στους σελιδοδείκτες, το ιστορικό και σε άλλες ρυθμίσεις από όλες τις συσκευές στις οποίες έχετε συνδεθεί.</translation>
 <translation id="459535195905078186">Εφαρμογές Chromium</translation>
-<translation id="4611246891205775468">Το Chromium χρειάζεται άδεια, για να αποκτήσει πρόσβαση στο μικρόφωνο για αυτόν τον ιστότοπο.</translation>
 <translation id="4621240073146040695">Η ενημέρωση σχεδόν ολοκληρώθηκε! Εκτελέστε ξανά το Chromium για να ολοκληρωθεί η ενημέρωση.</translation>
 <translation id="4677944499843243528">Το προφίλ φαίνεται ότι χρησιμοποιείται από άλλη διεργασία του Chromium (<ph name="PROCESS_ID" />) σε άλλο υπολογιστή (<ph name="HOST_NAME" />). Το Chromium έχει κλειδώσει το προφίλ, για να μην καταστραφεί. Αν είστε σίγουροι ότι το προφίλ δεν χρησιμοποιείται από κάποια άλλη διεργασία, μπορείτε να το ξεκλειδώσετε και να επανεκκινήσετε το Chromium.</translation>
 <translation id="469338717132742108">Λήψη βοήθειας σχετικά με το Chromium OS</translation>
 <translation id="4708774505295300557">Κάποιο άτομο συνδέθηκε προηγουμένως στο Chromium σε αυτόν τον υπολογιστή ως <ph name="ACCOUNT_EMAIL_LAST" />. Δημιουργήστε έναν νέο χρήστη του Chromium, για να διατηρείτε τις πληροφορίες σας ξεχωριστά.</translation>
 <translation id="4714956846925717402">Μεταβείτε ταχύτερα στο Chromium</translation>
-<translation id="4825874709045178029">Το Chromium χρειάζεται άδεια, για να αποκτήσει πρόσβαση στην κάμερα για αυτόν τον ιστότοπο.</translation>
 <translation id="4888717733111232871">Εισερχόμενος κανόνας για το Chromium για να επιτρέπεται η κυκλοφορία του mDNS.</translation>
 <translation id="4943838377383847465">Το Chromium εκτελείται στο παρασκήνιο.</translation>
 <translation id="4987820182225656817">Οι επισκέπτες μπορούν να χρησιμοποιούν το Chromium χωρίς να αφήνουν κανένα ίχνος.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Το Chromium είναι ένα πρόγραμμα περιήγησης ιστού που εκτελεί εφαρμογές και ιστοσελίδες με απίστευτη ταχύτητα. Είναι γρήγορο, σταθερό και εύχρηστο. Περιηγηθείτε στον ιστό με μεγαλύτερη ασφάλεια με την ενσωματωμένη προστασία από κακόβουλα προγράμματα και ηλεκτρονικό "ψάρεμα" (phishing).</translation>
 <translation id="6475912303565314141">Επίσης, ελέγχει τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chromium.</translation>
 <translation id="6485906693002546646">Χρησιμοποιείτε το προφίλ <ph name="PROFILE_EMAIL" /> για το συγχρονισμό του περιεχομένου σας στο Chromium. Για να ενημερώσετε τις προτιμήσεις συγχρονισμού ή για να χρησιμοποιήστε το Chromium χωρίς Λογαριασμό Google, μεταβείτε στην περιοχή <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Το Chromium χρειάζεται πρόσβαση στην τοποθεσία σας, για να την κοινοποιήσει σε αυτόν τον ιστότοπο.</translation>
 <translation id="6510925080656968729">Απεγκατάσταση Chromium</translation>
-<translation id="6526111688217511984">Το Chromium χρειάζεται πρόσβαση στο χώρο αποθήκευσης για τη λήψη αρχείων.</translation>
 <translation id="6598877126913850652">Μετάβαση στις ρυθμίσεις ειδοποιήσεων του Chromium</translation>
 <translation id="6676384891291319759">Πρόσβαση στο Διαδίκτυο</translation>
 <translation id="6717134281241384636">Δεν είναι δυνατή η χρήση του προφίλ σας επειδή προέρχεται από νεότερη έκδοση του Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Μόλις εφαρμόστηκε μια ειδική ενημέρωση ασφαλείας για το Chromium. Πρέπει να το επανεκκινήσετε τώρα για να τεθεί σε ισχύ (θα γίνει επαναφορά των καρτελών σας).</translation>
 <translation id="761356813943268536">Το Chromium χρησιμοποιεί την κάμερα και το μικρόφωνό σας.</translation>
 <translation id="7617377681829253106">Το Chromium έγινε ακόμα καλύτερο</translation>
-<translation id="7641113255207688324">Το Chromium δεν είναι το προεπιλεγμένο πρόγραμμα περιήγησης.</translation>
 <translation id="7729447699958282447">Το Chromium δεν κατάφερε να συγχρονίσει τα δεδομένα σας επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας.</translation>
 <translation id="7745317241717453663">Με αυτήν την ενέργεια θα διαγραφούν τα δεδομένα περιήγησης από αυτήν τη συσκευή. Για να ανακτήσετε τα δεδομένα σας αργότερα, συνδεθείτε στο Chromium ως <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Δεν ήταν δυνατή η δημιουργία ενός προσωρινού καταλόγου από το πρόγραμμα εγκατάστασης. Ελέγξτε τον κενό χώρο του δίσκου και το δικαίωμα εγκατάστασης του λογισμικού.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Εγκαταστήστε το Chromium στο τηλέφωνό σας. Θα στείλουμε ένα SMS στον αριθμό τηλεφώνου ανάκτησης του λογαριασμού σας: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Βοηθήστε μας να κάνουμε το Chromium καλύτερο</translation>
 <translation id="8290862415967981663">Αυτό το αρχείο ενδέχεται να είναι επικίνδυνο και έχει αποκλειστεί από το Chromium.</translation>
-<translation id="8328596990138326317">Το Chromium χρειάζεται άδεια, για να αποκτήσει πρόσβαση στην κάμερα και το μικρόφωνο για αυτόν τον ιστότοπο.</translation>
 <translation id="8340674089072921962">Η διεύθυνση <ph name="USER_EMAIL_ADDRESS" /> χρησιμοποιούσε το Chromium στο παρελθόν</translation>
 <translation id="8453117565092476964">Το αρχείο του προγράμματος εγκατάστασης είναι κατεστραμμένο ή μη έγκυρο. Κατεβάστε το Chromium ξανά.</translation>
 <translation id="8493179195440786826">Το Chromium δεν είναι ενημερωμένο</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index ccc5e26..b01f4b5 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">The extension "<ph name="EXTENSION_NAME" />" has changed the page that is shown when you start Chromium.</translation>
 <translation id="2483889755041906834">In Chromium</translation>
 <translation id="2485422356828889247">Uninstall</translation>
-<translation id="2486653164587200256">Chromium may not function correctly because it is no longer supported on Windows XP or Windows Vista.</translation>
 <translation id="2527042973354814951">Restart Chromium to enable <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS could not sync your data because your account sign-in details are out of date.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">You can help make Chromium safer and easier to use by automatically sending some system information and page content to Google to help detect dangerous apps and sites.</translation>
 <translation id="4567424176335768812">You're signed in as <ph name="USER_EMAIL_ADDRESS" />. Now you can access your bookmarks, history and other settings on all your signed in devices.</translation>
 <translation id="459535195905078186">Chromium Apps</translation>
-<translation id="4611246891205775468">Chromium needs permission to access your microphone for this site.</translation>
 <translation id="4621240073146040695">Nearly up to date! Relaunch Chromium to finish updating.</translation>
 <translation id="4677944499843243528">The profile appears to be in use by another Chromium process (<ph name="PROCESS_ID" />) on another computer (<ph name="HOST_NAME" />). Chromium has locked the profile so that it doesn't get corrupted. If you are sure that no other processes are using this profile, you can unlock the profile and relaunch Chromium.</translation>
 <translation id="469338717132742108">Get help with Chromium OS</translation>
 <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="4714956846925717402">Get to Chromium faster</translation>
-<translation id="4825874709045178029">Chromium needs permission to access your camera for this site.</translation>
 <translation id="4888717733111232871">Inbound rule for Chromium to allow mDNS traffic.</translation>
 <translation id="4943838377383847465">Chromium is in background mode.</translation>
 <translation id="4987820182225656817">Guests can use Chromium without leaving anything behind.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium is a web browser that runs webpages and applications with lightning speed. It's fast, stable, and easy to use. Browse the web more safely with malware and phishing protection built into Chromium.</translation>
 <translation id="6475912303565314141">It also controls what page is shown when you start Chromium.</translation>
 <translation id="6485906693002546646">You're using <ph name="PROFILE_EMAIL" /> to sync your Chromium stuff. To update your sync preference or to use Chromium without a Google account, visit <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium needs access to your location to share your location with this site.</translation>
 <translation id="6510925080656968729">Uninstall Chromium</translation>
-<translation id="6526111688217511984">Chromium needs storage access to download files.</translation>
 <translation id="6598877126913850652">Go to Chromium notification settings</translation>
 <translation id="6676384891291319759">Access the Internet</translation>
 <translation id="6717134281241384636">Your profile can not be used because it is from a newer version of Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">A special security update for Chromium was just applied; you should restart now for it to take effect (we'll restore your tabs).</translation>
 <translation id="761356813943268536">Chromium is using your camera and microphone.</translation>
 <translation id="7617377681829253106">Chromium just got better</translation>
-<translation id="7641113255207688324">Chromium isn't your default browser.</translation>
 <translation id="7729447699958282447">Chromium could not sync your data because Sync is not available for your domain.</translation>
 <translation id="7745317241717453663">This will delete your browsing data from this device. To retrieve your data later, sign in to Chromium as <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">The installer couldn't create a temporary directory. Please check for free disk space and permission to install software.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Install Chromium on your phone. We’ll send an SMS to your account recovery phone number: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Help make Chromium better</translation>
 <translation id="8290862415967981663">This file may be dangerous, so Chromium has blocked it.</translation>
-<translation id="8328596990138326317">Chromium needs permission to access your camera and microphone for this site.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> was previously using Chromium</translation>
 <translation id="8453117565092476964">The installer archive is corrupted or invalid. Please download Chromium again.</translation>
 <translation id="8493179195440786826">Chromium is Out of Date</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index bf5343d..ff02ee6 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">La extensión "<ph name="EXTENSION_NAME" />" cambió la página que se muestra al iniciar Chromium.</translation>
 <translation id="2483889755041906834">En Chromium</translation>
 <translation id="2485422356828889247">Desinstalación</translation>
-<translation id="2486653164587200256">Es posible que Chromium no funcione correctamente porque ya no es compatible con Windows XP ni Windows Vista.</translation>
 <translation id="2527042973354814951">Reiniciar Chromium para habilitar <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">El Sistema operativo Chromium no pudo sincronizar los datos porque la información de acceso de la cuenta está desactualizada.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Puedes ayudar a que Chromium sea más seguro y fácil de usar si envías de forma automática información del sistema y contenido de la página a Google para ayudar a detectar apps y sitios peligrosos.</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="4611246891205775468">Chromium necesita permiso para acceder a tu micrófono para este sitio.</translation>
 <translation id="4621240073146040695">Chromium está casi actualizado. Reinícialo para completar la actualización.</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>
 <translation id="469338717132742108">Obtener ayuda con el Sistema operativo Chromium</translation>
 <translation id="4708774505295300557">Alguien accedió anteriormente a Chromium en esta computadora como <ph name="ACCOUNT_EMAIL_LAST" />. Crea un usuario de Chromium nuevo para mantener tu información por separado.</translation>
 <translation id="4714956846925717402">Cómo acceder a Chromium más rápido</translation>
-<translation id="4825874709045178029">Chromium necesita permiso para acceder a tu cámara para este sitio.</translation>
 <translation id="4888717733111232871">Regla de entrada para que Chromium permita el tráfico mDNS.</translation>
 <translation id="4943838377383847465">Chromium está en modo de segundo plano</translation>
 <translation id="4987820182225656817">Los invitados pueden utilizar Chromium sin dejar nada detrás.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium es un navegador web que ejecuta páginas web y aplicaciones con la velocidad de la luz. Es rápido, estable y fácil de usar. Navega por la Web con seguridad y protección integrada contra software mailicioso y suplantación de identidad.</translation>
 <translation id="6475912303565314141">También controla qué página se muestra al iniciar Chromium.</translation>
 <translation id="6485906693002546646">Estás utilizando <ph name="PROFILE_EMAIL" /> para sincronizar los datos de Chromium. Si quieres actualizar las preferencias de sincronización o utilizar Chromium sin una cuenta de Google, accede a <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium necesita acceso a tu ubicación para compartirla con este sitio.</translation>
 <translation id="6510925080656968729">Desinstalar Chromium</translation>
-<translation id="6526111688217511984">Chromium necesita acceder al almacenamiento para descargar archivos.</translation>
 <translation id="6598877126913850652">Ir a la configuración de notificaciones Chromium</translation>
 <translation id="6676384891291319759">Acceder a Internet</translation>
 <translation id="6717134281241384636">Tu perfil no se puede utilizar porque proviene de una versión más actualizada de Chromium. Es posible que algunas características no estén disponibles. Especifica un directorio de perfil diferente o utiliza una versión más reciente de Chromium.</translation>
@@ -192,7 +187,6 @@
 <translation id="7577193603922410712">Se acaba de instalar una actualización de seguridad especial para Chromium. Reinícialo para que se apliquen los cambios (se restaurarán tus pestañas).</translation>
 <translation id="761356813943268536">Chromium está usando tu cámara y tu micrófono.</translation>
 <translation id="7617377681829253106">Chromium mejorado</translation>
-<translation id="7641113255207688324">Chromium no es el navegador predeterminado.</translation>
 <translation id="7729447699958282447">Chromium no pudo sincronizar los datos porque la sincronización no está disponible para el dominio.</translation>
 <translation id="7745317241717453663">Esta acción borrará tus datos de navegación de este dispositivo. Si más adelante deseas recuperarlos, accede a tu cuenta en Chromium como <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">El instalador no pudo crear un directorio temporal. Verifique si hay espacio disponible en el disco y cuenta con permiso para instalar software.</translation>
@@ -211,7 +205,6 @@
 <translation id="8222496066431494154">Instala Chromium en el teléfono. Te enviaremos un SMS al número de teléfono de recuperación de la cuenta: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Ayudar a mejorar Chromium</translation>
 <translation id="8290862415967981663">Chromium bloqueó este archivo porque podría ser peligroso.</translation>
-<translation id="8328596990138326317">Chromium necesita permiso para acceder a tu cámara y micrófono para este sitio.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> usaba Chromium anteriormente</translation>
 <translation id="8453117565092476964">El instalador está dañado o no es válido. Descarga Chromium nuevamente.</translation>
 <translation id="8493179195440786826">Chromium no actualizado</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index dcb5a13..023ff859 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">La extensión <ph name="EXTENSION_NAME" /> ha cambiado la página que se muestra al iniciar Chromium.</translation>
 <translation id="2483889755041906834">En Chromium</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
-<translation id="2486653164587200256">Es posible que Chromium no funcione correctamente porque ya no es compatible con Windows XP o Windows Vista.</translation>
 <translation id="2527042973354814951">Reiniciar Chromium para habilitar <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS no ha podido sincronizar los datos porque la información de inicio de sesión de tu cuenta está obsoleta.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Ayuda a que Chromium sea más seguro y se pueda utilizar más fácilmente enviando de forma automática información del sistema y contenido de las páginas a Google para que pueda detectar aplicaciones y sitios web peligrosos.</translation>
 <translation id="4567424176335768812">Has iniciado sesión como <ph name="USER_EMAIL_ADDRESS" />. Ahora puedes acceder a tus marcadores, a tu historial y a otras opciones en todos los dispositivos en los que hayas iniciado sesión.</translation>
 <translation id="459535195905078186">Aplicaciones de Chromium</translation>
-<translation id="4611246891205775468">Chromium necesita permiso para acceder al micrófono en este sitio web.</translation>
 <translation id="4621240073146040695">Chromium casi ha terminado de actualizarse. Reinícialo para completar la actualización.</translation>
 <translation id="4677944499843243528">Parece que otro proceso de Chromium (<ph name="PROCESS_ID" />) está utilizando el perfil en otro ordenador (<ph name="HOST_NAME" />). Chromium ha bloqueado el perfil para que no se dañe. Si estás seguro de que ningún otro proceso está utilizando este perfil, puedes desbloquearlo y volver a iniciar Chromium.</translation>
 <translation id="469338717132742108">Obtener ayuda de Chromium OS</translation>
 <translation id="4708774505295300557">Otro usuario ha iniciado sesión anteriormente en Chromium con la cuenta <ph name="ACCOUNT_EMAIL_LAST" /> a través de este ordenador. Debes crear un usuario de Chromium para proteger tu información.</translation>
 <translation id="4714956846925717402">Accede a Chromium más rápido</translation>
-<translation id="4825874709045178029">Chromium necesita permiso para acceder a la cámara en este sitio web.</translation>
 <translation id="4888717733111232871">Regla entrante para que Chromium permita tráfico mDNS.</translation>
 <translation id="4943838377383847465">Chromium está en modo de segundo plano.</translation>
 <translation id="4987820182225656817">Los invitados pueden utilizar Chromium sin dejar nada atrás.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium es un navegador web que ejecuta páginas web y aplicaciones a gran velocidad. Es rápido, estable y fácil de utilizar. Chromium te permite navegar en la Web de forma más segura, ya que incluye protección contra software malicioso y phishing.</translation>
 <translation id="6475912303565314141">También controla qué página se muestra al iniciar Chromium.</translation>
 <translation id="6485906693002546646">Estás utilizando <ph name="PROFILE_EMAIL" /> para sincronizar tu contenido de Chromium. Para actualizar tus preferencias de sincronización o utilizar Chromium sin una cuenta de Google, accede a <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium necesita acceder a tu ubicación para compartirla con este sitio web.</translation>
 <translation id="6510925080656968729">Desinstalar Chromium</translation>
-<translation id="6526111688217511984">Chromium necesita acceso de almacenamiento para descargar archivos.</translation>
 <translation id="6598877126913850652">Ir a los ajustes de notificaciones de Chromium</translation>
 <translation id="6676384891291319759">Accede a Internet.</translation>
 <translation id="6717134281241384636">No se puede utilizar tu perfil porque procede de una versión de Chromium más actualizada.
@@ -201,7 +196,6 @@
 <translation id="7577193603922410712">Se acaba de instalar una actualización de seguridad especial para Chromium. Reinicia ahora para que se apliquen los cambios. No te preocupes, restauraremos tus pestañas.</translation>
 <translation id="761356813943268536">Chromium está utilizando la cámara y el micrófono.</translation>
 <translation id="7617377681829253106">Chromium mejor que nunca</translation>
-<translation id="7641113255207688324">Chromium no es tu navegador predeterminado.</translation>
 <translation id="7729447699958282447">Chromium no ha podido sincronizar los datos porque la función de sincronización no está disponible para tu dominio.</translation>
 <translation id="7745317241717453663">Se eliminarán tus datos de navegación de este dispositivo. Para recuperar tus datos en otro momento, inicia sesión en Chromium como <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">El programa de instalación no ha podido crear un directorio temporal. Comprueba si hay espacio libre en el disco y si tienes autorización para instalar el software.</translation>
@@ -220,7 +214,6 @@
 <translation id="8222496066431494154">Instala Chromium en tu teléfono. Te enviaremos un SMS al número de recuperación de la cuenta: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Ayuda a mejorar Chromium</translation>
 <translation id="8290862415967981663">Es posible que este archivo sea peligroso, por lo que Chromium lo ha bloqueado.</translation>
-<translation id="8328596990138326317">Chromium necesita permiso para acceder a la cámara y al micrófono en este sitio web.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> usaba Chromium anteriormente</translation>
 <translation id="8453117565092476964">El archivo de instalación está dañado o no es válido. Vuelve a descargar Chromium.</translation>
 <translation id="8493179195440786826">Chromium no está actualizado</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index c0eeeec..8fef109 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Laiendus „<ph name="EXTENSION_NAME" />” muutis seda, milline leht kuvatakse Chromiumi käivitamisel.</translation>
 <translation id="2483889755041906834">Chromiumis</translation>
 <translation id="2485422356828889247">Desinstalli</translation>
-<translation id="2486653164587200256">Chromium ei pruugi õigesti töötada, kuna seda ei toetata enam Windows XP-s ega Windows Vistas.</translation>
 <translation id="2527042973354814951">Taaskäivitage pistikprogrammi <ph name="PLUGIN_NAME" /> lubamiseks Chromium</translation>
 <translation id="2535480412977113886">Chromium OS ei saanud andmeid sünkroonida, sest teie konto sisselogimisandmed on aegunud.</translation>
 <translation id="2572494885440352020">Chromiumi abiline</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Saate aidata muuta Chromiumi turvalisemaks ja hõlpsamini kasutatavaks, kui lubate saata Google'ile automaatselt teatud süsteemiteavet ning lehesisu, mis aitab tuvastada ohtlikke rakendusi ja saite.</translation>
 <translation id="4567424176335768812">Olete sisse logitud aadressiga <ph name="USER_EMAIL_ADDRESS" />. Nüüd on teil juurdepääs oma järjehoidjatele, ajaloole ja muudele seadetele kõigis seadmetes, kuhu olete sisse logitud.</translation>
 <translation id="459535195905078186">Chromiumi rakendused</translation>
-<translation id="4611246891205775468">Chromium vajab selle saidi puhul luba, et teie mikrofonile juurde pääseda.</translation>
 <translation id="4621240073146040695">Rakendus on peaaegu ajakohane! Värskenduse lõpuleviimiseks taaskäivitage Chromium.</translation>
 <translation id="4677944499843243528">Näib, et profiili kasutab Chromiumi muu protsess (<ph name="PROCESS_ID" />) mingis muus arvutis (<ph name="HOST_NAME" />). Chromium on profiili lukustanud, et seda ei saaks rikkuda. Kui olete kindel, et ükski muu protsess seda profiili ei kasuta, saate profiili avada ja Chromiumi taaskäivitada.</translation>
 <translation id="469338717132742108">Chromium OS-i puhul abi hankimine</translation>
 <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="4714956846925717402">Chromiumi kiirem avamine</translation>
-<translation id="4825874709045178029">Chromium vajab selle saidi puhul luba, et teie kaamerale juurde pääseda.</translation>
 <translation id="4888717733111232871">Sissetuleku reegel Chromiumile mDNS-liikluse lubamiseks.</translation>
 <translation id="4943838377383847465">Chromium on taustarežiimis.</translation>
 <translation id="4987820182225656817">Külastajad saavad kasutada Chromiumi jälgi jätmata.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium on veebibrauser, mis avab veebilehti ja rakendusi välgukiirusel. See on kiire, stabiilne ja hõlpsasti kasutatav. Sirvige veebi turvalisemalt tänu Chromiumi sisseehitatud pahavara- ja andmepüügikaitsele.</translation>
 <translation id="6475912303565314141">Lisaks juhib see seda, mis leht kuvatakse Chromiumi käivitamisel.</translation>
 <translation id="6485906693002546646">Kasutate Chromiumi kraami sünkroonimiseks kontot <ph name="PROFILE_EMAIL" />. Sünkroonimiseelistuste värskendamiseks või Chromiumi kasutamiseks ilma Google'i kontota avage <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium vajab juurdepääsu teie asukohale, et seda selle saidiga jagada.</translation>
 <translation id="6510925080656968729">Desinstalli Chromium</translation>
-<translation id="6526111688217511984">Chromium vajab failide allalaadimiseks juurdepääsu salvestusruumile.</translation>
 <translation id="6598877126913850652">Ava Chromiumi märguandeseaded</translation>
 <translation id="6676384891291319759">Pääs Internetti</translation>
 <translation id="6717134281241384636">Teie profiili ei saa kasutada, kuna see pärineb Chromiumi uuemast versioonist.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Äsja rakendati Chromiumi spetsiaalne turvavärskendus. Selle jõustamiseks taaskäivitage brauser (teie vahelehed taastatakse).</translation>
 <translation id="761356813943268536">Chromium kasutab kaamerat ja mikrofoni.</translation>
 <translation id="7617377681829253106">Chromium muutus just paremaks</translation>
-<translation id="7641113255207688324">Chromium ei ole teie vaikebrauser.</translation>
 <translation id="7729447699958282447">Chromium ei saa teie andmeid sünkroonida, sest teie domeenil pole sünkroonimine saadaval.</translation>
 <translation id="7745317241717453663">See kustutab sellest seadmest teie sirvimisandmed. Hiljem oma andmete toomiseks logige Chromiumi sisse kasutajana <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Installija ei suutnud luua ajutist kataloogi. Palun kontrollige vaba kettaruumi ja tarkvara installimise loa olemasolu.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Installige Chromium oma telefoni. Saadame SMS-i teie konto taastamise telefoninumbrile: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Aidake muuta Chromiumi paremaks</translation>
 <translation id="8290862415967981663">Chromium blokeeris faili, kuna see võib olla ohtlik.</translation>
-<translation id="8328596990138326317">Chromium vajab selle saidi puhul luba, et teie kaamerale ja mikrofonile juurde pääseda.</translation>
 <translation id="8340674089072921962">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> kasutas varem Chromiumi</translation>
 <translation id="8453117565092476964">Installeri arhiiv on rikutud või kehtetu. Laadige Chromium uuesti alla.</translation>
 <translation id="8493179195440786826">Chromium on aegunud</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 1ce381fe..655a894 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">‏افزونه «<ph name="EXTENSION_NAME" />»، صفحه‌ای را تغییر داده است که هنگام راه‌اندازی Chromium نشان داده می‌شود.</translation>
 <translation id="2483889755041906834">‏در Chromium</translation>
 <translation id="2485422356828889247">حذف نصب</translation>
-<translation id="2486653164587200256">‏Chromium ممکن است درست کار نکند زیرا دیگر در Windows XP یا Windows Vista پشتیبانی نمی‌شود.</translation>
 <translation id="2527042973354814951">‏برای فعال کردن <ph name="PLUGIN_NAME" />، ‏Chromium را راه‌اندازی مجدد کنید</translation>
 <translation id="2535480412977113886">‏سیستم‌عامل Chromium قادر به همگام‌سازی داده‌های شما نبود زیرا جزئیات ورود به حساب شما به‌روز نیست.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -103,13 +102,11 @@
 <translation id="4488554488975128561">‏می‌توانید با ارسال خودکار برخی از اطلاعات سیستم و محتوای صفحه به Google‏، Chromium را ایمن‌تر و آسان‌تر کنید. Google از این اطلاعات برای شناسایی برنامه‌ها و سایت‌های خطرناک استفاده می‌کند.</translation>
 <translation id="4567424176335768812">با حساب <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شده‌اید. اکنون در همه دستگاه‌هایی که با آنها به سیستم وارد شده‌اید می‌توانید به نشانک‌ها، سابقه و دیگر تنظیماتتان دسترسی داشته باشید.</translation>
 <translation id="459535195905078186">‏برنامه‌های Chromium</translation>
-<translation id="4611246891205775468">‏Chromium برای این سایت به مجوز دسترسی به میکروفون نیاز دارد.</translation>
 <translation id="4621240073146040695">‏تقریباً به‌روز شده است! برای تمام کردن به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید.</translation>
 <translation id="4677944499843243528">‏ظاهراً نمایه توسط فرآیند Chromium دیگری (<ph name="PROCESS_ID" />) در رایانه‌ای دیگر (<ph name="HOST_NAME" />) در حال استفاده است. Chromium نمایه را قفل کرده است تا خراب نشود. اگر مطمئنید فرآیندهای دیگری از این نمایه استفاده نمی‌کنند، می‌توانید قفل نمایه را باز کنید و Chromium را مجدداً راه‌اندازی نمایید.</translation>
 <translation id="469338717132742108">‏دریافت کمک برای سیستم عامل Chromium</translation>
 <translation id="4708774505295300557">‏شخصی قبلاً به‌عنوان <ph name="ACCOUNT_EMAIL_LAST" /> به سیستم Chromium در این رایانه وارد شده است. برای اینکه اطلاعاتتان جدا حفظ شود، لطفاً کاربر Chrome جدیدی ایجاد کنید.</translation>
 <translation id="4714956846925717402">‏دسترسی سریع‌تر به Chromium</translation>
-<translation id="4825874709045178029">‏Chromium برای این سایت به مجوز دسترسی به دوربین نیاز دارد.</translation>
 <translation id="4888717733111232871">‏قانون ترافیک ورودی برای Chromium جهت اجازه به ترافیک mDNS.</translation>
 <translation id="4943838377383847465">‏Chromium در حالت پس‌زمینه است.</translation>
 <translation id="4987820182225656817">‏مهمان‌ها می توانند از Chromium استفاده کنند بدون این‌که اثری از خود به جا بگذارند.</translation>
@@ -155,9 +152,7 @@
 <translation id="6403826409255603130">‏Chromium یک مرورگر وب است که صفحات وب و برنامه‌ها را با سرعت بسیار زیاد اجرا می‌کند. این مرورگر خیلی سریع، پایدار و دارای کاربرد آسان است. با محافظت در مقابل بدافزار و فیشینگ طراحی شده در داخل Chromium، با امنیت بیشتری وب را مرور کنید.</translation>
 <translation id="6475912303565314141">‏این برنامه همچنین صفحه‌ای را که هنگام راه‌اندازی Chromium نشان داده می‌شود، کنترل می‌کند.</translation>
 <translation id="6485906693002546646">‏شما از <ph name="PROFILE_EMAIL" /> برای همگام‌سازی موارد Chromium خودتان استفاده می‌کنید. برای به‌روزرسانی تنظیمات ترجیحی همگام‌سازی‌تان یا استفاده از Chromium بدون حساب Google، به <ph name="SETTINGS_LINK" /> مراجعه کنید.</translation>
-<translation id="6505742536731484931">‏Chromium برای اشتراک‌گذاری مکانتان با این سایت باید به مکانتان دسترسی داشته باشد.</translation>
 <translation id="6510925080656968729">‏حذف نصب Chromium </translation>
-<translation id="6526111688217511984">‏Chromium برای بارگیری فایل‌ها باید به حافظه دسترسی داشته باشد.</translation>
 <translation id="6598877126913850652">‏رفتن به تنظیمات اعلان Chromium</translation>
 <translation id="6676384891291319759">دسترسی به اینترنت</translation>
 <translation id="6717134281241384636">‏از نمایهٔ شما نمی‌توان استفاده کرد زیرا دارای نسخه جدیدتری از Chromium است.
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">‏لحظاتی پیش به‌روزرسانی امنیتی ویژه برای Chromium اعمال شد؛ برای فعال شدن آن باید هم‌اکنون راه‌اندازی مجدد کنید (برگه‌هایتان را بازیابی خواهیم کرد).</translation>
 <translation id="761356813943268536">‏Chromium درحال استفاده از دوربین و میکروفون شما است.</translation>
 <translation id="7617377681829253106">‏Chromium اکنون بهتر شده است</translation>
-<translation id="7641113255207688324">‏Chromium مرورگر پیش‌فرض شما نیست.</translation>
 <translation id="7729447699958282447">‏Chromium قادر به همگام‌سازی داده‌های شما نبود زیرا همگام‌سازی برای دامنه شما قابل دسترسی نیست.</translation>
 <translation id="7745317241717453663">‏این کار داده‌های محصول مرورتان را از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> به سیستم Chromium وارد شوید.</translation>
 <translation id="7747138024166251722">نصب‌کننده نتوانست دایرکتوری موقت ایجاد کند. لطفاً فضای خالی دیسک و اجازه نصب نرم‌افزار را بررسی کنید.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">‏Chromium را در تلفنتان نصب کنید. پیامکی به شماره تلفن بازیابی حساب شما ارسال خواهیم کرد: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">‏به بهبود Chromium کمک کنید</translation>
 <translation id="8290862415967981663">‏این فایل ممکن است خطرناک باشد، بنابراین Chromium آن را مسدود کرده است.</translation>
-<translation id="8328596990138326317">‏Chromium به مجوز دسترسی به دوربین و میکروفون برای این سایت نیاز دارد.</translation>
 <translation id="8340674089072921962">‏<ph name="USER_EMAIL_ADDRESS" /> قبلاً از Chromium استفاده می‌کرد</translation>
 <translation id="8453117565092476964">‏بایگانی نصب‌کننده خراب یا نامعتبر است. لطفاً Chromium را دوباره را بارگیری کنید.</translation>
 <translation id="8493179195440786826">‏نسخه Chromium قدیمی است</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index f8e1dc5..178e8c5 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Laajennus <ph name="EXTENSION_NAME" /> on vaihtanut Chromiumin aloitussivun.</translation>
 <translation id="2483889755041906834">Chromiumissa</translation>
 <translation id="2485422356828889247">Poista</translation>
-<translation id="2486653164587200256">Chromium ei välttämättä toimi oikein, koska se ei enää tue Windows XP:tä tai Windows Vistaa.</translation>
 <translation id="2527042973354814951">Käynnistä Chromium uudelleen, jotta <ph name="PLUGIN_NAME" /> voidaan ottaa käyttöön.</translation>
 <translation id="2535480412977113886">Chromium-käyttöjärjestelmä ei voi synkronoida tietoja, sillä tilin kirjautumistiedot ovat vanhentuneet.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Voit auttaa meitä kehittämään Chromiumin turvallisuutta ja käytettävyyttä lähettämällä automaattisesti joitain järjestelmän tietoja ja sivun sisältöjä Googlelle. Näin autat havaitsemaan vaarallisia sovelluksia ja sivustoja.</translation>
 <translation id="4567424176335768812">Olet kirjautunut Chromeen tilillä <ph name="USER_EMAIL_ADDRESS" />. Nyt voit käyttää kirjanmerkkejäsi, historiaa ja muita asetuksia kaikilla laitteilla, joihin olet kirjautunut.</translation>
 <translation id="459535195905078186">Chromium-sovellukset</translation>
-<translation id="4611246891205775468">Chromium tarvitsee oikeuden käyttää mikrofoniasi tällä sivustolla.</translation>
 <translation id="4621240073146040695">Melkein valmista. Viimeistele päivitys käynnistämällä Chromium uudelleen.</translation>
 <translation id="4677944499843243528">Profiili näyttäisi olevan toisen Chromium-prosessin (<ph name="PROCESS_ID" />) käytössä toisella tietokoneella (<ph name="HOST_NAME" />). Chromium on lukinnut profiilin, jotta se ei vioitu. Jos olet varma, että mikään toinen prosessi ei käytä tätä profiilia, voit poistaa profiilin lukituksen ja käynnistää Chromiumin uudelleen.</translation>
 <translation id="469338717132742108">Ohjeita Chromium-käyttöjärjestelmän käyttöön</translation>
 <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="4714956846925717402">Avaa Chromium nopeammin</translation>
-<translation id="4825874709045178029">Chromium tarvitsee oikeuden käyttää kameraasi tällä sivustolla.</translation>
 <translation id="4888717733111232871">Chromiumin saapuvien yhteyksien sääntö, joka sallii mDNS-liikenteen.</translation>
 <translation id="4943838377383847465">Chromium on käynnissä taustalla</translation>
 <translation id="4987820182225656817">Vierailijat voivat käyttää Chromiumia jälkiä jättämättä.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium on selain, jolla verkkosivut ja sovellukset toimivat salamannopeasti. Se on nopea, vakaa ja helppokäyttöinen. Chromiumin sisäänrakennettu haittaohjelma- ja tietojenkalastelusuojaus tekevät verkkoselauksesta turvallisempaa.</translation>
 <translation id="6475912303565314141">Määrittää myös Chromiumin aloitussivun.</translation>
 <translation id="6485906693002546646">Synkronoit Chromiumin tietosi osoitteella <ph name="PROFILE_EMAIL" />. Voit vaihtaa synkronoinnin asetuksia tai siirtyä käyttämään Chromiumia ilman Google-tiliä käymällä <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium tarvitsee oikeuden käyttää sijaintiasi, jotta se voidaan jakaa tämän sivuston kanssa.</translation>
 <translation id="6510925080656968729">Poista Chromium</translation>
-<translation id="6526111688217511984">Chromium tarvitsee tallennustilan käyttöoikeuden tiedostojen lataamiseen.</translation>
 <translation id="6598877126913850652">Siirry Chromiumin ilmoitusasetuksiin</translation>
 <translation id="6676384891291319759">Käytä internetiä</translation>
 <translation id="6717134281241384636">Profiiliasi ei voi käyttää, sillä se on peräisin Chromiumin uudemmasta versiosta.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Chromiumin tärkeä tietoturvapäivitys on asennettu. Käynnistä se uudelleen, niin päivitys otetaan käyttöön (avoimet välilehdet palautetaan).</translation>
 <translation id="761356813943268536">Chromium käyttää kameraasi ja mikrofoniasi.</translation>
 <translation id="7617377681829253106">Chromium on nyt entistä parempi</translation>
-<translation id="7641113255207688324">Chromium ei ole oletusselain.</translation>
 <translation id="7729447699958282447">Chromium ei voinut synkronoida tietoja, koska synkronointi ei ole käytettävissä verkkotunnuksessasi.</translation>
 <translation id="7745317241717453663">Tämä poistaa selaustiedot pysyvästi laitteelta. Jos haluat palauttaa tiedot myöhemmin, kirjaudu Chromiumiin käyttäjänä <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Asennusohjelma ei pystynyt luomaan väliaikaista hakemistoa. Tarkista, että käytettävissä on riittävästi levytilaa ja että sinulla on oikeus asentaa ohjelmia.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Asenna Chromium puhelimellesi. Lähetämme tekstiviestin palauttamisen puhelinnumeroosi: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Auta parantamaan Chromiumia</translation>
 <translation id="8290862415967981663">Tämä tiedosto voi olla vaarallinen, joten Chromium on estänyt sen.</translation>
-<translation id="8328596990138326317">Chromium tarvitsee oikeuden käyttää kameraasi ja mikrofoniasi tällä sivustolla.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> käytti aiemmin Chromiumia</translation>
 <translation id="8453117565092476964">Asennusarkisto on virheellinen. Lataa Chromium uudelleen.</translation>
 <translation id="8493179195440786826">Chromium on vanhentunut</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index 2c6b152..5a37f87 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Binago ng extension na "<ph name="EXTENSION_NAME" />" ang ipinapakitang page kapag sinimulan mo ang Chromium.</translation>
 <translation id="2483889755041906834">Sa Chromium</translation>
 <translation id="2485422356828889247">I-uninstall</translation>
-<translation id="2486653164587200256">Maaaring hindi gumana nang maayos ang Chromium dahil hindi na ito sinusuportahan sa Windows XP o Windows Vista.</translation>
 <translation id="2527042973354814951">I-restart ang Chromium upang ma-enable ang <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Hindi ma-sync ng Chromium OS ang iyong data dahil hindi napapanahon ang mga detalye sa pag-sign in sa iyong account.</translation>
 <translation id="2572494885440352020">Helper ng Chromium</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Makakatulong kang gawing mas ligtas at madaling gamitin ang Chromium sa pamamagitan ng awtomatikong pagpapadala ng ilang impormasyon ng system at content ng page sa Google upang makatulong na tumukoy ng mga mapanganib na app at site.</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="4611246891205775468">Kailangan ng Chromium ng pahintulot na i-access ang iyong mikropono para sa site na ito.</translation>
 <translation id="4621240073146040695">Halos napapanahon na! Muling ilunsad ang Chromium upang tapusin ang pag-a-update.</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>
 <translation id="469338717132742108">Humingi ng tulong sa Chromium OS</translation>
 <translation id="4708774505295300557">May nag-sign in dati sa Chromium sa computer na ito bilang <ph name="ACCOUNT_EMAIL_LAST" />. Mangyaring gumawa ng bagong user ng Chromium upang ihiwalay ang iyong impormasyon.</translation>
 <translation id="4714956846925717402">Pumunta sa Chromium nang mas mabilis</translation>
-<translation id="4825874709045178029">Kailangan ng Chromium ng pahintulot na i-access ang iyong camera para sa site na ito.</translation>
 <translation id="4888717733111232871">Inbound na panuntunan para sa Chromium upang payagan ang trapiko ng mDNS.</translation>
 <translation id="4943838377383847465">Nasa background mode ang Chromium.</translation>
 <translation id="4987820182225656817">Makakagamit ng Chromium ang mga bisita nang hindi nag-iiwan ng anumang bakas.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Ang Chromium ay isang web browser na nagpapatakbo ng mga webpage at application sa bilis ng kidlat. Ito ay mabilis, maaasahan, at madaling gamitin. Mas maingat na mag-browse sa web gamit ang proteksyon ng Chromium laban sa malware at phishing.</translation>
 <translation id="6475912303565314141">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chromium.</translation>
 <translation id="6485906693002546646">Ginagamit mo ang <ph name="PROFILE_EMAIL" /> upang i-sync ang iyong bagay sa Chromium. Upang ma-update ang iyong kagustuhan sa pag-sync o upang magamit ang Chromium nang walang Google account, bisitahin ang <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Kailangan ng Chromium ng access sa iyong lokasyon upang ibahagi ang lokasyon mo sa site na ito.</translation>
 <translation id="6510925080656968729">I-uninstall ang Chromium</translation>
-<translation id="6526111688217511984">Kailangan ng Chromium ng access sa storage upang mag-download ng mga file.</translation>
 <translation id="6598877126913850652">Pumunta sa mga setting ng notification ng Chromium</translation>
 <translation id="6676384891291319759">I-access ang Internet</translation>
 <translation id="6717134281241384636">Hindi maaaring gamitin ang iyong profile dahil mula ito sa isang mas bagong bersyon ng Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">May kakalapat lang na espesyal na update sa seguridad para sa Chromium; dapat ka nang mag-restart ngayon upang magkabisa ito (ire-restore namin ang iyong mga tab).</translation>
 <translation id="761356813943268536">Ginagamit ng Chromium ang iyong camera at mikropono.</translation>
 <translation id="7617377681829253106">Mas mahusay na ang Chromium</translation>
-<translation id="7641113255207688324">Hindi Chromium ang iyong default na browser.</translation>
 <translation id="7729447699958282447">Hindi mai-sync ng Chromium ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation>
 <translation id="7745317241717453663">Ide-delete nito ang iyong data mula sa pag-browse 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="7747138024166251722">Hindi makalikha ng pansamantalang direktoryo ang installer. Paki-suri para sa puwang sa disk na walang laman at pahintulot upang i-install ang software.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">I-install ang Chromium sa telepono mo. Magpapadala kami ng SMS sa iyong numero ng telepono para sa pag-recover ng account: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Tumulong sa pagpapahusay ng Chromium</translation>
 <translation id="8290862415967981663">Maaaring mapanganib ang file na ito, kaya na-block ito ng Chromium.</translation>
-<translation id="8328596990138326317">Kailangan ng Chromium ng pahintulot na i-access ang iyong camera at mikropono para sa site na ito.</translation>
 <translation id="8340674089072921962">Chromium ang dating ginagamit ng <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8453117565092476964">Sira o di-wasto ang archive ng installer. Mangyaring i-download muli ang Chromium.</translation>
 <translation id="8493179195440786826">Luma na ang Chromium</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index 20a619d..996d5d6 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -39,7 +39,6 @@
 <translation id="2396765026452590966">L'extension <ph name="EXTENSION_NAME" /> a modifié la page qui s'affiche lorsque vous démarrez Chromium.</translation>
 <translation id="2483889755041906834">Dans Chromium</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
-<translation id="2486653164587200256">Chromium risque de ne pas fonctionner correctement, car la compatibilité n'est plus assurée sur Windows XP et Windows Vista.</translation>
 <translation id="2527042973354814951">Redémarrer Chromium pour activer <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Impossible de synchroniser vos données dans Chromium OS, car les informations de connexion de votre compte ne sont plus à jour.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -105,13 +104,11 @@
 <translation id="4488554488975128561">Vous pouvez nous aider à rendre Chromium plus sûr et plus facile à utiliser en nous envoyant automatiquement des informations système et du contenu de page. Cela nous aidera à détecter les applications et les sites dangereux.</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="4611246891205775468">Chromium a besoin de votre autorisation pour accéder à votre micro pour ce site.</translation>
 <translation id="4621240073146040695">Mise à jour presque terminée. Relancez Chromium pour la finaliser.</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>
 <translation id="469338717132742108">Obtenir de l'aide avec Chromium OS</translation>
 <translation id="4708774505295300557">Un utilisateur s'est récemment connecté à Chromium sur cet ordinateur en tant que <ph name="ACCOUNT_EMAIL_LAST" />. Veuillez créer un autre utilisateur Chromium pour séparer vos informations.</translation>
 <translation id="4714956846925717402">Accédez à Chromium plus rapidement</translation>
-<translation id="4825874709045178029">Chromium a besoin de votre autorisation pour accéder à votre appareil photo pour ce site.</translation>
 <translation id="4888717733111232871">Règle de trafic entrant pour Chromium autorisant le trafic mDNS</translation>
 <translation id="4943838377383847465">Chromium est exécuté en mode arrière-plan</translation>
 <translation id="4987820182225656817">Les invités peuvent utiliser Chromium sans laisser aucune trace.</translation>
@@ -157,9 +154,7 @@
 <translation id="6403826409255603130">Chromium est un navigateur Web qui exécute les pages Web et les applications à une vitesse fulgurante. Il est rapide, stable et simple d'utilisation. Naviguez sur le Web en toute sécurité tout en bénéficiant de la protection offerte par Chromium contre les logiciels malveillants et de phishing.</translation>
 <translation id="6475912303565314141">Elle contrôle également la page qui s'affiche au démarrage de Chromium.</translation>
 <translation id="6485906693002546646">Vous utilisez le compte <ph name="PROFILE_EMAIL" /> pour synchroniser votre contenu dans Chromium. Pour mettre à jour vos préférences de synchronisation ou pour utiliser Chromium sans compte Google, accédez à la page <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium a besoin d'accéder à votre position pour la partager avec ce site.</translation>
 <translation id="6510925080656968729">Désinstaller Chromium</translation>
-<translation id="6526111688217511984">Pour télécharger des fichiers, Chromium a besoin d'accéder à l'espace de stockage.</translation>
 <translation id="6598877126913850652">Accéder aux paramètres de notification Chromium</translation>
 <translation id="6676384891291319759">Accéder à Internet</translation>
 <translation id="6717134281241384636">Votre profil ne peut pas être utilisé, car il provient d'une version plus récente de Chromium.
@@ -199,7 +194,6 @@
 <translation id="7577193603922410712">Une mise à jour spéciale de sécurité pour Chromium vient d'être installée. Redémarrez maintenant pour qu'elle soit prise en compte (vos onglets seront restaurés).</translation>
 <translation id="761356813943268536">Votre webcam et votre micro sont en cours d'utilisation dans Chromium.</translation>
 <translation id="7617377681829253106">Chromium s'est amélioré</translation>
-<translation id="7641113255207688324">Chromium n'est pas votre navigateur par défaut.</translation>
 <translation id="7729447699958282447">Impossible de synchroniser vos données dans Chromium, car la synchronisation n'est pas disponible pour votre domaine.</translation>
 <translation id="7745317241717453663">Cette action aura pour effet de supprimer vos données de navigation de cet appareil. Pour récupérer vos données ultérieurement, connectez-vous à Chromium en tant que <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Le programme d'installation n'a pas pu créer de répertoire temporaire. Vérifiez que le disque a suffisamment d'espace libre et que vous disposez des autorisations nécessaires pour installer le logiciel.</translation>
@@ -218,7 +212,6 @@
 <translation id="8222496066431494154">Installez Chromium sur votre téléphone. Vous recevrez un SMS au numéro que vous avez indiqué pour la récupération de compte (<ph name="PHONE_NUMBER" />).</translation>
 <translation id="8269379391216269538">Aidez-nous à améliorer Chromium</translation>
 <translation id="8290862415967981663">Chromium a bloqué ce fichier, car ce dernier peut être dangereux.</translation>
-<translation id="8328596990138326317">Chromium a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> utilisait Chromium précédemment</translation>
 <translation id="8453117565092476964">L'archive du programme d'installation est corrompue ou n'est pas valide. Veuillez télécharger Chromium à nouveau.</translation>
 <translation id="8493179195440786826">Version de Chromium obsolète</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 84933ef..ad6e892 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">જ્યારે તમે Chromium શરૂ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે <ph name="EXTENSION_NAME" /> એક્સટેન્શને બદલ્યું છે.</translation>
 <translation id="2483889755041906834">Chromium માં</translation>
 <translation id="2485422356828889247">અનઇન્સ્ટોલ કરો</translation>
-<translation id="2486653164587200256">Chromium યોગ્ય રીતે કાર્ય ન કરે તેવું બની શકે કારણકે તે હવેથી Windows XP અથવા Windows Vista પર સમર્થિત નથી.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> ને સક્ષમ કરવા માટે Chromium પુનઃપ્રારંભ કરો</translation>
 <translation id="2535480412977113886">તમારી એકાઉન્ટ સાઇન ઇન વિગતો જૂની હોવાને કારણે Chromium OS તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation>
 <translation id="2572494885440352020">Chromium હેલ્પર</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">તમે જોખમી અ‍ૅપ્લિકેશનો અને સાઇટ્સ શોધવામાં સહાય કરવા માટે Google ને કેટલીક સિસ્ટમ માહિતી અને પૃષ્ઠ સામગ્રી આપમેળે મોકલીને Chromium ને વધુ સુરક્ષિત તથા ઉપયોગમાં સરળ બનાવવામાં સહાય કરી શકો છો.</translation>
 <translation id="4567424176335768812">તમે <ph name="USER_EMAIL_ADDRESS" /> તરીકે સાઇન ઇન છો. હવે તમે તમારા બધા સાઇન ઇન કરેલા ઉપકરણો પર તમારા બુકમાર્ક્સ, ઇતિહાસ અને અન્ય સેટિંગ્સને ઍક્સેસ કરી શકો છો.</translation>
 <translation id="459535195905078186">Chromium ઍપ્લિકેશનો</translation>
-<translation id="4611246891205775468">Chromiumને આ સાઇટ માટે તમારા માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="4621240073146040695">અપ ટૂ ડેટ થવામાં છે! અપડેટ સમાપ્ત કરવા માટે Chromium ને ફરીથી લોંચ કરો.</translation>
 <translation id="4677944499843243528">બીજા કમ્પ્યુટર (<ph name="HOST_NAME" />) પર પ્રોફાઇલ બીજી Chromium પ્રક્રિયા (<ph name="PROCESS_ID" />) દ્વારા ઉપયોગમાં હોય એવું લાગે છે. Chromium એ પ્રોફાઇલને લૉક કરી છે જેથી તે દૂષિત ન થઈ જાય. જો તમને ખાતરી છે કે કોઈ અન્ય પ્રક્રિયાઓ આ પ્રોફાઇલનો ઉપયોગ કરી રહી નથી, તો તમે પ્રોફાઇલને અનલૉક કરી અને Chromium ને ફરીથી લોંચ કરી શકો છો.</translation>
 <translation id="469338717132742108">Chromium OS સાથે સહાય મેળવો</translation>
 <translation id="4708774505295300557">કોઈએ આ કોમ્પ્યુટર પર પહેલા <ph name="ACCOUNT_EMAIL_LAST" /> તરીકે Chromiumમાં સાઇન ઇન કર્યું છે. તમારી માહિતી અલગ રાખવા માટે કૃપા કરીને નવો Chromium વપરાશકર્તા બનાવો.</translation>
 <translation id="4714956846925717402">Chromium પર વધુ ઝડપથી જાઓ</translation>
-<translation id="4825874709045178029">Chromiumને આ સાઇટ માટે તમારા કૅમેરાના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="4888717733111232871">mDNS ટ્રાફિકને મંજૂરી આપવા Chromium માટે ઇનબાઉન્ડ નિયમ.</translation>
 <translation id="4943838377383847465">Chromium પૃષ્ઠભૂમિ મોડમાં છે.</translation>
 <translation id="4987820182225656817">અતિથિઓ કંઈપણ પાછળ છોડ્યાં વિના Chromium નો ઉપયોગ કરી શકે છે.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium એ એક એવું વેબ બ્રાઉઝર છે જે પ્રકાશની ગતિએ વેબપૃષ્ઠો અને એપ્લિકેશંસને ચલાવે છે. તે ઝડપી, સ્થિર અને ઉપયોગમાં સરળ છે. Google Chromium માં નિર્મિત મૉલવેર અને ફિશીંગ સુરક્ષા સાથે વેબને વધુ સુરક્ષિત રૂપે બ્રાઉઝ કરો.</translation>
 <translation id="6475912303565314141">જ્યારે તમે Chromium શરૂ કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation>
 <translation id="6485906693002546646">તમે તમારી Chromium સામગ્રીનું સમન્વયન કરવા માટે <ph name="PROFILE_EMAIL" /> નો ઉપયોગ કરી રહ્યાં છો. તમારી સમન્વયન પસંદગીને અપડેટ કરવા માટે અથવા Chromium ને Google એકાઉન્ટ વગર ઉપયોગ કરવા માટે, <ph name="SETTINGS_LINK" /> ની મુલાકાત લો.</translation>
-<translation id="6505742536731484931">Chromiumને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે.</translation>
 <translation id="6510925080656968729">Chromium ને અનઇન્સ્ટોલ કરો</translation>
-<translation id="6526111688217511984">ફાઇલો ડાઉનલોડ કરવા માટે Chromium ને સ્ટોરેજ ઍક્સેસની જરૂર છે.</translation>
 <translation id="6598877126913850652">Chromiumની નોટિફિકેશનની સેટિંગ પર જાઓ</translation>
 <translation id="6676384891291319759">ઇંટરનેટ ઍક્સેસ કરો</translation>
 <translation id="6717134281241384636">તમારી પ્રોફાઇલનો ઉપયોગ કરી શકાતો નથી કારણ કે તે Chromium નાં નવા સંસ્કરણ તરફથી છે.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Chromium માટેનું વિશિષ્ટ સુરક્ષા અપડેટ હમણાં જ લાગુ થયું; તેને પ્રભાવિત કરવા માટે તમારે અત્યારે પુનઃપ્રારંભ કરવું જોઈએ (અમે તમારા ટૅબ્સ પુનઃસ્થાપિત કરીશું).</translation>
 <translation id="761356813943268536">Chromium તમારા કેમેરા અને માઇક્રોફોનનો ઉપયોગ કરી રહ્યું છે.</translation>
 <translation id="7617377681829253106">Chromium હવે પહેલાંથી બહેતર બન્યું છે</translation>
-<translation id="7641113255207688324">Chromium તમારું ડિફોલ્ટ બ્રાઉઝર નથી.</translation>
 <translation id="7729447699958282447">Chromium તમારા ડેટાને સમન્વયિત કરી શક્યું નથી કારણ કે તમારા ડોમેન માટે સમન્વયન ઉપલબ્ધ નથી.</translation>
 <translation id="7745317241717453663">આ તમારા બ્રાઉઝિંગ ડેટાને આ ઉપકરણમાંથી કાઢી નાખશે. પછીથી તમારો ડેટા પુનઃપ્રાપ્ત કરવા માટે, Chromium માં <ph name="USER_EMAIL" /> તરીકે સાઇન ઇન કરો.</translation>
 <translation id="7747138024166251722">ઇન્સ્ટોલર અસ્થાયી ડાયરેક્ટરી બનાવી શક્યું નથી. કૃપા કરીને ખાલી ડિસ્ક સ્પેસ માટે અને સૉફ્ટવેર ઇન્સ્ટોલ કરવાની પરવાનગી માટે તપાસો.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">તમારા ફોન પર Chromium ઇન્સ્ટૉલ કરો. અમે તમારા એકાઉન્ટ પુનઃપ્રાપ્તિ ફોન નંબર પર એક SMS મોકલીશું: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium ને બહેતર બનાવવામાં સહાય કરો</translation>
 <translation id="8290862415967981663">આ ફાઇલ જોખમી હોઈ શકે છે, તેથી Chromium એ તેને અવરોધિત કરેલ છે.</translation>
-<translation id="8328596990138326317">Chromiumને આ સાઇટ માટે તમારા કૅમેરા અને માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" />, પહેલાં Chromium નો ઉપયોગ કરી રહ્યાં હતાં</translation>
 <translation id="8453117565092476964">ઇન્સ્ટોલર આર્કાઇવ દૂષિત અથવા અમાન્ય છે. કૃપા કરીને Chromium ફરીથી ડાઉનલોડ કરો.</translation>
 <translation id="8493179195440786826">Chromium જૂનું થઈ ગયું છે</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index a24118b..b6c4f9b 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">एक्सटेंशन "<ph name="EXTENSION_NAME" />" ने यह बदल दिया है कि जब आप क्रोमियम प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
 <translation id="2483889755041906834">क्रोमियम में</translation>
 <translation id="2485422356828889247">विस्थापित करें</translation>
-<translation id="2486653164587200256">हो सकता है क्रोमियम सही तरीके से काम ना करें क्‍योंकि अब वह Windows XP या Windows Vista पर समर्थित नहीं है.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> सक्षम करने के लिए क्रोमियम को फिर से शुरू करें</translation>
 <translation id="2535480412977113886">क्रोमियम OS आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके खाता प्रवेश विवरण पुराने हो चुके हैं.</translation>
 <translation id="2572494885440352020">क्रोमियम सहायक</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">खतरनाक ऐप्लिकेशन और साइटों का पता लगाने में सहायता करने के लिए Google को अपने आप कुछ सिस्टम जानकारी और पेज सामग्री भेजकर आप क्रोमियम को उपयोग में अधिक सुरक्षित और अधिक आसान बनाने में सहायता कर सकते हैं.</translation>
 <translation id="4567424176335768812">आपने <ph name="USER_EMAIL_ADDRESS" /> के रूप में प्रवेश किया हुआ है. अब आप अपने सभी प्रवेश किए हुए डिवाइस पर अपने बुकमार्क, इतिहास, और अन्य सेटिंग की एक्सेस कर सकेंगे.</translation>
 <translation id="459535195905078186">क्रोमियम ऐप्स</translation>
-<translation id="4611246891205775468">क्रोमियम को इस साइट के लिए आपका माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="4621240073146040695">लगभग अप टू डेट हो गया है! अपडेट करना पूरा करने के लिए क्रोमियम फिर से लॉन्च करें.</translation>
 <translation id="4677944499843243528">ऐसा लगता है कि प्रोफ़ाइल का उपयोग अन्य क्रोमियम प्रोसेस (<ph name="PROCESS_ID" />) द्वारा किसी अन्य कंप्यूटर (<ph name="HOST_NAME" />) पर किया जा रहा है. क्रोमियम ने प्रोफ़ाइल को लॉक कर दिया है ताकि वह दूषित न हो. यदि आप सुनिश्चित हैं कि कोई अन्य प्रोसेस इस प्रोफ़ाइल का उपयोग नहीं कर रही हैं, तो आप प्रोफ़ाइल को अनलॉक कर सकते हैं और क्रोमियम को फिर से लॉन्च कर सकते हैं.</translation>
 <translation id="469338717132742108">क्रोमियम OS के लिए सहायता प्राप्त करें</translation>
 <translation id="4708774505295300557">इस कंप्यूटर पर पहले किसी अन्य व्यक्ति ने <ph name="ACCOUNT_EMAIL_LAST" /> के रूप में Chromium में प्रवेश किया है. अपनी जानकारी अलग रखने के लिए कृपया नया Chromium उपयोगकर्ता बनाएं.</translation>
 <translation id="4714956846925717402">क्रोमियम पर तेज़ी से पहुंचें</translation>
-<translation id="4825874709045178029">क्रोमियम को इस साइट के लिए आपका कैमरा एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="4888717733111232871">mDNS ट्रैफ़िक की अनुमति देने के लिए क्रोमियम के लिए इनबाउंड नियम.</translation>
 <translation id="4943838377383847465">क्रोमियम पृष्ठभूमि मोड में है.</translation>
 <translation id="4987820182225656817">अतिथि कुछ भी छोड़े बिना क्रोमियम का उपयोग कर सकते हैं.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">क्रोमियम वेब ब्राउज़र है जो बहुत तेज़ी से वेबपेज और ऐप्‍लिकेशन चलाता है. यह तेज़, स्‍थिर, और उपयोग में आसान है. क्रोमियम में अंतर्निहित मैलवेयर और फ़ीशिंग सुरक्षा के साथ अधिक आसानी से वेब ब्राउज़ करें.</translation>
 <translation id="6475912303565314141">इससे यह भी नियंत्रित होता है कि जब आप क्रोमियम प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
 <translation id="6485906693002546646">आप अपनी क्रोमियम सामग्री को समन्वयित करने के लिए <ph name="PROFILE_EMAIL" /> का उपयोग कर रहे हैं. अपनी समन्वयन प्राथमिकता को अपडेट करने या Google खाते के बिना क्रोमियम का उपयोग करने के लिए, <ph name="SETTINGS_LINK" /> पर जाएं.</translation>
-<translation id="6505742536731484931">इस साइट से आपका स्थान साझा करने के लिए क्रोमियम को आपके स्थान का एक्सेस चाहिए.</translation>
 <translation id="6510925080656968729">क्रोमियम को अनइंस्टाल करें</translation>
-<translation id="6526111688217511984">फ़ाइलें डाउनलोड करने के लिए क्रोमियम को मेमोरी ऐक्‍सेस की आवश्‍यकता होगी.</translation>
 <translation id="6598877126913850652">क्रोमियम की सूचना सेटिंग पर जाएं</translation>
 <translation id="6676384891291319759">इंटरनेट तक पहुंच स्थापित करें</translation>
 <translation id="6717134281241384636">आपकी प्रोफ़ाइल का उपयोग नहीं किया जा सकता क्‍योंकि यह क्रोमियम के नए वर्शन से है.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">क्रोमियम के लिए एक विशेष सुरक्षा अपडेट अभी-अभी लागू किया गया था; उसके प्रभावी होने के लिए आपको अभी पुन: प्रारंभ करना चाहिए (हम आपके टैब पुनर्स्‍थापित कर देंगे).</translation>
 <translation id="761356813943268536">Chromium आपके कैमरे और माइक्रोफ़ोन का उपयोग कर रहा है.</translation>
 <translation id="7617377681829253106">क्रोमियम पहले से बेहतर हो गया है</translation>
-<translation id="7641113255207688324">क्रोमियम आपका डिफ़ॉल्ट ब्राउज़र नहीं है.</translation>
 <translation id="7729447699958282447">क्रोमियम आपका डेटा समन्‍वयित नहीं कर सका क्‍योंकि समन्‍वयन आपके डोमेन के लिए उपलब्‍ध नहीं है.</translation>
 <translation id="7745317241717453663">ऐसा करने से इस डिवाइस से आपका ब्राउज़िंग डेटा हट जाएगा. बाद में अपना डेटा पाने के लिए, Chromium में <ph name="USER_EMAIL" /> के रूप में प्रवेश करें.</translation>
 <translation id="7747138024166251722">इंस्टॉलर अस्थायी निर्देशिका नहीं बना सकता. कृपया डिस्क में खाली जगह और सॉफ़्टवेयर को इंस्‍टॉल करने की अनुमति की जाँच करें.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">अपने फ़ोन पर क्रोमियम इंस्टॉल करें. हम आपके खाता पुनर्प्राप्ति फ़ोन नंबर पर एक SMS भेजेंगे: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">क्रोमियम को बेहतर बनाने में सहायता करें</translation>
 <translation id="8290862415967981663">यह फ़ाइल खतरनाक हो सकती है, इसलिए क्रोमियम ने इसे अवरुद्ध कर दिया है.</translation>
-<translation id="8328596990138326317">क्रोमियम को इस साइट के लिए आपका कैमरा और माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> पहले क्रोमियम का उपयोग कर रहा था</translation>
 <translation id="8453117565092476964">इंस्‍टॉलर संग्रह दूषित या अमान्‍य है. कृपया क्रोमियम पुन: डाउनलोड करें.</translation>
 <translation id="8493179195440786826">क्रोमियम पुराना हो गया है</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index 985b3a1..e501f7da 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Proširenje "<ph name="EXTENSION_NAME" />" promijenilo je stranicu koja se prikazuje prilikom pokretanja Chromiuma.</translation>
 <translation id="2483889755041906834">U Chromiumu</translation>
 <translation id="2485422356828889247">Deinstaliraj</translation>
-<translation id="2486653164587200256">Chromium možda neće ispravno raditi jer više nije podržan na sustavima Windows XP i Windows Vista.</translation>
 <translation id="2527042973354814951">Ponovo pokrenite Chromium da biste omogućili dodatak <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">OS Chromium nije mogao sinkronizirati podatke vašeg računa jer su pojedinosti prijave na račun zastarjele.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Možete pomoći da Chromium bude sigurniji i jednostavniji za upotrebu tako što ćete omogućiti da se Googleu automatski šalju neki podaci o sustavu i sadržaju stranice u svrhu otkrivanja opasnih aplikacija i web-lokacija.</translation>
 <translation id="4567424176335768812">Prijavljeni ste kao <ph name="USER_EMAIL_ADDRESS" />. Sada možete pristupiti svojim oznakama, povijesti i drugim postavkama na svim uređajima na kojima se prijavljujete.</translation>
 <translation id="459535195905078186">Aplikacije sustava Chromium</translation>
-<translation id="4611246891205775468">Chromium treba dopuštenje za pristup mikrofonu za ovu web-lokaciju.</translation>
 <translation id="4621240073146040695">Ažuriranje će uskoro biti gotovo. Za dovršetak ponovo pokrenite Chromium.</translation>
 <translation id="4677944499843243528">Izgleda da neki drugi proces Chromiuma (<ph name="PROCESS_ID" />) na nekom drugom računalu (<ph name="HOST_NAME" />) upotrebljava taj profil. Chromium je zaključao profil da se profil ne bi promijenio. Ako ste sigurni da nijedan drugi proces ne upotrebljava taj profil, možete ga otključati i ponovo pokrenuti Chromium.</translation>
 <translation id="469338717132742108">Potraži pomoć za upotrebu OS-a Chromium</translation>
 <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="4714956846925717402">Otvorite Chromium brže</translation>
-<translation id="4825874709045178029">Chromium treba dopuštenje za pristup fotoaparatu za ovu web-lokaciju.</translation>
 <translation id="4888717733111232871">Ulazno pravilo kako bi Chromium dopustio mDNS promet.</translation>
 <translation id="4943838377383847465">Chromium radi u pozadini.</translation>
 <translation id="4987820182225656817">Gosti mogu upotrebljavati Chromium bez ostavljanja tragova o upotrebi.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium je web-preglednik koji munjevitom brzinom prikazuje web-stranice i aplikacije. Brz je, stabilan i jednostavan za upotrebu. Pregledavajte web sigurnije jer je zaštita od zlonamjernog softvera i krađe identiteta ugrađena u Chromium.</translation>
 <translation id="6475912303565314141">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromiuma.</translation>
 <translation id="6485906693002546646">Upotrebljavate <ph name="PROFILE_EMAIL" /> za sinkronizaciju sadržaja u Chromiumu. Za ažuriranje postavki sinkroniziranja ili upotrebu Chromiuma bez Google računa posjetite <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium treba dopuštenje za pristup vašoj lokaciji da bi je podijelio s ovom web-lokacijom.</translation>
 <translation id="6510925080656968729">Deinstaliranje Chromiuma</translation>
-<translation id="6526111688217511984">Chromium treba pristup pohrani radi preuzimanja datoteka.</translation>
 <translation id="6598877126913850652">Otvori postavke obavijesti za Chromium</translation>
 <translation id="6676384891291319759">Pristup Internetu</translation>
 <translation id="6717134281241384636">Vaš se profil ne može upotrebljavati jer je iz novije verzije Chromiuma.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Upravo je primijenjeno posebno sigurnosno ažuriranje za Chromium i trebate ponovo pokrenuti sustav kako bi promjena stupila na snagu (vratit ćemo vaše kartice).</translation>
 <translation id="761356813943268536">Chromium upotrebljava vašu kameru i mikrofon.</translation>
 <translation id="7617377681829253106">Chromium je upravo postao bolji</translation>
-<translation id="7641113255207688324">Chromium nije vaš zadani preglednik.</translation>
 <translation id="7729447699958282447">Chromium nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation>
 <translation id="7745317241717453663">Time će se izbrisati podaci o pregledavanju s uređaja. Da biste kasnije dohvatili svoje podatke, prijavite se na Chromium kao <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Program za instalaciju nije izradio privremeni direktorij. Provjerite ima li slobodnog prostora na disku i postoji li dopuštenje za instalaciju softvera.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Instalirajte Chromium na telefon. Poslat ćemo vam SMS na telefonski broj za oporavak računa: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Pomognite poboljšati Chromium.</translation>
 <translation id="8290862415967981663">Datoteka je možda opasna i Chromium ju je blokirao.</translation>
-<translation id="8328596990138326317">Chromium treba dopuštenje za pristup fotoaparatu i mikrofonu za ovu web-lokaciju.</translation>
 <translation id="8340674089072921962">E-adresa <ph name="USER_EMAIL_ADDRESS" /> prethodno je upotrebljavala Chromium</translation>
 <translation id="8453117565092476964">Arhiva programa za instalaciju oštećena je ili nevažeća. Ponovo preuzmite Chromium.</translation>
 <translation id="8493179195440786826">Chromium je zastario</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index e8a394f..d8d82e8 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">A(z) <ph name="EXTENSION_NAME" /> bővítmény módosította, hogy melyik oldal jelenjen meg a Chromium indításakor.</translation>
 <translation id="2483889755041906834">A Chromiumban</translation>
 <translation id="2485422356828889247">Eltávolítás</translation>
-<translation id="2486653164587200256">Előfordulhat, hogy a Chromium nem fog megfelelően működni, mert a továbbiakban már nem támogatja a következő rendszereket: Windows XP és Windows Vista.</translation>
 <translation id="2527042973354814951">A Chromium újraindítása a(z) <ph name="PLUGIN_NAME" /> engedélyezéséhez</translation>
 <translation id="2535480412977113886">A Chromium OS nem tudta szinkronizálni az adatokat, mert a fiók bejelentkezési adatai elavultak.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">A rendszer-információk és oldaltartalmak automatikus küldésével segítséget nyújthat a Google-nak a Chromium használatának biztonságosabbá és egyszerűbbé tételéhez, illetve a veszélyes alkalmazások és webhelyek felderítéséhez.</translation>
 <translation id="4567424176335768812">A(z) <ph name="USER_EMAIL_ADDRESS" /> címmel van bejelentkezve. Elérheti könyvjelzőit, előzményeit és más beállításait minden olyan eszközön, amelyen bejelentkezett.</translation>
 <translation id="459535195905078186">Chromium-alkalmazások</translation>
-<translation id="4611246891205775468">A Chromium számára engedély szükséges, hogy hozzáférjen a mikrofonhoz ennél a webhelynél.</translation>
 <translation id="4621240073146040695">Már majdnem naprakész! Indítsa újra a Chromiumot a frissítés befejezéséhez.</translation>
 <translation id="4677944499843243528">Úgy tűnik, a profilt egy másik Chromium-folyamat (<ph name="PROCESS_ID" />) használja egy másik számítógépen (<ph name="HOST_NAME" />). A Chromium zárolta a profilt, hogy az ne sérülhessen. Ha biztos benne, hogy nem használja másik folyamat a profilt, feloldhatja azt, és újraindíthatja a Chromiumot.</translation>
 <translation id="469338717132742108">Segítség a Chromium OS használatával kapcsolatban</translation>
 <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="4714956846925717402">A Chromium gyorsabb elérése</translation>
-<translation id="4825874709045178029">A Chromium számára engedély szükséges, hogy hozzáférjen a kamerához ennél a webhelynél.</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>
 <translation id="4987820182225656817">A vendégek úgy használhatják a Chromiumot, hogy nem hagynak hátra semmit.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">A Chromium olyan böngésző, amely villámgyorsan futtatja a weboldalakat és az alkalmazásokat. Gyors, stabil és könnyen használható. A beépített, adathalászat és kártékony programok elleni védelemmel biztonságosabban böngészhet az interneten.</translation>
 <translation id="6475912303565314141">Továbbá azt is szabályozza, hogy melyik oldal jelenik meg a Chromium indításakor.</translation>
 <translation id="6485906693002546646">Chromiumos dolgainak szinkronizálásához a(z) <ph name="PROFILE_EMAIL" /> fiókot használja. Szinkronizálási beállításainak frissítéséhez, illetve a Chromium Google-fiók nélküli használatához keresse fel a <ph name="SETTINGS_LINK" /> linket.</translation>
-<translation id="6505742536731484931">A Chromiumnak a helyadatokhoz való hozzáférésre van szüksége a ahhoz, hogy megoszthassa az Ön tartózkodási helyét a webhellyel.</translation>
 <translation id="6510925080656968729">Chromium eltávolítása</translation>
-<translation id="6526111688217511984">A Chromiumnak tárhelyhozzáférésre van szüksége a fájlok letöltéséhez.</translation>
 <translation id="6598877126913850652">A Chromium értesítési beállításainak megnyitása</translation>
 <translation id="6676384891291319759">Internetelérés</translation>
 <translation id="6717134281241384636">A profilja nem használható, mert az a Chromium egy újabb verziójából származik. Előfordulhat, hogy egyes funkciók nem érhetők el. Kérjük, adjon meg egy másik profilmappát, vagy használja a Chromium újabb verzióját.</translation>
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">A rendszer egy speciális biztonsági frissítést alkalmazott a Chromiumon; indítsa újra a számítógépet, hogy a módosítás életbe léphessen (a lapokat visszaállítjuk).</translation>
 <translation id="761356813943268536">A Chromium használja a kamerát és a mikrofont.</translation>
 <translation id="7617377681829253106">A Chromium még jobb lett</translation>
-<translation id="7641113255207688324">A Chromium nem az alapértelmezett böngésző.</translation>
 <translation id="7729447699958282447">A Chromium nem tudta szinkronizálni az adatait, mert a szinkronizálás nem érhető el az Ön domainjénél.</translation>
 <translation id="7745317241717453663">Ezzel az eszközön lévő összes böngészési adat törlődik. Az adatok későbbi lekéréséhez jelentkezzen be a Chromiumba a következő e-mail-címmel: <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">A telepítőnek nem sikerült létrehoznia az ideiglenes könyvtárat. Kérjük ellenőrizze, hogy van-e elegendő hely a lemezen, és rendelkezik-e engedéllyel a szoftvertelepítésre.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">Telepítse a Chromiumot telefonjára. SMS-t küldünk majd a fiók-helyreállítási telefonszámára: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Segítsen a Chromium továbbfejlesztésében</translation>
 <translation id="8290862415967981663">Ez a fájl veszélyes lehet, ezért a Chromium letiltotta.</translation>
-<translation id="8328596990138326317">A Chromium számára engedély szükséges, hogy hozzáférjen a kamerához és a mikrofonhoz ennél a webhelynél.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> előzőleg Chromiumot használt</translation>
 <translation id="8453117565092476964">A telepítő tömörített állománya megsérült vagy érvénytelen. Kérjük, töltse le újra a Chromium böngészőt.</translation>
 <translation id="8493179195440786826">A Chromium elavult</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index cdc9ad4..186c787 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Ekstensi "<ph name="EXTENSION_NAME" />" telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chromium.</translation>
 <translation id="2483889755041906834">Di Chromium</translation>
 <translation id="2485422356828889247">Uninstal</translation>
-<translation id="2486653164587200256">Chromium mungkin tidak berfungsi dengan semestinya karena sudah tidak didukung di Windows XP atau Windows Vista.</translation>
 <translation id="2527042973354814951">Muat ulang Chromium untuk mengaktifkan <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS tidak dapat menyinkronkan data karena detail ID masuk Anda belum diperbarui.</translation>
 <translation id="2572494885440352020">Pembantu Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Anda dapat membantu menjadikan Chromium lebih aman dan lebih mudah digunakan, dengan mengirim sebagian informasi sistem dan konten halaman secara otomatis ke Google untuk membantu mendeteksi aplikasi dan situs berbahaya.</translation>
 <translation id="4567424176335768812">Anda masuk 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="4611246891205775468">Chromium memerlukan izin akses ke mikrofon untuk situs ini.</translation>
 <translation id="4621240073146040695">Hampir selesai diperbarui! Luncurkan ulang Chromium untuk menyelesaikan pembaruan.</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>
 <translation id="469338717132742108">Dapatkan bantuan Chromium OS</translation>
 <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="4714956846925717402">Buka Chromium lebih cepat</translation>
-<translation id="4825874709045178029">Chromium memerlukan izin akses ke kamera untuk situs ini.</translation>
 <translation id="4888717733111232871">Inbound rule untuk Chromium guna mengizinkan lalu lintas mDNS.</translation>
 <translation id="4943838377383847465">Chromium berjalan di mode latar belakang.</translation>
 <translation id="4987820182225656817">Tamu dapat menggunakan Chromium tanpa meninggalkan apa pun.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium adalah browser web yang menjalankan halaman web dan aplikasi dengan kecepatan kilat. Browser ini cepat, stabil, dan mudah digunakan. Jelajahi web lebih aman dengan perlindungan dari software perusak dan phishing yang tertanam di dalam Chromium.</translation>
 <translation id="6475912303565314141">Juga mengontrol halaman apa yang ditampilkan saat Anda memulai Chromium.</translation>
 <translation id="6485906693002546646">Anda menggunakan <ph name="PROFILE_EMAIL" /> untuk menyinkronkan barang-barang Chromium. Untuk memperbarui preferensi sinkronisasi atau menggunakan Chromium tanpa akun Google, kunjungi <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium memerlukan akses ke lokasi Anda untuk berbagi lokasi dengan situs ini.</translation>
 <translation id="6510925080656968729">Uninstal Chromium</translation>
-<translation id="6526111688217511984">Chromium memerlukan akses penyimpanan untuk mendownload file.</translation>
 <translation id="6598877126913850652">Buka setelan notifikasi Chromium</translation>
 <translation id="6676384891291319759">Akses Internet</translation>
 <translation id="6717134281241384636">Profil Anda tidak dapat digunakan karena berasal dari Chromium versi yang lebih baru.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Pembaruan keamanan khusus untuk Chromium baru saja diterapkan; mulai ulang Chromium sekarang agar pembaruan diterapkan (nanti kami akan memulihkan tab yang Anda buka).</translation>
 <translation id="761356813943268536">Chromium menggunakan kamera dan mikrofon Anda.</translation>
 <translation id="7617377681829253106">Chromium menjadi lebih baik</translation>
-<translation id="7641113255207688324">Chromium bukan browser default Anda.</translation>
 <translation id="7729447699958282447">Chromium tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation>
 <translation id="7745317241717453663">Tindakan ini akan menghapus data browsing dari perangkat. Untuk mengambil data nanti, login ke Chromium sebagai <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Pemasang tidak dapat membuat direktori sementara. Periksa kapasitas kosong pada disk dan izin untuk memasang software.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Instal Chromium di ponsel. Kami akan mengirimkan SMS ke nomor telepon pemulihan akun Anda: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Bantu kami membuat Chromium menjadi lebih baik</translation>
 <translation id="8290862415967981663">File ini mungkin berbahaya, jadi Chromium telah memblokirnya.</translation>
-<translation id="8328596990138326317">Chromium memerlukan izin akses ke kamera dan mikrofon untuk situs ini.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> sebelumnya menggunakan Chromium</translation>
 <translation id="8453117565092476964">Arsip pemasang rusak atau tidak valid. Download Chromium lagi.</translation>
 <translation id="8493179195440786826">Chromium Terlalu Lawas</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index 4b7ae2e..1456b33 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">L'estensione "<ph name="EXTENSION_NAME" />" ha cambiato la pagina mostrata all'avvio di Chromium.</translation>
 <translation id="2483889755041906834">In Chromium</translation>
 <translation id="2485422356828889247">Disinstalla</translation>
-<translation id="2486653164587200256">Chromium potrebbe non funzionare correttamente perché non è più supportato su Windows XP o Windows Vista.</translation>
 <translation id="2527042973354814951">Riavvia Chromium per attivare <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Impossibile sincronizzare i dati in Chromium OS perché i dati di accesso dell'account sono obsoleti.</translation>
 <translation id="2572494885440352020">Supporto Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Puoi contribuire a rendere Chromium più sicuro e più facile da utilizzare inviando automaticamente a Google alcune informazioni sul sistema e alcuni contenuti delle pagine per contribuire a rilevare app e siti pericolosi.</translation>
 <translation id="4567424176335768812">Hai eseguito l'accesso come <ph name="USER_EMAIL_ADDRESS" />. Ora puoi accedere ai tuoi Preferiti, alla tua cronologia e ad altre impostazioni su tutti i tuoi dispositivi su cui esegui l'accesso.</translation>
 <translation id="459535195905078186">Applicazioni Chromium</translation>
-<translation id="4611246891205775468">Per questo sito Chromium ha bisogno dell'autorizzazione ad accedere al microfono.</translation>
 <translation id="4621240073146040695">Aggiornamento quasi completato. Riavvia Chromium per terminare l'aggiornamento.</translation>
 <translation id="4677944499843243528">Sembra che il profilo sia in uso in un altro processo Chromium (<ph name="PROCESS_ID" />) su un altro computer (<ph name="HOST_NAME" />). Chromium ha bloccato il profilo affinché non venga danneggiato. Se sei sicuro che nessun altro processo stia utilizzando questo profilo, puoi sbloccare il profilo e riavviare Chromium.</translation>
 <translation id="469338717132742108">Ricevi assistenza per Chromium OS</translation>
 <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="4714956846925717402">Apri Chromium più velocemente</translation>
-<translation id="4825874709045178029">Per questo sito Chromium ha bisogno dell'autorizzazione ad accedere alla fotocamera.</translation>
 <translation id="4888717733111232871">Regola inbound per consentire il traffico mDNS in Chromium.</translation>
 <translation id="4943838377383847465">Chromium è in modalità background.</translation>
 <translation id="4987820182225656817">Gli ospiti possono utilizzare Chromium senza lasciare tracce.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium è un browser web che esegue le pagine web e le applicazioni alla velocità della luce. È veloce, stabile e facile da utilizzare. Naviga su Internet in modo più sicuro grazie alla protezione da malware e phishing integrata in Chromium.</translation>
 <translation id="6475912303565314141">Controlla anche la pagina visualizzata all'avvio di Chromium.</translation>
 <translation id="6485906693002546646">Stai utilizzando <ph name="PROFILE_EMAIL" /> per sincronizzare i tuoi contenuti di Chromium. Per aggiornare la tua preferenza di sincronizzazione o per utilizzare Chromium senza un account Google, accedi alla pagina <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium deve poter accedere alla tua posizione per condividerla con questo sito.</translation>
 <translation id="6510925080656968729">Disinstalla Chromium</translation>
-<translation id="6526111688217511984">Chromium deve avere accesso allo spazio di archiviazione per poter scaricare file.</translation>
 <translation id="6598877126913850652">Vai alle impostazioni di notifica di Chromium</translation>
 <translation id="6676384891291319759">Accesso a Internet</translation>
 <translation id="6717134281241384636">Impossibile utilizzare il tuo profilo perché proviene da una versione più recente di Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">È stato appena applicato un aggiornamento di sicurezza speciale per Chromium; è necessario riavviare ora affinché abbia effetto (le schede verranno ripristinate).</translation>
 <translation id="761356813943268536">Chromium sta utilizzando videocamera e microfono.</translation>
 <translation id="7617377681829253106">Da oggi Chromium è ancora meglio</translation>
-<translation id="7641113255207688324">Chromium non è il browser predefinito.</translation>
 <translation id="7729447699958282447">Impossibile sincronizzare i dati in Chromium perché la sincronizzazione non è disponibile per il tuo dominio.</translation>
 <translation id="7745317241717453663">Verranno eliminati i tuoi dati di navigazione da questo dispositivo. Per recuperare i dati in un secondo momento, accedi a Chromium come <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Il programma di installazione non ha creato una directory temporanea. Verifica di disporre di spazio libero sul disco e dell'autorizzazione per l'installazione del software.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Installa Chromium sul telefono. Invieremo un SMS al tuo numero di telefono per il recupero dell'account: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Contribuisci a migliorare Chromium</translation>
 <translation id="8290862415967981663">Questo file potrebbe essere pericoloso, pertanto è stato bloccato da Chromium.</translation>
-<translation id="8328596990138326317">Per questo sito Chromium ha bisogno dell'autorizzazione ad accedere alla fotocamera e al microfono.</translation>
 <translation id="8340674089072921962">L'indirizzo <ph name="USER_EMAIL_ADDRESS" /> utilizzava in precedenza Chromium</translation>
 <translation id="8453117565092476964">L'archivio di installazione è danneggiato o non valido. Scarica di nuovo Chromium.</translation>
 <translation id="8493179195440786826">Chromium non è aggiornato</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 7a6f40f..a75e5e5 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">‏התוסף "<ph name="EXTENSION_NAME" />" שינה את הדף שמוצג כשאתה מפעיל את Chromium.</translation>
 <translation id="2483889755041906834">‏ב-Chromium</translation>
 <translation id="2485422356828889247">הסר התקנה</translation>
-<translation id="2486653164587200256">‏ייתכן ש-Chromium לא יפעל כראוי כי כבר אין בו תמיכה ב-Windows XP וב-Windows Vista.</translation>
 <translation id="2527042973354814951">‏הפעל מחדש את Chromium כדי להפעיל את <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">‏מערכת ההפעלה של Chromium לא הצליחה לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">‏תוכל לעזור בשיפור האבטחה וקלות השימוש של Chromium על-ידי שליחה אוטומטית של חלק מפרטי המערכת ותוכן הדף אל Google כדי לעזור בזיהוי של יישומים ואתרים מסוכנים.</translation>
 <translation id="4567424176335768812">נכנסת למערכת בתור <ph name="USER_EMAIL_ADDRESS" />. כעת אתה יכול לגשת אל הסימניות, ההיסטוריה והגדרות אחרות שלך בכל המכשירים שבהם אתה מחובר לחשבון.</translation>
 <translation id="459535195905078186">‏יישומי Chromium</translation>
-<translation id="4611246891205775468">‏Chromium זקוק להרשאת גישה אל המיקרופון בשביל האתר הזה.</translation>
 <translation id="4621240073146040695">‏העדכון כמעט הושלם! הפעל מחדש את Chromium‏ כדי לסיים את העדכון.</translation>
 <translation id="4677944499843243528">‏נראה שהפרופיל נמצא בשימוש על ידי תהליך Chromium אחר (<ph name="PROCESS_ID" />) במחשב אחר (<ph name="HOST_NAME" />)‏. Chromium נעל את הפרופיל כדי שלא ייפגם. אם אתה משוכנע שאף תהליך אחר אינו משתמש בפרופיל זה, תוכל לבטל את נעילת הפרופיל ולהפעיל את Chromium מחדש.</translation>
 <translation id="469338717132742108">‏קבל עזרה בנושא Chromium OS</translation>
 <translation id="4708774505295300557">‏מישהו נכנס בעבר ל-Chromium מהמחשב הזה כ-<ph name="ACCOUNT_EMAIL_LAST" />. צור משתמש חדש ל-Chromium כדי לשמור על הפרדת המידע שלך.</translation>
 <translation id="4714956846925717402">‏רוצה להגיע ל-Chromium מהר יותר?</translation>
-<translation id="4825874709045178029">‏Chromium זקוק להרשאת גישה אל המצלמה בשביל האתר הזה.</translation>
 <translation id="4888717733111232871">‏כלל נכנס עבור Chromium על מנת לאפשר תנועת mDNS.</translation>
 <translation id="4943838377383847465">‏Chromium נמצא במצב רקע.</translation>
 <translation id="4987820182225656817">‏אורחים יכולים להשתמש ב-Chromium בלי להשאיר דבר מאחור.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">‏Chromium הוא דפדפן אינטרנט המפעיל דפי אינטרנט ואפליקציות במהירות הבזק. זהו דפדפן מהיר, יציב וקל לשימוש. תוכל לגלוש באינטרנט בצורה מאובטחת יותר הודות להגנה מפני תוכנות זדוניות ודיוג המובנית ב-Chromium.</translation>
 <translation id="6475912303565314141">‏הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chromium.</translation>
 <translation id="6485906693002546646">‏אתה משתמש ב-<ph name="PROFILE_EMAIL" /> כדי לסנכרן את הפריטים שלך ב-Chromium. עבור אל '<ph name="SETTINGS_LINK" />' כדי לעדכן את העדפות הסנכרון או להשתמש ב-Chromium ללא חשבון Google.</translation>
-<translation id="6505742536731484931">‏Chromium זקוק לגישה אל המיקום שלך כדי לשתף אותו עם האתר הזה.</translation>
 <translation id="6510925080656968729">‏הסר את התקנת Chromium</translation>
-<translation id="6526111688217511984">‏לצורך הורדת קבצים, Chromium זקוק לגישה לאחסון.</translation>
 <translation id="6598877126913850652">‏מעבר אל הגדרות ההודעות של Chromium</translation>
 <translation id="6676384891291319759">גישה אל האינטרנט</translation>
 <translation id="6717134281241384636">‏לא ניתן להשתמש בפרופיל שלך משום שהוא מגיע מגרסה חדשה יותר של Chromium.
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">‏בוצע עדכון אבטחה מיוחד של Chromium. עליך לאתחל עכשיו כדי שהעדכון יופעל (נשחזר את הכרטיסיות שלך).</translation>
 <translation id="761356813943268536">‏Chromium משתמש במצלמה ובמיקרופון שלך.</translation>
 <translation id="7617377681829253106">‏Chromium השתפר</translation>
-<translation id="7641113255207688324">‏Chromium אינו דפדפן ברירת המחדל שלך.</translation>
 <translation id="7729447699958282447">‏Chromium לא הצליח לסנכרן את הנתונים שלך מפני שסנכרון אינו זמין עבור הדומיין שלך.</translation>
 <translation id="7745317241717453663">‏פעולה זו תמחק את נתוני הגלישה מהמכשיר. כדי לשחזר את הנתונים מאוחר יותר, היכנס אל Chromium עם <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">המתקין לא הצליח ליצור ספריה זמנית. בדוק את המקום הפנוי בדיסק ואת האישור להתקנת תוכנה.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">‏התקן את Chromium בטלפון שלך, ונשלח הודעת SMS למספר שמוגדר לשחזור החשבון: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">‏עזור לנו לשפר את Chromium</translation>
 <translation id="8290862415967981663">‏Chromium‏ חסם את הקובץ הזה כי הוא עלול להיות מסוכן.</translation>
-<translation id="8328596990138326317">‏Chromium זקוק להרשאת גישה אל המצלמה והמיקרופון בשביל האתר הזה.</translation>
 <translation id="8340674089072921962">‏בכתובת <ph name="USER_EMAIL_ADDRESS" /> השתמשו בעבר ב-Chromium</translation>
 <translation id="8453117565092476964">‏הארכיון של המתקין פגום או שאינו חוקי. הורד שוב את Chromium.</translation>
 <translation id="8493179195440786826">‏Chromium אינו מעודכן</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 4fbf9965..6eb8aaea 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">拡張機能「<ph name="EXTENSION_NAME" />」により、Chromium の起動時に表示されるページが変更されました。</translation>
 <translation id="2483889755041906834">Chromium 内</translation>
 <translation id="2485422356828889247">アンインストール</translation>
-<translation id="2486653164587200256">Windows XP と Windows Vista はサポートされなくなったため、Chromium は正常に機能しない可能性があります。</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> を有効にするには Chromium を再起動してください</translation>
 <translation id="2535480412977113886">アカウントのログイン情報が最新ではないため、Chromium OS はデータを同期できませんでした。</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">危険なアプリやサイトの検出に役立てるために一部のシステム情報やページのコンテンツを Google に自動送信して、Chromium の安全性と利便性の向上にご協力ください。</translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> としてログインしています。ログインしているすべてのデバイスで、ブックマーク、履歴、その他の設定にアクセスできます。</translation>
 <translation id="459535195905078186">Chromium アプリ</translation>
-<translation id="4611246891205775468">このサイトを利用するには、Chromium でマイクの使用を許可する必要があります。</translation>
 <translation id="4621240073146040695">Chromium を再起動して更新を完了してください。</translation>
 <translation id="4677944499843243528">プロフィールは、別のコンピュータ(<ph name="HOST_NAME" />)の別の Chromium プロセス(<ph name="PROCESS_ID" />)で使用されているようです。Chromium はプロフィールが破損しないようにプロフィールをロックしています。他のプロセスがこのプロフィールを使用していないことが確実であれば、プロフィールのロックを解除して Chromium を再起動できます。</translation>
 <translation id="469338717132742108">Chromium OS のヘルプを見る</translation>
 <translation id="4708774505295300557">前回このパソコンで別のユーザー(<ph name="ACCOUNT_EMAIL_LAST" />)が Chromium にログインしました。情報を個別に保持するには、新しい Chromium ユーザーを作成してください。</translation>
 <translation id="4714956846925717402">Chromium をより迅速に起動</translation>
-<translation id="4825874709045178029">このサイトを利用するには、Chromium でカメラの使用を許可する必要があります。</translation>
 <translation id="4888717733111232871">mDNS トラフィックを許可する Chromium のインバウンド ルールです。</translation>
 <translation id="4943838377383847465">Chromium はバックグラウンド モードです。</translation>
 <translation id="4987820182225656817">ゲスト ユーザーは、記録を残さずに Chromium を使用できます。</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium は、ウェブページやアプリケーションを高速に実行できるスピードと、高い安定性を兼ね備えた非常に使いやすいウェブブラウザです。不正なソフトウェアやフィッシングに対する保護機能が組み込まれており、ウェブを安全にブラウジングできます。</translation>
 <translation id="6475912303565314141">この拡張機能では、Chromium の起動時に表示されるページも制御されます。</translation>
 <translation id="6485906693002546646">Chromium データの同期に <ph name="PROFILE_EMAIL" /> を使用しています。同期設定を更新する、または Google アカウントなしで Chromium を使用するには、<ph name="SETTINGS_LINK" /> にアクセスしてください。</translation>
-<translation id="6505742536731484931">このサイトで現在地を共有するには、Chromium で位置情報の使用を許可する必要があります。</translation>
 <translation id="6510925080656968729">Chromium をアンインストール</translation>
-<translation id="6526111688217511984">Chromium でファイルをダウンロードするにはストレージへのアクセス権が必要です。</translation>
 <translation id="6598877126913850652">Chromium の通知設定に移動</translation>
 <translation id="6676384891291319759">インターネットにアクセス</translation>
 <translation id="6717134281241384636">バージョンが新しい Chromium のプロフィールは使用できません。
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Chromium の特別なセキュリティ アップデートが適用されました。アップデートを反映するため、今すぐ Chromium を再起動してください(タブは復元されます)。</translation>
 <translation id="761356813943268536">Chromium がカメラとマイクを使用しています。</translation>
 <translation id="7617377681829253106">進化する Chromium</translation>
-<translation id="7641113255207688324">Chromium は既定のブラウザとして設定されていません。</translation>
 <translation id="7729447699958282447">お使いのドメインでは同期を利用できないため、Chromium はデータを同期できませんでした。</translation>
 <translation id="7745317241717453663">この端末から閲覧データを削除します。後でデータを取得するには、<ph name="USER_EMAIL" /> として Chromium にログインしてください。</translation>
 <translation id="7747138024166251722">インストーラーの一時ディレクトリを作成できませんでした。ディスクの空き領域とソフトウェアのインストール許可があることを確認してください。</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Chromium をスマートフォンにインストールしませんか。お客様のアカウント再設定用の電話番号(<ph name="PHONE_NUMBER" />)に、Google より SMS をお送りします。</translation>
 <translation id="8269379391216269538">Chromium の品質向上にご協力ください</translation>
 <translation id="8290862415967981663">このファイルは危険なファイルの可能性があるため、Chromium でブロックしました。</translation>
-<translation id="8328596990138326317">このサイトを利用するには、Chromium でカメラとマイクの使用を許可する必要があります。</translation>
 <translation id="8340674089072921962">Chromium の前回の使用者は <ph name="USER_EMAIL_ADDRESS" /> です</translation>
 <translation id="8453117565092476964">インストーラ アーカイブが壊れているか無効です。Chromium をダウンロードし直してください。</translation>
 <translation id="8493179195440786826">Chromium は古いバージョンです</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index 8ce9c46..937e9e4c 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
 <translation id="2483889755041906834">Chromium ನಲ್ಲಿ</translation>
 <translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation>
-<translation id="2486653164587200256">Windows XP ಅಥವಾ Windows Vista ರಲ್ಲಿ Chromium ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸಲದೇ ಇರುವುದರಿಂದ ಅದು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು Chromium ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2535480412977113886">ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳು ತೀರಾ ಹಳೆಯದಾಗಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="2572494885440352020">Chromium ಸಹಾಯಕ</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">ಅಪಾಯಕಾರಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೈಟ್‌ಗಳ ಪತ್ತೆಗೆ ಸಹಾಯಮಾಡಲು Google ಗೆ ಕೆಲವು ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಪುಟ ವಿಷಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ, ನೀವು Chromium ಅನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಸುರಕ್ಷಿತ ಮತ್ತು ಸರಳವಾಗಿ ಮಾಡಲು ಸಹಾಯ ಮಾಡಬಹುದು.</translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ. ನೀವು ಇದೀಗ ನಿಮ್ಮ ಎಲ್ಲಾ ಸೈನ್ ಇನ್ ಮಾಡಿರುವ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.</translation>
 <translation id="459535195905078186">Chromium ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
-<translation id="4611246891205775468">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="4621240073146040695">ಬಹುಪಾಲು ನವೀಕೃತವಾಗಿದೆ! ಅಪ್‌ಡೇಟ್ ಮಾಡುವುದನ್ನು ಮುಗಿಸಲು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="4677944499843243528">ಮತ್ತೊಂದು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ (<ph name="HOST_NAME" />) ಇನ್ನೊಂದು Chromium ಪ್ರಕ್ರಿಯೆಯ (<ph name="PROCESS_ID" />) ಮೂಲಕ ಪ್ರೊಫೈಲ್ ಬಳಕೆಯಲ್ಲಿರುವಂತೆ ತೋರುತ್ತಿದೆ. ಪ್ರೊಫೈಲ್ ದೋಷಪೂರಿತಗೊಳ್ಳದಂತೆ ಅದನ್ನು Chromium ಲಾಕ್ ಮಾಡಿದೆ. ಇತರ ಯಾವುದೇ ಪ್ರಕ್ರಿಯೆಗಳು ಈ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲವೆಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿದ್ದರೆ, ನೀವು ಪ್ರೊಫೈಲ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬಹುದು.</translation>
 <translation id="469338717132742108">Chromium OS ಕುರಿತಾಗಿ ಸಹಾಯ ಪಡೆಯಿರಿ</translation>
 <translation id="4708774505295300557">ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ <ph name="ACCOUNT_EMAIL_LAST" /> ನಂತೆ Chromium ಗೆ ಯಾರೋ ಈ ಹಿಂದೆಯೇ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ಹೊಸ Chromium ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ.</translation>
 <translation id="4714956846925717402">ವೇಗವಾಗಿ Chromium ಗೆ ತೆರಳಿ</translation>
-<translation id="4825874709045178029">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="4888717733111232871">mDNS ಟ್ರಾಫಿಕ್‌ಗೆ ಅನುಮತಿಸುವ ನಿಟ್ಟಿನಲ್ಲಿ Chromium ಗೆ ಒಳಬರುವ ನಿಯಮ.</translation>
 <translation id="4943838377383847465">Chromium ಹಿನ್ನೆಲೆ ಮೋಡ್‌ನಲ್ಲಿದೆ.</translation>
 <translation id="4987820182225656817">ಅತಿಥಿಗಳು ಏನನ್ನೂ ಉಳಿಸದೆಯೇ Chromium ಬಳಸಬಹುದು.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium ಒಂದು ವೆಬ್ ಬ್ರೌಸರ್ ಆಗಿದ್ದು ವೆಬ್‌ಪುಟಗಳನ್ನು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೇಗದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ವೇಗವಾದ, ಸ್ಥಿರವಾದ, ಮತ್ತು ಬಳಸಲು ಸುಲಭವಾಗಿದೆ. ಮಾಲ್‌ವೇರ್‌ನೊಂದಿಗೆ ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಿ ಹಾಗೂ Chromium ನಲ್ಲಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಫಿಶಿಂಗ್ ಸುರಕ್ಷೆಯೊಂದಿಗೆ ವೆಬ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ.</translation>
 <translation id="6475912303565314141">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation>
 <translation id="6485906693002546646">ನಿಮ್ಮ Chromium ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆ ಇಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ನವೀಕರಿಸಲು ಅಥವಾ Chromium ಬಳಸಲು, <ph name="SETTINGS_LINK" /> ಭೇಟಿ ನೀಡಿ.</translation>
-<translation id="6505742536731484931">ಈ ಸೈಟ್‌ ಮೂಲಕ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chromium ಗೆ ನಿಮ್ಮ ಸ್ಥಳದ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6510925080656968729">Chromium ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ</translation>
-<translation id="6526111688217511984">ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು Chromium ಗೆ ಸಂಗ್ರಹಣೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6598877126913850652">Chromium ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ</translation>
 <translation id="6676384891291319759">ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
 <translation id="6717134281241384636">Chromium ನ ಹೊಸ ಆವೃತ್ತಿಯಾಗಿರುವುದರಿಂದ ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಕೆಲವೊಂದು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು. ದಯವಿಟ್ಟು ಬೇರೆ ಒಂದು ಪೊಫೈಲ್ ಡೈರೆಕ್ಟರಿ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ ಅಥವಾ Chromium ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿ.</translation>
@@ -192,7 +187,6 @@
 <translation id="7577193603922410712">Chromium ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್‌ಡೇಟ್‌‌ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು (ನಿಮ್ಮ ಟ್ಯಾಬ್‌ಗಳನ್ನು ನಾವು ಮರುಸ್ಥಾಪಿಸುತ್ತೇವೆ).</translation>
 <translation id="761356813943268536">Chromium ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೋಫೋನ್ ಬಳಸುತ್ತಿದೆ.</translation>
 <translation id="7617377681829253106">Chromium ಇದೀಗ ಉತ್ತಮಗೊಂಡಿದೆ</translation>
-<translation id="7641113255207688324">Chromium ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅಲ್ಲ.</translation>
 <translation id="7729447699958282447">ನಿಮ್ಮ ಡೊಮೇನ್‌ನಲ್ಲಿ ಸಿಂಕ್ ಸೌಲಭ್ಯ ಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ Chromium ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="7745317241717453663">ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chromium ಗೆ ಸೈನ್‌ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="7747138024166251722">ಸ್ಥಾಪಕಕ್ಕೆ ತಾತ್ಕಾಲಿಕ ಡೈರೆಕ್ಟರಿಯನ್ನು ರಚಿಸಲಾಗಲಿಲ್ಲ. ಸಾಫ್ಟ್ವೇರ್ ಸ್ಥಾಪನೆ ಮಾಡಲು ಮುಕ್ತ ಡಿಸ್ಕ್ ಜಾಗ ಮತ್ತು ಅನುಮತಿಗಾಗಿ ದಯವಿಟ್ಟು ಪರಿಶೀಲಿಸಿ.</translation>
@@ -211,7 +205,6 @@
 <translation id="8222496066431494154">ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿ Chromium ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಖಾತೆ ಮರುಪ್ರಾಪ್ತಿ ಫೋನ್ ಸಂಖ್ಯೆ‌ಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="8290862415967981663">ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹೀಗಾಗಿ Chromium ಇದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
-<translation id="8328596990138326317">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ಅವರು ಮೊದಲಿನಿಂದಲೆ Chromium ಬಳಸುತ್ತಿದ್ದರು</translation>
 <translation id="8453117565092476964">ಸ್ಥಾಪಕ ಆರ್ಕೈವ್ ದೋಷಪೂರಿತವಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಪುನಃ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ.</translation>
 <translation id="8493179195440786826">Chromium ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 6ab5eff..08af6d1 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Chromium을 시작하면 표시되는 페이지가 '<ph name="EXTENSION_NAME" />' 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="2483889755041906834">Chromium에서</translation>
 <translation id="2485422356828889247">제거</translation>
-<translation id="2486653164587200256">Windows XP 또는 Windows Vista에서 더 이상 Chromium을 지원하지 않으므로 Chromium이 올바르게 작동하지 않을 수 있습니다.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />을(를) 사용하려면 Chromium을 다시 시작하세요.</translation>
 <translation id="2535480412977113886">계정의 로그인 세부정보가 오래되어 Chromium OS에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="2572494885440352020">Chromium 도우미</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">위험한 앱과 사이트를 감지할 수 있도록 일부 시스템 정보와 페이지 콘텐츠를 Google로 자동 전송함으로써 Chromium을 더 안전하고 편리하게 사용할 수 있습니다.</translation>
 <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" />(으)로 로그인되어 있습니다. 이제 로그인한 모든 기기에서 북마크, 방문 기록 및 기타 설정에 액세스할 수 있습니다.</translation>
 <translation id="459535195905078186">Chromium 앱</translation>
-<translation id="4611246891205775468">Chromium이 이 사이트에서 마이크에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="4621240073146040695">업데이트가 거의 완료되었습니다. 업데이트를 완료하려면 Chromium을 다시 시작하세요.</translation>
 <translation id="4677944499843243528">다른 컴퓨터(<ph name="HOST_NAME" />)의 다른 Chromium 프로세스(<ph name="PROCESS_ID" />)에서 프로필을 사용 중인 것 같습니다. 프로필이 손상되지 않도록 Chromium에서 잠금 설정했습니다. 다른 프로세스에서 프로필을 사용 중이지 않은 것이 확실한 경우 프로필을 잠금 해제하고 Chromium을 다시 시작하세요.</translation>
 <translation id="469338717132742108">Chromium OS 도움말 보기</translation>
 <translation id="4708774505295300557">다른 사용자가 이전에 이 컴퓨터에서 <ph name="ACCOUNT_EMAIL_LAST" />(으)로 Chromium에 로그인했습니다. 새로운 Chromium 사용자를 만들어 정보를 별도로 관리하세요.</translation>
 <translation id="4714956846925717402">Chromium을 더 빠르게 사용해 보세요.</translation>
-<translation id="4825874709045178029">Chromium이 이 사이트에서 카메라에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="4888717733111232871">Chromium이 mDNS 트래픽을 허용하는 인바운드 규칙입니다.</translation>
 <translation id="4943838377383847465">Chromium이 백그라운드 모드로 실행 중입니다.</translation>
 <translation id="4987820182225656817">손님으로 사용 기록을 남기지 않고 Chromium을 사용할 수 있습니다.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium은 빠른 속도로 웹페이지와 애플리케이션을 실행하는 웹 브라우저입니다. 빠르고 안정적이며 사용하기에 편리합니다. Chromium에 내장된 멀웨어 및 악성 코드 방지 기능을 사용하여 더욱 안전하게 웹을 검색하세요.</translation>
 <translation id="6475912303565314141">또한 Chromium을 시작할 때 표시되는 페이지를 설정합니다.</translation>
 <translation id="6485906693002546646">Chromium 콘텐츠를 동기화하기 위해 <ph name="PROFILE_EMAIL" />을(를) 사용 중입니다. 동기화 환경설정을 업데이트하거나 Google 계정 없이 Chromium을 사용하려면 <ph name="SETTINGS_LINK" />(으)로 이동하세요.</translation>
-<translation id="6505742536731484931">Chromium이 이 사이트와 위치를 공유하려면 내 위치에 액세스하도록 허용해야 합니다.</translation>
 <translation id="6510925080656968729">Chromium 설치 제거</translation>
-<translation id="6526111688217511984">Chromium에서 파일을 다운로드하려면 저장소 액세스 권한이 있어야 합니다.</translation>
 <translation id="6598877126913850652">Chromium 알림 설정으로 이동</translation>
 <translation id="6676384891291319759">인터넷 연결</translation>
 <translation id="6717134281241384636">Chromium의 최신 버전을 사용하기 때문에 프로필을 사용할 수 없습니다.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Chromium 특별 보안 업데이트를 방금 적용했습니다. 실행하려면 지금 다시 시작하세요. 다시 시작 후 탭은 복원됩니다.</translation>
 <translation id="761356813943268536">Chromium이 카메라와 마이크를 사용 중입니다.</translation>
 <translation id="7617377681829253106">더욱 업그레이드된 Chromium</translation>
-<translation id="7641113255207688324">Chromium이 기본 브라우저로 설정되어 있지 않습니다.</translation>
 <translation id="7729447699958282447">도메인에서 동기화를 사용할 수 없어 Chromium에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="7745317241717453663">인터넷 사용 기록이 기기에서 삭제됩니다. 나중에 데이터를 가져오려면 Chromium에 <ph name="USER_EMAIL" />(으)로 로그인하세요.</translation>
 <translation id="7747138024166251722">설치 프로그램이 임시 디렉토리를 만들지 못했습니다. 디스크 공간 및 설치 권한을 확인해 보세요.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">휴대전화에 Chromium을 설치하세요. 다음의 계정 복구 전화번호로 SMS를 보내 드리겠습니다. <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium 개선에 참여</translation>
 <translation id="8290862415967981663">이 파일은 위험할 수 있으므로 Chromium에서 차단했습니다.</translation>
-<translation id="8328596990138326317">Chromium이 이 사이트에서 카메라와 마이크에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" />에서 이전에 Chromium을 사용한 적이 있음</translation>
 <translation id="8453117565092476964">설치 프로그램 아카이브가 손상되었거나 잘못되었습니다. Chromium을 다시 다운로드하세요.</translation>
 <translation id="8493179195440786826">Chromium이 이전 버전임</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 4c6efb4..db6a73b 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Plėtinys „<ph name="EXTENSION_NAME" />“ pakeitė, kuris puslapis rodomas paleidus „Chromium“.</translation>
 <translation id="2483889755041906834">Naudojant „Chromium“</translation>
 <translation id="2485422356828889247">Pašalinti</translation>
-<translation id="2486653164587200256">„Chromium“ gali tinkamai neveikti, nes ji nebepalaikoma naudojant „Windows XP“ arba „Windows Vista“.</translation>
 <translation id="2527042973354814951">Iš naujo paleiskite „Chromium“, kad įgalintumėte „<ph name="PLUGIN_NAME" />“</translation>
 <translation id="2535480412977113886">„Chromium“ OS negali sinchronizuoti duomenų, nes paskyros išsami prisijungimo informacija yra pasenusi.</translation>
 <translation id="2572494885440352020">„Chromium“ pagalbos priemonė</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Galite padėti sustiprinti „Chromium“ saugą ir palengvinti jos naudojimą automatiškai „Google“ siųsdami tam tikrą sistemos informaciją ir puslapių turinį, kad padėtumėte aptikti pavojingas programas ir svetaines.</translation>
 <translation id="4567424176335768812">Esate prisijungę kaip <ph name="USER_EMAIL_ADDRESS" />. Dabar galite pasiekti savo žymes, istoriją ir kitus nustatymus visuose įrenginiuose, kuriuose esate prisijungę.</translation>
 <translation id="459535195905078186">„Chromium“ programos</translation>
-<translation id="4611246891205775468">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų mikrofoną šioje svetainėje.</translation>
 <translation id="4621240073146040695">Beveik atnaujinta! Paleiskite „Chromium“ iš naujo, kad būtų užbaigtas naujinimas.</translation>
 <translation id="4677944499843243528">Atrodo, kad profilį naudoja kitas „Chromium“ procesas (<ph name="PROCESS_ID" />) kitame kompiuteryje (<ph name="HOST_NAME" />). „Chromium“ užrakino profilį, kad jis nebūtų sugadintas. Jei esate tikri, kad jokie kiti procesai nenaudoja šio profilio, galite atrakinti profilį ir iš naujo paleisti „Chromium“.</translation>
 <translation id="469338717132742108">Gaukite pagalbos dėl „Chromium“ OS</translation>
 <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="4714956846925717402">Greičiau pasiekite „Chromium“</translation>
-<translation id="4825874709045178029">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų fotoaparatą šioje svetainėje.</translation>
 <translation id="4888717733111232871">„Chromium“ skirta taisyklė, pagal kurią leidžiamas mDNS srautas.</translation>
 <translation id="4943838377383847465">„Chromium“ veikia fono režimu.</translation>
 <translation id="4987820182225656817">Svečiai gali naudoti „Chromium“ nepalikdami jokių duomenų.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">„Chromium“ – tai žiniatinklio naršyklė, kurią naudojant akimirksniu paleidžiami tinklalapiai ir programos. Ji greita, stabili ir lengvai naudojama. Saugiau naršykite žiniatinklį naudodami į „Chromium“ integruotą apsaugą nuo kenkėjiškų programų ir sukčiavimo.</translation>
 <translation id="6475912303565314141">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chromium“.</translation>
 <translation id="6485906693002546646">Sinchronizuoti „Chromium“ duomenims naudojate <ph name="PROFILE_EMAIL" />. Jei norite atnaujinti sinchronizavimo nuostatą arba naudoti „Chromium“ be „Google“ paskyros, apsilankykite <ph name="SETTINGS_LINK" /> skiltyje.</translation>
-<translation id="6505742536731484931">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų vietovės informaciją ir bendrinti ją su šia svetaine.</translation>
 <translation id="6510925080656968729">Pašalinti „Chromium“</translation>
-<translation id="6526111688217511984">„Chromium“ reikia prieigos prie saugyklos failams atsisiųsti.</translation>
 <translation id="6598877126913850652">Eiti į „Chromium“ pranešimų nustatymus</translation>
 <translation id="6676384891291319759">Interneto prieiga</translation>
 <translation id="6717134281241384636">Jūsų profilis nenaudojamas, nes jis iš naujesnės versijos „Chromium“.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Ką tik pritaikytas specialus „Chromium“ skirtas saugos naujinys. Kad jis pradėtų veikti, turite dabar iš naujo paleisti „Chronium“ (atkursime visus skirtukus).</translation>
 <translation id="761356813943268536">„Chromium“ naudoja jūsų fotoaparatą ir mikrofoną.</translation>
 <translation id="7617377681829253106">„Chromium“ dabar dar tobulesnė</translation>
-<translation id="7641113255207688324">„Chromium“ nėra numatytoji naršyklė.</translation>
 <translation id="7729447699958282447">„Chromium“ negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation>
 <translation id="7745317241717453663">Atlikus šį veiksmą iš šio įrenginio bus ištrinti naršymo duomenys. Jei vėliau norėsite gauti duomenis, prisijunkite prie „Chromium“ kaip <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Diegimo programai nepavyko sukurti laikino katalogo. Patikrinkite, ar yra laisvos vietos diske ir, ar leidžiama įdiegti programinę įrangą.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Įdiekite „Chromium“ telefone. Išsiųsime SMS pranešimą paskyros atkūrimo telefono numeriu: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Padėkite tobulinti „Chromium“</translation>
 <translation id="8290862415967981663">Šis failas gali būti pavojingas, todėl „Chromium“ jį užblokavo.</translation>
-<translation id="8328596990138326317">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų fotoaparatą ir mikrofoną šioje svetainėje.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> anksčiau naudojo „Chromium“</translation>
 <translation id="8453117565092476964">Diegimo programos archyvas sugadintas arba negalioja. Atsisiųskite „Chromium“ dar kartą.</translation>
 <translation id="8493179195440786826">„Chromium“ versija yra pasenusi</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index 79ab541..47da01c 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Paplašinājums “<ph name="EXTENSION_NAME" />” mainīja iestatījumu, kura lapa tiek parādīta, palaižot pārlūku Chromium.</translation>
 <translation id="2483889755041906834">Pārlūkā Chromium</translation>
 <translation id="2485422356828889247">Atinstalēt</translation>
-<translation id="2486653164587200256">Iespējams, Chromium nedarbosies pareizi, jo tas vairs netiek atbalstīts operētājsistēmās Windows XP un Windows Vista.</translation>
 <translation id="2527042973354814951">Restartējiet Chromium, lai iespējotu spraudni <ph name="PLUGIN_NAME" />.</translation>
 <translation id="2535480412977113886">Chromium OS nevarēja sinhronizēt jūsu datus, jo jūsu konta pierakstīšanās informācija ir novecojusi.</translation>
 <translation id="2572494885440352020">Chromium palīgs</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Varat palīdzēt uzlabot Chromium drošību un lietošanas ērtumu, automātiski nosūtot noteiktu sistēmas informāciju un lapas saturu Google serveriem, lai palīdzētu noteikt bīstamas lietotnes un vietnes.</translation>
 <translation id="4567424176335768812">Jūs esat pierakstījies kā <ph name="USER_EMAIL_ADDRESS" />. Tagad varat piekļūt savām grāmatzīmēm, vēsturei un citiem iestatījumiem visās ierīcēs, kurās esat pierakstījies.</translation>
 <translation id="459535195905078186">Chromium lietotnes</translation>
-<translation id="4611246891205775468">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu mikrofonam šajā vietnē.</translation>
 <translation id="4621240073146040695">Atjaunināšana ir gandrīz pabeigta. Lai pabeigtu atjaunināšanu, atkārtoti palaidiet pārlūku Chromium.</translation>
 <translation id="4677944499843243528">Šķiet, ka profils tiek izmantots citā Chromium procesā (<ph name="PROCESS_ID" />) citā datorā (<ph name="HOST_NAME" />). Lai profils netiktu bojāts, pārlūkā Chromium tas ir bloķēts. Ja esat pārliecināts, ka šis profils netiek izmantots citos procesos, varat to atbloķēt un restartēt pārlūku Chromium.</translation>
 <translation id="469338717132742108">Saņemt palīdzību par Chromium OS</translation>
 <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="4714956846925717402">Ātrāka piekļuve pārlūkam Chromium</translation>
-<translation id="4825874709045178029">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu kamerai šajā vietnē.</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>
 <translation id="4987820182225656817">Viesi var izmantot Chromium, neatstājot nekādas pēdas.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium ir tīmekļa pārlūks, kas darbina tīmekļa lapas un lietojumprogrammas zibenīgā ātrumā. Tas ir ātrs, stabils un ērti lietojams. Pārlūkojiet tīmekli vēl drošāk ar aizsardzību pret ļaunprātīgu programmatūru un pikšķerēšanu, kas iebūvēta pārlūkā Chromium.</translation>
 <translation id="6475912303565314141">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chromium.</translation>
 <translation id="6485906693002546646">Chromium satura sinhronizēšanai jūs izmantojat kontu <ph name="PROFILE_EMAIL" />. Lai atjauninātu savas sinhronizācijas preferences vai izmantotu Chromium bez Google konta, dodieties uz: <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Pārlūkam Chromium ir nepieciešama piekļuve jūsu atrašanās vietas datiem, lai varētu tos kopīgot ar šo vietni.</translation>
 <translation id="6510925080656968729">Atinstalēt Chromium</translation>
-<translation id="6526111688217511984">Chromium ir nepieciešama piekļuve krātuvei, lai varētu lejupielādēt failus.</translation>
 <translation id="6598877126913850652">Pāriet uz Chromium paziņojumu iestatījumiem</translation>
 <translation id="6676384891291319759">Piekļūt internetam</translation>
 <translation id="6717134281241384636">Jūsu profilu nevar izmantot, jo tas ir no jaunākas Chromium versijas.
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">Tikko tika piemērots īpašs Chromium drošības atjauninājums. Restartējiet tūlīt, lai tas stātos spēkā (mēs atjaunosim jūsu cilnes).</translation>
 <translation id="761356813943268536">Pārlūkā Chromium tiek izmantota jūsu kamera un mikrofons.</translation>
 <translation id="7617377681829253106">Pārlūkā Chromium ir veikti uzlabojumi</translation>
-<translation id="7641113255207688324">Chromium nav jūsu noklusējuma pārlūks.</translation>
 <translation id="7729447699958282447">Chromium nevarēja sinhronizēt jūsu datus, jo jūsu domēnam nav pieejama sinhronizācija.</translation>
 <translation id="7745317241717453663">Veicot šo darbību, no šīs ierīces tiks dzēsti pārlūkošanas dati. Lai vēlāk izgūtu datus, pierakstieties pārlūkā Chromium kā <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Instalētājam neizdevās izveidot pagaidu katalogu. Lūdzu, pārbaudiet, vai diskā pietiek vietas un vai ir atļauja instalēt programmatūru.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">Instalējiet pārlūku Chromium savā tālrunī. Mēs nosūtīsim īsziņu uz jūsu konta atkopšanas tālruņa numuru: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Palīdziet uzlabot Chromium</translation>
 <translation id="8290862415967981663">Šis fails var būt bīstams, tāpēc Chromium to bloķēja.</translation>
-<translation id="8328596990138326317">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu kamerai un mikrofonam šajā vietnē.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> iepriekš izmantoja Chromium</translation>
 <translation id="8453117565092476964">Instalēšanas programmas arhīvs ir bojāts vai nav derīgs. Lejupielādējiet Chromium vēlreiz.</translation>
 <translation id="8493179195440786826">Chromium versija ir novecojusi</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index e02265d1..fee7e86 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം മാറ്റി.</translation>
 <translation id="2483889755041906834">Chromium-ത്തിൽ</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
-<translation id="2486653164587200256">Chromium ഇനി Windows XP അല്ലെങ്കിൽ Windows Vista-യെ പിന്തുണയ്‌ക്കാത്തതിനാൽ ഇത് ശരിയായി പ്രവർത്തിക്കാനിടയില്ല.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> പ്രവർത്തനക്ഷമമാക്കാൻ Chromium റീസ്റ്റാർട്ടുചെയ്യുക</translation>
 <translation id="2535480412977113886">നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Chromium OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="2572494885440352020">Chromium ഹെൽപ്പർ</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">അപകടകരമായ ആപ്‌സുകളെയും സൈറ്റുകളെയും തിരിച്ചറിയാൻ സഹായിക്കുന്ന ചില സിസ്‌റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും സ്വയമേവ Google-ന് അയയ്‌ക്കുന്നതിലൂടെ നിങ്ങൾക്ക് Chromium-ത്തിന്റെ ഉപയോഗം കൂടുതൽ സുരക്ഷിതവും എളുപ്പവുമാക്കാൻ സഹായിക്കാം.</translation>
 <translation id="4567424176335768812">നിങ്ങൾ <ph name="USER_EMAIL_ADDRESS" /> ആയി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്ന എല്ലാ ഉപകരണങ്ങളിലും ബുക്ക്‌മാർക്കുകളും ചരിത്രവും മറ്റ് ക്രമീകരണങ്ങളും ആക്‌സസ്സുചെയ്യാൻ ഇപ്പോൾ നിങ്ങൾക്കാകും.</translation>
 <translation id="459535195905078186">Chromium അപ്ലിക്കേഷനുകൾ</translation>
-<translation id="4611246891205775468">Chromium-ത്തിന് ഈ സൈറ്റിനായി നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="4621240073146040695">എകദേശം അപ്‌‌ടുഡേറ്റാണ്! അപ്‌ഡേറ്റുചെയ്യൽ പൂർത്തിയാക്കാൻ Chromium വീണ്ടും ആരംഭിക്കുക.</translation>
 <translation id="4677944499843243528">മറ്റൊരു കമ്പ്യൂട്ടറിൽ (<ph name="HOST_NAME" />) മറ്റൊരു Chromium പ്രോസസ്സ് (<ph name="PROCESS_ID" />) പ്രൊഫൈൽ ഉപയോഗിക്കുന്നതുപോലെ തോന്നുന്നു. Chromium പ്രൊഫൈൽ ലോക്കുചെയ്‌തതിനാൽ ഇത് കേടാകുകയില്ല.  മറ്റ് പ്രോസസ്സുകളൊന്നും ഈ പ്രൊഫൈൽ ഉപയോഗിക്കുന്നില്ലെന്ന് ഉറപ്പാണെങ്കിൽ നിങ്ങൾക്ക് പ്രൊഫൈൽ അൺലോക്കുചെയ്‌ത് Chromium വീണ്ടും സമാരംഭിക്കാം.</translation>
 <translation id="469338717132742108">Chromium OS ഉപയോഗിക്കുന്നതിനുള്ള സഹായം തേടുക</translation>
 <translation id="4708774505295300557">ഈ കമ്പ്യൂട്ടറിലെ Chromium-ത്തിൽ മുമ്പ് മറ്റാരോ <ph name="ACCOUNT_EMAIL_LAST" /> എന്നയാളായി സൈൻ ഇൻ ചെയ്‌തിരിക്കുന്നു. നിങ്ങളുടെ വിവരങ്ങൾ പ്രത്യേകം വേർതിരിച്ച് സൂക്ഷിക്കാൻ പുതിയ Chromium ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുക.</translation>
 <translation id="4714956846925717402">വേഗതയേറിയ Chromium സ്വന്തമാക്കുക</translation>
-<translation id="4825874709045178029">Chromium-ത്തിന് ഈ സൈറ്റിനായി നിങ്ങളുടെ ക്യാമറ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="4888717733111232871">mDNS ട്രാഫിക്ക് അനുവദിക്കാൻ Chromium-നുള്ള ഇൻബൗണ്ട് നയം.</translation>
 <translation id="4943838377383847465">Chromium പശ്ചാത്തല മോഡിലാണ്.</translation>
 <translation id="4987820182225656817">അതിഥികൾക്ക് ഒന്നും ശേഷിപ്പിക്കാതെ തന്നെ Chromium ഉപയോഗിക്കാനാകും.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">മിന്നൽ വേഗത്തിൽ വെബ്‌പേജുകളും അപ്ലിക്കേഷനുകളും പ്രവർത്തിപ്പിക്കുന്ന ഒരു വെബ് ബ്രൗസറാണ് Chromium. ഇത് വേഗതയുള്ളതും സ്ഥിരതയാർന്നതും ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതുമാണ്. Chromium-ൽ അന്തർനിർമ്മിതമായ ക്ഷുദ്രവെയർ, ഫിഷിംഗ് എന്നിവയ്‌ക്കെതിരായുള്ള പരിരക്ഷയോടൊപ്പം കൂടുതൽ സുരക്ഷിതമായി വെബ് ബ്രൗസുചെയ്യുക.</translation>
 <translation id="6475912303565314141">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജും അത് നിയന്ത്രിയ്ക്കും.</translation>
 <translation id="6485906693002546646">Chromium ഫയൽ സമന്വയിപ്പിക്കാൻ നിങ്ങൾ <ph name="PROFILE_EMAIL" /> ഉപയോഗിക്കുന്നു. നിങ്ങളുടെ സമന്വയ മുൻഗണനകൾ അപ്‌ഡേറ്റുചെയ്യാനോ ഒരു Google അക്കൗണ്ട് ഇല്ലാതെ Chromium ഉപയോഗിക്കാനോ, <ph name="SETTINGS_LINK" /> സന്ദർശിക്കുക.</translation>
-<translation id="6505742536731484931">Chromium-ത്തിന് ഈ സൈറ്റുമായി ലൊക്കേഷൻ പങ്കിടുന്നതിന് നിങ്ങളുടെ ലൊക്കേഷനിലേക്കുള്ള ആക്‌സസ് ആവശ്യമാണ്.</translation>
 <translation id="6510925080656968729">Chromium അൺഇൻസ്റ്റാളുചെയ്യുക</translation>
-<translation id="6526111688217511984">ഫയലുകൾ ഡൗൺലോഡുചെയ്യാൻ Chromium-ത്തിന് സ്റ്റോറേജ് ആക്‌സസ്സ് ആവശ്യമാണ്.</translation>
 <translation id="6598877126913850652">Chromium അറിയിപ്പ് ക്രമീകരണത്തിലേക്ക് പോവുക</translation>
 <translation id="6676384891291319759">ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="6717134281241384636">Chromium-ത്തിന്റെ ഏറ്റവും പുതിയ ഒരു പതിപ്പിൽ നിന്നുള്ളതായതിനാൽ നിങ്ങളുടെ പ്രൊഫൈൽ ഉപയോഗിക്കാൻ കഴിയില്ല.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Chromium-ത്തിനുള്ള ഒരു പ്രത്യേക സുരക്ഷാ അപ്‌ഡേറ്റ് ഇപ്പോൾ പ്രയോഗിച്ചിരിക്കുന്നു; ഇത് പ്രവർത്തനക്ഷമമാക്കാൻ നിങ്ങൾ ഇപ്പോൾ പുനഃരാരംഭിക്കേണ്ടതുണ്ട് (ഞങ്ങൾ നിങ്ങളുടെ ടാബുകൾ പുനഃസ്ഥാപിക്കും).</translation>
 <translation id="761356813943268536">Chromium നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു.</translation>
 <translation id="7617377681829253106">Chromium കൂടുതൽ മികച്ചതായി</translation>
-<translation id="7641113255207688324">Chromium നിങ്ങളുടെ സ്ഥിരസ്ഥിതി ബ്രൗസറല്ല.</translation>
 <translation id="7729447699958282447">നിങ്ങളുടെ ഡൊമെയ്‌നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Chromium-ത്തിന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="7745317241717453663">ഇത് ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ ബ്രൗസിംഗ് വിവരങ്ങളെ ഇല്ലാതാക്കും. പിന്നീട് വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chromium-ത്തിൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="7747138024166251722">ഇന്‍സ്റ്റാളറിന് ഒരു താല്‍ക്കാലിക ഡയറക്‌ടറി സൃഷ്‌ടിക്കാന്‍ കഴിഞ്ഞില്ല. സോഫ്റ്റ്‌വെയര്‍ ഇന്‍സ്റ്റാള്‍ ചെയ്യുന്നതിനായി സ്വതന്ത്രമായ ഡിസ്ക് സ്ഥലവും അനുമതിയും പരിശോധിക്കുക.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">നിങ്ങളുടെ ഫോണിൽ Chromium ഇൻസ്‌റ്റാൾ ചെയ്യുക. അക്കൗണ്ട് വീണ്ടെടുക്കൽ ഫോൺ നമ്പറിലേക്ക് ഞങ്ങളൊരു SMS അയയ്‌ക്കും: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="8290862415967981663">ഈ ഫയൽ അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ Chromium ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
-<translation id="8328596990138326317">Chromium-ത്തിന് ഈ സൈറ്റിനായി നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ആക്‌സസുചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> മുമ്പ് Chromium ഉപയോഗിച്ചിട്ടുണ്ട്</translation>
 <translation id="8453117565092476964">ഇൻസ്റ്റാളർ ആർക്കൈവ് കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. Chromium വീണ്ടും ഡൗൺലോഡുചെയ്യുക.</translation>
 <translation id="8493179195440786826">Chromium കാലഹരണപ്പെട്ടു</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index 0e576bf6..b6c6446 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -39,7 +39,6 @@
 <translation id="2396765026452590966">आपण Chromium प्रारंभ करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे "<ph name="EXTENSION_NAME" />" विस्ताराने बदलले आहे.</translation>
 <translation id="2483889755041906834">Chromium मध्ये</translation>
 <translation id="2485422356828889247">अनइन्स्टॉल करणे</translation>
-<translation id="2486653164587200256">Chromium यापुढे Windows XP किंवा Windows Vista वर समर्थित नसल्याने कदाचित ते योग्यरित्या कार्य करू शकत नाही.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> सक्षम करण्यासाठी Chromium रीस्टार्ट करा</translation>
 <translation id="2535480412977113886">आपले खाते साइन इन तपशील कालबाह्य झाल्यामुळे Chromium OS आपला डेटा संकालित करू शकले नाही.</translation>
 <translation id="2572494885440352020">Chromium मदतनीस</translation>
@@ -105,13 +104,11 @@
 <translation id="4488554488975128561">धोकादायम अ‍ॅप्स आणि साइट शोधण्यात मदत करण्यासाठी Google ला काही सिस्टम माहिती आणि पृष्ठ सामग्री स्वयंचलितपणे पाठवून आपण Chromium सुरक्षित आणि वापरण्यास सुलभ बनविण्यात मदत करू शकता.</translation>
 <translation id="4567424176335768812">आपण <ph name="USER_EMAIL_ADDRESS" /> म्हणून साइन इन केले आहे. आता आपण आपल्या सर्व साइन इन केलेल्या डिव्हाइसेसवरील आपल्या बुकमार्क, इतिहास आणि अन्य सेटिंग्जवर प्रवेश करू शकता.</translation>
 <translation id="459535195905078186">Chromium Apps</translation>
-<translation id="4611246891205775468">या साइटसाठी Chromiumला तुमचा मायक्रोफोन अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="4621240073146040695">अद्ययावत करणे जवळजवळ पूर्ण झाले! अपडेट करणे समाप्त करण्यासाठी Chromium रीलाँच करा.</translation>
 <translation id="4677944499843243528">प्रोफाईल दुसर्‍या संगणकावरील (<ph name="HOST_NAME" />) दुसर्‍या Chromium प्रक्रियेद्वारे (<ph name="PROCESS_ID" />) वापरले जात असल्याचे दिसते. Chromium ने प्रोफाईल लॉक केले आहे जेणेकरून ते दूषित होत नाही. कोणतीही अन्य प्रक्रिया हे प्रोफाईल वापरत नसल्याची आपल्याला खात्री असल्यास, आपण प्रोफाईल अनलॉक करू शकता आणि Chromium रीलाँच करू शकता.</translation>
 <translation id="469338717132742108">Chromium OS सह मदत मिळवा</translation>
 <translation id="4708774505295300557">कोणीतरी यापूर्वी या संगणकावरील Chromium मध्ये <ph name="ACCOUNT_EMAIL_LAST" /> म्हणून साइन इन केले. कृपया आपली माहिती स्वतंत्र ठेवण्यासाठी एक नवीन Chromium वापरकर्ता तयार करा.</translation>
 <translation id="4714956846925717402">Chromium वर अधिक जलद या</translation>
-<translation id="4825874709045178029">या साइटसाठी Chromiumला तुमचा कॅमेरा अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="4888717733111232871">mDNS रहदारीस अनुमती देण्यासाठी Chromium साठी अंतर्गामी नियम.</translation>
 <translation id="4943838377383847465">Chromium पार्श्वभूमी मोड मध्ये आहे.</translation>
 <translation id="4987820182225656817">अतिथी कोणतीही गोष्ट मागे न सोडता Chromium वापरू शकतात.</translation>
@@ -157,9 +154,7 @@
 <translation id="6403826409255603130">Chromium हे एक वेबब्राउझर असून ते वेबपृष्ठे आणि अॅप्लिकेशन अतिशय वेगात चालवते. हे वापरण्यास जलद, स्थिर आणि सोपे आहे. Chromium मध्ये तयार करण्यासाठी मालवेयर आणि फिशिंग संरक्षणासह वेब अधिक सुरक्षितपणे ब्राउझ करा.</translation>
 <translation id="6475912303565314141">आपण Chromium प्रारंभ करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation>
 <translation id="6485906693002546646">आपण आपली Chromium सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खाते न सोडता Chromium वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation>
-<translation id="6505742536731484931">या साइटसह तुमचे स्थान शेअर करण्यासाठी Chromium ला तुमच्या स्थानामध्ये अॅक्सेस हवा आहे.</translation>
 <translation id="6510925080656968729">Chromium विस्‍थापित करा</translation>
-<translation id="6526111688217511984">Chromium ला फायली डाउनलोड करण्यासाठी संचय प्रवेश आवश्यक आहे.</translation>
 <translation id="6598877126913850652">Chromium च्या सूचना सेटिंग्जमध्ये जा</translation>
 <translation id="6676384891291319759">इंटरनेटमध्ये प्रवेश करा</translation>
 <translation id="6717134281241384636">आपले प्रोफाइल वापरले जाऊ शकत नाही कारण ते Chromium च्‍या नवीनतम आवृत्तीमधील आहे.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Chromium साठी विशिष्ट सुरक्षा अपडेट आत्ताच लागू केले; ते प्रभावी होण्यासाठी आपण आता रीस्टार्ट करावे (आम्ही आपले टॅब पुनर्संचयित करू).</translation>
 <translation id="761356813943268536">Chromium आपला कॅमेरा आणि मायक्रोफोन वापरत आहे.</translation>
 <translation id="7617377681829253106">Chromium आता उत्कृष्ट झाले आहे</translation>
-<translation id="7641113255207688324">Chromium आपला डीफॉल्ट ब्राउझर नाही.</translation>
 <translation id="7729447699958282447">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chromium आपला डेटा संकालित करू शकले नाही.</translation>
 <translation id="7745317241717453663">हे या डिव्‍हाइस मधून आपला ब्राउझिंग डेटा हटवेल. नंतर आपला डेटा पुनर्प्राप्त करण्‍यासाठी, Chromium मध्ये <ph name="USER_EMAIL" /> म्हणून साइन इन करा.</translation>
 <translation id="7747138024166251722">इन्स्टॉलर तात्पुरती निर्देशिका तयार करू शकत नाही. कृपया सॉफ्टवेअर स्थापन करण्यासाठी रिक्त डिस्क स्थान आणि परवानगी करिता पहा.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">आपल्या फोनवर Chromium इंस्टॉल करा. आम्ही आपल्या या खाते पुनर्प्राप्ती फोन नंबरवर एक SMS पाठवू: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium उत्कृष्ट करण्यात मदत करा</translation>
 <translation id="8290862415967981663">ही फाईल कदाचित धोकादायक असू शकते, त्यामुळे Chromium ने ती अवरोधित केली आहे.</translation>
-<translation id="8328596990138326317">या साइटसाठी Chromiumला तुमचा कॅमेरा आणि मायक्रोफोन अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> पूर्वी Chromium वापरत होते</translation>
 <translation id="8453117565092476964">इन्स्टॉलर संग्रहण दूषित किंवा वैध आहे. कृपया Chromium पुन्हा डाउनलोड करा.</translation>
 <translation id="8493179195440786826">Chromium कालबाह्य आहे</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index 684971c..1526c465 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Sambungan "<ph name="EXTENSION_NAME" />" telah menukar halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
 <translation id="2483889755041906834">Dalam Chromium</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
-<translation id="2486653164587200256">Chromium mungkin tidak akan berfungsi dengan betul kerana tidak lagi disokong pada Windows XP atau Windows Vista.</translation>
 <translation id="2527042973354814951">Mulakan semula Chromium untuk mendayakan <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">OS Chromium tidak dapat menyegerakkan data anda kerana butiran log masuk akaun anda sudah lapuk.</translation>
 <translation id="2572494885440352020">Pembantu Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Anda boleh membantu menjadikan Chromium lebih selamat dan mudah digunakan dengan menghantar secara automatik beberapa maklumat sistem dan kandungan halaman kepada Google untuk membantu mengesan apl dan tapak yang berbahaya.</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="4611246891205775468">Chromium memerlukan kebenaran untuk mengakses mikrofon anda bagi tapak ini.</translation>
 <translation id="4621240073146040695">Hampir terkini! Lancarkan semula Chromium untuk menyelesaikan kemas kini.</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>
 <translation id="469338717132742108">Dapatkan bantuan berkenaan Chromium OS</translation>
 <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="4714956846925717402">Akses Chromium dengan lebih cepat</translation>
-<translation id="4825874709045178029">Chromium memerlukan kebenaran untuk mengakses kamera anda bagi tapak ini.</translation>
 <translation id="4888717733111232871">Peraturan masuk bagi Chromium untuk membolehkan trafik mDNS.</translation>
 <translation id="4943838377383847465">Chromium dalam mod latar belakang.</translation>
 <translation id="4987820182225656817">Tetamu boleh menggunakan Chromium tanpa meninggalkan apa-apa.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium merupakan penyemak imbas yang mengendalikan laman web dan aplikasi dengan kelajuan sepantas kilat. Chromium cepat, stabil dan mudah digunakan. Semak imbas web lebih selamat dengan perlindungan perisian hasad dan pancingan data terbina dalam Chromium.</translation>
 <translation id="6475912303565314141">Sambungan turut mengawal halaman yang ditunjukkan apabila anda memulakan Chromium.</translation>
 <translation id="6485906693002546646">Anda menggunakan <ph name="PROFILE_EMAIL" /> untuk menyegerakkan bahan digital chromium anda. Untuk mengemas kini pilihan penyegerakan anda atau menggunakan Chromium tanpa akaun Google, lawati <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium memerlukan akses kepada lokasi anda untuk berkongsi lokasi dengan tapak ini.</translation>
 <translation id="6510925080656968729">Nyahpasang Chromium</translation>
-<translation id="6526111688217511984">Chromium memerlukan akses storan untuk memuat turun fail.</translation>
 <translation id="6598877126913850652">Pergi ke tetapan pemberitahuan Chromium</translation>
 <translation id="6676384891291319759">Akses Internet</translation>
 <translation id="6717134281241384636">Profil anda tidak boleh digunakan kerana profil anda dihasilkan dari versi Chromium yang lebih baharu.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Kemas kini keselamatan khas untuk Chromium baru sahaja dilakukan; anda perlu memulakan semula peranti ini sekarang supaya kemas kini ini berkesan (kami akan memulihkan tab anda).</translation>
 <translation id="761356813943268536">Chromium menggunakan kamera dan mikrofon anda.</translation>
 <translation id="7617377681829253106">Chromium kini lebih baik</translation>
-<translation id="7641113255207688324">Chromium bukan penyemak imbas lalai anda.</translation>
 <translation id="7729447699958282447">Chromium tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation>
 <translation id="7745317241717453663">Tindakan ini akan memadamkan data semakan imbas anda daripada peranti ini. Untuk mendapatkan kembali data anda kemudian, log masuk ke Chromium sebagai <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Pemasang tidak dapat mencipta direktori sementara. Sila semak ruang cakera kosong dan kebenaran untuk memasang perisian.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Pasang Chromium pada telefon anda. Kami akan menghantar SMS ke nombor telefon pemulihan akaun anda: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Bantu menjadikan Chromium lebih baik</translation>
 <translation id="8290862415967981663">Fail ini mungkin berbahaya, maka Chromium telah menyekatnya.</translation>
-<translation id="8328596990138326317">Chromium memerlukan kebenaran untuk mengakses kamera dan mikrofon anda bagi tapak ini.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> menggunakan Chromium sebelum ini</translation>
 <translation id="8453117565092476964">Arkib pemasang rosak atau tidak sah. Sila muat turun Chromium sekali lagi.</translation>
 <translation id="8493179195440786826">Chromium sudah usang</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index e63dc4a..3319f2c 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">De extensie '<ph name="EXTENSION_NAME" />' heeft gewijzigd welke pagina wordt weergegeven wanneer je Chromium start.</translation>
 <translation id="2483889755041906834">In Chromium</translation>
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
-<translation id="2486653164587200256">Chromium werkt wellicht niet naar behoren omdat dit niet langer wordt ondersteund op Windows XP en Windows Vista.</translation>
 <translation id="2527042973354814951">Chromium opnieuw opstarten om <ph name="PLUGIN_NAME" /> in te schakelen</translation>
 <translation id="2535480412977113886">Chromium OS kan je gegevens niet synchroniseren omdat de inloggegevens voor je account zijn verouderd.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Je kunt helpen Chromium veiliger en gebruiksvriendelijker te maken door automatisch bepaalde systeeminformatie en paginacontent naar Google te verzenden om te helpen bij de detectie van gevaarlijke apps en sites.</translation>
 <translation id="4567424176335768812">Je bent ingelogd als <ph name="USER_EMAIL_ADDRESS" />. Je hebt nu toegang tot je bladwijzers, geschiedenis en andere instellingen op al je apparaten waarop je bent ingelogd.</translation>
 <translation id="459535195905078186">Chromium-apps</translation>
-<translation id="4611246891205775468">Chromium heeft toegangsrechten voor je microfoon nodig voor deze site.</translation>
 <translation id="4621240073146040695">Updaten bijna voltooid. Start Chromium opnieuw op om de update te voltooien.</translation>
 <translation id="4677944499843243528">Het profiel lijkt te worden gebruikt door een ander proces in Chromium (<ph name="PROCESS_ID" />) op een andere computer (<ph name="HOST_NAME" />). Het profiel is vergrendeld zodat het niet wordt beschadigd. Als je zeker weet dat dit profiel niet door andere processen wordt gebruikt, kun je het profiel ontgrendelen en Chromium opnieuw starten.</translation>
 <translation id="469338717132742108">Hulp bij Chromium OS</translation>
 <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="4714956846925717402">Chromium sneller openen</translation>
-<translation id="4825874709045178029">Chromium heeft toegangsrechten voor je camera nodig voor deze site.</translation>
 <translation id="4888717733111232871">Inkomende regel zodat Chromium mDNS-verkeer toestaat.</translation>
 <translation id="4943838377383847465">Chromium bevindt zich in de achtergrondmodus.</translation>
 <translation id="4987820182225656817">Gasten kunnen Chromium gebruiken zonder iets achter te laten.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium is een webbrowser die webpagina's en applicaties bliksemsnel uitvoert. Chromium is snel, stabiel en eenvoudig in gebruik. Surf veiliger op internet met de in Chromium ingebouwde beveiliging tegen malware en phishing.</translation>
 <translation id="6475912303565314141">Hiermee wordt ook gecontroleerd welke pagina wordt weergegeven wanneer je Chromium start.</translation>
 <translation id="6485906693002546646">Je gebruikt <ph name="PROFILE_EMAIL" /> om je Chromium-bestanden te synchroniseren. Als je je synchronisatievoorkeur wilt bijwerken of Chromium zonder een Google-account wilt gebruiken, ga je naar '<ph name="SETTINGS_LINK" />'.</translation>
-<translation id="6505742536731484931">Chromium heeft toegang tot je locatie nodig om je locatie met deze site te delen.</translation>
 <translation id="6510925080656968729">Chromium verwijderen</translation>
-<translation id="6526111688217511984">Chromium heeft toegang tot de opslag nodig om deze bestanden te downloaden.</translation>
 <translation id="6598877126913850652">Ga naar instellingen voor Chromium-meldingen</translation>
 <translation id="6676384891291319759">Verbinding maken met internet</translation>
 <translation id="6717134281241384636">Je profiel kan niet worden gebruikt, omdat dit is gemaakt in een recentere versie van Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Er is zojuist een speciale beveiligingsupdate voor Chromium toegepast. Je moet Chromium nu opnieuw starten om de update toe te passen (je tabbladen worden hersteld).</translation>
 <translation id="761356813943268536">Chromium gebruikt je camera en microfoon.</translation>
 <translation id="7617377681829253106">Chromium is nu nog beter</translation>
-<translation id="7641113255207688324">Chromium is niet je standaardbrowser.</translation>
 <translation id="7729447699958282447">Chromium kan je gegevens niet synchroniseren, omdat synchronisatie niet beschikbaar is voor je domein.</translation>
 <translation id="7745317241717453663">Hiermee worden je browsergegevens verwijderd van dit apparaat. Als je je gegevens later wilt terughalen, log je in bij Chromium als <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Het installatieprogramma kan geen tijdelijke directory maken. Controleer of je nog schijfruimte hebt en of je toestemming hebt om software te installeren.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Installeer Chromium op je telefoon. We sturen een sms naar het hersteltelefoonnummer voor je account: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Help ons Chromium beter te maken</translation>
 <translation id="8290862415967981663">Dit bestand kan gevaarlijk zijn en is daarom door Chromium geblokkeerd.</translation>
-<translation id="8328596990138326317">Chromium heeft toegangsrechten voor je camera en microfoon nodig voor deze site.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> maakte eerder gebruik van Chromium</translation>
 <translation id="8453117565092476964">Het archief van het installatieprogramma is beschadigd of ongeldig. Download Chromium opnieuw.</translation>
 <translation id="8493179195440786826">Chromium is verouderd</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index 9ec0203..4f7d7d29 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Utvidelsen «<ph name="EXTENSION_NAME" />» har endret hvilken side som vises når du starter Chromium.</translation>
 <translation id="2483889755041906834">I Chromium</translation>
 <translation id="2485422356828889247">Avinstaller</translation>
-<translation id="2486653164587200256">Chromium fungerer kanskje ikke riktig fordi den ikke lenger støttes på Windows XP eller Windows Vista.</translation>
 <translation id="2527042973354814951">Start Chromium på nytt for å slå på <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium kunne ikke synkronisere dataene fordi påloggingsopplysningene dine er foreldede.</translation>
 <translation id="2572494885440352020">Chromium-hjelper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Du kan bidra til å gjøre Chromium tryggere og enklere å bruke ved å sende Google noe systeminformasjon og sideinnhold automatisk. Dette hjelper oss med å oppdage farlige apper og nettsteder.</translation>
 <translation id="4567424176335768812">Du er logget på som <ph name="USER_EMAIL_ADDRESS" />. Nå kan du bruke bokmerkene, loggen og andre innstillinger på alle enhetene du er logget på.</translation>
 <translation id="459535195905078186">Chromium-apper</translation>
-<translation id="4611246891205775468">Chromium trenger tilgang til mikrofonen din for dette nettstedet.</translation>
 <translation id="4621240073146040695">Nå er oppdateringen snart ferdig! Start Chromium på nytt for å fullføre oppdateringen.</translation>
 <translation id="4677944499843243528">Profilen ser ut til å være i bruk av en annen Chromium-prosess (<ph name="PROCESS_ID" />) på en annen datamaskin (<ph name="HOST_NAME" />). Chromium har låst profilen slik at den ikke blir infisert. Hvis du er sikker på at ingen andre prosesser bruker profilen, kan du låse opp profilen og starte Chromium på nytt.</translation>
 <translation id="469338717132742108">Få hjelp med Chromium OS</translation>
 <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="4714956846925717402">Kom deg raskere til Chromium</translation>
-<translation id="4825874709045178029">Chromium trenger tilgang til kameraet ditt for dette nettstedet.</translation>
 <translation id="4888717733111232871">Regel om innkommende trafikk for Chromium for å tillate mDNS-trafikk.</translation>
 <translation id="4943838377383847465">Chromium er i bakgrunnsmodus.</translation>
 <translation id="4987820182225656817">Gjester kan bruke Chromium uten å etterlate seg spor.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium er en nettleser som kjører nettsider og programmer i lynets hastighet. Den er rask, stabil og enkel å bruke. Surf på nettet på en tryggere måte med Chromium, som har innebygd beskyttelse mot skadelig programvare og nettfisking.</translation>
 <translation id="6475912303565314141">Den styrer også hvilken side som vises når du starter Chromium.</translation>
 <translation id="6485906693002546646">Du bruker <ph name="PROFILE_EMAIL" /> for synkronisering av Chromium-tingene dine. For å oppdatere alternativene for synkronisering eller bruke Chromium uten Google-konto, kan du gå til <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium trenger tilgang til posisjonen din for å kunne dele den med dette nettstedet.</translation>
 <translation id="6510925080656968729">Avinstaller Chromium</translation>
-<translation id="6526111688217511984">Chromium må ha lagringstilgang for å laste ned filer.</translation>
 <translation id="6598877126913850652">Gå til innstillinger for Chromium-varsler</translation>
 <translation id="6676384891291319759">Gå til Internett</translation>
 <translation id="6717134281241384636">Profilen din kan ikke brukes fordi den kommer fra en nyere versjon av Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">En spesiell sikkerhetsoppdatering for Chromium ble nettopp installert. Du bør starte på nytt nå for at den skal tre i kraft (vi gjenoppretter fanene dine).</translation>
 <translation id="761356813943268536">Chromium bruker kameraet og mikrofonen din.</translation>
 <translation id="7617377681829253106">Nå er Chromium blitt enda bedre</translation>
-<translation id="7641113255207688324">Chromium er ikke standard nettleser.</translation>
 <translation id="7729447699958282447">Chromium kunne ikke synkronisere dataene dine. Dette skyldes at synkronisering ikke er tilgjengelig for domenet ditt.</translation>
 <translation id="7745317241717453663">Dette sletter nettlesingsdataene dine fra denne enheten. For å hente dataene dine igjen senere må du logge på Chromium som <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Installasjonsprogrammet kunne ikke opprette en midlertidig katalog. Kontroller at du har nok ledig diskplass og tillatelse til å installere programvare.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Installer Chromium på telefonen din. Vi sender en SMS til telefonnummeret ditt for kontogjenoppretting (<ph name="PHONE_NUMBER" />)</translation>
 <translation id="8269379391216269538">Bidra til å gjøre Chromium bedre</translation>
 <translation id="8290862415967981663">Denne filen kan være farlig, så Chromium har blokkert den.</translation>
-<translation id="8328596990138326317">Chromium trenger tilgang til kameraet ditt og mikrofonen din for dette nettstedet.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> brukte Chromium tidligere</translation>
 <translation id="8453117565092476964">Installasjonsarkivet er skadet eller ugyldig. Last ned Chromium på nytt.</translation>
 <translation id="8493179195440786826">Chromium er utdatert</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index a92068f..bdce89f 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Rozszerzenie „<ph name="EXTENSION_NAME" />” ustawiło inną stronę wyświetlaną po uruchomieniu Chromium.</translation>
 <translation id="2483889755041906834">W Chromium</translation>
 <translation id="2485422356828889247">Odinstaluj</translation>
-<translation id="2486653164587200256">Chromium może działać nieprawidłowo, bo nie jest już zgodny z Windows XP ani Windows Vista.</translation>
 <translation id="2527042973354814951">Uruchom ponownie Chromium, by włączyć wtyczkę <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">System operacyjny Chromium nie może zsynchronizować danych, ponieważ dane logowania na Twoje konto są nieaktualne.</translation>
 <translation id="2572494885440352020">Pomoc Chromium</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Możesz przyczynić się do zwiększenia bezpieczeństwa i komfortu korzystania z Chromium, automatycznie wysyłając do Google pewne informacje o systemie i część zawartości stron, by pomóc w wykrywaniu niebezpiecznych aplikacji i witryn.</translation>
 <translation id="4567424176335768812">Jesteś zalogowany jako <ph name="USER_EMAIL_ADDRESS" />. Teraz możesz korzystać ze swoich zakładek, historii i innych ustawień na wszystkich zalogowanych urządzeniach.</translation>
 <translation id="459535195905078186">Aplikacje Chromium</translation>
-<translation id="4611246891205775468">Chromium potrzebuje uprawnień dostępu do mikrofonu na tej stronie.</translation>
 <translation id="4621240073146040695">Już prawie gotowe. Uruchom ponownie Chromium, by zakończyć aktualizację.</translation>
 <translation id="4677944499843243528">Wygląda na to, że profil jest używany przez inny proces Chromium (<ph name="PROCESS_ID" />) na innym komputerze (<ph name="HOST_NAME" />). Chromium zablokowało profil, by zapobiec jego uszkodzeniu. Jeśli masz pewność, że żadne inne procesy nie używają tego profilu, możesz go odblokować i ponownie uruchomić Chromium.</translation>
 <translation id="469338717132742108">Skorzystaj z pomocy dotyczącej systemu operacyjnego Chromium</translation>
 <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="4714956846925717402">Szybciej uruchamiaj Chromium</translation>
-<translation id="4825874709045178029">Chromium potrzebuje uprawnień dostępu do aparatu na tej stronie.</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>
 <translation id="4987820182225656817">Goście mogą korzystać z Chromium, nie pozostawiając żadnych danych.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium to przeglądarka obsługująca strony i aplikacje z szybkością błyskawicy. Jest szybka, stabilna i łatwa w użyciu. Bezpiecznie przeglądaj internet dzięki wbudowanej w Chromium ochronie przed złośliwym oprogramowaniem i phishingiem.</translation>
 <translation id="6475912303565314141">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chromium.</translation>
 <translation id="6485906693002546646">Używasz adresu <ph name="PROFILE_EMAIL" /> do synchronizowania danych w Chromium. Aby zaktualizować ustawienia synchronizacji lub używać Chromium bez konta Google, wejdź na stronę <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium musi mieć dostęp do Twojej lokalizacji, by udostępnić ją tej stronie.</translation>
 <translation id="6510925080656968729">Odinstaluj Chromium</translation>
-<translation id="6526111688217511984">Chromium musi mieć dostęp do pamięci, by pobierać pliki.</translation>
 <translation id="6598877126913850652">Otwórz ustawienia powiadomień Chromium</translation>
 <translation id="6676384891291319759">Skorzystaj z internetu</translation>
 <translation id="6717134281241384636">Nie można użyć Twojego profilu, ponieważ pochodzi on z nowszej wersji Chromium.
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">Właśnie została zastosowana specjalna aktualizacja zabezpieczeń Chromium. Aby zmiany zostały wprowadzone, uruchom teraz ponownie przeglądarkę (karty zostaną przywrócone).</translation>
 <translation id="761356813943268536">Chromium używa Twojej kamery i mikrofonu.</translation>
 <translation id="7617377681829253106">Przeglądarka Chromium jest jeszcze lepsza</translation>
-<translation id="7641113255207688324">Chromium nie jest domyślną przeglądarką.</translation>
 <translation id="7729447699958282447">Chromium nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation>
 <translation id="7745317241717453663">Spowoduje to usunięcie danych przeglądania z tego urządzenia. Aby później odzyskać dane, zaloguj się w Chromium jako <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Instalator nie mógł utworzyć katalogu tymczasowego. Sprawdź, czy na dysku jest dość wolnego miejsca oraz sprawdź, czy posiadasz uprawnienia do instalowania programów.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">Zainstaluj Chromium na telefonie. Wyślemy SMS-a pod numer telefonu do odzyskiwania konta: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Pomóż ulepszyć Chromium</translation>
 <translation id="8290862415967981663">Ten plik może być niebezpieczny, dlatego został zablokowany przez Chromium.</translation>
-<translation id="8328596990138326317">Chromium potrzebuje uprawnień dostępu do aparatu i mikrofonu na tej stronie.</translation>
 <translation id="8340674089072921962">Użytkownik <ph name="USER_EMAIL_ADDRESS" /> wcześniej używał Chromium</translation>
 <translation id="8453117565092476964">Archiwum instalatora jest uszkodzone lub nieprawidłowe. Pobierz Chromium ponownie.</translation>
 <translation id="8493179195440786826">Chromium jest nieaktualny</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index 1926c1bf..81d46b5 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">A extensão "<ph name="EXTENSION_NAME" />" alterou a página que é exibida quando você inicia o Chromium.</translation>
 <translation id="2483889755041906834">No Chromium</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
-<translation id="2486653164587200256">É possível que o Chromium não funcione corretamente, porque ele não é mais compatível com o Windows XP ou Windows Vista.</translation>
 <translation id="2527042973354814951">Reiniciar o Chromium para ativar o plug-in <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">O Chromium OS não pôde sincronizar seus dados porque os detalhes de login da sua conta estão desatualizados.</translation>
 <translation id="2572494885440352020">Assistente do Chromium</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Você pode ajudar a tornar o Chromium mais seguro e mais fácil de usar, enviando automaticamente algumas informações do sistema e conteúdos de página ao Google para ajudar a detectar apps e sites perigosos.</translation>
 <translation id="4567424176335768812">Você está conectado como <ph name="USER_EMAIL_ADDRESS" />. Agora você pode acessar seus favoritos, histórico e outras configurações em todos os seus dispositivos conectados.</translation>
 <translation id="459535195905078186">Aplicativos do Chromium</translation>
-<translation id="4611246891205775468">O Chromium precisa de permissão para este site acessar seu microfone.</translation>
 <translation id="4621240073146040695">Atualização quase concluída. Reinicie o Chromium para concluí-la.</translation>
 <translation id="4677944499843243528">O perfil parece estar em uso por outro processo do Chromium (<ph name="PROCESS_ID" />) em outro computador (<ph name="HOST_NAME" />). O Chromium bloqueou o perfil para que ele não seja corrompido. Se você tiver certeza de que nenhum outro processo está usando este perfil, pode desbloquear o perfil e reiniciar o Chromium.</translation>
 <translation id="469338717132742108">Ajuda com o Chromium OS</translation>
 <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="4714956846925717402">Acessar o Chromium mais rapidamente</translation>
-<translation id="4825874709045178029">O Chromium precisa de permissão para este site acessar sua câmera.</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>
 <translation id="4987820182225656817">Convidados podem usar o Chromium sem deixar nada para trás.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">O Chromium é um navegador que executa páginas e aplicativos da web com alta velocidade. É rápido, estável e fácil de usar. Navegue na web com mais segurança com a proteção contra malware e phishing incorporada ao Chromium.</translation>
 <translation id="6475912303565314141">Controla também qual página deve ser exibida quando você inicia o Chromium.</translation>
 <translation id="6485906693002546646">Você está usando <ph name="PROFILE_EMAIL" /> para sincronizar suas informações do Chromium. Para atualizar suas preferências de sincronização ou usar o Chromium sem uma Conta do Google, vá para <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">O Chromium precisa acessar sua localização para compartilhá-la com este site.</translation>
 <translation id="6510925080656968729">Desinstalar Chromium</translation>
-<translation id="6526111688217511984">O Chromium precisa de acesso de armazenamento para fazer o download de arquivos.</translation>
 <translation id="6598877126913850652">Acessar as configurações de notificação do Chromium</translation>
 <translation id="6676384891291319759">Acessar a internet</translation>
 <translation id="6717134281241384636">Seu perfil não pode ser usado porque é de uma versão mais recente do Chromium. Alguns recursos podem não estar disponíveis. Especifique outro diretório de perfil ou use uma versão mais recente do Chromium.</translation>
@@ -193,7 +188,6 @@
 <translation id="7577193603922410712">Uma atualização especial de segurança para o Chromium acaba de ser aplicada. Para que ela tenha efeito, é necessário reiniciar agora (suas guias serão restauradas).</translation>
 <translation id="761356813943268536">O Chromium está usando sua câmera e seu microfone.</translation>
 <translation id="7617377681829253106">O Chromium ficou ainda melhor</translation>
-<translation id="7641113255207688324">O Chromium não é seu navegador padrão.</translation>
 <translation id="7729447699958282447">O Chromium não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation>
 <translation id="7745317241717453663">Essa ação excluirá seus dados de navegação deste dispositivo. Para recuperá-los mais tarde, faça login no Chromium como <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">O instalador não conseguiu criar um diretório temporário. Verifique se há espaço livre em disco e se há permissão para a instalação de software.</translation>
@@ -212,7 +206,6 @@
 <translation id="8222496066431494154">Instale o Chromium no seu smartphone. Enviaremos um SMS para o número de recuperação da sua conta: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Ajudar a melhorar o Chromium</translation>
 <translation id="8290862415967981663">Esse arquivo pode ser perigoso, por isso ele foi bloqueado pelo Chromium.</translation>
-<translation id="8328596990138326317">O Chromium precisa de permissão para este site acessar sua câmera e seu microfone.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> estava usando o Chromium anteriormente</translation>
 <translation id="8453117565092476964">O arquivo de instalação está corrompido ou não é válido. Faça o download do Chromium novamente.</translation>
 <translation id="8493179195440786826">O Chromium está desatualizado</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 367dc07..9fe3387 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">A extensão "<ph name="EXTENSION_NAME" />" alterou a página apresentada quando inicia o Chromium.</translation>
 <translation id="2483889755041906834">No Chromium</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
-<translation id="2486653164587200256">O Chromium pode não funcionar corretamente, uma vez que já não é suportado no Windows XP ou no Windows Vista.</translation>
 <translation id="2527042973354814951">Reinicie o Chromium para ativar o <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">O SO Chromium não conseguiu sincronizar os dados porque os detalhes de início de sessão da sua conta estão desatualizados.</translation>
 <translation id="2572494885440352020">Ajuda do Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Pode ajudar a tornar o Chromium mais seguro e fácil de utilizar ao enviar automaticamente algumas informações do sistema e conteúdo de páginas para a Google para ajudar a detetar aplicações e sites perigosos.</translation>
 <translation id="4567424176335768812">Tem sessão iniciada como <ph name="USER_EMAIL_ADDRESS" />. Agora, pode aceder aos seus marcadores, ao histórico e a outras definições em todos os dispositivos com sessão iniciada.</translation>
 <translation id="459535195905078186">Aplicações do Chromium</translation>
-<translation id="4611246891205775468">O Chromium necessita de autorização de acesso ao microfone para este site.</translation>
 <translation id="4621240073146040695">Quase atualizado! Reinicie o Chromium para concluir a atualização.</translation>
 <translation id="4677944499843243528">O perfil parece estar a ser utilizado por outro processo do Chromium (<ph name="PROCESS_ID" />) noutro computador (<ph name="HOST_NAME" />). O Chromium bloqueou o perfil para que não seja danificado. Se tiver a certeza de que não existem outros processos a utilizar este perfil, pode desbloqueá-lo e reiniciar o Chromium.</translation>
 <translation id="469338717132742108">Obter ajuda relacionada com o SO Chromium</translation>
 <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="4714956846925717402">Aceder mais rapidamente ao Chromium</translation>
-<translation id="4825874709045178029">O Chromium necessita de autorização de acesso à câmara para este site.</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>
 <translation id="4987820182225656817">Os convidados podem utilizar o Chromium sem perder qualquer funcionalidade.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">O Chromium é um navegador de internet que executa páginas Web e aplicações à velocidade da luz. É rápido, estável e fácil de utilizar. Navegue na Web com mais segurança, com proteção contra programas maliciosos e phishing integrada no Chromium.</translation>
 <translation id="6475912303565314141">Também controla a página apresentada quando inicia o Chromium.</translation>
 <translation id="6485906693002546646">Está a utilizar <ph name="PROFILE_EMAIL" /> para sincronizar os seus conteúdos do Chromium. Para atualizar a preferência de sincronização ou utilizar o Chromium sem uma Conta Google, aceda a <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">O Chromium necessita de aceder à sua localização para a partilhar com este site.</translation>
 <translation id="6510925080656968729">Desinstalar o Chromium</translation>
-<translation id="6526111688217511984">O Chromium necessita de acesso ao armazenamento para transferir ficheiros.</translation>
 <translation id="6598877126913850652">Aceder às definições de notificação do Chromium</translation>
 <translation id="6676384891291319759">Aceder à Internet</translation>
 <translation id="6717134281241384636">O seu perfil não pode ser utilizado porque pertence a uma versão mais recente do Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Acabou de ser instalada uma atualização de segurança especial para o Chromium. Deve reiniciar agora para que tenha efeito (iremos restaurar os seus separadores).</translation>
 <translation id="761356813943268536">O Chromium está a utilizar a câmara e o microfone.</translation>
 <translation id="7617377681829253106">O Chromium está ainda melhor</translation>
-<translation id="7641113255207688324">O Chromium não é seu navegador predefinido.</translation>
 <translation id="7729447699958282447">O Chromium não conseguiu sincronizar os dados porque a Sincronização não está disponível para o seu domínio.</translation>
 <translation id="7745317241717453663">Esta ação elimina os dados de navegação deste dispositivo. Para recuperar os dados mais tarde, inicie sessão no Chromium como <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">O programa de instalação não conseguiu criar um directório temporário. Verifique se há espaço livre no disco e permissão para a instalação do software.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Instale o Chromium no telemóvel. Vamos enviar uma SMS para o seu número de telefone de recuperação de conta: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Ajudar a melhorar o Chromium</translation>
 <translation id="8290862415967981663">Este ficheiro pode ser perigoso. Como tal, o Chromium bloqueou-o.</translation>
-<translation id="8328596990138326317">O Chromium necessita de autorização de acesso à câmara e ao microfone para este site.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> estava a utilizar o Chromium</translation>
 <translation id="8453117565092476964">O arquivo do programa de instalação está corrompido ou não é válido. Transfira novamente o Chromium.</translation>
 <translation id="8493179195440786826">O Chromium Está Desatualizado</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index 456bdc5..622c319 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Extensia „<ph name="EXTENSION_NAME" />” a modificat ce pagină se afișează când pornești Chromium.</translation>
 <translation id="2483889755041906834">În Chromium</translation>
 <translation id="2485422356828889247">Dezinstalează</translation>
-<translation id="2486653164587200256">Este posibil ca Chromium să nu funcționeze corespunzător, deoarece nu mai este acceptat pe Windows XP sau Windows Vista.</translation>
 <translation id="2527042973354814951">Repornește Chromium pentru a activa <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Sistemul de operare Chromium nu a putut sincroniza datele, deoarece detaliile de conectare pentru contul dvs. nu sunt actualizate.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Ne poți ajuta să facem Chromium mai sigur și mai ușor de folosit trimițând automat anumite informații despre sistem și conținutul paginii la Google pentru a detecta aplicațiile și site-urile periculoase.</translation>
 <translation id="4567424176335768812">V-ați conectat ca <ph name="USER_EMAIL_ADDRESS" />. Acum vă puteți accesa marcajele, istoricul și alte setări de pe toate dispozitivele pe care v-ați conectat.</translation>
 <translation id="459535195905078186">Aplicații Chromium</translation>
-<translation id="4611246891205775468">Chromium are nevoie de permisiune ca să acceseze microfonul pentru acest site.</translation>
 <translation id="4621240073146040695">Aproape actualizat! Repornește Chromium pentru a finaliza actualizarea.</translation>
 <translation id="4677944499843243528">Profilul pare să fie utilizat de alt proces Chromium (<ph name="PROCESS_ID" />), pe alt computer (<ph name="HOST_NAME" />). Chromium a blocat profilul pentru a nu se deteriora. Dacă aveți certitudinea că profilul nu este utilizat de alte procese, puteți să îl deblocați și să relansați Chromium.</translation>
 <translation id="469338717132742108">Obține ajutor privind sistemul de operare Chromium</translation>
 <translation id="4708774505295300557">Un alt utilizator s-a conectat anterior la Chromium pe acest computer ca <ph name="ACCOUNT_EMAIL_LAST" />. Creează un nou utilizator Chromium pentru a-ți păstra separat datele.</translation>
 <translation id="4714956846925717402">Accesează Chromium mai rapid</translation>
-<translation id="4825874709045178029">Chromium are nevoie de permisiune ca să acceseze camera foto pentru acest site.</translation>
 <translation id="4888717733111232871">Regula de intrare pentru Chromium pentru a permite traficul mDNS.</translation>
 <translation id="4943838377383847465">Chromium este în modul fundal.</translation>
 <translation id="4987820182225656817">Invitații pot folosi Chromium fără a lăsa nicio urmă.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium este un browser web care rulează pagini web și aplicații cu viteza fulgerului. Este rapid, stabil și ușor de utilizat. Navigați pe web în condiții de mai multă siguranță, beneficiind de o protecție sporită, încorporată în Chromium, împotriva programelor malware și a tentativelor de phishing.</translation>
 <translation id="6475912303565314141">Stabilește și ce pagină se afișează când porniți Chromium.</translation>
 <translation id="6485906693002546646">În prezent, folosiți <ph name="PROFILE_EMAIL" /> pentru a sincroniza datele Chromium. Pentru a actualiza preferințele de sincronizare sau pentru a folosi Chromium fără un Cont Google, accesați <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium are nevoie de acces la locația ta ca să permită accesul la locație pentru acest site.</translation>
 <translation id="6510925080656968729">Dezinstalați Chromium</translation>
-<translation id="6526111688217511984">Pentru a descărca fișiere, Chromium necesită acces la stocare.</translation>
 <translation id="6598877126913850652">Accesează setările pentru notificări Chromium</translation>
 <translation id="6676384891291319759">Accesează internetul</translation>
 <translation id="6717134281241384636">Profilul dvs. nu poate fi utilizat, deoarece provine de la o versiune mai nouă a sistemului de operare Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Tocmai a fost aplicată o actualizare de securitate specială pentru Chromium; pentru ca aceasta să intre în vigoare, îți recomandăm să repornești acum (filele vor fi restabilite).</translation>
 <translation id="761356813943268536">Chromium utilizează camera foto și microfonul.</translation>
 <translation id="7617377681829253106">Chromium a devenit și mai bun</translation>
-<translation id="7641113255207688324">Chromium nu este browserul dvs. prestabilit.</translation>
 <translation id="7729447699958282447">Chromium nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation>
 <translation id="7745317241717453663">Astfel, se vor șterge datele de navigare de pe acest dispozitiv. Pentru a recupera datele mai târziu, conectează-te la Chromium ca <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Programul de instalare nu a putut crea un director temporar. Verifică dacă există suficient spațiu liber și dacă ai drepturile necesare pentru a instala software-ul.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Instalează Chromium pe telefon. Vom trimite un SMS la numărul de telefon de recuperare a contului: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Să îmbunătățim Chromium</translation>
 <translation id="8290862415967981663">Este posibil ca fișierul să fie periculos, așadar Chromium l-a blocat.</translation>
-<translation id="8328596990138326317">Chromium are nevoie de permisiune ca să acceseze camera foto și microfonul pentru acest site.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> a folosit Chromium anterior</translation>
 <translation id="8453117565092476964">Arhiva programului de instalare este deteriorată sau nevalidă. Descărcați din nou Chromium.</translation>
 <translation id="8493179195440786826">Chromium nu este actualizat</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index d3d7b252..d94c010 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Расширение "<ph name="EXTENSION_NAME" />" изменило стартовую страницу Chromium.</translation>
 <translation id="2483889755041906834">В Chromium</translation>
 <translation id="2485422356828889247">Удалить</translation>
-<translation id="2486653164587200256">В работе Chromium могут возникать сбои, так как браузер больше не поддерживает Windows XP и Windows Vista.</translation>
 <translation id="2527042973354814951">Перезапустите Chromium, чтобы включить плагин "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="2535480412977113886">Не удалось выполнить синхронизацию, так как учетные данные устарели.</translation>
 <translation id="2572494885440352020">Помощник по Chromium</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Вы можете автоматически отправлять системную информацию и контент страниц в Google, чтобы помочь улучшить распознавание опасных приложений и сайтов. Давайте вместе сделаем Chromium ещё удобнее и безопаснее!</translation>
 <translation id="4567424176335768812">Вы вошли с помощью аккаунта <ph name="USER_EMAIL_ADDRESS" />. Ваши закладки, история и другие настройки теперь доступны на всех устройствах, где вы используете этот аккаунт.</translation>
 <translation id="459535195905078186">Приложения Chromium</translation>
-<translation id="4611246891205775468">Для этого сайта Chromium запрашивает разрешение на доступ к микрофону.</translation>
 <translation id="4621240073146040695">Чтобы завершить обновление, перезапустите Chromium.</translation>
 <translation id="4677944499843243528">Скорее всего, профиль используется другим процессом Chromium (<ph name="PROCESS_ID" />) на другом компьютере (<ph name="HOST_NAME" />). Во избежание сбоев профиль был заблокирован. Если вы уверены, что профиль не используется другими процессами, разблокируйте его и перезапустите Chromium.</translation>
 <translation id="469338717132742108">Справка Chromium OS</translation>
 <translation id="4708774505295300557">Ранее вход в Chromium на этом компьютере выполнялся из аккаунта <ph name="ACCOUNT_EMAIL_LAST" />. Чтобы ваши данные хранились отдельно, создайте новый профиль Chromium.</translation>
 <translation id="4714956846925717402">Открывайте Chromium ещё быстрее</translation>
-<translation id="4825874709045178029">Для этого сайта Chromium запрашивает разрешение на доступ к камере.</translation>
 <translation id="4888717733111232871">Разрешить в Chromium передачу входящего трафика по протоколу mDNS</translation>
 <translation id="4943838377383847465">Chromium работает в фоновом режиме</translation>
 <translation id="4987820182225656817">Используйте Chromium в гостевом режиме, если не хотите сохранять данные о посещенных сайтах.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium – браузер, который открывает веб-страницы и приложения за секунды. Он быстр, стабилен в работе и прост в использовании. Встроенная в Chromium защита от мошенничества и вредоносного ПО обеспечивает максимально безопасную работу в Интернете.</translation>
 <translation id="6475912303565314141">Кроме того, расширение изменило стартовую страницу Chromium.</translation>
 <translation id="6485906693002546646">Для синхронизации данных Chromium используется аккаунт <ph name="PROFILE_EMAIL" />. Изменить параметры синхронизации или отключить аккаунт можно в <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Для этого сайта Chromium запрашивает доступ к данным о вашем местоположении.</translation>
 <translation id="6510925080656968729">Удаление Chromium</translation>
-<translation id="6526111688217511984">Для скачивания файлов браузеру Chromium требуется доступ к хранилищу.</translation>
 <translation id="6598877126913850652">Открыть настройки уведомлений Chromium</translation>
 <translation id="6676384891291319759">Доступ в Интернет</translation>
 <translation id="6717134281241384636">Ваш профиль не может использоваться, поскольку он от более новой версии Chromium.
@@ -194,7 +189,6 @@
 <translation id="7577193603922410712">Установлено специальное обновление системы безопасности. Перезапустите Chromium (все вкладки будут восстановлены).</translation>
 <translation id="761356813943268536">Chromium использует камеру и микрофон.</translation>
 <translation id="7617377681829253106">Chromium становится все лучше</translation>
-<translation id="7641113255207688324">Chromium не назначен браузером по умолчанию.</translation>
 <translation id="7729447699958282447">Chromium не удалось синхронизировать данные, поскольку служба Sync недоступна для вашего домена.</translation>
 <translation id="7745317241717453663">Данные о работе в браузере будут удалены с устройства. Чтобы восстановить их позже, войдите в Chromium как <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Программе установки не удалось создать временный каталог. Возможно, у вас нет прав на установку приложений или недостаточно места на диске.</translation>
@@ -213,7 +207,6 @@
 <translation id="8222496066431494154">Установите Chromium на телефон. Мы отправим SMS на номер, указанный в вашем аккаунте: <ph name="PHONE_NUMBER" />.</translation>
 <translation id="8269379391216269538">Сделайте Chromium лучше</translation>
 <translation id="8290862415967981663">Chromium заблокировал этот файл как потенциально опасный.</translation>
-<translation id="8328596990138326317">Для этого сайта Chromium запрашивает разрешение на доступ к камере и микрофону.</translation>
 <translation id="8340674089072921962">Адрес <ph name="USER_EMAIL_ADDRESS" /> уже использовался в Chromium</translation>
 <translation id="8453117565092476964">Установочный архив поврежден. Скачайте Chromium ещё раз.</translation>
 <translation id="8493179195440786826">Версия Chromium устарела</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index 746984a1..90638d2 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Rozšírenie „<ph name="EXTENSION_NAME" />“ zmenilo stránku, ktorá sa zobrazí pri spustení prehliadača Chromium.</translation>
 <translation id="2483889755041906834">V prehliadači Chromium</translation>
 <translation id="2485422356828889247">Odinštalovať</translation>
-<translation id="2486653164587200256">Chromium nemusí fungovať správne, pretože v systémoch Windows XP a Windows Vista už nie je podporovaný.</translation>
 <translation id="2527042973354814951">Ak chcete zapnúť doplnok <ph name="PLUGIN_NAME" />, reštartujte Chromium</translation>
 <translation id="2535480412977113886">Systému OS Chromium sa nepodarilo synchronizovať vaše údaje, pretože vaše prihlasovacie údaje účtu sú zastarané.</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Automatickým odosielaním niektorých informácií o systéme a obsahu stránok môžete prispieť k lepšiemu rozpoznávaniu nebezpečných aplikácií a webov a zvýšiť tak zabezpečenie prehliadača Chromium a zjednodušiť jeho používanie.</translation>
 <translation id="4567424176335768812">Ste prihlásený/-á ako <ph name="USER_EMAIL_ADDRESS" />. Teraz môžete na všetkých zariadeniach, kde ste prihlásený/-á, pristupovať k svojim záložkám, histórii a ďalším nastaveniam.</translation>
 <translation id="459535195905078186">Aplikácie Chromium</translation>
-<translation id="4611246891205775468">Chromium potrebuje povolenie pre tento web na prístup k vášmu mikrofónu.</translation>
 <translation id="4621240073146040695">Aktualizácia je takmer hotová! Dokončite ju reštartovaním prehliadača Chromium.</translation>
 <translation id="4677944499843243528">Zdá sa, že profil používa ďalší proces prehliadača Chromium (<ph name="PROCESS_ID" />) na inom počítači (<ph name="HOST_NAME" />). Prehliadač Chromium daný profil uzamkol, aby sa nepoškodil. Ak s istotou viete, že tento profil nepoužívajú žiadne iné procesy, môžete ho odomknúť a prehliadač Chromium znova spustiť.</translation>
 <translation id="469338717132742108">Pomoc so systémom Chromium OS</translation>
 <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="4714956846925717402">Prechádzajte do prehliadača Chromium rýchlejšie</translation>
-<translation id="4825874709045178029">Chromium potrebuje povolenie pre tento web na prístup k vášmu fotoaparátu.</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>
 <translation id="4987820182225656817">Hostia môžu používať prehliadač Chromium bez toho, aby po sebe zanechali akékoľvek informácie.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium je webový prehliadač, ktorý spúšťa webové stránky a aplikácie rýchlosťou svetla. Je rýchly, stabilný a ľahko sa používa. S ochranou proti škodlivému softvéru a phishingu, ktorá je zabudovaná do prehliadača Chromium, môžete prehliadať web bezpečnejšie.</translation>
 <translation id="6475912303565314141">Tiež určuje, ktorá stránka sa zobrazí pri spustení prehliadača Chromium.</translation>
 <translation id="6485906693002546646">Na synchronizáciu prehliadača Chromium používate účet <ph name="PROFILE_EMAIL" />. Ak chcete upraviť predvoľby synchronizácie alebo používať prehliadač Chromium bez účtu Google, prejdite na <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium potrebuje prístup k vašej polohe, aby ju mohol zdieľať s týmto webom.</translation>
 <translation id="6510925080656968729">Odinštalovať Chromium</translation>
-<translation id="6526111688217511984">Chromium potrebuje na sťahovanie súborov prístup k úložisku.</translation>
 <translation id="6598877126913850652">Prejsť do nastavení upozornení prehliadača Chromium</translation>
 <translation id="6676384891291319759">Prístup do siete Internet</translation>
 <translation id="6717134281241384636">Váš profil sa nedá použiť, pretože pochádza z novšej verzie prehliadača Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">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="761356813943268536">Chromium používa vašu kameru a mikrofón.</translation>
 <translation id="7617377681829253106">Prehliadač Chromium bol práve vylepšený</translation>
-<translation id="7641113255207688324">Prehliadač Chromium nie je váš predvolený prehliadač.</translation>
 <translation id="7729447699958282447">Prehliadaču Chromium sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation>
 <translation id="7745317241717453663">Táto akcia odstráni zo zariadenia údaje prehliadania. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do prehliadača Chromium ako <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Inštalátor nemohol vytvoriť dočasný priečinok. Skontrolujte úroveň zaplnenia disku a povolenie na inštaláciu softvéru.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Nainštalujte si Chromium do telefónu. Pošleme vám správu SMS na telefónne číslo na obnovenie účtu: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Pomôže zlepšiť Chromium</translation>
 <translation id="8290862415967981663">Tento súbor môže byť nebezpečný, a preto ho prehliadač Chromium zablokoval.</translation>
-<translation id="8328596990138326317">Chromium potrebuje povolenie pre tento web na prístup k vášmu fotoaparátu a mikrofónu</translation>
 <translation id="8340674089072921962">Účet <ph name="USER_EMAIL_ADDRESS" /> predtým používal Chromium</translation>
 <translation id="8453117565092476964">Archív inštalácie je poškodený alebo neplatný. Stiahnite prehliadač Chromium znova.</translation>
 <translation id="8493179195440786826">Prehliadač Chromium je zastaraný</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index dcc935a..0bbe1c9 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Zaradi razširitve »<ph name="EXTENSION_NAME" />« se je spremenila stran, ki je prikazana, ko zaženete Chromium.</translation>
 <translation id="2483889755041906834">V Chromiumu</translation>
 <translation id="2485422356828889247">Odstranjevanje</translation>
-<translation id="2486653164587200256">Chromium morda ne bo deloval pravilno, ker ni več podprt v sistemu Windows XP ali Windows Vista.</translation>
 <translation id="2527042973354814951">Znova zaženite Chromium, če želite omogočiti <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS ni mogel sinhronizirati podatkov, ker so podatki za prijavo v račun zastareli.</translation>
 <translation id="2572494885440352020">Pomoč za Chromium</translation>
@@ -107,13 +106,11 @@
 <translation id="4488554488975128561">S samodejnim pošiljanjem nekaterih informacij o sistemu in vsebine strani Googlu, s čimer pomagate pri hitrejšem zaznavanju nevarnih aplikacij in spletnih mest, lahko pomagate narediti Chromium varnejši in preprostejši za uporabo.</translation>
 <translation id="4567424176335768812">Prijavljeni ste kot <ph name="USER_EMAIL_ADDRESS" />. Zdaj imate dostop do zaznamkov, zgodovine in drugih nastavitev v vseh napravah, v katerih ste prijavljeni.</translation>
 <translation id="459535195905078186">Aplikacije za Chromium</translation>
-<translation id="4611246891205775468">Chromium potrebuje dovoljenje za dostop do mikrofona za to spletno mesto.</translation>
 <translation id="4621240073146040695">Samo še malo. Znova zaženite Chromium, da dokončate posodobitev.</translation>
 <translation id="4677944499843243528">Videti je, da profil uporablja drug Chromiumov proces (<ph name="PROCESS_ID" />) v drugem računalniku (<ph name="HOST_NAME" />). Chromium je zaklenil profil, da se ne poškoduje. Če ste prepričani, da tega profila ne uporabljajo nobeni drugi procesi, ga lahko odklenete in znova zaženete Chromium.</translation>
 <translation id="469338717132742108">Pomoč za OS Chromium</translation>
 <translation id="4708774505295300557">Nekdo se je prijavil v Chromium v tem računalniku kot <ph name="ACCOUNT_EMAIL_LAST" />. Ustvarite nov uporabniški profil za Chromium, če želite, da bodo vaši podatki ločeni.</translation>
 <translation id="4714956846925717402">Hitrejši dostop do Chromiuma</translation>
-<translation id="4825874709045178029">Chromium potrebuje dovoljenje za dostop do fotoaparata za to spletno mesto.</translation>
 <translation id="4888717733111232871">Pravilo za dohodni promet za Chromium, ki omogoča promet mDNS.</translation>
 <translation id="4943838377383847465">Chromium se izvaja v ozadju.</translation>
 <translation id="4987820182225656817">Gostje lahko uporabljajo Chromium, ne da bi za seboj pustili kar koli.</translation>
@@ -159,9 +156,7 @@
 <translation id="6403826409255603130">Chromium je spletni brskalnik, ki bliskovito odpira spletne strani in izvaja aplikacije. Je hiter, stabilen in preprost za uporabo. Z vgrajeno zaščito pred zlonamerno programsko opremo in lažnim predstavljanjem je brskanje po spletu varno.</translation>
 <translation id="6475912303565314141">Določa tudi, katera stran je prikazana, ko zaženete Chromium.</translation>
 <translation id="6485906693002546646">Za sinhronizacijo stvari v Chromiumu uporabljate <ph name="PROFILE_EMAIL" />. Če želite posodobiti nastavitve sinhroniziranja ali uporabljati Chromium brez Google Računa, odprite <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium potrebuje dostop do vaše lokacije, da jo bo lahko delil s tem spletnim mestom.</translation>
 <translation id="6510925080656968729">Odstranitev Chromiuma</translation>
-<translation id="6526111688217511984">Chromium potrebuje za prenos datotek dostop do shrambe.</translation>
 <translation id="6598877126913850652">Odprite nastavitve obvestil v Chromiumu</translation>
 <translation id="6676384891291319759">Dostop do interneta</translation>
 <translation id="6717134281241384636">Vašega profila ni mogoče uporabiti, ker je iz novejše različice Chromiuma.
@@ -201,7 +196,6 @@
 <translation id="7577193603922410712">Pravkar je bila nameščena posebna varnostna posodobitev za Chromium. Zdaj znova zaženite računalnik, da bo uveljavljena (vaše zavihke bomo obnovili).</translation>
 <translation id="761356813943268536">Chromium uporablja vašo kamero in mikrofon.</translation>
 <translation id="7617377681829253106">Chromium je pravkar postal še boljši</translation>
-<translation id="7641113255207688324">Chromium ni privzeti brskalnik.</translation>
 <translation id="7729447699958282447">Chromium ni mogel sinhronizirati podatkov, ker sinhronizacija ni na voljo za vašo domeno.</translation>
 <translation id="7745317241717453663">S tem bodo iz te naprave izbrisani podatki brskanja. Če želite pozneje prenesti podatke, se v Chromium prijavite kot <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Namestitvenemu programu ni uspelo ustvariti začasnega imenika. Preverite, ali je na disku dovolj prostora in ali imate dovoljenje za namestitev programske opreme.</translation>
@@ -220,7 +214,6 @@
 <translation id="8222496066431494154">Namestite Chromium v telefonu. Na telefonsko številko za obnovitev računa bomo poslali SMS: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Pomagajte izboljšati Chromium</translation>
 <translation id="8290862415967981663">Ta datoteka je morda nevarna, zato jo je Chromium blokiral.</translation>
-<translation id="8328596990138326317">Chromium potrebuje dovoljenje za dostop do fotoaparata in mikrofona za to spletno mesto.</translation>
 <translation id="8340674089072921962">Uporabnik <ph name="USER_EMAIL_ADDRESS" /> je prej uporabljal Chromium</translation>
 <translation id="8453117565092476964">Arhiv namestitvenega programa je poškodovan ali neveljaven. Znova prenesite Chromium.</translation>
 <translation id="8493179195440786826">Chromium je zastarel</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index cf5467e1..c6d93df 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Додатак „<ph name="EXTENSION_NAME" />“ је променио страницу која се приказује када покренете Chromium.</translation>
 <translation id="2483889755041906834">У Chromium-у</translation>
 <translation id="2485422356828889247">Деинсталирај</translation>
-<translation id="2486653164587200256">Chromium можда неће исправно функционисати зато што више није подржан на Windows XP-у или Windows Vista-и.</translation>
 <translation id="2527042973354814951">Поново покрените Chromium да бисте омогућили <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium ОС не може да синхронизује податке зато што су подаци за пријављивање на налог застарели.</translation>
 <translation id="2572494885440352020">Chromium помагач</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Можете да помогнете да Chromium буде безбеднији и лакши за коришћење тако што ћете Google-у аутоматски слати неке системске информације и садржаје страница да бисмо открили опасне апликације и сајтове.</translation>
 <translation id="4567424176335768812">Пријављени сте као <ph name="USER_EMAIL_ADDRESS" />. Сада можете да приступате обележивачима, историји и другим подешавањима на свим уређајима на којима сте пријављени.</translation>
 <translation id="459535195905078186">Chromium апликације</translation>
-<translation id="4611246891205775468">Chromium тражи дозволу да приступи микрофону за овај сајт.</translation>
 <translation id="4621240073146040695">Ажурирање је скоро готово! Поново покрените Chromium да бисте довршили ажурирање.</translation>
 <translation id="4677944499843243528">Изгледа да се профил користи у неком другом Chromium процесу (<ph name="PROCESS_ID" />) на неком другом рачунару (<ph name="HOST_NAME" />). Chromium је закључао профил да не би био оштећен. Ако сте сигурни да ниједан други процес не користи овај профил, можете да откључате профил и поново покренете Chromium.</translation>
 <translation id="469338717132742108">Пронађите помоћ за Chromium OS</translation>
 <translation id="4708774505295300557">Неко се претходно пријавио на Chromium на овом рачунару као <ph name="ACCOUNT_EMAIL_LAST" />. Направите новог Chromium корисника да би информације биле раздвојене.</translation>
 <translation id="4714956846925717402">Брже приступајте Chromium-у</translation>
-<translation id="4825874709045178029">Chromium тражи дозволу да приступи камери за овај сајт.</translation>
 <translation id="4888717733111232871">Правило за долазни саобраћај за Chromium да би се омогућио mDNS саобраћај.</translation>
 <translation id="4943838377383847465">Chromium је у позадинском режиму.</translation>
 <translation id="4987820182225656817">Гости могу да користе Chromium а да не остављају никакве трагове.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium је веб прегледач који покреће веб-странице и апликације муњевитом брзином. Брз је, стабилан и једноставан за коришћење. Прегледајте Веб безбедније са заштитом од малвера и „пецања“ која је уграђена у Chromium.</translation>
 <translation id="6475912303565314141">Контролише и страницу која се приказује када покренете Chromium.</translation>
 <translation id="6485906693002546646">Користите <ph name="PROFILE_EMAIL" /> за синхронизацију Chromium садржаја. Да бисте ажурирали подешавање синхронизације или користили Chromium без Google налога, посетите <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium тражи приступ вашој локацији да бисте је делили са овим сајтом.</translation>
 <translation id="6510925080656968729">Деинсталирај Chromium</translation>
-<translation id="6526111688217511984">Chromium-у је потребан приступ меморијском простору да би преузимао датотеке.</translation>
 <translation id="6598877126913850652">Иди на подешавања обавештења за Chromium</translation>
 <translation id="6676384891291319759">Приступите Интернету</translation>
 <translation id="6717134281241384636">Профил не може да се користи јер је из новије верзије Chromium-а.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">Посебно безбедносно ажурирање за Chromium је управо примењено. Сада треба поново да покренете Chromium да би ажурирање ступило на снагу (вратићемо картице).</translation>
 <translation id="761356813943268536">Chromium користи камеру и микрофон.</translation>
 <translation id="7617377681829253106">Управо смо побољшали Chromium</translation>
-<translation id="7641113255207688324">Chromium није подразумевани прегледач.</translation>
 <translation id="7729447699958282447">Chromium не може да синхронизује податке јер Синхронизација није доступна за домен.</translation>
 <translation id="7745317241717453663">Овим ћете избрисати податке прегледања са овог уређаја. Да бисте касније вратили податке, пријавите се у Chromium као <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Програм за инсталацију није могао да направи привремени директоријум. Проверите да ли имате слободног простора на диску, као и дозволу да инсталирате софтвер.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Инсталирајте Chromium на телефону. Послаћемо вам SMS на број телефона за враћање приступа налогу: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Помозите нам да побољшамо Chromium</translation>
 <translation id="8290862415967981663">Ова датотека је можда опасна, па ју је Chromium блокирао.</translation>
-<translation id="8328596990138326317">Chromium тражи дозволу да приступи камери и микрофону за овај сајт.</translation>
 <translation id="8340674089072921962">Корисник <ph name="USER_EMAIL_ADDRESS" /> је претходно користио Chromium</translation>
 <translation id="8453117565092476964">Архива програма за инсталацију је оштећена или неважећа. Преузмите Chromium поново.</translation>
 <translation id="8493179195440786826">Chromium је застарео</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 148d9ecb..a8eaf57 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Tillägget <ph name="EXTENSION_NAME" /> har ändrat vilken sida som visas när du startar Chromium.</translation>
 <translation id="2483889755041906834">I Chromium</translation>
 <translation id="2485422356828889247">Avinstallera</translation>
-<translation id="2486653164587200256">Chromium kanske inte fungerar ordentligt eftersom den inte längre stöds på Windows XP och Windows Vista.</translation>
 <translation id="2527042973354814951">Starta om Chromium om du vill aktivera <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Det gick inte att synkronisera data med Chromium eftersom inloggningsuppgifterna för kontot är inaktuella.</translation>
 <translation id="2572494885440352020">Hjälp för Chromium</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Du kan bidra till att göra Chromium säkrare och enklare att använda genom låta viss systeminformation och visst sidinnehåll skickas till Google automatiskt i syfte att identifiera skadliga appar och webbplatser.</translation>
 <translation id="4567424176335768812">Du är inloggad som <ph name="USER_EMAIL_ADDRESS" />. Nu kan du komma åt dina bokmärken, historik och andra inställningar på alla enheter som du är inloggad på.</translation>
 <translation id="459535195905078186">Chromium-appar</translation>
-<translation id="4611246891205775468">Du behöver ge Chromium behörighet att använda mikrofonen på den här webbplatsen.</translation>
 <translation id="4621240073146040695">Nästan klart! Slutför uppdateringen genom att starta om Chromium.</translation>
 <translation id="4677944499843243528">Profilen verkar användas av en annan Chromium-process (<ph name="PROCESS_ID" />) på en annan dator (<ph name="HOST_NAME" />). Profilen har låsts så att den inte används på otillåtet sätt. Om du är säker på att profilen inte används i några andra processer låser du upp profilen och startar om Chromium.</translation>
 <translation id="469338717132742108">Få hjälp med Chromium OS</translation>
 <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="4714956846925717402">Öppna Chromium snabbare</translation>
-<translation id="4825874709045178029">Du behöver ge Chromium behörighet att använda kameran på den här webbplatsen.</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>
 <translation id="4987820182225656817">Gäster kan använda Chromium utan att lämna spår efter sig.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium är en webbläsare som kör webbsidor och appar blixtsnabbt. Den är snabb, stabil och lätt att använda. Surfa säkrare med Chromiums skydd mot skadliga program och lösenordsfiske.</translation>
 <translation id="6475912303565314141">Det styr också vilken sida som visas när du startar Chromium.</translation>
 <translation id="6485906693002546646">Du synkroniserar dina grejer i Chromium med <ph name="PROFILE_EMAIL" />. Om du vill ändra synkroniseringsinställningen eller använda Chromium utan ett Google-konto besöker du <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Du behöver ge Chromium åtkomstbehörighet till din plats om den ska kunna delas med webbplatsen.</translation>
 <translation id="6510925080656968729">Avinstallera Chromium</translation>
-<translation id="6526111688217511984">Chromium måste ha åtkomst till lagringsutrymmet om det ska gå att ladda ned filer.</translation>
 <translation id="6598877126913850652">Öppna aviseringsinställningarna för Chromium</translation>
 <translation id="6676384891291319759">Gå ut på Internet</translation>
 <translation id="6717134281241384636">Din profil kan inte användas eftersom den kommer från en nyare version av Chromium.
@@ -200,7 +195,6 @@
 <translation id="7577193603922410712">En särskild säkerhetsuppdatering för Chromium installerades precis. Tillämpa uppdateringen genom att starta om (vi återställer flikarna).</translation>
 <translation id="761356813943268536">Chromium använder din kamera och mikrofon.</translation>
 <translation id="7617377681829253106">Vi har förbättrat Chromium</translation>
-<translation id="7641113255207688324">Chromium är inte din standardwebbläsare.</translation>
 <translation id="7729447699958282447">Chromium kunde inte synkronisera data eftersom synkronisering inte är tillgängligt för domänen.</translation>
 <translation id="7745317241717453663">Webbinformationen raderas från enheten. Logga in i Chromium som <ph name="USER_EMAIL" /> om du vill kunna återställa datan senare.</translation>
 <translation id="7747138024166251722">Det gick inte att skapa en tillfällig katalog för installationsfilen. Kontrollera diskutrymmet och att du har behörighet att installera program.</translation>
@@ -219,7 +213,6 @@
 <translation id="8222496066431494154">Installera Chromium på mobilen. Vi skickar ett sms till ditt telefonnummer för kontoåterställning: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Bidra till att förbättra Chromium</translation>
 <translation id="8290862415967981663">Filen kan vara farlig och har blockerats av Chromium.</translation>
-<translation id="8328596990138326317">Du behöver ge Chromium behörighet att använda kameran och mikrofonen på den här webbplatsen.</translation>
 <translation id="8340674089072921962">Chromium användes tidigare av <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="8453117565092476964">Arkivet för installationsfilen är skadat eller ogiltigt. Ladda ned Chromium igen.</translation>
 <translation id="8493179195440786826">Den här versionen av Chromium är inaktuell</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index e0cee52..5acf006 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -40,7 +40,6 @@
 <translation id="2396765026452590966">Kiendelezi hiki "<ph name="EXTENSION_NAME" />" kimebadilisha ukurasa unaoonyeshwa unapoanzisha Chromium.</translation>
 <translation id="2483889755041906834">Katika Chromium</translation>
 <translation id="2485422356828889247">Ondoa</translation>
-<translation id="2486653164587200256">Huenda Chromium isifanye kazi vizuri kwa sababu haitumiki tena kwenye Windows XP au Windows Vista.</translation>
 <translation id="2527042973354814951">Zima na uwashe Chromium tena ili uwashe <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Mfumo wa Uendeshaji wa Chromium haukuweza kusawazisha data yako kwa sababu maelezo yako ya kuingia katika akaunti yanahitaji kusasishwa.</translation>
 <translation id="2572494885440352020">Kisaidizi cha Chromium</translation>
@@ -106,13 +105,11 @@
 <translation id="4488554488975128561">Unaweza kusaidia kuifanya Chromium salama na rahisi zaidi kutumia kwa kutuma kiotomatiki maelezo fulani ya mfumo na maudhui ya ukurasa kwa Google ili kusaidia kugundua programu na tovuti hatari.</translation>
 <translation id="4567424176335768812">Umeingia katika akaunti kama <ph name="USER_EMAIL_ADDRESS" />. Sasa unaweza kupata alamisho, historia, na mipangilio yako mingine kwenye vifaa vyako vyote vilivyoingia katika akaunti.</translation>
 <translation id="459535195905078186">Programu za Chromium</translation>
-<translation id="4611246891205775468">Chromium inahitaji ruhusa ya kufikia maikrofoni yako kwa ajili ya tovuti hii.</translation>
 <translation id="4621240073146040695">Inakaribia kukamilisha kusasishwa! Anzisha Chromium upya ili ukamilishe kusasisha.</translation>
 <translation id="4677944499843243528">Wasifu unaonekana kuwa unatumika na mchakato mwingine wa Chromium (<ph name="PROCESS_ID" />) kwenye kompyuta nyingine (<ph name="HOST_NAME" />). Chromium imefunga wasifu huu ili usifisidiwe. Kama una uhakika hakuna michakato mingine inatumia wasifu huu, unaweza kufungua wasifu na uzindue tena Chromium.</translation>
 <translation id="469338717132742108">Pata usaidizi wa kutumia mfumo wa uendeshaji wa Chromium</translation>
 <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="4714956846925717402">Fika kwenye Chromium haraka</translation>
-<translation id="4825874709045178029">Chromium inahitaji ruhusa ya kufikia kamerya yako kwa ajili ya tovuti hii.</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>
 <translation id="4987820182225656817">Walioalikwa wanaweza kutumia Chromium bila kuacha kitu chochote nyuma.</translation>
@@ -158,9 +155,7 @@
 <translation id="6403826409255603130">Chromium ni kivinjari cha wavuti kinachoendesha kurasa za wavuti na programu kwa kasi ya umeme. Ni ya haraka, imara, na rahisi kutumia. Vinjari wavuti kwa usalama zaidi dhidi ya hadaa na programu hasidi ukiwa na ulinzi uliojengwa ndani ya Chromium.</translation>
 <translation id="6475912303565314141">Pia inadhibiti ukurasa unaoonyeshwa unapoanzisha Chromium.</translation>
 <translation id="6485906693002546646">Unatumia <ph name="PROFILE_EMAIL" /> kusawazisha vitu vyako vya Chromium. Ili usasishe mapendeleo yako ya usawazishaji au utumie Chromium bila akaunti ya Google, tembelea <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium inahitaji kufikia maelezo ya mahali ulipo ili kushiriki maelezo ya mahali na tovuti hii.</translation>
 <translation id="6510925080656968729">Sanidua Chromium</translation>
-<translation id="6526111688217511984">Chromium inahitaji idhini ya kufikia hifadhi ili ipakue faili.</translation>
 <translation id="6598877126913850652">Nenda kwenye mipangilio ya arifa ya Chromium</translation>
 <translation id="6676384891291319759">Fika kwenye wavuti</translation>
 <translation id="6717134281241384636">Wasifu wako hauwezi kutumiwa kwa sababu umetoka katika toleo jipya la Chromium.
@@ -199,7 +194,6 @@
 <translation id="7577193603922410712">Sasisho maalum la usalama wa Chromium limetumiwa; unapaswa kuzima na kuwasha Chromium sasa ili lifanye kazi (tutarejesha vichupo vyako).</translation>
 <translation id="761356813943268536">Chromium inatumia kamera na maikrofoni yako.</translation>
 <translation id="7617377681829253106">Chromium imeboreshwa</translation>
-<translation id="7641113255207688324">Chromium si kivinjari chako chaguo-msingi.</translation>
 <translation id="7729447699958282447">Chromium haikuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation>
 <translation id="7745317241717453663">Hatua hii itafuta data yako ya kuvinjari kwenye kifaa hiki. Ili urejeshe data yako baadaye, ingia katika Chromium ukitumia <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Kisakinishi hakikuweza kuunda saraka la muda. Tafadhali chunguza nafasi iliyo wazi kwenye diski na ruhusa ya kusakinisha programu.</translation>
@@ -218,7 +212,6 @@
 <translation id="8222496066431494154">Sakinisha Chromium kwenye simu yako. Tutatuma SMS kwenye nambari yako ya simu ya mbinu za kurejesha uwezo wa kufikia akaunti: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Saidia ili kuiboresha Chromium</translation>
 <translation id="8290862415967981663">Huenda faili hii ni hatari, kwa hivyo Chromium imeizuia.</translation>
-<translation id="8328596990138326317">Chromium inahitaji ruhusa ya kufikia kamera na maikrofoni yako kwa ajili ya tovuti hii.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ilikuwa ikitumia Chromium awali</translation>
 <translation id="8453117565092476964">Kumbukumbu ya kisakinishi imeharibika au ni batili. Tafadhali pakua Chromium tena.</translation>
 <translation id="8493179195440786826">Chromium Imepitwa na Wakati</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index 06320ab..f77d7ad 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Chromiumஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை, "<ph name="EXTENSION_NAME" />" நீட்டிப்பு மாற்றியுள்ளது.</translation>
 <translation id="2483889755041906834">Chromium இல்</translation>
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
-<translation id="2486653164587200256">Windows XP அல்லது Windows Vista ஆகியவற்றில் Chromium இனி ஆதரிக்கப்படாது என்பதால், அது சரியாகச் செயல்படாது.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ஐ இயக்க Chromiumஐ மீண்டும் தொடங்குக</translation>
 <translation id="2535480412977113886">உங்கள் கணக்கின் உள்நுழைவு விவரங்கள் காலாவதியாகிவிட்டதால், உங்கள் தரவை Chromium OS ஆல் ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="2572494885440352020">Chromium உதவி</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">ஆபத்தான பயன்பாடுகளையும் தளங்களையும் கண்டறிவதற்கு உதவியாக, சில சாதனத் தகவலையும் பக்க உள்ளடக்கத்தையும் Googleக்குத் தானாக அனுப்புவதன் மூலம், Chromiumஐ எளிதாகவும் பாதுகாப்பாகவும் பயன்படுத்தும்படி மேம்படுத்துவதற்கு நீங்கள் உதவலாம்.</translation>
 <translation id="4567424176335768812">நீங்கள் <ph name="USER_EMAIL_ADDRESS" /> ஆக உள்நுழைந்துள்ளீர்கள். தற்போது உங்கள் புக்மார்க்குகள், வரலாறு மற்றும் பிற அமைப்புகளை நீங்கள் உள்நுழைந்துள்ள எல்லா சாதனங்களிலும் அணுகலாம்.</translation>
 <translation id="459535195905078186">Chromium பயன்பாடுகள்</translation>
-<translation id="4611246891205775468">இந்தத் தளத்திற்காக மைக்ரோஃபோனை அணுக, Chromiumக்கு அனுமதி தேவை.</translation>
 <translation id="4621240073146040695">கிட்டத்தட்ட புதுப்பிக்கப்பட்டது! புதுப்பிப்பதை முடிக்க, Chromiumஐ மீண்டும் தொடங்கவும்.</translation>
 <translation id="4677944499843243528">இந்தச் சுயவிவரமானது மற்றொரு கணினியில் (<ph name="HOST_NAME" />) மற்றொரு Google Chromium செயல்முறையால் (<ph name="PROCESS_ID" />) பயன்படுத்தப்படுவதாகத் தோன்றுகிறது. Chromium, இந்தச் சுயவிவரத்தைப் பூட்டியுள்ளதால், இது சிதைவடையாது. இந்தச் சுயவிவரத்தை மற்ற செயல்முறைகள் பயன்படுத்தவில்லை என்பதில் நீங்கள் உறுதியாக இருந்தால், நீங்கள் சுயவிவரத்தைப் பூட்டுநீக்கி, Chromium ஐ மீண்டும் துவங்கலாம்.</translation>
 <translation id="469338717132742108">Chromium OS தொடர்பான உதவி பெறுக</translation>
 <translation id="4708774505295300557">இதற்கு முன்னர் ஒருவர் இந்தக் கணினியிலுள்ள Chromium இல் <ph name="ACCOUNT_EMAIL_LAST" /> எனும் முகவரியைப் பயன்படுத்தி உள்நுழைந்திருந்தார். உங்கள் தகவலைத் தனிப்பட்டதாக வைத்திருக்க, புதிய Chromium பயனரை உருவாக்கவும்.</translation>
 <translation id="4714956846925717402">Chromiumக்கு விரைவாகச் செல்லவும்</translation>
-<translation id="4825874709045178029">இந்தத் தளத்திற்காகக் கேமராவை அணுக, Chromiumக்கு அனுமதி தேவை.</translation>
 <translation id="4888717733111232871">mDNS ட்ராஃபிக்கை அனுமதிப்பதற்கான, Chromium க்கான உள்வரும் விதி.</translation>
 <translation id="4943838377383847465">Chromium பின்புல பயன்முறையில் இயங்குகிறது.</translation>
 <translation id="4987820182225656817">எதையும் விட்டுசெல்லாமல் விருந்தினர்கள் Chromium ஐப் பயன்படுத்தலாம்.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium ஆனது வலைப்பக்கங்கள் மற்றும் பயன்பாடுகளில் குறைவான வேகத்துடன் இயங்கும் வலை உலாவியாகும். இது விரைவானது, நிலையானது மற்றும் பயன்படுத்துவதற்கு எளிமையானது. Chromium இல் உருவாக்கப்பட்ட தீப்பொருள் மற்றும் ஃபிஷிங் பாதுகாப்பு மூலம் வலையை மிகவும் பாதுகாப்பாக உலாவலாம்.</translation>
 <translation id="6475912303565314141">Chromium ஐத் தொடங்கும்போது காண்பிக்கப்படும் பக்கத்தையும் இது கட்டுப்படுத்துகிறது.</translation>
 <translation id="6485906693002546646">உங்கள் Chromium விஷயங்களை ஒத்திசைக்க, <ph name="PROFILE_EMAIL" /> ஐப் பயன்படுத்துகிறீர்கள். உங்கள் ஒத்திசைவு விருப்பத்தேர்வைப் புதுப்பிக்க அல்லது Google கணக்கு இல்லாமல் Chromium ஐப் பயன்படுத்த, <ph name="SETTINGS_LINK" /> ஐப் பார்வையிடவும்.</translation>
-<translation id="6505742536731484931">இந்தத் தளத்துடன் இருப்பிடத்தைப் பகிர, Chromiumக்கு உங்கள் இருப்பிடத்திற்கான அணுகல் தேவை.</translation>
 <translation id="6510925080656968729">Chromium ஐ நிறுவல் நீக்கு</translation>
-<translation id="6526111688217511984">கோப்புகளைப் பதிவிறக்க Chromiumக்கு சேமிப்பிட அணுகல் தேவை.</translation>
 <translation id="6598877126913850652">Chromium அறிவிப்பு அமைப்புகளுக்குச் செல்</translation>
 <translation id="6676384891291319759">இணையத்தை அணுகுதல்</translation>
 <translation id="6717134281241384636">உங்கள் சுயவிவரம் Chromium இன் புதிய பதிப்பில் உள்ளதால், அதைப் பயன்படுத்த முடியாது.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Chromiumக்கான சிறப்பு பாதுகாப்புப் புதுப்பிப்பு சற்றுமுன் பயன்படுத்தப்பட்டது, அது செயல்பட இப்போது மீண்டும் தொடங்கவும் (உங்கள் தாவல்களை மீட்டமைப்போம்).</translation>
 <translation id="761356813943268536">Chromium உங்கள் கேமராவையும் மைக்ரோஃபோனையும் பயன்படுத்துகிறது.</translation>
 <translation id="7617377681829253106">Chromium இன்னும் சிறப்படைந்துள்ளது</translation>
-<translation id="7641113255207688324">Chromium, உங்கள் இயல்புநிலை உலாவியாக இல்லை.</translation>
 <translation id="7729447699958282447">உங்கள் களத்திற்கு ஒத்திசைவு இல்லாததால், உங்கள் தரவை Chromium ஆல் ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="7745317241717453663">வெளியேறினால், இந்தச் சாதனத்திலிருந்து உங்கள் உலாவல் தரவு நீக்கப்படும். பின்னர் தரவை மீட்டமைக்க, Chromium இல் <ph name="USER_EMAIL" /> எனும் முகவரியின் மூலம் உள்நுழையவும்.</translation>
 <translation id="7747138024166251722">தற்காலிக டைரக்டரியை நிறுவியால் உருவாக்க முடியவில்லை. வட்டு இடம் காலியாக உள்ளதா, மென்பொருளை நிறுவுவதற்கு தகுந்த அனுமதி உள்ளதா என்பதை சரிபார்க்கவும்.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">உங்கள் மொபைலில் Chromiumஐ நிறுவவும். கணக்கின் மீட்பு மொபைல் எண்ணுக்கு SMS ஒன்றை அனுப்புவோம்: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium ஐ மேலும் சிறப்பாக்க உதவவும்</translation>
 <translation id="8290862415967981663">இந்தக் கோப்பு ஆபத்தானதாக இருக்கக்கூடும் என்பதால், அதை Chromium தடுத்துள்ளது.</translation>
-<translation id="8328596990138326317">இந்தத் தளத்திற்காகக் கேமராவையும் மைக்ரோஃபோனையும் அணுக, Chromiumக்கு அனுமதி தேவை.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ஏற்கனவே Chromiumஐப் பயன்படுத்திக் கொண்டிருந்தது</translation>
 <translation id="8453117565092476964">நிறுவி காப்பகம் சிதைந்துள்ளது அல்லது தவறானது. Chromium ஐ மீண்டும் பதிவிறக்கவும்.</translation>
 <translation id="8493179195440786826">Chromium காலாவதியானது</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index cdadaab4..791bec4 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966"><ph name="EXTENSION_NAME" /> పొడిగింపు మీరు Chromiumని ప్రారంభించినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
 <translation id="2483889755041906834">Chromiumలో</translation>
 <translation id="2485422356828889247">వ్యవస్థాపనను తీసివెయ్యి</translation>
-<translation id="2486653164587200256">Chromiumకి ఇప్పుడు Windows XP లేదా Windows Vistaలో మద్దతు లేనందున ఇది సరిగ్గా పని చేయకపోవచ్చు.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" />ని ప్రారంభించడానికి Chromiumని పునఃప్రారంభించండి</translation>
 <translation id="2535480412977113886">మీ ఖాతా సైన్-ఇన్ వివరాల గడువు ముగిసినందున Chromium OS మీ డేటాను సమకాలీకరించలేకపోయింది.</translation>
 <translation id="2572494885440352020">Chromium సహాయకం</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">హానికరమైన అనువర్తనాలు మరియు సైట్‌లను గుర్తించడంలో సహాయపడటానికి కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను Googleకి స్వయంచాలకంగా పంపడం ద్వారా మీరు Chromiumని ఉపయోగించడానికి సురక్షితమైనదిగా మరియు సులభమైనదిగా చేయడంలో సహాయపడవచ్చు.</translation>
 <translation id="4567424176335768812">మీరు <ph name="USER_EMAIL_ADDRESS" />గా సైన్ ఇన్ చేసారు. ఇప్పుడు మీరు మీ సైన్ ఇన్ చేసిన అన్ని పరికరాల్లో మీ బుక్‌మార్క్‌లు, చరిత్ర మరియు ఇతర సెట్టింగ్‌లను ప్రాప్యత చేయవచ్చు.</translation>
 <translation id="459535195905078186">Chromium అనువర్తనాలు</translation>
-<translation id="4611246891205775468">ఈ సైట్ కోసం మీ మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromiumకు అనుమతి అవసరం.</translation>
 <translation id="4621240073146040695">దాదాపుగా నవీకృతంగా ఉంది! నవీకరణను పూర్తి చేయడానికి Chromiumని పునఃప్రారంభించండి.</translation>
 <translation id="4677944499843243528">ప్రొఫైల్‌ని మరొక కంప్యూటర్ (<ph name="HOST_NAME" />)లో మరో Chromium ప్రాసెస్ (<ph name="PROCESS_ID" />) ఉపయోగిస్తున్నట్లు కనిపిస్తోంది. Chromium ప్రొఫైల్‌ని లాక్ చేసినందున అది పాడవదు. ఈ ప్రొఫైల్‌ని వేరే ఇతర ప్రాసెస్‌లు ఏవీ ఉపయోగించడం లేదని మీకు ఖచ్చితంగా తెలిస్తే, మీరు ప్రొఫైల్‌ని అన్‌లాక్ చేసి Chromiumని మళ్లీ లాంచ్ చేయవచ్చు.</translation>
 <translation id="469338717132742108">Chromium OSతో సహాయాన్ని పొందండి</translation>
 <translation id="4708774505295300557">ఒకరు ఈ కంప్యూటర్‌లో మునుపు <ph name="ACCOUNT_EMAIL_LAST" /> వలె Chromiumకు సైన్ ఇన్ చేసారు. దయచేసి మీ సమాచారాన్ని విడిగా ఉంచేందుకు కొత్త Chromium వినియోగదారును సృష్టించండి.</translation>
 <translation id="4714956846925717402">Chromiumకి వేగవంతంగా వెళ్లండి</translation>
-<translation id="4825874709045178029">ఈ సైట్ కోసం మీ కెమెరాని యాక్సెస్ చేయడానికి Chromiumకు అనుమతి అవసరం.</translation>
 <translation id="4888717733111232871">mDNS ట్రాఫిక్‌ను అనుమతించడానికి Chromium ఇన్‌బౌండ్ నియమం.</translation>
 <translation id="4943838377383847465">Chromium నేపథ్య మోడ్‌లో ఉంది.</translation>
 <translation id="4987820182225656817">అతిథులు ఎటువంటి చరిత్రను వదలకుండానే Chromiumను ఉపయోగించవచ్చు.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium అనేది మెరుపు వేగంతో వెబ్‌పేజీలను మరియు అనువర్తనాలను అమలు చేసే వెబ్ బ్రౌజర్. ఇది వేగవంతమైనది, స్థిరమైనది మరియు ఉపయోగించడానికి సులభమైనది. Chromiumలో రూపొందించిన మాల్వేర్ మరియు ఫిషింగ్ రక్షణతో మరింత సురక్షితంగా వెబ్‌లో బ్రౌజ్ చేయండి.</translation>
 <translation id="6475912303565314141">ఇది మీరు Chromiumని ప్రారంభించేటప్పుడు చూపబడే పేజీని కూడా నియంత్రిస్తుంది.</translation>
 <translation id="6485906693002546646">మీరు మీ Chromium అంశాలను సమకాలీకరించడానికి <ph name="PROFILE_EMAIL" />ని ఉపయోగిస్తున్నారు. మీ సమకాలీకరణ ప్రాధాన్యతను నవీకరించడానికి లేదా Google ఖాతా లేకుండా Chromiumని ఉపయోగించడానికి, <ph name="SETTINGS_LINK" />ను సందర్శించండి.</translation>
-<translation id="6505742536731484931">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromiumకు మీ స్థాన ప్రాప్యత అవసరం.</translation>
 <translation id="6510925080656968729">Chromiumని అన్ఇన్‌స్టాల్ చేయి</translation>
-<translation id="6526111688217511984">ఫైల్‌లను డౌన్‌లోడ్ చేయడానికి Chromiumకు నిల్వ ప్రాప్యత అవసరం.</translation>
 <translation id="6598877126913850652">Chromium నోటిఫికేషన్ సెట్టింగ్‌లకు వెళ్లు</translation>
 <translation id="6676384891291319759">ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి</translation>
 <translation id="6717134281241384636">మీ ప్రొఫైల్ క్రొత్త Chromium సంస్కరణ అయినందున ఇది ఉపయోగించబడదు.
@@ -194,7 +189,6 @@
 <translation id="7577193603922410712">ఇప్పుడే Chromium కోసం ప్రత్యేక భద్రతా నవీకరణ వర్తింపజేయబడింది; అది అమలు కావడం కోసం మీరు దీన్ని ఇప్పుడు పునఃప్రారంభించాలి (మేము మీ ట్యాబ్‌లను పునరుద్ధరిస్తాము).</translation>
 <translation id="761356813943268536">Chromium మీ కెమెరా మరియు మైక్రోఫోన్‌ని ఉపయోగిస్తోంది.</translation>
 <translation id="7617377681829253106">Chromium ఇప్పుడు మెరుగైంది</translation>
-<translation id="7641113255207688324">Chromium మీ డిఫాల్ట్ బ్రౌజర్ కాదు.</translation>
 <translation id="7729447699958282447">Chromium మీ డేటాను సమకాలీకరించలేకపోయింది ఎందుకంటే మీ డొమైన్‌కు సమకాలీకరణ అందుబాటులో లేదు.</translation>
 <translation id="7745317241717453663">ఇది ఈ పరికరం నుండి మీ బ్రౌజింగ్ డేటాను తొలగిస్తుంది. మీ డేటాను తర్వాత తిరిగి పొందడానికి, Chromiumకి <ph name="USER_EMAIL" /> వలె సైన్ ఇన్ చేయండి.</translation>
 <translation id="7747138024166251722">ఇన్‌స్టాలర్ ఒక తాత్కాలిక డైరక్టరీని సృష్టించలేకపోయింది. సాఫ్ట్‌వేర్‌ను ఇన్‌స్టాల్ చేయడానికి దయచేసి ఖాళీ డిస్క్ స్థలం, అనుమతిని తనిఖీ చెయ్యండి.</translation>
@@ -213,7 +207,6 @@
 <translation id="8222496066431494154">మీ ఫోన్‌లో Chromiumను ఇన్‌స్టాల్ చేయండి. మేము మీ ఖాతా పునరుద్ధరణ ఫోన్ నంబర్‌కు SMSను పంపుతాము: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromiumని మెరుగుపరచడంలో సహాయం అందించండి</translation>
 <translation id="8290862415967981663">ఈ ఫైల్ అపాయకరం కావచ్చు, కాబట్టి Chromium దీన్ని బ్లాక్ చేసింది.</translation>
-<translation id="8328596990138326317">ఈ సైట్ కోసం మీ కెమెరా మరియు మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromiumకు అనుమతి అవసరం.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> మునుపు Chromiumని ఉపయోగించింది</translation>
 <translation id="8453117565092476964">ఇన్‌స్టాలర్ ఆర్కైవ్ పాడైంది లేదా చెల్లదు. దయచేసి Chromiumని మళ్లీ డౌన్‌లోడ్ చేయండి.</translation>
 <translation id="8493179195440786826">Chromium కాలం చెల్లినది</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 8ac57a76..9929c3d 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">ส่วนขยาย "<ph name="EXTENSION_NAME" />" ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chromium</translation>
 <translation id="2483889755041906834">ใน Chromium</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
-<translation id="2486653164587200256">Chromium อาจทำงานไม่ถูกต้องเพราะไม่รองรับ Windows XP หรือ Windows Vista อีกต่อไป</translation>
 <translation id="2527042973354814951">รีสตาร์ท Chromium เพื่อเปิดใช้ <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากรายละเอียดการลงชื่อเข้าใช้บัญชีของคุณล้าสมัย</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">คุณสามารถช่วยปรับปรุงให้ Chromium ปลอดภัยและใช้งานง่ายขึ้นด้วยการส่งข้อมูลบางอย่างของระบบและเนื้อหาของหน้าเว็บไปยัง Google เพื่อช่วยตรวจหาแอปและเว็บไซต์ที่เป็นอันตราย</translation>
 <translation id="4567424176335768812">คุณกำลังลงชื่อเข้าใช้เป็น <ph name="USER_EMAIL_ADDRESS" /> ตอนนี้คุณสามารถเข้าถึงบุ๊กมาร์ก ประวัติการเข้าชม และการตั้งค่าอื่นๆ บนอุปกรณ์ทั้งหมดที่ลงชื่อเข้าใช้</translation>
 <translation id="459535195905078186">แอป Chromium</translation>
-<translation id="4611246891205775468">Chromium ต้องการสิทธิ์เข้าถึงไมโครโฟนของคุณสำหรับไซต์นี้</translation>
 <translation id="4621240073146040695">การอัปเดตใกล้จะเสร็จเรียบร้อยแล้ว เปิด Chromium อีกครั้งเพื่อให้การอัปเดตเสร็จสิ้น</translation>
 <translation id="4677944499843243528">ดูเหมือนว่าโปรไฟล์กำลังถูกใช้งานโดยกระบวนการอื่นของ Chromium (<ph name="PROCESS_ID" />) บนคอมพิวเตอร์อีกเครื่อง (<ph name="HOST_NAME" />) Chromium ล็อกโปรไฟล์ไว้เพื่อไม่ให้โปรไฟล์เกิดความเสียหาย หากคุณมั่นใจว่าไม่มีกระบวนการอื่นใดกำลังใช้โปรไฟล์นี้อยู่ คุณสามารถปลดล็อกโปรไฟล์และเปิด Chromium ใหม่</translation>
 <translation id="469338717132742108">รับความช่วยเหลือเกี่ยวกับ Chromium OS</translation>
 <translation id="4708774505295300557">ก่อนหน้านี้มีผู้ลงชื่อเข้าใช้ Chromium ในคอมพิวเตอร์นี้ด้วยชื่อ <ph name="ACCOUNT_EMAIL_LAST" /> โปรดสร้างผู้ใช้ Chromium ใหม่เพื่อเก็บข้อมูลแยก</translation>
 <translation id="4714956846925717402">ใช้ Chromium ได้เร็วขึ้น</translation>
-<translation id="4825874709045178029">Chromium ต้องการสิทธิ์เข้าถึงกล้องถ่ายรูปของคุณสำหรับไซต์นี้</translation>
 <translation id="4888717733111232871">กฎขาเข้าสำหรับ Chromium เพื่ออนุญาตการเข้าชมแบบ mDNS</translation>
 <translation id="4943838377383847465">Chromium กำลังอยู่ในโหมดทำงานในพื้นหลัง</translation>
 <translation id="4987820182225656817">ผู้เยี่ยมชมสามารถใช้ Chromium โดยไม่ทิ้งร่องรอยไว้</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium เป็นเว็บเบราว์เซอร์ที่เรียกใช้หน้าเว็บและแอปพลิเคชันด้วยความเร็วสูง มีความรวดเร็ว เสถียร และง่ายในการใช้งาน เรียกดูเว็บได้อย่างปลอดภัยมากขึ้นด้วยการป้องกันมัลแวร์และฟิชชิงที่สร้างอยู่ภายใน Chromium</translation>
 <translation id="6475912303565314141">อีกทั้งยังควบคุมหน้าที่จะแสดงเมื่อคุณเปิด Chromium ด้วย</translation>
 <translation id="6485906693002546646">คุณกำลังใช้ <ph name="PROFILE_EMAIL" /> ในการซิงค์ข้อมูลใน Chromium หากต้องการอัปเดตค่ากำหนดการซิงค์หรือใช้ Chromium โดยไม่มีบัญชี Google โปรดไปที่ <ph name="SETTINGS_LINK" /></translation>
-<translation id="6505742536731484931">Chromium ต้องการสิทธิ์เข้าถึงตำแหน่งของคุณเพื่อแชร์ตำแหน่งกับไซต์นี้</translation>
 <translation id="6510925080656968729">ถอนการติดตั้ง Chromium</translation>
-<translation id="6526111688217511984">Chromium ต้องสามารถเข้าถึงพื้นที่เก็บข้อมูลเพื่อดาวน์โหลดไฟล์</translation>
 <translation id="6598877126913850652">ไปที่การตั้งค่าการแจ้งเตือน Chromium</translation>
 <translation id="6676384891291319759">เข้าถึงอินเทอร์เน็ต</translation>
 <translation id="6717134281241384636">โปรไฟล์ของคุณไม่สามารถใช้ได้เนื่องจากมาจาก Chromium รุ่นใหม่
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">ระบบเพิ่งนำการอัปเดตความปลอดภัยฉบับพิเศษไปใช้สำหรับ Chromium คุณควรรีสตาร์ทโปรแกรมเพื่อให้มีผลใช้งาน (เราจะคืนค่าแท็บให้คุณ)</translation>
 <translation id="761356813943268536">Chromium ใช้กล้องและไมโครโฟนของคุณอยู่</translation>
 <translation id="7617377681829253106">Chromium ดีขึ้นกว่าเดิม</translation>
-<translation id="7641113255207688324">Chromium ไม่ใช่เบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="7729447699958282447">Chromium ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากไม่สามารถใช้การซิงค์กับโดเมนของคุณ</translation>
 <translation id="7745317241717453663">การดำเนินการนี้จะลบข้อมูลการท่องเว็บออกจากอุปกรณ์นี้ หากต้องการดึงข้อมูลภายหลัง ให้ลงชื่อเข้าใช้ Chromium ด้วย <ph name="USER_EMAIL" /></translation>
 <translation id="7747138024166251722">โปรแกรมติดตั้งสร้างไดเรกทอรีชั่วคราวไม่ได้ โปรดตรวจสอบพื้นที่ดิสก์ว่างและการอนุญาตให้ติดตั้งซอฟต์แวร์</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">ติดตั้ง Chromium ในโทรศัพท์ เราจะส่ง SMS ไปยังหมายเลขโทรศัพท์สำหรับการกู้คืนบัญชีของคุณ: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">ช่วยปรับปรุง Chromium ให้ดีขึ้น</translation>
 <translation id="8290862415967981663">ไฟล์นี้อาจเป็นอันตราย Chromium จึงบล็อกไว้</translation>
-<translation id="8328596990138326317">Chromium ต้องการสิทธิ์เข้าถึงไมโครโฟนและกล้องถ่ายรูปของคุณสำหรับไซต์นี้</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ใช้ Chromium อยู่ก่อนหน้านี้</translation>
 <translation id="8453117565092476964">การเก็บข้อมูลของโปรแกรมติดตั้งเสียหายหรือไม่ถูกต้อง โปรดดาวน์โหลด Chromium อีกครั้ง</translation>
 <translation id="8493179195440786826">Chromium ล้าสมัย</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index 93b63a4..9e24697 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">"<ph name="EXTENSION_NAME" />" uzantısı, Chromium'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
 <translation id="2483889755041906834">Chromium'da</translation>
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
-<translation id="2486653164587200256">Chromium artık Windows XP veya Windows Vista üzerinde desteklenmediği için doğru şekilde çalışmayabilir.</translation>
 <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> eklentisini etkinleştirmek için Chromium'u yeniden başlatın</translation>
 <translation id="2535480412977113886">Hesap oturum açma ayrıntılarınız güncel olmadığından Chromium OS, verilerinizi senkronize edemedi.</translation>
 <translation id="2572494885440352020">Chromium Yardımcısı</translation>
@@ -102,13 +101,11 @@
 <translation id="4488554488975128561">Tehlikeli uygulamalar ve sitelerin tespit edilmesine yardımcı olmak üzere Google'a bazı sistem bilgilerini ve sayfa içeriklerini otomatik olarak göndererek, Chromium'un daha güvenli olmasını ve daha kolay kullanılmasını sağlayabilirsiniz.</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="4611246891205775468">Chromium'un bu sitede mikrofonunuza erişmesi için izin gerekiyor.</translation>
 <translation id="4621240073146040695">Az kaldı! Güncellemeyi tamamlamak için Chromium'u yeniden başlatın.</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>
 <translation id="469338717132742108">Chromium OS ile ilgili yardım alın</translation>
 <translation id="4708774505295300557">Birisi daha önce bu bilgisayarda <ph name="ACCOUNT_EMAIL_LAST" /> olarak Chromium oturumu açmış. Bilgilerinizi ayrı tutmak için yeni bir Chromium kullanıcısı oluşturun.</translation>
 <translation id="4714956846925717402">Chromium'a daha hızlı ulaşın</translation>
-<translation id="4825874709045178029">Chromium'un bu sitede kameranıza erişmesi için izin gerekiyor.</translation>
 <translation id="4888717733111232871">Chromium'un mDNS trafiğine izin vermeyi sağlayan gelen trafik kuralı.</translation>
 <translation id="4943838377383847465">Chromium arka plan modunda.</translation>
 <translation id="4987820182225656817">Misafirler Chromium'u geride hiçbir şey bırakmadan kullanabilir.</translation>
@@ -154,9 +151,7 @@
 <translation id="6403826409255603130">Chromium, Web sayfalarını ve uygulamaları yıldırım hızıyla çalıştıran bir Web tarayıcısıdır. Hızlı ve kararlı çalışır, kolay kullanılır. Chromium'da dahili olarak bulunan zararlı yazılım ve kimlik avı koruması sayesinde Web'de daha güvenli gezinin.</translation>
 <translation id="6475912303565314141">Ayrıca, Chromium'u başlattığınızda gösterilecek sayfayı da denetler.</translation>
 <translation id="6485906693002546646">Chromium öğelerinizi senkronize etmek için <ph name="PROFILE_EMAIL" /> adresini kullanıyorsunuz. Senkronizasyon tercihinizi güncellemek veya Chromium'u bir Google Hesabı olmadan kullanmak için şurayı ziyaret edin: <ph name="SETTINGS_LINK" /></translation>
-<translation id="6505742536731484931">Konumunuzu bu siteyle paylaşabilmek için Chromium'un konum bilgilerinize erişmesi gerekiyor.</translation>
 <translation id="6510925080656968729">Chromium'u Kaldır</translation>
-<translation id="6526111688217511984">Dosya indirmek için Chromium'un depolama alanına erişmesi gerekiyor.</translation>
 <translation id="6598877126913850652">Chromium bildirim ayarlarına git</translation>
 <translation id="6676384891291319759">İnternet'e erişin</translation>
 <translation id="6717134281241384636">Profiliniz daha yeni bir Chromium sürümünden olduğundan kullanılamıyor.
@@ -196,7 +191,6 @@
 <translation id="7577193603922410712">Chromium için özel bir güvenlik güncellemesi uygulandı. Güncellemenin geçerli olması için cihazı şimdi yeniden başlatmalısınız (sekmeleriniz geri yüklenecektir).</translation>
 <translation id="761356813943268536">Chromium kameranızı ve mikrofonunuzu kullanıyor.</translation>
 <translation id="7617377681829253106">Chromium daha da iyi bir hale geldi</translation>
-<translation id="7641113255207688324">Chromium varsayılan tarayıcınız değil.</translation>
 <translation id="7729447699958282447">Senkronizasyon alan adınızda kullanılamadığından Chromium, verilerinizi senkronize edemedi.</translation>
 <translation id="7745317241717453663">Bu işlem tarama verilerinizi bu cihazdan silecektir. Verilerinizi daha sonra geri almak için Chromium'da <ph name="USER_EMAIL" /> hesabıyla oturum açın.</translation>
 <translation id="7747138024166251722">Yükleyici geçici bir dizin oluşturamadı. Lütfen, kullanılabilir disk alanını ve yazılım yükleme iznini kontrol edin.</translation>
@@ -215,7 +209,6 @@
 <translation id="8222496066431494154">Chromium'u telefonunuza yükleyin. Hesap kurtarma telefon numaranıza SMS göndereceğiz: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Chromium'u daha iyi hale getirmeye yardımcı olun</translation>
 <translation id="8290862415967981663">Bu dosya tehlikeli olabileceği için Chromium tarafından engellendi.</translation>
-<translation id="8328596990138326317">Chromium'un bu sitede kameranıza ve mikrofonunuza erişmesi için izin gerekiyor.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> önceden Chromium kullanıyordu</translation>
 <translation id="8453117565092476964">Yükleyici arşivi bozuk veya geçersiz. Lütfen Chromium'u yeniden indirin.</translation>
 <translation id="8493179195440786826">Chromium Sürümü Eski</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index bf8bbec..53e6770b4 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">Розширення "<ph name="EXTENSION_NAME" />" змінило сторінку, яка відкривається під час запуску Chromium.</translation>
 <translation id="2483889755041906834">У Chromium</translation>
 <translation id="2485422356828889247">Видалити</translation>
-<translation id="2486653164587200256">Chromium може працювати неналежним чином, оскільки Windows XP та Windows Vista більше не підтримуються.</translation>
 <translation id="2527042973354814951">Перезавантажте Chromium, щоб увімкнути плагін "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="2535480412977113886">ОС Chromium не вдалося синхронізувати ваші дані, оскільки дані для входу в обліковий запис застаріли.</translation>
 <translation id="2572494885440352020">Помічник Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Ви можете зробити Chromium безпечнішим і простішим у користуванні, автоматично надсилаючи в Google деяку інформацію про систему та вміст сторінок, щоб допомогти виявляти небезпечні додатки й сайти.</translation>
 <translation id="4567424176335768812">Ви ввійшли як <ph name="USER_EMAIL_ADDRESS" />. Ваші закладки, історія й інші налаштування будуть доступні на всіх пристроях, на яких ви ввійдете в цей обліковий запис.</translation>
 <translation id="459535195905078186">Програми Chromium</translation>
-<translation id="4611246891205775468">Chromium потрібні дозволи, щоб використовувати мікрофон на цьому сайті.</translation>
 <translation id="4621240073146040695">Майже оновлено. Перезапустіть Chromium, щоб завершити оновлення.</translation>
 <translation id="4677944499843243528">Схоже, профіль використовується іншим процесом Chromium (<ph name="PROCESS_ID" />) на іншому комп’ютері (<ph name="HOST_NAME" />). Chromium заблокував профіль, щоб запобігти його спотворенню. Якщо ви впевнені, що жоден інший процес не використовує цей профіль, розблокуйте профіль і перезапустіть Chromium.</translation>
 <translation id="469338717132742108">Отримати довідку щодо ОС Chromium</translation>
 <translation id="4708774505295300557">Хтось раніше входив у Chromium на цьому комп’ютері як <ph name="ACCOUNT_EMAIL_LAST" />. Створіть нового користувача Chromium, щоб зберігати свою інформацію окремо.</translation>
 <translation id="4714956846925717402">Відкривайте Chromium швидше</translation>
-<translation id="4825874709045178029">Chromium потрібні дозволи, щоб використовувати камеру на цьому сайті.</translation>
 <translation id="4888717733111232871">Вхідне правило для Chromium дозволяє трафік mDNS.</translation>
 <translation id="4943838377383847465">Chromium у фоновому режимі.</translation>
 <translation id="4987820182225656817">Гості можуть анонімно користуватися Chromium.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium – це веб-переглядач, який запускає веб-сторінки та програми з блискавичною швидкістю. Він швидкий, надійний і зручний у користуванні. Вбудований у Chromium захист від шкідливих програм і фішингу гарантує ще більшу безпеку під час перегляду веб-сторінок.</translation>
 <translation id="6475912303565314141">Також указує сторінку, яка відкривається під час запуску Chromium.</translation>
 <translation id="6485906693002546646">Ви синхронізуєте дані Chromium через обліковий запис <ph name="PROFILE_EMAIL" />. Щоб оновити параметри синхронізації або використовувати Chromium без облікового запису Google, перейдіть на сторінку <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium потрібен доступ до місцезнаходження, щоб повідомляти ваші геодані цьому сайту.</translation>
 <translation id="6510925080656968729">Видалити Chromium</translation>
-<translation id="6526111688217511984">Щоб завантажувати файли, Chromium потребує доступу до пам’яті.</translation>
 <translation id="6598877126913850652">Перейти до налаштувань сповіщень Chromium</translation>
 <translation id="6676384891291319759">Доступ до Інтернету</translation>
 <translation id="6717134281241384636">Ваш профіль не можна використовувати, оскільки він створений у новішій версії Chromium.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Щойно було застосовано спеціальне оновлення для захисту Chromium. Щоб воно почало діяти, перезапустіть Chromium (ваші вкладки буде відновлено).</translation>
 <translation id="761356813943268536">Chromium використовує вашу камеру та мікрофон.</translation>
 <translation id="7617377681829253106">Chromium став ще кращим</translation>
-<translation id="7641113255207688324">Chromium не є вашим веб-переглядачем за умовчанням.</translation>
 <translation id="7729447699958282447">Chromium не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation>
 <translation id="7745317241717453663">Дані веб-перегляду буде видалено з цього пристрою. Щоб відновити дані пізніше, увійдіть в обліковий запис Chromium як <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Програмі встановлення не вдалося створити тимчасовий каталог. Перевірте наявність вільного простору на диску та дозволу на встановлення програмного забезпечення.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Установіть Chromium на телефоні. Ми надішлемо SMS на номер телефону для відновлення облікового запису: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Допоможіть покращити Chromium</translation>
 <translation id="8290862415967981663">Цей файл може бути небезпечним, тому Chromium заблокував його.</translation>
-<translation id="8328596990138326317">Chromium потрібні дозволи, щоб використовувати камеру та мікрофон на цьому сайті.</translation>
 <translation id="8340674089072921962">Раніше ви входили в обліковий запис <ph name="USER_EMAIL_ADDRESS" /> у Chromium</translation>
 <translation id="8453117565092476964">Архів програми встановлення пошкоджений або недійсний. Завантажте Chromium ще раз.</translation>
 <translation id="8493179195440786826">Версія Chromium застаріла</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index d6e5c28..90ca51a 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -38,7 +38,6 @@
 <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>
 <translation id="2483889755041906834">Trong Chromium</translation>
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
-<translation id="2486653164587200256">Chromium có thể không hoạt động chính xác do không được hỗ trợ trên Windows XP hoặc Windows Vista nữa.</translation>
 <translation id="2527042973354814951">Khởi động lại Chromium để bật <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">Chromium OS không thể đồng bộ hóa dữ liệu của bạn vì chi tiết đăng nhập tài khoản của bạn đã lỗi thời.</translation>
 <translation id="2572494885440352020">Trình trợ giúp của Chromium</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">Bạn có thể giúp Chromium an toàn và dễ sử dụng hơn bằng cách tự động gửi một số thông tin hệ thống và nội dung trang cho Google để giúp phát hiện các ứng dụng và trang web nguy hiểm.</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="4611246891205775468">Chromium cần có quyền truy cập micrô của bạn cho trang web này.</translation>
 <translation id="4621240073146040695">Gần được cập nhật! Hãy khởi chạy lại Chromium để hoàn tất cập nhật.</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>
 <translation id="469338717132742108">Nhận trợ giúp về Chromium OS</translation>
 <translation id="4708774505295300557">Ai đó trước đây đã đăng nhập vào Chromium trên máy tính này bằng <ph name="ACCOUNT_EMAIL_LAST" />. Vui lòng tạo người dùng Chromium mới để giữ riêng biệt thông tin của bạn.</translation>
 <translation id="4714956846925717402">Truy cập Chromium nhanh hơn</translation>
-<translation id="4825874709045178029">Chromium cần có quyền truy cập máy ảnh của bạn cho trang web này.</translation>
 <translation id="4888717733111232871">Quy tắc kết nối để Chromium cho phép lưu lượng truy cập mDNS.</translation>
 <translation id="4943838377383847465">Chromium đang chạy trong nền.</translation>
 <translation id="4987820182225656817">Khách có thể sử dụng Chromium mà không phải thoát khỏi bất cứ nội dung nào.</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium là trình duyệt web chạy các trang web và ứng dụng với tốc độ cực nhanh. Đây là một trình duyệt web nhanh, ổn định và dễ sử dụng. Duyệt web trở nên an toàn hơn với tính năng bảo vệ chống lại phần mềm độc hại và lừa đảo được tích hợp sẵn vào Chromium.</translation>
 <translation id="6475912303565314141">Tiện ích này cũng điều khiển trang nào được hiển thị khi bạn khởi động Chromium.</translation>
 <translation id="6485906693002546646">Bạn đang sử dụng <ph name="PROFILE_EMAIL" /> để đồng bộ hóa nội dung Chromium của mình. Để cập nhật tùy chọn đồng bộ hóa hoặc sử dụng Chromium mà không cần tài khoản Google, hãy truy cập <ph name="SETTINGS_LINK" />.</translation>
-<translation id="6505742536731484931">Chromium cần truy cập vị trí của bạn để chia sẻ thông tin vị trí của bạn với trang web này.</translation>
 <translation id="6510925080656968729">Gỡ cài đặt Chromium</translation>
-<translation id="6526111688217511984">Chromium cần quyền truy cập bộ nhớ để tải xuống tệp.</translation>
 <translation id="6598877126913850652">Đi tới cài đặt thông báo của Chromium</translation>
 <translation id="6676384891291319759">Truy cập Internet</translation>
 <translation id="6717134281241384636">Không thể sử dụng cấu hình của bạn do cấu hình này đến từ một phiên bản Chromium mới hơn.
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Cập nhật bảo mật đặc biệt cho Chromium vừa được áp dụng; bạn phải khởi động lại ngay bây giờ để cập nhật có hiệu lực (chúng tôi sẽ khôi phục các tab của bạn).</translation>
 <translation id="761356813943268536">Chromium đang sử dụng máy ảnh và micrô của bạn.</translation>
 <translation id="7617377681829253106">Chromium được cải tiến hơn</translation>
-<translation id="7641113255207688324">Chromium không phải là trình duyệt mặc định của bạn.</translation>
 <translation id="7729447699958282447">Chromium 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="7745317241717453663">Thao tác này sẽ xóa dữ liệu duyệt web của bạn khỏi thiết bị này. Để truy xuất dữ liệu của bạn sau, hãy đăng nhập vào Chromium dưới dạng <ph name="USER_EMAIL" />.</translation>
 <translation id="7747138024166251722">Trình cài đặt không thể tạo thư mục tạm thời. Vui lòng kiểm tra dung lượng ổ đĩa còn trống và quyền cài đặt phần mềm.</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">Cài đặt Chromium trên điện thoại của bạn. Chúng tôi sẽ gửi SMS tới số điện thoại khôi phục tài khoản của bạn: <ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">Giúp cải thiện Chromium</translation>
 <translation id="8290862415967981663">Tệp này nguy hiểm, do đó Chromium đã chặn tệp.</translation>
-<translation id="8328596990138326317">Chromium cần có quyền truy cập máy ảnh và micrô của bạn cho trang web này.</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> trước đó đã sử dụng Chromium</translation>
 <translation id="8453117565092476964">Tệp lưu trữ trình cài đặt bị hỏng hoặc không hợp lệ. Hãy tải xuống Chromium lại lần nữa.</translation>
 <translation id="8493179195440786826">Chromium đã lỗi thời</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index eb9caf4..cfdbcc9 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">“<ph name="EXTENSION_NAME" />”扩展程序更改了 Chromium 启动后系统显示的页面。</translation>
 <translation id="2483889755041906834">在 Chromium 中</translation>
 <translation id="2485422356828889247">卸载</translation>
-<translation id="2486653164587200256">Chromium 可能无法正常运行,因为它不再支持 Windows XP 或 Windows Vista。</translation>
 <translation id="2527042973354814951">重新启动 Chromium 以启用 <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">您的帐号登录详细信息已过期,Chromium操作系统无法同步您的数据。</translation>
 <translation id="2572494885440352020">Chromium 帮助程序</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">通过允许自动向 Google 发送某些系统信息和网页内容以帮助检测危险应用和网站,您可助力我们提高 Chromium 的安全性和易用性。</translation>
 <translation id="4567424176335768812">您已使用 <ph name="USER_EMAIL_ADDRESS" /> 的身份登录。现在您可在已登录的所有设备上访问您的书签、历史记录和其他设置。</translation>
 <translation id="459535195905078186">Chromium 应用</translation>
-<translation id="4611246891205775468">Chromium 需要获得相应权限,才能允许此网站使用您的麦克风。</translation>
 <translation id="4621240073146040695">即将更新到最新版本!重新启动 Chromium 即可完成更新。</translation>
 <translation id="4677944499843243528">其他计算机 (<ph name="HOST_NAME" />) 的另一个 Chromium 进程 (<ph name="PROCESS_ID" />) 好像正在使用此个人资料。Chromium 已锁定此个人资料以防止其受损。如果您确定其他进程目前未使用此个人资料,请为其解锁并重新启动 Chromium。</translation>
 <translation id="469338717132742108">获取有关 Chromium 操作系统的帮助</translation>
 <translation id="4708774505295300557">之前已有人在此计算机上以 <ph name="ACCOUNT_EMAIL_LAST" /> 的身份登录了 Chromium。请新建一个 Chromium 用户来单独保存您的信息。</translation>
 <translation id="4714956846925717402">更快地访问 Chromium</translation>
-<translation id="4825874709045178029">Chromium 需要获得相应权限,才能允许此网站使用您的摄像头。</translation>
 <translation id="4888717733111232871">Chromium的入站规则,允许mDNS流量。</translation>
 <translation id="4943838377383847465">Chromium处于后台运行模式。</translation>
 <translation id="4987820182225656817">访客使用Chromium不会留下任何痕迹。</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium 是一款可高速运行网页和应用的网络浏览器。它快捷、稳定且易于使用。Chromium 内置的防护恶意软件和网上诱骗的功能可让您更安全地浏览网页。</translation>
 <translation id="6475912303565314141">它还能够控制Chromium启动后显示的页面。</translation>
 <translation id="6485906693002546646">您在使用<ph name="PROFILE_EMAIL" />同步自己的Chromium资料和数据。要更新您的同步偏好设置或在不登录Google帐号的情况下使用Chromium,请前往<ph name="SETTINGS_LINK" />部分。</translation>
-<translation id="6505742536731484931">Chromium 需要获得位置权限,才能将您的位置信息共享给此网站。</translation>
 <translation id="6510925080656968729">卸载 Chromium</translation>
-<translation id="6526111688217511984">Chromium 需要具备存储空间使用权限,才能下载文件。</translation>
 <translation id="6598877126913850652">转到 Chromium 通知设置部分</translation>
 <translation id="6676384891291319759">访问互联网</translation>
 <translation id="6717134281241384636">您的个人资料来自更高版本的 Chromium,因此无法使用。
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">系统刚刚为 Chromium 应用了一项特殊的安全更新;您应立即重新启动,以使此更新生效(我们会恢复您的标签页)。</translation>
 <translation id="761356813943268536">Chromium 正在使用您的摄像头和麦克风。</translation>
 <translation id="7617377681829253106">Chromium现在更好用了</translation>
-<translation id="7641113255207688324">Chromium 不是您的默认浏览器。</translation>
 <translation id="7729447699958282447">由于您的网域停用了同步功能,Chromium无法同步您的数据。</translation>
 <translation id="7745317241717453663">这会从这台设备上删除您的浏览数据。如果日后想要检索您的数据,届时请以 <ph name="USER_EMAIL" /> 的身份登录 Chromium。</translation>
 <translation id="7747138024166251722">安装程序无法创建临时目录。请检查您是否有足够的磁盘空间和权限来安装该软件。</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">请在您的手机上安装 Chromium。我们会将一条短信发送到您帐号的辅助电话号码:<ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">帮助我们改进Chromium</translation>
 <translation id="8290862415967981663">此文件可能存在危险,因此 Chromium 已将其拦截。</translation>
-<translation id="8328596990138326317">Chromium 需要获得相应权限,才能允许此网站使用您的摄像头和麦克风。</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> 之前使用的是 Chromium</translation>
 <translation id="8453117565092476964">安装程序归档损坏或无效。请重新下载 Chromium。</translation>
 <translation id="8493179195440786826">Chromium版本太旧</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index 86d5def..d8fca01 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -38,7 +38,6 @@
 <translation id="2396765026452590966">擴充功能「<ph name="EXTENSION_NAME" />」已變更 Chromium 啟動時所顯示的網頁。</translation>
 <translation id="2483889755041906834">在 Chromium 中</translation>
 <translation id="2485422356828889247">解除安裝</translation>
-<translation id="2486653164587200256">Chromium 已不適用於 Windows XP 或 Windows Vista,因此可能無法正常運作。</translation>
 <translation id="2527042973354814951">重新啟動 Chromium 即可啟用 <ph name="PLUGIN_NAME" /></translation>
 <translation id="2535480412977113886">你的帳戶登入詳細資料尚未更新,因此 Chromium 作業系統無法同步處理你的資料。</translation>
 <translation id="2572494885440352020">Chromium Helper</translation>
@@ -104,13 +103,11 @@
 <translation id="4488554488975128561">你可以選擇自動傳送部分系統資訊和網頁內容給 Google,協助我們偵測危險的應用程式和網站,讓 Chromium 變得更安全、更好用。</translation>
 <translation id="4567424176335768812">你已使用 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入,可以在所有登入的裝置上使用你的書籤、紀錄和其他設定。</translation>
 <translation id="459535195905078186">Chromium 應用程式</translation>
-<translation id="4611246891205775468">Chromium 需要相關權限,才能讓這個網站使用你的麥克風。</translation>
 <translation id="4621240073146040695">即將更新為最新版本!重新啟動 Chromium 即可完成更新程序。</translation>
 <translation id="4677944499843243528">另一台電腦 (<ph name="HOST_NAME" />) 的 Chromium 處理程序 (<ph name="PROCESS_ID" />) 正在使用這個設定檔。Chromium 已鎖定此設定檔,確保其不致受損。如果你確定其他處理程序目前未使用此設定檔,請予以解除鎖定,然後重新啟動 Chromium。</translation>
 <translation id="469338717132742108">前往 Chromium 作業系統說明頁面</translation>
 <translation id="4708774505295300557">先前已有其他使用者使用 <ph name="ACCOUNT_EMAIL_LAST" /> 在這部電腦上登入 Chromium。請建立新的 Chromium 使用者,以便另行保存你的資訊。</translation>
 <translation id="4714956846925717402">更快存取 Chromium</translation>
-<translation id="4825874709045178029">Chromium 需要相關權限,才能讓這個網站使用你的攝影機。</translation>
 <translation id="4888717733111232871">允許 mDNS 流量的 Chromium 輸入規則。</translation>
 <translation id="4943838377383847465">Chromium 正在背景模式中執行。</translation>
 <translation id="4987820182225656817">以訪客身分使用 Chromium 不會留下任何紀錄。</translation>
@@ -156,9 +153,7 @@
 <translation id="6403826409255603130">Chromium 網路瀏覽器開啟網頁和執行應用程式的速度十分迅速。除了迅速、穩定且易於使用之外,Chromium 的內建惡意軟體與網路釣魚防護功能,可讓你安心悠遊網路。</translation>
 <translation id="6475912303565314141">這個擴充功能也會控管你啟動 Chromium 時所顯示的網頁。</translation>
 <translation id="6485906693002546646">你正使用 <ph name="PROFILE_EMAIL" /> 帳戶同步處理你的 Chromium 資料。如要更新你的偏好設定,或是在未登入 Google 帳戶的情況下使用 Chromium,請前往 [<ph name="SETTINGS_LINK" />]。</translation>
-<translation id="6505742536731484931">Chromium 需要位置資訊存取權,才能與這個網站分享你的位置資訊。</translation>
 <translation id="6510925080656968729">解除安裝 Chromium</translation>
-<translation id="6526111688217511984">Chromium 必須取得儲存空間的存取權才能下載檔案。</translation>
 <translation id="6598877126913850652">前往 Chromium 通知設定</translation>
 <translation id="6676384891291319759">連線到網際網路</translation>
 <translation id="6717134281241384636">由於你的設定檔是來自較新版本的 Chromium,所以系統無法使用該檔案。
@@ -198,7 +193,6 @@
 <translation id="7577193603922410712">Chromium 剛套用了特殊的安全性更新。建議您立即重新啟動,讓更新生效 (系統會還原您的分頁)。</translation>
 <translation id="761356813943268536">Chromium 正在使用你的攝影機和麥克風。</translation>
 <translation id="7617377681829253106">Chromium 變得更進步了</translation>
-<translation id="7641113255207688324">Chromium 不是你的預設瀏覽器。</translation>
 <translation id="7729447699958282447">你的網域無法使用「同步功能」,因此 Chromium 無法同步處理你的資料。</translation>
 <translation id="7745317241717453663">登出後,系統會將你的瀏覽資料從這個裝置上刪除。日後如要重新取得你的資料,請以 <ph name="USER_EMAIL" /> 身分登入 Chromium。</translation>
 <translation id="7747138024166251722">安裝程式無法建立暫時目錄,請檢查可用磁碟空間與權限,以順利安裝軟體。</translation>
@@ -217,7 +211,6 @@
 <translation id="8222496066431494154">在手機上安裝 Chromium。我們會傳送簡訊到你的帳戶備援電話號碼:<ph name="PHONE_NUMBER" /></translation>
 <translation id="8269379391216269538">協助改善 Chromium</translation>
 <translation id="8290862415967981663">這個檔案可能不安全,因此遭到 Chromium 封鎖。</translation>
-<translation id="8328596990138326317">Chromium 需要相關權限,才能讓這個網站使用你的攝影機和麥克風。</translation>
 <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> 先前使用的是 Chromium</translation>
 <translation id="8453117565092476964">安裝程式封存檔案已毀損或無效,請重新下載 Chromium。</translation>
 <translation id="8493179195440786826">Chromium 版本過舊</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 4dde88c..6eb3a2a 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">ምስጢራዊ ማድረግ ብቻ</translation>
 <translation id="1039337018183941703">ልክ ያልሆነ ወይም የተበላሸ ፋይል</translation>
 <translation id="1042174272890264476">እንዲሁም ኮምፒውተርዎ የ<ph name="SHORT_PRODUCT_NAME" /> RLZ ቤተ-ፍርግም አብሮ ተሰርቶለት ነው የሚመጣው። RLZ ፍለጋዎችን እና በአንድ የተወሰነ የማስተዋወቂያ ዘመቻ የሚነዳ የ<ph name="SHORT_PRODUCT_NAME" /> አጠቃቀምን ለመለካት ልዩ ያልሆነ፣ በግል ሊለይ የማይችል መለያ ይመድባል። እነዚህ መለያ ስሞች አንዳንድ ጊዜ በ<ph name="PRODUCT_NAME" /> የGoogle ፍለጋ መጠይቆች ላይ ይታያሉ።</translation>
-<translation id="1042574203789536285"><ph name="URL" /> ትልቅ ውሂብ በእርስዎ መሣሪያ ላይ እስከ መጨረሻው ማከማቸት ይፈልጋል።</translation>
 <translation id="1046059554679513793">አዪ... ይህ ስም አስቀድሞ ተይዟል!</translation>
 <translation id="1047431265488717055">የአገናኝ ጽሑፍ &amp;ቅዳ</translation>
 <translation id="1047726139967079566">ለእዚህ ገጽ ዕልባት አዘጋጅ…</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">ነባሪ የፍለጋ ፕሮግራም ወደነበረበት ይመለስ?</translation>
 <translation id="1177863135347784049">ብጁ</translation>
 <translation id="1178581264944972037">ለአፍታ አቁም</translation>
-<translation id="1179803038870941185"><ph name="URL" /> የእርስዎን MIDI መሳሪያዎች ሙሉ በሙሉ መቆጣጠር ይፈልጋል።</translation>
 <translation id="1181037720776840403">አስወግድ</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" />ን በአካባቢያዊ መሸጎጫ ላይ መጫን አልተቻለም።</translation>
 <translation id="1185924365081634987">እንዲሁም ይህን የአውታረ መረብ ስህተት ለማስተካከል <ph name="GUEST_SIGNIN_LINK_START" />እንደ እንግዳ ሆነው ለማሰስ<ph name="GUEST_SIGNIN_LINK_END" /> መሞከርም ይችላሉ።</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{ኮምፒውተርዎ ላይ የተከማቸ ፋይልን ይድርሱበት}one{ኮምፒውተርዎ ላይ የተከማቹ  # ፋይሎችን ይድረሱባቸው}other{ኮምፒውተርዎ ላይ የተከማቹ # ፋይሎችን ይድረሱባቸው}}</translation>
 <translation id="1195076408729068893">Smart Lockን ለመጀመር የእርስዎን የይለፍ ቃል ያስገቡ። በሚቀጥለው ጊዜ የእርስዎን <ph name="DEVICE_TYPE" /> ለመክፈት ስልክዎን መጠቀም ይችላሉ።</translation>
 <translation id="1195447618553298278">ያልታወቀ ስህተት።</translation>
-<translation id="1196338895211115272">ግላዊ ቁልፍን መላክ አልተሳካም።</translation>
 <translation id="119738088725604856">የቅጽበታዊ ገጽ እይታ መስኮት</translation>
 <translation id="1197979282329025000">የህትመት ብቃቶች ለአታሚ <ph name="PRINTER_NAME" /> በማምጣት ላይ ሳለ አንድ ስህተት ተከስቷል። ይህ አታሚ <ph name="CLOUD_PRINT_NAME" /> ላይ መመዝገብ አይችልም።</translation>
 <translation id="1198271701881992799">እንጀምር</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">አስተዳዳሪዎ ለዚህ ቅንብር አንድ የተወሰነ እሴት ይመክራል።</translation>
 <translation id="1225177025209879837">ጥያቄን በማካሄድ ላይ...</translation>
 <translation id="1225211345201532184">የመደርደሪያ ንጥል 5</translation>
-<translation id="1225404570112441414">ይህን ጣቢያ በማንኛውም ጊዜ ለመጠቀም ወደ መደርደሪያዎ ያክሉት።</translation>
 <translation id="1227507814927581609">ከ«<ph name="DEVICE_NAME" />» ጋር በመገናኘት ላይ ሳለ ማረጋገጥ አልተሳካም።</translation>
 <translation id="1230807973377071856">የስርዓት ዝማኔ</translation>
 <translation id="1232569758102978740">ርዕስ አልባ</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">ለኤችቲኤምኤል ፋይል እልባት ያደርጋል</translation>
 <translation id="1303671224831497365">ምንም የብሉቱዝ መሣሪያዎች አልተገኙም</translation>
 <translation id="1306606229401759371">ቅንብሮችን ቀይር</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> ላይ የይለፍ ቃላትዎን ከማንኛውም መሣሪያ ላይ ይድረሱባቸው</translation>
 <translation id="1307559529304613120">ውይ!  ስርዓቱ የዚህ መሣሪያ የረጅም ጊዜ ኤ ፒ አይ መዳረሻ ማስመሰያ ማከማቸት አልቻለም።</translation>
 <translation id="1313405956111467313">ራስ-ሰር የተኪ ውቅር</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">ፍለጋ </translation>
 <translation id="1386387014181100145">እንዴት ነው?</translation>
 <translation id="138784436342154190">ነባሪ የጅምር ገጽ ወደነበረበት ገጽ ይመለስ?</translation>
-<translation id="1389297115360905376">ይሄ ከ<ph name="CHROME_WEB_STORE" /> ብቻ ነው ሊታከል የሚችለው።</translation>
 <translation id="1390548061267426325">እንደ መደበኛ ትር ክፈት</translation>
-<translation id="1391807639023934267">ፈጣን ገጽ ተጭኗል።</translation>
 <translation id="1393283411312835250">ፀሐይ እና ደመናዎች</translation>
 <translation id="1395262318152388157">የመፈለጊያ ተንሸራታች</translation>
 <translation id="1395730723686586365">ማዘመኛ ጀምሯል</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">በሂደት ላይ ያሉ ባህሪያትን የያዘ ያልተረጋጋ ወደሆነ የ<ph name="PRODUCT_NAME" /> ስሪት እያዘመኑ ነው። ብልሽቶች እና ያልተጠበቁ ሳንካዎች ያጋጥማሉ። እባክዎ በጥንቃቄ ይቀጥሉ።</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (የቅጥያ መታወቂያ «<ph name="EXTENSION_ID" />») በዚህ የክፍለ-ጊዜ አይነት ላይ አይፈቀድም።</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">አይይ! RSA የግል ኩልፍ በዘፈቀደ ለመፍጠር አልተቻለም።</translation>
 <translation id="1420834118113404499">የማህደረመረጃ ፈቃዶች</translation>
 <translation id="1420920093772172268">ማጣመርን ለመፈቀድ <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">አዎ</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">የኦዲዮ አድራሻ &amp;ቅዳ</translation>
 <translation id="1465827627707997754">የፒዛ ቁራጭ</translation>
 <translation id="1467432559032391204">ግራ</translation>
-<translation id="1467999917853307373"><ph name="URL" /> ውሂብ እስከ መጨረሻው በእርስዎ መሣሪያ ላይ ሊያከማች ይፈልጋል።</translation>
-<translation id="1470719357688513792">አዲስ የኩኪ ቅንብሮች ገጹ ዳግም ከተጫነ በኋላ ይተገበራሉ።</translation>
 <translation id="1470811252759861213">በሁሉም ኮምፒውተሮችዎ ላይ ቅጥያዎችዎን ለማግኘት <ph name="SIGN_IN_LINK" />።</translation>
 <translation id="1474339897586437869">«<ph name="FILENAME" />» አልተሰቀለም። በእርስዎ Google Drive ውስጥ በቂ የሆነ ነፃ ቦታ የለም።</translation>
 <translation id="1475502736924165259">ከሌሎች ማንኛቸውም መደቦች ጋር የማይገጣጠሙ የእውቅና ማረጋገጫዎች በፋይል ላይ አለዎት</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">ትልቅ የመዳፊት ጠቋሚ</translation>
 <translation id="1543284117603151572">ከEdge ላይ የመጣ</translation>
 <translation id="1545177026077493356">ራስ-ሰር የኪዮስክ ሁነታ</translation>
+<translation id="1545775234664667895">የተጫነ ገጽታ '<ph name="THEME_NAME" />'</translation>
 <translation id="1545786162090505744">ከመጠይቅ ይልቅ %s ያለው ዩአርኤል</translation>
 <translation id="1546280085599573572">ይህ ቅጥያ የመነሻ አዝራሩን ጠቅ ሲያደርጉ የሚታየውን ገጽ ቀይሮታል።</translation>
 <translation id="1547572086206517271">ማደስ ያስፈልጋል</translation>
@@ -443,11 +434,9 @@
 በቁጥጥር ስር ያለው ተጠቃሚ የጎበኛቸውን ድር ጣቢያዎች <ph name="BEGIN_BOLD" />መገምገም<ph name="END_BOLD" /> እና
 ሌሎች ቅንብሮችን <ph name="BEGIN_BOLD" />ማስተዳደር<ph name="END_BOLD" />።</translation>
 <translation id="1648943974594387137">የመለያ መግቢያ ዝርዝሮች ጊዜ ያለፈባቸው ናቸው</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> መስመሮች አይታዩም&gt;</translation>
 <translation id="1650371550981945235">የግቤት አማራጮችን አሳይ</translation>
 <translation id="1650709179466243265">www. እና .com ያክሉ እና አድራሻውን ይክፈቱ</translation>
 <translation id="1651008383952180276">ተመሳሳዩ የይለፍ ሐረጉን ሁለት ጊዜ ማስገባት አለብዎት</translation>
-<translation id="1652972346408808053">የይለፍ ቃል ተቀምጧል። <ph name="SAVED_PASSWORDS_LINK" /> ላይ የይለፍ ቃላትዎን ከማንኛውም መሣሪያ ላይ ይድረሱባቸው</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{ከማንኛውም ቦታ ሆነው ማተም እንዲችሉ አታሚውን ወደ Google Cloud አታሚ ያክሉ።}one{ከማንኛውም ቦታ ሆነው ማተም እንዲችሉ # አታሚዎችን ወደ Google Cloud አታሚ ያክሉ።}other{ከማንኛውም ቦታ ሆነው ማተም እንዲችሉ # አታሚዎችን ወደ Google Cloud አታሚ ያክሉ።}}</translation>
 <translation id="1657406563541664238">የአጠቃቀም ስታቲክሶችን እና የስንኩል ሪፖርቶችን ወደ Google በቀጥታ በመላክ <ph name="PRODUCT_NAME" />ን የተሻለ ለማድረግ እገዛ ያድርጉ።</translation>
 <translation id="1658424621194652532">ይህ ገጽ ማይክሮፎንዎን እየደረሰበት ነው።</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">ኩኪዎች ማገዱን ይቀጥሉ</translation>
 <translation id="204622017488417136">የእርስዎ መሣሪያ ወደ ቀደም ሲል ተጭኖ የነበረው የChrome ስሪት እንዲመለስ ይደረጋል። ሁሉም የተጠቃሚ መለያዎች እና የአካባቢ ውሂብ ይወገዳሉ። ይህ አንዴ ከተደረገ በኋላ ሊቀለበስ አይችልም።</translation>
 <translation id="2048182445208425546">የእርስዎን የአውታረ መረብ ትራፊክ ይድረስበት</translation>
-<translation id="2049137146490122801">ማሽንዎ ላይ የአካባቢያዊ ፋይሎች መዳረሻ በአስተዳዳሪዎ ተሰናክሏል።</translation>
 <translation id="204914487372604757">አቋራጭ ፍጠር</translation>
 <translation id="2050339315714019657">በቁመት</translation>
 <translation id="2053312383184521053">የስራ-ፈት ሁኔታ ውሂብ</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">ገና አልተጫነም</translation>
 <translation id="2107494551712864447">የጣት አሻራ ያክሉ</translation>
-<translation id="2111843886872897694">መተግበሪያዎች ተፅዕኖ ከሚያሳርፉበት አስተናጋጅ መቅረብ አለባቸው።</translation>
 <translation id="2112877397266219826">እኔን ለማዋቀር የንክኪ መቆጣጠሪያዎን ያብሩት</translation>
 <translation id="21133533946938348">ትር አጣብቅ</translation>
 <translation id="2113479184312716848">&amp;ፋይል ክፈት…</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">ምን እየተከሰተ እንዳለ ይንገሩን</translation>
 <translation id="2229161054156947610">ከ1 ሰዓት በላይ ይቀራል</translation>
 <translation id="222931766245975952">ፋይል ተቋርጧል</translation>
-<translation id="222949136907494149"><ph name="URL" /> የኮምፒውተርዎን አካባቢ ለመጠቀም ይፈልጋል።</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">የ«<ph name="FOLDER_NAME" />» አቃፊን መፍጠር አልተቻለም። <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">የዛሬውን doodle ለማየት ጠቅ ያድርጉ</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">ሁልጊዜ የማይክሮፎን መዳረሻ አግድ</translation>
 <translation id="2367972762794486313">መተግበሪያዎችን አሳይ</translation>
 <translation id="2371076942591664043">&amp;ሲጠናቀቅ ክፈት</translation>
-<translation id="237336063998926520">አካባቢን ለመወሰን የእርስዎን የአይፒ አድራሻ ይጠቀሙ</translation>
 <translation id="2377319039870049694">ወደ የዝርዝር እይታ ቀይር</translation>
 <translation id="2377667304966270281">ከባድ ስህተቶች</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ፋይሎች ተመርጠዋል</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ከ<ph name="VOLUME_NAME" /> ፋይሎችን ለመቅዳት ይፈልጋል።</translation>
 <translation id="2462724976360937186">የእውቅና ማረጋገጫ ባለስልጣን ቁልፍ መታወቂያ</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ታክሏል</translation>
-<translation id="246335896104539386">ዕልባቶችን ከውጭ አስመጣ</translation>
 <translation id="2464089476039395325">የኤችቲቲፒ ተኪ</translation>
 <translation id="2468902267404883140">ከእርስዎ ስልክ ጋር መገናኘት አልተቻለም። የበራ እና በቅርብ ርቀት ላይ ተኳሃኝ የAndroid ስልክ እየተጠቀሙ እንደሆነ ያረጋግጡ። &lt;a&gt;የበለጠ ለመረዳት&lt;/a&gt;</translation>
 <translation id="2470702053775288986">የማይደገፉ ቅጥያዎች ተሰናክለዋል</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">አራግፍ</translation>
 <translation id="2487067538648443797">አዲስ ዕልባት ያክሉ</translation>
 <translation id="248861575772995840">የእርስዎን ስልክ ማግኘት አልተቻለም። የእርስዎ <ph name="DEVICE_TYPE" /> ብሉቱዝ መብራቱን ያረጋግጡ። &lt;a&gt;የበለጠ ለመረዳት&lt;/a&gt;</translation>
-<translation id="2489316678672211764">አንድ ተሰኪ (<ph name="PLUGIN_NAME" />) መልስ እየሰጠ አይደለም።</translation>
 <translation id="2489428929217601177">ያለፈው ቀን</translation>
 <translation id="2489918096470125693">&amp;አቃፊ አክል...</translation>
 <translation id="249113932447298600">ይቅርታ፣ መሣሪያ <ph name="DEVICE_LABEL" /> በአሁኑ ጊዜ አይደገፍም።</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">እንኳን ደስ አለዎት! የእርስዎ «<ph name="NAME" />» ውሂብ አገልግሎት ገባሪ ሆኖ ለመሄድ ዝግጁ ነው።</translation>
 <translation id="2566124945717127842">የ<ph name="IDS_SHORT_PRODUCT_NAME" /> መሣሪያዎ ልክ እንደ አዲስ እንዲሆን ዳግም ለማስጀመር Powerwash።</translation>
 <translation id="2568774940984945469">መረጃ አሞሌ መያዣ</translation>
-<translation id="2570000010887652771">የተቀመጠ ውሂብ።</translation>
 <translation id="257088987046510401">ገፅታዎች </translation>
 <translation id="2572032849266859634">ወደ <ph name="VOLUME_NAME" /> ተነባቢ-ብቻ መዳረሻ ተሰጥቷል።</translation>
 <translation id="2573269395582837871">ስዕል እና ስም ይምረጡ</translation>
 <translation id="2575247648642144396">ቅጥያው በአሁኑ ገጽ ላይ መስራት ሲችል ይህ አዶ የሚታይ ይሆናል። አዶውን ጠቅ በማድረግ ወይም <ph name="EXTENSION_SHORTCUT" />ን በመጫን ይህንን ቅጥያ ይጠቀሙበት።</translation>
 <translation id="2575268751393592580">የእርስዎን ስልክ ማግኘት አልተቻለም። የእርስዎ <ph name="DEVICE_TYPE" /> ከWi-Fi ወይም የተንቀሳቃሽ ስልክ አውታረ መረብ ጋር መገናኘቱን ያረጋግጡ። &lt;a&gt;የበለጠ ለመረዳት&lt;/a&gt;</translation>
-<translation id="2576842806987913196">ይህን ስም የያዘ የCRX ፋይል አስቀድሞ ነበር።</translation>
 <translation id="257779572837908839">እንደ Chromebox ለስብሰባዎች ያዋቅሩ</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />ክፍልፍልን መንቀል አልተቻለም<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">የአንድ እውቅና ማረጋገጫ ስልጣን (CA) የሆነ የእውቅና ማረጋገጫ ከሰረዙ አሳሽዎ ከአሁን በኋላ በዛ CA የተሰጡ የእውቅና ማረጋገጫዎችን አያምንም።</translation>
 <translation id="2653659639078652383">አስገባ</translation>
 <translation id="265390580714150011">የመስክ እሴት</translation>
-<translation id="2654286334048437383">ዕልባቶችን ወደ ውጭ ላክ</translation>
 <translation id="2655386581175833247">የተጠቃሚ እውቅና ማረጋገጫ፦</translation>
 <translation id="2660779039299703961">ክስተት</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">የሚዲያ ማዕከለ ስዕላት በአቃፊ ያክሉ</translation>
 <translation id="2908789530129661844">ማያ ገጹን አሳንስ</translation>
 <translation id="2910318910161511225">ከአውታረ መረብ ጋር ያገናኙና እንደገና ይሞክሩ</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ማይክሮፎንዎን መጠቀም ይፈልጋል።</translation>
 <translation id="2913331724188855103">ጣቢያዎች የኩኪ ውሂብ እንዲያስቀምጡ እና እንዲያነቡ ይፍቀዱ (የሚመከር)</translation>
 <translation id="2916073183900451334">አንድ ድረ-ገጽ ላይ Tabን መጫን አገናኞችንና እንዲሁም የቅጽ መስኮችን ያደምቃል።</translation>
 <translation id="2916745397441987255">በቅጥያዎች ውስጥ ይፈልጉ</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">በማዳመጥ ላይ...</translation>
 <translation id="3141917231319778873">የተሰጠው ጥያቄው በዚህ ላይ አይደገፍም፦ «<ph name="DEVICE_NAME" />»።</translation>
 <translation id="3144126448740580210">ተከናውኗል</translation>
-<translation id="3144135466825225871">የcrx ፋይል መተካት አልተቻለም። ፋይሉ ስራ ላይ እየዋለ ከሆነ ያረጋግጡ።</translation>
 <translation id="3144647712221361880">አገናኙን ክፈት እንደ</translation>
 <translation id="3149510190863420837">Chrome መተግበሪያዎች</translation>
 <translation id="3150927491400159470">ከባድ ዳግም መጫን</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">ሁልጊዜ በሁሉም ጣቢያዎች ላይ አሂድ</translation>
 <translation id="3312424061798279731">የነቁ ቋንቋዎች</translation>
 <translation id="3312903956926554846">ወደ ዴስክቶፕ ጫን</translation>
-<translation id="3313473140726597081">የእርስዎ የጅምር ገጽ ወደ <ph name="URL" /> ተቀይሯል። የጅምር ገጽዎን የሚቀይሩ ቅጥያዎችን ለማሰናከል ወደነበረበት መልስን ጠቅ ያድርጉ።</translation>
 <translation id="3313590242757056087">ክትትል የሚደረግበት ተጠቃሚ የትኛዎቹን ድር ጣቢያዎች መመልከት እንደሚችል ለማዋቀር <ph name="MANAGEMENT_URL" />ን
     በመጎብኘት ገደቦችን እና ቅንብሮችን ማዋቀር ይችላሉ።
     ነባሪ ቅንብሮቹን ካልቀየሩ <ph name="USER_DISPLAY_NAME" /> በድሩ ላይ
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">የመተግበሪያ መረጃ</translation>
 <translation id="3335947283844343239">የተዘጋውን ትር ዳግም ክፈት</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> ጊዜው ያለፈበት ስለሆነ ታግዷል።</translation>
 <translation id="3340978935015468852">ቅንብሮች</translation>
 <translation id="3341703758641437857">ለፋይል ዩአርኤልዎች መዳረሻ ፍቀድ</translation>
 <translation id="3342361181740736773">«<ph name="TRIGGERING_EXTENSION_NAME" />» ይህን ቅጥያ ማስወግድ ይፈልጋል።</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">ዕልባት ታክሏል</translation>
 <translation id="3389312115541230716">በተግባር አሞሌው ላይ የ<ph name="SMALL_PRODUCT_LOGO" /> አዶን ቀኝ ጠቅ ያድርጉ</translation>
 <translation id="3391716558283801616">ትር 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> ካሜራዎን እና ማይክሮፎንዎን ለመጠቀም ይፈልጋል።</translation>
 <translation id="3396331542604645348">የተመረጠው አታሚ የለም ወይም በትክክል አልተጫነም። አታሚዎን ያረጋግጡ ወይም ሌላ አታሚ ለመምረጥ ይሞክሩ።</translation>
 <translation id="3399432415385675819">ማሳወቂያዎች ይሰናከላሉ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />፣ <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome በራስ-ሰር ይዘመናል፣ ስለዚህ ሁልጊዜ አዲሱ ስሪት ይኖርዎታል</translation>
 <translation id="3551320343578183772">ትር ዝጋ</translation>
 <translation id="3552780134252864554">በመውጫ ላይ ጸድቷል</translation>
-<translation id="355298399003313926"><ph name="URL" /> ለተደራሽነት ክስተቶች ምላሽ መስጠት ይፈልጋል።</translation>
 <translation id="3555812735919707620">ቅጥያ አስወገድ</translation>
 <translation id="3556000484321257665">የእርስዎ የፍለጋ ፕሮግራም ወደ <ph name="URL" /> ተቀይሯል።</translation>
-<translation id="3561217442734750519">ለግላዊ ቁልፍ የሚገባ እሴት ትክክለኛ ዱካ መሆን አለበት።</translation>
 <translation id="3563432852173030730">የኪዮስክ መተግበሪያ ሊወርድ አልቻለም።</translation>
 <translation id="3564334271939054422">እየተጠቀሙ ያሉት Wi-Fi (<ph name="NETWORK_ID" />) በመለያ መግቢያ ገጹን እንዲጎበኙ ሊጠይቅዎት ይችላል።</translation>
 <translation id="3564708465992574908">የማጉላት ደረጃዎች</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">የሰርቲፊኬት ስም እገዳዎች</translation>
 <translation id="3596235046596950091">የደመና አገልግሎቶችን አንቃ</translation>
 <translation id="3599863153486145794">ታሪክን በመለያ ከገቡ ሁሉም መሣሪያዎች ላይ ያጸዳል። የእርስዎ Google መለያ <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል</translation>
-<translation id="3600456501114769456">በእርስዎ መሣሪያ ላይ ያሉ የአካባቢያዊ ፋይሎች መዳረሻ በእርስዎ አስተዳዳሪ ተሰናክሏል።</translation>
 <translation id="3600792891314830896">ድምጽን በሚያጫውቱ ጣቢያዎች ላይ ድምጸ-ከል አድርግ</translation>
 <translation id="3603177256297531067">ይህ ገጽ ሊተረጎም አልቻለም</translation>
 <translation id="3603533104205588786">አንድ ገጽ ዕልባት ለማድረግ ኮከቡን ጠቅ ማድረግ ይችላሉ</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">ቅጽበታዊ-ገጽ እይታዎች ተሰናክለዋል</translation>
 <translation id="3625870480639975468">አጒላን ዳግም ያስጀምሩት</translation>
 <translation id="3626281679859535460">ብሩህነት</translation>
-<translation id="3627052133907344175">ቅጥያው «<ph name="IMPORT_NAME" />» ቢያንስ ከ«<ph name="IMPORT_VERSION" />» ስሪት ጋር ያስፈልገዋል፣ ሆኖም ግን «<ph name="INSTALLED_VERSION" />» ስሪት ብቻ ይጫናል።</translation>
 <translation id="3627320433825461852">ከ1 ደቂቃ በታች ይቀራል</translation>
 <translation id="3627588569887975815">አገናኙን ማን&amp;ነትን በማያሳውቅ መስኮት ክፈት</translation>
 <translation id="3627671146180677314">የNetscape ሰርቲፊኬት የእድሳት ጊዜ</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">የቋንቋ ቅንብሮች</translation>
 <translation id="3668823961463113931">ተቆጣጣሪዎች</translation>
 <translation id="3670229581627177274">ብሉቱዝን አብራ</translation>
-<translation id="3672159315667503033"><ph name="URL" /> ትልቅ ውሂብ በአካባቢያዊ ኮምፒውተርዎ ላይ እስከመጨረሻው ሊያከማች ይፈልጋል።</translation>
 <translation id="3672681487849735243">አንድ የፋብሪካ ስህተት ተገኝቷል</translation>
 <translation id="367645871420407123">የስር ይለፍ ቃሉ ወደ ነባሪው የሙከራ ምስል እሴት ለማዘጋጀት ከፈለጉ ባዶ እንደሆነ ይተዉት</translation>
 <translation id="3678156199662914018">ቅጥያ፦ <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">ከመስመር ውጪ ነዎት</translation>
 <translation id="3788401245189148511">ይህንን ሊያደርግ ይችላል፦</translation>
 <translation id="3789841737615482174">ጫን  </translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> በዴስክቶፑ ላይ ብቻ ነው የሚሰራው።</translation>
 <translation id="379082410132524484">የእርስዎ ካርድ የአገልግሎት ጊዜው አብቅቷል</translation>
 <translation id="3792890930871100565">አታሚዎችን ያላቅቁ</translation>
 <translation id="379422718204375917">ወደ የእርስዎ መለያ ለመግባት Smart Lockን ይጠቀሙ</translation>
-<translation id="3794595850995182458">ከገጽ ውጣ</translation>
 <translation id="3796648294839530037">ተወዳጅ አውታረ መረቦች፦</translation>
 <translation id="3797900183766075808">«<ph name="SEARCH_TERMS" />»ን በ<ph name="SEARCH_ENGINE" /> ውስጥ &amp;ፈልግ</translation>
 <translation id="3798325802885154040">ጠቅ ለማድረግ-መታ ማድረግን እንዲያነቁ/እንዲያሰናክሉ ያስችልዎታል</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />ን አንቃ</translation>
 <translation id="3981760180856053153">ልክ ያልሆነ የማስቀመጥ አይነት ገብቷል።</translation>
 <translation id="3983586614702900908">ያልታወቀ አቅራቢ መሣሪያዎች</translation>
-<translation id="3984413272403535372">ቅጥያዎችን በመፈረም ጊዜ ስህተት።</translation>
 <translation id="3987938432087324095">ይቅርታ፣ ይህንን አልሰማሁትም።</translation>
 <translation id="3988996860813292272">የሰዓት ሰቅ ይምረጡ</translation>
 <translation id="3989635538409502728">ዘግተህ ውጣ</translation>
@@ -2035,7 +2002,6 @@
 <translation id="4087470595660267445">በእርስዎ Chromebook ላይ መተግበሪያዎችን እና ጨዋታዎችን ከGoogle Play ይጫኑ። &lt;a target="_blank" href="<ph name="URL" />"&gt;የበለጠ ለመረዳት&lt;/a&gt;</translation>
 <translation id="4088095054444612037">ለቡድኑ ተቀበል</translation>
 <translation id="4090103403438682346">የተረጋገጠ መዳረሻ ያንቁ</translation>
-<translation id="4090404313667273475">በዚህ ገጽ ላይ አንዳንድ ክፍሎችን ለማሳየት <ph name="PLUGIN_NAME" /> ያስፈልጋል።</translation>
 <translation id="4090535558450035482">(ይህ ቅጥያ የሚተዳደር ነው እና ሊወገድ አይችልም።)</translation>
 <translation id="4091434297613116013">የወረቀት ሉሆች</translation>
 <translation id="4093955363990068916">አካባቢያዊ ፋይል፦</translation>
@@ -2369,7 +2335,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> አሁን የይለፍ ቃላትዎን ሊያመሳስል ይችላል።</translation>
 <translation id="4715553623069266137">በጣም አጭር (0.8 ሴ)</translation>
 <translation id="4716483597559580346">Powerwash ለደህንነት ታክሏል</translation>
-<translation id="471800408830181311">የግላዊ ቁልፍን ውጤት ማውጣት አልተሳካም።</translation>
 <translation id="4720113199587244118">መሣሪያዎችን አክል</translation>
 <translation id="4720185134442950733">የተንቀሳቃሽ ውሂብ አውታረ መረብ</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> ማያ ገጽዎን እያጋራ ነው።</translation>
@@ -2506,7 +2471,6 @@
 <translation id="4917385247580444890">ጠንካራ</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ከቅጥያ «<ph name="EXTENSION_NAME" />» ጋር መገናኘት ይፈልጋል</translation>
 <translation id="4918086044614829423">ይቀበሉ</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ካሜራዎን መጠቀም ይፈልጋል።</translation>
 <translation id="4920887663447894854">የሚከተለሉት ጣቢያዎች በዚህ ገጽ ላይ አካባቢዎን ከመከታተል ታግደዋል፦</translation>
 <translation id="492299503953721473">የAndroid መተግበሪያዎችን አስወግድ</translation>
 <translation id="4923279099980110923">አዎ፣ ማገዝ እፈልጋለሁ</translation>
@@ -2547,7 +2511,6 @@
 <translation id="4980805016576257426">ይህ ቅጥያ ተንኮል-አዘል ዌር ይዟል።</translation>
 <translation id="498294082491145744">የድር ጣቢያዎችን መዳረሻ የሚቆጣጠሩ እንደ ኩኪዎች፣ ጃቫስክሪፕት፣ ተሰኪዎች፣ የስነምድራዊ መገኛ ቦታ፣ ማይክራፎን፣ ካሜራ ወዘተ የመሳሰሉ ባህሪዎች  የእርስዎን ቅንብሮች ይለውጡ።</translation>
 <translation id="4988526792673242964">ገፆች</translation>
-<translation id="4988792151665380515">ህዝባዊ ቁልፍን መላክ አልተሳካም።</translation>
 <translation id="49896407730300355">በሰዓት መዞሪያ አቅጣጫ &amp;ተቃራኒ አሽከርክር</translation>
 <translation id="4989966318180235467">&amp;የጀርባ ገጽ ይመርምሩ</translation>
 <translation id="4990343175649730969">የChrome ማጽጃ መሣሪያን አውርድ</translation>
@@ -2576,7 +2539,6 @@
 <translation id="5026874946691314267">ይህን ዳግም አታሳይ</translation>
 <translation id="5027550639139316293">የኢሜይል ሰርቲፊኬት</translation>
 <translation id="5027562294707732951">ቅጥያ ያክሉ</translation>
-<translation id="5028012205542821824">መጫን አልነቃም።</translation>
 <translation id="5029568752722684782">ቅጂን አጽዳ</translation>
 <translation id="5030338702439866405">የቀረበው</translation>
 <translation id="5036662165765606524">ማንኛውንም ጣቢያ በርካታ ፋይሎችን በራስ ሰር እንዲያወርድ አትፍቀድ</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">ስህተት አጋጥሟል።</translation>
 <translation id="5094721898978802975">ከተባባሪ ቤተኛ መተግበሪያዎች ጋር ተገናኝ</translation>
 <translation id="5097002363526479830">ከአውታረ መረብ «<ph name="NAME" />» ጋር መገናኘት አልተሳካም፦ <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">ለማሸግ ወደ አቃፊው የሚወስደው ትክክለኛ ዱካውን ማግኘት አልተቻለም።</translation>
 <translation id="5099354524039520280">ላይ</translation>
 <translation id="5100114659116077956">የቅርብ ጊዜ ባህሪያትን ለእርስዎ ለማምጣት የእርስዎ Chromebox መዘመን አለበት።</translation>
 <translation id="5101042277149003567">ሀሉንም እልባቶች ክፈት</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">በአቃፊ አሳይ</translation>
 <translation id="5171045022955879922">ይፈልጉ ወይም ዩአርኤል ይጻፉ</translation>
 <translation id="5171343362375269016">የተተካ ማህደረ ትውስታ</translation>
-<translation id="5175870427301879686"><ph name="URL" /> ውሂብ በአካባቢያዊ ኮምፒውተርዎ ላይ እስከመጨረሻው ሊያከማች ይፈልጋል።</translation>
 <translation id="5177479852722101802">የካሜራ እና ማይክሮፎን መዳረሻ ማገዱን ቀጥል</translation>
 <translation id="5177526793333269655">ድንክዬ ትይታ</translation>
 <translation id="5177549709747445269">ሞባይል ውሂብ በመጠቀም ላይ ነዎት</translation>
@@ -2740,7 +2700,6 @@
 <translation id="529175790091471945">ይህን መሣሪያ ቅርጸት ይስሩለት</translation>
 <translation id="5293170712604732402">ቅንብሮች ወደ የመጀመሪያቸው ነባሪዎች መልሳቸው</translation>
 <translation id="5298219193514155779">ገጽታ የተፈጠረው በ</translation>
-<translation id="5298363578196989456">የተጋራ ሞጂዩል ስላልሆነ «<ph name="IMPORT_NAME" />» ቅጥያን ማስመጣት አልተቻለም።</translation>
 <translation id="5299109548848736476">አትከታተል</translation>
 <translation id="5299682071747318445">ሁሉም ውሂብ ከተመሳሰለው የይለፍ ሐረግዎ ጋር ተመስጥሯል</translation>
 <translation id="5300589172476337783">አሳይ</translation>
@@ -2768,7 +2727,6 @@
 <translation id="5331425616433531170">«<ph name="CHROME_EXTENSION_NAME" />» መጣመር ይፈልጋል</translation>
 <translation id="5332624210073556029">የሰዓት ሰቅ፦</translation>
 <translation id="5334142896108694079">የስክሪፕት መሸጎጫ</translation>
-<translation id="533433379391851622">የተጠበቀው ስሪት «<ph name="EXPECTED_VERSION" />» ነበር፣ ግን ስሪቱ «<ph name="NEW_ID" />» ነበር።</translation>
 <translation id="5334844597069022743">ምንጩን ይመልከቱ</translation>
 <translation id="5335458522276292100">የ<ph name="FILE_COUNT" />ን ምትኬ ወደ <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> በማስቀመጥ ላይ</translation>
 <translation id="5337771866151525739">በሶስተኛ ወገን የተጫነ።</translation>
@@ -2806,7 +2764,6 @@
 <translation id="5390100381392048184">ጣቢያዎች ድምጽ እንዲያጫውቱ ፍቀድ</translation>
 <translation id="5390284375844109566">በመረጃ ጠቋሚ የተሰናዳ የውሂብ ጎታ</translation>
 <translation id="5390743329570580756">ላክ ለ</translation>
-<translation id="5396126354477659676">በ<ph name="PEPPER_PLUGIN_DOMAIN" /> ላይ ያለው <ph name="PEPPER_PLUGIN_NAME" /> ኮምፒውተርዎን ሊደርስበት ይፈልጋል።</translation>
 <translation id="5397794290049113714">እርስዎ</translation>
 <translation id="5398572795982417028">ከወሰን ውጪ ያለ ገጽ ማጣቀሻ፣ ገደቡ <ph name="MAXIMUM_PAGE" /> ነው</translation>
 <translation id="5398772614898833570">ማስታወቂያዎች ታግደዋል</translation>
@@ -2868,7 +2825,6 @@
 <translation id="5485754497697573575">ሁሉንም ትሮች አስመልስ</translation>
 <translation id="5486261815000869482">የይለፍ ቃል ያረጋግጡ</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> ማያ ገጽዎን ለ<ph name="TAB_NAME" /> እያጋራ ነው።</translation>
-<translation id="5486326529110362464">ለግላዊ ቁልፍ የሚገባ እሴት መኖር አለበት።</translation>
 <translation id="5486561344817861625">የአሳሽ ዳግም መጀመር አስመስለህ ስራ</translation>
 <translation id="5487521232677179737">ውሂብን አጽዳ</translation>
 <translation id="5488093641312826914">«<ph name="COPIED_ITEM_NAME" />» ተቀድቷል</translation>
@@ -2951,7 +2907,6 @@
 <translation id="5600706100022181951">ዝማኔው ከሞባይል ውሂብ <ph name="UPDATE_SIZE_MB" /> ሜባ በመጠቀም ይወርዳል። መቀጠል ይፈልጋሉ?</translation>
 <translation id="5601503069213153581">ፒን</translation>
 <translation id="5605623530403479164">ሌላ የፍለጋ ፕሮግራሞች</translation>
-<translation id="5606674617204776232">በ<ph name="PEPPER_PLUGIN_DOMAIN" /> ላይ ያለው <ph name="PEPPER_PLUGIN_NAME" /> መሣሪያዎን ሊደርስበት ይፈልጋል።</translation>
 <translation id="5608580678041221894">የመከርከሚያ አካባቢውን ለማስተካከል ወይም ለመውሰድ የሚከተሉትን ቁልፎች መታ ያድርጉ</translation>
 <translation id="5609231933459083978">መተግበሪያው ልክ ያልሆነ ይመስላል።</translation>
 <translation id="5610038042047936818">ወደ ካሜራ ሁነታ ቀይር</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">የተተረጎመ</translation>
 <translation id="5991049340509704927">አጉላ</translation>
 <translation id="5993332328670040093">የውሂብ አጠቃቀምዎ ከአሁን በኋላ አይለካም።</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> እራሱን እያዘመነ ላይቀጥል ይችላል።</translation>
 <translation id="600424552813877586">ልክ ያልሆነ መተግበሪያ።</translation>
 <translation id="6005695835120147974">ሚዲያ ራውተር</translation>
 <translation id="6006484371116297560">የታወቀ ገጽታ</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">የክላውድ ምትኬ</translation>
 <translation id="6040143037577758943">ዝጋ</translation>
 <translation id="6040852767465482106">ስም-አልባ መታወቂያ</translation>
+<translation id="6041155700700864984">ከሙሉ ማያ ገጽ ውጣ</translation>
 <translation id="604124094241169006">ራስ-ሰር</translation>
 <translation id="6042169520002885235">የማተሚያ አምራች እና ሞዴል ይምረጡ</translation>
 <translation id="6042308850641462728">ተጨማሪ</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">መደበኛ ዳግም መጫን</translation>
 <translation id="6059652578941944813">የሰርቲፊኬት ተዋረድ</translation>
 <translation id="6059925163896151826">የዩኤስቢ መሣሪያዎች</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ተበላሽቷል።</translation>
 <translation id="6064217302520318294">ማያ ገጽ መቆለፊያ</translation>
 <translation id="6065289257230303064">የሰርቲፊኬት ርዕስ የማውጫ አይነታዎች</translation>
 <translation id="6068338049763724728">የሩቅ ምዝገባን አንቃ</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">የእርስዎን ማያ ገጽ ምስል ጥራት እንዲቀይሩ ያስችልዎታል</translation>
 <translation id="6238923052227198598">በማያ ገጽ መቆለፊያ ላይ የቅርብ ጊዜውን ማስታወሻ አቆይ</translation>
 <translation id="6239558157302047471">&amp;ክፈፍን ዳግም ጫን</translation>
-<translation id="624022915548992686">ከገጽ ውጣ</translation>
 <translation id="6241530762627360640">ከስርዓትዎ ጋር ስለተጣመሩ የብሉቱዝ መሣሪያዎች ያለ መረጃ ይደርሳልና አቅራቢያ ያሉ የብሉቱዝ መሣሪያዎችን ያገኛል።</translation>
 <translation id="6243774244933267674">አገልጋይ አይገኝም</translation>
 <translation id="6246413617632217567">ክትትል የሚደረግበት ተጠቃሚን ማስመጣት አልተቻለም። እባክዎ የደረቅ አንጻፊዎ ቦታን እና ፈቃዶችን ያረጋግጡና እንደገና ይሞክሩ።</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">ያልታወቀ የአውታረ መረብ ስህተት</translation>
 <translation id="6313641880021325787">ከቪአር ውጣ</translation>
 <translation id="6314819609899340042">በዚህ የ<ph name="IDS_SHORT_PRODUCT_NAME" /> መሣሪያ ላይ የማረም ባህሪያትን በተሳካ ሁኔታ አንቅተዋል።</translation>
-<translation id="6315343732431721770">የእርስዎ ጅምር ገጾች <ph name="URL" />ን ለማካተት ተቀይረዋል። የጅምር ገጽዎን የሚቀይሩ ቅጥያዎችን ለማሰናከል ወደነበረበት መልስን ጠቅ ያድርጉ።</translation>
 <translation id="6315493146179903667">ሁሉንም ወደፊት አምጣቸው</translation>
 <translation id="6316806695097060329">ይህ የ<ph name="SHORT_PRODUCT_NAME" /> መሣሪያ የድሩ ምርጥ ተሞክሮ ለእርስዎ ለማድረስ ነው የተቀየሰው።</translation>
 <translation id="6317318380444133405">ከአሁን በኋላ አይደገፍም።</translation>
 <translation id="6317369057005134371">የመተግበሪያ መስኮትን በመጠበቅ ላይ...</translation>
 <translation id="6318407754858604988">ማውረድ ተጀምሯል</translation>
-<translation id="6322279351188361895">ግላዊ ቁልፍን ማንበብ አልተሳካም።</translation>
 <translation id="6325191661371220117">ራስ-አስጀምርን አሰናክል</translation>
 <translation id="6326175484149238433">ከChrome አስወግድ</translation>
 <translation id="6326855256003666642">የKeepalive ብዛት</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">ምን እንደሚመሳሰል ይምረጡ</translation>
 <translation id="6333064448949140209">ፋይሉ ለመታረም ወደ Google ይላካል</translation>
 <translation id="6333834492048057036">ለመፈለግ የአድራሻ አሞሌ ላይ ያተኩሩ</translation>
-<translation id="6336907568130557310">የእርስዎ የይለፍ ቃላት ወደ ውጭ የተላከ ፋይልን መመልከት ለሚችል ማንኛውም ሰው የሚታዩ ይሆናሉ። ፋይሉን ለማንም አይጋሩት፣ እና ካስመጡት በኋላ ይሰርዙት።</translation>
 <translation id="6339668969738228384">ለ<ph name="USER_EMAIL_ADDRESS" /> አዲስ መገለጫ ይፈጠሩ</translation>
 <translation id="6340017061976355871">ከአገልጋዩ ጋር መገናኘት አልተቻለም። እባክዎ የአውታረ መረብዎን ግንኙነት ይፈትሹትና እንደገና ይሞክሩ። ችግሩ ከቀጠለ የእርስዎን Chromebook ዳግም ያስጀምሩት።</translation>
 <translation id="6340071272923955280">የበይነመረብ ህትመት ፕሮቶኮል (አይፒፒፒኤስ)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">ጣቢያዎች የኩኪ ውሂብ ማስቀመጥ እና ማንበብ ይችላሉ</translation>
 <translation id="6388771388956873507">በመሣሪያዎ ላይ ያለውን የጣት አሻራ ዳሳሽ ያግኙትና በጣትዎ ይንኩት</translation>
 <translation id="6390799748543157332">በዚህ መስኮት ውስጥ የሚመለከቷቸውን ገጾች በአሰሳ ታሪክዎ ላይ የማይታዩ ሲሆን ሁሉንም የተከፈቱ የእንግዳ መስኮቶችን ከዘጉ በኋላ እንደ ኩኪዎች ያሉ ሌሎች መከታተያዎች በእርስዎ ኮምፒውተር ላይ አይተዉም። ይሁንና ማንኛውም የሚያወርዷቸው ፋይሎች ይቀመጣሉ።</translation>
-<translation id="6391538222494443604">የግብአት ማውጫ መኖር ይኖርበታል።</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />የስርዓት መረጃ<ph name="END_LINK1" /> እና <ph name="BEGIN_LINK2" />ልኬቶች<ph name="END_LINK2" /> ይላኩ</translation>
 <translation id="6397363302884558537">መናገር አቁም</translation>
 <translation id="6397592254427394018">&amp;ሁሉንም እልባቶች ማንነትን በስውር መስኮት ክፈት</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">JavaScript እገዳን አቀናብር…</translation>
 <translation id="6459488832681039634">ለማግኘት የተመረጡትን ተጠቀም</translation>
 <translation id="6460601847208524483">ቀጣዩን አግኝ</translation>
-<translation id="6462080265650314920">መተግበሪያዎች በይዘት አይነት «<ph name="CONTENT_TYPE" />» ሊቀርቡ ይገባል።</translation>
 <translation id="6462082050341971451">አሁንም እዛው ነዎት?</translation>
 <translation id="6463795194797719782">&amp;አርትዕ</translation>
 <translation id="6466988389784393586">&amp;ሀሉንም እልባቶች ክፈት</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (ዩኤስቢ)</translation>
 <translation id="667517062706956822">Google ይህን ገጽ ከ<ph name="SOURCE_LANGUAGE" /> ወደ <ph name="TARGET_LANGUAGE" /> እንዲተረጉመው ይፈልጋሉ?</translation>
 <translation id="6675665718701918026">መጠቆሚያ መሣሪያ ተገናኝቷል</translation>
-<translation id="6677037229676347494">የተጠበቀው መታወቂያ «<ph name="EXPECTED_ID" />» ግን መታወቂያዎ «<ph name="NEW_ID" />» ነበር።</translation>
 <translation id="6678717876183468697">የጥያቄ ዩአርኤል</translation>
 <translation id="6680028776254050810">ተጠቃሚዎችን ይቀያይር</translation>
 <translation id="6680442031740878064">ይገኛል፦ <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">በማንኛውም ጊዜ Google ምን መረጃን እንደሚሰበስብ በ<ph name="BEGIN_LINK" />ቅንብሮች<ph name="END_LINK" /> ማበጀት ይችላሉ።</translation>
 <translation id="6904344821472985372">የፋይል መዳረሻ ሻር</translation>
 <translation id="6904655473976120856">ለመውጣት የመተግበሪያ አዝራርን ይጫኑ</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> የእርስዎን ማያገጽ ለማጋራት ይፈልጋል።</translation>
-<translation id="6909461304779452601">መተግበሪያዎች፣ ቅጥያዎች እና የተጠቃሚ ስክሪፕቶች ከዚህ ድር ጣቢያ ሊታከሉ አይችሉም።</translation>
 <translation id="6910211073230771657">ተሰርዟል</translation>
 <translation id="691024665142758461">በርካታ ፋይሎችን ያወርዳል</translation>
 <translation id="6911324888870229398">የአውታረ መረብ ግንኙነት ጠፍቷል። እባክዎ ግንኙነትዎን ይፈትሹት ወይም ሌላ የWi-Fi አውታረ መረብ ይሞክሩ።</translation>
@@ -4102,7 +4047,6 @@
 <translation id="747114903913869239">ስህተት፦ ቅጥያዎችን ዲኮድ ማድረግ አልተቻለም</translation>
 <translation id="7473891865547856676">አይ፣ አመሰግናለሁ</translation>
 <translation id="747459581954555080">ሁሉንም ወደነበረበት መልስ</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> አንድ ስህተት አጋጥሞታል።</translation>
 <translation id="7475671414023905704">የNetscape የጠፋ የይለፍ ቃል URL</translation>
 <translation id="7476454130948140105">ባትሪ ለዝማኔ በጣም ዝቅተኛ ነው (<ph name="BATTERY_PERCENT" />)</translation>
 <translation id="7477347901712410606">የይለፍ ሐረግዎን ከረሱ ማመሳሰልን ያቁሙ እና በ<ph name="BEGIN_LINK" />Google Dashboard <ph name="END_LINK" /> በኩል ዳግም ያስጀምሩ።</translation>
@@ -4139,7 +4083,6 @@
 <translation id="7507930499305566459">የሁኔታ መላሽ ሰርቲፍኬት</translation>
 <translation id="7508545000531937079">የተንሸራታች ትዕይንት</translation>
 <translation id="7513029293694390567">የተከማቹ ምስክርነቶችን በመጠቀም በራስ-ሰር ወደ ድር ጣቢያዎች ይግቡ። ከተሰናከለ ወደ አንድ ድር ጣቢያ ከመግባትዎ በፊት ሁልጊዜ ማረጋገጫ እንዲሰጡ ይጠየቃሉ።</translation>
-<translation id="7515670329462166359"><ph name="URL" /> ጥበቃ የሚደረግለትን ይዘት ለማጫወት የእርስዎን መሣሪያ ለይቶ ማወቅ ይፈልጋል።</translation>
 <translation id="7517569744831774757">ቅንብሮች ወደ የመጀመሪያቸው ነባሪዎች መልሳቸው።</translation>
 <translation id="7517786267097410259">አንድ የይለፍ ቃል ይፍጠሩ -</translation>
 <translation id="7518150891539970662">የWebRTC ምዝግብ ማስታወሻዎች (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4169,7 +4112,6 @@
     ይችላሉ።</translation>
 <translation id="756445078718366910">የአሳሻ መስኮት ክፈት</translation>
 <translation id="7564847347806291057">ሂደቱን ግታ</translation>
-<translation id="7565291891798266313">የእርስዎ የፍለጋ ፕሮግራሞ ወደ <ph name="URL" /> ተቀይሯል። የፍለጋ ፕሮግራምዎን የሚቀይሩ ቅጥያዎችን ለማሰናከል ወደነበረበት መልስን ጠቅ ያድርጉ።</translation>
 <translation id="7566118625369982896">የPlay መተግበሪያ አገናኞችን ያቀናብሩ</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">የChrome ውሂብ ጸድቷል</translation>
@@ -4178,7 +4120,6 @@
 <translation id="7573172247376861652">የባትሪ ሙሌት</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">አጠናክር</translation>
-<translation id="7577815336900970562">አካባቢን ለመወሰን WiFi ወይም የተንቀሳቃሽ ስልክ አውታረ መረብን ይጠቀሙ</translation>
 <translation id="7579149537961810247">ጣቢያዎች ላይ ድምፀ-ከል አድርግ</translation>
 <translation id="7580671184200851182">ተመሳሳዩን ኦዲዮ በሁሉም ድምፅ ማጉያዎች በኩል አጫውት (ሞኖ ኦዲዮ)</translation>
 <translation id="7581462281756524039">የማጽጃ መሣሪያ</translation>
@@ -4285,6 +4226,7 @@
 <translation id="7773726648746946405">የክፍለ-ጊዜ ማከማቻ</translation>
 <translation id="7781335840981796660">ሁሉም የተጠቃሚ መለያዎች እና አካባቢያዊ ውሂብ ይወገዳሉ።</translation>
 <translation id="7782102568078991263">ከGoogle ተጨማሪ የጥቆማ አስተያየቶች የሉም</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" />ን መጫን አልተቻለም</translation>
 <translation id="7784067724422331729">በኮምፒውተርዎ ላይ ያሉት የደህንነት ቅንብሮች ይህንን ፋይል አግደውታል።</translation>
 <translation id="7786207843293321886">ከእንግዳ ክፍለ ጊዜ ይውጡ</translation>
 <translation id="7786889348652477777">&amp;መተግበሪያን ዳግም ጫን</translation>
@@ -4452,7 +4394,6 @@
 <translation id="8001504501378762252">አንድ ጣቢያ የይለፍ ቃልዎን ሰርቆ ሊሆን ይችላል</translation>
 <translation id="8004582292198964060">አሳሽ</translation>
 <translation id="8008356846765065031">የበይነመረብ ግንኙነት ተቋርጧል። እባክዎ የበይነመረብዎን ግንኙነት ይፈትሹ።</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" />ን መጫን አልተቻለም።</translation>
 <translation id="8008818777654712271">አደገኛ መተግበሪያዎችን እና ጣቢያዎችን እንዲገኙ ለማገዝ አንዳንድ የሥርዓት መረጃን እና የገጽ ይዘትን ለGoogle በራስ-ሰር ይላኩ</translation>
 <translation id="8012382203418782830">ይህ ገጽ ተተርጉሟል።</translation>
 <translation id="8014154204619229810">አዘማኙ አሁን በማሄድ ላይ ነው። እንደገና ለመፈተሽ በአንድ ደቂቃ ውስጥ ያድሱ።</translation>
@@ -4569,7 +4510,6 @@
 <translation id="8191230140820435481">መተግበሪያዎችዎን፣ ቅጥያዎችዎን እና ገጽታዎችዎን ያቀናብራል</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">ዲስክ ላይ ያለው መጠን</translation>
-<translation id="8195739004487400241">የእርስዎ የመነሻ ገጽ ወደ <ph name="URL" /> ተቀይሯል። የመነሻ ገጽዎን የሚቀይሩ ቅጥያዎችን ለማሰናከል ወደነበረበት መልስን ጠቅ ያድርጉ።</translation>
 <translation id="8199300056570174101">አውታረ መረብ (አገልግሎት) እና የመሣሪያ ጠባያት</translation>
 <translation id="8200772114523450471">ከቆመበት ቀጥል</translation>
 <translation id="8202160505685531999">የእርስዎን የ<ph name="DEVICE_TYPE" /> መገለጫ ለማዘመን እባክዎ የእርስዎን የይለፍ ቃል ዳግም ያስገቡት።</translation>
@@ -4613,7 +4553,6 @@
 <translation id="8261378640211443080">ይህ ቅጥያ በ<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ውስጥ ያልተጠቀሰ ሲሆን እርስዎ ሳያውቁት የታከለ ሊሆን ይችላል።</translation>
 <translation id="8261387128019234107">ለ<ph name="PROFILE_NAME" /> መለያ አክል</translation>
 <translation id="8261506727792406068">ሰርዝ</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> በዚህ ግንብ ውስጥ አልተተገበረም።</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> የመዳፊት ጠቋሚዎን አሰናክሏል።</translation>
 <translation id="8264718194193514834">«<ph name="EXTENSION_NAME" />» ሙሉ ማያ ገጽን አስነስቷል።</translation>
 <translation id="8270242299912238708">የፒዲኤፍ ሰነዶች</translation>
@@ -4714,6 +4653,7 @@
 <translation id="8454288007744638700">ወይም ደግሞ አዲስ አውታረ መረብ ይምረጡ፦</translation>
 <translation id="845627346958584683">ጊዜው የሚቃጠልበት ጊዜ</translation>
 <translation id="8456681095658380701">ልክ ያልሆነ ስም</translation>
+<translation id="8457451314607652708">ዕልባቶችን አስመጣ</translation>
 <translation id="8460336040822756677">ዘመናዊ ቁልፍን ለ<ph name="DEVICE_TYPE" /> ካጠፉ ስልክዎን ተጠቅመው የChrome መሣሪያዎችዎን ማስከፈት አይችሉም። የይለፍ ቃልዎን መተየብ ይኖርብዎታል።</translation>
 <translation id="8461329675984532579">የመነሻ አቅራቢ ስም</translation>
 <translation id="84613761564611563">የአውታረ መረብ ውቅረት በይነገጽ ተጠይቋል፣ እባክዎ ይጠብቁ...</translation>
@@ -4745,7 +4685,6 @@
 <translation id="850875081535031620">ምንም ጎጂ ሶፍትዌር አልተገኘም</translation>
 <translation id="8512476990829870887">ሂደቱን ግታ</translation>
 <translation id="851263357009351303">ሁልጊዜ <ph name="HOST" /> ምስሎችን እዲያሳይ ፍቀድ</translation>
-<translation id="8513191386157529469">«<ph name="CLIENT_NAME" />» ይህን አሳሽ እያረመ ነው።</translation>
 <translation id="8521475323816527629">በፍጥነት ወደ የእርስዎ መተግበሪያዎች ይሂዱ</translation>
 <translation id="8523493869875972733">ለውጦችን አስቀምጥ</translation>
 <translation id="8523849605371521713">በመመሪያ የታከለ</translation>
@@ -4801,7 +4740,6 @@
 <translation id="8620765578342452535">የአውታረ መረብ ግንኙነቶችን ያዋቅራል</translation>
 <translation id="8620790565535071193">መቃኘት አልተሳካም</translation>
 <translation id="8622877356447980900">ይህንን ገፅ መተርጎም ይፈልጋሉ?</translation>
-<translation id="8623004009673949077">የ«kiosk_only» አንጸባራቂ አይነታ ያለው መተግበሪያ በChrome OS ኪዮስክ ሁኔታ ላይ መጫን አለበት።</translation>
 <translation id="8624205858755890468">ረዳቱ ተዛማጅነት ያላቸውን መረጃዎች፣ መተግበሪያዎች እና እርምጃዎች ለእርስዎ እንዲያሳይ ያስችለዋል።</translation>
 <translation id="862542460444371744">&amp;ቅጥያዎች</translation>
 <translation id="8627151598708688654">ምንጭ ይምረጡ</translation>
@@ -4950,7 +4888,6 @@
 <translation id="882204272221080310">ለተጨማሪ ደህንነት ጽኑ ትዕዛዝን ያዘምኑ።</translation>
 <translation id="8823514049557262177">የአገናኝ ጽሑፍ &amp;ቅዳ</translation>
 <translation id="8824701697284169214">&amp;ገጽ አክል...</translation>
-<translation id="8827850355924932817">አካባቢን ለመወሰን የWiFi አውታረ መረብን ይጠቀሙ</translation>
 <translation id="8828933418460119530">የDNS ስም</translation>
 <translation id="8830796635868321089">የአሁኑ ተኪ ቅንብሮችን ተጠቅሞ የዝማኔ ፍተሻ አልተሳካም። እባክዎ <ph name="PROXY_SETTINGS_LINK_START" />የተኪ ቅንብሮችዎ<ph name="PROXY_SETTINGS_LINK_END" />ን ያስተካክሉ።</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> ነው የአውታረ መረብ ውቅረትን የሚቆጣጠሩት።</translation>
@@ -4982,9 +4919,7 @@
 <translation id="8879284080359814990">&amp;በትር አሳይ</translation>
 <translation id="8884961208881553398">አዳዲስ አገልግሎቶችን ያክሉ</translation>
 <translation id="8885197664446363138">Smart Lock ሊገኝ አይችልም</translation>
-<translation id="8885905466771744233">ለተጠቀሰው ቅጥያ ቀድሞውንም ግላዊ ቁልፍ አለ። ይህን ቁልፍ ዳግም ይጠቀሙ ወይም  ይሰርዙት።</translation>
 <translation id="8888432776533519951">ቀለም፦</translation>
-<translation id="8892992092192084762">ገጽታ «<ph name="THEME_NAME" />» ተጭኗል።</translation>
 <translation id="8893928184421379330">ይቅርታ፣ መሣሪያ <ph name="DEVICE_LABEL" /> ሊታወቅ አልቻለም።</translation>
 <translation id="8895454554629927345">የእልባት ዝርዝር</translation>
 <translation id="88986195241502842">ገጽ ወደ ታች</translation>
@@ -4999,7 +4934,6 @@
 <translation id="8908902564709148335">ማስጠንቀቂያ፦ በዚህ ኮምፒውተር ላይ የ --scripts-require-action ዕልባቱን አንቅተዋል፣ ይህም የዚህ ቅጥያ ችሎታዎችን ይገድባል። ይሁንና፣ ሌሎች መሣሪያዎች ይህን ዕልባት ላይደግፉት ወይም አንቅተውት ሊሆኑ ይችላሉ በእነዚህ መሣሪያዎች ላይ ይህ ቅጥያ የሚከተሉትንም ማድረግ ይችላል፦</translation>
 <translation id="8910146161325739742">የእርስዎን ገጸ ማያ ያጋሩ</translation>
 <translation id="8910222113987937043">በእርስዎ ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች ላይ የሚደረጉ ለውጦች ከአሁን በኋላ ከGoogle መለያዎ ጋር አይሰምሩም። ይሁንና፣ የእርስዎ ነባር ውሂብ በGoogle መለያዎ ላይ እንደተከማቸ የሚቆይ እና በ<ph name="BEGIN_LINK" />Google ዳሽቦርድ<ph name="END_LINK" /> ላይ መቀናበር የሚችል ነው።</translation>
-<translation id="8911079125461595075">Google «<ph name="EXTENSION_NAME" />»ን ተንኮል-አዘል ብሎ ጠቁሞታል፣ እና እንዳይጫን ተከልክሏል።</translation>
 <translation id="8912793549644936705">ወጥር</translation>
 <translation id="8915370057835397490">የጥቆማ አስተያየት በመጫን ላይ</translation>
 <translation id="8916476537757519021">ማንነት የማያሳውቅ ንዑስ ክፈፍ፦ <ph name="SUBFRAME_SITE" /></translation>
@@ -5105,7 +5039,6 @@
 <translation id="9074739597929991885">ብሉቱዝ</translation>
 <translation id="9074836595010225693">የUSB መዳፊት ተገናኝቷል</translation>
 <translation id="9076523132036239772">ይቅርታ፣ ኢሜይልዎ ወይም የይለፍ ቃልዎ ሊረጋገጥ አልቻለም። መጀመሪያ ከአውታረ መረብ ጋር ለመገናኘት ይሞክሩ።</translation>
-<translation id="907841381057066561">በመጠቅለል ጊዜ ጊዜያዊ ዚፕ ፋይል መፍጠር አልተሳካም።</translation>
 <translation id="9084064520949870008">እንደ መስኮት ክፈት</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> በድርጅት መመሪያ ታግዷል</translation>
 <translation id="9088917181875854783">እባክዎ ይህን የይለፍ ቁልፍ በ«<ph name="DEVICE_NAME" />» ላይ መታየቱን ያረጋግጡ፦</translation>
@@ -5196,11 +5129,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">የይለፍ ሐረግ ያስገቡ</translation>
 <translation id="939736085109172342">አዲስ ዓቃፊ</translation>
-<translation id="941543339607623937">ልክ ያልሆነ ግላዊ ቁልፍ።</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> የChrome ትር እና ኦዲዮ እያጋራ ነው።</translation>
 <translation id="942954117721265519">በዚህ አቃፊ ውስጥ ምንም ምስሎች የሉም።</translation>
 <translation id="945522503751344254">ግብረ መልስ ላክ</translation>
-<translation id="951981865514037445"><ph name="URL" /> የመሣሪያዎን አካባቢ ለመጠቀም ይፈልጋል።</translation>
 <translation id="952992212772159698">አልገበረም</translation>
 <translation id="9580706199804957">ከGoogle አገልግሎቶች ጋር መገናኘት አልተቻለም</translation>
 <translation id="958515377357646513">ወደ ፊት ለመሄድ መታ ያድርጉ።</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index 08fbdbdd3..2a14f49a 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">التشفير فقط</translation>
 <translation id="1039337018183941703">ملف تالف أو غير صالح</translation>
 <translation id="1042174272890264476">‏يأتي جهاز الكمبيوتر أيضًا مزودًا بمكتبة RLZ مضمنة للمنتج <ph name="SHORT_PRODUCT_NAME" />. تعيّن RLZ علامة غير فريدة وغير متعلقة بتحديد الشخصية من أجل قياس عمليات البحث ومعدل استخدام <ph name="SHORT_PRODUCT_NAME" /> الذي تؤثر فيه حملة ترويجية محددة. تظهر هذه التصنيفات أحيانًا في طلبات بحث Google في <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">يريد <ph name="URL" /> تخزين البيانات الكبيرة بشكل دائم على جهازك.</translation>
 <translation id="1046059554679513793">عذرًا، هذا الاسم قيد الاستخدام فعلاً!</translation>
 <translation id="1047431265488717055">نسخ ن&amp;ص الرابط</translation>
 <translation id="1047726139967079566">وضع إشارة مرجعية على هذه الصفحة...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">هل تريد استعادة محرك البحث التلقائي؟</translation>
 <translation id="1177863135347784049">مخصص</translation>
 <translation id="1178581264944972037">تعليق</translation>
-<translation id="1179803038870941185">‏يريد <ph name="URL" /> الحصول على إمكانية تحكم كاملة في أجهزة MIDI.</translation>
 <translation id="1181037720776840403">إزالة</translation>
 <translation id="1183237619868651138">تعذّر تثبيت <ph name="EXTERNAL_CRX_FILE" /> في ذاكرة التخزين المؤقت المحلية.</translation>
 <translation id="1185924365081634987">يمكنك أيضا أن تجرّب <ph name="GUEST_SIGNIN_LINK_START" />التصفح كضيف<ph name="GUEST_SIGNIN_LINK_END" /> لإصلاح هذا الخطأ في الشبكة.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{الوصول إلى ملف مخزّن على جهاز الكمبيوتر}zero{ الوصول إلى # من الملفات المخزّنة على جهاز الكمبيوتر}two{الوصول إلى ملفين (#) مخزّنين على جهاز الكمبيوتر}few{ الوصول إلى # ملفات مخزّنة على جهاز الكمبيوتر}many{الوصول إلى # ملفًا مخزنًا على جهاز الكمبيوتر}other{الوصول إلى # من الملفات المخزّنة على جهاز الكمبيوتر}}</translation>
 <translation id="1195076408729068893">‏لبدء Smart Lock، أدخل كلمة المرور. وفي المرة القادمة، يمكنك استخدام هاتفك لإلغاء قفل جهاز <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">خطأ  غير محدّد.</translation>
-<translation id="1196338895211115272">تعذّر تصدير المفتاح الخاص.</translation>
 <translation id="119738088725604856">نافذة لقطة شاشة</translation>
 <translation id="1197979282329025000">حدث خطأ أثناء استرداد إمكانيات الطابعة للطابعة <ph name="PRINTER_NAME" />. تعذر تسجيل هذه الطابعة في <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">لنبدأ</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">يوصي المشرف بقيمة محددة لهذا الإعداد.</translation>
 <translation id="1225177025209879837">جارٍ معالجة الطلب...</translation>
 <translation id="1225211345201532184">عنصر الرف 5</translation>
-<translation id="1225404570112441414">أضف هذا الموقع إلى الرف لاستخدامه في أي وقت.</translation>
 <translation id="1227507814927581609">تعذّرت المصادقة أثناء الاتصال بالجهاز "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">قائمة النظام</translation>
 <translation id="1232569758102978740">بلا عنوان</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">‏لوضع إشارة مرجعية لملف HTML</translation>
 <translation id="1303671224831497365">لم يتم العثور على أي أجهزة بلوتوث</translation>
 <translation id="1306606229401759371">تغيير الإعدادات</translation>
-<translation id="1307398858972670978">الوصول إلى كلمات المرور من أي جهاز في <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">عفوًا! تعذّر النظام في تخزين الرمز المميز للدخول طويل المدى إلى واجهة برمجة التطبيقات على هذا الجهاز.</translation>
 <translation id="1313405956111467313">تهيئة تلقائية للخادم الوكيل</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">البحث</translation>
 <translation id="1386387014181100145">مرحبًا.</translation>
 <translation id="138784436342154190">هل تريد استعادة صفحة بدء التشغيل الافتراضية؟</translation>
-<translation id="1389297115360905376">لا يمكن إضافة ذلك إلا من خلال <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">فتح كعلامة تبويب عادية</translation>
-<translation id="1391807639023934267">تم تحميل الصفحة بشكل أسرع.</translation>
 <translation id="1393283411312835250">الشمس والسحاب</translation>
 <translation id="1395262318152388157">شريط تمرير البحث</translation>
 <translation id="1395730723686586365">خدمة التحديث بدأت</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">إنك تُجري تحديثًا لإصدار غير ثابت من <ph name="PRODUCT_NAME" /> والذي يشتمل على ميزات قيد التقدم. لذا قد تحدث أعطال وأخطاء غير متوقعة. يُرجى المتابعة مع توخّي الحذر.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (معرف الإضافة "<ph name="EXTENSION_ID" />") غير مسموح بها في هذا النوع من الجلسات.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">‏عذرًا! تعذّر إنشاء ملف خاص RSA عشوائي.</translation>
 <translation id="1420834118113404499">تراخيص وسائل الإعلام</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> للسماح بالإقران</translation>
 <translation id="1426410128494586442">نعم</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ن&amp;سخ عنوان الصوت</translation>
 <translation id="1465827627707997754">شريحة بيتزا</translation>
 <translation id="1467432559032391204">اليسار</translation>
-<translation id="1467999917853307373">يريد <ph name="URL" /> تخزين البيانات بشكل دائم على جهازك.</translation>
-<translation id="1470719357688513792">ستسري إعدادات ملفات تعريف الارتباط بعد إعادة تحميل الصفحة.</translation>
 <translation id="1470811252759861213">للحصول على الإضافات على جميع أجهزة الكمبيوتر، <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">‏لم يتم تحميل "<ph name="FILENAME" />". حيث لا توجد لديك مساحة فارغة كافية في Google Drive.</translation>
 <translation id="1475502736924165259">لديك شهادات في الملف لا تندرج تحت أي فئة من الفئات الأخرى</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">مؤشر الماوس الكبير</translation>
 <translation id="1543284117603151572">‏تم الاستيراد من شبكة Edge</translation>
 <translation id="1545177026077493356">وضع الكشك التلقائي</translation>
+<translation id="1545775234664667895">تم تثبيت المظهر "<ph name="THEME_NAME" />".</translation>
 <translation id="1545786162090505744">‏عنوان URL الذي يحتوي على % بدلاً من طلب البحث</translation>
 <translation id="1546280085599573572">غيّرت هذه الإضافة الصفحة التي تظهر عند النقر على زر الصفحة الرئيسية.</translation>
 <translation id="1547572086206517271">يلزم التحديث</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />ومراجعة<ph name="END_BOLD" /> مواقع الويب التي زارها المستخدم الذي يخضع للإدارة،
     <ph name="BEGIN_BOLD" />وإدارة<ph name="END_BOLD" /> الإعدادات الأخرى.</translation>
 <translation id="1648943974594387137">تفاصيل تسجيل الدخول قديمة</translation>
-<translation id="1649641629389702691">&lt;لم يتم عرض <ph name="LINE_COUNT" /> من الأسطر&gt;</translation>
 <translation id="1650371550981945235">عرض خيارات الإدخال</translation>
 <translation id="1650709179466243265">‏إضافة www. و.com وفتح العنوان</translation>
 <translation id="1651008383952180276">يجب إدخال عبارة المرور نفسها مرتين</translation>
-<translation id="1652972346408808053">تم حفظ كلمة المرور. يمكنك الوصول إلى كلمات مرورك من أي جهاز على <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{‏إضافة طابعة إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}zero{‏إضافة # من الطابعات إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}two{‏إضافة طابعتين (#) إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}few{‏إضافة # طابعات إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}many{‏إضافة # طابعة إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}other{‏إضافة # من الطابعات إلى الطباعة في السحاب من Google حتى تتمكن من الطباعة من أي مكان.}}</translation>
 <translation id="1657406563541664238">‏المساعدة في تحسين <ph name="PRODUCT_NAME" /> بإرسال إحصاءات الاستخدام وتقارير الأعطال إلى Google تلقائيًا</translation>
 <translation id="1658424621194652532">هذه الصفحة تحاول الدخول إلى الميكروفون.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">متابعة حظر تشغيل ملفات تعريف الارتباط</translation>
 <translation id="204622017488417136">‏سيتم إرجاع جهازك إلى إصدار Chrome المثبت مسبقًا. ستتم إزالة كل حسابات المستخدمين والبيانات المحلية. ولا يمكن التراجع عن ذلك.</translation>
 <translation id="2048182445208425546">الدخول إلى عدد زيارات شبكتك</translation>
-<translation id="2049137146490122801">عطّل المشرف الدخول إلى الملفات المحلية على جهازك.</translation>
 <translation id="204914487372604757">إنشاء اختصار</translation>
 <translation id="2050339315714019657">رأسي</translation>
 <translation id="2053312383184521053">بيانات حالة الخمول</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">لم يتم تحميلها بعد</translation>
 <translation id="2107494551712864447">إضافة بصمة إصبع</translation>
-<translation id="2111843886872897694">يجب تقديم التطبيقات من المضيف الذي يؤثرون فيه.</translation>
 <translation id="2112877397266219826">تشغيل عنصر التحكم باللمس للإعداد</translation>
 <translation id="21133533946938348">تثبيت علامة التبويب</translation>
 <translation id="2113479184312716848">فتح &amp;ملف...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">أخبرنا بما يحدث</translation>
 <translation id="2229161054156947610">يتبقى أكثر من ساعة واحدة</translation>
 <translation id="222931766245975952">تم اقتطاع الملف</translation>
-<translation id="222949136907494149">يريد <ph name="URL" /> استخدام موقع جهاز الكمبيوتر.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">تعذر إنشاء المجلد "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">انقر لعرض رسومات الشعار المبتكرة لهذا اليوم.</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">حظر الدخول إلى الميكروفون دومًا</translation>
 <translation id="2367972762794486313">إظهار التطبيقات</translation>
 <translation id="2371076942591664043">فتح الملفّ عند &amp;انتهاء التحميل</translation>
-<translation id="237336063998926520">‏استخدام عنوان IP لتحديد الموقع</translation>
 <translation id="2377319039870049694">تبديل إلى عرض القائمة</translation>
 <translation id="2377667304966270281">الأخطاء الجسيمة</translation>
 <translation id="2378075407703503998">تم تحديد <ph name="SELCTED_FILE_COUNT" /> من الملفات</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239">يريد <ph name="APP_NAME" /> نسخ الملفات من <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">معرّف مفتاح المرجع المصدق</translation>
 <translation id="2462752602710430187">تمت إضافة <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">استيراد الإشارات المرجعية</translation>
 <translation id="2464089476039395325">‏خادم وكيل HTTP</translation>
 <translation id="2468902267404883140">‏لا يُمكن الاتصال بهاتفك. تأكد من أنك تستخدم هاتف Android متوافقًا وأنه قيد التشغيل وفي متناول يديك. &lt;a&gt;مزيد من المعلومات&lt;/a&gt;</translation>
 <translation id="2470702053775288986">تم تعطيل الإضافات غير المدعومة</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">إزالة التثبيت</translation>
 <translation id="2487067538648443797">إضافة إشارة مرجعية جديدة</translation>
 <translation id="248861575772995840">‏تعذّر العثور على هاتفك. تأكد من تشغيل البلوتوث لجهاز <ph name="DEVICE_TYPE" />. &lt;a&gt;مزيد من المعلومات&lt;/a&gt;</translation>
-<translation id="2489316678672211764">هناك مكون إضافي (<ph name="PLUGIN_NAME" />) غير مستجيب.</translation>
 <translation id="2489428929217601177">اليوم الماضي</translation>
 <translation id="2489918096470125693">إضافة &amp;مجلد...</translation>
 <translation id="249113932447298600">عذرًا، لا يتوفر الجهاز <ph name="DEVICE_LABEL" /> في الوقت الحالي.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">تم تنشيط خدمة البيانات '<ph name="NAME" />' وهي جاهزة للعمل.</translation>
 <translation id="2566124945717127842">‏يمكنك إجراء Powerwash لإعادة تعيين جهاز <ph name="IDS_SHORT_PRODUCT_NAME" /> ليصبح كما لو كان جديدًا.</translation>
 <translation id="2568774940984945469">حاوية شريط المعلومات</translation>
-<translation id="2570000010887652771">تم حفظ البيانات.</translation>
 <translation id="257088987046510401">المظاهر</translation>
 <translation id="2572032849266859634">تم منح إذن دخول للقراءة فقط إلى <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">اختر صورة واسمًا</translation>
 <translation id="2575247648642144396">سيكون هذا الرمز مرئيًا عندما تتمكن الإضافة من تنفيذ الإجراءات على الصفحة الحالية. يمكنك استخدام هذه الإضافة بالنقر على الرمز أو بالضغط على <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">‏تعذّر العثور على هاتفك. تأكد من اتصال جهاز <ph name="DEVICE_TYPE" /> بشبكة Wi-Fi أو شبكة الجوّال. &lt;a&gt;مزيد من المعلومات&lt;/a&gt;</translation>
-<translation id="2576842806987913196">‏هناك ملف CRX بهذا الاسم فعلاً.</translation>
 <translation id="257779572837908839">‏الإعداد كجهاز Chromebox للاجتماعات</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />يتعذر إلغاء تحميل مستوى الصوت<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">‏في حالة حذف شهادة مرجع مصدق (CA)، لن يثق المتصفح في أي شهادات يصدرها ذلك المرجع المصدق.</translation>
 <translation id="2653659639078652383">إرسال</translation>
 <translation id="265390580714150011">قيمة الحقل</translation>
-<translation id="2654286334048437383">تصدير الإشارات المرجعية</translation>
 <translation id="2655386581175833247">شهادة المستخدم:</translation>
 <translation id="2660779039299703961">حدث</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">إضافة معرض الوسائط باستخدام الدليل</translation>
 <translation id="2908789530129661844">تصغير الشاشة</translation>
 <translation id="2910318910161511225">الاتصال بالشبكة وإعادة المحاولة</translation>
-<translation id="2912905526406334195">يريد <ph name="HOST" /> استخدام الميكروفون.</translation>
 <translation id="2913331724188855103">السماح للمواقع بحفظ بيانات ملفات تعريف الارتباط وقراءتها (موصى به)</translation>
 <translation id="2916073183900451334">يؤدي الضغط على علامة تبويب في صفحة الويب إلى إبراز الروابط وكذلك حقول النماذج</translation>
 <translation id="2916745397441987255">بحث في الإضافات</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">نقل النافذة لأعلى</translation>
 <translation id="3053013834507634016">استخدام مفتاح الشهادة</translation>
 <translation id="3057861065630527966">نسخ الصور ومقاطع الفيديو احتياطيًا</translation>
-<translation id="3060379269883947824">تمكين التحديد للتحدّث</translation>
+<translation id="3060379269883947824">تمكين سماع الاختيار</translation>
 <translation id="3061707000357573562">خدمة رمز التصحيح</translation>
 <translation id="3064410671692449875">بيانات غير كافية</translation>
 <translation id="3065041951436100775">التعليقات المرتبطة بعلامة التبويب المعطلة.</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">جارٍ الاستماع…</translation>
 <translation id="3141917231319778873">الطلب المحدد غير مدعوم على "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">تم</translation>
-<translation id="3144135466825225871">‏تعذّر استبدال ملف crx. تحقق ما إذا كان قيد الاستخدام.</translation>
 <translation id="3144647712221361880">فتح الرابط كـ</translation>
 <translation id="3149510190863420837">‏تطبيقات Chrome</translation>
 <translation id="3150927491400159470">إعادة تحميل بشكل كامل</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">تشغيل على جميع المواقع دائمًا</translation>
 <translation id="3312424061798279731">اللغات التي تم تمكينها</translation>
 <translation id="3312903956926554846">التثبيت إلى سطح المكتب</translation>
-<translation id="3313473140726597081">تم تغيير صفحة بدء التشغيل التابعة لك إلى <ph name="URL" />. ولتعطيل الإضافات التي تغيّر صفحة بدء التشغيل، انقر على استعادة.</translation>
 <translation id="3313590242757056087">لتعيين مواقع الويب التي يُمكن للمستخدم الذي يخضع للإشراف عرضها، يُمكنك تهيئة القيود والإعدادات عن طريق الانتقال إلى<ph name="MANAGEMENT_URL" />.
     وفي حالة عدم تغيير الإعدادات الافتراضية، <ph name="USER_DISPLAY_NAME" />
     يُمكنك تصفح جميع المواقع على الويب.</translation>
@@ -1540,7 +1517,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">معلومات التطبيق</translation>
 <translation id="3335947283844343239">إعادة فتح علامة التبويب المغلقة</translation>
-<translation id="3337069537196930048">تم حظر <ph name="PLUGIN_NAME" /> لأنه قديم.</translation>
 <translation id="3340978935015468852">الإعدادات</translation>
 <translation id="3341703758641437857">‏السماح بالدخول إلى عناوين URL للملفات</translation>
 <translation id="3342361181740736773">يرغب "<ph name="TRIGGERING_EXTENSION_NAME" />" في إزالة هذه الإضافة.</translation>
@@ -1575,7 +1551,6 @@
 <translation id="3386219708421216619">تمت إضافة إشارة</translation>
 <translation id="3389312115541230716">انقر بزر الماوس الأيمن على رمز <ph name="SMALL_PRODUCT_LOGO" /> في شريط المهام</translation>
 <translation id="3391716558283801616">علامة التبويب 7</translation>
-<translation id="3394150261239285340">يريد <ph name="HOST" /> استخدام الكاميرا والميكروفون.</translation>
 <translation id="3396331542604645348">الطابعة المحددة غير متاحة أو لم يتم تثبيتها بشكل صحيح. تحقق من الطابعة أو جرّب تحديد طابعة أخرى.</translation>
 <translation id="3399432415385675819">سيتم تعطيل الإشعارات</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />، <ph name="TIME_LEFT" /></translation>
@@ -1687,10 +1662,8 @@
 <translation id="3550915441744863158">‏يتم تحديث Chrome تلقائيًا، وبالتالي يتوفر لديك دومًا أحدث إصدار منه.</translation>
 <translation id="3551320343578183772">إغلاق علامة التبويب</translation>
 <translation id="3552780134252864554">تم المحو عند الخروج</translation>
-<translation id="355298399003313926">يرغب <ph name="URL" /> في الاستجابة لأحداث إمكانية الوصول.</translation>
 <translation id="3555812735919707620">إزالة الإضافة</translation>
 <translation id="3556000484321257665">تم تغيير محرك بحثك إلى <ph name="URL" />.</translation>
-<translation id="3561217442734750519">يجب أن تكون قيمة الإدخال للمفتاح الخاص مسارًا صالحًا.</translation>
 <translation id="3563432852173030730">‏تعذر تنزيل تطبيق Kiosk.</translation>
 <translation id="3564334271939054422">‏قد تتطلب شبكة Wi-Fi التي تستخدمها (<ph name="NETWORK_ID" />) منك الانتقال إلى صفحة تسجيل الدخول.</translation>
 <translation id="3564708465992574908">مستويات التكبير/التصغير</translation>
@@ -1712,7 +1685,6 @@
 <translation id="3593965109698325041">قيود اسم الشهادة</translation>
 <translation id="3596235046596950091">تمكين خدمات السحاب</translation>
 <translation id="3599863153486145794">‏يمسح السجل من كل الأجهزة التي تم تسجيل الدخول عليها. وقد يتضمن حسابك في Google نماذج أخرى من سجل التصفح في <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">عطَّل المشرف إمكانية الدخول إلى الملفات المحلية على جهازك.</translation>
 <translation id="3600792891314830896">كتم صوت المواقع التي تُشغّل الصوت</translation>
 <translation id="3603177256297531067">تعذَّرت ترجمة هذه الصفحة</translation>
 <translation id="3603533104205588786">يمكنك النقر على النجمة لوضع إشارة على إحدى الصفحات</translation>
@@ -1737,7 +1709,6 @@
 <translation id="3625258641415618104">تم تعطيل لقطات الشاشة</translation>
 <translation id="3625870480639975468">إعادة تعيين التكبير/التصغير</translation>
 <translation id="3626281679859535460">السطوع</translation>
-<translation id="3627052133907344175">تتطلب الإضافة "<ph name="IMPORT_NAME" />" مع إصدار أدنى "<ph name="IMPORT_VERSION" />"، ولكن لا يتم تثبيت سوى "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">تتبقى أقل من دقيقة واحدة</translation>
 <translation id="3627588569887975815">فتح الرّابط في نافذة للتصفّح المتخ&amp;فّي</translation>
 <translation id="3627671146180677314">‏وقت تجديد شهادة Netscape</translation>
@@ -1767,7 +1738,6 @@
 <translation id="3668570675727296296">إعدادات اللغة</translation>
 <translation id="3668823961463113931">المعالجات</translation>
 <translation id="3670229581627177274">تشغيل البلوتوث</translation>
-<translation id="3672159315667503033"><ph name="URL" /> يريد تخزين بيانات ذات حجم كبير في جهاز الكمبيوتر المحلي بشكل دائم.</translation>
 <translation id="3672681487849735243">تم اكتشاف خطأ من المصنع</translation>
 <translation id="367645871420407123">اتركه فارغًا إذا كنت ترغب في تعيين كلمة مرور الجذر إلى قيمة صورة الاختبار الافتراضية</translation>
 <translation id="3678156199662914018">الإضافة: <ph name="EXTENSION_NAME" /></translation>
@@ -1845,11 +1815,9 @@
 <translation id="3786301125658655746">أنت غير متصل</translation>
 <translation id="3788401245189148511">يمكنه:</translation>
 <translation id="3789841737615482174">تثبيت</translation>
-<translation id="3790146417033334899">يعمل <ph name="PLUGIN_NAME" /> فقط في سطح المكتب.</translation>
 <translation id="379082410132524484">انتهت صلاحية بطاقتك</translation>
 <translation id="3792890930871100565">فصل الطابعات</translation>
 <translation id="379422718204375917">‏استخدام Smart Lock لتسجيل الدخول إلى حسابك</translation>
-<translation id="3794595850995182458">صفحة الخروج</translation>
 <translation id="3796648294839530037">الشبكات المفضلة:</translation>
 <translation id="3797900183766075808">&amp;بحث <ph name="SEARCH_ENGINE" /> عن "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798325802885154040">تسمح لك بتمكين/تعطيل الضغط للنقر</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326">تمكين <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">نوع الحفظ الذي تم إدخاله غير صالح.</translation>
 <translation id="3983586614702900908">أجهزة من مورد غير معروف</translation>
-<translation id="3984413272403535372">حدث خطأ أثناء التوقيع على الإضافة.</translation>
 <translation id="3987938432087324095">عذرًا، لم يتم التعرف على ذلك.</translation>
 <translation id="3988996860813292272">تحديد منطقة زمنية</translation>
 <translation id="3989635538409502728">الخروج</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">‏يمكنك تثبيت التطبيقات والألعاب من Google Play على جهاز Chromebook‏. &lt;a target="_blank" href="<ph name="URL" />"&gt;مزيد من المعلومات&lt;/a&gt;</translation>
 <translation id="4088095054444612037">الموافقة للمجموعة</translation>
 <translation id="4090103403438682346">تمكين الدخول الذي تم التحقق منه</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> مطلوب لعرض بعض العناصر في هذه الصفحة.</translation>
 <translation id="4090535558450035482">(هذه الإضافة مُدارة ولا يمكن إزالتها.)</translation>
 <translation id="4091434297613116013">أوراق</translation>
 <translation id="4093955363990068916">الملف المحلي:</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912">يستطيع <ph name="PRODUCT_NAME" /> مزامنة كلمات المرور الآن.</translation>
 <translation id="4715553623069266137">قصير جدًا (0.8 ثانية)</translation>
 <translation id="4716483597559580346">‏Powerwash لمزيد من الأمان</translation>
-<translation id="471800408830181311">تعذّر إخراج المفتاح الخاص.</translation>
 <translation id="4720113199587244118">إضافة أجهزة</translation>
 <translation id="4720185134442950733">شبكة بيانات الجوّال</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> يشارك شاشتك.</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">قوية</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> يريد الاتصال مع الإضافة "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">قبول</translation>
-<translation id="4919810557098212913">يريد <ph name="HOST" /> استخدام الكاميرا.</translation>
 <translation id="4920887663447894854">تم حظر تتبع المواقع التالية لموقعك في هذه الصفحة:</translation>
 <translation id="492299503953721473">‏إزالة تطبيقات Android</translation>
 <translation id="4923279099980110923">نعم، أريد تقديم المساعدة</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">تحتوي هذه الإضافة على برامج ضارة.</translation>
 <translation id="498294082491145744">تغيير الإعدادات التي تتحكم في وصول مواقع الويب إلى ميزات كملفات تعريف الارتباط، وجافا سكريبت، والمكونات الإضافية، والمواقع الجغرافية، والميكروفون والكاميرا، وغيرها.</translation>
 <translation id="4988526792673242964">صفحات</translation>
-<translation id="4988792151665380515">تعذّر تصدير المفتاح العام.</translation>
 <translation id="49896407730300355">تدوير ع&amp;كس اتجاه عقارب الساعة</translation>
 <translation id="4989966318180235467">فحص &amp;صفحة الخلفية</translation>
 <translation id="4990343175649730969">‏تنزيل أداة إزالة البرامج من Chrome</translation>
@@ -2573,7 +2536,6 @@
 <translation id="5026874946691314267">عدم إظهار هذه الإشعارات مرة أخرى</translation>
 <translation id="5027550639139316293">شهادة البريد الإلكتروني</translation>
 <translation id="5027562294707732951">تثبيت إضافة</translation>
-<translation id="5028012205542821824">لم يتم تمكين التثبيت.</translation>
 <translation id="5029568752722684782">محو النسخة</translation>
 <translation id="5030338702439866405">جهة الإصدار</translation>
 <translation id="5036662165765606524">عدم السماح لأي موقع بتنزيل عدة ملفات تلقائيًا</translation>
@@ -2609,7 +2571,6 @@
 <translation id="509429900233858213">حدث خطأ.</translation>
 <translation id="5094721898978802975">الاتصال بتطبيقات التعاون الأصلية</translation>
 <translation id="5097002363526479830">تعذّر الاتصال بشبكة "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">لا يمكن العثور على المسار المطلق للدليل للحزمة.</translation>
 <translation id="5099354524039520280">لأعلى</translation>
 <translation id="5100114659116077956">‏لكي تحصل على أحدث العناصر، يلزم تحديث Chromebox.</translation>
 <translation id="5101042277149003567">فتح  جميع الإشارات المرجعية</translation>
@@ -2658,7 +2619,6 @@
 <translation id="5170568018924773124">العرض في المجلد</translation>
 <translation id="5171045022955879922">‏البحث أو إدخال عنوان URL</translation>
 <translation id="5171343362375269016">ذاكرة مساحة التبديل</translation>
-<translation id="5175870427301879686">يريد <ph name="URL" /> تخزين بيانات في جهاز الكمبيوتر المحلي بشكل دائم.</translation>
 <translation id="5177479852722101802">متابعة حظر الدخول إلى الكاميرا والميكروفون</translation>
 <translation id="5177526793333269655">عرض الصور المصغرة</translation>
 <translation id="5177549709747445269">أنت تستخدم بيانات الجوّال</translation>
@@ -2737,7 +2697,6 @@
 <translation id="529175790091471945">لتهيئة هذا الجهاز</translation>
 <translation id="5293170712604732402">استعادة الإعدادات إلى الوضع الافتراضي الأصلي</translation>
 <translation id="5298219193514155779">مظهر أنشأه</translation>
-<translation id="5298363578196989456">تعذر استيراد الإضافة "<ph name="IMPORT_NAME" />" لأنها ليست وحدة نمطية مشتركة.</translation>
 <translation id="5299109548848736476">عدم التعقب</translation>
 <translation id="5299682071747318445">تم تشفير جميع البيانات باستخدام عبارة مرور المزامنة</translation>
 <translation id="5300589172476337783">عرض</translation>
@@ -2765,7 +2724,6 @@
 <translation id="5331425616433531170">تريد "<ph name="CHROME_EXTENSION_NAME" />" الاقتران</translation>
 <translation id="5332624210073556029">المنطقة الزمنية:</translation>
 <translation id="5334142896108694079">ذاكرة التخزين المؤقت للنص البرمجي</translation>
-<translation id="533433379391851622">الإصدار المتوقع "<ph name="EXPECTED_VERSION" />"، ولكن الإصدار كان "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">عرض المصدر</translation>
 <translation id="5335458522276292100">‏الاحتفاظ بنسخة احتياطية من <ph name="FILE_COUNT" /> في <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">تم التثبيت من جهة خارجية.</translation>
@@ -2803,7 +2761,6 @@
 <translation id="5390100381392048184">السماح للمواقع بتشغيل الصوت</translation>
 <translation id="5390284375844109566">قاعدة بيانات مفهرسة</translation>
 <translation id="5390743329570580756">الإرسال إلى</translation>
-<translation id="5396126354477659676">يريد <ph name="PEPPER_PLUGIN_NAME" /> الموجود على <ph name="PEPPER_PLUGIN_DOMAIN" /> الدخول إلى جهاز الكمبيوتر.</translation>
 <translation id="5397794290049113714">أنت</translation>
 <translation id="5398572795982417028">مرجع صفحة خارج الحدود المفروضة، الحد الأقصى هو <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">تم حظر الإعلانات</translation>
@@ -2865,7 +2822,6 @@
 <translation id="5485754497697573575">استعادة جميع علامات التبويب</translation>
 <translation id="5486261815000869482">تأكيد كلمة المرور</translation>
 <translation id="5486275809415469523">يشارك <ph name="APP_NAME" /> شاشتك مع <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">يجب أن تكون قيمة الإدخال للمفتاح الخاص موجودة.</translation>
 <translation id="5486561344817861625">محاكاة إعادة تشغيل المتصفح</translation>
 <translation id="5487521232677179737">محو البيانات</translation>
 <translation id="5488093641312826914">تم نسخ العنصر '<ph name="COPIED_ITEM_NAME" />'</translation>
@@ -2948,7 +2904,6 @@
 <translation id="5600706100022181951">سيستهلك تنزيل التحديث <ph name="UPDATE_SIZE_MB" /> ميغابايت من بيانات الجوّال. هل ترغب في المتابعة؟</translation>
 <translation id="5601503069213153581">رقم التعريف الشخصي</translation>
 <translation id="5605623530403479164">محرّكات البحث الأخرى</translation>
-<translation id="5606674617204776232">يريد <ph name="PEPPER_PLUGIN_NAME" /> الموجود على <ph name="PEPPER_PLUGIN_DOMAIN" /> الدخول إلى جهازك.</translation>
 <translation id="5608580678041221894">انقر على المفاتيح التالية لضبط منطقة الاقتصاص أو تحريكها</translation>
 <translation id="5609231933459083978">يبدو أن التطبيق غير صالح.</translation>
 <translation id="5610038042047936818">التبديل إلى وضع الكاميرا</translation>
@@ -3191,7 +3146,6 @@
 <translation id="5990386583461751448">مترجَمة</translation>
 <translation id="5991049340509704927">تكبير</translation>
 <translation id="5993332328670040093">لن يتم قياس استخدام البيانات بعد ذلك.</translation>
-<translation id="6003177993629630467">قد يكون <ph name="PRODUCT_NAME" /> غير قادر على تحديث نفسه.</translation>
 <translation id="600424552813877586">التطبيق غير صالح.</translation>
 <translation id="6005695835120147974">موجّه الوسائط</translation>
 <translation id="6006484371116297560">كلاسيكي</translation>
@@ -3216,6 +3170,7 @@
 <translation id="604001903249547235">النسخ الاحتياطي عبر السحاب.</translation>
 <translation id="6040143037577758943">إغلاق</translation>
 <translation id="6040852767465482106">هوية مجهولة</translation>
+<translation id="6041155700700864984">الخروج من عرض ملء الشاشة</translation>
 <translation id="604124094241169006">تلقائي</translation>
 <translation id="6042169520002885235">تحديد الجهة المُصنِّعة للطابعة وطرازها</translation>
 <translation id="6042308850641462728">المزيد</translation>
@@ -3232,7 +3187,6 @@
 <translation id="6056710589053485679">إعادة تحميل عادية</translation>
 <translation id="6059652578941944813">التسلسل الهرمي للشهادة</translation>
 <translation id="6059925163896151826">‏أجهزة USB</translation>
-<translation id="6060435378291459521">تعطّل <ph name="PLUGIN_NAME" />.</translation>
 <translation id="6064217302520318294">قفل الشاشة</translation>
 <translation id="6065289257230303064">سمات دليل صاحب الشهادة</translation>
 <translation id="6068338049763724728">تمكين التسجيل عن بُعد</translation>
@@ -3342,7 +3296,6 @@
 <translation id="6237816943013845465">تسمح لك بضبط دقة الشاشة</translation>
 <translation id="6238923052227198598">إبقاء آخر ملاحظة على شاشة التأمين</translation>
 <translation id="6239558157302047471">إعادة تحميل الإطار</translation>
-<translation id="624022915548992686">صفحة الخروج</translation>
 <translation id="6241530762627360640">الوصول إلى معلومات حول أجهزة البلوتوث المقترنة بنظامك واكتشاف أجهزة البلوتوث القريبة.</translation>
 <translation id="6243774244933267674">الخادم غير متاح</translation>
 <translation id="6246413617632217567">تعذّر استيراد المستخدم تحت الإشراف. يُرجى التحقق من مساحة محرك الأقراص الثابتة والأذونات، وإعادة المحاولة.</translation>
@@ -3391,13 +3344,11 @@
 <translation id="6312403991423642364">خطأ غير معروف</translation>
 <translation id="6313641880021325787">‏الخروج من VR</translation>
 <translation id="6314819609899340042">لقد نجحت في تمكين ميزات تصحيح الأخطاء على هذا الجهاز <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">تم تغيير صفحات بدء التشغيل التابعة لك لإدراج <ph name="URL" />. لتعطيل الإضافات التي تغيّر صفحة بدء التشغيل، انقر على استعادة.</translation>
 <translation id="6315493146179903667">إحضار الكل للمقدمة</translation>
 <translation id="6316806695097060329">تم تصميم جهاز <ph name="SHORT_PRODUCT_NAME" /> هذا ليمنحك أفضل تجربة على الويب.</translation>
 <translation id="6317318380444133405">الطابعة ليست مدعومة بعد الآن.</translation>
 <translation id="6317369057005134371">جارٍ انتظار نافذة التطبيق...</translation>
 <translation id="6318407754858604988">بدأ التنزيل</translation>
-<translation id="6322279351188361895">تعذّرت قراءة المفتاح الخاص.</translation>
 <translation id="6325191661371220117">تعطيل التشغيل التلقائي</translation>
 <translation id="6326175484149238433">‏إزالة من Chrome</translation>
 <translation id="6326855256003666642">عدد مرات التحقق من الاتصال</translation>
@@ -3406,7 +3357,6 @@
 <translation id="6333049849394141510">اختر ما تريد مزامنته</translation>
 <translation id="6333064448949140209">‏سيتم إرسال الملف إلى Google لتصحيح الأخطاء</translation>
 <translation id="6333834492048057036">تركيز شريط العناوين للبحث</translation>
-<translation id="6336907568130557310">ستكون كلمات المرور مرئية لأي شخص يمكنه الاطلاع على الملف الذي تم تصديره. لا تشارك الملف مع أي شخص واحذفه بعد استيراده.</translation>
 <translation id="6339668969738228384">إنشاء ملف شخصي جديد لـ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">‏تعذّر الاتصال بالخادم، يُرجى التحقق من اتصالك بالشبكة والمحاولة مرة أخرى. في حالة استمرار هذه المشكلة، يُرجى إعادة تشغيل Chromebook.</translation>
 <translation id="6340071272923955280">‏بروتوكول الطباعة عبر الإنترنت (IPPS)</translation>
@@ -3435,7 +3385,6 @@
 <translation id="6385543213911723544">يمكن للمواقع أن تحفظ وتقرأ بيانات تعريف ملف الارتباط.</translation>
 <translation id="6388771388956873507">ابحث عن مستشعر بصمات الإصبع على جهازك والمسه بإصبعك</translation>
 <translation id="6390799748543157332">لن تُظهر الصفحات التي تعرضها في هذه النافذة في سجل المتصفح، ولن تترك أي آثار أخرى، مثل ملفات تعريف الارتباط، في الكمبيوتر بعد إغلاق جميع النوافذ المفتوحة بالضيف. ومع هذا سيتم الاحتفاظ بأي ملفات يتم تنزيلها.</translation>
-<translation id="6391538222494443604">يجب أن يكون دليل الإدخال موجودًا.</translation>
 <translation id="6395423953133416962">إرسال <ph name="BEGIN_LINK1" />معلومات النظام<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />المقاييس<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">إيقاف التحدث</translation>
 <translation id="6397592254427394018">فتح جميع الإشارات المرجعية في ن&amp;افذة التصفح المتخفي</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">إدارة منع تشغيل جافا سكريبت...</translation>
 <translation id="6459488832681039634">استخدام التحديد للبحث</translation>
 <translation id="6460601847208524483">البحث عن التالي</translation>
-<translation id="6462080265650314920">يجب تقديم التطبيقات باستخدام نوع المحتوى "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">هل ما زلت هناك؟</translation>
 <translation id="6463795194797719782">ت&amp;عديل</translation>
 <translation id="6466988389784393586">ف&amp;تح كل الإشارات المرجعية</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">‏هل تريد أن يترجم Google هذه الصفحة من <ph name="SOURCE_LANGUAGE" /> إلى <ph name="TARGET_LANGUAGE" />؟</translation>
 <translation id="6675665718701918026">الإشارة إلى الأجهزة المتصلة</translation>
-<translation id="6677037229676347494">المعرف المتوقع "<ph name="EXPECTED_ID" />"، ولكن المعرف كان "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">‏عنوان URL للاستعلام</translation>
 <translation id="6680028776254050810">التبديل بين المستخدمين</translation>
 <translation id="6680442031740878064">المساحة المتاحة: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">‏يمكنك تخصيص المعلومات التي تجمعها Google في <ph name="BEGIN_LINK" />الإعدادات<ph name="END_LINK" /> في أي وقت.</translation>
 <translation id="6904344821472985372">إلغاء الوصول إلى الملف</translation>
 <translation id="6904655473976120856">اضغط زر التطبيق للخروج</translation>
-<translation id="6904713658985136356">يريد <ph name="HOST" /> مشاركة شاشتك.</translation>
-<translation id="6909461304779452601">لا يمكن إضافة التطبيقات، والإضافات، ونصوص المستخدم من موقع الويب هذا.</translation>
 <translation id="6910211073230771657">تم الحذف</translation>
 <translation id="691024665142758461">تنزيل ملفات متعددة</translation>
 <translation id="6911324888870229398">‏تم فقد اتصال الشبكة. يُرجى التحقق من اتصالك أو تجربة شبكة Wi-Fi أخرى.</translation>
@@ -4101,7 +4046,6 @@
 <translation id="747114903913869239">خطأ: تعذر فك تشفير الإضافة</translation>
 <translation id="7473891865547856676">لا، شكرًا</translation>
 <translation id="747459581954555080">استرداد الكل</translation>
-<translation id="7475034671245341386">حدث خطأ في <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">‏عنوان URL لكلمة المرور المفقودة في Netscape</translation>
 <translation id="7476454130948140105">مستوى البطارية ضعيف جدًا لإجراء التحديث (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">‏إذا كنت قد نسيت عبارة المرور، فتوقف وأعد ضبط المزامنة عبر <ph name="BEGIN_LINK" />لوحة تحكم Google<ph name="END_LINK" />.</translation>
@@ -4138,7 +4082,6 @@
 <translation id="7507930499305566459">شهادة الاستجابة للحالة</translation>
 <translation id="7508545000531937079">عرض الشرائح</translation>
 <translation id="7513029293694390567">يمكنك تسجيل الدخول تلقائيًا إلى مواقع الويب باستخدام بيانات الاعتماد المخزّنة. وفي حالة تعطيل هذا الإعداد، سيُطلب منك التأكيد في كل مرة قبل تسجيل الدخول إلى أحد مواقع الويب.</translation>
-<translation id="7515670329462166359">يريد <ph name="URL" /> تحديد هوية جهازك بشكلٍ فريد لتشغيل محتوى محمي.</translation>
 <translation id="7517569744831774757">إعادة الإعدادات إلى الحالة الافتراضية الأصلية.</translation>
 <translation id="7517786267097410259">إنشاء كلمة مرور -</translation>
 <translation id="7518150891539970662">‏سجلات WebRTC‏ (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4168,7 +4111,6 @@
     ومحاولة إنشاء مستخدم تحت الإشراف من جديد.</translation>
 <translation id="756445078718366910">فتح نافذة المتصفح</translation>
 <translation id="7564847347806291057">إنهاء العملية</translation>
-<translation id="7565291891798266313">تم تغيير محرك بحثك إلى <ph name="URL" />. ولتعطيل الإضافات التي تغيّر محرك بحثك، انقر على استعادة.</translation>
 <translation id="7566118625369982896">‏إدارة روابط تطبيق Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">‏بيانات Chrome التي تم محوها</translation>
@@ -4177,7 +4119,6 @@
 <translation id="7573172247376861652">شحن البطارية</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">تجميع</translation>
-<translation id="7577815336900970562">‏استخدام شبكة Wi-Fi أو شبكة الجوّال لتحديد الموقع الجغرافي</translation>
 <translation id="7579149537961810247">تجاهل المواقع</translation>
 <translation id="7580671184200851182">تشغيل نفس الصوت عبر جميع مكبرات الصوت (صوت أحادي)</translation>
 <translation id="7581462281756524039">أداة إزالة البرامج</translation>
@@ -4284,6 +4225,7 @@
 <translation id="7773726648746946405">سعة تخزين الجلسة</translation>
 <translation id="7781335840981796660">ستتم إزالة جميع حسابات المستخدمين والبيانات المحلية.</translation>
 <translation id="7782102568078991263">‏ليس هناك المزيد من الاقتراحات من Google</translation>
+<translation id="778330624322499012">تعذر تحميل <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">حظرت إعدادات الأمان بجهاز الكمبيوتر هذا الملف.</translation>
 <translation id="7786207843293321886">الخروج من جلسة الضيف</translation>
 <translation id="7786889348652477777">&amp;إعادة تحميل التطبيق</translation>
@@ -4446,7 +4388,6 @@
 <translation id="8001504501378762252">من المحتمل أن يكون أحد مواقع الويب قد سرق كلمة مرورك</translation>
 <translation id="8004582292198964060">المتصفّح</translation>
 <translation id="8008356846765065031">تم قطع الاتصال بالإنترنت. يُرجى التحقق من الاتصال بالإنترنت.</translation>
-<translation id="8008765610824028412">تعذّر تحميل <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">‏إرسال بعض معلومات النظام ومحتوى الصفحة تلقائيًا إلى Google للمساعدة في اكتشاف التطبيقات والمواقع الضارة</translation>
 <translation id="8012382203418782830">تمت ترجمة هذه الصفحة.</translation>
 <translation id="8014154204619229810">يتم تشغيل أداة التحديث حاليًا. يمكنك التحديث في دقيقة واحدة للتحقق مرة أخرى.</translation>
@@ -4563,7 +4504,6 @@
 <translation id="8191230140820435481">إدارة التطبيقات والإضافات والمظاهر</translation>
 <translation id="8191453843330043793">‏محلل وكيل V8</translation>
 <translation id="8195027750202970175">الحجم على القرص</translation>
-<translation id="8195739004487400241">تم تغيير صفحتك الرئيسية إلى <ph name="URL" />. ولتعطيل الإضافات التي تغيّر صفحتك الرئيسية، انقر على استعادة.</translation>
 <translation id="8199300056570174101">خصائص الشبكة (الخدمة) والجهاز</translation>
 <translation id="8200772114523450471">استئناف</translation>
 <translation id="8202160505685531999">يُرجى إعادة إدخال كلمة المرور لتحديث ملف <ph name="DEVICE_TYPE" /> الشخصي.</translation>
@@ -4607,7 +4547,6 @@
 <translation id="8261378640211443080">هذه الإضافة غير مدرجة في <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> وربما تمت إضافتها بدون علمك.</translation>
 <translation id="8261387128019234107">إضافة حساب لـ <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">حذف</translation>
-<translation id="826246685091802258">لم يتم تنفيذ <ph name="BAD_FLAG" /> في هذا الإصدار.</translation>
 <translation id="8263744495942430914">عطّل <ph name="FULLSCREEN_ORIGIN" /> مؤشر الماوس.</translation>
 <translation id="8264718194193514834">شغّلت الإضافة <ph name="EXTENSION_NAME" /> وضع ملء الشاشة.</translation>
 <translation id="8270242299912238708">‏مستندات PDF</translation>
@@ -4708,6 +4647,7 @@
 <translation id="8454288007744638700">أو تحديد شبكة جديدة:</translation>
 <translation id="845627346958584683">وقت انتهاء الصلاحية:</translation>
 <translation id="8456681095658380701">اسم غير صالح</translation>
+<translation id="8457451314607652708">استيراد الإشارات المرجعية</translation>
 <translation id="8460336040822756677">‏إذا أوقفت تشغيل Smart Lock لـ <ph name="DEVICE_TYPE" />، فلن تكون قادرًا على إلغاء قفل أجهزة Chrome باستخدام هاتفك. وستحتاج إلى كتابة كلمة المرور.</translation>
 <translation id="8461329675984532579">اسم مقدم الخدمة الرئيسي</translation>
 <translation id="84613761564611563">تم طلب واجهة المستخدم لتهيئة الشبكة، يُرجى الانتظار...</translation>
@@ -4739,7 +4679,6 @@
 <translation id="850875081535031620">لم يتم العثور على أي برامج ضارة</translation>
 <translation id="8512476990829870887">إنهاء العملية</translation>
 <translation id="851263357009351303">السماح للموقع <ph name="HOST" /> بعرض الصور دومًا</translation>
-<translation id="8513191386157529469">يجري "<ph name="CLIENT_NAME" />" تصحيح المتصفح هذا.</translation>
 <translation id="8521475323816527629">الوصول إلى تطبيقاتك بسرعة</translation>
 <translation id="8523493869875972733">الإبقاء على التغييرات</translation>
 <translation id="8523849605371521713">تمت الإضافة من قبل السياسة</translation>
@@ -4795,7 +4734,6 @@
 <translation id="8620765578342452535">تهيئة اتصالات الشبكة</translation>
 <translation id="8620790565535071193">تعذّر الفحص</translation>
 <translation id="8622877356447980900">هل تريد ترجمة هذه الصفحة؟</translation>
-<translation id="8623004009673949077">‏يجب أن يتم تثبيت التطبيق الذي يتضمن السمة الظاهرة "kiosk_only" في وضع الكشك على نظام تشغيل Chrome.</translation>
 <translation id="8624205858755890468">يعمل على تفعيل "المساعد" لعرض الإجراءات والتطبيقات والمعلومات ذات الصلة.</translation>
 <translation id="862542460444371744">&amp;الإضافات</translation>
 <translation id="8627151598708688654">تحديد مصدر</translation>
@@ -4944,7 +4882,6 @@
 <translation id="882204272221080310">يمكنك تحديث البرامج الثابتة لمزيد من الأمان.</translation>
 <translation id="8823514049557262177">نسخ &amp;نص الرابط</translation>
 <translation id="8824701697284169214">إضافة &amp;صفحة...</translation>
-<translation id="8827850355924932817">‏استخدام شبكة Wi-Fi لتحديد الموقع الجغرافي</translation>
 <translation id="8828933418460119530">‏اسم نظام أسماء النطاقات (DNS)</translation>
 <translation id="8830796635868321089">تعذّر البحث عن التحديثات باستخدام إعدادات الخادم الوكيل الحالية. يُرجى ضبط <ph name="PROXY_SETTINGS_LINK_START" />إعدادات الخادم الوكيل<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">يتم التحكم في تهيئة الشبكة بواسطة <ph name="USER_EMAIL" />.</translation>
@@ -4976,9 +4913,7 @@
 <translation id="8879284080359814990">إ&amp;ظهار كعلامة تبويب</translation>
 <translation id="8884961208881553398">إضافة خدمات جديدة</translation>
 <translation id="8885197664446363138">‏Smart Lock غير متاح</translation>
-<translation id="8885905466771744233">يوجد مفتاح خاص للإضافة المحددة. أعد استخدام هذا المفتاح أو احذفه أولاً.</translation>
 <translation id="8888432776533519951">اللون:</translation>
-<translation id="8892992092192084762">تم تثبيت المظهر "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">عذرًا، تعذر التعرف على الجهاز <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">قائمة الإشارات المرجعية</translation>
 <translation id="88986195241502842">صفحة لأسفل</translation>
@@ -4987,13 +4922,12 @@
 <translation id="8899285681604219177">تم تعطيل الإضافات غير المدعومة</translation>
 <translation id="8899551033019439140">جارٍ البحث عن طابعة...</translation>
 <translation id="8899851313684471736">&amp;فتح الرّابط في نافذة جديدة</translation>
-<translation id="8902667442496790482">فتح إعدادات التحديد للتحدّث</translation>
+<translation id="8902667442496790482">فتح إعدادات سماع الاختيار</translation>
 <translation id="8903921497873541725">تكبير</translation>
 <translation id="8904976895050290827">‏مزامنة Chrome</translation>
 <translation id="8908902564709148335">تحذير: لقد مكّنت علامة النصوص البرمجي تتطلب إجراء على هذا الكمبيوتر، مما يحد من قدرة هذه الإضافة. ولكن قد لا تدعم الأجهزة الأخرى هذه العلامة أو لا يتم تمكينها عليها. على هذه الأجهزة، يمكن لهذه الإضافة أيضًا:</translation>
 <translation id="8910146161325739742">مشاركة الشاشة</translation>
 <translation id="8910222113987937043">‏لن تتم مزامنة التغييرات التي تطرأ على الإشارات المرجعية والسجل وكلمات المرور والإعدادات الأخرى مع حسابك في Google بعد الآن. ومع ذلك، ستظل بياناتك الحالية مخزنة في حسابك على Google ويمكن إدارتها في <ph name="BEGIN_LINK" />لوحة تحكم Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">‏Google أبلغت عن الإضافة <ph name="EXTENSION_NAME" /> كإضافة ضارة وتم منع تثبيتها.</translation>
 <translation id="8912793549644936705">تمدد</translation>
 <translation id="8915370057835397490">جارٍ تحميل الاقتراح</translation>
 <translation id="8916476537757519021">الإطار الفرعي للتصفح المتخفي: <ph name="SUBFRAME_SITE" /></translation>
@@ -5099,7 +5033,6 @@
 <translation id="9074739597929991885">بلوتوث</translation>
 <translation id="9074836595010225693">‏ماوس USB متصل</translation>
 <translation id="9076523132036239772">عذرًا، تعذر التحقق من صحة البريد الإلكتروني أو كلمة المرور. جرّب الاتصال بالشبكة أولاً.</translation>
-<translation id="907841381057066561">تعذّر إنشاء ملف مضغوط مؤقت أثناء إنشاء الحزمة.</translation>
 <translation id="9084064520949870008">فتح كنافذة</translation>
 <translation id="9088234649737575428">تم حظر <ph name="PLUGIN_NAME" /> بموجب سياسة المؤسسة</translation>
 <translation id="9088917181875854783">يُرجى التأكيد أن مفتاح المرور هذا يظهر على "<ph name="DEVICE_NAME" />":</translation>
@@ -5190,11 +5123,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">إدخال عبارة المرور</translation>
 <translation id="939736085109172342">مجلد جديد</translation>
-<translation id="941543339607623937">المفتاح الخاص غير صالح.</translation>
 <translation id="942532530371314860">‏يشارك <ph name="APP_NAME" /> علامة تبويب متصفح Chrome والصوت.</translation>
 <translation id="942954117721265519">لا تتوفر أي صور في هذا الدليل.</translation>
 <translation id="945522503751344254">إرسال تعليقات</translation>
-<translation id="951981865514037445">يريد <ph name="URL" /> استخدام موقع الجهاز.</translation>
 <translation id="952992212772159698">غير نشطة</translation>
 <translation id="9580706199804957">‏تعذر الاتصال بخدمات Google</translation>
 <translation id="958515377357646513">المس للانتقال إلى الأمام.</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index a9011c3..9099651 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Само шифроване</translation>
 <translation id="1039337018183941703">Невалиден или повреден файл</translation>
 <translation id="1042174272890264476">Компютърът ви също се предлага с библиотеката RLZ на <ph name="SHORT_PRODUCT_NAME" />, която е вградена. Тя задава неуникален и непозволяващ лично идентифициране маркер за измерване на търсенията и използването на <ph name="SHORT_PRODUCT_NAME" />, стимулирани от определена промоционална кампания. Тези етикети понякога се показват в заявките за търсене с Google в <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> иска да съхранява за постоянно голямо количество данни на устройството ви.</translation>
 <translation id="1046059554679513793">Ами сега! Това име вече се използва!</translation>
 <translation id="1047431265488717055">Копиране на тек&amp;ста на връзката</translation>
 <translation id="1047726139967079566">Запазване на отметка към тази страница...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Да се възстанови ли основната търсеща машина?</translation>
 <translation id="1177863135347784049">По избор</translation>
 <translation id="1178581264944972037">Пауза</translation>
-<translation id="1179803038870941185"><ph name="URL" /> иска да получи пълен контрол над MIDI устройствата ви.</translation>
 <translation id="1181037720776840403">Премахване</translation>
 <translation id="1183237619868651138">„<ph name="EXTERNAL_CRX_FILE" />“ не може да се инсталира в локалния кеш.</translation>
 <translation id="1185924365081634987">Може също да опитате <ph name="GUEST_SIGNIN_LINK_START" />да сърфирате като гост<ph name="GUEST_SIGNIN_LINK_END" />, за да се отстрани тази грешка в мрежата.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Достъп до файл, съхраняван на компютъра ви}other{Достъп до # файла, съхранявани на компютъра ви}}</translation>
 <translation id="1195076408729068893">За да стартирате Smart Lock, въведете паролата си. Следващия път можете да отключите своя <ph name="DEVICE_TYPE" /> посредством телефона си.</translation>
 <translation id="1195447618553298278">Неизвестна грешка.</translation>
-<translation id="1196338895211115272">Експортирането на личен ключ не бе успешно.</translation>
 <translation id="119738088725604856">Екранна снимка на прозореца</translation>
 <translation id="1197979282329025000">Възникна грешка при извличането на функционалностите на принтера <ph name="PRINTER_NAME" />. Той не можа да бъде регистриран с/ъс <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Да започваме</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Администраторът ви препоръчва конкретна стойност за тази настройка.</translation>
 <translation id="1225177025209879837">Заявката се обработва...</translation>
 <translation id="1225211345201532184">Елемент 5 в лавицата</translation>
-<translation id="1225404570112441414">Добавете този сайт към лавицата си, за да го използвате по всяко време.</translation>
 <translation id="1227507814927581609">Удостоверяването не бе успешно при установяването на връзка с/ъс <ph name="DEVICE_NAME" />.</translation>
 <translation id="1230807973377071856">системно меню</translation>
 <translation id="1232569758102978740">Неозаглавен</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML файл с отметки</translation>
 <translation id="1303671224831497365">Няма намерени устройства с Bluetooth</translation>
 <translation id="1306606229401759371">Промяна на настройките</translation>
-<translation id="1307398858972670978">Осъществявайте достъп до паролите си от всяко устройство на адрес <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ами сега!  Системата не успя да съхрани дългосрочното означение за достъп на това устройство до приложния програмен интерфейс (API).</translation>
 <translation id="1313405956111467313">Автоматична конфигурация на прокси сървър</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Търсене</translation>
 <translation id="1386387014181100145">Здравейте.</translation>
 <translation id="138784436342154190">Да се възстанови ли стандартната страница при стартиране?</translation>
-<translation id="1389297115360905376">Това може да се добави само от <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Отваряне като нормален раздел</translation>
-<translation id="1391807639023934267">Заредена е по-бърза страница.</translation>
 <translation id="1393283411312835250">Слънце и облаци</translation>
 <translation id="1395262318152388157">Плъзгач за търсене</translation>
 <translation id="1395730723686586365">Актуализиращата програма е стартирана</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Актуализирате до нестабилна версия на <ph name="PRODUCT_NAME" />, съдържаща функции, по които се работи. Ще има сривове и неочаквани програмни дефекти. Моля, действайте внимателно.</translation>
 <translation id="1415990189994829608">Разширението <ph name="EXTENSION_NAME" /> (с идентификационен номер „<ph name="EXTENSION_ID" />“) не е разрешено в този тип сесия.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Олеле! Генерирането на произволен RSA личен ключ не бе успешно.</translation>
 <translation id="1420834118113404499">Медийни лицензи</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, за да разрешите сдвояването</translation>
 <translation id="1426410128494586442">Да</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">К&amp;опиране на адреса на аудиозаписа</translation>
 <translation id="1465827627707997754">Парче пица</translation>
 <translation id="1467432559032391204">Наляво</translation>
-<translation id="1467999917853307373"><ph name="URL" /> иска да съхранява за постоянно данни на устройството ви.</translation>
-<translation id="1470719357688513792">Новите настройки за „бисквитките“ ще влязат в сила след презареждането на страницата.</translation>
 <translation id="1470811252759861213"><ph name="SIGN_IN_LINK" />, за да получите разширенията си на всичките си компютри.</translation>
 <translation id="1474339897586437869">Файлът „<ph name="FILENAME" />“ не бе качен. Нямате достатъчно свободно място в Google Диск.</translation>
 <translation id="1475502736924165259">Разполагате със сертификати, които не отговарят на нито една от другите категории</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">Голям курсор на мишката</translation>
 <translation id="1543284117603151572">Импортирани от Edge</translation>
 <translation id="1545177026077493356">Автоматичен павилионен режим</translation>
+<translation id="1545775234664667895">Инсталирана тема: <ph name="THEME_NAME" /></translation>
 <translation id="1545786162090505744">URL адрес с %s вместо заявка</translation>
 <translation id="1546280085599573572">Това разширение промени страницата, която се показва при кликване върху бутона „Начална страница“.</translation>
 <translation id="1547572086206517271">Изисква се опресняване</translation>
@@ -440,11 +431,9 @@
 <ph name="BEGIN_BOLD" />да преглеждате<ph name="END_BOLD" /> посетените от контролирания потребител уебсайтове;
 <ph name="BEGIN_BOLD" />да управлявате<ph name="END_BOLD" /> други настройки.</translation>
 <translation id="1648943974594387137">Данните за вход не са актуални</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> реда не са показани&gt;</translation>
 <translation id="1650371550981945235">Показване на опциите за въвеждане</translation>
 <translation id="1650709179466243265">Добавяне на „www.“ и „.com“ и отваряне на адреса</translation>
 <translation id="1651008383952180276">Трябва да въведете един и същ пропуск два пъти</translation>
-<translation id="1652972346408808053">Паролата е запазена. Осъществявайте достъп до паролите си от всяко устройство на адрес <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Добавете принтера към Google Отпечатване в облак, за да можете да печатате от всяко място.}other{Добавете # принтера към Google Отпечатване в облак, за да можете да печатате от всяко място.}}</translation>
 <translation id="1657406563541664238">Помогнете ни да подобрим <ph name="PRODUCT_NAME" /> като автоматично изпращате на Google статистически данни за използването му и сигнали за сривове</translation>
 <translation id="1658424621194652532">Тази страница осъществява достъп до микрофона ви.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Блокирането на „бисквитките“ да продължи</translation>
 <translation id="204622017488417136">Устройството ви ще се върне към предишната инсталирана версия на Chrome. Всички профили на потребители и локални данни ще бъдат премахнати. Това действие не може да се отмени.</translation>
 <translation id="2048182445208425546">Достъп до трафика ви в мрежата</translation>
-<translation id="2049137146490122801">Достъпът до локални файлове на компютъра е деактивиран от администратора ви.</translation>
 <translation id="204914487372604757">Създаване на пряк път</translation>
 <translation id="2050339315714019657">Вертикално</translation>
 <translation id="2053312383184521053">Данни за състоянието на неактивност</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Още не е заредено</translation>
 <translation id="2107494551712864447">Добавяне на отпечатък</translation>
-<translation id="2111843886872897694">Приложенията трябва да се показват от хоста, който засягат.</translation>
 <translation id="2112877397266219826">Включете контролера за докосване, за да извършите настройването</translation>
 <translation id="21133533946938348">Фиксиране на раздела</translation>
 <translation id="2113479184312716848">&amp;Отваряне на файл...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Кажете ни какво се случва</translation>
 <translation id="2229161054156947610">Остава повече от 1 час</translation>
 <translation id="222931766245975952">Файлът е скъсен</translation>
-<translation id="222949136907494149"><ph name="URL" /> иска да използва местоположението на компютъра ви.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Не можем да създадем папката „<ph name="FOLDER_NAME" />“. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Кликнете, за да видите днешната драскулка</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Достъпът до микрофона да се блокира винаги</translation>
 <translation id="2367972762794486313">Показване на приложенията</translation>
 <translation id="2371076942591664043">Отваряне &amp;след изтегляне</translation>
-<translation id="237336063998926520">Използване на IP адреса ви за определяне на местоположението</translation>
 <translation id="2377319039870049694">Превключване към списъчен изглед</translation>
 <translation id="2377667304966270281">Съществени грешки</translation>
 <translation id="2378075407703503998">Избрани са <ph name="SELCTED_FILE_COUNT" /> файла</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> иска да копира файлове от „<ph name="VOLUME_NAME" />“.</translation>
 <translation id="2462724976360937186">Идентификатор (ИД) на ключ на сертифициращия орган</translation>
 <translation id="2462752602710430187">Добавихте <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Импортиране на отметки</translation>
 <translation id="2464089476039395325">HTTP прокси сървър</translation>
 <translation id="2468902267404883140">Не може да се установи връзка с телефона ви. Уверете се, че използвате съвместим телефон с Android, който е включен и е подръка. &lt;a&gt;Научете повече&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Неподдържаните разширения са деактивирани</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Деинсталиране</translation>
 <translation id="2487067538648443797">Добавяне на нова отметка</translation>
 <translation id="248861575772995840">Телефонът ви не може да бъде намерен. Уверете се, че функцията за Bluetooth на вашия <ph name="DEVICE_TYPE" /> е включена. &lt;a&gt;Научете повече&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Приставката <ph name="PLUGIN_NAME" /> не отговаря.</translation>
 <translation id="2489428929217601177">последния ден</translation>
 <translation id="2489918096470125693">Добавяне на &amp;папка...</translation>
 <translation id="249113932447298600">За съжаление понастоящем устройството <ph name="DEVICE_LABEL" /> не се поддържа.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Поздравления! Услугата ви за данни „<ph name="NAME" />“ е активирана и е готова за работа.</translation>
 <translation id="2566124945717127842">Извършете Powerwash, за да възстановите устройството си с <ph name="IDS_SHORT_PRODUCT_NAME" />, така че да бъде като ново.</translation>
 <translation id="2568774940984945469">Контейнер на инфолента</translation>
-<translation id="2570000010887652771">Спестени са данни.</translation>
 <translation id="257088987046510401">Теми</translation>
 <translation id="2572032849266859634">Предоставен е достъп само за четене до „<ph name="VOLUME_NAME" />“.</translation>
 <translation id="2573269395582837871">Изберете снимка и име</translation>
 <translation id="2575247648642144396">Тази икона ще бъде видима, когато разширението може да изпълнява действия върху текущата страница. Използвайте го, като кликнете върху иконата или натиснете „<ph name="EXTENSION_SHORTCUT" />“.</translation>
 <translation id="2575268751393592580">Телефонът ви не може да бъде намерен. Уверете се, че вашият <ph name="DEVICE_TYPE" /> е свързан с Wi-Fi или мобилна мрежа. &lt;a&gt;Научете повече&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Вече присъства CRX файл с това име.</translation>
 <translation id="257779572837908839">Настройване като Chromebox за срещи</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Томът не може да бъде спрян<ph name="END_BOLD" />
 <ph name="LINE_BREAKS" />
@@ -1065,7 +1046,6 @@
 <translation id="2653266418988778031">Ако изтриете сертификат на сертифициращ орган (CA), браузърът ви повече няма да има доверие на нито един сертификат, издаден от този орган.</translation>
 <translation id="2653659639078652383">Изпращане</translation>
 <translation id="265390580714150011">Стойност на полето</translation>
-<translation id="2654286334048437383">Експортиране на отметки</translation>
 <translation id="2655386581175833247">Потребителски сертификат:</translation>
 <translation id="2660779039299703961">Събитие</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1259,7 +1239,6 @@
 <translation id="2908162660801918428">Добавяне на медийна галерия по директория</translation>
 <translation id="2908789530129661844">Намаляване на мащаба на екрана</translation>
 <translation id="2910318910161511225">Свържете се с мрежа и опитайте отново</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> иска да използва микрофона ви.</translation>
 <translation id="2913331724188855103">Разрешаване на сайтовете да запазват „бисквитки“ и да четат данни от такива (препоръчително)</translation>
 <translation id="2916073183900451334">При натискането на клавиша „Tab“ върху уеб страница се открояват връзките, както и полетата на формулярите</translation>
 <translation id="2916745397441987255">Търсете в разширенията</translation>
@@ -1412,7 +1391,6 @@
 <translation id="3141318088920353606">Слушаме ви...</translation>
 <translation id="3141917231319778873">Дадената заявка не се поддържа за: <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">ГОТОВО</translation>
-<translation id="3144135466825225871">Замяната на crx файла не бе успешна. Проверете дали не се използва.</translation>
 <translation id="3144647712221361880">Отваряне на връзката като</translation>
 <translation id="3149510190863420837">Приложения в Chrome</translation>
 <translation id="3150927491400159470">Твърдо презареждане</translation>
@@ -1522,7 +1500,6 @@
 <translation id="3309747692199697901">Стартиране винаги на всички сайтове</translation>
 <translation id="3312424061798279731">Активирани езици</translation>
 <translation id="3312903956926554846">Инсталиране на работния плот</translation>
-<translation id="3313473140726597081">Страницата ви при стартиране бе променена на <ph name="URL" />. За да деактивирате разширенията, които я променят, кликнете върху „Възстановяване“.</translation>
 <translation id="3313590242757056087">За да зададете уебсайтовете, които контролираният потребител може да преглежда, можете да конфигурирате ограничения
     и настройки на адрес <ph name="MANAGEMENT_URL" />.
     Ако не промените стандартните настройки, <ph name="USER_DISPLAY_NAME" />
@@ -1538,7 +1515,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Информация за приложението</translation>
 <translation id="3335947283844343239">Повторно отваряне на затворения раздел</translation>
-<translation id="3337069537196930048">Приставката <ph name="PLUGIN_NAME" /> бе блокирана, защото не е актуална.</translation>
 <translation id="3340978935015468852">настройки</translation>
 <translation id="3341703758641437857">Да се разреши достъп до URL адресите на файловете</translation>
 <translation id="3342361181740736773"><ph name="TRIGGERING_EXTENSION_NAME" /> иска да премахне това разширение.</translation>
@@ -1573,7 +1549,6 @@
 <translation id="3386219708421216619">Отметката бе добавена</translation>
 <translation id="3389312115541230716">Кликнете с десния бутон на мишката върху иконата <ph name="SMALL_PRODUCT_LOGO" /> в лентата на задачите</translation>
 <translation id="3391716558283801616">Раздел 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> иска да използва камерата и микрофона ви.</translation>
 <translation id="3396331542604645348">Избраният принтер не е налице или не е инсталиран правилно. Проверете принтера си или опитайте да изберете друг.</translation>
 <translation id="3399432415385675819">Известията ще бъдат деактивирани</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1685,10 +1660,8 @@
 <translation id="3550915441744863158">Chrome се актуализира автоматично, така че винаги имате най-новата версия</translation>
 <translation id="3551320343578183772">Затваряне на раздела</translation>
 <translation id="3552780134252864554">Изчистено при изход</translation>
-<translation id="355298399003313926"><ph name="URL" /> иска да реагира на събития за достъпност.</translation>
 <translation id="3555812735919707620">Премахване на разширението</translation>
 <translation id="3556000484321257665">Търсещата ви машина бе променена на <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Въведената стойност за личен ключ трябва да бъде валиден път.</translation>
 <translation id="3563432852173030730">Павилионното приложение не можа да се изтегли.</translation>
 <translation id="3564334271939054422">Използваната от вас Wi-Fi мрежа (<ph name="NETWORK_ID" />) може да изисква да посетите страницата й за вход.</translation>
 <translation id="3564708465992574908">Нива на мащаба</translation>
@@ -1710,7 +1683,6 @@
 <translation id="3593965109698325041">Ограничения за името на сертификата</translation>
 <translation id="3596235046596950091">Активиране на услугите в облака</translation>
 <translation id="3599863153486145794">Изчиства историята от всички устройства, на които сте влезли в профила си в Google. В него може да има други видове история на сърфиране, съхранявани на адрес <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Достъпът до локални файлове на устройството ви е деактивиран от администратора ви.</translation>
 <translation id="3600792891314830896">Спиране на звука, възпроизвеждан от сайтовете</translation>
 <translation id="3603177256297531067">Тази страница не можа да бъде преведена</translation>
 <translation id="3603533104205588786">Можете да кликнете върху иконата на звезда, за да запазите отметка към страница</translation>
@@ -1735,7 +1707,6 @@
 <translation id="3625258641415618104">Екранните снимки са деактивирани</translation>
 <translation id="3625870480639975468">Повторно задаване на мащаба</translation>
 <translation id="3626281679859535460">Яркост</translation>
-<translation id="3627052133907344175">Разширението изисква <ph name="IMPORT_VERSION" /> или по-нова версия на <ph name="IMPORT_NAME" />, но само <ph name="INSTALLED_VERSION" /> е инсталирана.</translation>
 <translation id="3627320433825461852">Остава по-малко от 1 минута</translation>
 <translation id="3627588569887975815">О&amp;тваряне на връзката в прозореца „инкогнито“</translation>
 <translation id="3627671146180677314">Време на подновяване на сертификат на Netscape</translation>
@@ -1765,7 +1736,6 @@
 <translation id="3668570675727296296">Езикови настройки</translation>
 <translation id="3668823961463113931">Манипулатори</translation>
 <translation id="3670229581627177274">Включване на Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> иска да съхранява за постоянно голямо количество данни на локалния ви компютър.</translation>
 <translation id="3672681487849735243">Открита е фабрична грешка</translation>
 <translation id="367645871420407123">не попълвайте, ако искате паролата на root да е стандартната от тестовия образ</translation>
 <translation id="3678156199662914018">Разширение: <ph name="EXTENSION_NAME" /></translation>
@@ -1843,11 +1813,9 @@
 <translation id="3786301125658655746">Офлайн сте</translation>
 <translation id="3788401245189148511">То би имало възможност за:</translation>
 <translation id="3789841737615482174">Инсталиране</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> работи само на работния плот.</translation>
 <translation id="379082410132524484">Картата ви е изтекла</translation>
 <translation id="3792890930871100565">Прекъсване на връзката с принтерите</translation>
 <translation id="379422718204375917">Използване на Smart Lock за влизане в профила ви</translation>
-<translation id="3794595850995182458">Изход от страницата</translation>
 <translation id="3796648294839530037">Любими мрежи:</translation>
 <translation id="3797900183766075808">&amp;Търсене на „<ph name="SEARCH_TERMS" />“ със: <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Позволява ви да активирате/деактивирате кликването с докосване</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326">Активиране на <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Въведен е невалиден тип запазване.</translation>
 <translation id="3983586614702900908">устройства от неизвестен доставчик</translation>
-<translation id="3984413272403535372">Грешка при подписването на разширението.</translation>
 <translation id="3987938432087324095">За съжаление, не разбрахме това.</translation>
 <translation id="3988996860813292272">Избиране на часова зона</translation>
 <translation id="3989635538409502728">Изход</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">Инсталирайте приложения и игри от Google Play на своя Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Научете повече&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Приемам за групата</translation>
 <translation id="4090103403438682346">Активиране на удостоверения достъп</translation>
-<translation id="4090404313667273475">Изисква се <ph name="PLUGIN_NAME" />, за да се покажат някои от елементите на тази страница.</translation>
 <translation id="4090535558450035482">(Това разширение е управлявано и не може да се премахне.)</translation>
 <translation id="4091434297613116013">листа</translation>
 <translation id="4093955363990068916">Локален файл:</translation>
@@ -2368,7 +2334,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> вече може да синхронизира паролите ви.</translation>
 <translation id="4715553623069266137">много кратко (0,8 сек)</translation>
 <translation id="4716483597559580346">Powerwash за повишаване на сигурността</translation>
-<translation id="471800408830181311">Извеждането на личния ключ не бе успешно.</translation>
 <translation id="4720113199587244118">Добавяне на устройства</translation>
 <translation id="4720185134442950733">Мобилна мрежа за пренос на данни</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> споделя екрана ви.</translation>
@@ -2505,7 +2470,6 @@
 <translation id="4917385247580444890">Силен</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> иска да комуникира с разширението „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="4918086044614829423">Приемам</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> иска да използва камерата ви.</translation>
 <translation id="4920887663447894854">Следните сайтове бяха блокирани от проследяване на местоположението ви на тази страница:</translation>
 <translation id="492299503953721473">Премахване на приложенията за Android</translation>
 <translation id="4923279099980110923">Да, искам да помогна</translation>
@@ -2546,7 +2510,6 @@
 <translation id="4980805016576257426">Това разширение съдържа злонамерен софтуер.</translation>
 <translation id="498294082491145744">Промяна на настройките, които контролират достъпа на уебсайтовете до функции като „бисквитки“, JavaScript, приставки, геолокация, микрофон, камера и др.</translation>
 <translation id="4988526792673242964">Страници</translation>
-<translation id="4988792151665380515">Експортирането на публичен ключ не бе успешно.</translation>
 <translation id="49896407730300355">Завъртане о&amp;братно на часовниковата стрелка</translation>
 <translation id="4989966318180235467">Инспектиране на &amp;фоновата страница</translation>
 <translation id="4990343175649730969">Изтегляне на инструмента за почистване на Chrome</translation>
@@ -2575,7 +2538,6 @@
 <translation id="5026874946691314267">Без повторно показване</translation>
 <translation id="5027550639139316293">Сертификат за имейл</translation>
 <translation id="5027562294707732951">Добавяне на разширението</translation>
-<translation id="5028012205542821824">Инсталирането не е активирано.</translation>
 <translation id="5029568752722684782">Изчистване на копието</translation>
 <translation id="5030338702439866405">Издаден от</translation>
 <translation id="5036662165765606524">Да не се разрешава на сайтовете да изтеглят автоматично няколко файла</translation>
@@ -2611,7 +2573,6 @@
 <translation id="509429900233858213">Възникна грешка.</translation>
 <translation id="5094721898978802975">Комуникация със съдействащи директно изпълнявани приложения</translation>
 <translation id="5097002363526479830">Свързването с мрежата „<ph name="NAME" />“ не бе успешно: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Абсолютният път към директорията за пакетиране не може да бъде намерен.</translation>
 <translation id="5099354524039520280">нагоре</translation>
 <translation id="5100114659116077956">За да получите най-новите функции, вашият Chromebox трябва да се актуализира.</translation>
 <translation id="5101042277149003567">Отваряне на всички отметки</translation>
@@ -2660,7 +2621,6 @@
 <translation id="5170568018924773124">Показване в папката</translation>
 <translation id="5171045022955879922">Търсете или въведете URL адрес</translation>
 <translation id="5171343362375269016">Резервна памет</translation>
-<translation id="5175870427301879686"><ph name="URL" /> иска да съхранява за постоянно данни на локалния ви компютър.</translation>
 <translation id="5177479852722101802">Достъпът до камерата и микрофона да продължи да се блокира</translation>
 <translation id="5177526793333269655">Изглед с миниизображения</translation>
 <translation id="5177549709747445269">Използвате мобилни данни</translation>
@@ -2739,7 +2699,6 @@
 <translation id="529175790091471945">Форматиране на това устройство</translation>
 <translation id="5293170712604732402">Възстановяване на настройките към първоначалните им стандартни стойности</translation>
 <translation id="5298219193514155779">Темата е създадена от</translation>
-<translation id="5298363578196989456">Разширението <ph name="IMPORT_NAME" /> не може да се импортира, защото не е споделен модул.</translation>
 <translation id="5299109548848736476">Заявка „Do Not Track“</translation>
 <translation id="5299682071747318445">Всички данни са шифровани с пропуска ви за синхронизиране</translation>
 <translation id="5300589172476337783">Показване</translation>
@@ -2767,7 +2726,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> иска да се сдвои</translation>
 <translation id="5332624210073556029">Часова зона:</translation>
 <translation id="5334142896108694079">Кеш за скриптове</translation>
-<translation id="533433379391851622">Очакваната версия е „<ph name="EXPECTED_VERSION" />“, но тя бе „<ph name="NEW_ID" />“.</translation>
 <translation id="5334844597069022743">Преглед на изходния код</translation>
 <translation id="5335458522276292100">Създаваме резервно копие на <ph name="FILE_COUNT" /> в <ph name="BEGIN_LINK" />Google Диск<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Инсталирано от трета страна.</translation>
@@ -2805,7 +2763,6 @@
 <translation id="5390100381392048184">Разрешаване на сайтовете да възпроизвеждат звук</translation>
 <translation id="5390284375844109566">Индексирана база от данни</translation>
 <translation id="5390743329570580756">Изпращане за</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> в/ъв <ph name="PEPPER_PLUGIN_DOMAIN" /> иска да осъществи достъп до компютъра ви.</translation>
 <translation id="5397794290049113714">Вие</translation>
 <translation id="5398572795982417028">Посочената страница е извън обхват. Ограничението е <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Рекламите са блокирани</translation>
@@ -2867,7 +2824,6 @@
 <translation id="5485754497697573575">Възстановяване на всички раздели</translation>
 <translation id="5486261815000869482">Потвърждаване на паролата</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> споделя екрана ви с/ъс <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Въведената стойност за личен ключ трябва да съществува.</translation>
 <translation id="5486561344817861625">Симулиране на рестартиране на браузъра</translation>
 <translation id="5487521232677179737">Изчиств. на данните</translation>
 <translation id="5488093641312826914">Копирахте „<ph name="COPIED_ITEM_NAME" />“</translation>
@@ -2950,7 +2906,6 @@
 <translation id="5600706100022181951">За изтеглянето на актуализацията ще се използват мобилни данни (<ph name="UPDATE_SIZE_MB" /> МБ). Искате ли да продължите?</translation>
 <translation id="5601503069213153581">ПИН код</translation>
 <translation id="5605623530403479164">Други търсещи машини</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> в/ъв <ph name="PEPPER_PLUGIN_DOMAIN" /> иска да осъществи достъп до устройството ви.</translation>
 <translation id="5608580678041221894">Докоснете следните клавиши, за да коригирате или преместите областта за подрязване</translation>
 <translation id="5609231933459083978">Изглежда, че приложението е невалидно.</translation>
 <translation id="5610038042047936818">Превключване към режима за фотоапарат</translation>
@@ -3194,7 +3149,6 @@
 <translation id="5990386583461751448">Преведено</translation>
 <translation id="5991049340509704927">Увеличаване</translation>
 <translation id="5993332328670040093">Преносът на данни вече няма да се измерва.</translation>
-<translation id="6003177993629630467">Възможно е <ph name="PRODUCT_NAME" /> да не може да се поддържа актуален.</translation>
 <translation id="600424552813877586">Невалидно приложение.</translation>
 <translation id="6005695835120147974">Медиен маршрутизатор</translation>
 <translation id="6006484371116297560">Класическа тема</translation>
@@ -3219,6 +3173,7 @@
 <translation id="604001903249547235">Резервни копия в облака</translation>
 <translation id="6040143037577758943">Затваряне</translation>
 <translation id="6040852767465482106">Анонимна самоличност</translation>
+<translation id="6041155700700864984">Изход от цял екран</translation>
 <translation id="604124094241169006">Автоматично</translation>
 <translation id="6042169520002885235">Избиране на производител и модел на принтера</translation>
 <translation id="6042308850641462728">Още</translation>
@@ -3235,7 +3190,6 @@
 <translation id="6056710589053485679">Нормално презареждане</translation>
 <translation id="6059652578941944813">Йерархия на сертификатите</translation>
 <translation id="6059925163896151826">USB устройства</translation>
-<translation id="6060435378291459521">В/ъв <ph name="PLUGIN_NAME" /> възникна срив.</translation>
 <translation id="6064217302520318294">Заключване на екрана</translation>
 <translation id="6065289257230303064">Атрибути за директорията на субекта на сертификата</translation>
 <translation id="6068338049763724728">Активиране на отдалечената регистрация</translation>
@@ -3344,7 +3298,6 @@
 <translation id="6237816943013845465">Позволява ви да коригирате разделителната способност на екрана</translation>
 <translation id="6238923052227198598">Запазване на най-новата бележка на заключения екран</translation>
 <translation id="6239558157302047471">Презареждане на рамката</translation>
-<translation id="624022915548992686">Изход от страницата</translation>
 <translation id="6241530762627360640">Да осъществява достъп до информацията за сдвоените със системата ви устройства с Bluetooth и да открива тези, които са наблизо.</translation>
 <translation id="6243774244933267674">Няма достъп до сървъра</translation>
 <translation id="6246413617632217567">Контролираният потребител не можа да бъде импортиран. Моля, проверете свободното място и разрешенията на твърдия си диск и опитайте отново.</translation>
@@ -3393,13 +3346,11 @@
 <translation id="6312403991423642364">Неизвестна мрежова грешка</translation>
 <translation id="6313641880021325787">ИЗХОД ОТ VR</translation>
 <translation id="6314819609899340042">Успешно активирахте функциите за отстраняване на грешки на това устройство <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Страниците ви при стартиране бяха променени така, че да включват <ph name="URL" />. За да деактивирате разширенията, които ги променят, кликнете върху „Възстановяване“.</translation>
 <translation id="6315493146179903667">Изнасяне на всичко на преден план</translation>
 <translation id="6316806695097060329">Това устройство с <ph name="SHORT_PRODUCT_NAME" /> е създадено, за да ви предостави най-доброто от мрежата.</translation>
 <translation id="6317318380444133405">Вече не се поддържа.</translation>
 <translation id="6317369057005134371">Прозорецът на приложението се изчаква...</translation>
 <translation id="6318407754858604988">Изтеглянето започна</translation>
-<translation id="6322279351188361895">Прочитът на личния ключ не бе успешен.</translation>
 <translation id="6325191661371220117">Деактивиране на автоматичното стартиране</translation>
 <translation id="6326175484149238433">Премахване от Chrome</translation>
 <translation id="6326855256003666642">Брой на активно използващите</translation>
@@ -3408,7 +3359,6 @@
 <translation id="6333049849394141510">Изберете какво да синхронизирате</translation>
 <translation id="6333064448949140209">Файлът ще бъде изпратен до Google за отстраняване на грешки</translation>
 <translation id="6333834492048057036">Преместване на фокуса върху адресната лента за търсене</translation>
-<translation id="6336907568130557310">Паролите ви ще бъдат видими за всички, които могат да видят експортирания файл. Не споделяйте файла с никого и го изтрийте, след като го импортирате.</translation>
 <translation id="6339668969738228384">Създаване на нов потребителски профил за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Не можа да се установи връзка със сървъра. Моля, проверете мрежовата си връзка и опитайте отново. Ако проблемът продължи, рестартирайте своя Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3437,7 +3387,6 @@
 <translation id="6385543213911723544">Сайтовете могат да запазват и четат данни за „бисквитки“</translation>
 <translation id="6388771388956873507">Намерете сензора за отпечатъци на устройството си и го докоснете с пръст</translation>
 <translation id="6390799748543157332">Преглежданите от вас страници в този прозорец няма да се показват в историята на браузъра и няма да оставят на компютъра други следи, като „бисквитки“, след като затворите всички прозорци в режим като гост. Изтеглените от вас файлове обаче ще бъдат запазени.</translation>
-<translation id="6391538222494443604">Трябва да съществува директория за въвеждане.</translation>
 <translation id="6395423953133416962">Изпращане на <ph name="BEGIN_LINK1" />системна информация<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />показатели<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop Speaking</translation>
 <translation id="6397592254427394018">Отваряне на всички отметки в прозорец в режим „&amp;инкогнито“</translation>
@@ -3495,7 +3444,6 @@
 <translation id="6458308652667395253">Управление на блокирането на JavaScript...</translation>
 <translation id="6459488832681039634">Използване на избраното за търсене</translation>
 <translation id="6460601847208524483">Търсене на следващото</translation>
-<translation id="6462080265650314920">Приложенията трябва да се показват с тип съдържание „<ph name="CONTENT_TYPE" />“.</translation>
 <translation id="6462082050341971451">Там ли сте още?</translation>
 <translation id="6463795194797719782">&amp;Редактиране</translation>
 <translation id="6466988389784393586">&amp;Отваряне на всички отметки</translation>
@@ -3625,7 +3573,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Искате ли Google да преведе тази страница от <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Свързано е посочващо устройство</translation>
-<translation id="6677037229676347494">Очакваният идентификационен номер е „<ph name="EXPECTED_ID" />“, но той бе „<ph name="NEW_ID" />“.</translation>
 <translation id="6678717876183468697">URL адрес на заявката</translation>
 <translation id="6680028776254050810">Превключване на потребителите</translation>
 <translation id="6680442031740878064">Свободно място: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3765,8 +3712,6 @@
 <translation id="6903534926908201625">По всяко време можете да персонализирате <ph name="BEGIN_LINK" />настройките<ph name="END_LINK" /> за събираната от Google информация.</translation>
 <translation id="6904344821472985372">Оттегляне на достъпа до файлове</translation>
 <translation id="6904655473976120856">За изход натиснете бутона на приложението</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> иска да сподели екрана ви.</translation>
-<translation id="6909461304779452601">Приложенията, разширенията и потребителските скриптове не могат да се добавят от този уебсайт.</translation>
 <translation id="6910211073230771657">Изтрито</translation>
 <translation id="691024665142758461">Изтегляне на няколко файла</translation>
 <translation id="6911324888870229398">Мрежовата връзка прекъсна. Моля, проверете я или опитайте с друга Wi-Fi мрежа.</translation>
@@ -4103,7 +4048,6 @@
 <translation id="747114903913869239">Грешка: Разширението не може да се декодира</translation>
 <translation id="7473891865547856676">Не, благодаря</translation>
 <translation id="747459581954555080">Възстановяване на всички</translation>
-<translation id="7475034671245341386">В/ъв <ph name="PLUGIN_NAME" /> възникна грешка.</translation>
 <translation id="7475671414023905704">URL адрес за изгубена парола на Netscape</translation>
 <translation id="7476454130948140105">Батерията е твърде изтощена (<ph name="BATTERY_PERCENT" />%) за стартиране на актуализацията</translation>
 <translation id="7477347901712410606">Ако сте забравили пропуска си, спрете и задайте отново синхронизирането посредством <ph name="BEGIN_LINK" />Google Табло за управление<ph name="END_LINK" />.</translation>
@@ -4140,7 +4084,6 @@
 <translation id="7507930499305566459">Сертификат за състоянието на респондер</translation>
 <translation id="7508545000531937079">Слайдшоу</translation>
 <translation id="7513029293694390567">Автоматично влизане в уебсайтове посредством съхраняваните идентификационни данни. Ако е деактивирано, ще се иска потвърждение от вас преди всяко влизане в профил в уебсайт.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> иска уникално да идентифицира устройството ви, за да възпроизвежда защитено съдържание.</translation>
 <translation id="7517569744831774757">Възстановете настройките към първоначалните им стандартни стойности.</translation>
 <translation id="7517786267097410259">Създаване на парола –</translation>
 <translation id="7518150891539970662">Регистрационни файлове за WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4170,7 +4113,6 @@
     и да опитате отново да създадете контролиран потребител.</translation>
 <translation id="756445078718366910">Отваряне на прозореца на браузъра</translation>
 <translation id="7564847347806291057">Прекратяване на процеса</translation>
-<translation id="7565291891798266313">Търсещата ви машина бе променена на <ph name="URL" />. За да деактивирате разширенията, които я променят, кликнете върху „Възстановяване“.</translation>
 <translation id="7566118625369982896">Управление на връзките към приложения в Google Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Данните в Chrome са изчистени</translation>
@@ -4179,7 +4121,6 @@
 <translation id="7573172247376861652">Заряд на батерията</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Комплектуване</translation>
-<translation id="7577815336900970562">Използване на Wi-Fi или мобилни мрежи за определяне на местоположението</translation>
 <translation id="7579149537961810247">Заглушаване на сайтовете</translation>
 <translation id="7580671184200851182">Възпроизвеждане на един и същ звук през всички високоговорители (моно)</translation>
 <translation id="7581462281756524039">Инструмент за почистване</translation>
@@ -4286,6 +4227,7 @@
 <translation id="7773726648746946405">Хранилище за сесията</translation>
 <translation id="7781335840981796660">Всички профили на потребители и локални данни ще бъдат премахнати.</translation>
 <translation id="7782102568078991263">Няма повече предложения от Google</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> не можа да се зареди</translation>
 <translation id="7784067724422331729">Настройките за сигурност на компютъра ви блокираха този файл.</translation>
 <translation id="7786207843293321886">Изход от сесията като гост</translation>
 <translation id="7786889348652477777">&amp;Презареждане на приложението</translation>
@@ -4448,7 +4390,6 @@
 <translation id="8001504501378762252">Възможно е паролата ви да е открадната от сайт</translation>
 <translation id="8004582292198964060">Браузър</translation>
 <translation id="8008356846765065031">Няма връзка с интернет. Моля, проверете връзката си.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> не можа да се зареди.</translation>
 <translation id="8008818777654712271">Автоматично изпращане до Google на системна информация и част от съдържанието на страниците с цел по-лесно откриване на опасни приложения и сайтове</translation>
 <translation id="8012382203418782830">Тази страница е преведена.</translation>
 <translation id="8014154204619229810">Актуализиращата програма понастоящем се изпълнява. Опреснете след минута, за да проверите отново.</translation>
@@ -4565,7 +4506,6 @@
 <translation id="8191230140820435481">Управление на вашите приложения, разширения и теми</translation>
 <translation id="8191453843330043793">Основано на V8 преобразуване на прокси сървъри</translation>
 <translation id="8195027750202970175">Размер върху диска</translation>
-<translation id="8195739004487400241">Началната ви страница бе променена на <ph name="URL" />. За да деактивирате разширенията, които я променят, кликнете върху „Възстановяване“.</translation>
 <translation id="8199300056570174101">Свойства на мрежата (услугата) и устройството</translation>
 <translation id="8200772114523450471">Възобновяване</translation>
 <translation id="8202160505685531999">Моля, въведете отново паролата си, за да актуализирате потребителския си профил за <ph name="DEVICE_TYPE" />.</translation>
@@ -4609,7 +4549,6 @@
 <translation id="8261378640211443080">Това разширение не е посочено в <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> и може да е било добавено без ваше знание.</translation>
 <translation id="8261387128019234107">Добавяне на профил за <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Изтриване</translation>
-<translation id="826246685091802258">Настройката <ph name="BAD_FLAG" /> не е внедрена в тази компилация.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> деактивира курсора на мишката ви.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> задейства цял екран.</translation>
 <translation id="8270242299912238708">PDF документи</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">Или изберете нова мрежа:</translation>
 <translation id="845627346958584683">Час на изтичане</translation>
 <translation id="8456681095658380701">Невалидно име</translation>
+<translation id="8457451314607652708">Импортиране на отметки</translation>
 <translation id="8460336040822756677">Ако изключите Smart Lock за <ph name="DEVICE_TYPE" />, няма да можете да отключвате устройствата си с Chrome чрез телефона си. Ще трябва да въвеждате паролата си.</translation>
 <translation id="8461329675984532579">Име на собствения доставчик</translation>
 <translation id="84613761564611563">Заявен е ПИ за конфигуриране на мрежата. Моля, изчакайте...</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">Няма намерен опасен софтуер</translation>
 <translation id="8512476990829870887">Прекратяване на процеса</translation>
 <translation id="851263357009351303">Да се разреши на <ph name="HOST" /> винаги да показва изображения</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> отстранява грешките в този браузър.</translation>
 <translation id="8521475323816527629">Бърз достъп до приложенията ви</translation>
 <translation id="8523493869875972733">Запазване на промените</translation>
 <translation id="8523849605371521713">Добавено от правило</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">Конфигуриране на мрежовите връзки</translation>
 <translation id="8620790565535071193">Сканирането не бе успешно</translation>
 <translation id="8622877356447980900">Искате ли да преведете тази страница?</translation>
-<translation id="8623004009673949077">Приложенията с атрибут „kiosk_only“ в манифеста трябва да се инсталират в павилионния режим на Chrome OS.</translation>
 <translation id="8624205858755890468">Дава възможност на Асистент да ви показва подходящи приложения, информация и действия.</translation>
 <translation id="862542460444371744">&amp;Разширения</translation>
 <translation id="8627151598708688654">Избиране на източник</translation>
@@ -4946,7 +4884,6 @@
 <translation id="882204272221080310">За допълнителна сигурност актуализирайте фърмуера.</translation>
 <translation id="8823514049557262177">Копиране на тек&amp;ста на връзката</translation>
 <translation id="8824701697284169214">Добавяне на &amp;страница...</translation>
-<translation id="8827850355924932817">Използване на Wi-Fi мрежи за определяне на местоположението</translation>
 <translation id="8828933418460119530">DNS име</translation>
 <translation id="8830796635868321089">Проверката за актуализации не бе успешна посредством текущите настройки на прокси сървъра. Моля, <ph name="PROXY_SETTINGS_LINK_START" />коригирайте ги<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Конфигурацията на мрежата се контролира от <ph name="USER_EMAIL" />.</translation>
@@ -4978,9 +4915,7 @@
 <translation id="8879284080359814990">&amp;Показване като раздел</translation>
 <translation id="8884961208881553398">Добавяне на нови услуги</translation>
 <translation id="8885197664446363138">Няма достъп до Smart Lock</translation>
-<translation id="8885905466771744233">Вече съществува личен ключ за посоченото разширение. Използвайте го отново или първо го изтрийте.</translation>
 <translation id="8888432776533519951">Цвят:</translation>
-<translation id="8892992092192084762">Темата „<ph name="THEME_NAME" />“ бе инсталирана.</translation>
 <translation id="8893928184421379330">За съжаление устройството <ph name="DEVICE_LABEL" /> не можа да бъде разпознато.</translation>
 <translation id="8895454554629927345">Списък с отметки</translation>
 <translation id="88986195241502842">Страница надолу</translation>
@@ -4995,7 +4930,6 @@
 <translation id="8908902564709148335">Предупреждение: Активирахте флага --scripts-require-action на този компютър, при което се ограничават възможностите на това разширение. На други устройства обаче е възможно флагът да не се поддържа или да не е активиран. На тях разширението също така може:</translation>
 <translation id="8910146161325739742">Споделяне на екрана ви</translation>
 <translation id="8910222113987937043">Промените във вашите отметки, история, пароли и други настройки повече няма да се синхронизират с профила ви в Google. Съществуващите ви данни обаче ще продължат да се съхраняват в него. Можете да ги управлявате от <ph name="BEGIN_LINK" />Google Табло за управление<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google сигнализира, че разширението <ph name="EXTENSION_NAME" /> е злонамерено, и инсталирането бе предотвратено.</translation>
 <translation id="8912793549644936705">Разтегляне</translation>
 <translation id="8915370057835397490">Предложението се зарежда</translation>
 <translation id="8916476537757519021">Подрамка в режим „инкогнито“: <ph name="SUBFRAME_SITE" /></translation>
@@ -5101,7 +5035,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Мишката с USB е свързана</translation>
 <translation id="9076523132036239772">За съжаление имейлът или паролата ви не можаха да бъдат потвърдени. Опитайте първо да се свържете с мрежа.</translation>
-<translation id="907841381057066561">Създаването на временен компресиран файл при пакетирането не бе успешно.</translation>
 <translation id="9084064520949870008">Отваряне като прозорец</translation>
 <translation id="9088234649737575428">Приставката <ph name="PLUGIN_NAME" /> е блокирана от корпоративно правило</translation>
 <translation id="9088917181875854783">Моля, потвърдете, че този ключ за достъп се показва на „<ph name="DEVICE_NAME" />“:</translation>
@@ -5192,11 +5125,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Въведете пропуск</translation>
 <translation id="939736085109172342">Нова папка</translation>
-<translation id="941543339607623937">Невалиден личен ключ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> споделя раздел в Chrome и звук.</translation>
 <translation id="942954117721265519">Няма изображения в тази директория.</translation>
 <translation id="945522503751344254">Изпращане на отзиви</translation>
-<translation id="951981865514037445"><ph name="URL" /> иска да използва местоположението на устройството ви.</translation>
 <translation id="952992212772159698">Не е активиран</translation>
 <translation id="9580706199804957">Не можа да се установи връзка с услугите на Google</translation>
 <translation id="958515377357646513">Докоснете, за да преминете напред.</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 704967a..56b04e53 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">কেবলমাত্র চিহ্ন প্রদান</translation>
 <translation id="1039337018183941703">অবৈধ বা দূষিত ফাইল</translation>
 <translation id="1042174272890264476">আপনার কম্পিউটারও <ph name="SHORT_PRODUCT_NAME" /> এর RLZ লাইব্রেরি বিল্ট ইনের সাথে আসে৷ RLZ অনুসন্ধানগুলি পরিমাপ করার জন্য একটি সাধারণ, ব্যক্তিগতভাবে সনাক্তকরণযোগ্য নয় এমন ট্যাগ নির্ধারণ করে এবং <ph name="SHORT_PRODUCT_NAME" /> এর ব্যবহার একটি নির্দিষ্ট প্রচারাভিযানের মাধ্যমে চালিত হয়৷ এই লেবেলগুলি কখনো কখনো <ph name="PRODUCT_NAME" /> এ Google অনুসন্ধান ক্যোয়ারিগুলিতে প্রদর্শিত হয়৷</translation>
-<translation id="1042574203789536285"><ph name="URL" /> আপনার ডিভাইসে স্থায়ীভাবে বিপুল ডেটা জমা করতে চায়৷</translation>
 <translation id="1046059554679513793">উপস, নামটি ইতিমধ্যে ব্যবহারে রয়েছে!</translation>
 <translation id="1047431265488717055">লিঙ্ক ও পাঠ্য কপি করুন</translation>
 <translation id="1047726139967079566">এই পৃষ্ঠাটি বুকমার্ক করুন...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">ডিফল্ট সার্চ ইঞ্জিন পুনরুদ্ধার করবেন?</translation>
 <translation id="1177863135347784049">কাস্টম</translation>
 <translation id="1178581264944972037">বিরতি</translation>
-<translation id="1179803038870941185"><ph name="URL" /> আপনার MIDI ডিভাইসগুলির পূর্ণ নিয়ন্ত্রণ পেতে চায়৷</translation>
 <translation id="1181037720776840403">সরান</translation>
 <translation id="1183237619868651138">স্থানীয় ক্যাশে-এর মধ্যে <ph name="EXTERNAL_CRX_FILE" /> ইনস্টল করা যায়নি৷</translation>
 <translation id="1185924365081634987">এছাড়াও, এই নেটওয়ার্ক ত্রুটি সমাধান করতে আপনি <ph name="GUEST_SIGNIN_LINK_START" />অতিথি হিসেবে ব্রাউজ করতে পারেন<ph name="GUEST_SIGNIN_LINK_END" />।</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{আপনার কম্পিউটারে সঞ্চিত একটি ফাইল অ্যাক্সেস করে}one{আপনার কম্পিউটারে সঞ্চিত #টি ফাইল অ্যাক্সেস করে}other{আপনার কম্পিউটারে সঞ্চিত #টি ফাইল অ্যাক্সেস করে}}</translation>
 <translation id="1195076408729068893">Smart Lock শুরু করতে আপনার পাসওয়ার্ড লিখুন। পরের বার আপনার <ph name="DEVICE_TYPE" /> আনলক করতে নিজের ফোন ব্যবহার করতে পারবেন।</translation>
 <translation id="1195447618553298278">অজানা ত্রুটি৷</translation>
-<translation id="1196338895211115272">ব্যক্তিগত কী রপ্তানি করতে ব্যর্থ৷</translation>
 <translation id="119738088725604856">স্ক্রীনশট উইন্ডো</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> প্রিন্টারের প্রিন্টার দক্ষতা পুনরুদ্ধারের সময় একটি ত্রুটি ঘটেছে৷ এই প্রিন্টার <ph name="CLOUD_PRINT_NAME" />-এর সাথে নিবন্ধভুক্ত করা যাবে না৷</translation>
 <translation id="1198271701881992799">আসুন শুরু করি</translation>
@@ -148,7 +145,7 @@
 <translation id="1213037489357051291"><ph name="NUM_FINGERPRINTS" />টি আঙ্গুলের ছাপের সেট আপ</translation>
 <translation id="1215411991991485844">নতুন পটভূমি অ্যাপ্লিকেশন জোড়া হয়েছে</translation>
 <translation id="1216654534877302979">সাইটগুলি মিউট করুন</translation>
-<translation id="1216659994753476700">আমরা দুঃখিত। আমরা আপনার প্রোফাইল অ্যাক্সেস করতে পারছি না। এই ডিভাইসে সঞ্চিত ফাইল এবং ডেটা হয়ত হারিয়ে গেছে।<ph name="BR" />
+<translation id="1216659994753476700">আমরা দুঃখিত। আমরা আপনার প্রোফাইল অ্যাক্সেস করতে পারছি না। এই ডিভাইসে সঞ্চিত ফাইল এবং ডেটা হয়তো হারিয়ে গেছে।<ph name="BR" />
     <ph name="BR" />
     আপনাকে আপনার প্রোফাইল আবার সেট আপ করতে হবে।<ph name="BR" />
     <ph name="BR" />
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">আপনার প্রশাসক এই সেটিং এর জন্য কোনো সুনির্দিষ্ট মানের প্রস্তাব দেয়৷</translation>
 <translation id="1225177025209879837">অনুরোধ প্রক্রিয়াকরণ হচ্ছে...</translation>
 <translation id="1225211345201532184">তাকের আইটেম নম্বর ৫</translation>
-<translation id="1225404570112441414">যেকোনো সময় ব্যবহার করার জন্য এই সাইটটিকে আপনার শেল্ফে যোগ করুন।</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" এর সাথে সংযুক্ত হওয়ার সময় প্রমাণীকরণ ব্যার্থ হয়েছে৷</translation>
 <translation id="1230807973377071856">সিস্টেম মেনু</translation>
 <translation id="1232569758102978740">শিরোনামহীন</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML ফাইল বুকমার্ক করে</translation>
 <translation id="1303671224831497365">কোনো ব্লুটুথ ডিভাইস পাওয়া যায়নি</translation>
 <translation id="1306606229401759371">সেটিংস পরিবর্তন করুন</translation>
-<translation id="1307398858972670978">যে কোনো ডিভাইস থেকে <ph name="SAVED_PASSWORDS_LINK" /> এ গিয়ে আপনার পাসওয়ার্ডগুলি অ্যাক্সেস করুন</translation>
 <translation id="1307559529304613120">ওহো! সিস্টেমটি এই ডিভাইসের জন্য দীর্ঘমেয়াদি API অ্যাক্সেস টোকেন সঞ্চয় করতে ব্যর্থ হয়েছে৷</translation>
 <translation id="1313405956111467313">স্বয়ংক্রিয় প্রক্সি কনফিগারেশন</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">সার্চ করুন</translation>
 <translation id="1386387014181100145">আপনি কেমন আছেন৷</translation>
 <translation id="138784436342154190">ডিফল্ট শুরুর পৃষ্ঠা পুনরুদ্ধার করবেন?</translation>
-<translation id="1389297115360905376">এটি কেবলমাত্র <ph name="CHROME_WEB_STORE" /> থেকে ইনস্টল জোড়া যেতে পারে৷</translation>
 <translation id="1390548061267426325">নিয়মিত ট্যাব রূপে খুলুন</translation>
-<translation id="1391807639023934267">আরও দ্রুত পৃষ্ঠা লোড হয়েছে।</translation>
 <translation id="1393283411312835250">সূর্য ও ক্লাউড</translation>
 <translation id="1395262318152388157">স্লাইডার খুঁজুন</translation>
 <translation id="1395730723686586365">আপডেটার শুরু হয়েছে</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">আপনি <ph name="PRODUCT_NAME" /> এর অস্থায়ী সংস্করণে আপডেট হচ্ছেন, এটিতে থাকা বৈশিষ্টগুলি প্রগতিতে রয়েছে৷ ক্র্যাশ এবং অপ্রত্যাশিত ত্রুটিগুলি ঘটবে৷ দয়া করে সাবধানতার সাথে এগিয়ে যান৷</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (এক্সটেনশান ID " <ph name="EXTENSION_ID" /> ") এই ধরনের সেশনে অনুমোদিত নয়৷</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">এ বাবা! র‌্যান্ডম RSA ব্যক্তিগত কী জেনারেট করতে ব্যর্থ৷</translation>
 <translation id="1420834118113404499">মিডিয়া লাইসেন্সগুলি</translation>
 <translation id="1420920093772172268">যুক্ত হওয়ার জন্য  <ph name="TURN_ON_BLUETOOTH_LINK" /> কে অনুমতি দিতে</translation>
 <translation id="1426410128494586442">হ্যাঁ</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">অ&amp;ডিও ঠিকানা কপি করুন</translation>
 <translation id="1465827627707997754">পিৎজার টুকরা</translation>
 <translation id="1467432559032391204">বামে</translation>
-<translation id="1467999917853307373"><ph name="URL" /> স্থায়ীভাবে আপনার ডিভাইসে ডেটা জমা করতে চায়৷</translation>
-<translation id="1470719357688513792">পৃষ্ঠা আবার লোড হওয়ার পরে নতুন কুকি সেটিংস প্রভাবিত হবে৷</translation>
 <translation id="1470811252759861213">আপনার সকল কম্পিউটারে আপনার এক্সটেনশানগুলি পেতে, <ph name="SIGN_IN_LINK" />।</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" আপলোড করা হয়নি। আপনার Google ড্রাইভে পর্যাপ্ত ফাঁকা স্থান নেই।</translation>
 <translation id="1475502736924165259">আপনার কাছে ফাইলে সেই শংসাপত্রগুলি আছে যা অন্য বিভাগগুলির একটিতেও মেলে না</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">বড় মাউস কার্সার</translation>
 <translation id="1543284117603151572">Edge থেকে আমদানি করা</translation>
 <translation id="1545177026077493356">স্বয়ংক্রিয় Kiosk মোড</translation>
+<translation id="1545775234664667895">ইনস্টল হওয়া থিম "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">কোয়্যারীর স্থানে %s সহ URL</translation>
 <translation id="1546280085599573572">আপনি হোম বোতাম ক্লিক করলে কোন পৃষ্ঠা দেখানো হবে তা এই এক্সটেনশানটি দ্বারা পরিবর্তন করা করেছে।</translation>
 <translation id="1547572086206517271">রিফ্রেশ করা প্রয়োজন</translation>
@@ -443,11 +434,9 @@
     বিশেষ ওয়েবসাইটগুলি <ph name="BEGIN_BOLD" />মুঞ্জুরি বা নিষিদ্ধ<ph name="END_BOLD" /> করতে পারেন,
     তত্ত্বাবধানে থাকা ব্যবহারকারীর দ্বারা ঘুরে দেখা ওয়েবসাইটগুলি <ph name="BEGIN_BOLD" />পর্যালোচনা<ph name="END_BOLD" /> করতে পারেন, এবং অন্য সেটিংস <ph name="BEGIN_BOLD" />পরিচালনা করতে পারেন<ph name="END_BOLD" />৷</translation>
 <translation id="1648943974594387137">সাইন-ইনের বিবরণ পুরানো হয়ে গেছে</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" />টি লাইন দেখানো হয়নি&gt;</translation>
 <translation id="1650371550981945235">ইনপুট বিকল্পগুলি দেখান</translation>
 <translation id="1650709179466243265">www. এবং .com যুক্ত করুন এবং ঠিকানা খুলুন</translation>
 <translation id="1651008383952180276">আপনাকে একই পাসফ্রেজ অবশ্যই দু'বার লিখতে হবে</translation>
-<translation id="1652972346408808053">পাসওয়ার্ড সংরক্ষিত হয়েছে। যে কোনো ডিভাইস থেকে <ph name="SAVED_PASSWORDS_LINK" /> এ গিয়ে আপনার পাসওয়ার্ডগুলি অ্যাক্সেস করুন</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{আপনি যাতে যেকোনো জায়গা থেকে প্রিন্ট করতে পারেন সেই জন্য Google ক্লাউড প্রিন্টে প্রিন্টারটি যোগ করুন।}one{আপনি যাতে যেকোনো জায়গা থেকে প্রিন্ট করতে পারেন সেই জন্য Google ক্লাউড প্রিন্টে #টি প্রিন্টার যোগ করুন।}other{আপনি যাতে যেকোনো জায়গা থেকে প্রিন্ট করতে পারেন সেই জন্য Google ক্লাউড প্রিন্টে #টি প্রিন্টার যোগ করুন।}}</translation>
 <translation id="1657406563541664238">Google-এ ব্যবহার পরিসংখ্যান এবং ক্র্যাশ প্রতিবেদন স্বয়ংক্রিয়ভাবে পাঠিয়ে <ph name="PRODUCT_NAME" />-কে সর্বোত্তম করে তুলতে সাহায্য করুন</translation>
 <translation id="1658424621194652532">এই পৃষ্ঠাটি আপনার মাইক্রোফোন অ্যাক্সেস করছে৷</translation>
@@ -465,7 +454,7 @@
 <translation id="167832068858235403">আওয়াজ কমান</translation>
 <translation id="1679068421605151609">ডেভেলপার সরঞ্জামগুলি</translation>
 <translation id="1682548588986054654">নতুন ছদ্মবেশী উইন্ডো</translation>
-<translation id="1688935057616748272">অক্ষর টাইপ করুন</translation>
+<translation id="1688935057616748272">একটি অক্ষর টাইপ করুন</translation>
 <translation id="168991973552362966">আশেপাশের একটি প্রিন্টার যোগ করুন</translation>
 <translation id="1689945336726856614">&amp;URL কপি করুন</translation>
 <translation id="1692602667007917253">ওহো, কিছু সমস্যা হয়েছে</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">কুকিজ অবরুদ্ধ করা চালিয়ে যান</translation>
 <translation id="204622017488417136">আপনার ডিভাইসটি পূর্বে ইনস্টল করা Chrome এর সংস্করণে নিয়ে যাওয়া হবে। সকল ব্যবহারকারীর অ্যাকাউন্ট এবং স্থানীয় ডেটা মুছে ফেলা হবে। এটিকে পূর্বাবস্থায় ফেরানো যাবে না।</translation>
 <translation id="2048182445208425546">আপনার নেটওয়ার্ক ট্রাফিক অ্যাক্সেস করে</translation>
-<translation id="2049137146490122801">আপনার মেশিনে স্থানীয় ফাইলগুলিতে অ্যাক্সেস আপনার প্রশাসক অক্ষম করেছেন৷</translation>
 <translation id="204914487372604757">শর্টকাট তৈরি করুন</translation>
 <translation id="2050339315714019657">প্রতিকৃতি</translation>
 <translation id="2053312383184521053">নিষ্ক্রিয় অবস্থার ডেটা</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">এখনও কোনও লোড হওয়া নেই</translation>
 <translation id="2107494551712864447">একটি আঙ্গুলের ছাপ যোগ করুন</translation>
-<translation id="2111843886872897694">তাদের প্রভাবিত করে এরকম হোস্ট থেকে অ্যাপ্লিকেশনগুলিকে অবশ্যই সংরক্ষণ করা উচিত৷</translation>
 <translation id="2112877397266219826">আমাকে সেট করতে আপনার স্পর্শ নিয়ন্ত্রক চালু করুন</translation>
 <translation id="21133533946938348">ট্যাব পিন করুন</translation>
 <translation id="2113479184312716848">Open &amp;File...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">কী ঘটছে তা আমাদের বলুন</translation>
 <translation id="2229161054156947610">1 ঘন্টার বেশী বাকি</translation>
 <translation id="222931766245975952">ফাইল অবচ্ছেদন করা হয়েছে</translation>
-<translation id="222949136907494149"><ph name="URL" /> আপনার কম্পিউটারের অবস্থান ব্যবহার করতে চায়৷</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" /> " ফোল্ডার তৈরী করতে ব্যর্থ৷<ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">আজকের ডুডল দেখার জন্য ক্লিক করুন</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">মাইক্রোফোনের অ্যাক্সেস সর্বদা অবরুদ্ধ রাখুন</translation>
 <translation id="2367972762794486313">অ্যাপ্লিকেশানগুলি দেখান</translation>
 <translation id="2371076942591664043">&amp;সম্পন্ন হলে খুলুন</translation>
-<translation id="237336063998926520">লোকেশন নির্ধারণ করার জন্য আপনার IP অ্যাড্রেস ব্যবহার করুন</translation>
 <translation id="2377319039870049694">তালিকা দৃশ্যে যান</translation>
 <translation id="2377667304966270281">হার্ড ফল্ট</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> টি ফাইল নির্বাচিত</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> থেকে ফাইলসমূহ প্রতিলিপি করতে চায়৷</translation>
 <translation id="2462724976360937186">শংসাপত্র কর্তৃত্ব কী ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> যোগ করা হয়েছে</translation>
-<translation id="246335896104539386">বুকমার্কগুলি আমদানি করুন</translation>
 <translation id="2464089476039395325">HTTP প্রক্সী</translation>
 <translation id="2468902267404883140">আপনার ফোন সংযুক্ত করা যাচ্ছে না। নিশ্চিত করুন আপনার একটি উপযুক্ত Android ফোন আছে যেটি চালু রয়েছে এবং সহজে ব্যবহার করা যায়। &lt;a&gt;আরও জানুন&lt;/a&gt;</translation>
 <translation id="2470702053775288986">অসমর্থিত এক্সটেনশানগুলি নিষ্ক্রিয় করা আছে</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">আনইনস্টল</translation>
 <translation id="2487067538648443797">নতুন বুকমার্ক যোগ করুন</translation>
 <translation id="248861575772995840">আপনার ফোন খুঁজে পাওয়া যাচ্ছে না। নিশ্চিত করুন আপনার <ph name="DEVICE_TYPE" /> এর ব্লুটুথ চালু আছে। &lt;a&gt;আরও জানুন&lt;/a&gt;</translation>
-<translation id="2489316678672211764">একটি প্লাগ ইন <ph name="PLUGIN_NAME" /> কোনো প্রতিক্রিয়া করছে না৷</translation>
 <translation id="2489428929217601177">বিগত দিন</translation>
 <translation id="2489918096470125693">ফোল্ডার যুক্ত &amp;করুন...</translation>
 <translation id="249113932447298600">দুঃখিত, <ph name="DEVICE_LABEL" /> ডিভাইসটি এই মুহুর্তে সমর্থিত নয়৷</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">অভিনন্দন! আপনার '<ph name="NAME" />' ডেটা পরিষেবা সক্রিয় করা হয়েছে এবং ব্যবহার করার জন্য প্রস্তুত৷</translation>
 <translation id="2566124945717127842">আপনার <ph name="IDS_SHORT_PRODUCT_NAME" /> ডিভাইস নতুনের মত আবার সেট করতে পাওয়ারওয়াশ করুন।</translation>
 <translation id="2568774940984945469">তথ্যবার ধারক</translation>
-<translation id="2570000010887652771">ডেটা বাঁচানো হয়েছে।</translation>
 <translation id="257088987046510401">থিমসমূহ</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" />-এ শুধুমাত্র পাঠযোগ্য অ্যাক্সেস মঞ্জুর করা হয়েছে৷</translation>
 <translation id="2573269395582837871">একটি ছবি ও নাম বেছে নিন</translation>
 <translation id="2575247648642144396">এই আইকনটি দৃশ্যমান হবে যখন এক্সটেনশন বর্তমান পৃষ্ঠার উপর কাজ করতে পারবে৷ আইকনে ক্লিক করে বা <ph name="EXTENSION_SHORTCUT" /> টিপে এই এক্সটেনশন ব্যবহার করুন৷</translation>
 <translation id="2575268751393592580">আপনার ফোন খুঁজে পাওয়া যাচ্ছে না। আপনার <ph name="DEVICE_TYPE" /> ওয়াই-ফাই বা মোবাইল নেটওয়ার্কের সাথে সংযুক্ত আছে সেটি নিশ্চিত করুন। &lt;a&gt;আরও জানুন&lt;/a&gt;</translation>
-<translation id="2576842806987913196">এই নামের একটি CRX ফাইল ইতিমধ্যে বিদ্যমান আছে৷</translation>
 <translation id="257779572837908839">মিটিংয়ের জন্য Chromebox সেট আপ করুন</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />ভলিউম আনমাউন্ট করা যাবে না<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">যদি আপনি কোনও সার্টিফিকেশন অথোরিটি (CA) শংসাপত্র মুছে থাকেন তবে আপনার ব্রাউজার সেই CA দ্বারা ইস্যু করা কোনও শংসাপত্রকে আর বিশ্বাস করবে না৷</translation>
 <translation id="2653659639078652383">জমা দিন</translation>
 <translation id="265390580714150011">ক্ষেত্রের মান</translation>
-<translation id="2654286334048437383">বুকমার্কগুলি রপ্তানি করুন</translation>
 <translation id="2655386581175833247">ব্যবহারকারীর শংসাপত্র:</translation>
 <translation id="2660779039299703961">ইভেন্ট</translation>
 <translation id="2661146741306740526">১৬x৯</translation>
@@ -1264,7 +1244,6 @@
 <translation id="2908162660801918428">ডিরেক্টরি অনুসারে মিডিয়া গ্যালারি জুড়ুন</translation>
 <translation id="2908789530129661844">স্ক্রিনের জুম কমান</translation>
 <translation id="2910318910161511225">নেটওয়ার্কে সংযোগ করে আবার চেষ্টা করুন</translation>
-<translation id="2912905526406334195"><ph name="HOST" />আপনার মাইক্রোফোন ব্যবহার করতে চাই৷</translation>
 <translation id="2913331724188855103">সাইটগুলিকে কুকি ডেটা পড়ার এবং সংরক্ষণ করার অনুমতি দিন (প্রস্তাবিত)</translation>
 <translation id="2916073183900451334">কোনও ওয়েবপৃষ্ঠায় লিঙ্কগুলি হাইলাইট করে ট্যাব টেপা পাশাপাশি ফর্ম ক্ষেত্রগুলি</translation>
 <translation id="2916745397441987255">এক্সটেনশানগুলি খুঁজুন</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">উইন্ডোটি উপরে তুলে দিন</translation>
 <translation id="3053013834507634016">শংসাপত্র কী ব্যবহার</translation>
 <translation id="3057861065630527966">আপনার ফটো ও ভিডিওগুলির ব্যাকআপ নিন</translation>
-<translation id="3060379269883947824">শোনার জন্য বেছে নেওয়া সক্ষম করুন</translation>
+<translation id="3060379269883947824">'বাছুন ও শুনুন' চালু করুন</translation>
 <translation id="3061707000357573562">প্যাচ পরিষেবা</translation>
 <translation id="3064410671692449875">অপর্যাপ্ত ডেটা</translation>
 <translation id="3065041951436100775">ট্যাব নষ্ট হওয়ার প্রতিক্রিয়া।</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">শুনছি...</translation>
 <translation id="3141917231319778873">এতে পাঠানো অনুরোধটি সমর্থিত নয়: "<ph name="DEVICE_NAME" />"।</translation>
 <translation id="3144126448740580210">সম্পন্ন হয়েছে</translation>
-<translation id="3144135466825225871">crx ফাইলটি প্রতিস্থাপন করতে ব্যর্থ৷ ফাইলটি ব্যবহার হচ্ছে কিনা দেখতে পরীক্ষা করুন৷</translation>
 <translation id="3144647712221361880">এ হিসেবে লিঙ্ক খুলুন</translation>
 <translation id="3149510190863420837">Chrome অ্যাপ্লিকেশানগুলি</translation>
 <translation id="3150927491400159470">কষ্টসাধ্য পুনঃলোড</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">সর্বদা সমস্ত সাইটে চালু রাখুন</translation>
 <translation id="3312424061798279731">সক্ষম করা ভাষাগুলি</translation>
 <translation id="3312903956926554846">ডেস্কটপে ইনস্টল করুন</translation>
-<translation id="3313473140726597081">আপনার শুরুর পৃষ্ঠা <ph name="URL" /> এ পরিবর্তন করা হয়েছে। যেসব অ্যাপ্লিকেশান আপনার শুরুর পৃষ্ঠার পরিবর্তন ঘটায় সেগুলিকে অক্ষম করতে ‘পুনরুদ্ধার করুন’ এ ক্লিক করুন।</translation>
 <translation id="3313590242757056087">তত্ত্বাবধানে থাকা ব্যবহারকারী কোন ওয়েবসাইটগুলি দেখতে পাবেন তা সেট করতে, আপনি <ph name="MANAGEMENT_URL" /> এ গিয়ে বিধিনিষেধ এবং সেটিংস কনফিগার করতে পারেন৷ আপনি যদি ডিফল্ট সেটিংস পরিবর্তন না করেন, তাহলে <ph name="USER_DISPLAY_NAME" /> ওয়েবে সমস্ত সাইটে ব্রাউজ করতে পারবেন৷</translation>
 <translation id="3313622045786997898">শংসাপত্র স্বাক্ষর মান</translation>
 <translation id="3315158641124845231"><ph name="PRODUCT_NAME" /> লুকান</translation>
@@ -1539,7 +1516,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">অ্যাপ্লিকেশানের তথ্য</translation>
 <translation id="3335947283844343239">বন্ধ হওয়া ট্যাব আবার খুলুন</translation>
-<translation id="3337069537196930048">বাতিল হয়ে যাওয়ার কারণে <ph name="PLUGIN_NAME" /> অবরুদ্ধ করা হয়েছে৷</translation>
 <translation id="3340978935015468852">সেটিংস</translation>
 <translation id="3341703758641437857">ফাইল URLগুলিতে অ্যাক্সেস মঞ্জুর করুন</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" এই এক্সটেনশনটি সরিয়ে দিতে চাইছে।</translation>
@@ -1564,7 +1540,7 @@
 <translation id="3369624026883419694">হোস্ট স্থির করা হচ্ছে...</translation>
 <translation id="337286756654493126">আপনি অ্যাপ্লিকেশানটিতে খোলেন এমন ফোল্ডারগুলি পড়ে</translation>
 <translation id="3378503599595235699">আপনি আপনার ব্রাউজার ছেড়ে যাওয়া পর্যন্ত কেবল স্থানীয় ডেটা রাখুন</translation>
-<translation id="3378572629723696641">এই এক্সটেনশানটি হয়ত ক্ষতিগ্রস্ত হয়েছে৷</translation>
+<translation id="3378572629723696641">এই এক্সটেনশানটি হয়তো ক্ষতিগ্রস্ত হয়েছে৷</translation>
 <translation id="3378630551672149129">প্রবেশ করুন, ইনপুট উপাদানের সঙ্গে যোগাযোগের জন্য ট্যাব কী টিপুন</translation>
 <translation id="337920581046691015"><ph name="PRODUCT_NAME" /> ইনস্টল করা হবে৷</translation>
 <translation id="3380365263193509176">অজানা ত্রুটি</translation>
@@ -1574,7 +1550,6 @@
 <translation id="3386219708421216619">বুকমার্ক যুক্ত হয়েছে</translation>
 <translation id="3389312115541230716">কার্যদণ্ডে <ph name="SMALL_PRODUCT_LOGO" /> আইকনে ডান ক্লিক করুন</translation>
 <translation id="3391716558283801616">ট্যাব ৭</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> আপনার ক্যামেরা ও মাইক্রোফোন ব্যবহার করতে চায়৷</translation>
 <translation id="3396331542604645348">নির্বাচিত প্রিন্টারটি উপলব্ধ নেই বা সঠিকভাবে ইনস্টল হওয়া নেই৷ আপনার প্রিন্টারটি পরীক্ষা করুন বা অন্য একটি প্রিন্টার নির্বাচনের চেষ্টা করুন৷</translation>
 <translation id="3399432415385675819">বিজ্ঞপ্তি অক্ষম করা হবে</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1686,10 +1661,8 @@
 <translation id="3550915441744863158">Chrome স্বয়ংক্রিয়ভাবে আপডেট হয় তাই আপনি সবসময় নবীনতম সংস্করণটি পান</translation>
 <translation id="3551320343578183772">ট্যাব বন্ধ করুন</translation>
 <translation id="3552780134252864554">'বেরিয়ে আসুন' থেকে সাফ করা হয়েছে</translation>
-<translation id="355298399003313926"><ph name="URL" /> অ্যাক্সেসযোগ্যতা সংক্রান্ত ইভেন্টে প্রতিক্রিয়া দিয়ে চায়।</translation>
 <translation id="3555812735919707620">এক্সটেনশান সরান</translation>
 <translation id="3556000484321257665">আপনার সার্চ ইঞ্জিন <ph name="URL" /> এ পরিবর্তন করা হয়েছে।</translation>
-<translation id="3561217442734750519">ব্যক্তিগত কীয়ের জন্য ইনপুট মান অবশ্যই একটি বৈধ পথ হবে৷</translation>
 <translation id="3563432852173030730">কিয়স্ক অ্যাপ্লিকেশানটি ডাউনলোড করা যাবে না।</translation>
 <translation id="3564334271939054422">আপনি যে (<ph name="NETWORK_ID" />) ওয়াই-ফাই নেটওয়ার্ক ব্যবহার করছেন তার জন্য লগ ইন পৃষ্ঠা দেখার প্রয়োজন হতে পারে৷</translation>
 <translation id="3564708465992574908">জুম স্তরগুলি</translation>
@@ -1711,7 +1684,6 @@
 <translation id="3593965109698325041">শংসাপত্র নাম সীমাবদ্ধতাসমূহ</translation>
 <translation id="3596235046596950091">ক্লাউড পরিষেবাগুলি সক্ষম করুন</translation>
 <translation id="3599863153486145794">সমস্ত সাইন-ইন করা ডিভাইসগুলি থেকে ইতিহাস মুছে ফেলে। <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিংয়ের ইতিহাস থাকতে পারে।</translation>
-<translation id="3600456501114769456">আপনার প্রশাসকের দ্বারা আপনার ডিভাইসে স্থানীয় ফাইলগুলির অ্যাক্সেস অক্ষম করা আছে৷</translation>
 <translation id="3600792891314830896">সাউন্ড প্লে করা হয় যে সাইটগুলিতে সেগুলি মিউট করুন</translation>
 <translation id="3603177256297531067">এই পৃষ্ঠাটির অনুবাদ করা যায়নি</translation>
 <translation id="3603533104205588786">একটি পৃষ্ঠাকে বুকমার্ক করতে তারকা আইকনটিতে ক্লিক করুন৷</translation>
@@ -1736,7 +1708,6 @@
 <translation id="3625258641415618104">স্ক্রীনশট অক্ষম হয়েছে</translation>
 <translation id="3625870480639975468">জুম পুনরায় সেট করুন</translation>
 <translation id="3626281679859535460">উজ্জ্বলতা</translation>
-<translation id="3627052133907344175">এক্সটেনশানের ন্যূনতম "<ph name="IMPORT_VERSION" />" সংস্করণের "<ph name="IMPORT_NAME" />" প্রয়োজন, কিন্তু কেবল "<ph name="INSTALLED_VERSION" />" সংস্করণ ইন্সটল করা আছে।</translation>
 <translation id="3627320433825461852">1 মিনিটেরও কম সময় বাকি আছে</translation>
 <translation id="3627588569887975815">লিঙ্কটি ছ&amp;দ্মবেশী উইন্ডোতে খুলুন</translation>
 <translation id="3627671146180677314">Netscape শংসাপত্র পুনর্নবীকরণ সময়</translation>
@@ -1766,7 +1737,6 @@
 <translation id="3668570675727296296">ভাষা সেটিংস</translation>
 <translation id="3668823961463113931">হ্যান্ডলার</translation>
 <translation id="3670229581627177274">ব্লুটুথ চালু করুন</translation>
-<translation id="3672159315667503033"><ph name="URL" /> স্থায়ীরূপে আপনার কম্পিউটারে অত্যধিক ডেটা জমা করতে চায়৷</translation>
 <translation id="3672681487849735243">একটি ফ্যাক্টরি ত্রুটি সনাক্ত করা হয়েছে</translation>
 <translation id="367645871420407123">যদি আপনি ডিফল্ট টেস্ট ছবি মানে রুট পাসওয়ার্ড সেট করতে চান তবে খালি ছাড়ুন</translation>
 <translation id="3678156199662914018">এক্সটেনশন: <ph name="EXTENSION_NAME" /></translation>
@@ -1844,11 +1814,9 @@
 <translation id="3786301125658655746">আপনি অফলাইন আছেন</translation>
 <translation id="3788401245189148511">এটা হতে পারে:</translation>
 <translation id="3789841737615482174">ইনস্টল করুন</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> শুধুমাত্র ডেস্কটপে কাজ করে৷</translation>
 <translation id="379082410132524484">আপনার কার্ডের মেয়াদ শেষ হয়ে গেছে</translation>
 <translation id="3792890930871100565">প্রিন্টার সংযোগ বিচ্ছিন্ন করুন</translation>
 <translation id="379422718204375917">আপনার অ্যাকাউন্টে সাইন ইন করার জন্য Smart Lock ব্যবহার করুন</translation>
-<translation id="3794595850995182458">পৃষ্ঠা থেকে প্রস্থান করুন</translation>
 <translation id="3796648294839530037">পছন্দসই নেটওয়ার্কগুলি:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> এ “<ph name="SEARCH_TERMS" />” এর &amp;অনুসন্ধান করুন</translation>
 <translation id="3798325802885154040">আপনাকে ক্লিক করতে হালকা চাপ দেওয়া সক্ষম/অক্ষম করতে অনুমতি দেয়</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> সক্ষম করুন</translation>
 <translation id="3981760180856053153">অবৈধ সংরক্ষণ প্রকার প্রবেশ করা হয়েছে৷</translation>
 <translation id="3983586614702900908">একটি অজানা বিক্রেতা থেকে ডিভাইসগুলি</translation>
-<translation id="3984413272403535372">এক্সটেনশন স্বাক্ষরের সময় ত্রুটি৷</translation>
 <translation id="3987938432087324095">বোঝা গেল না।</translation>
 <translation id="3988996860813292272">সময় অঞ্চল বেছে নিন</translation>
 <translation id="3989635538409502728">সাইন-আউট করুন</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">আপনার Chromebook এ Google Play থেকে অ্যাপ এবং গেম ইনস্টল করুন। &lt;a target="_blank" href="<ph name="URL" />"&gt;আরও জানুন&lt;/a&gt;</translation>
 <translation id="4088095054444612037">গোষ্ঠীর জন্য স্বীকার করুন</translation>
 <translation id="4090103403438682346">যাচাইকৃত অ্যাক্সেস সক্ষম করুন</translation>
-<translation id="4090404313667273475">কিছু সামগ্রী এই পৃষ্ঠায় প্রদর্শন করতে <ph name="PLUGIN_NAME" /> আবশ্যক৷</translation>
 <translation id="4090535558450035482">(এই এক্সটেনশানটি পরিচালিত হচ্ছে এবং সরানো যাবে না।)</translation>
 <translation id="4091434297613116013">কাগজের তাল</translation>
 <translation id="4093955363990068916">স্থানীয় ফাইল:</translation>
@@ -2368,7 +2334,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> এখন আপনার পাসওয়ার্ডগুলি সিঙ্ক করতে পারে৷</translation>
 <translation id="4715553623069266137">খুব অল্প সময় (০.৮সে.)</translation>
 <translation id="4716483597559580346">অতিরিক্ত নিরাপত্তার জন্য পাওয়ারওয়াশ</translation>
-<translation id="471800408830181311">ব্যক্তিগত কী আউটপুট করতে ব্যর্থ৷</translation>
 <translation id="4720113199587244118">ডিভাইসগুলি যোগ করুন</translation>
 <translation id="4720185134442950733">মোবাইল ডেটা নেটওয়ার্ক</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> আপনার স্ক্রিন ভাগ করছে৷</translation>
@@ -2505,7 +2470,6 @@
 <translation id="4917385247580444890">জোরালো</translation>
 <translation id="4918021164741308375">"<ph name="EXTENSION_NAME" />" এক্সটেনশন দ্বারা <ph name="ORIGIN" /> যোগাযোগ করতে চায়</translation>
 <translation id="4918086044614829423">স্বীকার</translation>
-<translation id="4919810557098212913"><ph name="HOST" />  আপনার ক্যামেরা ব্যবহার করতে চায়৷</translation>
 <translation id="4920887663447894854">এই পৃষ্ঠাতে আপনার অবস্থান নির্ধারণ করার জন্য নিম্নলিখিত সাইটগুলি অবরুদ্ধ করা হয়েছে:</translation>
 <translation id="492299503953721473">Android অ্যাপ্লিকেশানগুলি সরান</translation>
 <translation id="4923279099980110923">হ্যাঁ, আমি সাহায্য করতে চাই</translation>
@@ -2546,7 +2510,6 @@
 <translation id="4980805016576257426">এই এক্সটেনশানটিতে ম্যালওয়্যার আছে।</translation>
 <translation id="498294082491145744">কুকিজ, JavaScript, প্লাগ ইন, ভূ-অবস্থান, মাইক্রোফোন, ক্যামেরা ইত্যাদির মতো বৈশিষ্ট্যগুলিতে ওয়েবসাইটগুলির অ্যাক্সেস নিয়ন্ত্রণ করে, আপনার সেই সেটিংস পরিবর্তন করুন।</translation>
 <translation id="4988526792673242964">পৃষ্ঠাসমূহ</translation>
-<translation id="4988792151665380515">ব্যক্তিগত কী-টি রপ্তানি করতে ব্যর্থ৷</translation>
 <translation id="49896407730300355">ঘড়ির কাঁটার &amp;বিপরীত দিকে ঘোরান</translation>
 <translation id="4989966318180235467">&amp;পশ্চাদপট পৃষ্ঠা পরিদর্শন করুন</translation>
 <translation id="4990343175649730969">Chrome পরিষ্কারের সরঞ্জাম ডাউনলোড করুন</translation>
@@ -2574,7 +2537,6 @@
 <translation id="5026874946691314267">এটিকে আবার দেখাবেন না</translation>
 <translation id="5027550639139316293">ইমেল শংসাপত্র</translation>
 <translation id="5027562294707732951">এক্সটেনশান যোগ করুন</translation>
-<translation id="5028012205542821824">ইনস্টলেশন সক্ষম করা হয়নি৷</translation>
 <translation id="5029568752722684782">প্রতিলিপি সাফ করুন</translation>
 <translation id="5030338702439866405">দ্বারা ইস্যু করা</translation>
 <translation id="5036662165765606524">কোনো সাইটকে স্বয়ংক্রিয়ভাবে একাধিক ফাইল ডাউনলোড করার জন্য মঞ্জুরি দেবেন না</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">একটি ত্রুটি ঘটেছে৷</translation>
 <translation id="5094721898978802975">সহযোগী ন্যাটিভ অ্যাপ্লিকেশানগুলির সাথে যোগাযোগ করুন</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />': <ph name="DETAILS" /> নেটওয়ার্কে সংযোগ করা গেল না </translation>
-<translation id="5098647635849512368">প্যাক করার জন্য ডিরেক্টরির সঠিক পথটি খুঁজে পাওয়া যাবে না৷</translation>
 <translation id="5099354524039520280">উপরে</translation>
 <translation id="5100114659116077956">সর্বশেষ বৈশিষ্ট্যগুলি আপনার কাছে নিয়ে আসতে, আপনার Chromebox আপডেট করতে হবে৷</translation>
 <translation id="5101042277149003567">সকল বুকমার্ক খুলুন</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">ফোল্ডারে দেখান</translation>
 <translation id="5171045022955879922">খুঁজুন বা URL লিখুন</translation>
 <translation id="5171343362375269016">অদলবদল করা মেমরি</translation>
-<translation id="5175870427301879686"><ph name="URL" /> স্থায়ীরূপে আপনার কম্পিউটারে ডেটা জমা করতে চায়৷</translation>
 <translation id="5177479852722101802">ক্যামেরা এবং মাইক্রোফোন অ্যাক্সেস অবরুদ্ধ করা চালিয়ে যান</translation>
 <translation id="5177526793333269655">থাম্বনেইল দর্শন</translation>
 <translation id="5177549709747445269">আপনি মোবাইল ডেটা ব্যবহার করছেন</translation>
@@ -2737,7 +2697,6 @@
 <translation id="529175790091471945">এই ডিভাইসটি ফর্ম্যাট করুন</translation>
 <translation id="5293170712604732402">সেটিংসকে তাদের মূল ডিফল্টে পুনঃস্থাপন করুন</translation>
 <translation id="5298219193514155779">থিম তৈরি করেছেন</translation>
-<translation id="5298363578196989456">এটি একটি শেয়ার্ড মডিউল না হওয়ার কারণে "<ph name="IMPORT_NAME" />" এক্সটেনশান আমদানি করতে অক্ষম।</translation>
 <translation id="5299109548848736476">ট্র্যাক করবেন না</translation>
 <translation id="5299682071747318445">আপনার সিঙ্ক পাসফ্রেজের মাধ্যমে সমস্ত ডেটা এনক্রিপটেড হয়েছে</translation>
 <translation id="5300589172476337783">দেখান</translation>
@@ -2765,7 +2724,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" এদের সাথে যুক্ত হতে চায়</translation>
 <translation id="5332624210073556029">সময় অঞ্চল:</translation>
 <translation id="5334142896108694079">স্ক্রিপ্ট ক্যাশে</translation>
-<translation id="533433379391851622">"<ph name="EXPECTED_VERSION" />" সংস্করণটি প্রত্যাশিত, কিন্তু সংস্করণটি হল "<ph name="NEW_ID" />"৷</translation>
 <translation id="5334844597069022743">উৎস দেখুন</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> এর <ph name="BEGIN_LINK" />Google ড্রাইভ<ph name="END_LINK" /> এ ব্যাক-আপ নেওয়া হচ্ছে</translation>
 <translation id="5337771866151525739">কোনো তৃতীয় পক্ষ দ্বারা ইনস্টল করা হয়েছে৷</translation>
@@ -2803,7 +2761,6 @@
 <translation id="5390100381392048184">সাউন্ডটি প্লে করার জন্য সাইটগুলিতে অনুমতি দিন</translation>
 <translation id="5390284375844109566">সূচিবদ্ধ ডেটাবেস</translation>
 <translation id="5390743329570580756">এর জন্য পাঠান</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> এ <ph name="PEPPER_PLUGIN_NAME" /> আপনার কম্পিউটার্ অ্যাক্সেস করতে চায়৷</translation>
 <translation id="5397794290049113714">আপনি</translation>
 <translation id="5398572795982417028">পৃষ্ঠা সীমার বাইরের উল্লেখ, সীমা হলো <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">বিজ্ঞাপন ব্লক করা হয়েছে</translation>
@@ -2865,7 +2822,6 @@
 <translation id="5485754497697573575">সকল ট্যাব পুনরুদ্ধার করুন</translation>
 <translation id="5486261815000869482">পাসওয়ার্ড নিশ্চিত করুন</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> এর সঙ্গে আপনার স্ক্রীন ভাগ করছে৷</translation>
-<translation id="5486326529110362464">ব্যক্তিগত কী-র জন্য ইনপুট মান থাকা আবশ্যক৷</translation>
 <translation id="5486561344817861625">ব্রাউজার আরম্ভ অনুকরণ করুন</translation>
 <translation id="5487521232677179737">ডেটা সাফ করুন</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' কপি করা হয়েছে</translation>
@@ -2897,7 +2853,7 @@
 <translation id="5525677322972469346">একটি নতুনত ত্ত্বাবধানে থাকা ব্যবহারকারী তৈরি করুন</translation>
 <translation id="5525695896049981561">হ্যাঁ, আমি এটা দেখেছি</translation>
 <translation id="5527463195266282916">এক্সটেনশান ডাউনগ্রেড করার প্রয়াস করা হয়েছে৷</translation>
-<translation id="5527474464531963247">আপনি হয়ত অন্য নেটওয়ার্ক নির্বাচন করতে পারেন৷</translation>
+<translation id="5527474464531963247">আপনি হয়তো অন্য নেটওয়ার্ক নির্বাচন করতে পারেন৷</translation>
 <translation id="5528368756083817449">বুকমার্ক পরিচালক</translation>
 <translation id="5532223876348815659">সার্বিক</translation>
 <translation id="5533001281916885985"><ph name="SITE_NAME" /> চায়</translation>
@@ -2948,7 +2904,6 @@
 <translation id="5600706100022181951">আপডেটটি ডাউনলোড করতে <ph name="UPDATE_SIZE_MB" /> MB মোবাইল ডেটা খরচ হবে। ডাউনলোড করতে চান?</translation>
 <translation id="5601503069213153581">পিন</translation>
 <translation id="5605623530403479164">অন্যান্য সার্চ ইঞ্জিন</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> এ থাকা <ph name="PEPPER_PLUGIN_NAME" /> আপনার মোবাইল ডিভাইস অ্যাক্সেস করতে চায়৷</translation>
 <translation id="5608580678041221894">কাটছাঁট করার এলাকা সমন্বয় করতে বা সরাতে নীচের কী’গুলি আলতো চাপুন</translation>
 <translation id="5609231933459083978">অ্যাপ্লিকেশানটি অবৈধ বলে মনে হচ্ছে৷</translation>
 <translation id="5610038042047936818">ক্যামেরা মোডে যান</translation>
@@ -3192,7 +3147,6 @@
 <translation id="5990386583461751448">অনূদিত</translation>
 <translation id="5991049340509704927">বিবর্ধিত করুন</translation>
 <translation id="5993332328670040093">আপনার ডেটা ব্যবহার আর পরিমাপ করা হবে না।</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> নিজেকে আপডেট রাখতে হয়ত সক্ষম নয়।</translation>
 <translation id="600424552813877586">অবৈধ অ্যাপ্লিকেশান৷</translation>
 <translation id="6005695835120147974">মিডিয়া রাউটার</translation>
 <translation id="6006484371116297560">ক্লাসিক</translation>
@@ -3217,6 +3171,7 @@
 <translation id="604001903249547235">ক্লাউড ব্যাকআপ</translation>
 <translation id="6040143037577758943">বন্ধ</translation>
 <translation id="6040852767465482106">নামহীন পরিচয়</translation>
+<translation id="6041155700700864984">সম্পূর্ণ স্ক্রীন থেকে বেরিয়ে আসুন</translation>
 <translation id="604124094241169006">স্বয়ংক্রিয়</translation>
 <translation id="6042169520002885235">প্রিন্টার প্রস্তুতকারক এবং মডেল বেছে নিন</translation>
 <translation id="6042308850641462728">আরও</translation>
@@ -3233,7 +3188,6 @@
 <translation id="6056710589053485679">সাধারণ পুনঃলোড</translation>
 <translation id="6059652578941944813">শংসাপত্র শ্রেণীক্রম</translation>
 <translation id="6059925163896151826">USB ডিভাইসগুলি</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ক্র্যাশ করে গেছে।</translation>
 <translation id="6064217302520318294">স্ক্রীন লক</translation>
 <translation id="6065289257230303064">শংসাপত্র বিষয় নির্দেশিকা গুণাবলী</translation>
 <translation id="6068338049763724728">দূর থেকে যোগ করা সক্ষম করুন</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">আপনাকে আপনার স্ক্রীন রেজোলিউশন পরিবর্তন করতে অনুমতি দেয়</translation>
 <translation id="6238923052227198598">লেটেস্ট নোটটি লক স্ক্রিনে রাখুন</translation>
 <translation id="6239558157302047471">আবার লোড করার &amp;ফ্রেম</translation>
-<translation id="624022915548992686">পৃষ্ঠা থেকে প্রস্থান করুন</translation>
 <translation id="6241530762627360640">আপনার সিস্টেমের সঙ্গে যুক্ত করা ব্লুটুথ ডিভাইসগুলির সম্পর্কে তথ্য অ্যাক্সেস করুন এবং কাছাকাছি  ব্লুটুথ ডিভাইসগুলি খুঁজুন।</translation>
 <translation id="6243774244933267674">সার্ভার অনুপলব্ধ</translation>
 <translation id="6246413617632217567">তত্বাবধানে থাকা ব্যবহারকারী আমদানি করা যায়নি৷ দয়া করে আপনার হার্ড ডিস্কের সঞ্চয়স্থান ও অনুমতি পরীক্ষা করুন এবং আবার চেষ্টা করুন৷</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">অজানা নেটওয়ার্ক ত্রুটি</translation>
 <translation id="6313641880021325787">VR থেকে বেরিয়ে যান</translation>
 <translation id="6314819609899340042">আপনি সফলভাবে এই <ph name="IDS_SHORT_PRODUCT_NAME" /> ডিভাইসে ডিবাগিং বৈশিষ্ট্যগুলি সক্ষম করেছেন৷</translation>
-<translation id="6315343732431721770"><ph name="URL" /> অন্তর্ভুক্ত করতে আপনার শুরুর পৃষ্ঠা পরিবর্তন করা হয়েছে। যেসব অ্যাপ্লিকেশান আপনার শুরুর পৃষ্ঠার পরিবর্তন ঘটায় সেগুলিকে অক্ষম করতে ‘পুনরুদ্ধার করুন’ এ ক্লিক করুন।</translation>
 <translation id="6315493146179903667">সমস্ত সামনে আনুন</translation>
 <translation id="6316806695097060329">আপনার কাছে ওয়েব ব্যবহারকে সবদিক থেকে উন্নত করে তুলতে সাহায্য করার জন্য এই <ph name="SHORT_PRODUCT_NAME" /> ডিজাইন করা হয়েছে৷</translation>
 <translation id="6317318380444133405">আর সমর্থিত নয়৷</translation>
 <translation id="6317369057005134371">অ্যাপ্লিকেশন উইন্ডোর জন্য অপেক্ষা করা হচ্ছে...</translation>
 <translation id="6318407754858604988">ডাউনলোড শুরু হয়েছে</translation>
-<translation id="6322279351188361895">ব্যক্তিগত কী-টি পড়তে ব্যর্থ৷</translation>
 <translation id="6325191661371220117">স্বয়ংক্রিয় লঞ্চ অক্ষম করুন</translation>
 <translation id="6326175484149238433">Chrome থেকে সরান</translation>
 <translation id="6326855256003666642">সক্রিয়-রাখার সংখ্যা</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">কী সিঙ্ক করতে চান বেছে নিন</translation>
 <translation id="6333064448949140209">ফাইল ত্রুটিমুক্ত করার জন্য Google এ পাঠানো হবে</translation>
 <translation id="6333834492048057036">অনুসন্ধানের জন্য ঠিকানা দণ্ডের উপর নজর রাখুন</translation>
-<translation id="6336907568130557310">এক্সপোর্ট করা ফাইল যারা দেখতে পাবেন তারা আপনার পাসওয়ার্ডগুলিও দেখতে পাবেন। ফাইলটি কারও সাথে শেয়ার করবেন না এবং ইমপোর্ট করার পরে সেটি মুছে দেবেন।</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> এর জন্য একটি নতুন প্রোফাইল তৈরি করুন</translation>
 <translation id="6340017061976355871">সার্ভারে সংযোগ করা যায়নি। অনুগ্রহ করে আপনার নেটওয়ার্ক সংযোগ যাচাই করে আবার চেষ্টা করুন। যদি সমস্যাটি চলতে থাকে তাহলে আপনার Chromebook রিস্টার্ট করুন।</translation>
 <translation id="6340071272923955280">ইন্টারনেট প্রিন্ট প্রোটোকল (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">সাইটগুলি কুকি ডেটা সংরক্ষণ করতে ও পড়তে পারে</translation>
 <translation id="6388771388956873507">আপনার ডিভাইসে আঙ্গুলের ছাপ নেওয়ার সেন্সরটি খুঁজে নিয়ে সেটিকে আপনার আঙুল দিয়ে স্পর্শ করুন</translation>
 <translation id="6390799748543157332">এই উইন্ডোতে আপনি যে পৃষ্ঠাগুলি দেখেন তা ব্রাউজারের ইতিহাসে উপস্থিত হবে না, এবং আপনি সমস্ত খোলা অতিথি উইন্ডো বন্ধ করার পরে এগুলি কম্পিউটারটিতে কুকিজের মতো অন্যান্য ট্রেসগুলিও রেখে যাবে না৷ যদিও আপনার ডাউনলোড করা যেকোনো ফাইল সংরক্ষিত করা হবে৷</translation>
-<translation id="6391538222494443604">ইনপুট নির্দেশিকা বন্ধ করা আবশ্যক৷</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />সিস্টেমের তথ্য<ph name="END_LINK1" /> এবং <ph name="BEGIN_LINK2" />মেট্রিক্স<ph name="END_LINK2" /> পাঠান</translation>
 <translation id="6397363302884558537">কথা বলা বন্ধ করুন</translation>
 <translation id="6397592254427394018">ছ্দ্মবেশী উইন্ডোতে &amp;সকল বুকমার্ক খুলুন</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">JavaScript ব্লক করা পরিচালনা করুন...</translation>
 <translation id="6459488832681039634">খোঁজার জন্য নির্বাচন ব্যবহার করুন</translation>
 <translation id="6460601847208524483">পরবর্তী খুঁজুন</translation>
-<translation id="6462080265650314920">অ্যাপ্লিকেশনগুলি "<ph name="CONTENT_TYPE" />" সামগ্রী-প্রকার সহ সংরক্ষিত হওয়া উচিত৷</translation>
 <translation id="6462082050341971451">আপনি কি এখনও সেখানে আছেন?</translation>
 <translation id="6463795194797719782">&amp;সম্পাদনা</translation>
 <translation id="6466988389784393586">&amp;সকল বুকমার্ক খুলুন</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">আপনি কি চান যে Google এই পৃষ্ঠাটি <ph name="SOURCE_LANGUAGE" /> থেকে <ph name="TARGET_LANGUAGE" /> এ অনুবাদ করুক?</translation>
 <translation id="6675665718701918026">পয়েন্টিং ডিভাইস সংযুক্ত হয়েছে</translation>
-<translation id="6677037229676347494">প্রত্যাশিত ID "<ph name="EXPECTED_ID" />", কিন্তু ID হল "<ph name="NEW_ID" />"৷</translation>
 <translation id="6678717876183468697">কুয়েরি URL</translation>
 <translation id="6680028776254050810">ব্যবহারকারী স্যুইচ করুন</translation>
 <translation id="6680442031740878064">খালি জায়গা: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">আপনি <ph name="BEGIN_LINK" />সেটিংস<ph name="END_LINK" /> এ গিয়ে যেকোনও সময় Google এর সংগ্রহ করা তথ্য কাস্টমাইজ করতে পারবেন।</translation>
 <translation id="6904344821472985372">ফাইল অ্যাক্সেস প্রত্যাহার করুন</translation>
 <translation id="6904655473976120856">বেরিয়ে আসতে অ্যাপ বোতাম টিপুন করুন</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> আপনার স্ক্রীন শেয়ার করতে চায়।</translation>
-<translation id="6909461304779452601">এই ওয়েবসাইট থেকে অ্যাপ্লিকেশন, এক্সটেনশান ও ব্যবহারকারী স্ক্রিপ্ট জোড়া যাবে না৷</translation>
 <translation id="6910211073230771657">মোছা হয়েছে</translation>
 <translation id="691024665142758461">একাধিক ফাইল ডাউনলোড করুন</translation>
 <translation id="6911324888870229398">নেটওয়ার্ক সংযোগ কেটে গেছে। অনুগ্রহ করে আপনার সংযোগ যাচাই করুন অথবা অন্য ওয়াই-ফাই নেটওয়ার্ক ব্যবহার করে দেখুন।</translation>
@@ -4100,7 +4045,6 @@
 <translation id="747114903913869239">ত্রুটি: এক্সটেনশানের অর্থোদ্ধার করতে ব্যর্থ</translation>
 <translation id="7473891865547856676">না থাক</translation>
 <translation id="747459581954555080">সকল পুনরুদ্ধার করুন</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> এ ত্রুটি হয়েছে।</translation>
 <translation id="7475671414023905704">Netscape পাসওয়ার্ড URL হারিয়েছে</translation>
 <translation id="7476454130948140105">চার্জ খুব কম (<ph name="BATTERY_PERCENT" />%), আপডেট করা যাবে না</translation>
 <translation id="7477347901712410606">যদি আপনি আপনার পাসফ্রেজ ভুলে গিয়ে থাকেন, <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />-এর মাধ্যেমে সিঙ্ক করা থামান এবং আবার সেট করুন৷</translation>
@@ -4123,7 +4067,7 @@
 <translation id="749028671485790643">ব্যক্তি <ph name="VALUE" /></translation>
 <translation id="7490813197707563893">MAC ঠিকানা</translation>
 <translation id="7491962110804786152">ট্যাব</translation>
-<translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> এক্সটেনশান হয়ত ব্যক্তিগত ডেটা যেমন পাসওয়ার্ড ও ক্রেডিট কার্ড নম্বরগুলি সহ আপনি যা টাইপ করেন সেসব পাঠ্য সংগ্রহ করতে পারে। আপনি কি এই এক্সটেনশান ব্যবহার করতে চান?</translation>
+<translation id="7493386493263658176"><ph name="EXTENSION_NAME" /> এক্সটেনশান হয়তো ব্যক্তিগত ডেটা যেমন পাসওয়ার্ড ও ক্রেডিট কার্ড নম্বরগুলি সহ আপনি যা টাইপ করেন সেসব পাঠ্য সংগ্রহ করতে পারে। আপনি কি এই এক্সটেনশান ব্যবহার করতে চান?</translation>
 <translation id="7494065396242762445">Windows সেটিংস খুলুন</translation>
 <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation>
 <translation id="7495778526395737099">আপনার পুরানো পাসওয়ার্ড ভুলে গেছেন?</translation>
@@ -4137,7 +4081,6 @@
 <translation id="7507930499305566459">স্থিতি প্রতিক্রিয়া শংসাপত্র</translation>
 <translation id="7508545000531937079">স্লাইডশো</translation>
 <translation id="7513029293694390567">সঞ্চিত শংসাপত্রগুলি ব্যবহার করে ওয়েবসাইটগুলিতে স্বয়ংক্রিয়ভাবে প্রবেশ করুন। এটি অক্ষম করা থাকলে, প্রতিবারই একটি ওয়েবসাইটে প্রবেশ করার সময় আপনাকে যাচাইকরণের জন্য বলা হবে।</translation>
-<translation id="7515670329462166359">সুরক্ষিত কন্টেন্ট প্লে করতে <ph name="URL" /> আপনার ডিভাইসকে স্বতন্ত্র ভাবে সনাক্ত করতে চায়।</translation>
 <translation id="7517569744831774757">সেটিংসকে তাদের মূল ডিফল্টে পুনঃস্থাপন করুন।</translation>
 <translation id="7517786267097410259">একটি পাসওয়ার্ড তৈরি করুন -</translation>
 <translation id="7518150891539970662">WebRTC লগগুলি (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4167,7 +4110,6 @@
     থেকে অ্যাকাউন্ট প্রস্থান করতে পারেন এবং আবার একটি তত্ত্বাবধানে থাকা ব্যবহারকারী তৈরি করার চেষ্টা করুন৷</translation>
 <translation id="756445078718366910">ব্রাউজার উইন্ডো খুলুন</translation>
 <translation id="7564847347806291057">সমাপ্তি প্রক্রিয়া</translation>
-<translation id="7565291891798266313">আপনার সার্চ ইঞ্জিন <ph name="URL" /> এ পরিবর্তন করা হয়েছে। যেসব অ্যাপ্লিকেশান আপনার সার্চ ইঞ্জিনের পরিবর্তন ঘটায় সেগুলিকে অক্ষম করতে ‘পুনরুদ্ধার করুন’ এ ক্লিক করুন।</translation>
 <translation id="7566118625369982896">Play অ্যাপের লিঙ্ক পরিচালনা করুন</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome ডেটা সাফ হয়েছে</translation>
@@ -4176,7 +4118,6 @@
 <translation id="7573172247376861652">ব্যাটারি চার্জ</translation>
 <translation id="7576032389798113292">৬x৪</translation>
 <translation id="7576690715254076113">ক্রমসজ্জিত</translation>
-<translation id="7577815336900970562">ওয়াই-ফাই অথবা সেলুলার নেটওয়ার্ক ব্যবহার করে লোকেশন নির্ধারণ করুন</translation>
 <translation id="7579149537961810247">সাইটগুলি মিউট করুন</translation>
 <translation id="7580671184200851182">সব স্পিকারে একই অডিও বাজান (মনো অডিও)</translation>
 <translation id="7581462281756524039">একটি পরিষ্কারের সরঞ্জাম</translation>
@@ -4283,6 +4224,7 @@
 <translation id="7773726648746946405">সেশন সঞ্চয়স্থান</translation>
 <translation id="7781335840981796660">সব ব্যবহারকারী অ্যাকাউন্ট ও স্থানীয় ডেটা সরানো হবে।</translation>
 <translation id="7782102568078991263">Google থেকে আর কোনো পরামর্শ নেই</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> লোড করা যায়নি</translation>
 <translation id="7784067724422331729">আপনার কম্পিউটারের সুরক্ষা সেটিংস এই ফাইলটি অবরুদ্ধ করেছে৷</translation>
 <translation id="7786207843293321886">অতিথি থেকে প্রস্থান করুন</translation>
 <translation id="7786889348652477777">&amp;অ্যাপ্লিকেশান আবার লোড করুন</translation>
@@ -4441,10 +4383,9 @@
 নিজের কী ফাইল কোন নিরাপদ স্থানে রাখুন৷ আপনাকে নিজের এক্সটেনশানের নতুন সংস্করণ তৈরি করতে হবে৷</translation>
 <translation id="799923393800005025">দেখতে পারবেন</translation>
 <translation id="8000066093800657092">কোনও নেটওয়ার্ক নেই</translation>
-<translation id="8001504501378762252">একটি সাইট হয়ত আপনার পাসওয়ার্ড চুরি করেছে</translation>
+<translation id="8001504501378762252">একটি সাইট হয়তো আপনার পাসওয়ার্ড চুরি করেছে</translation>
 <translation id="8004582292198964060">ব্রাউজার</translation>
 <translation id="8008356846765065031">ইন্টারনেট সংযোগ বিচ্ছিন্ন হয়েছে৷ দয়া করে আপনার ইন্টারনেট সংযোগ পরীক্ষা করুন৷</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> লোড করা যায়নি।</translation>
 <translation id="8008818777654712271">বিপজ্জনক অ্যাপ্লিকেশান ও সাইটগুলি সনাক্ত করতে Google এর কাছে কিছু সিস্টেম তথ্য ও পৃষ্ঠার সামগ্রী স্বয়ংক্রিয়ভাবে পাঠান।</translation>
 <translation id="8012382203418782830">এই পৃষ্ঠাটি অনুবাদ করা হয়েছে৷</translation>
 <translation id="8014154204619229810">আপডেটার বর্তমানে চলমান রয়েছে। আবার চেক করতে মিনিটখানেকের মধ্যে রিফ্রেশ করুন।</translation>
@@ -4561,7 +4502,6 @@
 <translation id="8191230140820435481">আপনার অ্যাপ্লিকেশন, এক্সটেনশন, এবং থিম পরিচালনা করুন</translation>
 <translation id="8191453843330043793">V8 প্রক্সী সমাধানকারী</translation>
 <translation id="8195027750202970175">ডিস্কের মাপ</translation>
-<translation id="8195739004487400241">আপনার হোমপেজ <ph name="URL" /> এ পরিবর্তন করা হয়েছে। যেসব অ্যাপ্লিকেশান আপনার হোমপেজের পরিবর্তন ঘটায় সেগুলিকে অক্ষম করতে ‘পুনরুদ্ধার করুন’ এ ক্লিক করুন।</translation>
 <translation id="8199300056570174101">নেটওয়ার্ক (পরিষেবা) এবং ডিভাইসের বৈশিষ্ট্য</translation>
 <translation id="8200772114523450471">পুনঃসূচনা</translation>
 <translation id="8202160505685531999">অাপনার <ph name="DEVICE_TYPE" /> প্রোফাইল আপডেট করার জন্য দয়া করে পুনরায় আপনার পাসওয়ার্ড লিখুন।</translation>
@@ -4602,10 +4542,9 @@
 <translation id="8259239505248583312">চলুন যাই</translation>
 <translation id="8260126382462817229">আবার সাইন ইন করার চেষ্টা করুন</translation>
 <translation id="8260864402787962391">মাউস</translation>
-<translation id="8261378640211443080">এই এক্সটেনশানটি <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাভুক্ত নেই এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
+<translation id="8261378640211443080">এই এক্সটেনশানটি <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাভুক্ত নেই এবং হয়তো আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> এর জন্য অ্যাকাউন্ট যোগ করুন</translation>
 <translation id="8261506727792406068">মুছুন</translation>
-<translation id="826246685091802258">এই বিল্ডে <ph name="BAD_FLAG" /> এর সুবিধা নেই।</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />আপনার মাউস কার্সার অক্ষম করেছে৷</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" এর দ্বারা চালিত পূর্ণ স্ক্রিন৷</translation>
 <translation id="8270242299912238708">PDF দস্তাবেজগুলি</translation>
@@ -4707,6 +4646,7 @@
 <translation id="8454288007744638700">অথবা, একটি নতুন নেটওয়ার্ক বেছে নিন:</translation>
 <translation id="845627346958584683">মেয়াদ শেষ হওয়ার সময়</translation>
 <translation id="8456681095658380701">অবৈধ নাম</translation>
+<translation id="8457451314607652708">বুকমার্কগুলি আমদানি করুন</translation>
 <translation id="8460336040822756677">আপনি <ph name="DEVICE_TYPE" /> এর জন্য Smart Lock বন্ধ করলে, আপনি আপনার ফোন ব্যবহার করে Chrome ডিভাইসগুলি আনলক করতে পারবেন না। আপনাকে আপনার পাসওয়ার্ড লিখতে হবে।</translation>
 <translation id="8461329675984532579">হোম পরিষেবা প্রদানকারীর নাম</translation>
 <translation id="84613761564611563">নেটওয়ার্ক কনফিগার UI এর অনুরোধ করা হয়েছে, দয়া করে অপেক্ষা করুন...</translation>
@@ -4738,7 +4678,6 @@
 <translation id="850875081535031620">কোনও ক্ষতিকর সফ্টওয়্যার খুঁজে পাওয়া যায়নি</translation>
 <translation id="8512476990829870887">প্রক্রিয়া সমাপ্ত করুন</translation>
 <translation id="851263357009351303">ছবিগুলি দেখানোর জন্য সর্বদা <ph name="HOST" />-কে অনুমতি দিন </translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" এই ট্যাবটিকে ডিবাগ করছে৷</translation>
 <translation id="8521475323816527629">আপনার অ্যাপগুলি দ্রুত চালু করুন</translation>
 <translation id="8523493869875972733">পরিবর্তনগুলি সেভ করুন</translation>
 <translation id="8523849605371521713">নীতির মাধ্যমে যোগ করা হয়েছে</translation>
@@ -4794,7 +4733,6 @@
 <translation id="8620765578342452535">নেটওয়ার্ক সংযোগ কনফিগার করুন</translation>
 <translation id="8620790565535071193">স্ক্যান করা যায়নি</translation>
 <translation id="8622877356447980900">আপনি কি এই পৃষ্ঠাটি অনুবাদ করতে চান?</translation>
-<translation id="8623004009673949077">'Kiosk_only' ম্যানিফেস্ট অ্যাট্রিবিউটের সাথে অ্যাপ্লিকেশনকে অবশ্যই ChromeOS কিয়স্ক মোডে ইনস্টল করতে হবে।</translation>
 <translation id="8624205858755890468">আপনাকে সম্পর্কিত তথ্য, অ্যাপ এবং অ্যাকশন দেখাতে সহায়ককে সক্ষম করে।</translation>
 <translation id="862542460444371744">&amp;এক্সটেনশনস</translation>
 <translation id="8627151598708688654">উৎস বেছে নিন</translation>
@@ -4943,7 +4881,6 @@
 <translation id="882204272221080310">নিরাপত্তা আরও সুরক্ষার জন্য ফার্মওয়্যার আপডেট করুন।</translation>
 <translation id="8823514049557262177">লিঙ্ক পাঠ্য কপি করুন</translation>
 <translation id="8824701697284169214">&amp;পৃষ্ঠা যোগ করুন...</translation>
-<translation id="8827850355924932817">ওয়াই-ফাই নেটওয়ার্ক ব্যবহার করে লোকেশন নির্ধারণ করুন</translation>
 <translation id="8828933418460119530">DNS নাম</translation>
 <translation id="8830796635868321089">বর্তমান প্রক্সি সেটিংস ব্যবহার করে আপডেট চেক ব্যর্থ হয়েছে৷ দয়া করে আপনার <ph name="PROXY_SETTINGS_LINK_START" />প্রক্সি সেটিংস<ph name="PROXY_SETTINGS_LINK_END" /> অ্যাডজাস্ট করুন৷</translation>
 <translation id="8834039744648160717">নেটওয়ার্ক কনফিগারেশন <ph name="USER_EMAIL" /> দ্বারা নিয়ন্ত্রিত।</translation>
@@ -4975,9 +4912,7 @@
 <translation id="8879284080359814990">ট্যাব রূপে &amp;দেখান</translation>
 <translation id="8884961208881553398">নতুন পরিষেবাসমূহ যোগ করুন</translation>
 <translation id="8885197664446363138">Smart Lock অনুপলব্ধ</translation>
-<translation id="8885905466771744233">সুনির্দিষ্ট করা এক্সটেনশানটির ইতিমধ্যেই একটি ব্যক্তিগত কী আছে৷ এই কী-টি পুনঃব্যবহার করুন অথবা এটিকে প্রথমে মুছে দিন৷</translation>
 <translation id="8888432776533519951">রঙ:</translation>
-<translation id="8892992092192084762">ইনস্টল থাকা থিম "<ph name="THEME_NAME" />"৷</translation>
 <translation id="8893928184421379330">দুঃখিত, <ph name="DEVICE_LABEL" />ডিভাইসটি স্বীকৃত হতে পারেনি৷</translation>
 <translation id="8895454554629927345">বুকমার্ক তালিকা</translation>
 <translation id="88986195241502842">পৃষ্ঠায় নীচের দিকে যান</translation>
@@ -4986,13 +4921,12 @@
 <translation id="8899285681604219177">অসমর্থিত এক্সটেনশানগুলি নিষ্ক্রিয় করা আছে</translation>
 <translation id="8899551033019439140">প্রিন্টার অনুসন্ধান করছে...</translation>
 <translation id="8899851313684471736">নতুন &amp;উইন্ডোতে লিঙ্ক খুলুন</translation>
-<translation id="8902667442496790482">শোনার জন্য বেছে নেওয়ার সেটিংস খুলুন</translation>
+<translation id="8902667442496790482">'বাছুন ও শুনুন'-এর সেটিংস খুলুন</translation>
 <translation id="8903921497873541725">জুম বাড়ান</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">সতর্কতা: আপনি এই কম্পিউটারে --স্ক্রিপ্টের-প্রয়োজনীয়-অ্যাকশন ফ্ল্যাগ সক্ষম করেছেন, যা এই এক্সটেনশানটির কার্যক্ষমতাকে সীমিত করে৷ যদিও, অন্য ডিভাইসগুলি এই পতাকা সমর্থন নাও করতে পারে বা এটি হয়তো সক্ষম করা নাও থাকতে পারে৷ এছাড়াও সেই ডিভাইসগুলিতে, এই এক্সটেনশানটি এগুলি করতে পারে:</translation>
 <translation id="8910146161325739742">আপনার স্ক্রীন শেয়ার করুন</translation>
 <translation id="8910222113987937043">আপনার বুকমার্ক, ইতিহাস, পাসওয়ার্ড এবং অন্যান্য সেটিংসের পরিবর্তনগুলি এখন আর আপনার Google অ্যাকাউন্টের সাথে সিঙ্ক করা হবে না। তবে, আপনার বিদ্যমান ডেটা আপনার Google অ্যাকাউন্টে সঞ্চিত থাকবে এবং <ph name="BEGIN_LINK" />Google ড্যাশবোর্ড<ph name="END_LINK" /> থেকে পরিচালনা করা যাবে।</translation>
-<translation id="8911079125461595075">Google <ph name="EXTENSION_NAME" /> কে ক্ষতিকারক হিসাবে পতাকাঙ্কিত করেছে এবং ইনস্টলেশনকে আটকে দিয়েছে৷</translation>
 <translation id="8912793549644936705">বিস্তার</translation>
 <translation id="8915370057835397490">লোড করার প্রস্তাব</translation>
 <translation id="8916476537757519021">ছদ্মবেশী সাবফ্রেম: <ph name="SUBFRAME_SITE" /></translation>
@@ -5098,7 +5032,6 @@
 <translation id="9074739597929991885">ব্লুটুথ</translation>
 <translation id="9074836595010225693">USB মাউস সংযুক্ত হয়েছে</translation>
 <translation id="9076523132036239772">দুঃখিত, আপনার ইমেল বা পাসওয়ার্ড যাচাই করা হয়নি৷ প্রথমে একটি নেটওয়ার্কের সঙ্গে সংযোগ করার চেষ্টা করুন৷</translation>
-<translation id="907841381057066561">প্যাকেজিংয়ের সময় অস্থায়ী জিপ ফাইল তৈরি করতে ব্যর্থ৷</translation>
 <translation id="9084064520949870008">উইন্ডো হিসাবে খুলুন</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> কে এন্টারপ্রাইজ নীতি দ্বারা অবরুদ্ধ করা হয়েছে</translation>
 <translation id="9088917181875854783">দয়া করে "<ph name="DEVICE_NAME" />"-এ দেখানো এই পাসকীটি নিশ্চিত করুন:</translation>
@@ -5189,11 +5122,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">পাসফ্রেজ প্রবেশ করান</translation>
 <translation id="939736085109172342">নতুন ফোল্ডার</translation>
-<translation id="941543339607623937">অবৈধ ব্যক্তিগত কী৷</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> একটি Chrome ট্যাব ও অডিও শেয়ার করছে।</translation>
 <translation id="942954117721265519">এই ডিরেক্টরিতে কোনো ছবি নেই৷</translation>
 <translation id="945522503751344254">প্রতিক্রিয়া পাঠান</translation>
-<translation id="951981865514037445"><ph name="URL" /> আপনার ডিভাইসের অবস্থান ব্যবহার করতে চায়৷</translation>
 <translation id="952992212772159698">সক্রিয় নেই</translation>
 <translation id="9580706199804957">Google পরিষেবাগুলির সাথে সংযুক্ত করা যায়নি</translation>
 <translation id="958515377357646513">এগিয়ে যেতে টাচ করুন।</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index b51a8fd..70c3a42 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Només encriptar</translation>
 <translation id="1039337018183941703">Fitxer no vàlid o malmès</translation>
 <translation id="1042174272890264476">L'ordinador també incorpora la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" />. La biblioteca RLZ assigna una etiqueta no única i sense identificació personal per mesurar les cerques i l'ús de <ph name="SHORT_PRODUCT_NAME" /> derivats d'una campanya promocional concreta. De vegades, aquestes etiquetes apareixen a les consultes de la Cerca de Google a <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> vol emmagatzemar una gran quantitat de dades al vostre dispositiu permanentment.</translation>
 <translation id="1046059554679513793">Aquest nom ja s'està utilitzant.</translation>
 <translation id="1047431265488717055">Copia el te&amp;xt de l'enllaç</translation>
 <translation id="1047726139967079566">Afegeix aquesta pàgina a les adreces d'interès...</translation>
@@ -119,8 +118,7 @@
 <translation id="117624967391683467">S'està copiant <ph name="FILE_NAME" />...</translation>
 <translation id="1177113976278858832">Vols restaurar el motor de cerca predeterminat?</translation>
 <translation id="1177863135347784049">Personalitzat</translation>
-<translation id="1178581264944972037">Pausa</translation>
-<translation id="1179803038870941185"><ph name="URL" /> vol obtenir un control total dels vostres dispositius MIDI.</translation>
+<translation id="1178581264944972037">Posa en pausa</translation>
 <translation id="1181037720776840403">Suprimeix</translation>
 <translation id="1183237619868651138">No es pot instal·lar <ph name="EXTERNAL_CRX_FILE" /> a la memòria cau local.</translation>
 <translation id="1185924365081634987">També podeu provar de <ph name="GUEST_SIGNIN_LINK_START" />navegar com a convidat<ph name="GUEST_SIGNIN_LINK_END" /> per corregir aquest error de xarxa.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Accés a un fitxer desat a l'ordinador}other{Accés a # fitxers desats a l'ordinador}}</translation>
 <translation id="1195076408729068893">Per iniciar Smart Lock, introdueix la contrasenya. La propera vegada, podràs fer servir el telèfon per desbloquejar <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Error desconegut.</translation>
-<translation id="1196338895211115272">No s'ha pogut exportar la clau privada.</translation>
 <translation id="119738088725604856">Finestra de captura de pantalla</translation>
 <translation id="1197979282329025000">S'ha produït un error en recuperar la capacitat de la impressora <ph name="PRINTER_NAME" />. Aquesta impressora no s'ha pogut registrar a <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Comencem</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">L'administrador us recomana un valor específic per a aquesta configuració.</translation>
 <translation id="1225177025209879837">S'està processant la sol·licitud...</translation>
 <translation id="1225211345201532184">Objecte de prestatge 5</translation>
-<translation id="1225404570112441414">Afegeix aquest lloc al vostre prestatge per utilitzar-lo en qualsevol moment.</translation>
 <translation id="1227507814927581609">Ha fallat l'autenticació mentre es connectava a "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menú del sistema</translation>
 <translation id="1232569758102978740">Sense títol</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Fitxer HTML d'adreces d'interès</translation>
 <translation id="1303671224831497365">No s'ha trobat cap dispositiu Bluetooth</translation>
 <translation id="1306606229401759371">Canvia la configuració</translation>
-<translation id="1307398858972670978">Utilitza <ph name="SAVED_PASSWORDS_LINK" /> per accedir a les teves contrasenyes des de qualsevol dispositiu</translation>
 <translation id="1307559529304613120">El sistema no ha pogut emmagatzemar un testimoni d'accés a l'API de llarg termini per a aquest dispositiu.</translation>
 <translation id="1313405956111467313">Configuració automàtica del servidor intermediari</translation>
 <translation id="131364520783682672">Bloq Maj</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Cerca</translation>
 <translation id="1386387014181100145">Hola.</translation>
 <translation id="138784436342154190">Vols restaurar la pàgina d'inici predeterminada?</translation>
-<translation id="1389297115360905376">Només es pot afegir des de <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Obre com a pestanya normal</translation>
-<translation id="1391807639023934267">S'ha carregat una pàgina més ràpidament.</translation>
 <translation id="1393283411312835250">Sol i núvols</translation>
 <translation id="1395262318152388157">Control lliscant de cerca</translation>
 <translation id="1395730723686586365">S'ha iniciat l'actualitzador.</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Esteu a punt de passar a una versió inestable de <ph name="PRODUCT_NAME" /> que conté funcions en curs. Es produiran bloqueigs i errors inesperats. Continueu amb precaució.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (amb identificador d'extensió "<ph name="EXTENSION_ID" />") no es permet en aquest tipus de sessions.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Error. No s'ha pogut generar la clau privada RSA aleatòria.</translation>
 <translation id="1420834118113404499">Llicències de contingut multimèdia</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> per permetre la vinculació</translation>
 <translation id="1426410128494586442">Sí</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opia l'adreça de l'àudio</translation>
 <translation id="1465827627707997754">Tall de pizza</translation>
 <translation id="1467432559032391204">A l'esquerra</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vol emmagatzemar dades al vostre dispositiu permanentment.</translation>
-<translation id="1470719357688513792">La nova configuració de galetes es farà efectiva quan torneu a carregar la pàgina.</translation>
 <translation id="1470811252759861213">Per accedir a les extensions des de tots els ordinadors, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" no s'ha penjat. No hi ha prou espai lliure al vostre compte de Google Drive.</translation>
 <translation id="1475502736924165259">Tens certificats arxivats que no s'ajusten a cap de les altres categories</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Cursor del ratolí gran</translation>
 <translation id="1543284117603151572">Importades d'Edge</translation>
 <translation id="1545177026077493356">Mode quiosc automàtic</translation>
+<translation id="1545775234664667895">S'ha instal·lat el tema "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL amb %s en el lloc de la consulta</translation>
 <translation id="1546280085599573572">Aquesta extensió ha canviat la pàgina que es mostra quan feu clic al botó Pàgina d'inici.</translation>
 <translation id="1547572086206517271">Cal actualitzar la pàgina</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />consultar<ph name="END_BOLD" /> els llocs web que l'usuari supervisat ha visitat,
     <ph name="BEGIN_BOLD" />gestionar<ph name="END_BOLD" /> altres opcions de configuració.</translation>
 <translation id="1648943974594387137">Les dades d'inici de sessió no estan actualitzades</translation>
-<translation id="1649641629389702691">&lt;Hi ha <ph name="LINE_COUNT" /> línies que no es mostren&gt;</translation>
 <translation id="1650371550981945235">Mostra les opcions d'entrada</translation>
 <translation id="1650709179466243265">Afegeix www. i .com i obre l'adreça</translation>
 <translation id="1651008383952180276">Has d'escriure la mateixa frase de contrasenya dues vegades</translation>
-<translation id="1652972346408808053">S'ha desat la contrasenya. Utilitza <ph name="SAVED_PASSWORDS_LINK" /> per accedir a les teves contrasenyes des de qualsevol dispositiu.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Afegiu la impressora a Google Cloud Print per poder imprimir des de qualsevol lloc.}other{Afegiu # impressores a Google Cloud Print per poder imprimir des de qualsevol lloc.}}</translation>
 <translation id="1657406563541664238">Ajuda'ns a millorar <ph name="PRODUCT_NAME" /> enviant estadístiques d'ús i informes d'error a Google automàticament.</translation>
 <translation id="1658424621194652532">Aquesta pàgina té accés al micròfon.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continua bloquejant les galetes</translation>
 <translation id="204622017488417136">Es restablirà la versió de Chrome que hi havia instal·lada anteriorment al dispositiu. S'eliminaran tots els comptes d'usuari i les dades desades al dispositiu. Aquesta acció no es pot desfer.</translation>
 <translation id="2048182445208425546">Accedir al trànsit de xarxa</translation>
-<translation id="2049137146490122801">El vostre administrador ha desactivat l'accés als fitxers locals del vostre equip.</translation>
 <translation id="204914487372604757">Crea la drecera</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2053312383184521053">Dades de l'estat d'inactivitat</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">No carregat</translation>
 <translation id="2107494551712864447">Afegeix una empremta digital</translation>
-<translation id="2111843886872897694">Les aplicacions s'han de distribuir des de l'amfitrió que afecten.</translation>
 <translation id="2112877397266219826">Activeu el comandament tàctil per configurar-me</translation>
 <translation id="21133533946938348">Fixa la pestanya</translation>
 <translation id="2113479184312716848">Obre un &amp;fitxer...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Indica'ns el problema</translation>
 <translation id="2229161054156947610">Queda més d'una hora</translation>
 <translation id="222931766245975952">Fitxer truncat</translation>
-<translation id="222949136907494149"><ph name="URL" /> vol fer servir la ubicació de l'ordinador.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">No es pot crear la carpeta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Fes clic per veure el doodle del dia</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Bloqueja sempre l'accés al micròfon</translation>
 <translation id="2367972762794486313">Mostra les aplicacions</translation>
 <translation id="2371076942591664043">Obre quan &amp;acabi</translation>
-<translation id="237336063998926520">Utilitza la teva adreça IP per determinar la ubicació</translation>
 <translation id="2377319039870049694">Canvia a la visualització de llista</translation>
 <translation id="2377667304966270281">Errors greus</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> fitxers seleccionats</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> vol copiar fitxers desats a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Identificador de clau d'entitat emissora de certificats</translation>
 <translation id="2462752602710430187">S'ha afegit <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importa les adreces d'interès</translation>
 <translation id="2464089476039395325">Servidor intermediari HTTP</translation>
 <translation id="2468902267404883140">No es pot connectar amb el telèfon. Comprova que estiguis utilitzant un telèfon Android compatible, que estigui encès i que sigui a prop. &lt;a&gt;Més informació&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensions no compatibles desactivades</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Desinstal·la</translation>
 <translation id="2487067538648443797">Afegeix una adreça d'interès nova</translation>
 <translation id="248861575772995840">No es troba el telèfon. Comprova que <ph name="DEVICE_TYPE" /> tingui el Bluetooth activat. &lt;a&gt;Més informació&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Un connector (<ph name="PLUGIN_NAME" />) no respon.</translation>
 <translation id="2489428929217601177">ahir</translation>
 <translation id="2489918096470125693">Afegeix una &amp;carpeta...</translation>
 <translation id="249113932447298600">El dispositiu <ph name="DEVICE_LABEL" /> no és compatible en aquests moments.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Enhorabona. El servei de dades "<ph name="NAME" />" s'ha activat i ja es pot fer servir.</translation>
 <translation id="2566124945717127842">Utilitzeu una operació Powerwash per restablir el dispositiu <ph name="IDS_SHORT_PRODUCT_NAME" /> i deixar-lo com si fos nou.</translation>
 <translation id="2568774940984945469">Contenidor de la barra d'informació</translation>
-<translation id="2570000010887652771">Les dades s'han desat.</translation>
 <translation id="257088987046510401">Temes</translation>
 <translation id="2572032849266859634">S'ha concedit accés només de lectura a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Trieu una imatge i un nom</translation>
 <translation id="2575247648642144396">Aquesta icona serà visible quan les extensions puguin actuar a la pàgina actual. Per fer servir aquesta extensió, feu clic a la icona o premeu <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">No es troba el telèfon. Comprova que <ph name="DEVICE_TYPE" /> estigui connectat a la xarxa Wi-Fi o a una xarxa mòbil. &lt;a&gt;Més informació&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Ja hi ha un fitxer CRX amb aquest nom.</translation>
 <translation id="257779572837908839">Estableix com a Chromebox per a reunions</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />No es pot desactivar el volum<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1067,7 +1048,6 @@
 <translation id="2653266418988778031">Si suprimiu una entitat emissora de certificats, el vostre navegador ja no confiarà en cap certificat emès per aquella entitat.</translation>
 <translation id="2653659639078652383">Envia</translation>
 <translation id="265390580714150011">Valor del camp</translation>
-<translation id="2654286334048437383">Exporta les adreces d'interès</translation>
 <translation id="2655386581175833247">Certificat d'usuari:</translation>
 <translation id="2660779039299703961">Esdeveniment</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1196,7 +1176,7 @@
 <translation id="281133045296806353">S'ha creat una finestra nova a la sessió del navegador existent.</translation>
 <translation id="2812944337881233323">Tanca la sessió i torna-la a iniciar</translation>
 <translation id="2812989263793994277">No mostris cap imatge</translation>
-<translation id="2814489978934728345">Atura la pujada d'aquesta pàgina</translation>
+<translation id="2814489978934728345">Atura la càrrega d'aquesta pàgina</translation>
 <translation id="2815500128677761940">Barra d'adreces d'interès</translation>
 <translation id="2815693974042551705">Carpeta d'adreces d'interès</translation>
 <translation id="2818476747334107629">Detalls de la impressora</translation>
@@ -1261,7 +1241,6 @@
 <translation id="2908162660801918428">Addició d'una galeria multimèdia per directori</translation>
 <translation id="2908789530129661844">Allunya la pantalla</translation>
 <translation id="2910318910161511225">Connecta't a una xarxa i torna-ho a provar</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> vol utilitzar el micròfon.</translation>
 <translation id="2913331724188855103">Permet que els llocs web desin i llegeixin les dades de les galetes (recomanat)</translation>
 <translation id="2916073183900451334">En prémer la tecla de tabulació en una pàgina web, es ressalten els enllaços i els camps de formulari</translation>
 <translation id="2916745397441987255">Cerca extensions</translation>
@@ -1414,7 +1393,6 @@
 <translation id="3141318088920353606">S'està escoltant...</translation>
 <translation id="3141917231319778873"><ph name="DEVICE_NAME" /> no admet la sol·licitud enviada.</translation>
 <translation id="3144126448740580210">FET</translation>
-<translation id="3144135466825225871">No s'ha pogut substituir el fitxer crx. Comproveu si el fitxer s'està utilitzant.</translation>
 <translation id="3144647712221361880">Obre l'enllaç com a</translation>
 <translation id="3149510190863420837">Aplicacions de Chrome</translation>
 <translation id="3150927491400159470">Torna a carregar de manera forçada</translation>
@@ -1524,7 +1502,6 @@
 <translation id="3309747692199697901">Executa sempre en tots els llocs</translation>
 <translation id="3312424061798279731">Idiomes activats</translation>
 <translation id="3312903956926554846">Instal·la a l'escriptori</translation>
-<translation id="3313473140726597081">La pàgina d'inici ha canviat a <ph name="URL" />. Per desactivar les extensions que canvien la pàgina d'inici, fes clic a Restaura.</translation>
 <translation id="3313590242757056087">Per definir els llocs web que l'usuari supervisat pot veure, podeu configurar restriccions i opcions a la pàgina <ph name="MANAGEMENT_URL" />.
     Si no canvieu la configuració predeterminada, <ph name="USER_DISPLAY_NAME" />
     podrà navegar per tots els llocs del web.</translation>
@@ -1539,7 +1516,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informació de l'aplicació</translation>
 <translation id="3335947283844343239">Torna a obrir la pestanya tancada</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> s'ha bloquejat perquè no està actualitzat.</translation>
 <translation id="3340978935015468852">configuració</translation>
 <translation id="3341703758641437857">Permet l'accés als URL de fitxer</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" vol suprimir aquesta extensió.</translation>
@@ -1574,7 +1550,6 @@
 <translation id="3386219708421216619">S'ha afegit a les adreces d'interès</translation>
 <translation id="3389312115541230716">Fes clic a la icona <ph name="SMALL_PRODUCT_LOGO" /> de la barra de tasques</translation>
 <translation id="3391716558283801616">Pestanya 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> vol utilitzar la càmera i el micròfon.</translation>
 <translation id="3396331542604645348">La impressora seleccionada no està disponible o no s'ha instal·lat correctament. Comproveu la impressora o proveu de seleccionar-ne una altra.</translation>
 <translation id="3399432415385675819">Les notificacions es desactivaran</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1686,10 +1661,8 @@
 <translation id="3550915441744863158">Chrome s'actualitza automàticament perquè en tingueu sempre la versió més recent.</translation>
 <translation id="3551320343578183772">Tanca la pestanya</translation>
 <translation id="3552780134252864554">Esborra en sortir</translation>
-<translation id="355298399003313926"><ph name="URL" /> vol respondre als esdeveniments d'accessibilitat.</translation>
 <translation id="3555812735919707620">Suprimeix l'extensió</translation>
 <translation id="3556000484321257665">El motor de cerca ha canviat a <ph name="URL" />.</translation>
-<translation id="3561217442734750519">El valor d'entrada per a la clau privada ha de ser un camí vàlid.</translation>
 <translation id="3563432852173030730">L'aplicació Quiosc no s'ha pogut baixar.</translation>
 <translation id="3564334271939054422">És possible que la xarxa Wi-Fi que esteu fent servir (<ph name="NETWORK_ID" />) sol·liciti que en visiteu la pàgina d'inici de sessió.</translation>
 <translation id="3564708465992574908">Nivells de zoom</translation>
@@ -1711,7 +1684,6 @@
 <translation id="3593965109698325041">Restriccions del nom de certificat</translation>
 <translation id="3596235046596950091">Activa els serveis en núvol</translation>
 <translation id="3599863153486145794">Esborra l'historial de tots els dispositius en què tinguis iniciada la sessió. A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />, trobaràs altres maneres d'explorar l'historial del teu compte de Google.</translation>
-<translation id="3600456501114769456">El vostre administrador ha desactivat l'accés als fitxers locals del vostre dispositiu.</translation>
 <translation id="3600792891314830896">Silencia els llocs web que reprodueixen so</translation>
 <translation id="3603177256297531067">Aquesta pàgina no s'ha pogut traduir</translation>
 <translation id="3603533104205588786">Pots fer clic a l'estrella per afegir la pàgina a les adreces d'interès</translation>
@@ -1736,7 +1708,6 @@
 <translation id="3625258641415618104">Captures de pantalla desactivades</translation>
 <translation id="3625870480639975468">Restableix el zoom</translation>
 <translation id="3626281679859535460">Brillantor</translation>
-<translation id="3627052133907344175">L'extensió requereix "<ph name="IMPORT_NAME" />" amb "<ph name="IMPORT_VERSION" />" com a versió mínima, però només hi ha instal·lada la versió "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Queda menys d'un minut</translation>
 <translation id="3627588569887975815">Obre l'enllaç en una finestra d'incò&amp;gnit</translation>
 <translation id="3627671146180677314">Data i hora de renovació de certificat de Netscape</translation>
@@ -1766,7 +1737,6 @@
 <translation id="3668570675727296296">Configuració d'idioma</translation>
 <translation id="3668823961463113931">Gestors</translation>
 <translation id="3670229581627177274">Activa el Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vol emmagatzemar de forma permanent una gran quantitat de dades a l'equip local.</translation>
 <translation id="3672681487849735243">S'ha detectat un error de fàbrica</translation>
 <translation id="367645871420407123">deixeu-ho en blanc si voleu establir el valor predeterminat de la imatge de prova com a contrasenya arrel</translation>
 <translation id="3678156199662914018">Extensió: <ph name="EXTENSION_NAME" /></translation>
@@ -1844,11 +1814,9 @@
 <translation id="3786301125658655746">No tens connexió</translation>
 <translation id="3788401245189148511">Podria:</translation>
 <translation id="3789841737615482174">Instal·la</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> només funciona a l'escriptori.</translation>
 <translation id="379082410132524484">La targeta ha caducat</translation>
 <translation id="3792890930871100565">Desconnecta impressores</translation>
 <translation id="379422718204375917">Utilitza Smart Lock per iniciar la sessió al teu compte</translation>
-<translation id="3794595850995182458">Surt de la pàgina</translation>
 <translation id="3796648294839530037">Xarxes preferides:</translation>
 <translation id="3797900183766075808">&amp;Cerca "<ph name="SEARCH_TERMS" />" a <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Et permet activar o desactivar la funció de tocar per fer clic</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326">Activa <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Heu introduït un tipus de desament no vàlid.</translation>
 <translation id="3983586614702900908">dispositius d'un proveïdor desconegut</translation>
-<translation id="3984413272403535372">S'ha produït un error en signar l'extensió.</translation>
 <translation id="3987938432087324095">No ho he entès.</translation>
 <translation id="3988996860813292272">Selecciona la zona horària</translation>
 <translation id="3989635538409502728">Tanca la sessió</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">Instal·la aplicacions i jocs de Google Play al dispositiu Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Més informació&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Accepta per al grup</translation>
 <translation id="4090103403438682346">Activa l'accés verificat</translation>
-<translation id="4090404313667273475">Cal tenir <ph name="PLUGIN_NAME" /> per mostrar alguns elements d'aquesta pàgina.</translation>
 <translation id="4090535558450035482">(Aquesta extensió és responsabilitat d'un gestor i no es pot eliminar.)</translation>
 <translation id="4091434297613116013">fulls de paper</translation>
 <translation id="4093955363990068916">Fitxer local:</translation>
@@ -2369,7 +2335,6 @@
 <translation id="4714531393479055912">Ara <ph name="PRODUCT_NAME" /> pot sincronitzar les contrasenyes.</translation>
 <translation id="4715553623069266137">molt curt (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash per a més seguretat</translation>
-<translation id="471800408830181311">No s'ha pogut generar la clau privada.</translation>
 <translation id="4720113199587244118">Afegeix dispositius</translation>
 <translation id="4720185134442950733">Xarxa de dades mòbils</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> comparteix la vostra pantalla.</translation>
@@ -2506,7 +2471,6 @@
 <translation id="4917385247580444890">Forta</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> es vol comunicar amb l'extensió "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Accepta</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> vol fer servir la vostra càmera.</translation>
 <translation id="4920887663447894854">Els llocs següents han bloquejat el seguiment de la vostra ubicació en aquesta pàgina:</translation>
 <translation id="492299503953721473">Suprimeix les aplicacions per a Android</translation>
 <translation id="4923279099980110923">Sí, vull contribuir-hi</translation>
@@ -2547,7 +2511,6 @@
 <translation id="4980805016576257426">Aquesta extensió conté programari maliciós.</translation>
 <translation id="498294082491145744">Modifiqueu la configuració que controla l'accés dels llocs web a elements com les galetes, JavaScript, els connectors, la ubicació, el micròfon, la càmera, etc.</translation>
 <translation id="4988526792673242964">Pàgines</translation>
-<translation id="4988792151665380515">No s'ha pogut exportar la clau pública.</translation>
 <translation id="49896407730300355">Gira en el sentit con&amp;trari a les agulles del rellotge</translation>
 <translation id="4989966318180235467">Inspecciona la &amp;pàgina de fons</translation>
 <translation id="4990343175649730969">Baixa l'Eina per netejar Chrome</translation>
@@ -2576,7 +2539,6 @@
 <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>
-<translation id="5028012205542821824">La instal·lació no està activada.</translation>
 <translation id="5029568752722684782">Esborra la còpia</translation>
 <translation id="5030338702439866405">Emès per</translation>
 <translation id="5036662165765606524">No permetis que cap lloc baixi diversos fitxers automàticament</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">S'ha produït un error.</translation>
 <translation id="5094721898978802975">Comunicació amb aplicacions natives cooperatives</translation>
 <translation id="5097002363526479830">S'ha produït un error en connectar amb la xarxa "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">No es pot trobar el camí absolut al directori per empaquetar.</translation>
 <translation id="5099354524039520280">amunt</translation>
 <translation id="5100114659116077956">Si voleu gaudir de les característiques més recents, heu d'actualitzar Chromebox.</translation>
 <translation id="5101042277149003567">Obre totes les adreces d'interès</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">Mostra a la carpeta</translation>
 <translation id="5171045022955879922">Cerqueu o escriviu l'URL</translation>
 <translation id="5171343362375269016">Memòria intercanviada</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vol emmagatzemar de forma permanent dades a l'equip local.</translation>
 <translation id="5177479852722101802">Continua bloquejant l'accés a la càmera i al micròfon</translation>
 <translation id="5177526793333269655">Visualització de miniatures</translation>
 <translation id="5177549709747445269">Esteu utilitzant dades mòbils</translation>
@@ -2741,7 +2701,6 @@
 <translation id="529175790091471945">Formata aquest dispositiu</translation>
 <translation id="5293170712604732402">Restableix la configuració als valors predeterminats originals</translation>
 <translation id="5298219193514155779">Tema creat per</translation>
-<translation id="5298363578196989456">L'extensió "<ph name="IMPORT_NAME" />" no es pot importar perquè no és un mòdul compartit.</translation>
 <translation id="5299109548848736476">Opció de no seguiment</translation>
 <translation id="5299682071747318445">Totes les dades s'encripten amb la vostra frase de contrasenya de sincronització</translation>
 <translation id="5300589172476337783">Mostra</translation>
@@ -2769,7 +2728,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" es vol vincular</translation>
 <translation id="5332624210073556029">Zona horària:</translation>
 <translation id="5334142896108694079">Memòria cau d'scripts</translation>
-<translation id="533433379391851622">La versió esperada era "<ph name="EXPECTED_VERSION" />", però la real era "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Mostra el codi font</translation>
 <translation id="5335458522276292100">S'estan afegint <ph name="FILE_COUNT" /> a la còpia de seguretat de <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instal·lat per tercers.</translation>
@@ -2807,7 +2765,6 @@
 <translation id="5390100381392048184">Permet que els llocs web reprodueixin so</translation>
 <translation id="5390284375844109566">Base de dades indexada</translation>
 <translation id="5390743329570580756">Envia per a</translation>
-<translation id="5396126354477659676">El connector <ph name="PEPPER_PLUGIN_NAME" /> de <ph name="PEPPER_PLUGIN_DOMAIN" /> vol accedir al vostre ordinador.</translation>
 <translation id="5397794290049113714">Usuari</translation>
 <translation id="5398572795982417028">La pàgina indicada no respecta el límit de <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncis bloquejats</translation>
@@ -2869,7 +2826,6 @@
 <translation id="5485754497697573575">Restaura totes les pestanyes</translation>
 <translation id="5486261815000869482">Confirmeu la contrasenya</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> comparteix la vostra pantalla amb <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Ha d'existir el valor d'entrada de la clau privada.</translation>
 <translation id="5486561344817861625">Simula el reinici del navegador</translation>
 <translation id="5487521232677179737">Esborra les dades</translation>
 <translation id="5488093641312826914">S'ha copiat <ph name="COPIED_ITEM_NAME" /></translation>
@@ -2952,7 +2908,6 @@
 <translation id="5600706100022181951">Per baixar l'actualització s'utilitzaran <ph name="UPDATE_SIZE_MB" /> MB de dades mòbils. Vols continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Altres motors de cerca</translation>
-<translation id="5606674617204776232">El connector <ph name="PEPPER_PLUGIN_NAME" /> de <ph name="PEPPER_PLUGIN_DOMAIN" /> vol accedir al vostre dispositiu.</translation>
 <translation id="5608580678041221894">Toca aquestes tecles per ajustar o moure l'àrea per retallar</translation>
 <translation id="5609231933459083978">Sembla que l'aplicació no és vàlida.</translation>
 <translation id="5610038042047936818">Canvia al mode de càmera</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Traduïda</translation>
 <translation id="5991049340509704927">Amplia</translation>
 <translation id="5993332328670040093">Ja no es mesurarà el vostre ús de dades.</translation>
-<translation id="6003177993629630467">És possible que <ph name="PRODUCT_NAME" /> no pugui actualitzar-se tot sol.</translation>
 <translation id="600424552813877586">L'aplicació no és vàlida.</translation>
 <translation id="6005695835120147974">Encaminador multimèdia</translation>
 <translation id="6006484371116297560">Clàssic</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Còpia de seguretat a Cloud</translation>
 <translation id="6040143037577758943">Tanca</translation>
 <translation id="6040852767465482106">Identitat anònima</translation>
+<translation id="6041155700700864984">Surt de la pantalla completa</translation>
 <translation id="604124094241169006">Automàtic</translation>
 <translation id="6042169520002885235">Selecciona un fabricant i un model d'impressora</translation>
 <translation id="6042308850641462728">Més</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Torna a carregar de manera normal</translation>
 <translation id="6059652578941944813">Jerarquia del certificat</translation>
 <translation id="6059925163896151826">Dispositius USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ha fallat.</translation>
 <translation id="6064217302520318294">Bloqueig de pantalla</translation>
 <translation id="6065289257230303064">Atributs del directori del subjecte del certificat</translation>
 <translation id="6068338049763724728">Activa la inscripció remota</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Permet ajustar la resolució de pantalla</translation>
 <translation id="6238923052227198598">Mantén la darrera nota a la pantalla de bloqueig</translation>
 <translation id="6239558157302047471">Torna a carregar el &amp;marc</translation>
-<translation id="624022915548992686">Surt de la pàgina</translation>
 <translation id="6241530762627360640">Accedir a informació sobre els dispositius Bluetooth vinculats al sistema i descobrir dispositius Bluetooth a prop</translation>
 <translation id="6243774244933267674">El servidor no està disponible</translation>
 <translation id="6246413617632217567">L'usuari supervisat no s'ha pogut importar. Comproveu els vostres permisos i l'espai disponible a la unitat de disc dur i torneu-ho a provar.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Error de xarxa desconegut</translation>
 <translation id="6313641880021325787">SURT DEL MODE RV</translation>
 <translation id="6314819609899340042">Heu activat correctament les funcions de depuració en aquest dispositiu <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Les pàgines d'inici han canviat per incloure <ph name="URL" />. Per desactivar les extensions que canvien la pàgina d'inici, fes clic a Restaura.</translation>
 <translation id="6315493146179903667">Porta-ho tot al davant</translation>
 <translation id="6316806695097060329">El dispositiu <ph name="SHORT_PRODUCT_NAME" /> s'ha dissenyat per proporcionar-vos la millor experiència possible al web.</translation>
 <translation id="6317318380444133405">Ja no és compatible.</translation>
 <translation id="6317369057005134371">S'està esperant la finestra de l'aplicació...</translation>
 <translation id="6318407754858604988">S'ha iniciat la baixada</translation>
-<translation id="6322279351188361895">No s'ha pogut llegir la clau privada.</translation>
 <translation id="6325191661371220117">Desactiva l'inici automàtic</translation>
 <translation id="6326175484149238433">Suprimeix de Chrome</translation>
 <translation id="6326855256003666642">Nombre de processos actius</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Tria quines dades sincronitzar</translation>
 <translation id="6333064448949140209">El fitxer s'enviarà a Google per depurar-lo</translation>
 <translation id="6333834492048057036">Mou el focus a la barra d'adreces per fer una cerca.</translation>
-<translation id="6336907568130557310">Tothom que pugui veure el fitxer exportat podrà veure també les teves contrasenyes. No comparteixis el fitxer amb ningú i suprimeix-lo després d'importar-lo.</translation>
 <translation id="6339668969738228384">Crea un perfil nou per a <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">No s'ha pogut connectar amb el servidor. Comprova la connexió de xarxa i torna-ho a provar. Si el problema continua, reinicia Chromebook.</translation>
 <translation id="6340071272923955280">Protocol d'impressió per Internet (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Els llocs poden desar i llegir dades de galetes</translation>
 <translation id="6388771388956873507">Localitza el sensor d'empremtes digitals al dispositiu i toca'l amb el dit</translation>
 <translation id="6390799748543157332">Les pàgines que visualitzeu en aquesta finestra no es mostraran a l'historial del navegador i no deixaran cap altre rastre a l'ordinador, com ara galetes, després de tancar totes les finestres obertes de la sessió de convidat. No obstant això, es conservaran tots els fitxers que baixeu.</translation>
-<translation id="6391538222494443604">El directori d'entrada ha d'existir.</translation>
 <translation id="6395423953133416962">Envia les <ph name="BEGIN_LINK2" />mètriques<ph name="END_LINK2" /> i la <ph name="BEGIN_LINK1" />informació del sistema<ph name="END_LINK1" /></translation>
 <translation id="6397363302884558537">Deixa de parlar</translation>
 <translation id="6397592254427394018">Obre totes les adreces d'interès en una &amp;finestra d'incògnit</translation>
@@ -3496,7 +3445,6 @@
 <translation id="6458308652667395253">Gestiona el bloqueig de JavaScript...</translation>
 <translation id="6459488832681039634">Utilitza la selecció per a la cerca</translation>
 <translation id="6460601847208524483">Cerca el següent</translation>
-<translation id="6462080265650314920">Les aplicacions s'han de distribuir amb el tipus de contingut "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Encara hi ets?</translation>
 <translation id="6463795194797719782">E&amp;dita</translation>
 <translation id="6466988389784393586">&amp;Obre totes les adreces d'interès</translation>
@@ -3626,7 +3574,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Voleu que Google tradueixi a <ph name="TARGET_LANGUAGE" /> aquesta pàgina escrita en <ph name="SOURCE_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">S'ha connectat un dispositiu per apuntar</translation>
-<translation id="6677037229676347494">L'ID esperat era "<ph name="EXPECTED_ID" />", però el real era "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL de la consulta</translation>
 <translation id="6680028776254050810">Canvia els usuaris</translation>
 <translation id="6680442031740878064">Disponible: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3766,8 +3713,6 @@
 <translation id="6903534926908201625">Per personalitzar la informació que Google recopila, ves a <ph name="BEGIN_LINK" />Configuració<ph name="END_LINK" /> en qualsevol moment.</translation>
 <translation id="6904344821472985372">Revoca l'accés al fitxer</translation>
 <translation id="6904655473976120856">Prem el botó Aplicació per sortir</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> vol compartir la teva pantalla.</translation>
-<translation id="6909461304779452601">No es poden afegir aplicacions, extensions ni scripts d'usuari d'aquest lloc web.</translation>
 <translation id="6910211073230771657">Suprimit</translation>
 <translation id="691024665142758461">Baixa diversos fitxers</translation>
 <translation id="6911324888870229398">S'ha perdut la connexió de xarxa. Comprova la connexió o prova una altra xarxa Wi-Fi.</translation>
@@ -4098,7 +4043,6 @@
 <translation id="747114903913869239">Error: no s'ha pogut descodificar l'extensió</translation>
 <translation id="7473891865547856676">No, gràcies</translation>
 <translation id="747459581954555080">Restaura'ls tots</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> ha detectat un error.</translation>
 <translation id="7475671414023905704">URL de contrasenya perduda de Netscape</translation>
 <translation id="7476454130948140105">No hi ha prou bateria per fer l'actualització (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Si heu oblidat la frase de contrasenya, atureu i restabliu la sincronització mitjançant <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4135,7 +4079,6 @@
 <translation id="7507930499305566459">Certificat de resposta d'estat</translation>
 <translation id="7508545000531937079">Presentació de diapositives</translation>
 <translation id="7513029293694390567">Inicia la sessió automàticament als llocs web amb les credencials emmagatzemades. Si la funció està desactivada, se't demanarà sempre que confirmis les credencials per iniciar la sessió en un lloc web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> vol identificar el teu dispositiu de manera exclusiva per reproduir contingut protegit.</translation>
 <translation id="7517569744831774757">Restableix la configuració als valors predeterminats originals.</translation>
 <translation id="7517786267097410259">Crea una contrasenya</translation>
 <translation id="7518150891539970662">Registres de WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4163,7 +4106,6 @@
 <translation id="7563991800558061108">Per solucionar aquest error, heu d'iniciar la sessió al vostre compte de Google des de la pantalla d'inici de la sessió. A continuació, podeu tancar la sessió del vostre compte de Google i provar de tornar a crear un usuari supervisat.</translation>
 <translation id="756445078718366910">Obre una finestra del navegador</translation>
 <translation id="7564847347806291057">Finalitza el procés</translation>
-<translation id="7565291891798266313">El motor de cerca ha canviat a <ph name="URL" />. Per desactivar les extensions que canvien el motor de cerca, fes clic a Restaura.</translation>
 <translation id="7566118625369982896">Gestiona els enllaços d'aplicacions de Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">S'han esborrat les dades de Chrome</translation>
@@ -4172,7 +4114,6 @@
 <translation id="7573172247376861652">Pujada de la bateria</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Intercala</translation>
-<translation id="7577815336900970562">Utilitza una xarxa Wi-Fi o mòbil per determinar la ubicació</translation>
 <translation id="7579149537961810247">Silencia els llocs web</translation>
 <translation id="7580671184200851182">Reprodueix el mateix àudio per tots els altaveus (àudio mono)</translation>
 <translation id="7581462281756524039">Eina per netejar</translation>
@@ -4279,6 +4220,7 @@
 <translation id="7773726648746946405">Emmagatzematge de sessions</translation>
 <translation id="7781335840981796660">Se suprimiran tots els comptes d'usuari i totes les dades locals.</translation>
 <translation id="7782102568078991263">Cap suggeriment més de Google</translation>
+<translation id="778330624322499012">No s'ha pogut carregar <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">La configuració de seguretat del vostre ordinador ha bloquejat aquest fitxer.</translation>
 <translation id="7786207843293321886">Surt de la sessió de convidat</translation>
 <translation id="7786889348652477777">&amp;Tornar a carregar l'aplicació</translation>
@@ -4441,7 +4383,6 @@
 <translation id="8001504501378762252">És possible que un lloc web t'hagi robat la contrasenya</translation>
 <translation id="8004582292198964060">Navegador</translation>
 <translation id="8008356846765065031">S'ha desconnectat Internet. Comproveu la connexió.</translation>
-<translation id="8008765610824028412">No s'ha pogut carregar <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Envia automàticament algunes dades del sistema i contingut de les pàgines a Google per ajudar a detectar les aplicacions i els llocs perillosos</translation>
 <translation id="8012382203418782830">Aquesta pàgina s'ha traduït.</translation>
 <translation id="8014154204619229810">L'actualitzador està en funcionament. Actualitzeu la pantalla d'aquí a un minut per tornar-ho a comprovar.</translation>
@@ -4558,7 +4499,6 @@
 <translation id="8191230140820435481">Gestionar les aplicacions, les extensions i els temes</translation>
 <translation id="8191453843330043793">Solucionador de servidors intermediaris V8</translation>
 <translation id="8195027750202970175">Espai ocupat al disc</translation>
-<translation id="8195739004487400241">La pàgina d'inici a canviat a <ph name="URL" />. Per desactivar les extensions que canvien la pàgina d'inici, fes clic a Restaura.</translation>
 <translation id="8199300056570174101">Xarxa (servei) i propietats del dispositiu</translation>
 <translation id="8200772114523450471">Reprèn</translation>
 <translation id="8202160505685531999">Torneu a introduir la contrasenya per actualitzar el vostre perfil del dispositiu <ph name="DEVICE_TYPE" />.</translation>
@@ -4602,7 +4542,6 @@
 <translation id="8261378640211443080">Aquesta extensió no apareix a <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i és possible que s'hagi afegit sense que ho sapigueu.</translation>
 <translation id="8261387128019234107">Afegeix un compte per a: <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Suprimeix</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> no s'ha implementat en aquesta compilació.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha desactivat el cursor del ratolí.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ha activat la pantalla completa.</translation>
 <translation id="8270242299912238708">Documents PDF</translation>
@@ -4703,6 +4642,7 @@
 <translation id="8454288007744638700">O bé seleccioneu una xarxa nova:</translation>
 <translation id="845627346958584683">Hora de caducitat</translation>
 <translation id="8456681095658380701">El nom no és vàlid</translation>
+<translation id="8457451314607652708">Importa les adreces d'interès</translation>
 <translation id="8460336040822756677">Si desactives Smart Lock per a <ph name="DEVICE_TYPE" />, no podràs desbloquejar els dispositius Chrome amb el telèfon, sinó que hauràs d'escriure la contrasenya.</translation>
 <translation id="8461329675984532579">Nom del proveïdor domèstic</translation>
 <translation id="84613761564611563">La interfície d'usuari per configurar la xarxa s'ha sol·licitat. Espera…</translation>
@@ -4734,7 +4674,6 @@
 <translation id="850875081535031620">No s'ha trobat programari maliciós</translation>
 <translation id="8512476990829870887">Finalitza el procés</translation>
 <translation id="851263357009351303">Permet sempre que <ph name="HOST" /> mostri imatges</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" està depurant aquest navegador.</translation>
 <translation id="8521475323816527629">Accedeix a les teves aplicacions ràpidament</translation>
 <translation id="8523493869875972733">Mantén els canvis</translation>
 <translation id="8523849605371521713">Afegida per la política</translation>
@@ -4790,7 +4729,6 @@
 <translation id="8620765578342452535">Configurar les connexions de xarxa</translation>
 <translation id="8620790565535071193">S'ha produït un error en la cerca</translation>
 <translation id="8622877356447980900">Voleu traduir aquesta pàgina?</translation>
-<translation id="8623004009673949077">L'aplicació amb l'atribut del fitxer de manifest "kiosk_only" s'ha d'instal·lar al mode quiosc de Chrome OS.</translation>
 <translation id="8624205858755890468">Permet que l'Assistent et mostri informació, aplicacions i accions relacionades.</translation>
 <translation id="862542460444371744">&amp;Extensions</translation>
 <translation id="8627151598708688654">Seleccioneu una font</translation>
@@ -4939,7 +4877,6 @@
 <translation id="882204272221080310">Per a més seguretat, actualitza el microprogramari.</translation>
 <translation id="8823514049557262177">Copia el te&amp;xt de l'enllaç</translation>
 <translation id="8824701697284169214">Afegeix la pà&amp;gina...</translation>
-<translation id="8827850355924932817">Utilitza una xarxa Wi-Fi per determinar la ubicació</translation>
 <translation id="8828933418460119530">Nom DNS</translation>
 <translation id="8830796635868321089">No s'ha pogut realitzar la comprovació d'actualitzacions amb la configuració del servidor intermediari actual. Ajusteu la <ph name="PROXY_SETTINGS_LINK_START" />configuració del servidor intermediari<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> controla la configuració de la xarxa.</translation>
@@ -4971,9 +4908,7 @@
 <translation id="8879284080359814990">&amp;Mostra com a pestanya</translation>
 <translation id="8884961208881553398">Afegeix serveis nous</translation>
 <translation id="8885197664446363138">Smart Lock no està disponible</translation>
-<translation id="8885905466771744233">Ja existeix una clau privada per a l'extensió especificada. Torneu a utilitzar-la o suprimiu-la primer.</translation>
 <translation id="8888432776533519951">Color:</translation>
-<translation id="8892992092192084762">S'ha instal·lat el tema "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">El dispositiu <ph name="DEVICE_LABEL" /> no s'ha pogut reconèixer.</translation>
 <translation id="8895454554629927345">Llista d'adreces d'interès</translation>
 <translation id="88986195241502842">Av Pàg</translation>
@@ -4988,7 +4923,6 @@
 <translation id="8908902564709148335">Advertiment: heu activat la marca --scripts-require-action en aquest ordinador, fet que limita les capacitats d'aquesta extensió. Tot i així, és possible que els altres dispositius no admetin aquesta marca o que la tinguin activada. En aquests dispositius, aquesta extensió també pot fer el següent:</translation>
 <translation id="8910146161325739742">Compartiu la pantalla</translation>
 <translation id="8910222113987937043">Els canvis que es facin a les adreces d'interès, l'historial, les contrasenyes i altres opcions de configuració es deixaran de sincronitzar amb el compte de Google. No obstant això, les dades existents 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="8911079125461595075">Google ha marcat l'extensió "<ph name="EXTENSION_NAME" />" com a maliciosa i, per tant, s'ha evitat que s'instal·lés.</translation>
 <translation id="8912793549644936705">Amplia</translation>
 <translation id="8915370057835397490">S'estan carregant els suggeriments</translation>
 <translation id="8916476537757519021">Submarc d'incògnit: <ph name="SUBFRAME_SITE" /></translation>
@@ -5094,7 +5028,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Ratolí USB connectat</translation>
 <translation id="9076523132036239772">No s'ha pogut verificar el correu electrònic o la contrasenya. Prova de connectar-te primer a una xarxa.</translation>
-<translation id="907841381057066561">No s'ha pogut crear el fitxer ZIP temporal durant l'empaquetament.</translation>
 <translation id="9084064520949870008">Obre com a finestra</translation>
 <translation id="9088234649737575428">La política d'empresa té el connector <ph name="PLUGIN_NAME" /> bloquejat</translation>
 <translation id="9088917181875854783">Confirmeu que aquesta clau d'accés apareix a "<ph name="DEVICE_NAME" />":</translation>
@@ -5185,11 +5118,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Introduïu la frase de contrasenya</translation>
 <translation id="939736085109172342">Carpeta nova</translation>
-<translation id="941543339607623937">Clau privada no vàlida.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> està compartint una pestanya de Chrome i l'àudio.</translation>
 <translation id="942954117721265519">No hi ha cap imatge en aquest directori.</translation>
 <translation id="945522503751344254">Envia suggeriments</translation>
-<translation id="951981865514037445"><ph name="URL" /> vol fer servir la ubicació del dispositiu.</translation>
 <translation id="952992212772159698">No activat</translation>
 <translation id="9580706199804957">No s'ha pogut establir la connexió amb els serveis de Google</translation>
 <translation id="958515377357646513">Toca per anar endavant</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 14e242f6..4845175 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Pouze šifrování</translation>
 <translation id="1039337018183941703">Neplatný nebo poškozený soubor</translation>
 <translation id="1042174272890264476">Počítač je dodáván s integrovanou knihovnou RLZ prohlížeče <ph name="SHORT_PRODUCT_NAME" />. RLZ přiřadí značku, která slouží k vyhodnocení vyhledávání a využití prohlížečů <ph name="SHORT_PRODUCT_NAME" />, které pocházejí z konkrétní propagační kampaně. Tato značka není jedinečná a neumožňuje osobní identifikaci. Tyto značky jsou někdy v prohlížeči <ph name="PRODUCT_NAME" /> uváděny v dotazech ve Vyhledávání Google.</translation>
-<translation id="1042574203789536285">Stránka <ph name="URL" /> chce v zařízení trvale ukládat velké množství dat.</translation>
 <translation id="1046059554679513793">Toto jméno se již používá.</translation>
 <translation id="1047431265488717055">Kopírovat te&amp;xt odkazu</translation>
 <translation id="1047726139967079566">Přidat stránku do záložek...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Obnovit výchozí vyhledávač?</translation>
 <translation id="1177863135347784049">Vlastní</translation>
 <translation id="1178581264944972037">Pozastavit</translation>
-<translation id="1179803038870941185">Web <ph name="URL" /> chce získat úplnou kontrolu nad zařízeními MIDI.</translation>
 <translation id="1181037720776840403">Odebrat</translation>
 <translation id="1183237619868651138">Soubor <ph name="EXTERNAL_CRX_FILE" /> nelze nainstalovat do místní mezipaměti.</translation>
 <translation id="1185924365081634987">Chcete-li tuto chybu odstranit, můžete také zkusit <ph name="GUEST_SIGNIN_LINK_START" />procházení v roli hosta<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Přístup k souboru uložené v počítači}few{Přístup k # souborům uložené v počítači}many{Přístup k # souboru uloženého v počítači}other{Přístup k # souborům uložené v počítači}}</translation>
 <translation id="1195076408729068893">Chcete-li spustit Smart Lock, zadejte heslo. Příště zařízení <ph name="DEVICE_TYPE" /> budete moci odemknout telefonem.</translation>
 <translation id="1195447618553298278">Neznámá chyba.</translation>
-<translation id="1196338895211115272">Export soukromého klíče se nezdařil.</translation>
 <translation id="119738088725604856">Snímek okna</translation>
 <translation id="1197979282329025000">Při načítání funkcí tiskárny <ph name="PRINTER_NAME" /> se vyskytla chyba. Tato tiskárna nemůže být zaregistrována do služby <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Začínáme</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Váš administrátor doporučuje pro toto nastavení konkrétní hodnotu.</translation>
 <translation id="1225177025209879837">Probíhá zpracování požadavku...</translation>
 <translation id="1225211345201532184">Položka č. 5 v poličce</translation>
-<translation id="1225404570112441414">Po přidání tohoto webu na poličku jej budete moci kdykoli použít.</translation>
 <translation id="1227507814927581609">Při připojování k zařízení <ph name="DEVICE_NAME" /> selhalo ověření.</translation>
 <translation id="1230807973377071856">nabídka systému</translation>
 <translation id="1232569758102978740">Bez názvu</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Soubor HTML záložek</translation>
 <translation id="1303671224831497365">Nebyla nalezena žádná zařízení Bluetooth</translation>
 <translation id="1306606229401759371">Změnit nastavení</translation>
-<translation id="1307398858972670978">Ke svým heslům můžete získat přístup ze kteréhokoliv zařízení na stránce <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Jejda! Systému se pro toto zařízení nepodařilo uložit token dlouhodobého přístupu k rozhraní API.</translation>
 <translation id="1313405956111467313">Automatické nastavení proxy serveru</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Vyhledávání</translation>
 <translation id="1386387014181100145">Nazdárek!</translation>
 <translation id="138784436342154190">Obnovit výchozí počáteční stránku?</translation>
-<translation id="1389297115360905376">Lze přidat pouze ze stránek <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Otevřít jako běžnou kartu</translation>
-<translation id="1391807639023934267">Byla načtena rychlejší stránka.</translation>
 <translation id="1393283411312835250">Slunce a mraky</translation>
 <translation id="1395262318152388157">Posuvník přehrávání</translation>
 <translation id="1395730723686586365">Byl spuštěn nástroj na aktualizaci</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Provádíte upgrade na nestabilní verzi systému <ph name="PRODUCT_NAME" />, která obsahuje funkce ve fázi vývoje. Bude docházet k selháním a neočekávaným chybám. Pokračujte s nejvyšší opatrností.</translation>
 <translation id="1415990189994829608">Rozšíření <ph name="EXTENSION_NAME" /> (ID <ph name="EXTENSION_ID" />) není pro tento typ relace povoleno.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Nezdařilo se vytvořit náhodný soukromý klíč RSA.</translation>
 <translation id="1420834118113404499">Licence médií</translation>
 <translation id="1420920093772172268">Chcete-li povolit párování, <ph name="TURN_ON_BLUETOOTH_LINK" />.</translation>
 <translation id="1426410128494586442">Ano</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opírovat adresu zvukového souboru</translation>
 <translation id="1465827627707997754">Kousek pizzy</translation>
 <translation id="1467432559032391204">Doleva</translation>
-<translation id="1467999917853307373">Stránka <ph name="URL" /> chce trvale ukládat data v zařízení.</translation>
-<translation id="1470719357688513792">Nové nastavení souborů cookie se projeví po opětovném načtení stránky.</translation>
 <translation id="1470811252759861213">Chcete-li rozšíření přenést do všech počítačů, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Soubor <ph name="FILENAME" /> nelze nahrát. Na Disku Google je nedostatek místa.</translation>
 <translation id="1475502736924165259">Máte založené certifikáty, které se nehodí do žádné z ostatních kategorií</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Velký kurzor myši</translation>
 <translation id="1543284117603151572">Importováno z aplikace Edge</translation>
 <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="1545786162090505744">URL se značkou %s místo dotazu</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="1547572086206517271">Je vyžadováno obnovení</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />kontrolovat<ph name="END_BOLD" />, které weby uživatel navštívil, a
     <ph name="BEGIN_BOLD" />spravovat<ph name="END_BOLD" /> jiná nastavení.</translation>
 <translation id="1648943974594387137">Přihlašovací údaje jsou zastaralé</translation>
-<translation id="1649641629389702691">&lt;Nezobrazené řádky: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Zobrazit možnosti vstupu</translation>
 <translation id="1650709179466243265">Přidat www. a .com a otevřít adresu</translation>
 <translation id="1651008383952180276">Musíte zadat dvakrát stejnou heslovou frázi</translation>
-<translation id="1652972346408808053">Heslo bylo uloženo. Svá hesla můžete zobrazit v libovolném zařízení na adrese <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Přidejte tiskárnu do služby Google Cloud Print a tiskněte odkudkoli.}few{Přidejte # tiskárny do služby Google Cloud Print a tiskněte odkudkoli.}many{Přidejte # tiskárny do služby Google Cloud Print a tiskněte odkudkoli.}other{Přidejte # tiskáren do služby Google Cloud Print a tiskněte odkudkoli.}}</translation>
 <translation id="1657406563541664238">Pomozte <ph name="PRODUCT_NAME" /> zlepšit tím, že budete Googlu automaticky zasílat statistiky využití a zprávy o selhání aplikace</translation>
 <translation id="1658424621194652532">Tato stránka používá váš mikrofon.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Pokračovat v blokování souborů cookie</translation>
 <translation id="204622017488417136">V zařízení bude obnovena předchozí verze prohlížeče Chrome. Budou odstraněny všechny uživatelské účty a místní data. Tuto operaci nelze vrátit zpět.</translation>
 <translation id="2048182445208425546">Přístup k provozu na síti</translation>
-<translation id="2049137146490122801">Přístup k místním souborům v tomto počítači zakázal správce.</translation>
 <translation id="204914487372604757">Vytvořit zástupce</translation>
 <translation id="2050339315714019657">Na výšku</translation>
 <translation id="2053312383184521053">Údaje o stavu nečinnosti</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Dosud nenačteno</translation>
 <translation id="2107494551712864447">Přidejte otisk prstu</translation>
-<translation id="2111843886872897694">Aplikace musí být poskytovány hostitelem, kterého ovlivňují.</translation>
 <translation id="2112877397266219826">Chcete-li tuto službu nastavit, zapněte dotykové ovládání.</translation>
 <translation id="21133533946938348">Připnout kartu</translation>
 <translation id="2113479184312716848">&amp;Otevřít soubor...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Sdělte nám, co se děje</translation>
 <translation id="2229161054156947610">Zbývá více než hodina</translation>
 <translation id="222931766245975952">Soubor byl zkrácen</translation>
-<translation id="222949136907494149">Web <ph name="URL" /> chce použít polohu vašeho počítače.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Složku „<ph name="FOLDER_NAME" />“ se nepodařilo vytvořit. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kliknutím zobrazíte dnešní sváteční logo</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Vždy blokovat přístup k mikrofonu</translation>
 <translation id="2367972762794486313">Zobrazit aplikace</translation>
 <translation id="2371076942591664043">Po dokončení otevřít</translation>
-<translation id="237336063998926520">Určit polohu podle IP adresy</translation>
 <translation id="2377319039870049694">Přepnout na zobrazení seznamu</translation>
 <translation id="2377667304966270281">Chyby stránkování na disk</translation>
 <translation id="2378075407703503998">Vybrané soubory: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239">Aplikace <ph name="APP_NAME" /> chce zkopírovat souboru ze svazku <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID klíče certifikační autority</translation>
 <translation id="2462752602710430187">Byla přidána tiskárna <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importovat záložky</translation>
 <translation id="2464089476039395325">Proxy server protokolu HTTP</translation>
 <translation id="2468902267404883140">K telefonu se nelze připojit. Zkontrolujte, zda používáte kompatibilní telefon Android, který je zapnutý a který máte u sebe. &lt;a&gt;Další informace&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Nepodporovaná rozšíření byla zakázána</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Odinstalovat</translation>
 <translation id="2487067538648443797">Přidat novou záložku</translation>
 <translation id="248861575772995840">Telefon nebyl nalezen. Zkontrolujte, zda je v zařízení <ph name="DEVICE_TYPE" /> zapnut Bluetooth. &lt;a&gt;Další informace&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Plugin <ph name="PLUGIN_NAME" /> neodpovídá.</translation>
 <translation id="2489428929217601177">z posledního dne</translation>
 <translation id="2489918096470125693">Přidat &amp;složku...</translation>
 <translation id="249113932447298600">Je nám líto, zařízení <ph name="DEVICE_LABEL" /> není v současné době podporováno.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Blahopřejeme! Datová služba <ph name="NAME" /> byla aktivována a je připravena k použití.</translation>
 <translation id="2566124945717127842">Funkce Powerwash zařízení <ph name="IDS_SHORT_PRODUCT_NAME" /> resetuje na tovární nastavení.</translation>
 <translation id="2568774940984945469">Kontejner informačního panelu</translation>
-<translation id="2570000010887652771">Využívání dat sníženo.</translation>
 <translation id="257088987046510401">Motivy</translation>
 <translation id="2572032849266859634">Byl udělen přístup pouze ke čtení ke svazku <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Vybrat obrázek a jméno</translation>
 <translation id="2575247648642144396">Ikona se zobrazí, když bude možné rozšíření použít na aktuální stránce. Rozšíření aktivujete kliknutím na ikonu nebo klávesovou zkratkou <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Telefon nebyl nalezen. Zkontrolujte, zda je zařízení <ph name="DEVICE_TYPE" /> připojeno k síti Wi-Fi nebo k mobilní síti. &lt;a&gt;Další informace&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Soubor CRX s tímto názvem již existuje.</translation>
 <translation id="257779572837908839">Nastavit jako Chromebox pro videokonference</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Svazek nelze odpojit<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Smažete-li certifikát certifikační autority (CA), prohlížeč již nebude důvěřovat žádným certifikátům vydaným touto CA.</translation>
 <translation id="2653659639078652383">Odeslat</translation>
 <translation id="265390580714150011">Hodnota pole</translation>
-<translation id="2654286334048437383">Exportovat záložky</translation>
 <translation id="2655386581175833247">Certifikát uživatele:</translation>
 <translation id="2660779039299703961">Událost</translation>
 <translation id="2661146741306740526">16 : 9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Přidat galerii médií podle adresáře</translation>
 <translation id="2908789530129661844">Oddálit obrazovku</translation>
 <translation id="2910318910161511225">Připojte se k síti a zkuste to znovu</translation>
-<translation id="2912905526406334195">Stránka <ph name="HOST" /> chce použít váš mikrofon.</translation>
 <translation id="2913331724188855103">Povolit webům ukládat a číst data souborů cookie (doporučeno)</translation>
 <translation id="2916073183900451334">Stiskem klávesy Tab zvýrazníte na webové stránce odkazy a pole formulářů</translation>
 <translation id="2916745397441987255">Hledat rozšíření</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">Okno nahoru</translation>
 <translation id="3053013834507634016">Použití klíče certifikátu</translation>
 <translation id="3057861065630527966">Zálohovat fotky a videa</translation>
-<translation id="3060379269883947824">Zapnout hlasovou odezvu po výběru</translation>
+<translation id="3060379269883947824">Zapnout poslech vybraného textu</translation>
 <translation id="3061707000357573562">Služba oprav</translation>
 <translation id="3064410671692449875">Nedostatek dat</translation>
 <translation id="3065041951436100775">Zpětná vazba k ukončení procesu karty</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Poslouchám…</translation>
 <translation id="3141917231319778873">Zadaný požadavek v zařízení <ph name="DEVICE_NAME" /> není podporován.</translation>
 <translation id="3144126448740580210">HOTOVO</translation>
-<translation id="3144135466825225871">Nepodařilo se nahradit soubor CRX. Zkontrolujte, zda je tento soubor používán.</translation>
 <translation id="3144647712221361880">Otevřít odkaz jako</translation>
 <translation id="3149510190863420837">Aplikace Chrome</translation>
 <translation id="3150927491400159470">Úplné opětovné načtení</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Vždy spouštět na všech webech</translation>
 <translation id="3312424061798279731">Povolené jazyky</translation>
 <translation id="3312903956926554846">Instalovat na plochu</translation>
-<translation id="3313473140726597081">Počáteční stránka byla změněna na <ph name="URL" />. Rozšíření, která počáteční stránku mění, můžete zakázat kliknutím na Obnovit.</translation>
 <translation id="3313590242757056087">Na adrese <ph name="MANAGEMENT_URL" /> můžete nakonfigurovat, které weby si dozorovaný uživatel může zobrazit.
 Pokud nezměníte výchozí nastavení, uživatel <ph name="USER_DISPLAY_NAME" /> bude moci prohlížet všechny weby na internetu.</translation>
 <translation id="3313622045786997898">Hodnota podpisu certifikátu</translation>
@@ -1540,7 +1517,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">O aplikaci</translation>
 <translation id="3335947283844343239">Znovu otevřít zavřenou kartu</translation>
-<translation id="3337069537196930048">Plugin <ph name="PLUGIN_NAME" /> byl blokován, protože je zastaralý.</translation>
 <translation id="3340978935015468852">nastavení</translation>
 <translation id="3341703758641437857">Umožnit přístup k adresám URL souborů</translation>
 <translation id="3342361181740736773">Rozšíření „<ph name="TRIGGERING_EXTENSION_NAME" />“ chce toto rozšíření odstranit.</translation>
@@ -1575,7 +1551,6 @@
 <translation id="3386219708421216619">Byla přidána záložka</translation>
 <translation id="3389312115541230716">Klikněte pravým tlačítkem na ikonu <ph name="SMALL_PRODUCT_LOGO" /> na hlavním panelu.</translation>
 <translation id="3391716558283801616">Karta 7</translation>
-<translation id="3394150261239285340">Webová stránka <ph name="HOST" /> chce použít váš mikrofon a kameru.</translation>
 <translation id="3396331542604645348">Zvolená tiskárna není k dispozici nebo není správně nainstalovaná. Zkontrolujte tiskárnu nebo vyberte jinou.</translation>
 <translation id="3399432415385675819">Oznámení budou zakázána</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1687,10 +1662,8 @@
 <translation id="3550915441744863158">Chrome se automaticky aktualizuje, abyste měli vždy nejnovější verzi</translation>
 <translation id="3551320343578183772">Zavřít kartu</translation>
 <translation id="3552780134252864554">Při ukončení se vymaže</translation>
-<translation id="355298399003313926"><ph name="URL" /> chce reagovat na události přístupnosti.</translation>
 <translation id="3555812735919707620">Odstranit rozšíření</translation>
 <translation id="3556000484321257665">Vyhledávač byl změněn na: <ph name="URL" /></translation>
-<translation id="3561217442734750519">Vstupní hodnota pro soukromý klíč musí být platná cesta.</translation>
 <translation id="3563432852173030730">Stažení aplikace pro režim veřejného terminálu se nezdařilo.</translation>
 <translation id="3564334271939054422">Síť Wi-Fi, kterou používáte (<ph name="NETWORK_ID" />), může vyžadovat, abyste navštívili její přihlašovací stránku.</translation>
 <translation id="3564708465992574908">Úrovně přiblížení</translation>
@@ -1712,7 +1685,6 @@
 <translation id="3593965109698325041">Omezení názvu certifikátu</translation>
 <translation id="3596235046596950091">Aktivovat cloudové služby</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="3600456501114769456">Správce přístup k místním souborům v tomto zařízení zakázal.</translation>
 <translation id="3600792891314830896">Ztlumit weby, které přehrávají zvuky</translation>
 <translation id="3603177256297531067">Tuto stránku se nepodařilo přeložit</translation>
 <translation id="3603533104205588786">Stránku přidáte do záložek kliknutím na hvězdičku</translation>
@@ -1737,7 +1709,6 @@
 <translation id="3625258641415618104">Snímky obrazovky zakázány</translation>
 <translation id="3625870480639975468">Resetovat lupu</translation>
 <translation id="3626281679859535460">Jas</translation>
-<translation id="3627052133907344175">Rozšíření vyžaduje rozhraní <ph name="IMPORT_NAME" /> s minimální verzí <ph name="IMPORT_VERSION" />, máte však nainstalovanou pouze verzi <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Zbývá méně než minuta</translation>
 <translation id="3627588569887975815">Otevřít odkaz v &amp;anonymním okně</translation>
 <translation id="3627671146180677314">Čas obnovení certifikátu Netscape</translation>
@@ -1767,7 +1738,6 @@
 <translation id="3668570675727296296">Nastavení jazyka</translation>
 <translation id="3668823961463113931">Obslužné nástroje</translation>
 <translation id="3670229581627177274">zapněte Bluetooth</translation>
-<translation id="3672159315667503033">Stránka <ph name="URL" /> chce trvale ukládat data v místním počítači.</translation>
 <translation id="3672681487849735243">Byla zjištěna chyba z výroby</translation>
 <translation id="367645871420407123">Chcete-li heslo uživatele root nastavit na výchozí hodnotu testovacího obrazu, ponechte toto pole prázdné.</translation>
 <translation id="3678156199662914018">Rozšíření: <ph name="EXTENSION_NAME" /></translation>
@@ -1845,11 +1815,9 @@
 <translation id="3786301125658655746">Jste offline</translation>
 <translation id="3788401245189148511">Mohlo by:</translation>
 <translation id="3789841737615482174">Instalovat</translation>
-<translation id="3790146417033334899">Plugin <ph name="PLUGIN_NAME" /> pracuje pouze v režimu tradiční plochy.</translation>
 <translation id="379082410132524484">Platnost vaší karty vypršela.</translation>
 <translation id="3792890930871100565">Odpojit tiskárny</translation>
 <translation id="379422718204375917">Přihlašujte se ke svému účtu pomocí funkce Smart Lock</translation>
-<translation id="3794595850995182458">Opustit stránku</translation>
 <translation id="3796648294839530037">Oblíbené sítě:</translation>
 <translation id="3797900183766075808">&amp;Vyhledat „<ph name="SEARCH_TERMS" />“ pomocí vyhledávače <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Umožňuje zapnout a vypnout funkci kliknutí klepnutím</translation>
@@ -1979,7 +1947,6 @@
 <translation id="3979748722126423326">Aktivovat <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Byl zadán neplatný typ uložení.</translation>
 <translation id="3983586614702900908">zařízení od neznámého dodavatele</translation>
-<translation id="3984413272403535372">Při podepisování rozšíření došlo k chybě.</translation>
 <translation id="3987938432087324095">Pardon, nerozumím.</translation>
 <translation id="3988996860813292272">Vyberte časové pásmo</translation>
 <translation id="3989635538409502728">Odhlásit se</translation>
@@ -2035,7 +2002,6 @@
 <translation id="4087470595660267445">Instalujte do svého Chromebooku aplikace a hry z Google Play. &lt;a target="_blank" href="<ph name="URL" />"&gt;Další informace&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Přijmout pozvání pro skupinu</translation>
 <translation id="4090103403438682346">Aktivuje ověřený přístup.</translation>
-<translation id="4090404313667273475">K zobrazení některých prvků na této stránce je vyžadován plugin <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Toto rozšíření je spravováno a nelze jej odstranit.)</translation>
 <translation id="4091434297613116013">listy papíru</translation>
 <translation id="4093955363990068916">Místní soubor:</translation>
@@ -2369,7 +2335,6 @@
 <translation id="4714531393479055912">Prohlížeč <ph name="PRODUCT_NAME" /> může nyní synchronizovat vaše hesla.</translation>
 <translation id="4715553623069266137">velmi krátká (0,8 s)</translation>
 <translation id="4716483597559580346">Kvůli lepšímu zabezpečení zařízení vyčistěte pomocí funkce Powerwash</translation>
-<translation id="471800408830181311">Vytvoření soukromého klíče se nezdařilo.</translation>
 <translation id="4720113199587244118">Přidat zařízení</translation>
 <translation id="4720185134442950733">Mobilní datová síť</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> sdílí vaši obrazovku.</translation>
@@ -2506,7 +2471,6 @@
 <translation id="4917385247580444890">Silný</translation>
 <translation id="4918021164741308375">Web <ph name="ORIGIN" /> chce komunikovat s rozšířením <ph name="EXTENSION_NAME" /></translation>
 <translation id="4918086044614829423">Přijmout</translation>
-<translation id="4919810557098212913">Webová stránka <ph name="HOST" /> chce použít vaši kameru.</translation>
 <translation id="4920887663447894854">Těmto webům bylo na této stránce zakázáno sledování vaší polohy.</translation>
 <translation id="492299503953721473">Odstranit aplikace Android</translation>
 <translation id="4923279099980110923">Ano, chci pomoci</translation>
@@ -2547,7 +2511,6 @@
 <translation id="4980805016576257426">Toto rozšíření obsahuje malware.</translation>
 <translation id="498294082491145744">Změnit vaše nastavení, která řídí přístup webů k funkcím, jako jsou soubory cookie, JavaScript, pluginy, určování geografické polohy, mikrofon, fotoaparát apod.</translation>
 <translation id="4988526792673242964">Stránky</translation>
-<translation id="4988792151665380515">Export veřejného klíče se nezdařil.</translation>
 <translation id="49896407730300355">Otočit &amp;proti směru hodinových ručiček</translation>
 <translation id="4989966318180235467">Prozkoumat stránku na &amp;pozadí</translation>
 <translation id="4990343175649730969">Stáhnout nástroj Chrome Cleanup Tool</translation>
@@ -2576,7 +2539,6 @@
 <translation id="5026874946691314267">Příště tuto zprávu nezobrazovat</translation>
 <translation id="5027550639139316293">E-mailový certifikát</translation>
 <translation id="5027562294707732951">Přidat rozšíření</translation>
-<translation id="5028012205542821824">Instalace není povolena.</translation>
 <translation id="5029568752722684782">Vymazat kopii</translation>
 <translation id="5030338702439866405">Vydal:</translation>
 <translation id="5036662165765606524">Nepovolovat žádnému webu automatické stahování několika souborů</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">Došlo k chybě.</translation>
 <translation id="5094721898978802975">Komunikovat se spolupracujícími nativními aplikacemi</translation>
 <translation id="5097002363526479830">Připojení k síti <ph name="NAME" /> se nezdařilo: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nelze najít absolutní cestu k adresáři, který chcete zabalit.</translation>
 <translation id="5099354524039520280">nahoru</translation>
 <translation id="5100114659116077956">Abychom vám mohli nabídnout nejnovější funkce, je potřeba Chromebox aktualizovat.</translation>
 <translation id="5101042277149003567">Otevřít všechny záložky</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">Zobrazit ve složce</translation>
 <translation id="5171045022955879922">Vyhledávejte či zadejte URL</translation>
 <translation id="5171343362375269016">Stránkovaná paměť</translation>
-<translation id="5175870427301879686">Stránka <ph name="URL" /> chce trvale ukládat data v místním počítači.</translation>
 <translation id="5177479852722101802">Blokovat přístup k webové kameře a mikrofonu i nadále</translation>
 <translation id="5177526793333269655">Zobrazení miniatur</translation>
 <translation id="5177549709747445269">Používáte mobilní datové připojení</translation>
@@ -2739,7 +2699,6 @@
 <translation id="529175790091471945">Naformátovat toto zařízení</translation>
 <translation id="5293170712604732402">Obnovit nastavení na původní výchozí hodnoty</translation>
 <translation id="5298219193514155779">Autor motivu</translation>
-<translation id="5298363578196989456">Rozšíření <ph name="IMPORT_NAME" /> nelze importovat, protože se nejedná o sdílený modul.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Všechny údaje jsou šifrovány pomocí vlastního hesla pro synchronizaci.</translation>
 <translation id="5300589172476337783">Zobrazit</translation>
@@ -2767,7 +2726,6 @@
 <translation id="5331425616433531170">Rozšíření <ph name="CHROME_EXTENSION_NAME" /> žádá o spárování</translation>
 <translation id="5332624210073556029">Časové pásmo:</translation>
 <translation id="5334142896108694079">Mezipaměť skriptů</translation>
-<translation id="533433379391851622">Očekávaná verze byla <ph name="EXPECTED_VERSION" />. Skutečná verze byla <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Zobrazit zdrojový kód</translation>
 <translation id="5335458522276292100">Probíhá zálohování na <ph name="BEGIN_LINK" />Disk Google<ph name="END_LINK" />: <ph name="FILE_COUNT" /></translation>
 <translation id="5337771866151525739">Nainstalováno třetí stranou.</translation>
@@ -2805,7 +2763,6 @@
 <translation id="5390100381392048184">Povolit webům přehrávat zvuky</translation>
 <translation id="5390284375844109566">Indexovaná databáze</translation>
 <translation id="5390743329570580756">Komu odesílat</translation>
-<translation id="5396126354477659676">Plugin <ph name="PEPPER_PLUGIN_NAME" /> v doméně <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získat přístup do vašeho počítače.</translation>
 <translation id="5397794290049113714">Vy</translation>
 <translation id="5398572795982417028">Odkaz na stránku mimo rozsah, limit je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Byly zablokovány reklamy</translation>
@@ -2867,7 +2824,6 @@
 <translation id="5485754497697573575">Obnovit všechny karty</translation>
 <translation id="5486261815000869482">Potvrďte heslo</translation>
 <translation id="5486275809415469523">Aplikace <ph name="APP_NAME" /> sdílí vaši obrazovku s kartou <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Musí existovat vstupní hodnota pro soukromý klíč</translation>
 <translation id="5486561344817861625">Simulovat restart prohlížeče</translation>
 <translation id="5487521232677179737">Vymazat data</translation>
 <translation id="5488093641312826914">Položka „<ph name="COPIED_ITEM_NAME" />“ byla zkopírována</translation>
@@ -2950,7 +2906,6 @@
 <translation id="5600706100022181951">Ke stažení aktualizace bude použito <ph name="UPDATE_SIZE_MB" /> MB mobilních dat. Chcete pokračovat?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Jiné vyhledávače</translation>
-<translation id="5606674617204776232">Plugin <ph name="PEPPER_PLUGIN_NAME" /> v doméně <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získat přístup k vašemu zařízení.</translation>
 <translation id="5608580678041221894">Oblast oříznutí můžete upravit nebo přesunout klepnutím na následující klávesy</translation>
 <translation id="5609231933459083978">Aplikace je pravděpodobně neplatná.</translation>
 <translation id="5610038042047936818">Přepnout na režim fotoaparátu</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">Přeloženo</translation>
 <translation id="5991049340509704927">Zvětšit</translation>
 <translation id="5993332328670040093">Vaše využití dat již nebude měřeno</translation>
-<translation id="6003177993629630467">Je možné, že se <ph name="PRODUCT_NAME" /> nebude moci aktualizovat.</translation>
 <translation id="600424552813877586">Neplatná aplikace.</translation>
 <translation id="6005695835120147974">Směrovač médií</translation>
 <translation id="6006484371116297560">Klasické</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">Zálohování do cloudu</translation>
 <translation id="6040143037577758943">Zavřít</translation>
 <translation id="6040852767465482106">Anonymní identita</translation>
+<translation id="6041155700700864984">Ukončit režim celé obrazovky</translation>
 <translation id="604124094241169006">Automaticky</translation>
 <translation id="6042169520002885235">Vyberte výrobce a model tiskárny</translation>
 <translation id="6042308850641462728">Více</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">Běžné opětovné načtení</translation>
 <translation id="6059652578941944813">Hierarchie certifikátů</translation>
 <translation id="6059925163896151826">Zařízení USB</translation>
-<translation id="6060435378291459521">Plugin <ph name="PLUGIN_NAME" /> selhal.</translation>
 <translation id="6064217302520318294">Zámek obrazovky</translation>
 <translation id="6065289257230303064">Atributy adresáře subjektu certifikátu</translation>
 <translation id="6068338049763724728">Povolit vzdálenou registraci</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">Umožňuje upravit rozlišení obrazovky</translation>
 <translation id="6238923052227198598">Zobrazovat poslední poznámku na obrazovce uzamčení</translation>
 <translation id="6239558157302047471">Znovu načíst &amp;rámec</translation>
-<translation id="624022915548992686">Opustit stránku</translation>
 <translation id="6241530762627360640">Přístup k informacím o zařízeních Bluetooth spárovaných s vaším systémem a objevování zařízení Bluetooth v okolí</translation>
 <translation id="6243774244933267674">Server není dostupný</translation>
 <translation id="6246413617632217567">Import dozorovaného uživatele se nezdařil. Zkontrolujte místo na disku a oprávnění a zkuste to znovu.</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">Neznámá chyba sítě</translation>
 <translation id="6313641880021325787">UKONČIT VIRTUÁLNÍ REALITU</translation>
 <translation id="6314819609899340042">V tomto zařízení <ph name="IDS_SHORT_PRODUCT_NAME" /> jste úspěšně aktivovali funkce ladění.</translation>
-<translation id="6315343732431721770">Mezi počáteční stránky byla přidána stránka <ph name="URL" />. Rozšíření, která počáteční stránku mění, můžete zakázat kliknutím na Obnovit.</translation>
 <translation id="6315493146179903667">Vše zobrazit navrchu</translation>
 <translation id="6316806695097060329">Toto zařízení <ph name="SHORT_PRODUCT_NAME" /> bylo navrženo tak, aby vám umožňovalo využívat to nejlepší z webu.</translation>
 <translation id="6317318380444133405">Již není podporováno.</translation>
 <translation id="6317369057005134371">Čekání na okno aplikace...</translation>
 <translation id="6318407754858604988">Stahování bylo zahájeno</translation>
-<translation id="6322279351188361895">Čtení soukromého klíče se nezdařilo.</translation>
 <translation id="6325191661371220117">Deaktivovat automatické spouštění</translation>
 <translation id="6326175484149238433">Odstranit z Chromu</translation>
 <translation id="6326855256003666642">Aktivity zabraňující ukončení</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">Zvolte typy dat, která chcete synchronizovat</translation>
 <translation id="6333064448949140209">Soubor bude odeslán do Googlu k ladění</translation>
 <translation id="6333834492048057036">Přejít na adresní řádek za účelem vyhledávání</translation>
-<translation id="6336907568130557310">Vaše hesla uvidí každý, kdo může zobrazit exportovaný soubor. Soubor s nikým nesdílejte a po importu jej smažte.</translation>
 <translation id="6339668969738228384">Vytvořit nový profil pro uživatele <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">K serveru se nelze se připojit. Zkontrolujte připojení k síti a zkuste to znovu. Pokud problém přetrvává, restartujte Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">Weby mohou ukládat a číst data souborů cookie</translation>
 <translation id="6388771388956873507">Vyhledejte senzor otisků prstů na zařízení a dotkněte se ho prstem</translation>
 <translation id="6390799748543157332">Stránky, které otevřete v tomto okně, nebudou uvedeny v historii prohlížeče a nezanechají v počítači po zavření všech oken hosta žádné stopy, např. soubory cookie. Všechny stažené soubory však budou zachovány.</translation>
-<translation id="6391538222494443604">Vstupní adresář musí existovat.</translation>
 <translation id="6395423953133416962">Odesílat <ph name="BEGIN_LINK1" />informace o systému<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />metriky<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Přestat mluvit</translation>
 <translation id="6397592254427394018">Otevřít všechny záložky v &amp;anonymním okně</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">Spravovat blokování JavaScriptu...</translation>
 <translation id="6459488832681039634">Pro hledání použít výběr</translation>
 <translation id="6460601847208524483">Najít další</translation>
-<translation id="6462080265650314920">Aplikace musí být poskytovány s typem obsahu <ph name="CONTENT_TYPE" />.</translation>
 <translation id="6462082050341971451">Jste tam ještě?</translation>
 <translation id="6463795194797719782">&amp;Upravit</translation>
 <translation id="6466988389784393586">&amp;Otevřít všechny záložky</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Chcete, aby Google tuto stránku přeložil z jazyka <ph name="SOURCE_LANGUAGE" /> do jazyka <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Je připojeno polohovací zařízení</translation>
-<translation id="6677037229676347494">Očekávané ID bylo <ph name="EXPECTED_ID" />. Skutečné ID bylo <ph name="NEW_ID" />.</translation>
 <translation id="6678717876183468697">Adresa URL dotazu</translation>
 <translation id="6680028776254050810">Přepnout uživatele</translation>
 <translation id="6680442031740878064">Volné místo: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">Informace shromažďované Googlem můžete v <ph name="BEGIN_LINK" />Nastavení<ph name="END_LINK" /> kdykoliv upravit.</translation>
 <translation id="6904344821472985372">Zrušit přístup k souboru</translation>
 <translation id="6904655473976120856">Ukončíte stisknutím tlačítka aplikace</translation>
-<translation id="6904713658985136356">Stránka <ph name="HOST" /> chce sdílet vaši obrazovku</translation>
-<translation id="6909461304779452601">Nelze přidávat aplikace, rozšíření a uživatelské skripty z tohoto webu.</translation>
 <translation id="6910211073230771657">Smazáno</translation>
 <translation id="691024665142758461">Stáhnout několik souborů</translation>
 <translation id="6911324888870229398">Připojení k síti bylo ztraceno. Zkontrolujte připojení nebo zkuste použít jinou síť Wi-Fi.</translation>
@@ -4100,7 +4045,6 @@
 <translation id="747114903913869239">Chyba: Nelze dekódovat rozšíření</translation>
 <translation id="7473891865547856676">Ne, děkuji</translation>
 <translation id="747459581954555080">Obnovit vše</translation>
-<translation id="7475034671245341386">Plugin <ph name="PLUGIN_NAME" /> narazil na chybu.</translation>
 <translation id="7475671414023905704">Adresa URL pro získání ztraceného hesla Netscape</translation>
 <translation id="7476454130948140105">Aktualizaci nelze zahájit z důvodu slabé baterie (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Pokud jste zapomněli heslovou frázi, zastavte a resetujte synchronizaci prostřednictvím <ph name="BEGIN_LINK" />Hlavního panelu Google<ph name="END_LINK" />.</translation>
@@ -4137,7 +4081,6 @@
 <translation id="7507930499305566459">Certifikát stavového odpovídače</translation>
 <translation id="7508545000531937079">Prezentace</translation>
 <translation id="7513029293694390567">Přihlašovat se na weby automaticky pomocí uložených identifikačních údajů. Když je tato funkce vypnutá, budete před každým přihlášením na web požádáni o potvrzení.</translation>
-<translation id="7515670329462166359">Web <ph name="URL" /> chce vaše zařízení jedinečně identifikovat za účelem přehrání chráněného obsahu.</translation>
 <translation id="7517569744831774757">Obnovit nastavení na původní výchozí hodnoty</translation>
 <translation id="7517786267097410259">Vytvořte heslo –</translation>
 <translation id="7518150891539970662">Protokoly WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4165,7 +4108,6 @@
 <translation id="7563991800558061108">Pokud chcete po této chybě systém obnovit, je třeba se na přihlašovací obrazovce přihlásit k účtu Google. Pak se z účtu Google můžete odhlásit a zkusit dozorovaného uživatele vytvořit znovu.</translation>
 <translation id="756445078718366910">Otevřít okno prohlížeče</translation>
 <translation id="7564847347806291057">Ukončit proces</translation>
-<translation id="7565291891798266313">Vyhledávač byl změněn na <ph name="URL" />. Rozšíření, která mění vyhledávač, můžete zakázat kliknutím na Obnovit.</translation>
 <translation id="7566118625369982896">Spravovat odkazy na aplikace ve službě Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Vymazání údajů Chromu</translation>
@@ -4174,7 +4116,6 @@
 <translation id="7573172247376861652">Nabití baterie</translation>
 <translation id="7576032389798113292">6:4</translation>
 <translation id="7576690715254076113">Kompletovat</translation>
-<translation id="7577815336900970562">Určit polohu podle sítě Wi-Fi nebo mobilní sítě</translation>
 <translation id="7579149537961810247">Ztlumit weby</translation>
 <translation id="7580671184200851182">Přehrávat ve všech reproduktorech stejný zvuk (mono)</translation>
 <translation id="7581462281756524039">Nástroj na vyčištění</translation>
@@ -4281,6 +4222,7 @@
 <translation id="7773726648746946405">Úložiště relace</translation>
 <translation id="7781335840981796660">Veškeré uživatelské účty a místní data budou odebrána.</translation>
 <translation id="7782102568078991263">Žádné další návrhy z Googlu</translation>
+<translation id="778330624322499012">Nelze načíst plugin <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Tento soubor byl zablokován nastavením zabezpečení vašeho počítače.</translation>
 <translation id="7786207843293321886">Odhlásit hosta</translation>
 <translation id="7786889348652477777">Znovu načíst &amp;aplikaci</translation>
@@ -4443,7 +4385,6 @@
 <translation id="8001504501378762252">Nějaký web vám možná odcizil heslo</translation>
 <translation id="8004582292198964060">Prohlížeč</translation>
 <translation id="8008356846765065031">Internet byl odpojen. Zkontrolujte prosím své internetové připojení.</translation>
-<translation id="8008765610824028412">Plugin <ph name="PLUGIN_NAME" /> nelze načíst.</translation>
 <translation id="8008818777654712271">Automaticky odesílat část informací o systému a obsahu stránek do Googlu s cílem pomoci rozpoznávat nebezpečné aplikace a weby.</translation>
 <translation id="8012382203418782830">Tato stránka byla přeložena.</translation>
 <translation id="8014154204619229810">Nástroj na aktualizaci je momentálně spuštěn. Za chvilku stránku obnovte a prohlédněte si stav.</translation>
@@ -4560,7 +4501,6 @@
 <translation id="8191230140820435481">Spravovat aplikace, rozšíření a motivy</translation>
 <translation id="8191453843330043793">Překladač proxy serverů V8</translation>
 <translation id="8195027750202970175">Velikost na disku</translation>
-<translation id="8195739004487400241">Vaše domovská stránka byla změněna na <ph name="URL" />. Chcete-li rozšíření, která mění domovskou stránku, zakázat, klikněte na Obnovit.</translation>
 <translation id="8199300056570174101">Vlastnosti sítě (služba) a zařízení</translation>
 <translation id="8200772114523450471">Pokračovat</translation>
 <translation id="8202160505685531999">Chcete-li aktualizovat profil zařízení <ph name="DEVICE_TYPE" />, znovu zadejte heslo.</translation>
@@ -4604,7 +4544,6 @@
 <translation id="8261378640211443080">Toto rozšíření není uvedeno na webu <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohlo být přidáno bez vašeho vědomí.</translation>
 <translation id="8261387128019234107">Přidat účet pro profil <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Smazat</translation>
-<translation id="826246685091802258">Příznak <ph name="BAD_FLAG" /> v tomto sestavení není implementován.</translation>
 <translation id="8263744495942430914">Stránka <ph name="FULLSCREEN_ORIGIN" /> deaktivovala váš ukazatel myši.</translation>
 <translation id="8264718194193514834">Rozšíření <ph name="EXTENSION_NAME" /> spustilo režim celé obrazovky.</translation>
 <translation id="8270242299912238708">Dokumenty PDF</translation>
@@ -4705,6 +4644,7 @@
 <translation id="8454288007744638700">Případně vyberte novou síť:</translation>
 <translation id="845627346958584683">Čas vypršení platnosti</translation>
 <translation id="8456681095658380701">Neplatný název</translation>
+<translation id="8457451314607652708">Import záložek</translation>
 <translation id="8460336040822756677">Pokud v zařízení <ph name="DEVICE_TYPE" /> vypnete funkci Smart Lock, nebudete moci svá zařízení Chrome odemykat pomocí telefonu. Budete muset zadat heslo.</translation>
 <translation id="8461329675984532579">Název domácího poskytovatele</translation>
 <translation id="84613761564611563">Požadavek uživatelského rozhraní na konfiguraci sítě byl odeslán. Čekejte prosím...</translation>
@@ -4736,7 +4676,6 @@
 <translation id="850875081535031620">Nebyl nalezen žádný škodlivý software</translation>
 <translation id="8512476990829870887">Ukončit proces</translation>
 <translation id="851263357009351303">Vždy povolovat zobrazování obrázků z webu <ph name="HOST" /></translation>
-<translation id="8513191386157529469">Probíhá ladění tohoto prohlížeče nástrojem <ph name="CLIENT_NAME" />.</translation>
 <translation id="8521475323816527629">Dostaňte se rychle k aplikacím</translation>
 <translation id="8523493869875972733">Uchovat změny</translation>
 <translation id="8523849605371521713">Přidáno zásadou</translation>
@@ -4792,7 +4731,6 @@
 <translation id="8620765578342452535">Konfigurovat síťová připojení</translation>
 <translation id="8620790565535071193">Vyhledávání se nezdařilo</translation>
 <translation id="8622877356447980900">Chcete tuto stránku přeložit?</translation>
-<translation id="8623004009673949077">Aplikace s atributem manifestu kiosk_only je třeba nainstalovat v režimu veřejného terminálu systému Chrome OS.</translation>
 <translation id="8624205858755890468">Umožňuje Asistentovi zobrazovat vám související informace, aplikace a akce.</translation>
 <translation id="862542460444371744">Rozšíř&amp;ení</translation>
 <translation id="8627151598708688654">Vyberte zdroj</translation>
@@ -4941,7 +4879,6 @@
 <translation id="882204272221080310">Kvůli lepšímu zabezpečení aktualizovat firmware</translation>
 <translation id="8823514049557262177">Kopírovat te&amp;xt odkazu</translation>
 <translation id="8824701697284169214">Přidat strá&amp;nku...</translation>
-<translation id="8827850355924932817">Určit polohu podle sítě Wi-Fi</translation>
 <translation id="8828933418460119530">Název DNS</translation>
 <translation id="8830796635868321089">Při použití aktuálního nastavení proxy serveru se kontrola aktualizací nezdařila. Upravte <ph name="PROXY_SETTINGS_LINK_START" />nastavení proxy serveru<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Konfiguraci sítě spravuje <ph name="USER_EMAIL" />.</translation>
@@ -4973,9 +4910,7 @@
 <translation id="8879284080359814990">Zobrazit jako &amp;kartu</translation>
 <translation id="8884961208881553398">Přidat nové služby</translation>
 <translation id="8885197664446363138">Funkce Smart Lock není k dispozici</translation>
-<translation id="8885905466771744233">Pro zadané rozšíření již existuje soukromý klíč. Použijte tento klíč znovu, nebo jej nejprve smažte.</translation>
 <translation id="8888432776533519951">Barva:</translation>
-<translation id="8892992092192084762">Motiv <ph name="THEME_NAME" /> byl nainstalován</translation>
 <translation id="8893928184421379330">Je nám líto, zařízení <ph name="DEVICE_LABEL" /> nelze rozpoznat.</translation>
 <translation id="8895454554629927345">Seznam záložek</translation>
 <translation id="88986195241502842">O stránku dolů</translation>
@@ -4984,13 +4919,12 @@
 <translation id="8899285681604219177">Nepodporovaná rozšíření jsou zakázána</translation>
 <translation id="8899551033019439140">Hledání tiskárny...</translation>
 <translation id="8899851313684471736">Otevřít o&amp;dkaz v novém okně</translation>
-<translation id="8902667442496790482">Otevřít nastavení hlasové odezvy po výběru</translation>
+<translation id="8902667442496790482">Otevřít nastavení poslechu vybraného textu</translation>
 <translation id="8903921497873541725">Přiblížit</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">Upozornění: V počítači jste aktivovali příznak --scripts-require-action, který omezuje funkce tohoto rozšíření. Ostatní zařízení však tento příznak nemusejí podporovat nebo v nich nemusí být aktivován. V těchto zařízeních má rozšíření také následující oprávnění:</translation>
 <translation id="8910146161325739742">Sdílení obrazovky</translation>
 <translation id="8910222113987937043">Změny záložek, historie, hesel a dalších nastavení se již nebudou synchronizovat do účtu Google. Vaše existující data v účtu Google uložena zůstanou a lze je spravovat na <ph name="BEGIN_LINK" />Hlavním panelu Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Rozšíření <ph name="EXTENSION_NAME" /> bylo společností Google označeno jako škodlivé a jeho instalace byla zablokována.</translation>
 <translation id="8912793549644936705">Roztáhnout</translation>
 <translation id="8915370057835397490">Načítá se návrh</translation>
 <translation id="8916476537757519021">Anonymní podrámec: <ph name="SUBFRAME_SITE" /></translation>
@@ -5096,7 +5030,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Myš s konektorem USB byla připojena</translation>
 <translation id="9076523132036239772">Litujeme, e-mailovou adresu nebo heslo nelze ověřit. Zkuste se nejdříve připojit k síti.</translation>
-<translation id="907841381057066561">Během balení se nepodařilo vytvořit dočasný soubor ZIP.</translation>
 <translation id="9084064520949870008">Otevřít jako okno</translation>
 <translation id="9088234649737575428">Plugin <ph name="PLUGIN_NAME" /> je blokován podnikovými zásadami</translation>
 <translation id="9088917181875854783">Potvrďte prosím, zda se toto přístupové heslo zobrazuje v zařízení <ph name="DEVICE_NAME" />:</translation>
@@ -5187,11 +5120,9 @@
 <translation id="939519157834106403">Identifikátor SSID</translation>
 <translation id="939598580284253335">Zadat heslovou frázi</translation>
 <translation id="939736085109172342">Nová složka</translation>
-<translation id="941543339607623937">Neplatný soukromý klíč</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> sdílí kartu Chrome a zvuk.</translation>
 <translation id="942954117721265519">Adresář neobsahuje žádné obrázky.</translation>
 <translation id="945522503751344254">Odeslat zpětnou vazbu</translation>
-<translation id="951981865514037445">Web <ph name="URL" /> chce použít polohu vašeho zařízení.</translation>
 <translation id="952992212772159698">Není aktivováno</translation>
 <translation id="9580706199804957">Ke službám Google se nelze připojit</translation>
 <translation id="958515377357646513">Klepnutím přejdete vpřed</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 0535689..1aa0dce2 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Kun omsætning til kode</translation>
 <translation id="1039337018183941703">Ugyldig eller beskadiget fil</translation>
 <translation id="1042174272890264476">Computeren leveres også med <ph name="SHORT_PRODUCT_NAME" />s RLZ-samling indbygget. RLZ tildeler et ikke-unikt, ikke-personligt identificerbart tag til at måle søgninger og <ph name="SHORT_PRODUCT_NAME" />-brug, der er drevet af en bestemt kampagne. Disse etiketter vises nogle gange i Googles søgeforespørgsler i <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> vil gemme store datamængder permanent på din enhed.</translation>
 <translation id="1046059554679513793">Hov, dette navn er allerede i brug!</translation>
 <translation id="1047431265488717055">Kopiér linkte&amp;kst</translation>
 <translation id="1047726139967079566">Tilføj denne side som bogmærke...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Vil du gendanne standardsøgemaskinen?</translation>
 <translation id="1177863135347784049">Tilpasset</translation>
 <translation id="1178581264944972037">Pause</translation>
-<translation id="1179803038870941185"><ph name="URL" /> vil gerne have fuld kontrol over dine MIDI-enheder.</translation>
 <translation id="1181037720776840403">Fjern</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kan ikek indstalleres i den lokale cache.</translation>
 <translation id="1185924365081634987">Du kan også prøve at <ph name="GUEST_SIGNIN_LINK_START" />anvende som gæst<ph name="GUEST_SIGNIN_LINK_END" /> for at udbedre denne netværksfejl.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Få adgang til en fil, der er gemt på din computer}one{Få adgang # filer, der er gemt på din computer}other{Få adgang # filer, der er gemt på din computer}}</translation>
 <translation id="1195076408729068893">Hvis du vil starte Smart Lock, skal du angive din adgangskode. Næste gang kan du bruge din telefon til at låse din <ph name="DEVICE_TYPE" /> op.</translation>
 <translation id="1195447618553298278">Ukendt fejl.</translation>
-<translation id="1196338895211115272">Den personlige nøgle kunne ikke eksporteres.</translation>
 <translation id="119738088725604856">Tag screenshot af vindue</translation>
 <translation id="1197979282329025000">Der opstod en fejl under hentningen af udskriftsegenskaber for printeren <ph name="PRINTER_NAME" />. Denne printer kunne ikke registreres med <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Lad os komme i gang</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Din administrator anbefaler en bestemt værdi for denne indstilling.</translation>
 <translation id="1225177025209879837">Behandler anmodning...</translation>
 <translation id="1225211345201532184">Hyldeelement 5</translation>
-<translation id="1225404570112441414">Føj dette website til din hylde for at bruge det når som helst.</translation>
 <translation id="1227507814927581609">Godkendelsen mislykkedes under oprettelse af forbindelse til "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">systemmenu</translation>
 <translation id="1232569758102978740">Unavngivet</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Tilføjer HTML-fil som bogmærke</translation>
 <translation id="1303671224831497365">Der blev ikke fundet nogen Bluetooth-enheder</translation>
 <translation id="1306606229401759371">Skift indstillinger</translation>
-<translation id="1307398858972670978">Få adgang til dine adgangskoder fra en hvilken som helst enhed via <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ups! Systemet kunne ikke gemme det langfristede API-adgangstoken for denne enhed.</translation>
 <translation id="1313405956111467313">Automatisk proxykonfiguration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Søg</translation>
 <translation id="1386387014181100145">Davs!</translation>
 <translation id="138784436342154190">Vil du gendanne standardopstartssiden?</translation>
-<translation id="1389297115360905376">Denne kan kun installeres via <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Åbn som almindelig fane</translation>
-<translation id="1391807639023934267">Side indlæst hurtigere.</translation>
 <translation id="1393283411312835250">Sol og skyer</translation>
 <translation id="1395262318152388157">Søgeskyder</translation>
 <translation id="1395730723686586365">Opdateringsprogrammet er startet</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Du er ved at opdatere til en ustabil version af <ph name="PRODUCT_NAME" />, der indeholder ufærdige funktioner. Nedbrud og uventede fejl kan forekomme. Vær forsigtig, hvis du fortsætter.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (udvidelses-id'et "<ph name="EXTENSION_ID" />") er ikke tilladt i denne sessionstype.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Gisp! Den tilfældige personlige RSA-nøgle kunne ikke genereres.</translation>
 <translation id="1420834118113404499">Medielicenser</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> for at tillade parring</translation>
 <translation id="1426410128494586442">Ja</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opiér webadressen til lyden</translation>
 <translation id="1465827627707997754">Pizzastykke</translation>
 <translation id="1467432559032391204">Venstre</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vil gemme data permanent på din enhed.</translation>
-<translation id="1470719357688513792">De nye indstillinger for cookies træder i kraft, når siden genindlæses.</translation>
 <translation id="1470811252759861213"><ph name="SIGN_IN_LINK" /> for at få dine udvidelser på alle dine computere.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" blev ikke uploadet. Der er ikke plads nok i Google Drev.</translation>
 <translation id="1475502736924165259">Du har lagrede certifikater, som ikke passer i nogen af de andre kategorier</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Stor musemarkør</translation>
 <translation id="1543284117603151572">Importeret fra Edge</translation>
 <translation id="1545177026077493356">Automatisk terminaltilstand</translation>
+<translation id="1545775234664667895">Installerede temaet "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL med %s i stedet for forespørgsel</translation>
 <translation id="1546280085599573572">Denne udvidelse har ændret, hvilken side der vises, når du klikker på knappen Startside.</translation>
 <translation id="1547572086206517271">Der kræves en opdatering</translation>
@@ -440,11 +431,9 @@
 <translation id="1646982517418478057">Angiv en adgangskode til kryptering af dette certifikat</translation>
 <translation id="164814987133974965">En administreret bruger kan gå på internettet med din vejledning. Som administrator af en administreret bruger kan du <ph name="BEGIN_BOLD" />tillade eller forbyde<ph name="END_BOLD" /> visse websites, <ph name="BEGIN_BOLD" />gennemgå<ph name="END_BOLD" /> websites, som den administrerede bruger har besøgt, og <ph name="BEGIN_BOLD" />administrere<ph name="END_BOLD" /> andre indstillinger.</translation>
 <translation id="1648943974594387137">Loginoplysningerne er forældede</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> linjer vises ikke&gt;</translation>
 <translation id="1650371550981945235">Vis inputmuligheder</translation>
 <translation id="1650709179466243265">Tilføj www. og .com, og åbn adresse</translation>
 <translation id="1651008383952180276">Du skal angive den samme adgangssætning to gange</translation>
-<translation id="1652972346408808053">Adgangskoden blev gemt. Få adgang til dine adgangskoder fra en hvilken som helst enhed via <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Føj printeren til Google Cloudprinter, så du kan udskrive, uanset hvor du befinder dig.}one{Føj # printere til Google Cloudprinter, så du kan udskrive, uanset hvor du befinder dig.}other{Føj # printere til Google Cloudprinter, så du kan udskrive, uanset hvor du befinder dig.}}</translation>
 <translation id="1657406563541664238">Vær med til at gøre <ph name="PRODUCT_NAME" /> bedre ved automatisk at sende forbrugsstatistikker og rapportere om nedbrud til Google</translation>
 <translation id="1658424621194652532">Denne side har adgang til din mikrofon.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Fortsæt med at blokere cookies</translation>
 <translation id="204622017488417136">Enheden nulstilles til sin forrige installerede version af Chrome. Alle brugerkonti og lokale data fjernes. Du kan ikke fortryde denne handling.</translation>
 <translation id="2048182445208425546">Få adgang til din netværkstrafik</translation>
-<translation id="2049137146490122801">Din administrator har deaktiveret adgangen til lokale filer på din maskine.</translation>
 <translation id="204914487372604757">Opret genvej</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2053312383184521053">Data for inaktiv tilstand</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ikke indlæst endnu</translation>
 <translation id="2107494551712864447">Tilføj et fingeraftryk</translation>
-<translation id="2111843886872897694">Apps skal leveres fra den host, som de berører.</translation>
 <translation id="2112877397266219826">Slå berøringskontrol til for starte konfigurationen</translation>
 <translation id="21133533946938348">Fastgør fane</translation>
 <translation id="2113479184312716848">Åbn &amp;fil...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Fortæl os, hvad der sker</translation>
 <translation id="2229161054156947610">Mere end én time tilbage</translation>
 <translation id="222931766245975952">Fil forkortet</translation>
-<translation id="222949136907494149"><ph name="URL" /> vil gerne anvende computerens placering.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Mappen "<ph name="FOLDER_NAME" />" kunne ikke oprettes. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klik for at se dagens doodle</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Bloker altid mikrofonadgang</translation>
 <translation id="2367972762794486313">Vis apps</translation>
 <translation id="2371076942591664043">Åbn når &amp;færdigt</translation>
-<translation id="237336063998926520">Brug din IP-adresse til at fastslå placeringen</translation>
 <translation id="2377319039870049694">Skift til listevisning</translation>
 <translation id="2377667304966270281">Hårde fejl</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> filer valgt</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ønsker at kopiere filer fra <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Nøgle-id for certifikatautoritet</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> blev tilføjet</translation>
-<translation id="246335896104539386">Importér bogmærker</translation>
 <translation id="2464089476039395325">HTTP-proxy</translation>
 <translation id="2468902267404883140">Der kan ikke oprettes forbindelse til din telefon. Sørg for at bruge en kompatibel Android-telefon, der er tændt og befinder sig i nærheden. &lt;a&gt;Få flere oplysninger&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Understøttede udvidelser er blevet deaktiveret</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Afinstaller</translation>
 <translation id="2487067538648443797">Tilføj nyt bogmærke</translation>
 <translation id="248861575772995840">Din telefon blev ikke fundet. Sørg for, at Bluetooth er slået til på din <ph name="DEVICE_TYPE" />. &lt;a&gt;Få flere oplysninger&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Et plugin (<ph name="PLUGIN_NAME" />) svarer ikke.</translation>
 <translation id="2489428929217601177">seneste døgn</translation>
 <translation id="2489918096470125693">Tilføj &amp;mappe...</translation>
 <translation id="249113932447298600">Vi beklager, men enheden <ph name="DEVICE_LABEL" /> understøttes ikke på nuværende tidspunkt.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Datatjenesten "<ph name="NAME" />" er blevet aktiveret og er klar til brug.</translation>
 <translation id="2566124945717127842">Powerwash for at nulstille din <ph name="IDS_SHORT_PRODUCT_NAME" />-enhed til fabriksindstillingerne.</translation>
 <translation id="2568774940984945469">Container til oplysningsbjælke</translation>
-<translation id="2570000010887652771">Gemte data.</translation>
 <translation id="257088987046510401">Temaer</translation>
 <translation id="2572032849266859634">Skrivebeskyttet adgang til <ph name="VOLUME_NAME" /> er blevet tildelt.</translation>
 <translation id="2573269395582837871">Vælg et billede og et navn</translation>
 <translation id="2575247648642144396">Dette ikon vil være synligt, når udvidelsen fungerer på den aktuelle side. Brug denne udvidelse ved at klikke på ikonet eller ved at trykke på <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Din telefon blev ikke fundet. Sørg for, at din <ph name="DEVICE_TYPE" /> har forbindelse til Wi-Fi eller et mobilnetværk. &lt;a&gt;Få flere oplysninger&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Der findes allerede en CRX-fil med dette navn.</translation>
 <translation id="257779572837908839">Konfigurer til Chromebox videokonference</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Lagermediet kan ikke demonteres<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1066,7 +1047,6 @@
 <translation id="2653266418988778031">Hvis du sletter et certifikat med certificeringsautoritet (CA), vil din browser ikke længere have tillid til certifikater, der er udstedt af denne CA.</translation>
 <translation id="2653659639078652383">Indsend</translation>
 <translation id="265390580714150011">Feltværdi</translation>
-<translation id="2654286334048437383">Eksportér bogmærker</translation>
 <translation id="2655386581175833247">Brugercertifikat:</translation>
 <translation id="2660779039299703961">Hændelse</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1260,7 +1240,6 @@
 <translation id="2908162660801918428">Tilføj mediegalleri efter mappe</translation>
 <translation id="2908789530129661844">Zoom ud på skærmen</translation>
 <translation id="2910318910161511225">Opret forbindelse til et netværk, og prøv igen</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ønsker at bruge din mikrofon.</translation>
 <translation id="2913331724188855103">Tillad, at websites gemmer og læser cookiedata (anbefales)</translation>
 <translation id="2916073183900451334">Tryk på Tab på en webside fremhæver links og felter i formularer</translation>
 <translation id="2916745397441987255">Søg efter udvidelser</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Lytter...</translation>
 <translation id="3141917231319778873">Den angivne anmodning understøttes ikke på: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">UDFØR</translation>
-<translation id="3144135466825225871">Crx-filen kunne ikke erstattes. Tjek, om filen er i brug.</translation>
 <translation id="3144647712221361880">Åbn linket som</translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
 <translation id="3150927491400159470">Genindlæs fuldstændig</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Kør altid på alle websites</translation>
 <translation id="3312424061798279731">Aktiverede sprog</translation>
 <translation id="3312903956926554846">Installer på computeren</translation>
-<translation id="3313473140726597081">Din opstartsside blev ændret til <ph name="URL" />. Hvis du vil deaktivere udvidelser, der ændrer din opstartsside, skal du klikke på Gendan.</translation>
 <translation id="3313590242757056087">Du kan angive, hvilke websites den administrerede bruger skal kunne se, ved at konfigurere begrænsninger
     og indstillinger på <ph name="MANAGEMENT_URL" />.
     Hvis du ikke ændrer standardindstillingerne, kan <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Oplysninger om appen</translation>
 <translation id="3335947283844343239">Åbn lukket fane igen</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> blev blokeret, fordi det er forældet.</translation>
 <translation id="3340978935015468852">indstillinger</translation>
 <translation id="3341703758641437857">Tillad adgang til webadresser på filer</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" vil gerne fjerne denne udvidelse.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Bogmærket er tilføjet</translation>
 <translation id="3389312115541230716">Højreklik på <ph name="SMALL_PRODUCT_LOGO" />-ikonet på proceslinjen</translation>
 <translation id="3391716558283801616">Fane 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> ønsker at bruge dit kamera og din mikrofon.</translation>
 <translation id="3396331542604645348">Den valgte printer er ikke tilgængelig eller ikke installeret korrekt. Tjek din printer, eller vælg en anden printer.</translation>
 <translation id="3399432415385675819">Underretninger deaktiveres</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome opdateres automatisk, så du altid har den nyeste version</translation>
 <translation id="3551320343578183772">Luk fanen</translation>
 <translation id="3552780134252864554">Ryddes ved lukning</translation>
-<translation id="355298399003313926"><ph name="URL" /> vil gerne reagere på hændelser med hjælpefunktioner</translation>
 <translation id="3555812735919707620">Fjern udvidelse</translation>
 <translation id="3556000484321257665">Din søgemaskine blev ændret til <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Indtastningsværdi for personlig nøgle skal være en gyldig sti.</translation>
 <translation id="3563432852173030730">Terminalapplikationen kunne ikke downloades.</translation>
 <translation id="3564334271939054422">Det Wi-Fi-netværk, du bruger (<ph name="NETWORK_ID" />), kan kræve, at du går til netværkets loginside.</translation>
 <translation id="3564708465992574908">Zoomniveauer</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Begrænsninger for certifikatnavn</translation>
 <translation id="3596235046596950091">Aktivér skytjenester</translation>
 <translation id="3599863153486145794">Rydder historikken på alle enheder, hvor du er logget ind. Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Din administrator har deaktiveret adgangen til lokale filer på din enhed.</translation>
 <translation id="3600792891314830896">Lyden slås fra for websites, der afspiller lyd</translation>
 <translation id="3603177256297531067">Denne side kunne ikke oversættes</translation>
 <translation id="3603533104205588786">Du kan klikke på stjernen for at tilføje siden som bogmærke</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Screenshots er deaktiveret</translation>
 <translation id="3625870480639975468">Nulstil zoom</translation>
 <translation id="3626281679859535460">Lysstyrke</translation>
-<translation id="3627052133907344175">Udvidelsen skal bruge "<ph name="IMPORT_NAME" />" med minimumversionen "<ph name="IMPORT_VERSION" />", men kun versionen "<ph name="INSTALLED_VERSION" />" er installeret.</translation>
 <translation id="3627320433825461852">Mindre end ét minut tilbage</translation>
 <translation id="3627588569887975815">Åbn link i inkognitovindue</translation>
 <translation id="3627671146180677314">Tidspunkt for fornyelse af Netscape-certifikat</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Sprogindstillinger</translation>
 <translation id="3668823961463113931">Håndtering</translation>
 <translation id="3670229581627177274">Slå Bluetooth til</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vil gemme store mængder data permanent på din lokale computer.</translation>
 <translation id="3672681487849735243">Der blev registreret er fabriksfejl</translation>
 <translation id="367645871420407123">lad feltet være tomt, hvis du vil angive adgangskoderoden til standardværdien for testbilledet</translation>
 <translation id="3678156199662914018">Udvidelse: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Du er offline</translation>
 <translation id="3788401245189148511">Den kunne:</translation>
 <translation id="3789841737615482174">Installer</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> fungerer kun på skrivebordet.</translation>
 <translation id="379082410132524484">Dit kort er udløbet</translation>
 <translation id="3792890930871100565">Afbryd printere</translation>
 <translation id="379422718204375917">Brug Smart Lock til at logge ind på din konto</translation>
-<translation id="3794595850995182458">Afslut side</translation>
 <translation id="3796648294839530037">Foretrukne netværk:</translation>
 <translation id="3797900183766075808">&amp;Søg på <ph name="SEARCH_ENGINE" /> efter "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798325802885154040">Giver dig mulighed for at aktivere/deaktivere tryk-hurtigt-for-at-klikke</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Aktivér <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Den indtastede filtype er ugyldig.</translation>
 <translation id="3983586614702900908">enheder fra en ukendt leverandør</translation>
-<translation id="3984413272403535372">Fejl under signering af udvidelse.</translation>
 <translation id="3987938432087324095">Det forstod jeg ikke.</translation>
 <translation id="3988996860813292272">Vælg tidszone</translation>
 <translation id="3989635538409502728">Log ud</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Installer apps og spil fra Google Play på din Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Få flere oplysninger&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Acceptér for gruppe</translation>
 <translation id="4090103403438682346">Aktivér Bekræftet adgang</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> er nødvendigt for at vise visse elementer på denne side.</translation>
 <translation id="4090535558450035482">(Denne udvidelse er under administration og kan ikke fjernes).</translation>
 <translation id="4091434297613116013">ark papir</translation>
 <translation id="4093955363990068916">Lokal fil:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kan nu synkronisere dine adgangskoder.</translation>
 <translation id="4715553623069266137">meget kort (0,8 sek.)</translation>
 <translation id="4716483597559580346">Udfør powerwash som et ekstra sikkerhedsniveau</translation>
-<translation id="471800408830181311">Den personlige nøgle kunne ikke udstedes.</translation>
 <translation id="4720113199587244118">Tilføj enheder</translation>
 <translation id="4720185134442950733">Mobildatanetværk</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> deler din skærm.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Stærk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ønsker at kommunikere med udvidelsen "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Accepter</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ønsker at bruge dit kamera.</translation>
 <translation id="4920887663447894854">Følgende websites kan ikke spore din placering på denne side:</translation>
 <translation id="492299503953721473">Fjern Android-apps</translation>
 <translation id="4923279099980110923">Ja. Jeg vil gerne hjælpe</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Denne udvidelse indeholder malware.</translation>
 <translation id="498294082491145744">Skift de indstillinger, der kontrollerer websites' adgang til funktioner, som f.eks. cookies, JavaScript, plugins, geoplacering, mikrofon, kamera osv.</translation>
 <translation id="4988526792673242964">Sider</translation>
-<translation id="4988792151665380515">Den offentlige nøgle kunne ikke eksporteres.</translation>
 <translation id="49896407730300355">Roter m&amp;od uret</translation>
 <translation id="4989966318180235467">Undersøg &amp;baggrundsside</translation>
 <translation id="4990343175649730969">Download Oprydningsværktøj til Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Vis ikke denne underretning igen</translation>
 <translation id="5027550639139316293">E-mail-certifikat</translation>
 <translation id="5027562294707732951">Tilføj udvidelsen</translation>
-<translation id="5028012205542821824">Installationen er ikke aktiveret.</translation>
 <translation id="5029568752722684782">Slet kopi</translation>
 <translation id="5030338702439866405">Udstedt af</translation>
 <translation id="5036662165765606524">Tillad ikke, at nogen websites kan downloade flere filer automatisk</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Der opstod en fejl.</translation>
 <translation id="5094721898978802975">Kommunikere med indbyggede applikationer</translation>
 <translation id="5097002363526479830">Der kunne ikke oprettes forbindelse til netværket "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Kunne ikke finde den fuldstændige sti til den mappe, der skal pakkes.</translation>
 <translation id="5099354524039520280">op</translation>
 <translation id="5100114659116077956">For at få de nyeste funktioner skal du opdatere din Chromebox.</translation>
 <translation id="5101042277149003567">Åbn alle bogmærker</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Vis i mappe</translation>
 <translation id="5171045022955879922">Søg, eller indtast webadresse</translation>
 <translation id="5171343362375269016">Ombyttet hukommelse</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vil gemme data permanent på din lokale computer.</translation>
 <translation id="5177479852722101802">Fortsæt blokering af adgang til kamera og mikrofon</translation>
 <translation id="5177526793333269655">Miniaturevisning</translation>
 <translation id="5177549709747445269">Du bruger mobildata</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatér denne enhed</translation>
 <translation id="5293170712604732402">Gendan indstillinger til deres oprindelige standardkonfiguration</translation>
 <translation id="5298219193514155779">Tema oprettet af</translation>
-<translation id="5298363578196989456">Udvidelsen "<ph name="IMPORT_NAME" />" kan ikke importeres, da den ikke er delt.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Alle data er krypteret med din adgangssætning til synkronisering</translation>
 <translation id="5300589172476337783">Vis</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" vil parre</translation>
 <translation id="5332624210073556029">Tidszone:</translation>
 <translation id="5334142896108694079">Scriptcache</translation>
-<translation id="533433379391851622">Den forventede version er "<ph name="EXPECTED_VERSION" />", men versionen var "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Vis kilde</translation>
 <translation id="5335458522276292100">Sikkerhedskopierer <ph name="FILE_COUNT" /> til <ph name="BEGIN_LINK" />Google Drev<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Den er installeret af en tredjepart.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Tillad, at websites afspiller lyd</translation>
 <translation id="5390284375844109566">Indekseret database</translation>
 <translation id="5390743329570580756">Send til</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> vil have adgang til din computer.</translation>
 <translation id="5397794290049113714">Dig</translation>
 <translation id="5398572795982417028">Sidereferencen er ugyldig. Grænsen er <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annoncer er blokeret</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Gendan alle faner</translation>
 <translation id="5486261815000869482">Bekræft adgangskode</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> deler din skærm med <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Indtastningsværdien for personlig nøgle skal eksistere.</translation>
 <translation id="5486561344817861625">Simuler genstart af browser</translation>
 <translation id="5487521232677179737">Ryd data</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" er kopieret</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Opdateringen downloades ved brug af <ph name="UPDATE_SIZE_MB" /> MB mobildata. Vil du fortsætte?</translation>
 <translation id="5601503069213153581">Pinkode</translation>
 <translation id="5605623530403479164">Andre søgemaskiner</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> vil gerne have adgang til din enhed.</translation>
 <translation id="5608580678041221894">Tryk på følgende taster for at tilpasse eller flytte beskæringsområdet</translation>
 <translation id="5609231933459083978">Applikationen ser ud til at være ugyldig.</translation>
 <translation id="5610038042047936818">Skift til kameratilstand</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Oversat</translation>
 <translation id="5991049340509704927">Forstør</translation>
 <translation id="5993332328670040093">Dit dataforbrug måles ikke længere.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> kan muligvis ikke holdes opdateret af sig selv.</translation>
 <translation id="600424552813877586">Ugyldig applikation.</translation>
 <translation id="6005695835120147974">Medierouter</translation>
 <translation id="6006484371116297560">Klassisk</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Sikkerhedskopiering i skyen</translation>
 <translation id="6040143037577758943">Luk</translation>
 <translation id="6040852767465482106">Anonym identitet</translation>
+<translation id="6041155700700864984">Luk fuld skærm</translation>
 <translation id="604124094241169006">Automatisk</translation>
 <translation id="6042169520002885235">Vælg en printerproducent og -model</translation>
 <translation id="6042308850641462728">Mere</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Genindlæs som normalt</translation>
 <translation id="6059652578941944813">Certifikathierarki</translation>
 <translation id="6059925163896151826">USB-enheder</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> er gået ned.</translation>
 <translation id="6064217302520318294">Skærmlås</translation>
 <translation id="6065289257230303064">Indeksattributter for certifikatets emne</translation>
 <translation id="6068338049763724728">Aktivér tilmelding via fjernadgang</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Giver dig mulighed for at justere skærmopløsningen</translation>
 <translation id="6238923052227198598">Behold den nyeste note på låseskærmen</translation>
 <translation id="6239558157302047471">Genindlæs &amp;ramme</translation>
-<translation id="624022915548992686">Afslut side</translation>
 <translation id="6241530762627360640">Få adgang til oplysninger om Bluetooth-enheder, der er parret med dit system, og registrér Bluetooth-enheder i nærheden.</translation>
 <translation id="6243774244933267674">Serveren er utilgængelig</translation>
 <translation id="6246413617632217567">Den administrerede bruger kunne ikke importeres. Kontrollér, om der er ledig plads på din harddisk, og at du har de rette tilladelser, og prøv igen.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Ukendt netværksfejl</translation>
 <translation id="6313641880021325787">LUK VR</translation>
 <translation id="6314819609899340042">Du har aktiveret fejlfindingsfunktioner på denne <ph name="IDS_SHORT_PRODUCT_NAME" />-enhed.</translation>
-<translation id="6315343732431721770"><ph name="URL" /> blev inkluderet i dine opstartssider. Hvis du vil deaktivere udvidelser, der ændrer din opstartsside, skal du klikke på Gendan.</translation>
 <translation id="6315493146179903667">Læg alle forrest</translation>
 <translation id="6316806695097060329">Denne <ph name="SHORT_PRODUCT_NAME" />-enhed er designet til at give dig den optimale internetoplevelse.</translation>
 <translation id="6317318380444133405">Understøttes ikke længere.</translation>
 <translation id="6317369057005134371">Venter på applikationsvindue...</translation>
 <translation id="6318407754858604988">Downloaden er i gang</translation>
-<translation id="6322279351188361895">Den personlige nøgle kunne ikke læses.</translation>
 <translation id="6325191661371220117">Deaktiver Automatisk opstart</translation>
 <translation id="6326175484149238433">Fjern fra Chrome</translation>
 <translation id="6326855256003666642">Optælling af Keepalive</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Vælg, hvad der skal synkroniseres</translation>
 <translation id="6333064448949140209">Filen sendes til Google til fejlretning</translation>
 <translation id="6333834492048057036">Fokuser adresselinje i søgetilstand</translation>
-<translation id="6336907568130557310">Dine adgangskoder vil være synlige for alle, der kan se den eksporterede fil. Del ikke filen med nogen, og slet den, når du har importeret den.</translation>
 <translation id="6339668969738228384">Opret en ny profil for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Der kunne ikke oprettes forbindelse til serveren. Tjek din netværksforbindelse, og prøv igen. Genstart din Chromebook, hvis problemet fortsætter.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Websites kan gemme og læse cookiedata</translation>
 <translation id="6388771388956873507">Find fingeraftrykslæseren på din enhed, og tryk på den med fingeren</translation>
 <translation id="6390799748543157332">De sider, du ser i dette vindue, vises ikke i browserhistorikken, og de efterlader ikke andre spor som f.eks. cookies på computeren, når du lukker alle åbne vinduer i gæstesessionen. Alle de filer, du downloader, vil dog blive gemt.</translation>
-<translation id="6391538222494443604">Indtastningsindeks skal eksistere.</translation>
 <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />systemoplysninger<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />metrics<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop indtaling</translation>
 <translation id="6397592254427394018">Åbn alle bogmærker i &amp;inkognitovindue</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Administrer blokering af JavaScript...</translation>
 <translation id="6459488832681039634">Brug valg til Find</translation>
 <translation id="6460601847208524483">Find næste</translation>
-<translation id="6462080265650314920">Apps skal leveres med indholdstypen "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Er du der stadig?</translation>
 <translation id="6463795194797719782">&amp;Rediger</translation>
 <translation id="6466988389784393586">Åbn alle bogmærker</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Skal Google oversætte denne side fra <ph name="SOURCE_LANGUAGE" /> til <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Pegeredskabet er tilsluttet</translation>
-<translation id="6677037229676347494">Det forventede id er "<ph name="EXPECTED_ID" />", men id'et var "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">Webadresse for søgeforespørgsler</translation>
 <translation id="6680028776254050810">Skift bruger</translation>
 <translation id="6680442031740878064">Tilgængelig: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Du kan til enhver tid tilpasse, hvilke oplysninger Google indsamler, i <ph name="BEGIN_LINK" />Indstillinger<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Tilbagekald filadgang</translation>
 <translation id="6904655473976120856">Tryk på knappen App for at afslutte</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> ønsker at dele din skærm.</translation>
-<translation id="6909461304779452601">Apps, udvidelser og brugerscripts kan ikke tilføjes fra dette website.</translation>
 <translation id="6910211073230771657">Slettet</translation>
 <translation id="691024665142758461">Download flere filer</translation>
 <translation id="6911324888870229398">Netværksforbindelsen blev afbrudt. Tjek din forbindelse, eller prøv et andet Wi-Fi-netværk.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Fejl: Udvidelsen kunne ikke afkodes</translation>
 <translation id="7473891865547856676">Nej tak</translation>
 <translation id="747459581954555080">Gendan alle</translation>
-<translation id="7475034671245341386">Der opstod en fejl i <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">Netscape-webadresse til mistet adgangskode</translation>
 <translation id="7476454130948140105">Batteriniveauet er for lavt til at opdatere (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Hvis du har glemt din adgangssætning, skal du stoppe og nulstille synkroniseringen via <ph name="BEGIN_LINK" />Google Betjeningspanel<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Certifikat for statussvar</translation>
 <translation id="7508545000531937079">Diasshow</translation>
 <translation id="7513029293694390567">Log automatisk ind på websites ved hjælp af gemte loginoplysninger. Hvis funktionen er slået fra, bliver du bedt om bekræftelse, hver gang du vil logge ind på et website.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> vil gerne identificere din enhed, før der kan afspilles beskyttet indhold.</translation>
 <translation id="7517569744831774757">Gendan indstillinger til deres oprindelige standardkonfiguration.</translation>
 <translation id="7517786267097410259">Opret en adgangskode –</translation>
 <translation id="7518150891539970662">WebRTC-logfiler (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     prøve at oprette en administreret bruger igen.</translation>
 <translation id="756445078718366910">Åbn browservindue</translation>
 <translation id="7564847347806291057">Afslut proces</translation>
-<translation id="7565291891798266313">Din søgemaskine blev ændret til <ph name="URL" />. Hvis du vil deaktivere udvidelser, der ændrer din søgemaskine, skal du klikke på Gendan.</translation>
 <translation id="7566118625369982896">Administrer applinks til Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome-dataene blev ryddet</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Batteriopladning</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Saml</translation>
-<translation id="7577815336900970562">Brug Wi-Fi eller mobilnetværk til at fastslå placering</translation>
 <translation id="7579149537961810247">Slå lyden fra på websites</translation>
 <translation id="7580671184200851182">Afspil den samme lyd via alle højttalere (monolyd)</translation>
 <translation id="7581462281756524039">Et oprydningsværktøj</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Sessionlagring</translation>
 <translation id="7781335840981796660">Alle brugerkonti og lokale data fjernes.</translation>
 <translation id="7782102568078991263">Ikke flere forslag fra Google</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> kunne ikke indlæses</translation>
 <translation id="7784067724422331729">Sikkerhedsindstillingerne på din computer blokerede denne fil.</translation>
 <translation id="7786207843293321886">Afslut gæstesession</translation>
 <translation id="7786889348652477777">&amp;Genindlæs app</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Et website kan have stjålet din adgangskode</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Internetforbindelsen blev afbrudt. Kontrollér din internetforbindelse.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> kunne ikke indlæses.</translation>
 <translation id="8008818777654712271">Sender automatisk nogle systemoplysninger og sideindhold til Google som en hjælp til at registrere skadelige apps og websites</translation>
 <translation id="8012382203418782830">Denne side er oversat.</translation>
 <translation id="8014154204619229810">Opdateringsprogrammet kører i øjeblikket. Opdater om et minut for at kontrollere igen.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Administrere dine apps, udvidelser og temaer</translation>
 <translation id="8191453843330043793">V8-proxyresolver</translation>
 <translation id="8195027750202970175">Filstørrelse</translation>
-<translation id="8195739004487400241">Din startside blev ændret til <ph name="URL" />. Hvis du vil deaktivere udvidelser, der ændrer din startside, skal du klikke på Gendan.</translation>
 <translation id="8199300056570174101">Egenskaber for netværkstjeneste og enhed</translation>
 <translation id="8200772114523450471">Genoptag</translation>
 <translation id="8202160505685531999">Angiv adgangskoden igen for at opdatere din <ph name="DEVICE_TYPE" />-profil.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Denne udvidelse er ikke anført i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> og er muligvis blevet tilføjet, uden at du vidste det.</translation>
 <translation id="8261387128019234107">Tilføj konto for <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Slet</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> er ikke implementeret i dette build.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har deaktiveret din musemarkør.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> har aktiveret fuld skærm.</translation>
 <translation id="8270242299912238708">PDF-dokumenter</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Du kan også vælge et nyt netværk:</translation>
 <translation id="845627346958584683">Udløbstid</translation>
 <translation id="8456681095658380701">Ugyldigt navn</translation>
+<translation id="8457451314607652708">Importér bogmærker</translation>
 <translation id="8460336040822756677">Hvis du slår Smart Lock fra for <ph name="DEVICE_TYPE" />, kan du ikke låse dine Chrome-enheder op via din telefon. Du bliver nødt til at indtaste din adgangskode.</translation>
 <translation id="8461329675984532579">Navn på udbyder til hjem</translation>
 <translation id="84613761564611563">Der er anmodet om grænseflade for netværkskonfiguration. Vent...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Der blev ikke fundet skadelig software</translation>
 <translation id="8512476990829870887">Afslut proces</translation>
 <translation id="851263357009351303">Tillad altid, at <ph name="HOST" /> viser billeder</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" er ved at rette fejl i denne browser.</translation>
 <translation id="8521475323816527629">Gå hurtigt til dine apps</translation>
 <translation id="8523493869875972733">Behold ændringerne</translation>
 <translation id="8523849605371521713">Tilføjet af politik</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Konfigurere netværksforbindelser</translation>
 <translation id="8620790565535071193">Scanning mislykkedes</translation>
 <translation id="8622877356447980900">Vil du have denne side oversat?</translation>
-<translation id="8623004009673949077">App med manifestattributen "kiosk_only" skal være installeret i terminaltilstand i Chrome OS.</translation>
 <translation id="8624205858755890468">Giver Google Assistent tilladelse til at vise dig relaterede oplysninger, apps og handlinger.</translation>
 <translation id="862542460444371744">&amp;Udvidelser</translation>
 <translation id="8627151598708688654">Vælg kilde</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Opdater firmwaren for ekstra beskyttelse.</translation>
 <translation id="8823514049557262177">Kopiér linkte&amp;kst</translation>
 <translation id="8824701697284169214">Tilføj si&amp;de...</translation>
-<translation id="8827850355924932817">Brug Wi-Fi-netværk til at fastslå placering</translation>
 <translation id="8828933418460119530">DNS-navn</translation>
 <translation id="8830796635868321089">Opdateringskontrollen kunne ikke anvende de aktuelle indstillinger for proxy. Tilpas dine <ph name="PROXY_SETTINGS_LINK_START" />Indstillinger for proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Netværkskonfiguration kontrolleres af <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Vis som fane</translation>
 <translation id="8884961208881553398">Tilføj nye tjenester</translation>
 <translation id="8885197664446363138">Smart Lock er ikke tilgængelig</translation>
-<translation id="8885905466771744233">Der findes allerede en personlig nøgle til den angivne udvidelse. Genbrug denne nøgle, eller slet den først.</translation>
 <translation id="8888432776533519951">Farve:</translation>
-<translation id="8892992092192084762">Installeret tema "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">Vi beklager, men <ph name="DEVICE_LABEL" />-enheden kunne ikke genkendes.</translation>
 <translation id="8895454554629927345">Liste over bogmærker</translation>
 <translation id="88986195241502842">Gå en side ned</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Advarsel! Du har aktiveret flaget for "scripts kræver handling" på denne computer, hvilket begrænser mulighederne i denne udvidelse. Andre enheder understøtter muligvis ikke dette flag eller har det måske ikke aktiveret. På disse enheder kan denne udvidelse kan også:</translation>
 <translation id="8910146161325739742">Del din skærm</translation>
 <translation id="8910222113987937043">Ændringer af bogmærker, historik, adgangskoder og andre indstillinger synkroniseres ikke længere med din Google-konto. Dine eksisterende data er dog stadig gemt på din Google-konto og kan administreres i <ph name="BEGIN_LINK" />Google Betjeningspanel<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google har markeret <ph name="EXTENSION_NAME" /> som ondsindet, og installationen er blevet forhindret.</translation>
 <translation id="8912793549644936705">Stræk</translation>
 <translation id="8915370057835397490">Indlæser forslag</translation>
 <translation id="8916476537757519021">Underramme for inkognitotilstand: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-mus er tilsluttet</translation>
 <translation id="9076523132036239772">Din e-mail eller adgangskode blev ikke bekræftet. Prøv at oprette forbindelse til et netværk først.</translation>
-<translation id="907841381057066561">Den midlertidige zip-fil kunne ikke oprettes under pakning.</translation>
 <translation id="9084064520949870008">Åbn som vindue</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> er blokeret af en virksomhedspolitik</translation>
 <translation id="9088917181875854783">Bekræft, at denne adgangsnøgle vises på "<ph name="DEVICE_NAME" />":</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Angiv adgangssætning</translation>
 <translation id="939736085109172342">Ny mappe</translation>
-<translation id="941543339607623937">Ugyldig personlig nøgle.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> deler en Chrome-fane og lyd.</translation>
 <translation id="942954117721265519">Ingen billeder i denne mappe.</translation>
 <translation id="945522503751344254">Send feedback</translation>
-<translation id="951981865514037445"><ph name="URL" /> vil bruge enhedens placering.</translation>
 <translation id="952992212772159698">Ikke aktiveret</translation>
 <translation id="9580706199804957">Der kunne ikke oprettes forbindelse til Google-tjenester</translation>
 <translation id="958515377357646513">Tryk for at gå videre.</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index 089b497..ee8802c8 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Nur verschlüsseln</translation>
 <translation id="1039337018183941703">Ungültige oder beschädigte Datei</translation>
 <translation id="1042174272890264476">Auch die RLZ-Bibliothek von <ph name="SHORT_PRODUCT_NAME" /> ist auf Ihrem Computer vorinstalliert. RLZ sorgt für die Zuweisung von Tags, anhand derer gemessen wird, wie sich einzelne Werbekampagnen auf die Suchanfragen und die Nutzung von <ph name="SHORT_PRODUCT_NAME" /> auswirken. Die Tags sind weder eindeutig, noch personenbezogen und kommen manchmal in Google-Suchanfragen in <ph name="PRODUCT_NAME" /> vor.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> möchte dauerhaft umfangreiche Daten auf Ihrem Gerät speichern.</translation>
 <translation id="1046059554679513793">Dieser Name wird bereits verwendet.</translation>
 <translation id="1047431265488717055">Linkte&amp;xt kopieren</translation>
 <translation id="1047726139967079566">Lesezeichen für diese Seite erstellen</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Standardsuchmaschine wiederherstellen?</translation>
 <translation id="1177863135347784049">Benutzerdefiniert</translation>
 <translation id="1178581264944972037">Anhalten</translation>
-<translation id="1179803038870941185"><ph name="URL" /> fordert die vollständige Kontrolle über Ihre MIDI-Geräte.</translation>
 <translation id="1181037720776840403">Entfernen</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kann nicht im lokalen Cache installiert werden.</translation>
 <translation id="1185924365081634987">Sie können auch <ph name="GUEST_SIGNIN_LINK_START" />als Gast surfen<ph name="GUEST_SIGNIN_LINK_END" />, um den Netzwerkfehler zu beheben.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Zugriff auf eine Datei auf Ihrem Computer}other{Zugriff auf # Dateien auf Ihrem Computer}}</translation>
 <translation id="1195076408729068893">Geben Sie Ihr Passwort ein, um Smart Lock zu aktivieren. Beim nächsten Mal können Sie Ihr Smartphone verwenden, um <ph name="DEVICE_TYPE" /> zu entsperren.</translation>
 <translation id="1195447618553298278">Unbekannter Fehler.</translation>
-<translation id="1196338895211115272">Privater Schlüssel konnte nicht exportiert werden.</translation>
 <translation id="119738088725604856">Screenshot von Fenster</translation>
 <translation id="1197979282329025000">Beim Abrufen der Druckerfunktionen für Drucker "<ph name="PRINTER_NAME" />" ist ein Fehler aufgetreten. Dieser Drucker konnte nicht mit <ph name="CLOUD_PRINT_NAME" /> registriert werden.</translation>
 <translation id="1198271701881992799">Erste Schritte</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Ihr Administrator empfiehlt einen bestimmten Wert für diese Einstellung.</translation>
 <translation id="1225177025209879837">Ihre Anfrage wird verarbeitet...</translation>
 <translation id="1225211345201532184">Ablageartikel 5</translation>
-<translation id="1225404570112441414">Fügen Sie diese Website Ihrer Ablage hinzu, um sie jederzeit zu verwenden.</translation>
 <translation id="1227507814927581609">Beim Herstellen der Verbindung zu "<ph name="DEVICE_NAME" />" ist ein Authentifizierungsfehler aufgetreten.</translation>
 <translation id="1230807973377071856">Systemmenü</translation>
 <translation id="1232569758102978740">Unbenannt</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Lesezeichen-HTML-Datei</translation>
 <translation id="1303671224831497365">Keine Bluetooth-Geräte gefunden</translation>
 <translation id="1306606229401759371">Einstellungen ändern</translation>
-<translation id="1307398858972670978">Unter <ph name="SAVED_PASSWORDS_LINK" /> haben Sie von jedem Gerät aus Zugriff auf Ihre Passwörter</translation>
 <translation id="1307559529304613120">Hoppla! Das System konnte das langfristig gültige API-Zugriffstoken für das Gerät nicht speichern.</translation>
 <translation id="1313405956111467313">Automatische Proxy-Konfiguration</translation>
 <translation id="131364520783682672">Feststelltaste</translation>
@@ -245,7 +240,7 @@
 <translation id="1368832886055348810">Rechtsläufig</translation>
 <translation id="1370646789215800222">Person entfernen?</translation>
 <translation id="1372681413396468867">{NUM_ITEMS,plural, =1{1 zu entfernendes Element}other{# zu entfernende Elemente}}</translation>
-<translation id="1372841398847029212">Mit Ihrem Konto synchronisieren</translation>
+<translation id="1372841398847029212">Mit meinem Konto synchronisieren</translation>
 <translation id="1374844444528092021">Das vom Netzwerk "<ph name="NETWORK_NAME" />" benötigte Zertifikat ist entweder nicht installiert oder nicht mehr gültig. Bitte fordern Sie ein neues Zertifikat an und versuchen Sie es erneut.</translation>
 <translation id="1374962581120570592">Cookies gesetzt</translation>
 <translation id="1375321115329958930">Gespeicherte Passwörter</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Suchen</translation>
 <translation id="1386387014181100145">Hallo!</translation>
 <translation id="138784436342154190">"Beim Start"-Standardseite wiederherstellen?</translation>
-<translation id="1389297115360905376">Dieser Artikel kann nur über den <ph name="CHROME_WEB_STORE" /> hinzugefügt werden.</translation>
 <translation id="1390548061267426325">In normalem Tab öffnen</translation>
-<translation id="1391807639023934267">Schnellere Seite zur Vorschau geladen.</translation>
 <translation id="1393283411312835250">Sonne und Wolken</translation>
 <translation id="1395262318152388157">Schieberegler für die Suche</translation>
 <translation id="1395730723686586365">Updater gestartet</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Sie aktualisieren auf eine instabile Version von <ph name="PRODUCT_NAME" />. Diese enthält Funktionen, die sich noch in der Entwicklung befinden. Es können Abstürze und unerwartete Fehler auftreten. Gehen Sie daher bitte vorsichtig vor.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (Erweiterungs-ID "<ph name="EXTENSION_ID" />") ist bei diesem Sitzungstyp nicht zulässig.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Der per Zufallsauswahl generierte private RSA-Schlüssel konnte nicht erstellt werden.</translation>
 <translation id="1420834118113404499">Medienlizenzen</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, um eine Kopplung zu ermöglichen</translation>
 <translation id="1426410128494586442">Ja</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Audioadresse k&amp;opieren</translation>
 <translation id="1465827627707997754">Pizzascheibe</translation>
 <translation id="1467432559032391204">Links</translation>
-<translation id="1467999917853307373"><ph name="URL" /> möchte Daten dauerhaft auf Ihrem Gerät speichern.</translation>
-<translation id="1470719357688513792">Neue Cookie-Einstellungen werden nach erneutem Laden der Seite wirksam.</translation>
 <translation id="1470811252759861213">Um die Erweiterungen auf allen Ihren Computern zu nutzen, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" konnte nicht hochgeladen werden. In Ihrem Google Drive-Konto ist nicht genügend Speicherplatz frei.</translation>
 <translation id="1475502736924165259">Einige Ihrer gespeicherten Zertifikate passen zu keiner der anderen Kategorien</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">Großer Cursor</translation>
 <translation id="1543284117603151572">Aus Edge importiert</translation>
 <translation id="1545177026077493356">Automatischer Kioskmodus</translation>
+<translation id="1545775234664667895">Design "<ph name="THEME_NAME" />" installiert</translation>
 <translation id="1545786162090505744">URL mit %s statt der Suchanfrage</translation>
 <translation id="1546280085599573572">Durch diese Erweiterung wurde die Seite geändert, die beim Klicken auf die Schaltfläche "Startseite" erscheint.</translation>
 <translation id="1547572086206517271">Seite muss aktualisiert werden</translation>
@@ -440,11 +431,9 @@
     vom betreuten Nutzer besuchte Websites <ph name="BEGIN_BOLD" />prüfen<ph name="END_BOLD" /> und
     andere Einstellungen <ph name="BEGIN_BOLD" />verwalten<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">Die Anmeldeinformationen sind veraltet</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> Zeilen werden nicht angezeigt&gt;</translation>
 <translation id="1650371550981945235">Eingabeoptionen anzeigen</translation>
 <translation id="1650709179466243265">www. und .com hinzufügen und Adresse öffnen</translation>
 <translation id="1651008383952180276">Sie müssen zweimal dieselbe Passphrase eingeben</translation>
-<translation id="1652972346408808053">Passwort gespeichert. Unter <ph name="SAVED_PASSWORDS_LINK" /> können Sie von jedem Gerät aus auf Ihre Passwörter zugreifen.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Fügen Sie den Drucker zu Google Cloud Print hinzu, damit Sie von überall aus drucken können.}other{Fügen Sie # Drucker zu Google Cloud Print hinzu, damit Sie von überall aus drucken können.}}</translation>
 <translation id="1657406563541664238">Zur Verbesserung von <ph name="PRODUCT_NAME" /> Nutzungsstatistiken und Absturzberichte automatisch an Google senden</translation>
 <translation id="1658424621194652532">Diese Seite greift auf Ihr Mikrofon zu.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Cookies weiterhin blockieren</translation>
 <translation id="204622017488417136">Ihr Gerät wird auf die zuvor installierte Chrome-Version zurückgesetzt und alle Nutzerkonten und lokalen Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.</translation>
 <translation id="2048182445208425546">Auf Ihren Netzwerkverkehr zugreifen</translation>
-<translation id="2049137146490122801">Der Zugriff auf lokale Dateien auf Ihrem Gerät wurde von Ihrem Administrator deaktiviert.</translation>
 <translation id="204914487372604757">Verknüpfung erstellen</translation>
 <translation id="2050339315714019657">Hochformat</translation>
 <translation id="2053312383184521053">Daten für inaktiven Zustand</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Noch nicht geladen</translation>
 <translation id="2107494551712864447">Fingerabdruck hinzufügen</translation>
-<translation id="2111843886872897694">Apps müssen über den betroffenen Host bereitgestellt werden.</translation>
 <translation id="2112877397266219826">Schalten Sie zur Einrichtung den Touch-Controller ein.</translation>
 <translation id="21133533946938348">Tab anheften</translation>
 <translation id="2113479184312716848">&amp;Datei öffnen...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Sagen Sie uns, was los ist</translation>
 <translation id="2229161054156947610">Noch mehr als 1 Stunde</translation>
 <translation id="222931766245975952">Datei gekürzt</translation>
-<translation id="222949136907494149"><ph name="URL" /> möchte den Standort Ihres Computers nutzen.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Ordner "<ph name="FOLDER_NAME" />" kann nicht erstellt werden. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Zum Ansehen des heutigen Doodles klicken</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Zugriff auf das Mikrofon immer blockieren</translation>
 <translation id="2367972762794486313">Apps anzeigen</translation>
 <translation id="2371076942591664043">Nach &amp;Download öffnen</translation>
-<translation id="237336063998926520">IP-Adresse zur Standortbestimmung verwenden</translation>
 <translation id="2377319039870049694">Zur Listenansicht wechseln</translation>
 <translation id="2377667304966270281">Harte Fehler</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> Dateien ausgewählt</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> möchte Dateien von <ph name="VOLUME_NAME" /> kopieren.</translation>
 <translation id="2462724976360937186">Schlüssel-ID der Zertifizierungsstelle</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> hinzugefügt</translation>
-<translation id="246335896104539386">Lesezeichen importieren</translation>
 <translation id="2464089476039395325">HTTP-Proxy</translation>
 <translation id="2468902267404883140">Verbindung zum Smartphone konnte nicht hergestellt werden. Ihr Smartphone muss ein kompatibles Android-Smartphone sein, das eingeschaltet ist und sich in Reichweite befindet. &lt;a&gt;Weitere Informationen&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Nicht unterstützte Erweiterungen deaktiviert</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Deinstallieren</translation>
 <translation id="2487067538648443797">Neues Lesezeichen hinzufügen</translation>
 <translation id="248861575772995840">Smartphone wurde nicht gefunden. Vergewissern Sie sich, dass auf Ihrem <ph name="DEVICE_TYPE" /> Bluetooth aktiviert ist. &lt;a&gt;Weitere Informationen&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Ein Plug-in (<ph name="PLUGIN_NAME" />) reagiert nicht.</translation>
 <translation id="2489428929217601177">Letzter Tag</translation>
 <translation id="2489918096470125693">&amp;Ordner hinzufügen...</translation>
 <translation id="249113932447298600">Das Gerät <ph name="DEVICE_LABEL" /> wird derzeit nicht unterstützt.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Herzlichen Glückwunsch! Ihr Datendienst "<ph name="NAME" />" wurde aktiviert und ist einsatzbereit.</translation>
 <translation id="2566124945717127842">Durch einen Powerwash wird Ihr <ph name="IDS_SHORT_PRODUCT_NAME" />-Gerät auf den Werkszustand zurückgesetzt.</translation>
 <translation id="2568774940984945469">Infoleisten-Container</translation>
-<translation id="2570000010887652771">Datennutzung reduziert.</translation>
 <translation id="257088987046510401">Designs</translation>
 <translation id="2572032849266859634">Nur Lesezugriff auf <ph name="VOLUME_NAME" /> wurde zugelassen.</translation>
 <translation id="2573269395582837871">Ein Bild und einen Namen auswählen</translation>
 <translation id="2575247648642144396">Dieses Symbol wird eingeblendet, wenn die Erweiterung auf die aktuelle Seite angewendet werden kann. Klicken Sie auf das Symbol oder drücken Sie <ph name="EXTENSION_SHORTCUT" />, um diese Erweiterung zu verwenden.</translation>
 <translation id="2575268751393592580">Smartphone wurde nicht gefunden. Vergewissern Sie sich, dass Ihr <ph name="DEVICE_TYPE" /> mit dem WLAN oder einem mobilen Netzwerk verbunden ist. &lt;a&gt;Weitere Informationen&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Es ist bereits eine CRX-Datei mit diesem Namen vorhanden.</translation>
 <translation id="257779572837908839">Als Chromebox für Meetings einrichten</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Laufwerk kann nicht getrennt werden<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">Wenn Sie das Zertifikat einer Zertifizierungsstelle (CA) löschen, vertraut Ihr Server keinen von dieser Zertifizierungsstelle ausgestellten Zertifikaten mehr.</translation>
 <translation id="2653659639078652383">Senden</translation>
 <translation id="265390580714150011">Feldwert</translation>
-<translation id="2654286334048437383">Lesezeichen exportieren</translation>
 <translation id="2655386581175833247">Nutzerzertifikat:</translation>
 <translation id="2660779039299703961">Ereignis</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">Mediengalerie nach Verzeichnis hinzufügen</translation>
 <translation id="2908789530129661844">Bildschirm herauszoomen</translation>
 <translation id="2910318910161511225">Stellen Sie eine Verbindung zu einem Netzwerk her und versuchen Sie es noch einmal</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> möchte Ihr Mikrofon verwenden.</translation>
 <translation id="2913331724188855103">Websites dürfen Cookiedaten speichern und lesen (empfohlen).</translation>
 <translation id="2916073183900451334">Durch Drücken der Tab-Taste auf einer Webseite werden Links sowie Formularfelder markiert.</translation>
 <translation id="2916745397441987255">In Erweiterungen suchen</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">Jetzt sprechen…</translation>
 <translation id="3141917231319778873">Die Anfrage an folgendes Gerät wird nicht unterstützt: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">Fertig</translation>
-<translation id="3144135466825225871">CRX-Datei konnte nicht ersetzt werden. Überprüfen Sie, ob die Datei verwendet wird.</translation>
 <translation id="3144647712221361880">Link öffnen als</translation>
 <translation id="3149510190863420837">Chrome-Apps</translation>
 <translation id="3150927491400159470">Vollständiges Aktualisieren (Hard Reload)</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">Immer auf allen Websites ausführen</translation>
 <translation id="3312424061798279731">Aktivierte Sprachen</translation>
 <translation id="3312903956926554846">Auf dem Desktop installieren</translation>
-<translation id="3313473140726597081">Ihre "Beim Start"-Seite wurde in <ph name="URL" /> geändert. Zum Deaktivieren von Erweiterungen, die Ihre "Beim Start"-Seite ändern, klicken Sie auf "Wiederherstellen".</translation>
 <translation id="3313590242757056087">Zum Auswählen der Websites, die der betreute Nutzer besuchen kann,
     können Sie unter <ph name="MANAGEMENT_URL" /> Beschränkungen und Einstellungen festlegen.
     Wenn Sie die Standardeinstellungen nicht ändern, kann <ph name="USER_DISPLAY_NAME" />
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">App-Info</translation>
 <translation id="3335947283844343239">Geschlossenen Tab wieder öffnen</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> ist veraltet und wurde blockiert.</translation>
 <translation id="3340978935015468852">Einstellungen</translation>
 <translation id="3341703758641437857">Zugriff auf Datei-URLs zulassen</translation>
 <translation id="3342361181740736773"><ph name="TRIGGERING_EXTENSION_NAME" /> möchte diese Erweiterung entfernen.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">Lesezeichen hinzugefügt</translation>
 <translation id="3389312115541230716">Klicken Sie mit der rechten Maustaste auf das Symbol <ph name="SMALL_PRODUCT_LOGO" /> in der Taskleiste</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> möchte Ihre Kamera und Ihr Mikrofon verwenden.</translation>
 <translation id="3396331542604645348">Der ausgewählte Drucker ist entweder nicht verfügbar oder nicht ordnungsgemäß installiert. Überprüfen Sie den Drucker oder wählen Sie einen anderen Drucker aus.</translation>
 <translation id="3399432415385675819">Benachrichtigungen werden deaktiviert</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">Chrome wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen.</translation>
 <translation id="3551320343578183772">Tab schließen</translation>
 <translation id="3552780134252864554">Wird beim Beenden gelöscht</translation>
-<translation id="355298399003313926"><ph name="URL" /> möchte auf Bedienungshilfen reagieren.</translation>
 <translation id="3555812735919707620">Erweiterung entfernen</translation>
 <translation id="3556000484321257665">Ihre Suchmaschine wurde in <ph name="URL" /> geändert.</translation>
-<translation id="3561217442734750519">Der Eingabewert für den privaten Schlüssel muss ein gültiger Pfad sein.</translation>
 <translation id="3563432852173030730">Die Kioskanwendung konnte nicht heruntergeladen werden.</translation>
 <translation id="3564334271939054422">Eventuell müssen Sie die Anmeldeseite des verwendeten WLAN-Netzwerken (<ph name="NETWORK_ID" />) aufrufen.</translation>
 <translation id="3564708465992574908">Zoomstufen</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">Beschränkungen für Zertifikatsnamen</translation>
 <translation id="3596235046596950091">Clouddienste aktivieren</translation>
 <translation id="3599863153486145794">Löscht den Verlauf bei allen angemeldeten Geräten. Möglicherweise verfügt Ihr Google-Konto unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> über andere Browserverläufe.</translation>
-<translation id="3600456501114769456">Der Zugriff auf lokale Dateien auf Ihrem Gerät wurde von Ihrem Administrator deaktiviert.</translation>
 <translation id="3600792891314830896">Websites stummschalten, die Ton wiedergeben</translation>
 <translation id="3603177256297531067">Diese Seite konnte nicht übersetzt werden</translation>
 <translation id="3603533104205588786">Sie können auf den Stern klicken, um eine Seite als Lesezeichen zu speichern</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">Screenshot-Funktion deaktiviert</translation>
 <translation id="3625870480639975468">Zoom zurücksetzen</translation>
 <translation id="3626281679859535460">Helligkeit</translation>
-<translation id="3627052133907344175">Die Erweiterung erfordert "<ph name="IMPORT_NAME" />" mit der Mindestversion "<ph name="IMPORT_VERSION" />", es ist jedoch nur Version "<ph name="INSTALLED_VERSION" />" installiert.</translation>
 <translation id="3627320433825461852">Noch weniger als 1 Minute</translation>
 <translation id="3627588569887975815">Link in Inko&amp;gnito-Fenster öffnen</translation>
 <translation id="3627671146180677314">Verlängerungszeit für Netscape-Zertifikate</translation>
@@ -1764,7 +1735,6 @@
 <translation id="3668570675727296296">Spracheinstellungen</translation>
 <translation id="3668823961463113931">Handler</translation>
 <translation id="3670229581627177274">Bluetooth aktivieren</translation>
-<translation id="3672159315667503033"><ph name="URL" /> möchte umfangreiche Daten dauerhaft auf Ihrem lokalen Computer speichern.</translation>
 <translation id="3672681487849735243">Ein werkseitiger Fehler wurde festgestellt.</translation>
 <translation id="367645871420407123">Leer lassen, wenn Sie für das Root-Passwort den Standardtestwert festlegen möchten</translation>
 <translation id="3678156199662914018">Erweiterung: <ph name="EXTENSION_NAME" /></translation>
@@ -1842,11 +1812,9 @@
 <translation id="3786301125658655746">Sie sind offline</translation>
 <translation id="3788401245189148511">Sie könnte:</translation>
 <translation id="3789841737615482174">Installieren</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> funktioniert nur auf dem Desktop.</translation>
 <translation id="379082410132524484">Ihre Karte ist abgelaufen.</translation>
 <translation id="3792890930871100565">Druckerverbindungen trennen</translation>
 <translation id="379422718204375917">Zum Anmelden im Konto Smart Lock verwenden</translation>
-<translation id="3794595850995182458">Seite verlassen</translation>
 <translation id="3796648294839530037">Bevorzugte Netzwerke:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> nach "<ph name="SEARCH_TERMS" />" durchsuchen</translation>
 <translation id="3798325802885154040">Ermöglicht das Aktivieren/Deaktivieren des Touchpad-Klicks</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> aktivieren</translation>
 <translation id="3981760180856053153">Eingegebener Speichertyp ist ungültig.</translation>
 <translation id="3983586614702900908">Geräte von einem unbekannten Anbieter</translation>
-<translation id="3984413272403535372">Fehler bei der Signatur der Erweiterung</translation>
 <translation id="3987938432087324095">Dies wurde nicht verstanden.</translation>
 <translation id="3988996860813292272">Zeitzone auswählen</translation>
 <translation id="3989635538409502728">Abmelden</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">Installieren Sie Apps und Spiele aus Google Play auf Ihrem Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Weitere Informationen&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Für Gruppe akzeptieren</translation>
 <translation id="4090103403438682346">Bestätigten Zugriff aktivieren</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> ist zur Darstellung einiger Elemente auf dieser Seite erforderlich.</translation>
 <translation id="4090535558450035482">Diese Erweiterung wird verwaltet und kann nicht entfernt werden.</translation>
 <translation id="4091434297613116013">Blatt Papier</translation>
 <translation id="4093955363990068916">Lokale Datei:</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kann nun Ihre Passwörter synchronisieren.</translation>
 <translation id="4715553623069266137">sehr kurz (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash für mehr Sicherheit</translation>
-<translation id="471800408830181311">Privater Schlüssel konnte nicht ausgegeben werden.</translation>
 <translation id="4720113199587244118">Geräte hinzufügen</translation>
 <translation id="4720185134442950733">Mobilfunknetz</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> hat Ihren Bildschirm freigegeben.</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">Stark</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> möchte mit der Erweiterung "<ph name="EXTENSION_NAME" />" kommunizieren.</translation>
 <translation id="4918086044614829423">Annehmen</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> möchte Ihre Kamera verwenden.</translation>
 <translation id="4920887663447894854">Die folgenden Websites dürfen Ihren Standort auf dieser Seite nicht verfolgen:</translation>
 <translation id="492299503953721473">Android-Apps entfernen</translation>
 <translation id="4923279099980110923">Ja, ich möchte helfen.</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">Diese Erweiterung enthält Malware.</translation>
 <translation id="498294082491145744">Einstellungen ändern, über die der Websitezugriff auf Cookies, JavaScript, Plug-ins, Standort, Mikrofon, Kamera und ähnliche Funktionen gesteuert wird</translation>
 <translation id="4988526792673242964">Seiten</translation>
-<translation id="4988792151665380515">Öffentlicher Schlüssel konnte nicht exportiert werden.</translation>
 <translation id="49896407730300355">&amp;Gegen den Uhrzeigersinn drehen</translation>
 <translation id="4989966318180235467">&amp;Hintergrundseite prüfen</translation>
 <translation id="4990343175649730969">Chrome Software Cleaner herunterladen</translation>
@@ -2574,7 +2537,6 @@
 <translation id="5026874946691314267">Diese Meldung nicht mehr anzeigen</translation>
 <translation id="5027550639139316293">E-Mail-Zertifikat</translation>
 <translation id="5027562294707732951">Erweiterung hinzufügen</translation>
-<translation id="5028012205542821824">Die Installation ist nicht aktiviert.</translation>
 <translation id="5029568752722684782">Kopie löschen</translation>
 <translation id="5030338702439866405">Ausgestellt von</translation>
 <translation id="5036662165765606524">Keiner Website gestatten, automatisch mehrere Dateien herunterzuladen</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">Ein Fehler ist aufgetreten.</translation>
 <translation id="5094721898978802975">Mit zusammenarbeitenden systemeigenen Anwendungen kommunizieren</translation>
 <translation id="5097002363526479830">Fehler beim Herstellen einer Verbindung mit dem Netzwerk "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Der absolute Pfad zum Verzeichnis wurde nicht gefunden.</translation>
 <translation id="5099354524039520280">Nach oben</translation>
 <translation id="5100114659116077956">Damit Ihre Chromebox über die neuesten Funktionen verfügt, muss sie aktualisiert werden.</translation>
 <translation id="5101042277149003567">Alle Lesezeichen öffnen</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">In Ordner anzeigen</translation>
 <translation id="5171045022955879922">Suchen oder URL eingeben</translation>
 <translation id="5171343362375269016">Swap-Speicher</translation>
-<translation id="5175870427301879686"><ph name="URL" /> möchte Daten dauerhaft auf Ihrem lokalen Computer speichern.</translation>
 <translation id="5177479852722101802">Zugriff auf Kamera und Mikrofon weiter blockieren</translation>
 <translation id="5177526793333269655">Miniaturbildansicht</translation>
 <translation id="5177549709747445269">Sie nutzen mobile Daten.</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">Gerät formatieren</translation>
 <translation id="5293170712604732402">Einstellungen auf ursprüngliche Standardwerte zurücksetzen</translation>
 <translation id="5298219193514155779">Design von</translation>
-<translation id="5298363578196989456">Die Erweiterung "<ph name="IMPORT_NAME" />" konnte nicht importiert werden, da es sich nicht um ein freigegebenes Modul handelt.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Alle Daten werden mit Ihrer Synchronisierungspassphrase verschlüsselt</translation>
 <translation id="5300589172476337783">Anzeigen</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> möchte eine Kopplung durchführen</translation>
 <translation id="5332624210073556029">Zeitzone:</translation>
 <translation id="5334142896108694079">Skript-Cache</translation>
-<translation id="533433379391851622">Erwartete Version: "<ph name="EXPECTED_VERSION" />", tatsächliche Version: "<ph name="NEW_ID" />"</translation>
 <translation id="5334844597069022743">Quelltext anzeigen</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> werden auf <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> gesichert</translation>
 <translation id="5337771866151525739">Von einem Drittanbieter installiert</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">Wiedergabe von Ton auf Websites zulassen</translation>
 <translation id="5390284375844109566">Indexierte Datenbank</translation>
 <translation id="5390743329570580756">Senden für</translation>
-<translation id="5396126354477659676">Das Plug-in <ph name="PEPPER_PLUGIN_NAME" /> auf <ph name="PEPPER_PLUGIN_DOMAIN" /> möchte auf Ihren Computer zugreifen.</translation>
 <translation id="5397794290049113714">Ich</translation>
 <translation id="5398572795982417028">Der Seitenbereich ist zu groß. Die maximale Seitenanzahl liegt bei <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Werbung blockiert</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">Alle Tabs wiederherstellen</translation>
 <translation id="5486261815000869482">Passwort bestätigen</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> teilt den Bildschirm mit <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Es muss ein Eingabewert für den privaten Schlüssel vorhanden sein.</translation>
 <translation id="5486561344817861625">Browser-Neustart simulieren</translation>
 <translation id="5487521232677179737">Daten löschen</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" kopiert</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951">Der Download des Updates verbraucht <ph name="UPDATE_SIZE_MB" /> MB an mobilen Daten. Möchten Sie fortfahren?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Andere Suchmaschinen</translation>
-<translation id="5606674617204776232">Das Plug-in <ph name="PEPPER_PLUGIN_NAME" /> auf <ph name="PEPPER_PLUGIN_DOMAIN" /> möchte auf Ihr Gerät zugreifen.</translation>
 <translation id="5608580678041221894">Tippen Sie auf die folgenden Tasten, um den Zuschnittbereich anzupassen oder zu verschieben</translation>
 <translation id="5609231933459083978">Die Anwendung ist anscheinend ungültig.</translation>
 <translation id="5610038042047936818">Zum Kameramodus wechseln</translation>
@@ -3192,7 +3147,6 @@
 <translation id="5990386583461751448">Übersetzt</translation>
 <translation id="5991049340509704927">Vergrößern</translation>
 <translation id="5993332328670040093">Ihre Datennutzung wird nicht mehr gemessen.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> kann sich möglicherweise nicht selbst aktualisieren.</translation>
 <translation id="600424552813877586">Ungültige Anwendung</translation>
 <translation id="6005695835120147974">Media Router</translation>
 <translation id="6006484371116297560">Klassisch</translation>
@@ -3217,6 +3171,7 @@
 <translation id="604001903249547235">Cloudsicherung</translation>
 <translation id="6040143037577758943">Schließen</translation>
 <translation id="6040852767465482106">Anonyme Identität</translation>
+<translation id="6041155700700864984">Vollbildmodus beenden</translation>
 <translation id="604124094241169006">Automatisch</translation>
 <translation id="6042169520002885235">Druckerhersteller und -modell auswählen</translation>
 <translation id="6042308850641462728">Mehr</translation>
@@ -3233,7 +3188,6 @@
 <translation id="6056710589053485679">Normales Aktualisieren</translation>
 <translation id="6059652578941944813">Zertifikathierarchie</translation>
 <translation id="6059925163896151826">USB-Geräte</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ist abgestürzt.</translation>
 <translation id="6064217302520318294">Displaysperre</translation>
 <translation id="6065289257230303064">Verzeichnisattribute des Zertifikatsinhabers</translation>
 <translation id="6068338049763724728">Remote-Registrierung aktivieren</translation>
@@ -3342,7 +3296,6 @@
 <translation id="6237816943013845465">Ermöglicht die Anpassung der Bildschirmauflösung</translation>
 <translation id="6238923052227198598">Neueste Notiz auf Sperrbildschirm anzeigen</translation>
 <translation id="6239558157302047471">&amp;Frame neu laden</translation>
-<translation id="624022915548992686">Seite Verlassen</translation>
 <translation id="6241530762627360640">Informationen zu mit ihrem System gekoppelten Bluetooth-Geräten abrufen und Bluetooth-Geräte in der Nähe finden</translation>
 <translation id="6243774244933267674">Server nicht verfügbar</translation>
 <translation id="6246413617632217567">Der betreute Nutzer konnte nicht importiert werden. Bitte überprüfen Sie Ihren Festplattenspeicherplatz und Ihre Berechtigungen und versuchen Sie es noch einmal.</translation>
@@ -3391,13 +3344,11 @@
 <translation id="6312403991423642364">Unbekannter Netzwerkfehler</translation>
 <translation id="6313641880021325787">VR BEENDEN</translation>
 <translation id="6314819609899340042">Sie haben die Debugging-Funktionen auf diesem <ph name="IDS_SHORT_PRODUCT_NAME" />-Gerät aktiviert.</translation>
-<translation id="6315343732431721770">Ihre "Beim Start"-Seiten wurden geändert und enthalten nun <ph name="URL" />. Zum Deaktivieren von Erweiterungen, die Ihre "Beim Start"-Seite ändern, klicken Sie auf "Wiederherstellen".</translation>
 <translation id="6315493146179903667">Alle nach vorn bringen</translation>
 <translation id="6316806695097060329">Dieses <ph name="SHORT_PRODUCT_NAME" />-Gerät wurde so konzipiert, dass Sie das Web optimal nutzen und genießen können.</translation>
 <translation id="6317318380444133405">Wird nicht mehr unterstützt.</translation>
 <translation id="6317369057005134371">Warten auf Anwendungsfenster...</translation>
 <translation id="6318407754858604988">Download gestartet</translation>
-<translation id="6322279351188361895">Privater Schlüssel konnte nicht gelesen werden.</translation>
 <translation id="6325191661371220117">Automatisches Starten deaktivieren</translation>
 <translation id="6326175484149238433">Aus Chrome entfernen</translation>
 <translation id="6326855256003666642">Keepalive-Zahl</translation>
@@ -3406,7 +3357,6 @@
 <translation id="6333049849394141510">Auswahl synchronisieren</translation>
 <translation id="6333064448949140209">Datei wird zur Fehlerbehebung an Google gesendet</translation>
 <translation id="6333834492048057036">Adressleiste für die Suche fokussieren</translation>
-<translation id="6336907568130557310">Ihre Passwörter sind für jeden zugänglich, der die exportierte Datei sehen kann. Geben Sie die Datei nicht an andere weiter und löschen Sie sie nach dem Import.</translation>
 <translation id="6339668969738228384">Neues Profil für <ph name="USER_EMAIL_ADDRESS" /> erstellen</translation>
 <translation id="6340017061976355871">Keine Verbindung mit dem Server möglich. Bitte überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es noch einmal. Sollte das Problem weiterhin bestehen, starten Sie Ihr Chromebook neu.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3435,7 +3385,6 @@
 <translation id="6385543213911723544">Websites können Cookiedaten speichern und lesen.</translation>
 <translation id="6388771388956873507">Suchen Sie den Fingerabdrucksensor Ihres Geräts und berühren Sie ihn mit dem Finger</translation>
 <translation id="6390799748543157332">In diesem Fenster aufgerufene Seiten erscheinen nicht im Browserverlauf und hinterlassen auch keine anderweitigen Spuren wie Cookies auf dem Computer, nachdem Sie alle geöffneten Gastmodus-Fenster geschlossen haben. Heruntergeladene Dateien bleiben jedoch erhalten.</translation>
-<translation id="6391538222494443604">Eingabeverzeichnis muss vorhanden sein.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Systeminformationen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Messwerte<ph name="END_LINK2" /> senden</translation>
 <translation id="6397363302884558537">Sprachausgabe stoppen</translation>
 <translation id="6397592254427394018">Alle Lesezeichen in &amp;Inkognito-Fenster öffnen</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">JavaScript-Blockierung verwalten...</translation>
 <translation id="6459488832681039634">Auswahl suchen</translation>
 <translation id="6460601847208524483">Nächste Übereinstimmung suchen</translation>
-<translation id="6462080265650314920">Für Apps muss der Inhaltstyp "<ph name="CONTENT_TYPE" />" bereitgestellt werden.</translation>
 <translation id="6462082050341971451">Sind Sie noch da?</translation>
 <translation id="6463795194797719782">B&amp;earbeiten</translation>
 <translation id="6466988389784393586">&amp;Alle Lesezeichen öffnen</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Soll Google diese Seite von <ph name="SOURCE_LANGUAGE" /> in <ph name="TARGET_LANGUAGE" /> übersetzen?</translation>
 <translation id="6675665718701918026">Zeigegerät verbunden</translation>
-<translation id="6677037229676347494">Erwartete ID: "<ph name="EXPECTED_ID" />", tatsächliche ID: "<ph name="NEW_ID" />"</translation>
 <translation id="6678717876183468697">Abfrage-URL</translation>
 <translation id="6680028776254050810">Nutzer wechseln</translation>
 <translation id="6680442031740878064">Verfügbar: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">Sie können die von Google erfassten Informationen jederzeit in den <ph name="BEGIN_LINK" />Einstellungen<ph name="END_LINK" /> anpassen.</translation>
 <translation id="6904344821472985372">Dateizugriff aufheben</translation>
 <translation id="6904655473976120856">Klicken Sie zum Beenden des Modus auf die App-Schaltfläche</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> möchte Ihren Bildschirm freigeben.</translation>
-<translation id="6909461304779452601">Von dieser Website können keine Apps, Erweiterungen und Nutzerskripte hinzugefügt werden.</translation>
 <translation id="6910211073230771657">Gelöscht</translation>
 <translation id="691024665142758461">Mehrere Dateien herunterladen</translation>
 <translation id="6911324888870229398">Die Netzwerkverbindung wurde unterbrochen. Bitte überprüfen Sie Ihre Verbindung oder stellen Sie eine Verbindung zu einem anderen WLAN her.</translation>
@@ -4104,7 +4049,6 @@
 <translation id="747114903913869239">Fehler: Erweiterung kann nicht entschlüsselt werden.</translation>
 <translation id="7473891865547856676">Nein danke</translation>
 <translation id="747459581954555080">Alle wiederherstellen</translation>
-<translation id="7475034671245341386">Bei <ph name="PLUGIN_NAME" /> ist ein Fehler aufgetreten.</translation>
 <translation id="7475671414023905704">Netscape-URL für vergessene Passwörter</translation>
 <translation id="7476454130948140105">Der Akku ist für ein Update zu schwach (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Wenn Sie die Passphrase vergessen habe, halten Sie die Synchronisierung über das <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> an und setzen Sie sie zurück.</translation>
@@ -4141,7 +4085,6 @@
 <translation id="7507930499305566459">Zertifikat für Statusantwortdienst</translation>
 <translation id="7508545000531937079">Diashow</translation>
 <translation id="7513029293694390567">Sie werden mithilfe gespeicherter Anmeldedaten automatisch auf Websites angemeldet. Wenn diese Funktion deaktiviert ist, werden Sie bei jeder Anmeldung auf einer Website nach einer Bestätigung gefragt.</translation>
-<translation id="7515670329462166359">Für die Wiedergabe von geschützten Inhalten muss <ph name="URL" /> Ihr Gerät eindeutig identifizieren können.</translation>
 <translation id="7517569744831774757">Einstellungen auf ursprüngliche Standardwerte zurücksetzen</translation>
 <translation id="7517786267097410259">Passwort erstellen –</translation>
 <translation id="7518150891539970662">WebRTC-Protokolle (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4171,7 +4114,6 @@
     und erneut versuchen, einen betreuten Nutzer zu erstellen.</translation>
 <translation id="756445078718366910">Browserfenster öffnen</translation>
 <translation id="7564847347806291057">Prozess beenden</translation>
-<translation id="7565291891798266313">Ihre Suchmaschine wurde in <ph name="URL" /> geändert. Zum Deaktivieren von Erweiterungen, die Ihre Suchmaschine ändern, klicken Sie auf "Wiederherstellen".</translation>
 <translation id="7566118625369982896">Play-App-Links verwalten</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Gelöschte Chrome-Daten</translation>
@@ -4180,7 +4122,6 @@
 <translation id="7573172247376861652">Akkustand</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Zuordnen</translation>
-<translation id="7577815336900970562">WLAN oder Mobilfunknetz zur Standortbestimmung nutzen</translation>
 <translation id="7579149537961810247">Websites stummschalten</translation>
 <translation id="7580671184200851182">Dieselben Audioinhalte über alle Boxen wiedergeben (Mono-Audio)</translation>
 <translation id="7581462281756524039">Ein Bereinigungstool</translation>
@@ -4287,6 +4228,7 @@
 <translation id="7773726648746946405">Sitzungsspeicher</translation>
 <translation id="7781335840981796660">Alle Benutzerkonten und lokalen Daten werden entfernt.</translation>
 <translation id="7782102568078991263">Keine weiteren Vorschläge von Google</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> konnte nicht geladen werden</translation>
 <translation id="7784067724422331729">Diese Datei wurde von den Sicherheitseinstellungen auf Ihrem Computer blockiert.</translation>
 <translation id="7786207843293321886">Gastsitzung beenden</translation>
 <translation id="7786889348652477777">App &amp;neu laden</translation>
@@ -4449,7 +4391,6 @@
 <translation id="8001504501378762252">Eine Website könnte Ihr Passwort gestohlen haben</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Sie haben keine Verbindung mit dem Internet. Bitte überprüfen Sie Ihre Internetverbindung.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> konnte nicht geladen werden.</translation>
 <translation id="8008818777654712271">Ich möchte automatisch einige Systeminformationen und Seiteninhalte an Google senden, um bei der Erfassung schädlicher Apps und Websites zu helfen</translation>
 <translation id="8012382203418782830">Diese Seite wurde übersetzt.</translation>
 <translation id="8014154204619229810">Der Updater wird momentan ausgeführt. Bitte versuchen Sie es in einer Minute erneut, indem Sie eine Aktualisierung vornehmen.</translation>
@@ -4566,7 +4507,6 @@
 <translation id="8191230140820435481">Apps, Erweiterungen und Designs verwalten</translation>
 <translation id="8191453843330043793">V8-Proxy-Resolver</translation>
 <translation id="8195027750202970175">Dateigröße</translation>
-<translation id="8195739004487400241">Ihre Startseite wurde in <ph name="URL" /> geändert. Zum Deaktivieren von Erweiterungen, die Ihre Startseite ändern, klicken Sie auf "Wiederherstellen".</translation>
 <translation id="8199300056570174101">Netzwerk(dienst) und Geräteeigenschaften</translation>
 <translation id="8200772114523450471">Fortsetzen</translation>
 <translation id="8202160505685531999">Geben Sie Ihr Passwort erneut ein, um Ihr <ph name="DEVICE_TYPE" />-Profil zu aktualisieren.</translation>
@@ -4610,7 +4550,6 @@
 <translation id="8261378640211443080">Diese Erweiterung ist nicht im <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> aufgeführt und wurde möglicherweise ohne Ihr Wissen hinzugefügt.</translation>
 <translation id="8261387128019234107">Konto für <ph name="PROFILE_NAME" /> hinzufügen</translation>
 <translation id="8261506727792406068">Löschen</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ist in diesem Build nicht implementiert.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> hat Ihren Mauszeiger deaktiviert.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" hat den Vollbildmodus ausgelöst.</translation>
 <translation id="8270242299912238708">PDF-Dokumente</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Sie können auch ein anderes Netzwerk auswählen:</translation>
 <translation id="845627346958584683">Ablaufzeit</translation>
 <translation id="8456681095658380701">Ungültiger Name</translation>
+<translation id="8457451314607652708">Lesezeichen importieren</translation>
 <translation id="8460336040822756677">Wenn Sie Smart Lock für <ph name="DEVICE_TYPE" /> deaktivieren, können Sie Ihre Chrome-Geräte nicht mit Ihrem Smartphone entsperren, sondern müssen Ihr Passwort eingeben.</translation>
 <translation id="8461329675984532579">Name des Homepageanbieters</translation>
 <translation id="84613761564611563">UI zur Netzwerkkonfiguration angefordert. Bitte warten…</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Keine schädliche Software gefunden</translation>
 <translation id="8512476990829870887">Prozess beenden</translation>
 <translation id="851263357009351303">Anzeige von Bildern für <ph name="HOST" /> immer zulassen</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" führt ein Debugging für diesen Browser durch.</translation>
 <translation id="8521475323816527629">Schneller Zugriff auf Ihre Apps</translation>
 <translation id="8523493869875972733">Änderungen beibehalten</translation>
 <translation id="8523849605371521713">Von Richtlinie hinzugefügt</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Netzwerkverbindungen konfigurieren</translation>
 <translation id="8620790565535071193">Fehler beim Scannen</translation>
 <translation id="8622877356447980900">Soll diese Seite übersetzt werden?</translation>
-<translation id="8623004009673949077">App mit Manifest-Attribut "kiosk_only" muss im Chrome OS-Kioskmodus installiert werden.</translation>
 <translation id="8624205858755890468">Ermöglicht Assistant, Ihnen relevante Informationen, Apps und Aktionen anzuzeigen.</translation>
 <translation id="862542460444371744">&amp;Erweiterungen</translation>
 <translation id="8627151598708688654">Quelle auswählen</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Für mehr Sicherheit Firmware aktualisieren.</translation>
 <translation id="8823514049557262177">Linkte&amp;xt kopieren</translation>
 <translation id="8824701697284169214">&amp;Seite hinzufügen...</translation>
-<translation id="8827850355924932817">WLAN zur Standortbestimmung nutzen</translation>
 <translation id="8828933418460119530">DNS-Name</translation>
 <translation id="8830796635868321089">Mit den aktuellen Proxyeinstellungen ist bei der Suche nach Updates ein Fehler aufgetreten. Passen Sie Ihre <ph name="PROXY_SETTINGS_LINK_START" />Proxyeinstellungen<ph name="PROXY_SETTINGS_LINK_END" /> an.</translation>
 <translation id="8834039744648160717">Die Netzwerkkonfiguration wird von <ph name="USER_EMAIL" /> festgelegt.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">Tab "Anzeigen al&amp;s"</translation>
 <translation id="8884961208881553398">Neue Dienste hinzufügen</translation>
 <translation id="8885197664446363138">Smart Lock ist nicht verfügbar.</translation>
-<translation id="8885905466771744233">Es existiert bereits ein privater Schlüssel für die angegebene Erweiterung. Verwenden Sie diesen Schlüssel oder löschen Sie ihn zuerst.</translation>
 <translation id="8888432776533519951">Farbe:</translation>
-<translation id="8892992092192084762">Design "<ph name="THEME_NAME" />" installiert</translation>
 <translation id="8893928184421379330">Das Gerät <ph name="DEVICE_LABEL" /> wurde nicht erkannt.</translation>
 <translation id="8895454554629927345">Lesezeichenliste</translation>
 <translation id="88986195241502842">Bildlauf nach unten</translation>
@@ -4997,7 +4932,6 @@
 <translation id="8908902564709148335">Warnung: Sie haben auf diesem Computer den Parameter --scripts-require-action aktiviert, durch den diese Erweiterung funktional eingeschränkt wird. Andere Geräte unterstützen den Parameter jedoch möglicherweise nicht oder er ist dort aktiviert. Auf solchen Geräten ist diese Erweiterung auch zu Folgendem in der Lage:</translation>
 <translation id="8910146161325739742">Bildschirm freigeben</translation>
 <translation id="8910222113987937043">Änderungen an Ihrem Verlauf sowie an Ihren Lesezeichen, Passwörtern und sonstigen Einstellungen werden nicht mehr mit Ihrem Google-Konto synchronisiert. Bereits in Ihrem Google-Konto gespeicherte Daten bleiben dort erhalten und können über das <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> verwaltet werden.</translation>
-<translation id="8911079125461595075">"<ph name="EXTENSION_NAME" />" wurde von Google als schädlich eingestuft und die Installation wurde blockiert.</translation>
 <translation id="8912793549644936705">Strecken</translation>
 <translation id="8915370057835397490">Vorschläge werden geladen</translation>
 <translation id="8916476537757519021">Inkognito-Subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-Maus angeschlossen</translation>
 <translation id="9076523132036239772">Ihre E-Mail-Adresse bzw. Ihr Passwort konnte nicht bestätigt werden. Stellen Sie zunächst eine Netzwerkverbindung her.</translation>
-<translation id="907841381057066561">Während des Packvorgangs wurde keine temporäre ZIP-Datei erstellt.</translation>
 <translation id="9084064520949870008">In Fenster öffnen</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> wurde aufgrund von Unternehmensrichtlinien blockiert</translation>
 <translation id="9088917181875854783">Bitte bestätigen Sie, dass dieser Zugangscode auf "<ph name="DEVICE_NAME" />" angezeigt wird:</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Passphrase eingeben</translation>
 <translation id="939736085109172342">Neuer Ordner</translation>
-<translation id="941543339607623937">Ungültiger privater Schlüssel</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> hat einen Chrome-Tab und Audio freigegeben.</translation>
 <translation id="942954117721265519">Dieses Verzeichnis enthält keine Bilder.</translation>
 <translation id="945522503751344254">Feedback geben</translation>
-<translation id="951981865514037445"><ph name="URL" /> möchte den Standort Ihres Geräts nutzen.</translation>
 <translation id="952992212772159698">Nicht aktiviert</translation>
 <translation id="9580706199804957">Keine Verbindung mit Google-Diensten möglich</translation>
 <translation id="958515377357646513">Zum Weitergehen tippen.</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 7dfced6..45bbd7c 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Μόνο κρυπτογράφηση</translation>
 <translation id="1039337018183941703">Μη έγκυρο ή κατεστραμμένο αρχείο</translation>
 <translation id="1042174272890264476">Ο υπολογιστής σας κυκλοφορεί και με ενσωματωμένη τη βιβλιοθήκη RLZ του <ph name="SHORT_PRODUCT_NAME" />. Το RLZ εκχωρεί μια μη μοναδική ετικέτα μη προσωπικής ταυτοποίησης για τη μέτρηση των αναζητήσεων και της χρήσης του <ph name="SHORT_PRODUCT_NAME" /> που προκύπτει από μια συγκεκριμένη καμπάνια προώθησης. Αυτές οι ετικέτες εμφανίζονται μερικές φορές σε ερωτήματα στην Αναζήτηση Google στο <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Ο ιστότοπος <ph name="URL" /> θέλει να αποθηκεύσει μόνιμα δεδομένα μεγάλου όγκου στη συσκευή σας.</translation>
 <translation id="1046059554679513793">Ωχ, αυτό το όνομα χρησιμοποιείται ήδη!</translation>
 <translation id="1047431265488717055">Αντιγραφή κε&amp;ιμένου συνδέσμου</translation>
 <translation id="1047726139967079566">Τοποθέτηση Σελιδοδείκτη σε Αυτήν τη Σελίδα...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Επαναφορά προεπιλεγμένης μηχανής αναζήτησης;</translation>
 <translation id="1177863135347784049">Προσαρμοσμένη</translation>
 <translation id="1178581264944972037">Παύση</translation>
-<translation id="1179803038870941185">Η διεύθυνση <ph name="URL" /> επιθυμεί να αποκτήσει τον πλήρη έλεγχο των συσκευών σας MIDI.</translation>
 <translation id="1181037720776840403">Κατάργηση</translation>
 <translation id="1183237619868651138">Δεν είναι δυνατή η εγκατάσταση του <ph name="EXTERNAL_CRX_FILE" /> σε τοπική κρυφή μνήμη.</translation>
 <translation id="1185924365081634987">Μπορείτε επίσης να δοκιμάσετε να <ph name="GUEST_SIGNIN_LINK_START" />περιηγηθείτε ως επισκέπτης<ph name="GUEST_SIGNIN_LINK_END" /> για να διορθώσετε αυτό το σφάλμα δικτύου.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Πρόσβαση σε ένα αρχείο που είναι αποθηκευμένο στον υπολογιστή σας}other{Πρόσβαση σε # αρχεία που είναι αποθηκευμένα στον υπολογιστή σας}}</translation>
 <translation id="1195076408729068893">Για να ξεκινήσετε το Smart Lock, καταχωρίστε τον κωδικό πρόσβασης. Την επόμενη φορά μπορείτε να χρησιμοποιήσετε το τηλέφωνό σας, για να ξεκλειδώσετε το <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Άγνωστο σφάλμα.</translation>
-<translation id="1196338895211115272">Αποτυχία εξαγωγής ιδιωτικού κλειδιού.</translation>
 <translation id="119738088725604856">Παράθυρο στιγμιότυπου οθόνης</translation>
 <translation id="1197979282329025000">Προέκυψε σφάλμα κατά την ανάκτηση των δυνατοτήτων του εκτυπωτή <ph name="PRINTER_NAME" />. Δεν ήταν δυνατή η καταχώριση αυτού του εκτυπωτή στο <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Έναρξη</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Ο διαχειριστής σας προτείνει μια συγκεκριμένη τιμή για αυτήν τη ρύθμιση.</translation>
 <translation id="1225177025209879837">Επεξεργασία αιτήματος…</translation>
 <translation id="1225211345201532184">Στοιχείο ραφιού 5</translation>
-<translation id="1225404570112441414">Προσθέστε αυτόν τον ιστότοπο στο ράφι σας για να τον χρησιμοποιήσετε ανά πάσα στιγμή.</translation>
 <translation id="1227507814927581609">Ο έλεγχος ταυτότητας απέτυχε κατά τη σύνδεση στη συσκευή "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">μενού συστήματος</translation>
 <translation id="1232569758102978740">Χωρίς τίτλο</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Αρχείο σελιδοδεικτών HTML</translation>
 <translation id="1303671224831497365">Δεν βρέθηκαν συσκευές Bluetooth</translation>
 <translation id="1306606229401759371">Αλλαγή ρυθμίσεων</translation>
-<translation id="1307398858972670978">Δείτε τους κωδικούς πρόσβασής σας από οποιαδήποτε συσκευή στη διεύθυνση <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ωχ!  Το σύστημα δεν κατάφερε να αποθηκεύσει το μακροπρόσθεσμο διακριτικό πρόσβασης API για αυτήν τη συσκευή.</translation>
 <translation id="1313405956111467313">Αυτόματη διαμόρφωση διακομιστή μεσολάβησης</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Αναζήτηση</translation>
 <translation id="1386387014181100145">Γεια σας.</translation>
 <translation id="138784436342154190">Επαναφορά προεπιλεγμένης σελίδας εκκίνησης;</translation>
-<translation id="1389297115360905376">Η προσθήκη αυτή είναι δυνατή μόνο από το <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Άνοιγμα σε κανονική καρτέλα</translation>
-<translation id="1391807639023934267">Ταχύτερη φόρτωση σελίδας.</translation>
 <translation id="1393283411312835250">Ήλιος και σύννεφα</translation>
 <translation id="1395262318152388157">Ρυθμιστικό αναζήτησης</translation>
 <translation id="1395730723686586365">Ξεκίνησε το πρόγραμμα ενημέρωσης</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Πρόκειται να ενημερώσετε σε μια ασταθή έκδοση του <ph name="PRODUCT_NAME" />, η οποία περιλαμβάνει δυνατότητες που βρίσκονται υπό ανάπτυξη. Ενδεχομένως να υπάρχουν ατέλειες και απρόσμενα σφάλματα.</translation>
 <translation id="1415990189994829608">Η επέκταση <ph name="EXTENSION_NAME" /> (αναγνωριστικό επέκτασης "<ph name="EXTENSION_ID" />") δεν επιτρέπεται σε αυτόν τον τύπο περιόδου σύνδεσης.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Αποτυχία δημιουργίας τυχαίου ιδιωτικού κλειδιού RSA.</translation>
 <translation id="1420834118113404499">Άδειες πολυμέσων</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> για να επιτρέψετε τη σύζευξη</translation>
 <translation id="1426410128494586442">Ναι</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Α&amp;ντιγραφή διεύθυνσης ήχου</translation>
 <translation id="1465827627707997754">Κομμάτι πίτσα</translation>
 <translation id="1467432559032391204">Αριστερά</translation>
-<translation id="1467999917853307373">Ο ιστότοπος <ph name="URL" /> θέλει να αποθηκεύσει μόνιμα δεδομένα στη συσκευή σας.</translation>
-<translation id="1470719357688513792">Οι ρυθμίσεις νέων cookie θα εφαρμοστούν μετά την επανάληψη φόρτωσης της σελίδας.</translation>
 <translation id="1470811252759861213">Για να εμφανίζονται οι επεκτάσεις σε όλους τους υπολογιστές, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Το αρχείο "<ph name="FILENAME" />" δεν ανέβηκε. Δεν υπάρχει επαρκής ελεύθερος χώρος στο Google Drive σας.</translation>
 <translation id="1475502736924165259">Έχετε καταχωρίσει πιστοποιητικά που δεν αντιστοιχούν σε καμία από τις άλλες κατηγορίες</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Μεγάλος δείκτης ποντικιού</translation>
 <translation id="1543284117603151572">Εισαγωγή από το Edge</translation>
 <translation id="1545177026077493356">Αυτόματη λειτουργία kiosk</translation>
+<translation id="1545775234664667895">Εγκατεστημένο θέμα "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL με % στη θέση του ερωτήματος</translation>
 <translation id="1546280085599573572">Αυτή η επέκταση άλλαξε τη σελίδα που εμφανίζεται όταν κάνετε κλικ στο κουμπί αρχικής σελίδας.</translation>
 <translation id="1547572086206517271">Απαιτείται ανανέωση</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />ελέγχετε<ph name="END_BOLD" /> τους ιστότοπους που επισκέφτηκε ένας εποπτευόμενος χρήστης και να
     <ph name="BEGIN_BOLD" />διαχειρίζεστε<ph name="END_BOLD" /> άλλες ρυθμίσεις.</translation>
 <translation id="1648943974594387137">Τα στοιχεία σύνδεσης δεν είναι ενημερωμένα</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> γραμμές δεν εμφανίζονται&gt;</translation>
 <translation id="1650371550981945235">Εμφάνιση επιλογών εισαγωγής</translation>
 <translation id="1650709179466243265">Προσθήκη www. και .com και άνοιγμα διεύθυνσης</translation>
 <translation id="1651008383952180276">Πρέπει να εισαγάγετε δύο φορές την ίδια φράση πρόσβασης</translation>
-<translation id="1652972346408808053">Ο κωδικός πρόσβασης αποθηκεύτηκε. Δείτε τους κωδικούς πρόσβασής σας από οποιαδήποτε συσκευή στη διεύθυνση <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Προσθέστε τον εκτυπωτή στο Google Cloud Print, για να μπορείτε να εκτυπώνετε όπου και αν βρίσκεστε.}other{Προσθέστε # εκτυπωτές στο Google Cloud Print, για να μπορείτε να εκτυπώνετε όπου και αν βρίσκεστε.}}</translation>
 <translation id="1657406563541664238">Συμβάλετε στη βελτίωση του <ph name="PRODUCT_NAME" /> στέλνοντας αυτόματα στην Google στατιστικά στοιχεία χρήσης και αναφορές σφαλμάτων</translation>
 <translation id="1658424621194652532">Αυτή η σελίδα έχει πρόσβαση στο μικρόφωνό σας.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Συνέχεια αποκλεισμού cookie</translation>
 <translation id="204622017488417136">Η συσκευή σας θα πρέπει να επανέλθει στην προηγούμενη εγκατεστημένη έκδοση του Chrome. Θα καταργηθούν όλοι οι λογαριασμοί χρηστών και τα τοπικά δεδομένα. Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.</translation>
 <translation id="2048182445208425546">Πρόσβαση στην επισκεψιμότητά σας δικτύου</translation>
-<translation id="2049137146490122801">Η πρόσβαση στα τοπικά αρχεία στο μηχάνημά σας έχει απενεργοποιηθεί από το διαχειριστή σας.</translation>
 <translation id="204914487372604757">Δημιουργία συντόμευσης</translation>
 <translation id="2050339315714019657">Κάθετα</translation>
 <translation id="2053312383184521053">Δεδομένα κατάστασης αδράνειας</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Δεν έχει φορτωθεί ακόμα</translation>
 <translation id="2107494551712864447">Προσθήκη δακτυλικού αποτυπώματος</translation>
-<translation id="2111843886872897694">Οι εφαρμογές θα πρέπει να προβάλλονται από τον κεντρικό υπολογιστή που επηρεάζουν.</translation>
 <translation id="2112877397266219826">Ενεργοποιήστε τον ελεγκτή αφής για ρύθμιση</translation>
 <translation id="21133533946938348">Καρφίτσωμα καρτέλας</translation>
 <translation id="2113479184312716848">Άνοιγμα αρχείου...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Πείτε μας τι συμβαίνει</translation>
 <translation id="2229161054156947610">Απομένει περισσότερο από 1 ώρα</translation>
 <translation id="222931766245975952">Περικομμένο αρχείο</translation>
-<translation id="222949136907494149">Το <ph name="URL" /> ζητά να χρησιμοποιήσει την τοποθεσία του υπολογιστή σας.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Δεν είναι δυνατή η δημιουργία του φακέλου "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Κάντε κλικ για να δείτε το σημερινό doodle</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Να μην επιτρέπται ποτέ η πρόσβαση στο μικρόφωνο</translation>
 <translation id="2367972762794486313">Εμφάνιση εφαρμογών</translation>
 <translation id="2371076942591664043">Άνοιγμα κατά την &amp;ολοκλήρωση</translation>
-<translation id="237336063998926520">Χρήση της διεύθυνσης IP για την εξακρίβωση της τοποθεσίας σας</translation>
 <translation id="2377319039870049694">Εναλλαγή σε προβολή λίστας</translation>
 <translation id="2377667304966270281">Σοβαρά σφάλματα</translation>
 <translation id="2378075407703503998">Έχουν επιλεγεί <ph name="SELCTED_FILE_COUNT" /> αρχεία</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239">Η εφαρμογή <ph name="APP_NAME" /> θέλει να αντιγράψει αρχεία από <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Αναγνωριστικό κλειδιού Αρχής πιστοποίησης</translation>
 <translation id="2462752602710430187">Προστέθηκε <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Εισαγωγή σελιδοδεικτών</translation>
 <translation id="2464089476039395325">Διακομιστής μεσολάβησης HTTP</translation>
 <translation id="2468902267404883140">Δεν είναι δυνατή η σύνδεση στο τηλέφωνό σας. Βεβαιωθείτε ότι χρησιμοποιείτε συμβατό τηλέφωνο Android που είναι ενεργοποιημένο και διαθέσιμο. &lt;a&gt;Μάθετε περισσότερα&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Απενεργοποίηση μη υποστηριζόμενων επεκτάσεων</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Κατάργηση Εγκατάστασης</translation>
 <translation id="2487067538648443797">Προσθήκη νέου σελιδοδείκτη</translation>
 <translation id="248861575772995840">Δεν είναι δυνατή η εύρεση του τηλεφώνου σας. Βεβαιωθείτε ότι το Bluetooth του <ph name="DEVICE_TYPE" /> είναι ενεργοποιημένο. &lt;a&gt;Μάθετε περισσότερα&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Μια προσθήκη (<ph name="PLUGIN_NAME" />) δεν αποκρίνεται.</translation>
 <translation id="2489428929217601177">την προηγούμενη ημέρα</translation>
 <translation id="2489918096470125693">Προσθήκη &amp;φακέλου...</translation>
 <translation id="249113932447298600">Λυπούμαστε, η συσκευή <ph name="DEVICE_LABEL" /> δεν υποστηρίζεται προς το παρόν.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Συγχαρητήρια! Η υπηρεσία δεδομένων "<ph name="NAME" />" έχει ενεργοποιηθεί και είναι έτοιμη για χρήση.</translation>
 <translation id="2566124945717127842">Το Powerwash θα επαναφέρει τη συσκευή σας <ph name="IDS_SHORT_PRODUCT_NAME" /> και θα την κάνει σαν καινούρια.</translation>
 <translation id="2568774940984945469">Υποδοχέας γραμμής πληροφοριών</translation>
-<translation id="2570000010887652771">Εξοικονόμηση δεδομένων.</translation>
 <translation id="257088987046510401">Θέματα</translation>
 <translation id="2572032849266859634">Παραχωρήθηκε πρόσβαση ανάγνωσης σε <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Επιλογή εικόνας και ονόματος</translation>
 <translation id="2575247648642144396">Αυτό το εικονίδιο θα είναι ορατό όταν η επέκταση μπορεί να λειτουργήσει στην τρέχουσα σελίδα. Χρησιμοποιήστε αυτήν την επέκταση κάνοντας κλικ στο εικονίδιο ή πατώντας <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Δεν είναι δυνατή η εύρεση του τηλεφώνου σας. Βεβαιωθείτε ότι το <ph name="DEVICE_TYPE" /> είναι συνδεδεμένο σε Wi-Fi ή δίκτυο κινητής τηλεφωνίας. &lt;a&gt;Μάθετε περισσότερα&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Υπάρχει ήδη ένα αρχείο CRX με αυτό το όνομα.</translation>
 <translation id="257779572837908839">Ρύθμιση ως Chromebox για συνεδριάσεις</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Δεν είναι δυνατή η αποσύνδεση του τόμου<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Εάν διαγράψετε ένα πιστοποιητικό Αρχής πιστοποίησης (ΑΠ), τότε το  πρόγραμμα περιήγησής σας δεν θα αποδέχεται πλέον οποιαδήποτε πιστοποιητικά εκδίδονται από αυτή την ΑΠ.</translation>
 <translation id="2653659639078652383">Υποβολή</translation>
 <translation id="265390580714150011">Τιμή πεδίου</translation>
-<translation id="2654286334048437383">Εξαγωγή σελιδοδεικτών</translation>
 <translation id="2655386581175833247">Πιστοποιητικό χρήστη:</translation>
 <translation id="2660779039299703961">Συμβάν</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Προσθήκη συλλογής μέσων από τον κατάλογο</translation>
 <translation id="2908789530129661844">Σμίκρυνση οθόνης</translation>
 <translation id="2910318910161511225">Συνδεθείτε σε ένα δίκτυο και δοκιμάστε ξανά</translation>
-<translation id="2912905526406334195">Ο ιστότοπος <ph name="HOST" /> επιθυμεί να χρησιμοποιήσει το μικρόφωνο σας.</translation>
 <translation id="2913331724188855103">Να επιτρέπεται στους ιστότοπους η αποθήκευση και η ανάγνωση δεδομένων cookie (συνιστάται)</translation>
 <translation id="2916073183900451334">Εάν πατήσετε το πλήκτρο Tab σε μια ιστοσελίδα, επισημαίνονται οι σύνδεσμοι, καθώς και τα πεδία φόρμας</translation>
 <translation id="2916745397441987255">Αναζήτηση επεκτάσεων</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Ακρόαση…</translation>
 <translation id="3141917231319778873">Το συγκεκριμένο αίτημα δεν υποστηρίζεται στη συσκευή: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">ΤΕΛΟΣ</translation>
-<translation id="3144135466825225871">Αποτυχία αντικατάστασης αρχείου crx. Ελέγξτε αν το αρχείο χρησιμοποιείται.</translation>
 <translation id="3144647712221361880">Άνοιγμα συνδέσμου ως</translation>
 <translation id="3149510190863420837">Εφαρμογές Chrome</translation>
 <translation id="3150927491400159470">Υποχρεωτική επανάληψη φόρτωσης</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Να εκτελείται πάντα σε όλους τους ιστότοπους</translation>
 <translation id="3312424061798279731">Ενεργοποιημένες γλώσσες</translation>
 <translation id="3312903956926554846">Εγκατάσταση στην επιφάνεια εργασίας</translation>
-<translation id="3313473140726597081">Η σελίδα εκκίνησής σας άλλαξε σε <ph name="URL" />. Για να απενεργοποιήσετε τις επεκτάσεις που αλλάζουν τη σελίδα εκκίνησής σας, κάντε κλικ στην "Επαναφορά".</translation>
 <translation id="3313590242757056087">Για να ορίσετε τους ιστότοπους που μπορεί να επισκέπτεται ο εποπτευόμενος χρήστης, μπορείτε να διαμορφώσετε τους περιορισμούς
     και άλλες ρυθμίσεις από τη διεύθυνση <ph name="MANAGEMENT_URL" />.
     Αν δεν αλλάξετε τις προεπιλεγμένες ρυθμίσεις, ο χρήστης <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Πληροφορίες εφαρμογής</translation>
 <translation id="3335947283844343239">Εκ Νέου Άνοιγμα Κλεισμένης Καρτέλας</translation>
-<translation id="3337069537196930048">Η προσθήκη <ph name="PLUGIN_NAME" /> αποκλείστηκε επειδή δεν είναι ενημερωμένη.</translation>
 <translation id="3340978935015468852">ρυθμίσεις</translation>
 <translation id="3341703758641437857">Να επιτρέπεται η πρόσβαση σε διευθύνσεις URL αρχείων</translation>
 <translation id="3342361181740736773">Η επέκταση "<ph name="TRIGGERING_EXTENSION_NAME" />" θέλει να καταργήσει αυτήν την επέκταση.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Προστέθηκε σελιδοδείκτης</translation>
 <translation id="3389312115541230716">Κάντε δεξί κλικ στο εικονίδιο <ph name="SMALL_PRODUCT_LOGO" /> στη γραμμή εργασιών</translation>
 <translation id="3391716558283801616">Καρτέλα 7</translation>
-<translation id="3394150261239285340">Ο ιστότοπος <ph name="HOST" /> επιθυμεί να χρησιμοποιήσει την κάμερα και το μικρόφωνο σας.</translation>
 <translation id="3396331542604645348">Ο επιλεγμένος εκτυπωτής δεν είναι διαθέσιμος ή δεν έχει εγκατασταθεί σωστά. Ελέγξτε τον εκτυπωτή σας ή δοκιμάστε να επιλέξετε άλλον εκτυπωτή.</translation>
 <translation id="3399432415385675819">Οι ειδοποιήσεις θα απενεργοποιηθούν</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Το Chrome ενημερώνεται αυτόματα έτσι ώστε να έχετε πάντα στη διάθεσή σας τη νεότερη έκδοση.</translation>
 <translation id="3551320343578183772">Κλείσιμο Καρτέλας</translation>
 <translation id="3552780134252864554">Διαγραφή κατά την έξοδο</translation>
-<translation id="355298399003313926">Το URL <ph name="URL" /> επιθυμεί να απαντήσει σε συμβάντα προσβασιμότητας.</translation>
 <translation id="3555812735919707620">Κατάργηση επέκτασης</translation>
 <translation id="3556000484321257665">Η μηχανή αναζήτησής σας άλλαξε σε <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Η τιμή εισαγωγής για το ιδιωτικό κλειδί πρέπει να είναι έγκυρη διαδρομή.</translation>
 <translation id="3563432852173030730">Δεν ήταν δυνατή η λήψη της εφαρμογής Kiosk.</translation>
 <translation id="3564334271939054422">Ενδέχεται να ζητηθεί από το Wi-Fi που χρησιμοποιείτε (<ph name="NETWORK_ID" />) να επισκεφτείτε τη σελίδα σύνδεσής του.</translation>
 <translation id="3564708465992574908">Επίπεδα εστίασης</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Περιορισμοί ονόματος πιστοποιητικού</translation>
 <translation id="3596235046596950091">Ενεργοποίηση υπηρεσιών cloud</translation>
 <translation id="3599863153486145794">Διαγράφει το ιστορικό από όλες τις συνδεδεμένες συσκευές. Ο Λογαριασμός σας Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης στη διεύθυνση <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Η πρόσβαση στα τοπικά αρχεία στη συσκευή σας έχει απενεργοποιηθεί από τον διαχειριστή σας.</translation>
 <translation id="3600792891314830896">Σίγαση ιστοτόπων που αναπαράγουν ήχο</translation>
 <translation id="3603177256297531067">Δεν ήταν δυνατή η μετάφραση αυτής της σελίδας</translation>
 <translation id="3603533104205588786">Μπορείτε να κάνετε κλικ στο αστέρι για να προσθέσετε σελιδοδείκτη σε μια σελίδα</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Τα στιγμιότυπα οθόνης απενεργοποιήθηκαν</translation>
 <translation id="3625870480639975468">Επαναφορά εστίασης</translation>
 <translation id="3626281679859535460">Φωτεινότητα</translation>
-<translation id="3627052133907344175">Η επέκταση απαιτεί "<ph name="IMPORT_NAME" />" με ελάχιστη έκδοση "<ph name="IMPORT_VERSION" />", αλλά είναι εγκατεστημένη μόνο η έκδοση "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Απομένει λιγότερο από 1 λεπτό</translation>
 <translation id="3627588569887975815">Άνοιγμα συνδέσμου σε παράθυρο inco&amp;gnito</translation>
 <translation id="3627671146180677314">Χρόνος ανανέωσης πιστοποιητικού Netscape</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Ρυθμίσεις γλώσσας</translation>
 <translation id="3668823961463113931">Προγράμματα χειρισμού</translation>
 <translation id="3670229581627177274">Ενεργοποίηση Bluetooth</translation>
-<translation id="3672159315667503033">Ο ιστότοπος <ph name="URL" /> θέλει να αποθηκεύσει μόνιμα δεδομένα μεγάλου όγκου στον τοπικό υπολογιστή σας.</translation>
 <translation id="3672681487849735243">Εντοπίστηκε ένα εργοστασιακό σφάλμα</translation>
 <translation id="367645871420407123">αφήστε κενό εάν θέλετε να ορίσετε τον ριζικό κωδικό πρόσβασης στην προεπιλεγμένη τιμή δοκιμαστικής εικόνας</translation>
 <translation id="3678156199662914018">Επέκταση: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Είστε εκτός σύνδεσης</translation>
 <translation id="3788401245189148511">Θα μπορούσε να εκτελέσει τις εξής ενέργειες:</translation>
 <translation id="3789841737615482174">Εγκατάσταση</translation>
-<translation id="3790146417033334899">Η προσθήκη <ph name="PLUGIN_NAME" /> λειτουργεί μόνο στον υπολογιστή.</translation>
 <translation id="379082410132524484">Η κάρτα σας έληξε</translation>
 <translation id="3792890930871100565">Αποσύνδεση εκτυπωτών</translation>
 <translation id="379422718204375917">Χρησιμοποιήστε το Smart Lock, για να συνδεθείτε στον λογαριασμό σας</translation>
-<translation id="3794595850995182458">Έξοδος από τη σελίδα</translation>
 <translation id="3796648294839530037">Αγαπημένα δίκτυα:</translation>
 <translation id="3797900183766075808">&amp;Αναζήτηση <ph name="SEARCH_ENGINE" /> για "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798325802885154040">Σας επιτρέπει να ενεργοποιήσετε/απενεργοποιήσετε τη λειτουργία "άγγιγμα για κλικ"</translation>
@@ -1982,7 +1950,6 @@
 <translation id="3979748722126423326">Ενεργοποίηση <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Καταχωρήθηκε μη έγκυρος τύπος αποθήκευσης.</translation>
 <translation id="3983586614702900908">συσκευές από έναν άγνωστο προμηθευτή</translation>
-<translation id="3984413272403535372">Σφάλμα κατά την υπογραφή επέκτασης.</translation>
 <translation id="3987938432087324095">Λυπάμαι, δεν το κατάλαβα.</translation>
 <translation id="3988996860813292272">Επιλογή ζώνης ώρας</translation>
 <translation id="3989635538409502728">Έξοδος</translation>
@@ -2038,7 +2005,6 @@
 <translation id="4087470595660267445">Εγκαταστήστε εφαρμογές και παιχνίδια από το Google Play στο Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Μάθετε περισσότερα&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Αποδοχή για την ομάδα</translation>
 <translation id="4090103403438682346">Ενεργοποίηση επαληθευμένης πρόσβασης</translation>
-<translation id="4090404313667273475">Η προσθήκη <ph name="PLUGIN_NAME" /> απαιτείται για την εμφάνιση κάποιων στοιχείων σε αυτήν τη σελίδα.</translation>
 <translation id="4090535558450035482">(Η επέκταση αυτή είναι διαχειριζόμενη και δεν μπορεί να καταργηθεί),</translation>
 <translation id="4091434297613116013">φύλλα χαρτιού</translation>
 <translation id="4093955363990068916">Τοπικό αρχείο:</translation>
@@ -2372,7 +2338,6 @@
 <translation id="4714531393479055912">Το <ph name="PRODUCT_NAME" /> μπορεί τώρα να συγχρονίσει τους κωδικούς πρόσβασής σας.</translation>
 <translation id="4715553623069266137">πολύ μικρή (0,8 δ.)</translation>
 <translation id="4716483597559580346">Powerwash για πρόσθετη ασφάλεια</translation>
-<translation id="471800408830181311">Αποτυχία εξόδου ιδιωτικού κλειδιού.</translation>
 <translation id="4720113199587244118">Προσθήκη συσκευών</translation>
 <translation id="4720185134442950733">Δίκτυο δεδομένων κινητής τηλεφωνίας</translation>
 <translation id="4722920479021006856">Η εφαρμογή <ph name="APP_NAME" /> μοιράζεται την οθόνη σας.</translation>
@@ -2509,7 +2474,6 @@
 <translation id="4917385247580444890">Ισχυρό</translation>
 <translation id="4918021164741308375">Το <ph name="ORIGIN" /> θέλει να επικοινωνήσει με την επέκταση "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Αποδοχή</translation>
-<translation id="4919810557098212913">Ο ιστότοπος <ph name="HOST" /> επιθυμεί να χρησιμοποιήσει την κάμερα σας.</translation>
 <translation id="4920887663447894854">Οι ακόλουθοι ιστότοποι έχουν αποκλειστεί από την παρακολούθηση της τοποθεσίας σας σε αυτήν τη σελίδα.</translation>
 <translation id="492299503953721473">Κατάργηση εφαρμογών Android</translation>
 <translation id="4923279099980110923">Ναι, θέλω να βοηθήσω</translation>
@@ -2550,7 +2514,6 @@
 <translation id="4980805016576257426">Αυτή η επέκταση περιέχει κακόβουλο πρόγραμμα.</translation>
 <translation id="498294082491145744">Αλλάξτε τις ρυθμίσεις που ελέγχουν την πρόσβαση των ιστοτόπων σε δυνατότητες, όπως είναι τα cookie, η JavaScript, οι προσθήκες, η γεωγραφική τοποθεσία, το μικρόφωνο, η κάμερα, κ.λπ.</translation>
 <translation id="4988526792673242964">Σελίδες</translation>
-<translation id="4988792151665380515">Αποτυχία εξαγωγής δημόσιου κλειδιού.</translation>
 <translation id="49896407730300355">Περιστροφή προς τα &amp;αριστερά</translation>
 <translation id="4989966318180235467">Έλεγχος &amp;σελίδας παρασκηνίου</translation>
 <translation id="4990343175649730969">Λήψη του Εργαλείου καθαρισμού του Chrome</translation>
@@ -2579,7 +2542,6 @@
 <translation id="5026874946691314267">Να μην εμφανιστεί ξανά</translation>
 <translation id="5027550639139316293">Πιστοποιητικό ηλεκτρονικού ταχυδρομείου</translation>
 <translation id="5027562294707732951">Προσθήκη επέκτασης</translation>
-<translation id="5028012205542821824">Η εγκατάσταση δεν έχει ενεργοποιηθεί.</translation>
 <translation id="5029568752722684782">Διαγραφή αντιγράφου</translation>
 <translation id="5030338702439866405">Έκδοση από</translation>
 <translation id="5036662165765606524">Να μην επιτρέπεται σε κανέναν ιστότοπο να κατεβάζει αυτόματα πολλά αρχεία</translation>
@@ -2615,7 +2577,6 @@
 <translation id="509429900233858213">Παρουσιάστηκε σφάλμα.</translation>
 <translation id="5094721898978802975">Επικοινωνία με συνεργαζόμενες εγγενείς εφαρμογές</translation>
 <translation id="5097002363526479830">Δεν ήταν δυνατή η σύνδεση στο δίκτυο '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Δεν ήταν δυνατή η εύρεση της απόλυτης διαδρομής στον κατάλογο για στοίβαξη.</translation>
 <translation id="5099354524039520280">επάνω</translation>
 <translation id="5100114659116077956">Προκειμένου να εμφανιστούν οι τελευταίες λειτουργίες, θα πρέπει το Chromebox σας να ενημερωθεί.</translation>
 <translation id="5101042277149003567">Άνοιγμα όλων των σελιδοδεικτών</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">Εμφάνιση στο φάκελο</translation>
 <translation id="5171045022955879922">Αναζήτηση ή πληκτρολόγηση διεύθυνσης URL</translation>
 <translation id="5171343362375269016">Μνήμη ανταλλαγής</translation>
-<translation id="5175870427301879686">Η διεύθυνση <ph name="URL" /> θέλει να αποθηκεύσει μόνιμα δεδομένα στον τοπικό υπολογιστή σας.</translation>
 <translation id="5177479852722101802">Συνέχιση αποκλεισμού της πρόσβασης στην κάμερα και στο μικρόφωνο</translation>
 <translation id="5177526793333269655">Προβολή μικρογραφιών</translation>
 <translation id="5177549709747445269">Χρησιμοποιείτε δεδομένα κινητής τηλεφωνίας</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Μορφοποίηση αυτής της συσκευής</translation>
 <translation id="5293170712604732402">Επαναφορά των ρυθμίσεων στις αρχικές προεπιλογές</translation>
 <translation id="5298219193514155779">Το θέμα δημιουργήθηκε από τον/την</translation>
-<translation id="5298363578196989456">Δεν είναι δυνατή η εισαγωγή της επέκτασης "<ph name="IMPORT_NAME" />", επειδή δεν είναι κοινόχρηστη λειτουργική μονάδα.</translation>
 <translation id="5299109548848736476">Να μην γίνεται εντοπισμός</translation>
 <translation id="5299682071747318445">Όλα τα δεδομένα είναι κρυπτογραφημένα με τη δική σας φράση πρόσβασης συγχρονισμού</translation>
 <translation id="5300589172476337783">Εμφάνιση</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">Η επέκταση "<ph name="CHROME_EXTENSION_NAME" />" επιθυμεί σύζευξη</translation>
 <translation id="5332624210073556029">Ζώνη ώρας:</translation>
 <translation id="5334142896108694079">Προσωρινή μνήμη σεναρίου</translation>
-<translation id="533433379391851622">Αναμενόταν η έκδοση "<ph name="EXPECTED_VERSION" />", ωστόσο η έκδοση ήταν η "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Προβολή κώδικα</translation>
 <translation id="5335458522276292100">Δημιουργία αντιγράφων ασφαλείας για <ph name="FILE_COUNT" /> αρχεία στο <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Εγκαταστάθηκε από τρίτο μέρος.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">Να επιτρέπεται στους ιστοτόπους να αναπαράγουν ήχο</translation>
 <translation id="5390284375844109566">Ευρετηριασμένη βάση δεδομένων</translation>
 <translation id="5390743329570580756">Αποστολή για</translation>
-<translation id="5396126354477659676">Η προσθήκη <ph name="PEPPER_PLUGIN_NAME" /> στον τομέα <ph name="PEPPER_PLUGIN_DOMAIN" /> επιθυμεί να αποκτήσει πρόσβαση στον υπολογιστή σας.</translation>
 <translation id="5397794290049113714">Εσείς</translation>
 <translation id="5398572795982417028">Η αναφορά της σελίδας βρίσκεται εκτός ορίων, το όριο είναι <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Αποκλείστηκαν διαφημίσεις</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Επαναφορά όλων των καρτελών</translation>
 <translation id="5486261815000869482">Επιβεβαίωση κωδικού πρόσβασης</translation>
 <translation id="5486275809415469523">Η εφαρμογή <ph name="APP_NAME" /> μοιράζεται την οθόνη σας με την καρτέλα <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Η τιμή εισόδου για το ιδιωτικό κλειδί πρέπει να υπάρχει.</translation>
 <translation id="5486561344817861625">Προσομοίωση επανεκκίνησης προγράμματος περιήγησης</translation>
 <translation id="5487521232677179737">Διαγραφή δεδομένων</translation>
 <translation id="5488093641312826914">Το στοιχείο "<ph name="COPIED_ITEM_NAME" />" αντιγράφηκε</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">Η λήψη της ενημέρωσης απαιτεί <ph name="UPDATE_SIZE_MB" /> MB δεδομένων κινητής τηλεφωνίας. Θέλετε να συνεχίσετε;</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Άλλες μηχανές αναζήτησης</translation>
-<translation id="5606674617204776232">Η προσθήκη <ph name="PEPPER_PLUGIN_NAME" /> στον τομέα <ph name="PEPPER_PLUGIN_DOMAIN" /> επιθυμεί να αποκτήσει πρόσβαση στη συσκευή σας.</translation>
 <translation id="5608580678041221894">Πατήστε τα παρακάτω πλήκτρα για να προσαρμόσετε ή να μετακινήσετε την περιοχή περικοπής</translation>
 <translation id="5609231933459083978">Φαίνεται πως η εφαρμογή δεν είναι έγκυρη.</translation>
 <translation id="5610038042047936818">Εναλλαγή σε λειτουργία κάμερας</translation>
@@ -3198,7 +3153,6 @@
 <translation id="5990386583461751448">Μεταφρασμένη</translation>
 <translation id="5991049340509704927">Μεγέθυνση</translation>
 <translation id="5993332328670040093">Δεν θα εκτελείται πλέον μέτρηση της χρήσης δεδομένων σας.</translation>
-<translation id="6003177993629630467">Ενδέχεται να μην είναι δυνατή η αυτόματη ενημέρωση του <ph name="PRODUCT_NAME" />.</translation>
 <translation id="600424552813877586">Μη έγκυρη εφαρμογή.</translation>
 <translation id="6005695835120147974">Δρομολογητής μέσων</translation>
 <translation id="6006484371116297560">Κλασικό</translation>
@@ -3223,6 +3177,7 @@
 <translation id="604001903249547235">Αντίγραφο ασφαλείας στο cloud</translation>
 <translation id="6040143037577758943">Κλείσιμο</translation>
 <translation id="6040852767465482106">Ανώνυμη ταυτότητα</translation>
+<translation id="6041155700700864984">Έξοδος από πλήρη οθόνη</translation>
 <translation id="604124094241169006">Αυτόματη</translation>
 <translation id="6042169520002885235">Επιλέξτε έναν κατασκευαστή και ένα μοντέλο εκτυπωτή</translation>
 <translation id="6042308850641462728">Περισσότερα</translation>
@@ -3239,7 +3194,6 @@
 <translation id="6056710589053485679">Κανονική επανάληψη φόρτωσης</translation>
 <translation id="6059652578941944813">Ιεραρχία πιστοποιητικού</translation>
 <translation id="6059925163896151826">Συσκευές USB</translation>
-<translation id="6060435378291459521">Η προσθήκη <ph name="PLUGIN_NAME" /> παρουσίασε σφάλμα.</translation>
 <translation id="6064217302520318294">Κλείδωμα οθόνης</translation>
 <translation id="6065289257230303064">Χαρακτηριστικά καταλόγου υποκειμένου πιστοποιητικού</translation>
 <translation id="6068338049763724728">Ενεργοποίηση απομακρυσμένης εγγραφής</translation>
@@ -3348,7 +3302,6 @@
 <translation id="6237816943013845465">Σας επιτρέπει να προσαρμόσετε την ανάλυση της οθόνης σας</translation>
 <translation id="6238923052227198598">Διατήρηση πιο πρόσφατης σημείωσης στον οθόνη κλειδώματος</translation>
 <translation id="6239558157302047471">Επαναφόρτωση &amp;πλαισίου</translation>
-<translation id="624022915548992686">Έξοδος από τη σελίδα</translation>
 <translation id="6241530762627360640">Πρόσβαση σε πληροφορίες σχετικά με τις συσκευές Bluetooth που βρίσκονται σε ζεύξη με το σύστημά σας και εντοπισμός κοντινών συσκευών Bluetooth.</translation>
 <translation id="6243774244933267674">Ο διακομιστής δεν είναι διαθέσιμος</translation>
 <translation id="6246413617632217567">Δεν ήταν δυνατή η εισαγωγή του εποπτευόμενου χρήστη. Ελέγξτε τον ελεύθερο χώρο στον σκληρό δίσκο και τα δικαιώματά σας και προσπαθήστε ξανά.</translation>
@@ -3397,13 +3350,11 @@
 <translation id="6312403991423642364">Άγνωστο σφάλμα δικτύου</translation>
 <translation id="6313641880021325787">ΕΞΟΔΟΣ ΑΠΟ VR</translation>
 <translation id="6314819609899340042">Έχετε ενεργοποιήσει με επιτυχία τις λειτουργίες εντοπισμού σφαλμάτων σε αυτήν τη συσκευή <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Οι σελίδες εκκίνησής σας άλλαξαν ώστε να συμπεριλάβουν <ph name="URL" />. Για να απενεργοποιήσετε τις επεκτάσεις που αλλάζουν τη σελίδα εκκίνησής σας, κάντε κλικ στην "Επαναφορά".</translation>
 <translation id="6315493146179903667">Μεταφορά Όλων στο Προσκήνιο</translation>
 <translation id="6316806695097060329">Αυτή η συσκευή <ph name="SHORT_PRODUCT_NAME" /> έχει σχεδιαστεί, για να σας παρέχει την καλύτερη εμπειρία στον ιστό.</translation>
 <translation id="6317318380444133405">Δεν υποστηρίζεται πλέον</translation>
 <translation id="6317369057005134371">Αναμονή για το παράθυρο της εφαρμογής…</translation>
 <translation id="6318407754858604988">Η λήψη ξεκίνησε</translation>
-<translation id="6322279351188361895">Αποτυχία ανάγνωσης ιδιωτικού κλειδιού.</translation>
 <translation id="6325191661371220117">Απενεργοποίηση αυτόματης εκκίνησης</translation>
 <translation id="6326175484149238433">Κατάργηση από το Chrome</translation>
 <translation id="6326855256003666642">Πλήθος Keepalive</translation>
@@ -3412,7 +3363,6 @@
 <translation id="6333049849394141510">Επιλέξτε τύπους δεδομένων για συγχρονισμό</translation>
 <translation id="6333064448949140209">Το αρχείο θα σταλεί στην Google για εντοπισμό σφαλμάτων</translation>
 <translation id="6333834492048057036">Γραμμή διευθύνσεων εστίασης για αναζήτηση</translation>
-<translation id="6336907568130557310">Οι κωδικοί πρόσβασής σας θα είναι ορατοί σε οποιονδήποτε μπορεί να δει το αρχείο εξαγωγής. Μην μοιραστείτε το αρχείο με κανέναν και φροντίστε να το διαγράψετε μετά την εισαγωγή του.</translation>
 <translation id="6339668969738228384">Δημιουργία νέου προφίλ για τη διεύθυνση <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Δεν ήταν δυνατή η σύνδεση με τον διακομιστή. Ελέγξτε τη σύνδεση δικτύου και δοκιμάστε ξανά. Εάν το πρόβλημα παραμένει, επανεκκινήστε το Chromebook.</translation>
 <translation id="6340071272923955280">Πρωτόκολλο εκτύπωσης στο διαδίκτυο (IPPS)</translation>
@@ -3441,7 +3391,6 @@
 <translation id="6385543213911723544">Οι ιστότοποι ενδέχεται να αποθηκεύουν και να διαβάζουν δεδομένα cookie</translation>
 <translation id="6388771388956873507">Βρείτε τον αισθητήρα δακτυλικών αποτυπωμάτων στη συσκευή σας και αγγίξτε τον με το δάχτυλό σας</translation>
 <translation id="6390799748543157332">Οι σελίδες που βλέπετε σε αυτό το παράθυρο δεν θα εμφανίζεται στο ιστορικό του προγράμματος περιήγησης και δεν θα αφήνουν άλλα ίχνη, όπως cookie, στον υπολογιστή αφού κλείσετε όλα τα ανοιχτά παράθυρα Επισκέπτη. Ωστόσο, τυχόν αρχεία τα οποία έχετε κατεβάσει θα διατηρηθούν.</translation>
-<translation id="6391538222494443604">Ο κατάλογος εισόδου πρέπει να υπάρχει.</translation>
 <translation id="6395423953133416962">Αποστολή <ph name="BEGIN_LINK1" />πληροφοριών συστήματος<ph name="END_LINK1" /> και <ph name="BEGIN_LINK2" />μετρήσεων<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Διακοπή ομιλίας</translation>
 <translation id="6397592254427394018">Άνοιγμα όλων των σελιδοδεικτών σε παράθυρο για &amp;ανώνυμη περιήγηση</translation>
@@ -3499,7 +3448,6 @@
 <translation id="6458308652667395253">Διαχείριση αποκλεισμού JavaScript...</translation>
 <translation id="6459488832681039634">Χρήση Επιλογής για Εύρεση</translation>
 <translation id="6460601847208524483">Εύρεση επόμενου</translation>
-<translation id="6462080265650314920">Οι εφαρμογές θα πρέπει να προβάλλονται με τον τύπο περιεχομένου "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Είστε ακόμα εκεί;</translation>
 <translation id="6463795194797719782">Επε&amp;ξεργασία</translation>
 <translation id="6466988389784393586">Άνοιγμα Όλων των Σελιδοδεικτών</translation>
@@ -3629,7 +3577,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Θέλετε να μεταφράσει το Google αυτήν τη σελίδα από <ph name="SOURCE_LANGUAGE" /> σε <ph name="TARGET_LANGUAGE" />;</translation>
 <translation id="6675665718701918026">Η συσκευή κατάδειξης είναι συνδεδεμένη</translation>
-<translation id="6677037229676347494">Αναμενόταν το αναγνωριστικό "<ph name="EXPECTED_ID" />", ωστόσο το αναγνωριστικό ήταν το "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL ερωτήματος</translation>
 <translation id="6680028776254050810">Εναλλαγή χρηστών</translation>
 <translation id="6680442031740878064">Διαθέσιμος χώρος: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3769,8 +3716,6 @@
 <translation id="6903534926908201625">Μπορείτε να προσαρμόσετε ποιες πληροφορίες συλλέγει η Google από τις <ph name="BEGIN_LINK" />Ρυθμίσεις<ph name="END_LINK" />, ανά πάσα στιγμή.</translation>
 <translation id="6904344821472985372">Ανάκληση πρόσβασης σε αρχεία</translation>
 <translation id="6904655473976120856">Πατήστε το κουμπί εφαρμογής για έξοδο</translation>
-<translation id="6904713658985136356">Ο ιστότοπος <ph name="HOST" /> επιθυμεί να μοιραστεί την οθόνη σας.</translation>
-<translation id="6909461304779452601">Δεν ήταν δυνατή η προσθήκη εφαρμογών, επεκτάσεων και σεναρίων χρήστη από αυτόν τον ιστότοπο.</translation>
 <translation id="6910211073230771657">Διαγράφηκε</translation>
 <translation id="691024665142758461">Λήψη πολλών αρχείων</translation>
 <translation id="6911324888870229398">Η σύνδεση δικτύου χάθηκε. Ελέγξτε τη σύνδεσή σας ή δοκιμάστε άλλο δίκτυο Wi-Fi.</translation>
@@ -4107,7 +4052,6 @@
 <translation id="747114903913869239">Σφάλμα: Δεν είναι δυνατή η αποκωδικοποίηση της επέκτασης</translation>
 <translation id="7473891865547856676">Όχι, ευχαριστώ</translation>
 <translation id="747459581954555080">Επαναφορά όλων</translation>
-<translation id="7475034671245341386">Η προσθήκη <ph name="PLUGIN_NAME" /> παρουσίασε κάποιο σφάλμα.</translation>
 <translation id="7475671414023905704">URL χαμένου κωδικού πρόσβασης Netscape</translation>
 <translation id="7476454130948140105">Η ισχύς της μπαταρίας είναι πολύ χαμηλή για ενημέρωση (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Αν έχετε ξεχάσει την κωδική φράση πρόσβασης, διακόψτε και επαναφέρετε τον Συγχρονισμό μέσω του <ph name="BEGIN_LINK" />Πίνακα ελέγχου Google<ph name="END_LINK" />.</translation>
@@ -4144,7 +4088,6 @@
 <translation id="7507930499305566459">Πιστοποιητικό απόκρισης κατάστασης</translation>
 <translation id="7508545000531937079">Παρουσίαση</translation>
 <translation id="7513029293694390567">Αυτόματη σύνδεση σε ιστοτόπους με χρήση αποθηκευμένων διαπιστευτηρίων. Όταν η λειτουργία είναι απενεργοποιημένη, θα σας ζητείται επιβεβαίωση κάθε φορά που προσπαθείτε να συνδεθείτε σε έναν ιστότοπο.</translation>
-<translation id="7515670329462166359">Το URL <ph name="URL" /> προσπαθεί να προσδιορίσει με μοναδικό τρόπο τη συσκευή σας για την αναπαραγωγή προστατευμένου περιεχομένου.</translation>
 <translation id="7517569744831774757">Επαναφορά των ρυθμίσεων στις αρχικές προεπιλογές.</translation>
 <translation id="7517786267097410259">Δημιουργήστε έναν κωδικό πρόσβασης -</translation>
 <translation id="7518150891539970662">Αρχεία καταγραφής WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4174,7 +4117,6 @@
     να δοκιμάσετε να δημιουργήσετε έναν εποπτευόμενο χρήστη ξανά.</translation>
 <translation id="756445078718366910">Άνοιγμα παραθύρου προγράμματος περιήγησης</translation>
 <translation id="7564847347806291057">Τερματισμός διαδικασίας</translation>
-<translation id="7565291891798266313">Η μηχανή αναζήτησής σας άλλαξε σε <ph name="URL" />. Για να απενεργοποιήσετε τις επεκτάσεις που αλλάζουν τη μηχανή αναζήτησής σας, κάντε κλικ στην "Επαναφορά".</translation>
 <translation id="7566118625369982896">Διαχείριση συνδέσμων εφαρμογών Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Τα δεδομένα του Chrome διαγράφηκαν</translation>
@@ -4183,7 +4125,6 @@
 <translation id="7573172247376861652">Φόρτιση μπαταρίας</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Συρραφή</translation>
-<translation id="7577815336900970562">Χρήση Wi-Fi ή δικτύου κινητής τηλεφωνίας για τον καθορισμό της τοποθεσίας</translation>
 <translation id="7579149537961810247">Σίγαση Ιστοτόπων</translation>
 <translation id="7580671184200851182">Αναπαραγωγή του ίδιου ήχου μέσω όλων των ηχείων (μονοφωνικός ήχος)</translation>
 <translation id="7581462281756524039">Ένα εργαλείο καθαρισμού</translation>
@@ -4290,6 +4231,7 @@
 <translation id="7773726648746946405">Αποθηκευτικός χώρος περιόδου σύνδεσης</translation>
 <translation id="7781335840981796660">Θα καταργηθούν όλοι οι λογαριασμοί χρηστών και τα τοπικά δεδομένα.</translation>
 <translation id="7782102568078991263">Δεν υπάρχουν άλλες προτάσεις από την Google</translation>
+<translation id="778330624322499012">Δεν ήταν δυνατή η φόρτωση της προσθήκης <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Οι ρυθμίσεις ασφαλείας του υπολογιστή σας απέκλεισαν αυτό το αρχείο.</translation>
 <translation id="7786207843293321886">Έξοδος επισκέπτη</translation>
 <translation id="7786889348652477777">Ε&amp;πανάληψη φόρτωσης εφαρμογής</translation>
@@ -4452,7 +4394,6 @@
 <translation id="8001504501378762252">Ο κωδικός πρόσβασής σας μπορεί να έχει κλαπεί από κάποιον ιστότοπο</translation>
 <translation id="8004582292198964060">Πρόγραμμα περιήγησης</translation>
 <translation id="8008356846765065031">Η σύνδεση στο διαδίκτυο διακόπηκε. Ελέγξτε τη σύνδεσή σας στο διαδίκτυο.</translation>
-<translation id="8008765610824028412">Δεν ήταν δυνατή η φόρτωση της προσθήκης <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Αυτόματη αποστολή ορισμένων πληροφοριών συστήματος και περιεχομένου σελίδων στην Google για διευκόλυνση του εντοπισμού επικίνδυνων εφαρμογών και ιστοτόπων</translation>
 <translation id="8012382203418782830">Αυτή η σελίδα έχει μεταφραστεί.</translation>
 <translation id="8014154204619229810">Το πρόγραμμα ενημέρωσης εκτελείται. Κάντε ανανέωση σε ένα λεπτό για να ελέγξετε ξανά.</translation>
@@ -4569,7 +4510,6 @@
 <translation id="8191230140820435481">Διαχείριση των εφαρμογών, των επεκτάσεων και των θεμάτων σας</translation>
 <translation id="8191453843330043793">Εργαλείο επίλυσης διακομιστή μεσολάβησης V8</translation>
 <translation id="8195027750202970175">Μέγεθος στον δίσκο</translation>
-<translation id="8195739004487400241">Η αρχική σελίδα σας άλλαξε σε <ph name="URL" />. Για να απενεργοποιήσετε τις επεκτάσεις που αλλάζουν την αρχική σελίδα σας, κάντε κλικ στην "Επαναφορά".</translation>
 <translation id="8199300056570174101">Ιδιότητες δικτύου (Υπηρεσία) και συσκευής</translation>
 <translation id="8200772114523450471">Συνέχιση</translation>
 <translation id="8202160505685531999">Εισαγάγετε ξανά τον κωδικό πρόσβασής σας για να ενημερώσετε το προφίλ σας στο <ph name="DEVICE_TYPE" />.</translation>
@@ -4613,7 +4553,6 @@
 <translation id="8261378640211443080">Αυτή η επέκταση δεν αναφέρεται στο <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> και ενδέχεται να έχει προστεθεί εν αγνοία σας.</translation>
 <translation id="8261387128019234107">Προσθήκη λογαριασμού για το προφίλ <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Διαγραφή</translation>
-<translation id="826246685091802258">Το <ph name="BAD_FLAG" /> δεν υλοποιείται σε αυτήν την έκδοση.</translation>
 <translation id="8263744495942430914">Το <ph name="FULLSCREEN_ORIGIN" /> έχει απενεργοποιήσει τον δείκτη του ποντικιού σας.</translation>
 <translation id="8264718194193514834">Η επέκταση "<ph name="EXTENSION_NAME" />" ενεργοποίησε τη λειτουργία πλήρους οθόνης.</translation>
 <translation id="8270242299912238708">Έγγραφα PDF</translation>
@@ -4714,6 +4653,7 @@
 <translation id="8454288007744638700">Εναλλακτικά, επιλέξτε ένα νέο δίκτυο:</translation>
 <translation id="845627346958584683">Χρόνος λήξης</translation>
 <translation id="8456681095658380701">Μη έγκυρο όνομα</translation>
+<translation id="8457451314607652708">Εισαγωγή σελιδοδεικτών</translation>
 <translation id="8460336040822756677">Εάν απενεργοποιήσετε το Smart Lock για <ph name="DEVICE_TYPE" />, δεν θα μπορείτε να ξεκλειδώσετε τις συσκευές σας Chrome χρησιμοποιώντας το τηλέφωνό σας. Θα πρέπει να πληκτρολογείτε τον κωδικό πρόσβασης.</translation>
 <translation id="8461329675984532579">Όνομα παρόχου αρχικής σελίδας</translation>
 <translation id="84613761564611563">Ζητήθηκε διεπαφή χρήστη για διαμόρφωση δικτύου. Περιμένετε…</translation>
@@ -4745,7 +4685,6 @@
 <translation id="850875081535031620">Δεν βρέθηκε επιβλαβές λογισμικό</translation>
 <translation id="8512476990829870887">Τερματισμός διαδικασίας</translation>
 <translation id="851263357009351303">Να επιτρέπεται πάντα στο <ph name="HOST" /> η εμφάνιση εικόνων</translation>
-<translation id="8513191386157529469">Το "<ph name="CLIENT_NAME" />" εντοπίζει τα σφάλματα σε αυτό το πρόγραμμα περιήγησης.</translation>
 <translation id="8521475323816527629">Γρήγορη μετάβαση στις εφαρμογές</translation>
 <translation id="8523493869875972733">Διατήρηση αλλαγών</translation>
 <translation id="8523849605371521713">Προστέθηκε από την πολιτική</translation>
@@ -4801,7 +4740,6 @@
 <translation id="8620765578342452535">Διαμόρφωση συνδέσεων δικτύου</translation>
 <translation id="8620790565535071193">Αποτυχία σάρωσης</translation>
 <translation id="8622877356447980900">Θέλετε να μεταφράσετε αυτήν τη σελίδα;</translation>
-<translation id="8623004009673949077">Θα πρέπει να εγκατασταθεί μια εφαρμογή με χαρακτηριστικό μανιφέστου "kiosk_only" στη λειτουργία kiosk του Chrome OS.</translation>
 <translation id="8624205858755890468">Επιτρέπει στον Βοηθό να σας εμφανίζει σχετικές πληροφορίες, εφαρμογές και ενέργειες.</translation>
 <translation id="862542460444371744">&amp;Επεκτάσεις</translation>
 <translation id="8627151598708688654">Επιλογή πηγής</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Ενημερώστε το υλικολογισμικό για πρόσθετη ασφάλεια.</translation>
 <translation id="8823514049557262177">Αντιγραφή κ&amp;ειμένου συνδέσμου</translation>
 <translation id="8824701697284169214">Προσθήκη σελί&amp;δας...</translation>
-<translation id="8827850355924932817">Χρήση δικτύου Wi-Fi για τον καθορισμό της τοποθεσίας</translation>
 <translation id="8828933418460119530">Όνομα DNS</translation>
 <translation id="8830796635868321089">Ο έλεγχος ενημερώσεων απέτυχε με τη χρήση των τρέχοντων ρυθμίσεων του διακομιστή μεσολάβησης. Διαμορφώστε τις <ph name="PROXY_SETTINGS_LINK_START" />ρυθμίσεις του διακομιστή μεσολάβησης<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Η διαμόρφωση δικτύου ελέγχεται από τον χρήστη <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Εμφάνιση ως καρτέλα</translation>
 <translation id="8884961208881553398">Προσθήκη νέων υπηρεσιών</translation>
 <translation id="8885197664446363138">Το Smart Lock είναι διαθέσιμο</translation>
-<translation id="8885905466771744233">Υπάρχει ήδη ιδιωτικό κλειδί για τη συγκεκριμένη επέκταση. Χρησιμοποιήστε ξανά το κλειδί ή διαγράψτε το πρώτα.</translation>
 <translation id="8888432776533519951">Χρώμα:</translation>
-<translation id="8892992092192084762">Εγκαταστάθηκε το θέμα "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">Λυπούμαστε, δεν ήταν δυνατή η αναγνώριση της συσκευής <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Λίστα σελιδοδεικτών</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4997,7 +4932,6 @@
 <translation id="8908902564709148335">Προειδοποίηση: Ενεργοποιήσατε την επισήμανση "scripts-require-action" σε αυτόν τον υπολογιστή, γεγονός που περιορίζει τις δυνατότητες αυτής της επέκτασης. Ωστόσο, σε άλλες συσκευές ενδεχομένως αυτή η επέκταση να μην υποστηρίζεται ή να μην είναι ενεργοποιημένη. Σε αυτές τις συσκευές, αυτή η επέκταση μπορεί επίσης να:</translation>
 <translation id="8910146161325739742">Μοιραστείτε την οθόνη σας</translation>
 <translation id="8910222113987937043">Οι αλλαγές στους σελιδοδείκτες, το ιστορικό, τους κωδικούς πρόσβασης και άλλες ρυθμίσεις δεν θα συγχρονίζονται πλέον με τον Λογαριασμό σας Google. Ωστόσο, τα υπάρχοντα δεδομένα θα παραμείνουν αποθηκευμένα στον Λογαριασμό σας Google και η διαχείρισή τους μπορεί να γίνεται στον <ph name="BEGIN_LINK" />Πίνακα ελέγχου Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Η Google έχει επισημάνει την επέκταση <ph name="EXTENSION_NAME" /> ως κακόβουλη και η εγκατάσταση έχει εμποδιστεί.</translation>
 <translation id="8912793549644936705">Επέκταση</translation>
 <translation id="8915370057835397490">Φόρτωση πρότασης</translation>
 <translation id="8916476537757519021">Υποπλαίσιο ανώνυμης περιήγησης: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Συνδέθηκε ποντίκι USB</translation>
 <translation id="9076523132036239772">Λυπούμαστε, αλλά δεν ήταν δυνατή η επαλήθευση της διεύθυνσης ηλεκτρονικού ταχυδρομείου ή του κωδικού πρόσβασής σας. Δοκιμάστε πρώτα να συνδεθείτε σε ένα δίκτυο.</translation>
-<translation id="907841381057066561">Αποτυχία δημιουργίας προσωρινού αρχείου zip κατά τη συσκευασία.</translation>
 <translation id="9084064520949870008">Άνοιγμα σε παράθυρο</translation>
 <translation id="9088234649737575428">Η προσθήκη <ph name="PLUGIN_NAME" /> αποκλείστηκε λόγω επιχειρηματικής πολιτικής</translation>
 <translation id="9088917181875854783">Επιβεβαιώστε ότι αυτό το κλειδί πρόσβασης εμφανίζεται στη συσκευή "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Εισαγωγή φράσης πρόσβασης</translation>
 <translation id="939736085109172342">Νέος φάκελος</translation>
-<translation id="941543339607623937">Μη έγκυρο ιδιωτικό κλειδί.</translation>
 <translation id="942532530371314860">Η εφαρμογή <ph name="APP_NAME" /> μοιράζεται μια καρτέλα Chrome και ήχο.</translation>
 <translation id="942954117721265519">Δεν υπάρχουν εικόνες σε αυτόν τον κατάλογο.</translation>
 <translation id="945522503751344254">Αποστολή σχολίων</translation>
-<translation id="951981865514037445">Η διεύθυνση <ph name="URL" /> ζητά να χρησιμοποιήσει την τοποθεσία της συσκευής σας.</translation>
 <translation id="952992212772159698">Μη ενεργοποιημένο</translation>
 <translation id="9580706199804957">Δεν ήταν δυνατή η σύνδεση με τις υπηρεσίες Google</translation>
 <translation id="958515377357646513">Αγγίξτε για προώθηση.</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 497973a..43545bda 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Encipher Only</translation>
 <translation id="1039337018183941703">Invalid or corrupt file</translation>
 <translation id="1042174272890264476">Your computer also comes with <ph name="SHORT_PRODUCT_NAME" />'s RLZ library built in. RLZ assigns a non-unique, non-personally identifiable tag to measure the searches and <ph name="SHORT_PRODUCT_NAME" /> usage driven by a particular promotional campaign. These labels sometimes appear in Google Search queries in <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> wants to permanently store large data on your device.</translation>
 <translation id="1046059554679513793">Whoops, this name is already in use!</translation>
 <translation id="1047431265488717055">Copy Link Te&amp;xt</translation>
 <translation id="1047726139967079566">Bookmark This Page...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Restore Default Search Engine?</translation>
 <translation id="1177863135347784049">Customised</translation>
 <translation id="1178581264944972037">Pause</translation>
-<translation id="1179803038870941185"><ph name="URL" /> wants to get full control of your MIDI devices.</translation>
 <translation id="1181037720776840403">Remove</translation>
 <translation id="1183237619868651138">Can't install <ph name="EXTERNAL_CRX_FILE" /> in local cache.</translation>
 <translation id="1185924365081634987">You may also try to <ph name="GUEST_SIGNIN_LINK_START" />browse as guest<ph name="GUEST_SIGNIN_LINK_END" /> to fix this network error.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Access a file stored on your computer}other{Access # files stored on your computer}}</translation>
 <translation id="1195076408729068893">To start Smart Lock, enter your password. Next time, you can use your phone to unlock your <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Unknown error.</translation>
-<translation id="1196338895211115272">Failed to export private key.</translation>
 <translation id="119738088725604856">Screenshot window</translation>
 <translation id="1197979282329025000">An error occurred while retrieving printer capabilities for printer <ph name="PRINTER_NAME" />. This printer could not be registered with <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Let's get started</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Your administrator recommends a specific value for this setting.</translation>
 <translation id="1225177025209879837">Processing request...</translation>
 <translation id="1225211345201532184">Shelf item 5</translation>
-<translation id="1225404570112441414">Add this site to your shelf to use it any time.</translation>
 <translation id="1227507814927581609">Authentication failed while connecting to "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">system menu</translation>
 <translation id="1232569758102978740">Untitled</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Bookmarks HTML File</translation>
 <translation id="1303671224831497365">No Bluetooth devices found</translation>
 <translation id="1306606229401759371">Change settings</translation>
-<translation id="1307398858972670978">Access your passwords from any device at <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Oops!  The system failed to store the long-term API access token for this device.</translation>
 <translation id="1313405956111467313">Automatic proxy configuration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Search</translation>
 <translation id="1386387014181100145">Howdy.</translation>
 <translation id="138784436342154190">Restore default start-up page?</translation>
-<translation id="1389297115360905376">This can only be added from the <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Open as a Standard Tab</translation>
-<translation id="1391807639023934267">Faster page loaded.</translation>
 <translation id="1393283411312835250">Sun and clouds</translation>
 <translation id="1395262318152388157">Seek slider</translation>
 <translation id="1395730723686586365">Updater started</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">You are updating to an unstable version of <ph name="PRODUCT_NAME" /> which contains features that are in progress. Crashes and unexpected bugs will occur. Please proceed with caution.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (extension ID "<ph name="EXTENSION_ID" />") is not allowed in this type of session.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Yikes! Failed to generate random RSA private key.</translation>
 <translation id="1420834118113404499">Media licences</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> to allow pairing</translation>
 <translation id="1426410128494586442">Yes</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opy Audio Address</translation>
 <translation id="1465827627707997754">Pizza slice</translation>
 <translation id="1467432559032391204">Left</translation>
-<translation id="1467999917853307373"><ph name="URL" /> wants to permanently store data on your device.</translation>
-<translation id="1470719357688513792">New cookie settings will take effect after reloading the page.</translation>
 <translation id="1470811252759861213">To get your extensions on all your computers, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" was not uploaded. There is not enough free space in your Google Drive.</translation>
 <translation id="1475502736924165259">You have certificates on file that do not fit into any of the other categories</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Large mouse cursor</translation>
 <translation id="1543284117603151572">Imported From Edge</translation>
 <translation id="1545177026077493356">Automatic Kiosk Mode</translation>
+<translation id="1545775234664667895">Installed theme "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL with %s in place of query</translation>
 <translation id="1546280085599573572">This extension has changed the page that is shown when you click the Home button.</translation>
 <translation id="1547572086206517271">Refresh required</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />review<ph name="END_BOLD" /> websites the supervised user has visited and
     <ph name="BEGIN_BOLD" />manage<ph name="END_BOLD" /> other settings.</translation>
 <translation id="1648943974594387137">Sign-in details are out of date</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> lines not shown&gt;</translation>
 <translation id="1650371550981945235">Show input options</translation>
 <translation id="1650709179466243265">Add www. and .com, and open address</translation>
 <translation id="1651008383952180276">You must enter the same passphrase twice</translation>
-<translation id="1652972346408808053">Password saved. Access your passwords from any device at <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Add the printer to Google Cloud Print so that you can print from anywhere.}other{Add # printers to Google Cloud Print so that you can print from anywhere.}}</translation>
 <translation id="1657406563541664238">Help make <ph name="PRODUCT_NAME" /> better by automatically sending usage statistics and crash reports to Google.</translation>
 <translation id="1658424621194652532">This page is accessing your microphone.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Continue blocking cookies</translation>
 <translation id="204622017488417136">Your device will be returned to the previously installed version of Chrome. All user accounts and local data will be removed. This cannot be undone.</translation>
 <translation id="2048182445208425546">Access your network traffic</translation>
-<translation id="2049137146490122801">Access to local files on your machine is disabled by your administrator.</translation>
 <translation id="204914487372604757">Create shortcut</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2053312383184521053">Idle State Data</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Not loaded yet</translation>
 <translation id="2107494551712864447">Add a fingerprint</translation>
-<translation id="2111843886872897694">Apps must be served from the host they affect.</translation>
 <translation id="2112877397266219826">Turn on your touch controller to set me up</translation>
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2113479184312716848">Open &amp;File...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Tell us what's happening</translation>
 <translation id="2229161054156947610">More than 1 hour left</translation>
 <translation id="222931766245975952">File truncated</translation>
-<translation id="222949136907494149"><ph name="URL" /> wants to use your computer's location.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Unable to create folder "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Click to view today’s doodle</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Always block microphone access</translation>
 <translation id="2367972762794486313">Show apps</translation>
 <translation id="2371076942591664043">Open when &amp;done</translation>
-<translation id="237336063998926520">Use your IP address to determine location</translation>
 <translation id="2377319039870049694">Switch to list view</translation>
 <translation id="2377667304966270281">Hard Faults</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> files selected</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> wants to copy files from <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Certification Authority Key ID</translation>
 <translation id="2462752602710430187">Added <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Import bookmarks</translation>
 <translation id="2464089476039395325">HTTP Proxy</translation>
 <translation id="2468902267404883140">Can't connect to your phone. Make sure that you’re using a compatible Android phone that is turned on and handy. &lt;a&gt;Learn more&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Unsupported extensions disabled</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Uninstall</translation>
 <translation id="2487067538648443797">Add new bookmark</translation>
 <translation id="248861575772995840">Can’t find your phone. Make sure that your <ph name="DEVICE_TYPE" />'s Bluetooth is turned on. &lt;a&gt;Learn more&lt;/a&gt;</translation>
-<translation id="2489316678672211764">A plug-in (<ph name="PLUGIN_NAME" />) isn't responding.</translation>
 <translation id="2489428929217601177">the past day</translation>
 <translation id="2489918096470125693">Add &amp;Folder...</translation>
 <translation id="249113932447298600">Sorry, the device <ph name="DEVICE_LABEL" /> is not supported at this time.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Congratulations! Your '<ph name="NAME" />' data service has been activated and is ready to go.</translation>
 <translation id="2566124945717127842">Powerwash to reset your <ph name="IDS_SHORT_PRODUCT_NAME" /> device to be just like new.</translation>
 <translation id="2568774940984945469">Infobar Container</translation>
-<translation id="2570000010887652771">Saved data.</translation>
 <translation id="257088987046510401">Themes</translation>
 <translation id="2572032849266859634">Read-only access to <ph name="VOLUME_NAME" /> has been granted.</translation>
 <translation id="2573269395582837871">Choose a picture and name</translation>
 <translation id="2575247648642144396">This icon will be visible when the extension can act on the current page. Use this extension by clicking on the icon or by pressing <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Can’t find your phone. Make sure that your <ph name="DEVICE_TYPE" /> is connected to Wi-Fi or a mobile network. &lt;a&gt;Learn more&lt;/a&gt;</translation>
-<translation id="2576842806987913196">There is already a CRX file present with this name.</translation>
 <translation id="257779572837908839">Set up as Chromebox for meetings</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Cannot unmount volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">If you delete a Certification Authority (CA) certificate, your browser will no longer trust any certificates issued by that CA.</translation>
 <translation id="2653659639078652383">Submit</translation>
 <translation id="265390580714150011">Field Value</translation>
-<translation id="2654286334048437383">Export bookmarks</translation>
 <translation id="2655386581175833247">User certificate:</translation>
 <translation id="2660779039299703961">Event</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Add Media Gallery by Directory</translation>
 <translation id="2908789530129661844">Zoom screen out</translation>
 <translation id="2910318910161511225">Connect to a network and try again</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> wants to use your microphone.</translation>
 <translation id="2913331724188855103">Allow sites to save and read cookie data (recommended)</translation>
 <translation id="2916073183900451334">Pressing Tab on a web page highlights links, as well as form fields</translation>
 <translation id="2916745397441987255">Search extensions</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">Window up</translation>
 <translation id="3053013834507634016">Certificate Key Usage</translation>
 <translation id="3057861065630527966">Backup your photos and videos</translation>
-<translation id="3060379269883947824">Enable select-to-speak</translation>
+<translation id="3060379269883947824">Enable Select to Speak</translation>
 <translation id="3061707000357573562">Patch Service</translation>
 <translation id="3064410671692449875">Insufficient data</translation>
 <translation id="3065041951436100775">Tab killed feedback.</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Listening...</translation>
 <translation id="3141917231319778873">The given request is not supported to: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">DONE</translation>
-<translation id="3144135466825225871">Failed to replace crx file. Check to see if the file is in use.</translation>
 <translation id="3144647712221361880">Open link as</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150927491400159470">Hard Reload</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Always Run on All Sites</translation>
 <translation id="3312424061798279731">Enabled languages</translation>
 <translation id="3312903956926554846">Install to desktop</translation>
-<translation id="3313473140726597081">Your start-up page was changed to <ph name="URL" />. To disable extensions that change your start-up page, click Restore.</translation>
 <translation id="3313590242757056087">To set which websites the supervised user can view, you can configure restrictions
     and settings by visiting <ph name="MANAGEMENT_URL" />.
     If you do not change the default settings, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">App info</translation>
 <translation id="3335947283844343239">Re-open Closed Tab</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> was blocked because it is out of date.</translation>
 <translation id="3340978935015468852">settings</translation>
 <translation id="3341703758641437857">Allow access to file URLs</translation>
 <translation id="3342361181740736773">'<ph name="TRIGGERING_EXTENSION_NAME" />' would like to remove this extension.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Bookmark Added</translation>
 <translation id="3389312115541230716">Right click the <ph name="SMALL_PRODUCT_LOGO" /> icon in the taskbar</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> wants to use your camera and microphone.</translation>
 <translation id="3396331542604645348">The selected printer is not available or not installed correctly. Check your printer or try selecting another printer.</translation>
 <translation id="3399432415385675819">Notifications will be disabled</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome updates automatically so you always have the freshest version</translation>
 <translation id="3551320343578183772">Close Tab</translation>
 <translation id="3552780134252864554">Cleared on Exit</translation>
-<translation id="355298399003313926"><ph name="URL" /> wants to respond to accessibility events.</translation>
 <translation id="3555812735919707620">Remove extension</translation>
 <translation id="3556000484321257665">Your search engine was changed to <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Input value for private key must be a valid path.</translation>
 <translation id="3563432852173030730">Kiosk application could not be downloaded.</translation>
 <translation id="3564334271939054422">The Wi-Fi network that you are using (<ph name="NETWORK_ID" />) may require you to visit its login page.</translation>
 <translation id="3564708465992574908">Zoom Levels</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Certificate Name Constraints</translation>
 <translation id="3596235046596950091">Enable cloud services</translation>
 <translation id="3599863153486145794">Clears history from all signed-in devices. Your Google account may have other forms of browsing history at <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Access to local files on your device is disabled by your administrator.</translation>
 <translation id="3600792891314830896">Mute sites that play sound</translation>
 <translation id="3603177256297531067">This Page Could not be Translated</translation>
 <translation id="3603533104205588786">You can click the star to bookmark a page</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Screenshots disabled</translation>
 <translation id="3625870480639975468">Reset zoom</translation>
 <translation id="3626281679859535460">Brightness</translation>
-<translation id="3627052133907344175">Extension requires "<ph name="IMPORT_NAME" />" with a minimum version "<ph name="IMPORT_VERSION" />", but only version "<ph name="INSTALLED_VERSION" />" is installed.</translation>
 <translation id="3627320433825461852">Less than 1 minute left</translation>
 <translation id="3627588569887975815">Open link in inco&amp;gnito window</translation>
 <translation id="3627671146180677314">Netscape Certificate Renewal Time</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Language settings</translation>
 <translation id="3668823961463113931">Handlers</translation>
 <translation id="3670229581627177274">Turn on Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> wants to permanently store large data on your local computer.</translation>
 <translation id="3672681487849735243">A factory error has been detected</translation>
 <translation id="367645871420407123">leave empty if you want to set the root password to the default test image value</translation>
 <translation id="3678156199662914018">Extension: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">You are offline</translation>
 <translation id="3788401245189148511">It could:</translation>
 <translation id="3789841737615482174">Install</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> only works on the desktop.</translation>
 <translation id="379082410132524484">Your card has expired</translation>
 <translation id="3792890930871100565">Disconnect printers</translation>
 <translation id="379422718204375917">Use Smart Lock to sign in to your account</translation>
-<translation id="3794595850995182458">Exit page</translation>
 <translation id="3796648294839530037">Favourite Networks:</translation>
 <translation id="3797900183766075808">&amp;Search <ph name="SEARCH_ENGINE" /> for “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Allows you to enable/disable tap-to-click</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Enable <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Invalid save type entered.</translation>
 <translation id="3983586614702900908">devices from an unknown vendor</translation>
-<translation id="3984413272403535372">Error while signing extension.</translation>
 <translation id="3987938432087324095">Sorry, didn't catch that.</translation>
 <translation id="3988996860813292272">Select Time Zone</translation>
 <translation id="3989635538409502728">Sign Out</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Install apps and games from Google Play on your Chromebook. &lt;a target='_blank' href='<ph name="URL" />'&gt;Learn more&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Accept for group</translation>
 <translation id="4090103403438682346">Enable Verified Access</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> is required to display some elements on this page.</translation>
 <translation id="4090535558450035482">(This extension is managed and cannot be removed.)</translation>
 <translation id="4091434297613116013">sheets of paper</translation>
 <translation id="4093955363990068916">Local file:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> can now sync your passwords.</translation>
 <translation id="4715553623069266137">very short (0.8s)</translation>
 <translation id="4716483597559580346">Powerwash for added security</translation>
-<translation id="471800408830181311">Failed to output private key.</translation>
 <translation id="4720113199587244118">Add Devices</translation>
 <translation id="4720185134442950733">Mobile data network</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> is sharing your screen.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Strong</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> wants to communicate with the extension "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Accept</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> wants to use your camera.</translation>
 <translation id="4920887663447894854">The following sites have been blocked from tracking your location on this page:</translation>
 <translation id="492299503953721473">Remove Android apps</translation>
 <translation id="4923279099980110923">Yes, I want to help</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">This extension contains malware.</translation>
 <translation id="498294082491145744">Change your settings that control websites' access to features such as cookies, JavaScript, plug-ins, geo-location, microphone, camera etc.</translation>
 <translation id="4988526792673242964">Pages</translation>
-<translation id="4988792151665380515">Failed to export public key.</translation>
 <translation id="49896407730300355">Rotate a&amp;nti-clockwise</translation>
 <translation id="4989966318180235467">Inspect &amp;background page</translation>
 <translation id="4990343175649730969">Download Chrome Clean-Up Tool</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Don't show this again</translation>
 <translation id="5027550639139316293">Email Certificate</translation>
 <translation id="5027562294707732951">Add extension</translation>
-<translation id="5028012205542821824">Installation is not enabled.</translation>
 <translation id="5029568752722684782">Clear copy</translation>
 <translation id="5030338702439866405">Issued By</translation>
 <translation id="5036662165765606524">Do not allow any site to download multiple files automatically</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">An error occurred.</translation>
 <translation id="5094721898978802975">Communicate with cooperating native applications</translation>
 <translation id="5097002363526479830">Failed to connect to the network '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Can't find the absolute path to the directory to pack.</translation>
 <translation id="5099354524039520280">up</translation>
 <translation id="5100114659116077956">In order to bring you the latest features, your Chromebox needs to update.</translation>
 <translation id="5101042277149003567">Open all bookmarks</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Show in folder</translation>
 <translation id="5171045022955879922">Search or type URL</translation>
 <translation id="5171343362375269016">Swapped Memory</translation>
-<translation id="5175870427301879686"><ph name="URL" /> wants to permanently store data on your local computer.</translation>
 <translation id="5177479852722101802">Continue blocking camera and microphone access</translation>
 <translation id="5177526793333269655">Thumbnail view</translation>
 <translation id="5177549709747445269">You are using mobile data</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Format this device</translation>
 <translation id="5293170712604732402">Restore settings to their original defaults</translation>
 <translation id="5298219193514155779">Theme created by</translation>
-<translation id="5298363578196989456">Unable to import extension "<ph name="IMPORT_NAME" />" because it is not a shared module.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">All data is encrypted with your sync passphrase</translation>
 <translation id="5300589172476337783">Show</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" wants to pair</translation>
 <translation id="5332624210073556029">Time zone:</translation>
 <translation id="5334142896108694079">Script Cache</translation>
-<translation id="533433379391851622">Expected version "<ph name="EXPECTED_VERSION" />", but version was "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">View source</translation>
 <translation id="5335458522276292100">Backing up <ph name="FILE_COUNT" /> to <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Installed by a third party.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Allow sites to play sound</translation>
 <translation id="5390284375844109566">Indexed Database</translation>
 <translation id="5390743329570580756">Send for</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> on <ph name="PEPPER_PLUGIN_DOMAIN" /> wants to access your computer.</translation>
 <translation id="5397794290049113714">You</translation>
 <translation id="5398572795982417028">Out of bounds page reference, limit is <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Ads blocked</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Restore All Tabs</translation>
 <translation id="5486261815000869482">Confirm password</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> is sharing your screen with <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Input value for private key must exist.</translation>
 <translation id="5486561344817861625">Simulate Browser Restart</translation>
 <translation id="5487521232677179737">Clear data</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' copied</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Update will be downloaded using <ph name="UPDATE_SIZE_MB" /> MB of mobile data. Would you like to continue?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Other search engines</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> on <ph name="PEPPER_PLUGIN_DOMAIN" /> wants to access your mobile device.</translation>
 <translation id="5608580678041221894">Tap the following keys to adjust or move the cropping area</translation>
 <translation id="5609231933459083978">The application appears to be invalid.</translation>
 <translation id="5610038042047936818">Switch to camera mode</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Translated</translation>
 <translation id="5991049340509704927">Magnify</translation>
 <translation id="5993332328670040093">Your data use will no longer be measured.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> may not be able to keep itself updated.</translation>
 <translation id="600424552813877586">Invalid application.</translation>
 <translation id="6005695835120147974">Media Router</translation>
 <translation id="6006484371116297560">Classic</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Cloud backup</translation>
 <translation id="6040143037577758943">Close</translation>
 <translation id="6040852767465482106">Anonymous Identity</translation>
+<translation id="6041155700700864984">Exit Full Screen</translation>
 <translation id="604124094241169006">Automatic</translation>
 <translation id="6042169520002885235">Select a printer manufacturer and model</translation>
 <translation id="6042308850641462728">More</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Normal Reload</translation>
 <translation id="6059652578941944813">Certificate Hierarchy</translation>
 <translation id="6059925163896151826">USB devices</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> has crashed.</translation>
 <translation id="6064217302520318294">Screen lock</translation>
 <translation id="6065289257230303064">Certificate Subject Directory Attributes</translation>
 <translation id="6068338049763724728">Enable remote enrolment</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Allows you to adjust your screen resolution</translation>
 <translation id="6238923052227198598">Keep latest note on lock screen</translation>
 <translation id="6239558157302047471">Reload &amp;frame</translation>
-<translation id="624022915548992686">Exit Page</translation>
 <translation id="6241530762627360640">Access information about Bluetooth devices paired with your system and discover nearby Bluetooth devices.</translation>
 <translation id="6243774244933267674">Server unavailable</translation>
 <translation id="6246413617632217567">The supervised user couldn't be imported. Please check your hard drive space and permissions and try again.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Unknown network error</translation>
 <translation id="6313641880021325787">EXIT VR</translation>
 <translation id="6314819609899340042">You have successfully enabled debugging features on this <ph name="IDS_SHORT_PRODUCT_NAME" /> device.</translation>
-<translation id="6315343732431721770">Your start-up pages were changed to include <ph name="URL" />. To disable extensions that change your start-up page, click Restore.</translation>
 <translation id="6315493146179903667">Bring All to Front</translation>
 <translation id="6316806695097060329">This <ph name="SHORT_PRODUCT_NAME" /> device was designed to deliver the best experience of the web to you.</translation>
 <translation id="6317318380444133405">No longer supported.</translation>
 <translation id="6317369057005134371">Waiting for application window...</translation>
 <translation id="6318407754858604988">Download started</translation>
-<translation id="6322279351188361895">Failed to read private key.</translation>
 <translation id="6325191661371220117">Disable auto-launch</translation>
 <translation id="6326175484149238433">Remove from Chrome</translation>
 <translation id="6326855256003666642">Keepalive Count</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Choose what to sync</translation>
 <translation id="6333064448949140209">File will be sent to Google for debugging</translation>
 <translation id="6333834492048057036">Focus address bar for search</translation>
-<translation id="6336907568130557310">Your passwords will be visible to anyone who can see the exported file. Do not share the file with anyone and delete it after importing it.</translation>
 <translation id="6339668969738228384">Create a new profile for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Couldn’t connect with the server. Please check your network connection and try again. If the problem persists, restart your Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Sites can save and read cookie data</translation>
 <translation id="6388771388956873507">Find the fingerprint sensor on your device and touch it with your finger</translation>
 <translation id="6390799748543157332">Pages that you view in this window won’t appear in the browser history and they won’t leave other traces, like cookies, on the computer after you close all open Guest windows. Any files that you download, however, will be preserved.</translation>
-<translation id="6391538222494443604">Input directory must exist.</translation>
 <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />system information<ph name="END_LINK1" /> and <ph name="BEGIN_LINK2" />metrics<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop Speaking</translation>
 <translation id="6397592254427394018">Open all bookmarks in &amp;Incognito window</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Manage JavaScript blocking...</translation>
 <translation id="6459488832681039634">Use Selection for Find</translation>
 <translation id="6460601847208524483">Find Next</translation>
-<translation id="6462080265650314920">Apps must be served with content-type "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Are you still there?</translation>
 <translation id="6463795194797719782">&amp;Edit</translation>
 <translation id="6466988389784393586">&amp;Open All Bookmarks</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Do you want Google to translate this page from <ph name="SOURCE_LANGUAGE" /> to <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Pointing device connected</translation>
-<translation id="6677037229676347494">Expected ID "<ph name="EXPECTED_ID" />", but ID was "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">Query URL</translation>
 <translation id="6680028776254050810">Change Users</translation>
 <translation id="6680442031740878064">Available: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">You can customise what information Google collects in <ph name="BEGIN_LINK" />Settings<ph name="END_LINK" /> any time.</translation>
 <translation id="6904344821472985372">Revoke file access</translation>
 <translation id="6904655473976120856">Press App button to exit</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> wants to share your screen.</translation>
-<translation id="6909461304779452601">Apps, extensions and user scripts cannot be added from this website.</translation>
 <translation id="6910211073230771657">Deleted</translation>
 <translation id="691024665142758461">Download multiple files</translation>
 <translation id="6911324888870229398">Network connection was lost. Please check your connection or try another Wi-Fi network.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Error: Unable to decode extension</translation>
 <translation id="7473891865547856676">No Thanks</translation>
 <translation id="747459581954555080">Restore all</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> has encountered an error.</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7476454130948140105">Battery too low for update (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">If you've forgotten your passphrase, stop and reset Sync via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Status Responder Certificate</translation>
 <translation id="7508545000531937079">Slideshow</translation>
 <translation id="7513029293694390567">Automatically sign in to websites using stored credentials. If disabled, you will be asked for confirmation every time before signing in to a website.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> wants to uniquely identify your device to play protected content.</translation>
 <translation id="7517569744831774757">Restore settings to their original defaults.</translation>
 <translation id="7517786267097410259">Create a password -</translation>
 <translation id="7518150891539970662">WebRTC logs (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     try creating a supervised user again.</translation>
 <translation id="756445078718366910">Open Browser Window</translation>
 <translation id="7564847347806291057">End process</translation>
-<translation id="7565291891798266313">Your search engine was changed to <ph name="URL" />. To disable extensions that change your search engine, click Restore.</translation>
 <translation id="7566118625369982896">Manage Play app links</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Cleared Chrome data</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Battery Charge</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Collate</translation>
-<translation id="7577815336900970562">Use Wi-Fi or mobile network to determine location</translation>
 <translation id="7579149537961810247">Mute Sites</translation>
 <translation id="7580671184200851182">Play the same audio through all speakers (mono audio)</translation>
 <translation id="7581462281756524039">A cleanup tool</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Session Storage</translation>
 <translation id="7781335840981796660">All user accounts and local data will be removed.</translation>
 <translation id="7782102568078991263">No more suggestions from Google</translation>
+<translation id="778330624322499012">Could not load <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Security settings on your computer blocked this file.</translation>
 <translation id="7786207843293321886">Exit Guest</translation>
 <translation id="7786889348652477777">&amp;Reload App</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">A site may have stolen your password</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Internet disconnected. Please check your Internet connection.</translation>
-<translation id="8008765610824028412">Could not load <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Automatically send some system information and page content to Google to help detect dangerous apps and sites</translation>
 <translation id="8012382203418782830">This page has been translated.</translation>
 <translation id="8014154204619229810">The updater is currently running. Refresh in a minute to check again.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Manage your apps, extensions, and themes</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Size on disk</translation>
-<translation id="8195739004487400241">Your homepage page was changed to <ph name="URL" />. To disable extensions that change your homepage, click Restore.</translation>
 <translation id="8199300056570174101">Network (Service) and Device properties</translation>
 <translation id="8200772114523450471">Resume</translation>
 <translation id="8202160505685531999">Please re-enter your password to update your <ph name="DEVICE_TYPE" /> profile.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">This extension is not listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> and may have been added without your knowledge.</translation>
 <translation id="8261387128019234107">Add account for <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Delete</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> is not implemented in this build.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> has disabled your mouse cursor.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" triggered full screen.</translation>
 <translation id="8270242299912238708">PDF documents</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Or, select a new network:</translation>
 <translation id="845627346958584683">Expiry Time</translation>
 <translation id="8456681095658380701">Invalid name</translation>
+<translation id="8457451314607652708">Import bookmarks</translation>
 <translation id="8460336040822756677">If you turn off Smart Lock for <ph name="DEVICE_TYPE" />, you won’t be able to unlock your Chrome devices using your phone. You'll need to type your password.</translation>
 <translation id="8461329675984532579">Home provider name</translation>
 <translation id="84613761564611563">Network configure UI requested, please wait...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">No harmful software found</translation>
 <translation id="8512476990829870887">End Process</translation>
 <translation id="851263357009351303">Always allow <ph name="HOST" /> to show images</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" is debugging this browser.</translation>
 <translation id="8521475323816527629">Get to your apps fast</translation>
 <translation id="8523493869875972733">Keep Changes</translation>
 <translation id="8523849605371521713">Added by policy</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Configure network connections</translation>
 <translation id="8620790565535071193">Scanning failed</translation>
 <translation id="8622877356447980900">Do you want to translate this page?</translation>
-<translation id="8623004009673949077">App with 'kiosk_only' manifest attribute must be installed in Chrome OS kiosk mode.</translation>
 <translation id="8624205858755890468">Enables the Assistant to show you related info, apps and actions.</translation>
 <translation id="862542460444371744">&amp;Extensions</translation>
 <translation id="8627151598708688654">Select source</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Update firmware for added security.</translation>
 <translation id="8823514049557262177">Copy link te&amp;xt</translation>
 <translation id="8824701697284169214">Add Pa&amp;ge...</translation>
-<translation id="8827850355924932817">Use Wi-Fi network to determine location</translation>
 <translation id="8828933418460119530">DNS Name</translation>
 <translation id="8830796635868321089">The update check failed using the current proxy settings. Please adjust your <ph name="PROXY_SETTINGS_LINK_START" />proxy settings<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Network configuration is controlled by <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Show As Tab</translation>
 <translation id="8884961208881553398">Add new services</translation>
 <translation id="8885197664446363138">Smart Lock is unavailable</translation>
-<translation id="8885905466771744233">A private key for specified extension already exists. Reuse that key or delete it first.</translation>
 <translation id="8888432776533519951">Colour:</translation>
-<translation id="8892992092192084762">Installed theme "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Sorry, the device <ph name="DEVICE_LABEL" /> could not be recognised.</translation>
 <translation id="8895454554629927345">Bookmark list</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4991,13 +4926,12 @@
 <translation id="8899285681604219177">Unsupported Extensions Disabled</translation>
 <translation id="8899551033019439140">Searching for printer...</translation>
 <translation id="8899851313684471736">Open link in new &amp;window</translation>
-<translation id="8902667442496790482">Open select-to-speak settings</translation>
+<translation id="8902667442496790482">Open Select to Speak settings</translation>
 <translation id="8903921497873541725">Zoom in</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">Warning: You've enabled the -scripts-require-action flag on this computer, which limits the capabilities of this extension. However, other devices may not support this flag or have it enabled. On these devices, this extension can also:</translation>
 <translation id="8910146161325739742">Share your screen</translation>
 <translation id="8910222113987937043">Changes to your bookmarks, history, passwords and other settings will no longer be synced to your Google account. However, your existing 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="8911079125461595075">Google has flagged "<ph name="EXTENSION_NAME" />" as malicious and installation has been prevented.</translation>
 <translation id="8912793549644936705">Stretch</translation>
 <translation id="8915370057835397490">Loading suggestion</translation>
 <translation id="8916476537757519021">Incognito Subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB mouse connected</translation>
 <translation id="9076523132036239772">Sorry, your email or password could not be verified. Try connecting to a network first.</translation>
-<translation id="907841381057066561">Failed to create temporary zip file during packaging.</translation>
 <translation id="9084064520949870008">Open as a Window</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> is blocked by enterprise policy</translation>
 <translation id="9088917181875854783">Please confirm that  this passkey is shown on "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Enter passphrase</translation>
 <translation id="939736085109172342">New folder</translation>
-<translation id="941543339607623937">Invalid private key.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> is sharing a Chrome tab and audio.</translation>
 <translation id="942954117721265519">No images in this directory.</translation>
 <translation id="945522503751344254">Send feedback</translation>
-<translation id="951981865514037445"><ph name="URL" /> wants to use your device's location.</translation>
 <translation id="952992212772159698">Not activated</translation>
 <translation id="9580706199804957">Couldn’t connect with Google services</translation>
 <translation id="958515377357646513">Touch to go forward.</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index b3509a7a..412aa74 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Sólo cifrar</translation>
 <translation id="1039337018183941703">Archivo no válido o dañado</translation>
 <translation id="1042174272890264476">Tu computadora también tiene la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" /> incorporada. RLZ asigna una etiqueta identificable, no exclusiva y no personal para medir las búsquedas y el uso de <ph name="SHORT_PRODUCT_NAME" /> impulsados por una determinada campaña de promoción. Estas etiquetas aparecen a veces en las consultas de la Búsqueda de Google en <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> quiere almacenar datos de gran tamaño de forma permanente en tu dispositivo.</translation>
 <translation id="1046059554679513793">¡Vaya! Este nombre ya está en uso.</translation>
 <translation id="1047431265488717055">Copiar texto del vínculo</translation>
 <translation id="1047726139967079566">Agregar esta página a favoritos...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">¿Deseas restablecer el motor de búsqueda predeterminado?</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1178581264944972037">Detener</translation>
-<translation id="1179803038870941185"><ph name="URL" /> desea obtener el control total de tus dispositivos MIDI.</translation>
 <translation id="1181037720776840403">Eliminar</translation>
 <translation id="1183237619868651138">No se puede instalar <ph name="EXTERNAL_CRX_FILE" /> en la memoria caché local.</translation>
 <translation id="1185924365081634987">También puedes intentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como invitado<ph name="GUEST_SIGNIN_LINK_END" /> para solucionar este error de red.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Acceso a un archivo almacenado en la computadora}other{Acceso a # archivos almacenados en la computadora}}</translation>
 <translation id="1195076408729068893">Para iniciar Smart Lock, ingresa tu contraseña. La próxima vez, puedes usar el teléfono para desbloquear tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Error desconocido.</translation>
-<translation id="1196338895211115272">Error al exportar la clave privada.</translation>
 <translation id="119738088725604856">Ventana de captura de pantalla</translation>
 <translation id="1197979282329025000">Se produjo un error al recuperar las capacidades de la impresora <ph name="PRINTER_NAME" />. Esta impresora no se pudo registrar con <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Comencemos</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">El administrador recomienda un valor específico para esta configuración.</translation>
 <translation id="1225177025209879837">Procesando la solicitud...</translation>
 <translation id="1225211345201532184">Elemento 5 de la biblioteca</translation>
-<translation id="1225404570112441414">Permite agregar el sitio a tu biblioteca para usarlo en cualquier momento.</translation>
 <translation id="1227507814927581609">Error de autenticación al establecer la conexión con "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menú del sistema</translation>
 <translation id="1232569758102978740">Sin título</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Archivo HTML de favoritos</translation>
 <translation id="1303671224831497365">No se encontraron dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Cambiar la configuración</translation>
-<translation id="1307398858972670978">Accede a tus contraseñas desde cualquier dispositivo en <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">El sistema no pudo obtener un token de acceso a la API a largo plazo para este dispositivo.</translation>
 <translation id="1313405956111467313">Configuración automática de proxy</translation>
 <translation id="131364520783682672">Bloq Mayús</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Buscar</translation>
 <translation id="1386387014181100145">Hola.</translation>
 <translation id="138784436342154190">¿Deseas restaurar la página de inicio predeterminada?</translation>
-<translation id="1389297115360905376">Esto se puede agregar solamente desde <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Abrir como pestaña normal</translation>
-<translation id="1391807639023934267">Se cargó una página más rápida.</translation>
 <translation id="1393283411312835250">Sol y nubes</translation>
 <translation id="1395262318152388157">Buscar control deslizante</translation>
 <translation id="1395730723686586365">Actualizador iniciado</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Estás por actualizar a una versión inestable de <ph name="PRODUCT_NAME" /> en la que se incluyen funciones que aún se están desarrollando. Se producirán bloqueos y errores inesperados. Continúa con precaución.</translation>
 <translation id="1415990189994829608">No se permite <ph name="EXTENSION_NAME" /> (ID de extensión "<ph name="EXTENSION_ID" />") en este tipo de sesión.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">¡Ay! Error al generar clave privada RSA aleatoria.</translation>
 <translation id="1420834118113404499">Licencias de medios</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> para habilitar la sincronización</translation>
 <translation id="1426410128494586442">Sí</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Copiar dirección del audio</translation>
 <translation id="1465827627707997754">Porción de pizza</translation>
 <translation id="1467432559032391204">Izquierda</translation>
-<translation id="1467999917853307373"><ph name="URL" /> quiere almacenar datos de forma permanente en el dispositivo.</translation>
-<translation id="1470719357688513792">La nueva configuración de cookie se hará efectiva cuando vuelvas a cargar la página.</translation>
 <translation id="1470811252759861213">Para usar tus extensiones en todas tus computadoras, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">No se cargó "<ph name="FILENAME" />". No hay suficiente espacio libre en Google Drive.</translation>
 <translation id="1475502736924165259">Tienes certificados archivados que no coinciden con ninguna de las demás categorías</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">Cursor del mouse grande</translation>
 <translation id="1543284117603151572">Importados desde Edge</translation>
 <translation id="1545177026077493356">Modo kiosco automático</translation>
+<translation id="1545775234664667895">Tema instalado "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL con %s en el lugar de la consulta</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="1547572086206517271">Se requiere una actualización</translation>
@@ -440,11 +431,9 @@
     <ph name="BEGIN_BOLD" />revisar<ph name="END_BOLD" /> sitios web que visite el usuario supervisado y
     <ph name="BEGIN_BOLD" />administrar<ph name="END_BOLD" /> otros parámetros de configuración.</translation>
 <translation id="1648943974594387137">Los datos de acceso están desactualizados</translation>
-<translation id="1649641629389702691">&lt;No se muestran <ph name="LINE_COUNT" /> líneas&gt;</translation>
 <translation id="1650371550981945235">Mostrar opciones de entrada</translation>
 <translation id="1650709179466243265">Agrega www. y .com y abre la dirección</translation>
 <translation id="1651008383952180276">Debes ingresar la misma frase de contraseña dos veces</translation>
-<translation id="1652972346408808053">Se guardó la contraseña. Accede a tus contraseñas desde cualquier dispositivo en <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Agrega la impresora a Google Cloud Print para poder imprimir desde todas partes.}other{Agrega # impresoras a Google Cloud Print para poder imprimir desde todas partes.}}</translation>
 <translation id="1657406563541664238">Ayúdanos a <ph name="PRODUCT_NAME" /> mejorar enviando automáticamente estadísticas de uso e informes de fallos a Google.</translation>
 <translation id="1658424621194652532">Esta página está accediendo al micrófono.</translation>
@@ -462,7 +451,7 @@
 <translation id="167832068858235403">reducir volumen</translation>
 <translation id="1679068421605151609">Herramientas del programador</translation>
 <translation id="1682548588986054654">Nueva ventana de incógnito</translation>
-<translation id="1688935057616748272">Escribir una letra</translation>
+<translation id="1688935057616748272">Escribe una letra</translation>
 <translation id="168991973552362966">Agregar una impresora cercana</translation>
 <translation id="1689945336726856614">Copiar &amp;URL</translation>
 <translation id="1692602667007917253">Se produjo un error.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Continuar bloqueando las cookies</translation>
 <translation id="204622017488417136">El dispositivo volverá a la versión de Chrome instalada anteriormente. Se eliminarán todas las cuentas de usuario y los datos locales. Esta acción no se puede deshacer.</translation>
 <translation id="2048182445208425546">Acceder al tráfico de la red</translation>
-<translation id="2049137146490122801">Tu administrador bloqueó el acceso a los archivos locales en tu máquina.</translation>
 <translation id="204914487372604757">Crear accesos directos</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2053312383184521053">Datos de estado de inactividad</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">No se cargó todavía</translation>
 <translation id="2107494551712864447">Agregar una huella digital</translation>
-<translation id="2111843886872897694">Las aplicaciones deben proceder del host al que afecten.</translation>
 <translation id="2112877397266219826">Activa el controlador táctil para realizar la configuración.</translation>
 <translation id="21133533946938348">Fijar pestaña</translation>
 <translation id="2113479184312716848">Abrir &amp;archivo...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Cuéntanos cuál es el problema</translation>
 <translation id="2229161054156947610">Falta más de una hora.</translation>
 <translation id="222931766245975952">Archivo truncado</translation>
-<translation id="222949136907494149"><ph name="URL" /> quiere utilizar la ubicación de tu computadora.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">No se puede crear la carpeta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Haz clic para ver el doodle de hoy</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Bloquear siempre el acceso al micrófono</translation>
 <translation id="2367972762794486313">Mostrar aplicaciones</translation>
 <translation id="2371076942591664043">Abrir al &amp;finalizar</translation>
-<translation id="237336063998926520">Usar tu dirección IP para determinar la ubicación</translation>
 <translation id="2377319039870049694">Cambiar a la vista de lista</translation>
 <translation id="2377667304966270281">Fallos graves</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> archivos seleccionados</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> quiere copiar archivos de <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID de clave de la Entidad de certificación</translation>
 <translation id="2462752602710430187">Se agregó <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importar favoritos</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Falló la conexión con tu teléfono. Asegúrate de que tienes un teléfono Android compatible, y que esté encendido y cerca. &lt;a&gt;Más información&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensiones no admitidas inhabilitadas</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Desinstalación</translation>
 <translation id="2487067538648443797">Agregar un favorito nuevo</translation>
 <translation id="248861575772995840">No se puede encontrar el teléfono. Asegúrate de que tu dispositivo <ph name="DEVICE_TYPE" /> tenga Bluetooth encendido. &lt;a&gt;Más información&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Uno de los complementos (<ph name="PLUGIN_NAME" />) no responde.</translation>
 <translation id="2489428929217601177">el último día</translation>
 <translation id="2489918096470125693">Agregar &amp;carpeta...</translation>
 <translation id="249113932447298600">Lo sentimos, el dispositivo <ph name="DEVICE_LABEL" /> no se admite en este momento.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Se activó tu servicio de datos "<ph name="NAME" />" y está listo para que lo uses.</translation>
 <translation id="2566124945717127842">Usa la función Powerwash para restablecer el dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /> y que quede como nuevo.</translation>
 <translation id="2568774940984945469">Contenedor de la barra de información</translation>
-<translation id="2570000010887652771">Consumo de datos reducido</translation>
 <translation id="257088987046510401">Temas</translation>
 <translation id="2572032849266859634">Se concedió acceso de solo lectura a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Selecciona una imagen y un nombre</translation>
 <translation id="2575247648642144396">Este ícono estará visible cuando la extensión se pueda utilizar en la página actual. Para usar esta extensión, haz clic en el ícono o presiona <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">No se puede encontrar el teléfono. Asegúrate de que tu <ph name="DEVICE_TYPE" /> esté conectado al Wi-Fi o a una red móvil. &lt;a&gt;Más información&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Ya existe una archivo CRX con este nombre.</translation>
 <translation id="257779572837908839">Configurar como Chromebox para reuniones</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />No se puede desactivar el volumen<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1065,7 +1046,6 @@
 <translation id="2653266418988778031">Si eliminas un certificado de una Entidad de certificación (CA), tu navegador ya no confiará en ningún certificado emitido por esa Entidad.</translation>
 <translation id="2653659639078652383">Enviar</translation>
 <translation id="265390580714150011">Valor de campo</translation>
-<translation id="2654286334048437383">Exportar favoritos</translation>
 <translation id="2655386581175833247">Certificado de usuario:</translation>
 <translation id="2660779039299703961">Evento</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1259,7 +1239,6 @@
 <translation id="2908162660801918428">Agregar galería de medios por directorio</translation>
 <translation id="2908789530129661844">Alejar la pantalla</translation>
 <translation id="2910318910161511225">Conéctate a una red y vuelve a intentarlo</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> desea usar tu micrófono.</translation>
 <translation id="2913331724188855103">Permitir que todos los sitios guarden y lean datos de cookies (recomendado)</translation>
 <translation id="2916073183900451334">Si presionas el tabulador en una página web, se resaltan los vínculos y los campos de formularios</translation>
 <translation id="2916745397441987255">Buscar extensiones</translation>
@@ -1357,7 +1336,7 @@
 <translation id="3051523411789012618">Ventana hacia arriba</translation>
 <translation id="3053013834507634016">Uso de la clave del certificado</translation>
 <translation id="3057861065630527966">Crea una copia de seguridad de tus fotos y videos.</translation>
-<translation id="3060379269883947824">Habilitar Seleccionar para hablar</translation>
+<translation id="3060379269883947824">Habilitar Seleccionar para pronunciar</translation>
 <translation id="3061707000357573562">Aplicar parche al servicio</translation>
 <translation id="3064410671692449875">Datos insuficientes</translation>
 <translation id="3065041951436100775">La pestaña terminó los comentarios.</translation>
@@ -1412,7 +1391,6 @@
 <translation id="3141318088920353606">Escuchando…</translation>
 <translation id="3141917231319778873">La solicitud dada no es compatible con: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">LISTO</translation>
-<translation id="3144135466825225871">No se pudo reemplazar el archivo crx. Comprueba si el archivo está en uso.</translation>
 <translation id="3144647712221361880">Abrir vínculo como</translation>
 <translation id="3149510190863420837">Aplicaciones de Chrome</translation>
 <translation id="3150927491400159470">Volver a cargar de manera forzada</translation>
@@ -1522,7 +1500,6 @@
 <translation id="3309747692199697901">Ejecutar siempre en todos los sitios</translation>
 <translation id="3312424061798279731">Idiomas habilitados</translation>
 <translation id="3312903956926554846">Instalar en el escritorio</translation>
-<translation id="3313473140726597081">Tu página de inicio se cambió a <ph name="URL" />. Para inhabilitar las extensiones que cambian la página de inicio, haz clic en Restaurar.</translation>
 <translation id="3313590242757056087">Para definir los sitios web que puede ver el usuario supervisado, puedes configurar restricciones
     y parámetros de configuración en <ph name="MANAGEMENT_URL" />.
     Si no cambias la configuración predeterminada, <ph name="USER_DISPLAY_NAME" />
@@ -1538,7 +1515,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Información de la aplicación</translation>
 <translation id="3335947283844343239">Volver a abrir pestaña cerrada</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> se bloqueó porque no está actualizado.</translation>
 <translation id="3340978935015468852">configuración</translation>
 <translation id="3341703758641437857">Permitir el acceso a las URL del archivo</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" desea quitar esta extensión.</translation>
@@ -1573,7 +1549,6 @@
 <translation id="3386219708421216619">Se agregó el marcador</translation>
 <translation id="3389312115541230716">Haz clic con el botón derecho en el ícono <ph name="SMALL_PRODUCT_LOGO" /> en la barra de tareas</translation>
 <translation id="3391716558283801616">Pestaña 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> desea usar tu cámara y tu micrófono.</translation>
 <translation id="3396331542604645348">La impresora seleccionada no está disponible o no está instalada correctamente.  Comprueba tu impresora o selecciona otra.</translation>
 <translation id="3399432415385675819">Se inhabilitarán las notificaciones</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1685,10 +1660,8 @@
 <translation id="3550915441744863158">Debido a que Chrome se actualiza automáticamente, siempre tendrás la versión más reciente</translation>
 <translation id="3551320343578183772">Cerrar pestaña</translation>
 <translation id="3552780134252864554">Borrar al salir</translation>
-<translation id="355298399003313926"><ph name="URL" /> desea responder a los eventos de accesibilidad.</translation>
 <translation id="3555812735919707620">Eliminar extensión</translation>
 <translation id="3556000484321257665">Tu motor de búsqueda se cambió a <ph name="URL" />.</translation>
-<translation id="3561217442734750519">El valor de entrada de la clave privada debe ser una ruta válida.</translation>
 <translation id="3563432852173030730">No se pudo descargar la aplicación del kiosco.</translation>
 <translation id="3564334271939054422">La red Wi-Fi que estás usando (<ph name="NETWORK_ID" />) podría exigir que visites la página de acceso.</translation>
 <translation id="3564708465992574908">Niveles de zoom</translation>
@@ -1710,7 +1683,6 @@
 <translation id="3593965109698325041">Restricciones para el nombre del certificado</translation>
 <translation id="3596235046596950091">Habilitar los servicios de nube</translation>
 <translation id="3599863153486145794">Borra el historial de todos los dispositivos en los que accediste. Es posible que tu cuenta de Google tenga otros formularios del historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">El administrador inhabilitó el acceso a los archivos locales de tu dispositivo.</translation>
 <translation id="3600792891314830896">Silenciar los sitios que reproducen sonido</translation>
 <translation id="3603177256297531067">No se pudo traducir esta página</translation>
 <translation id="3603533104205588786">Puedes hacer clic en la estrella para agregar una página a favoritos</translation>
@@ -1735,7 +1707,6 @@
 <translation id="3625258641415618104">Capturas de pantalla inhabilitadas</translation>
 <translation id="3625870480639975468">Restablecer el zoom</translation>
 <translation id="3626281679859535460">Brillo</translation>
-<translation id="3627052133907344175">La extensión requiere "<ph name="IMPORT_NAME" />" con la versión "<ph name="IMPORT_VERSION" />" como mínimo, pero solo está instalada la versión "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Falta menos de un minuto.</translation>
 <translation id="3627588569887975815">Abrir el enlace en una ventana de navegación de incó&amp;gnito</translation>
 <translation id="3627671146180677314">Tiempo de renovación del certificado Netscape</translation>
@@ -1765,7 +1736,6 @@
 <translation id="3668570675727296296">Configuración de idiomas</translation>
 <translation id="3668823961463113931">Controladores</translation>
 <translation id="3670229581627177274">Activar Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> desea almacenar de forma permanente los datos de gran tamaño en tu computadora local.</translation>
 <translation id="3672681487849735243">Se detectó un error de fábrica.</translation>
 <translation id="367645871420407123">dejar en blanco si quieres configurar la contraseña de raíz en el valor de la imagen de prueba predeterminada</translation>
 <translation id="3678156199662914018">Extensión: <ph name="EXTENSION_NAME" /></translation>
@@ -1843,11 +1813,9 @@
 <translation id="3786301125658655746">No estás conectado.</translation>
 <translation id="3788401245189148511">Podría:</translation>
 <translation id="3789841737615482174">Instalar</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> solo funciona en el escritorio.</translation>
 <translation id="379082410132524484">La tarjeta está vencida</translation>
 <translation id="3792890930871100565">Desconectar impresoras</translation>
 <translation id="379422718204375917">Usar Smart Lock para acceder a tu cuenta</translation>
-<translation id="3794595850995182458">Salir de la página</translation>
 <translation id="3796648294839530037">Redes favoritas:</translation>
 <translation id="3797900183766075808">&amp;Buscar "<ph name="SEARCH_TERMS" />" en <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Permite habilitar o inhabilitar la función de presionar para hacer clic</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326">Habilitar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Se ingresó un tipo de almacenaje no válido.</translation>
 <translation id="3983586614702900908">dispositivos de un proveedor desconocido</translation>
-<translation id="3984413272403535372">Error al firmar extensión.</translation>
 <translation id="3987938432087324095">No entendí.</translation>
 <translation id="3988996860813292272">Seleccionar zona horaria</translation>
 <translation id="3989635538409502728">Salir</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">Instala apps y juegos de Google Play en tu Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Más información&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Aceptar la invitación realizada al grupo</translation>
 <translation id="4090103403438682346">Habilita el acceso verificado.</translation>
-<translation id="4090404313667273475">Se necesita <ph name="PLUGIN_NAME" /> para mostrar algunos elementos de esta página.</translation>
 <translation id="4090535558450035482">(Esta extensión está administrada y no puede eliminarse).</translation>
 <translation id="4091434297613116013">hojas de papel</translation>
 <translation id="4093955363990068916">Archivo local:</translation>
@@ -2368,7 +2334,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> ahora puede sincronizar tus contraseñas.</translation>
 <translation id="4715553623069266137">muy corto (0.8 s)</translation>
 <translation id="4716483597559580346">Powerwash para mejorar la seguridad</translation>
-<translation id="471800408830181311">Error al emitir clave privada.</translation>
 <translation id="4720113199587244118">Agregar dispositivos</translation>
 <translation id="4720185134442950733">Red de datos móviles</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> está compartiendo tu pantalla.</translation>
@@ -2505,7 +2470,6 @@
 <translation id="4917385247580444890">Fuerte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> quiere comunicarse con la extensión "<ph name="EXTENSION_NAME" />".</translation>
 <translation id="4918086044614829423">Aceptar</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> desea usar tu cámara.</translation>
 <translation id="4920887663447894854">Se bloquearon los siguientes sitios para que no puedan rastrear tu ubicación en esta página:</translation>
 <translation id="492299503953721473">Quitar las apps de Android</translation>
 <translation id="4923279099980110923">Sí, quiero ayudar</translation>
@@ -2546,7 +2510,6 @@
 <translation id="4980805016576257426">Esta extensión contiene software malicioso.</translation>
 <translation id="498294082491145744">Permite cambiar la configuración que controla el acceso de los sitios web a ciertas funciones, como las cookies, JavaScript, los complementos, la geolocalización, el micrófono, la cámara, etc.</translation>
 <translation id="4988526792673242964">Páginas</translation>
-<translation id="4988792151665380515">Error al exportar la clave pública.</translation>
 <translation id="49896407730300355">Girar &amp;a la izquierda</translation>
 <translation id="4989966318180235467">Inspeccionar página &amp;de fondo</translation>
 <translation id="4990343175649730969">Descargar la Herramienta para limpiar Chrome</translation>
@@ -2575,7 +2538,6 @@
 <translation id="5026874946691314267">No volver a mostrar</translation>
 <translation id="5027550639139316293">Enviar certificado por correo electrónico</translation>
 <translation id="5027562294707732951">Agregar extensión</translation>
-<translation id="5028012205542821824">La instalación no está habilitada.</translation>
 <translation id="5029568752722684782">Borrar la copia</translation>
 <translation id="5030338702439866405">Proporcionada por</translation>
 <translation id="5036662165765606524">No permitir que ningún sitio descargue varios archivos automáticamente</translation>
@@ -2611,7 +2573,6 @@
 <translation id="509429900233858213">Se ha producido un error.</translation>
 <translation id="5094721898978802975">Comunicarse con aplicaciones nativas en cooperación</translation>
 <translation id="5097002363526479830">Error al conectar a la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">No se puede encontrar la ruta de acceso absoluta al directorio al paquete.</translation>
 <translation id="5099354524039520280">arriba</translation>
 <translation id="5100114659116077956">La Chromebox tiene que actualizarse para poder ofrecerte las últimas funciones.</translation>
 <translation id="5101042277149003567">Abrir todos los favoritos</translation>
@@ -2660,7 +2621,6 @@
 <translation id="5170568018924773124">Mostrar en carpeta</translation>
 <translation id="5171045022955879922">Buscar o escribir URL</translation>
 <translation id="5171343362375269016">Memoria en el espacio de intercambio</translation>
-<translation id="5175870427301879686"><ph name="URL" /> desea almacenar de forma permanente los datos en tu computadora local.</translation>
 <translation id="5177479852722101802">Continuar el bloqueo del acceso a la cámara y al micrófono</translation>
 <translation id="5177526793333269655">Vista de miniatura</translation>
 <translation id="5177549709747445269">Estás usando el plan de datos móviles.</translation>
@@ -2739,7 +2699,6 @@
 <translation id="529175790091471945">Formatear este dispositivo</translation>
 <translation id="5293170712604732402">Permite restaurar la configuración a los valores predeterminados originales</translation>
 <translation id="5298219193514155779">Tema creado por</translation>
-<translation id="5298363578196989456">No se puede importar la extensión "<ph name="IMPORT_NAME" />" porque no es un módulo compartido.</translation>
 <translation id="5299109548848736476">No realizar seguimiento</translation>
 <translation id="5299682071747318445">Todos los datos se encriptan con tu frase de contraseña para sincronización.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -2767,7 +2726,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" desea sincronizarse</translation>
 <translation id="5332624210073556029">Zona horaria:</translation>
 <translation id="5334142896108694079">Caché de la secuencia de comandos</translation>
-<translation id="533433379391851622">Se esperaba la versión "<ph name="EXPECTED_VERSION" />", pero la versión fue "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Ver código fuente</translation>
 <translation id="5335458522276292100">Realizando una copia de seguridad de <ph name="FILE_COUNT" /> en <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instalada por un tercero</translation>
@@ -2805,7 +2763,6 @@
 <translation id="5390100381392048184">Permitir que los sitios reproduzcan sonido</translation>
 <translation id="5390284375844109566">Base de datos indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> del dominio <ph name="PEPPER_PLUGIN_DOMAIN" /> desea acceder a tu computadora.</translation>
 <translation id="5397794290049113714">Tú</translation>
 <translation id="5398572795982417028">Referencia de página fuera de los límites; el valor máximo es <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncios bloqueados</translation>
@@ -2867,7 +2824,6 @@
 <translation id="5485754497697573575">Restablecer todas las pestañas</translation>
 <translation id="5486261815000869482">Confirmar contraseña</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> está compartiendo tu pantalla con <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Debe existir un valor de entrada para la clave privada.</translation>
 <translation id="5486561344817861625">Simular reinicio de navegador</translation>
 <translation id="5487521232677179737">Borrar datos</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" copiado</translation>
@@ -2950,7 +2906,6 @@
 <translation id="5600706100022181951">Para descargar la actualización, se usarán <ph name="UPDATE_SIZE_MB" /> MB de datos móviles. ¿Deseas continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Otros motores de búsqueda</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> en <ph name="PEPPER_PLUGIN_DOMAIN" /> quiere acceder al dispositivo.</translation>
 <translation id="5608580678041221894">Presionar las siguientes teclas para ajustar o mover el área recortada</translation>
 <translation id="5609231933459083978">Parece que la aplicación no es válida.</translation>
 <translation id="5610038042047936818">Cambiar al modo de cámara</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">Traducida</translation>
 <translation id="5991049340509704927">Ampliar</translation>
 <translation id="5993332328670040093">Ya no se medirá el uso de datos.</translation>
-<translation id="6003177993629630467">Es posible que <ph name="PRODUCT_NAME" /> no se mantenga actualizado.</translation>
 <translation id="600424552813877586">Aplicación no válida</translation>
 <translation id="6005695835120147974">Router multimedia</translation>
 <translation id="6006484371116297560">Clásico</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">Copia de seguridad en la nube</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="6040852767465482106">Identidad anónima</translation>
+<translation id="6041155700700864984">Salir de la pantalla completa</translation>
 <translation id="604124094241169006">Automático</translation>
 <translation id="6042169520002885235">Seleccionar un fabricante y un modelo de impresora</translation>
 <translation id="6042308850641462728">Más</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">Volver a cargar normalmente</translation>
 <translation id="6059652578941944813">Jerarquía de certificados</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> se bloqueó.</translation>
 <translation id="6064217302520318294">Bloqueo de pantalla</translation>
 <translation id="6065289257230303064">Atributos de directorio del sujeto del certificado</translation>
 <translation id="6068338049763724728">Habilitar inscripción remota</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">Permite ajustar la resolución de pantalla</translation>
 <translation id="6238923052227198598">Mantener la nota más reciente en la pantalla bloqueada</translation>
 <translation id="6239558157302047471">Volver a cargar &amp;marco</translation>
-<translation id="624022915548992686">Salir de la página</translation>
 <translation id="6241530762627360640">Acceder a la información sobre los dispositivos Bluetooth sincronizados con el sistema y detectar dispositivos Bluetooth cercanos.</translation>
 <translation id="6243774244933267674">Servidor no disponible</translation>
 <translation id="6246413617632217567">No se pudo importar el usuario supervisado. Comprueba los permisos y el espacio del disco duro, y vuelve a intentarlo.</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">Error de red desconocido</translation>
 <translation id="6313641880021325787">SALIR DE RV</translation>
 <translation id="6314819609899340042">Habilitaste correctamente las funciones de depuración en este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Tus páginas de inicio se cambiaron a <ph name="URL" />. Para inhabilitar las extensiones que cambian la página de inicio, haz clic en Restaurar.</translation>
 <translation id="6315493146179903667">Traer todo adelante</translation>
 <translation id="6316806695097060329">Este dispositivo <ph name="SHORT_PRODUCT_NAME" /> se diseñó para brindarte la mejor experiencia en la Web.</translation>
 <translation id="6317318380444133405">Ya no es compatible.</translation>
 <translation id="6317369057005134371">Esperando ventana de la aplicación…</translation>
 <translation id="6318407754858604988">Comenzó la descarga</translation>
-<translation id="6322279351188361895">Error al leer la clave privada.</translation>
 <translation id="6325191661371220117">Inhabilitar inicio automático</translation>
 <translation id="6326175484149238433">Eliminar de Chrome</translation>
 <translation id="6326855256003666642">Número de actividades en curso</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">Elegir lo que se sincronizará</translation>
 <translation id="6333064448949140209">El archivo se envió a Google para depurarlo</translation>
 <translation id="6333834492048057036">El cursor se sitúa en la barra de direcciones para la búsqueda.</translation>
-<translation id="6336907568130557310">Las personas que tengan acceso al archivo exportado podrán ver tus contraseñas. No compartas el archivo con nadie y bórralo después de importarlo.</translation>
 <translation id="6339668969738228384">Crear un perfil nuevo para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">No se pudo establecer una conexión con el servidor. Comprueba la conexión de red y vuelve a intentarlo. Si el problema persiste, reinicia la Chromebook.</translation>
 <translation id="6340071272923955280">Protocolo de impresión por Internet (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">Los sitios pueden guardar y leer los datos de las cookies</translation>
 <translation id="6388771388956873507">Busca el sensor de huellas digitales en tu dispositivo y tócalo con el dedo</translation>
 <translation id="6390799748543157332">Las páginas a las que accedas desde esta ventana no aparecerán en el historial del navegador ni dejarán rastros (por ejemplo, cookies) en la computadora después de cerrar todas las ventanas abiertas de la sesión de invitado. Los archivos descargados permanecerán intactos.</translation>
-<translation id="6391538222494443604">Debe existir el directorio de entrada.</translation>
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />información del sistema<ph name="END_LINK1" /> y <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Dejar de hablar</translation>
 <translation id="6397592254427394018">Abrir todos los favoritos en una ventana de &amp;incógnito</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">Administrar el bloqueo de JavaScript...</translation>
 <translation id="6459488832681039634">Usar la selección para buscar</translation>
 <translation id="6460601847208524483">Buscar siguiente</translation>
-<translation id="6462080265650314920">Las aplicaciones deben incluir el encabezado content-type "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">¿Todavía estás ahí?</translation>
 <translation id="6463795194797719782">&amp;Edición</translation>
 <translation id="6466988389784393586">&amp;Abrir todos los favoritos</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">¿Deseas que Google traduzca esta página de <ph name="SOURCE_LANGUAGE" /> a <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispositivo señalador conectado</translation>
-<translation id="6677037229676347494">Se esperaba un ID "<ph name="EXPECTED_ID" />", pero el ID fue "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL de consulta</translation>
 <translation id="6680028776254050810">Cambiar usuario</translation>
 <translation id="6680442031740878064">Disponible: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">Puedes personalizar la información que recopila Google en la sección <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" /> en cualquier momento.</translation>
 <translation id="6904344821472985372">Revocar acceso al archivo</translation>
 <translation id="6904655473976120856">Presionar el botón de la app para salir</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> quiere compartir tu pantalla.</translation>
-<translation id="6909461304779452601">Las aplicaciones, extensiones y secuencias de comandos de usuario no se pueden agregar desde este sitio web.</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="691024665142758461">Descargar varios archivos</translation>
 <translation id="6911324888870229398">Se interrumpió la conexión de red. Comprueba la conexión o intenta usar otra red Wi-Fi.</translation>
@@ -4102,7 +4047,6 @@
 <translation id="747114903913869239">Error: No se puede decodificar la extensión</translation>
 <translation id="7473891865547856676">No, gracias</translation>
 <translation id="747459581954555080">Restaurar todo</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> detectó un error.</translation>
 <translation id="7475671414023905704">URL de contraseña perdida de Netscape</translation>
 <translation id="7476454130948140105">El nivel de la batería es demasiado bajo para la actualización (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Si has olvidado tu frase de contraseña, detente y reinicia la sincronización a través del <ph name="BEGIN_LINK" />panel de control de Google<ph name="END_LINK" />.</translation>
@@ -4139,7 +4083,6 @@
 <translation id="7507930499305566459">Certificado del respondedor de estado</translation>
 <translation id="7508545000531937079">Presentación de diapositivas</translation>
 <translation id="7513029293694390567">Accede automáticamente a los sitios web con las credenciales almacenadas. Si la función está inhabilitada, deberás confirmar siempre tu identidad para acceder a un sitio web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> desea identificar de forma única tu dispositivo para reproducir contenido protegido.</translation>
 <translation id="7517569744831774757">Permite restaurar la configuración a los valores predeterminados originales.</translation>
 <translation id="7517786267097410259">Crear una contraseña:</translation>
 <translation id="7518150891539970662">Registros de WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4169,7 +4112,6 @@
     probar a crear un usuario supervisado de nuevo.</translation>
 <translation id="756445078718366910">Abrir la ventana del navegador</translation>
 <translation id="7564847347806291057">Finalizar proceso</translation>
-<translation id="7565291891798266313">Tu motor de búsqueda se cambió a <ph name="URL" />. Para inhabilitar las extensiones que cambian el motor de búsqueda, haz clic en Restaurar.</translation>
 <translation id="7566118625369982896">Administrar vínculos a apps en Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Datos de Chrome borrados</translation>
@@ -4178,7 +4120,6 @@
 <translation id="7573172247376861652">Carga de batería</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Intercalar</translation>
-<translation id="7577815336900970562">Usar Wi-Fi o la red móvil para determinar la ubicación</translation>
 <translation id="7579149537961810247">Silenciar los sitios</translation>
 <translation id="7580671184200851182">Reproducir el mismo audio en todos los altavoces (sonido mono)</translation>
 <translation id="7581462281756524039">Una herramienta de limpieza</translation>
@@ -4285,6 +4226,7 @@
 <translation id="7773726648746946405">Almacenamiento de sesión</translation>
 <translation id="7781335840981796660">Se eliminarán todas las cuentas de usuario y todos los datos locales.</translation>
 <translation id="7782102568078991263">No hay más sugerencias de Google.</translation>
+<translation id="778330624322499012">No se pudo cargar el complemento <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7784067724422331729">La configuración de seguridad de tu computadora bloqueó este archivo.</translation>
 <translation id="7786207843293321886">Salir de la sesión de invitado</translation>
 <translation id="7786889348652477777">&amp;Volver a cargar la aplicación</translation>
@@ -4447,7 +4389,6 @@
 <translation id="8001504501378762252">Es posible que un sitio haya robado tu contraseña</translation>
 <translation id="8004582292198964060">Navegador</translation>
 <translation id="8008356846765065031">No hay conexión a Internet. Comprueba la conexión.</translation>
-<translation id="8008765610824028412">No se pudo cargar el complemento <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Envía automáticamente contenido de la página e información del sistema a Google para ayudar a detectar apps y sitios peligrosos</translation>
 <translation id="8012382203418782830">Se tradujo esta página.</translation>
 <translation id="8014154204619229810">El actualizador se está ejecutando en este momento. Actualiza dentro de un minuto para verificarlo de nuevo.</translation>
@@ -4564,7 +4505,6 @@
 <translation id="8191230140820435481">Administrar tus aplicaciones, extensiones y temas</translation>
 <translation id="8191453843330043793">Herramienta de resolución de proxy V8</translation>
 <translation id="8195027750202970175">Tamaño en disco</translation>
-<translation id="8195739004487400241">Tu página principal se cambió a <ph name="URL" />. Para inhabilitar las extensiones que cambian la página principal, haz clic en Restaurar.</translation>
 <translation id="8199300056570174101">Propiedades de la red (servicio) y del dispositivo</translation>
 <translation id="8200772114523450471">Reanudar</translation>
 <translation id="8202160505685531999">Vuelve a ingresar la contraseña para actualizar tu perfil de <ph name="DEVICE_TYPE" />.</translation>
@@ -4608,7 +4548,6 @@
 <translation id="8261378640211443080">Esta extensión no figura en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y es posible que se haya agregado sin tu conocimiento.</translation>
 <translation id="8261387128019234107">Agregar cuenta para <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Borrar</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> no se implementó en esta compilación.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha inhabilitado el cursor del mouse.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" activó la pantalla completa.</translation>
 <translation id="8270242299912238708">Documentos PDF</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">O bien, selecciona una nueva red:</translation>
 <translation id="845627346958584683">Hora de vencimiento</translation>
 <translation id="8456681095658380701">Nombre no válido</translation>
+<translation id="8457451314607652708">Importar favoritos</translation>
 <translation id="8460336040822756677">Si desactivas Smart Lock para <ph name="DEVICE_TYPE" />, no podrás desbloquear los dispositivos Chrome que usan tu teléfono. Deberás escribir la contraseña.</translation>
 <translation id="8461329675984532579">Nombre del proveedor de origen</translation>
 <translation id="84613761564611563">Se solicitó la IU de configuración de redes; espera…</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">No se encontró software dañino</translation>
 <translation id="8512476990829870887">Finalizar proceso</translation>
 <translation id="851263357009351303">Siempre permitir que <ph name="HOST" /> muestre imágenes</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" está depurando este navegador.</translation>
 <translation id="8521475323816527629">Accede a las apps rápidamente</translation>
 <translation id="8523493869875972733">Conservar cambios</translation>
 <translation id="8523849605371521713">Agregada por la política</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">Configurar las conexiones de red</translation>
 <translation id="8620790565535071193">Se produjo un error durante el escaneo</translation>
 <translation id="8622877356447980900">¿Quieres traducir esta página?</translation>
-<translation id="8623004009673949077">La aplicación con el atributo del manifiesto "kiosk_only" se debe instalar en el modo kiosco del Sistema operativo Chrome.</translation>
 <translation id="8624205858755890468">Permite que el Asistente te muestre información relacionada, apps y acciones.</translation>
 <translation id="862542460444371744">&amp;Extensiones</translation>
 <translation id="8627151598708688654">Seleccionar la fuente</translation>
@@ -4946,7 +4884,6 @@
 <translation id="882204272221080310">Actualizar el firmware para mejorar la seguridad</translation>
 <translation id="8823514049557262177">Copiar texto del vínculo</translation>
 <translation id="8824701697284169214">Añadir pá&amp;gina...</translation>
-<translation id="8827850355924932817">Usar la red Wi-Fi para determinar la ubicación</translation>
 <translation id="8828933418460119530">Nombre de DNS</translation>
 <translation id="8830796635868321089">La búsqueda de actualizaciones no pudo usar la configuración del servidor proxy actual. Ajusta tu <ph name="PROXY_SETTINGS_LINK_START" />configuración de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> controla la configuración de la red.</translation>
@@ -4978,9 +4915,7 @@
 <translation id="8879284080359814990">Mo&amp;strar como pestaña</translation>
 <translation id="8884961208881553398">Agregar nuevos servicios</translation>
 <translation id="8885197664446363138">Smart Lock no está disponible</translation>
-<translation id="8885905466771744233">Ya existe una clave privada para la extensión especificada. Volver a utilizar esa clave o eliminarla primero.</translation>
 <translation id="8888432776533519951">Color:</translation>
-<translation id="8892992092192084762">Tema instalado "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Lo sentimos, no se reconoció el dispositivo <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Lista de favoritos</translation>
 <translation id="88986195241502842">Avanzar página</translation>
@@ -4989,13 +4924,12 @@
 <translation id="8899285681604219177">Extensiones no admitidas inhabilitadas</translation>
 <translation id="8899551033019439140">Buscando impresora…</translation>
 <translation id="8899851313684471736">Abrir enlace en una &amp;ventana nueva</translation>
-<translation id="8902667442496790482">Abrir configuración de Seleccionar para hablar</translation>
+<translation id="8902667442496790482">Abrir configuración de Seleccionar para pronunciar</translation>
 <translation id="8903921497873541725">Acercar</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">Advertencia: Habilitaste la marca --scripts-require-action en esta computadora, lo que limita las capacidades de esta extensión. Sin embargo, es posible que otros dispositivos no admitan la marca o que la tengan habilitada. En esos dispositivos, la extensión también puede realizar lo siguiente:</translation>
 <translation id="8910146161325739742">Compartir la pantalla</translation>
 <translation id="8910222113987937043">Los cambios en tus favoritos, historial, contraseñas y otras opciones de configuración ya no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos existentes permanecerán almacenados en tu cuenta de Google y se podrán administrar en el <ph name="BEGIN_LINK" />Panel de control de Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google marcó a <ph name="EXTENSION_NAME" /> como extensión maliciosa y se canceló la instalación.</translation>
 <translation id="8912793549644936705">Expandir</translation>
 <translation id="8915370057835397490">Cargando sugerencia</translation>
 <translation id="8916476537757519021">Submarco incógnito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5101,7 +5035,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Mouse USB conectado</translation>
 <translation id="9076523132036239772">Lo sentimos, no pudimos verificar tu correo electrónico o contraseña. Intenta conectándote a una red.</translation>
-<translation id="907841381057066561">Error al crear el archivo zip temporal durante el empaquetado.</translation>
 <translation id="9084064520949870008">Abrir como ventana</translation>
 <translation id="9088234649737575428">La política empresarial bloqueó <ph name="PLUGIN_NAME" /></translation>
 <translation id="9088917181875854783">Confirma que esta clave de acceso se muestra en "<ph name="DEVICE_NAME" />":</translation>
@@ -5192,11 +5125,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ingresar frase de contraseña</translation>
 <translation id="939736085109172342">Nueva carpeta</translation>
-<translation id="941543339607623937">Clave privada no válida</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> comparte una pestaña de Chrome y audio.</translation>
 <translation id="942954117721265519">No hay imágenes en este directorio.</translation>
 <translation id="945522503751344254">Enviar comentarios</translation>
-<translation id="951981865514037445"><ph name="URL" /> quiere utilizar la ubicación de tu dispositivo.</translation>
 <translation id="952992212772159698">No activado</translation>
 <translation id="9580706199804957">No se pudo establecer una conexión con los servicios de Google</translation>
 <translation id="958515377357646513">Toca para continuar.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 7c78f31..811c7a4 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Solo cifrar</translation>
 <translation id="1039337018183941703">El archivo no es válido o está dañado</translation>
 <translation id="1042174272890264476">El ordenador también incluye la biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" />. RLZ asigna una etiqueta identificable, no exclusiva y no personal para medir las búsquedas y el uso de <ph name="SHORT_PRODUCT_NAME" /> derivados de una determinada campaña promocional. Estas etiquetas aparecen a veces en las consultas de la Búsqueda de Google realizadas en <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> quiere almacenar datos de gran tamaño de forma permanente en tu dispositivo.</translation>
 <translation id="1046059554679513793">¡Vaya! Este nombre ya está en uso.</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto de enlace</translation>
 <translation id="1047726139967079566">Añadir esta página a marcadores...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">¿Quieres restaurar el motor de búsqueda predeterminado?</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1178581264944972037">Pausar</translation>
-<translation id="1179803038870941185"><ph name="URL" /> quiere obtener un control absoluto de tus dispositivos MIDI.</translation>
 <translation id="1181037720776840403">Eliminar</translation>
 <translation id="1183237619868651138">No se puede instalar <ph name="EXTERNAL_CRX_FILE" /> en la memoria caché local.</translation>
 <translation id="1185924365081634987">También puedes intentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como invitado<ph name="GUEST_SIGNIN_LINK_END" /> para solucionar el problema de red.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Acceso a un archivo almacenado en tu ordenador}other{Acceso a # archivos almacenados en tu ordenador}}</translation>
 <translation id="1195076408729068893">Introduce la contraseña para iniciar Smart Lock. La próxima vez, puedes usar el teléfono para desbloquear tu <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Error desconocido.</translation>
-<translation id="1196338895211115272">Se ha producido un error al exportar la clave privada.</translation>
 <translation id="119738088725604856">Ventana de captura de pantalla</translation>
 <translation id="1197979282329025000">Se ha producido un error al recuperar las funciones de la impresora <ph name="PRINTER_NAME" />. Esta impresora no se ha podido registrar en <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">¡Empecemos!</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">El administrador recomienda un valor específico para esta opción.</translation>
 <translation id="1225177025209879837">Procesando solicitud...</translation>
 <translation id="1225211345201532184">Elemento 5 de la estantería</translation>
-<translation id="1225404570112441414">Añade este sitio web a tu estantería para poder utilizarlo en cualquier momento.</translation>
 <translation id="1227507814927581609">Se ha producido un error de autenticación al establecer conexión con <ph name="DEVICE_NAME" />.</translation>
 <translation id="1230807973377071856">menú del sistema</translation>
 <translation id="1232569758102978740">Sin título</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Archivo HTML de marcadores</translation>
 <translation id="1303671224831497365">No se han encontrado dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Cambiar configuración</translation>
-<translation id="1307398858972670978">Accede a tus contraseñas desde cualquier dispositivo a través de <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">¡Vaya! El sistema no ha podido almacenar el token de acceso a la API a largo plazo para este dispositivo.</translation>
 <translation id="1313405956111467313">Configuración de proxy automática</translation>
 <translation id="131364520783682672">Bloq Mayús</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Buscar</translation>
 <translation id="1386387014181100145">Hola.</translation>
 <translation id="138784436342154190">¿Restaurar la página de inicio predeterminada?</translation>
-<translation id="1389297115360905376">Este elemento solo se puede añadir desde <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Abrir como pestaña normal</translation>
-<translation id="1391807639023934267">Se ha cargado la página de forma más rápida.</translation>
 <translation id="1393283411312835250">Sol y nubes</translation>
 <translation id="1395262318152388157">Control deslizante de búsqueda</translation>
 <translation id="1395730723686586365">Herramienta de actualización iniciada</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Vas a actualizar a una versión inestable de <ph name="PRODUCT_NAME" /> que incluye funciones que están en desarrollo. Se producirán fallos y errores inesperados. Utiliza esta versión con precaución.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID de extensión "<ph name="EXTENSION_ID" />") no se puede utilizar en este tipo de sesión.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">¡Vaya! Se ha producido un error al generar una clave privada RSA aleatoria.</translation>
 <translation id="1420834118113404499">Licencias de contenido multimedia</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> para permitir la vinculación</translation>
 <translation id="1426410128494586442">Sí</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opiar dirección de audio</translation>
 <translation id="1465827627707997754">Porción de pizza</translation>
 <translation id="1467432559032391204">Izquierda</translation>
-<translation id="1467999917853307373"><ph name="URL" /> quiere almacenar datos de forma permanente en tu dispositivo.</translation>
-<translation id="1470719357688513792">La nueva configuración de cookies se aplicará al volver a cargar la página.</translation>
 <translation id="1470811252759861213">Para ver tus extensiones en todos tus ordenadores, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">No se ha subido <ph name="FILENAME" />. No hay suficiente espacio libre en tu cuenta de Google Drive.</translation>
 <translation id="1475502736924165259">Tienes certificados registrados que no corresponden a ninguna otra categoría</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Cursor del ratón grande</translation>
 <translation id="1543284117603151572">Importado desde Edge</translation>
 <translation id="1545177026077493356">Modo kiosco automático</translation>
+<translation id="1545775234664667895">El tema <ph name="THEME_NAME" /> se ha instalado.</translation>
 <translation id="1545786162090505744">URL con %s en el lugar de la consulta</translation>
 <translation id="1546280085599573572">Esta extensión ha cambiado la página que se muestra al hacer clic en el botón Página de inicio.</translation>
 <translation id="1547572086206517271">Es necesario actualizar</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />revisar<ph name="END_BOLD" /> sitios web que haya visitado el usuario supervisado,
     <ph name="BEGIN_BOLD" />administrar<ph name="END_BOLD" /> otras opciones.</translation>
 <translation id="1648943974594387137">La información de inicio de sesión no está actualizada</translation>
-<translation id="1649641629389702691">&lt;líneas que no se muestran: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Mostrar opciones de entrada</translation>
 <translation id="1650709179466243265">Añadir www. y .com y acceder a dirección</translation>
 <translation id="1651008383952180276">Debes introducir la misma frase de contraseña dos veces</translation>
-<translation id="1652972346408808053">La contraseña se ha guardado. Accede a tus contraseñas desde cualquier dispositivo a través de <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Añade la impresora a Google Cloud Print para que puedas imprimir desde cualquier parte.}other{Añade # impresoras a Google Cloud Print para que puedas imprimir desde cualquier parte.}}</translation>
 <translation id="1657406563541664238">Ayúdanos a mejorar <ph name="PRODUCT_NAME" /> enviando estadísticas de uso e informes sobre fallos.</translation>
 <translation id="1658424621194652532">Esta página está accediendo al micrófono</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continuar bloqueando las cookies</translation>
 <translation id="204622017488417136">Se restaurará la versión de Chrome instalada previamente en el dispositivo y se eliminarán todas las cuentas de usuario y todos los datos locales. Esta acción no se puede deshacer.</translation>
 <translation id="2048182445208425546">Acceder a tu tráfico de red</translation>
-<translation id="2049137146490122801">Tu administrador ha inhabilitado el acceso a los archivos locales de tu dispositivo.</translation>
 <translation id="204914487372604757">Crear acceso directo</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2053312383184521053">Datos de estado de inactividad</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Aún sin cargar</translation>
 <translation id="2107494551712864447">Añadir una huella digital</translation>
-<translation id="2111843886872897694">Las aplicaciones deben proceder del host al que afecten.</translation>
 <translation id="2112877397266219826">Activa el controlador táctil para realizar la configuración</translation>
 <translation id="21133533946938348">Fijar pestaña</translation>
 <translation id="2113479184312716848">Abrir &amp;archivo...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Indícanos el problema</translation>
 <translation id="2229161054156947610">Más de 1 hora</translation>
 <translation id="222931766245975952">Archivo truncado</translation>
-<translation id="222949136907494149"><ph name="URL" /> quiere utilizar la ubicación de tu ordenador.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">No se puede crear la carpeta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Haz clic para ver el doodle de hoy</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Bloquear siempre el acceso al micrófono</translation>
 <translation id="2367972762794486313">Mostrar aplicaciones</translation>
 <translation id="2371076942591664043">Abrir al &amp;finalizar</translation>
-<translation id="237336063998926520">Utilizar tu dirección IP para determinar la ubicación</translation>
 <translation id="2377319039870049694">Cambiar a vista de lista</translation>
 <translation id="2377667304966270281">Fallos graves</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> archivos seleccionados</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> quiere copiar archivos de <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID de clave de la entidad emisora de certificados</translation>
 <translation id="2462752602710430187">Se ha añadido la impresora <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importar marcadores</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">No se puede establecer conexión con tu teléfono. Asegúrate de que estás utilizando un teléfono Android compatible que esté encendido y que tengas cerca. &lt;a&gt;Más información&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensiones no admitidas inhabilitadas</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2487067538648443797">Añadir nuevo marcador</translation>
 <translation id="248861575772995840">No se encuentra tu teléfono. Asegúrate de que el Bluetooth esté activado en tu <ph name="DEVICE_TYPE" />. &lt;a&gt;Más información&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Un complemento (<ph name="PLUGIN_NAME" />) no responde.</translation>
 <translation id="2489428929217601177">ayer</translation>
 <translation id="2489918096470125693">Añadir &amp;carpeta...</translation>
 <translation id="249113932447298600">Lo sentimos, pero el dispositivo <ph name="DEVICE_LABEL" /> no se admite en este momento.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">¡Enhorabuena! Tu servicio de datos <ph name="NAME" /> se ha activado y está listo para que lo uses.</translation>
 <translation id="2566124945717127842">Haz un Powerwash y restablece el estado de fábrica de tu dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /> para que quede como nuevo.</translation>
 <translation id="2568774940984945469">Contenedor de barra de información</translation>
-<translation id="2570000010887652771">Consumo de datos reducido.</translation>
 <translation id="257088987046510401">Temas</translation>
 <translation id="2572032849266859634">Se ha concedido acceso de solo lectura a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Elige una imagen y un nombre</translation>
 <translation id="2575247648642144396">Este icono estará visible cuando la extensión se pueda utilizar en la página actual. Para utilizar la extensión, haz clic en el icono o pulsa <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">No se encuentra tu teléfono. Asegúrate de que tu <ph name="DEVICE_TYPE" /> esté conectado a una red Wi‑Fi o móvil. &lt;a&gt;Más información&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Ya existe un archivo CRX con este nombre.</translation>
 <translation id="257779572837908839">Configurar como Chromebox para reuniones</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />No se puede desconectar el volumen<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Si eliminas el certificado de CA, el navegador ya no podrá confiar en ningún certificado emitido por esa entidad emisora de certificados.</translation>
 <translation id="2653659639078652383">Enviar</translation>
 <translation id="265390580714150011">Valor de campo</translation>
-<translation id="2654286334048437383">Exportar marcadores</translation>
 <translation id="2655386581175833247">Certificado usuario:</translation>
 <translation id="2660779039299703961">Evento</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1264,7 +1244,6 @@
 <translation id="2908162660801918428">Añadir galería de archivos por directorio</translation>
 <translation id="2908789530129661844">Reducir pantalla</translation>
 <translation id="2910318910161511225">Conéctate a una red y vuelve a intentarlo</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> quiere usar el micrófono.</translation>
 <translation id="2913331724188855103">Permitir que los sitios guarden y lean datos de cookies (recomendado)</translation>
 <translation id="2916073183900451334">El tabulador permite destacar los enlaces de una página web, así como los campos de formulario.</translation>
 <translation id="2916745397441987255">Buscar extensiones</translation>
@@ -1417,7 +1396,6 @@
 <translation id="3141318088920353606">Escuchando...</translation>
 <translation id="3141917231319778873">"<ph name="DEVICE_NAME" />" no admite la solicitud proporcionada.</translation>
 <translation id="3144126448740580210">LISTO</translation>
-<translation id="3144135466825225871">No se ha podido sustituir el archivo .crx. Comprueba si se está utilizando el archivo.</translation>
 <translation id="3144647712221361880">Abrir enlace como</translation>
 <translation id="3149510190863420837">Aplicaciones de Chrome</translation>
 <translation id="3150927491400159470">Volver a cargar de manera forzada</translation>
@@ -1527,7 +1505,6 @@
 <translation id="3309747692199697901">Ejecutar siempre en todos los sitios</translation>
 <translation id="3312424061798279731">Idiomas habilitados</translation>
 <translation id="3312903956926554846">Instalar en el escritorio</translation>
-<translation id="3313473140726597081">Tu página de inicio ha cambiado a <ph name="URL" />. Para inhabilitar las extensiones que cambian la página de inicio, haz clic en Restaurar.</translation>
 <translation id="3313590242757056087">Para definir los sitios web que puede ver el usuario supervisado, puedes configurar restricciones y opciones en la página <ph name="MANAGEMENT_URL" />.
 Si no cambias la configuración predeterminada, <ph name="USER_DISPLAY_NAME" /> podrá navegar por todos los sitios de la Web.</translation>
 <translation id="3313622045786997898">Valor de firma de certificados</translation>
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Información de la aplicación</translation>
 <translation id="3335947283844343239">Volver a abrir pestaña cerrada</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> se ha bloqueado porque no está actualizado.</translation>
 <translation id="3340978935015468852">configuración</translation>
 <translation id="3341703758641437857">Permitir acceso a URL de archivo</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" quiere quitar esta extensión.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Añadida a Marcadores</translation>
 <translation id="3389312115541230716">Haz clic con el botón derecho en el icono <ph name="SMALL_PRODUCT_LOGO" /> situado en la barra de tareas</translation>
 <translation id="3391716558283801616">Pestaña 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> quiere utilizar tu cámara y tu micrófono.</translation>
 <translation id="3396331542604645348">La impresora seleccionada no se encuentra disponible o no está instalada correctamente. Comprueba tu impresora o prueba a seleccionar otra.</translation>
 <translation id="3399432415385675819">Se inhabilitarán las notificaciones</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome se actualiza automáticamente para que siempre tengas la versión más reciente</translation>
 <translation id="3551320343578183772">Cerrar pestaña</translation>
 <translation id="3552780134252864554">Borrar al salir</translation>
-<translation id="355298399003313926"><ph name="URL" /> quiere responder a eventos de accesibilidad.</translation>
 <translation id="3555812735919707620">Eliminar extensión</translation>
 <translation id="3556000484321257665">Tu motor de búsqueda ha cambiado a <ph name="URL" />.</translation>
-<translation id="3561217442734750519">El valor de entrada de la clave privada debe ser una ruta válida.</translation>
 <translation id="3563432852173030730">La aplicación de kiosco no se ha podido descargar.</translation>
 <translation id="3564334271939054422">La red Wi-Fi que estás utilizando (<ph name="NETWORK_ID" />) puede requerir que accedas a su página de inicio de sesión.</translation>
 <translation id="3564708465992574908">Niveles de zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Restricciones de nombres de certificado</translation>
 <translation id="3596235046596950091">Habilitar servicios en la nube</translation>
 <translation id="3599863153486145794">Borra el historial de todos los dispositivos en los que hayas iniciado sesión. 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="3600456501114769456">Tu administrador ha inhabilitado el acceso a los archivos locales de tu dispositivo.</translation>
 <translation id="3600792891314830896">Silenciar los sitios web que reproducen sonidos</translation>
 <translation id="3603177256297531067">No se ha podido traducir la página</translation>
 <translation id="3603533104205588786">Puedes hacer clic en la estrella para añadir esta página a marcadores</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Capturas de pantalla inhabilitadas</translation>
 <translation id="3625870480639975468">Restablecer zoom</translation>
 <translation id="3626281679859535460">Brillo</translation>
-<translation id="3627052133907344175">La extensión necesita <ph name="IMPORT_NAME" /> con la versión <ph name="IMPORT_VERSION" /> como mínimo, pero solo está instalada la versión <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Menos de 1 minuto</translation>
 <translation id="3627588569887975815">Abrir el enlace en una ventana de incó&amp;gnito</translation>
 <translation id="3627671146180677314">Tiempo de renovación de certificado de Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Configuración de idioma</translation>
 <translation id="3668823961463113931">Controladores</translation>
 <translation id="3670229581627177274">Activar Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> quiere almacenar datos de gran tamaño de forma permanente en tu ordenador local.</translation>
 <translation id="3672681487849735243">Se ha detectado un error de fabricación</translation>
 <translation id="367645871420407123">deja este campo vacío si quieres establecer la contraseña raíz en el valor de la imagen de prueba predeterminada</translation>
 <translation id="3678156199662914018">Extensión: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">No tienes conexión.</translation>
 <translation id="3788401245189148511">Podría:</translation>
 <translation id="3789841737615482174">Instalar</translation>
-<translation id="3790146417033334899">El complemento <ph name="PLUGIN_NAME" /> solo funciona en el escritorio.</translation>
 <translation id="379082410132524484">Tu tarjeta ha caducado</translation>
 <translation id="3792890930871100565">Desconectar impresoras</translation>
 <translation id="379422718204375917">Utilizar Smart Lock para iniciar sesión en tu cuenta</translation>
-<translation id="3794595850995182458">Salir de la página</translation>
 <translation id="3796648294839530037">Redes favoritas:</translation>
 <translation id="3797900183766075808">&amp;Buscar <ph name="SEARCH_TERMS" /> en <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Te permite habilitar e inhabilitar la función Tocar para hacer clic</translation>
@@ -1980,7 +1948,6 @@
 <translation id="3979748722126423326">Habilitar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Tipo de almacenamiento no válido</translation>
 <translation id="3983586614702900908">dispositivos de un proveedor desconocido</translation>
-<translation id="3984413272403535372">Se ha producido un error al firmar la extensión.</translation>
 <translation id="3987938432087324095">No he entendido nada.</translation>
 <translation id="3988996860813292272">Seleccionar la zona horaria</translation>
 <translation id="3989635538409502728">Cerrar sesión</translation>
@@ -2036,7 +2003,6 @@
 <translation id="4087470595660267445">Descarga aplicaciones y juegos de Google Play en tu Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Más información&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Aceptar la invitación para el grupo</translation>
 <translation id="4090103403438682346">Habilitar acceso verificado</translation>
-<translation id="4090404313667273475">Se necesita el elemento <ph name="PLUGIN_NAME" /> para mostrar algunos elementos de esta página.</translation>
 <translation id="4090535558450035482">(Esta extensión está administrada y no se puede eliminar.)</translation>
 <translation id="4091434297613116013">hojas de papel</translation>
 <translation id="4093955363990068916">Archivo local:</translation>
@@ -2370,7 +2336,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> ya puede sincronizar tus contraseñas.</translation>
 <translation id="4715553623069266137">muy breve (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash para mayor seguridad</translation>
-<translation id="471800408830181311">Se ha producido un error al generar la clave privada.</translation>
 <translation id="4720113199587244118">Añadir dispositivos</translation>
 <translation id="4720185134442950733">Red de datos móviles</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> está compartiendo tu pantalla.</translation>
@@ -2507,7 +2472,6 @@
 <translation id="4917385247580444890">Buena</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> quiere comunicarse con al extensión <ph name="EXTENSION_NAME" /></translation>
 <translation id="4918086044614829423">Aceptar</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> quiere utilizar tu cámara.</translation>
 <translation id="4920887663447894854">Los sitios que se indican a continuación se han bloqueado para evitar que puedan hacer un seguimiento de tu ubicación en esta página:</translation>
 <translation id="492299503953721473">Quitar aplicaciones de Android</translation>
 <translation id="4923279099980110923">Sí, quiero ayudar</translation>
@@ -2548,7 +2512,6 @@
 <translation id="4980805016576257426">Esta extensión contiene software malicioso.</translation>
 <translation id="498294082491145744">Cambiar la configuración que controla el acceso de los sitios web a funciones como las cookies, JavaScript, los complementos, la ubicación geográfica, el micrófono o la cámara.</translation>
 <translation id="4988526792673242964">Páginas</translation>
-<translation id="4988792151665380515">Se ha producido un error al exportar la clave pública.</translation>
 <translation id="49896407730300355">Girar a la &amp;izquierda</translation>
 <translation id="4989966318180235467">Inspeccionar página &amp;en segundo plano</translation>
 <translation id="4990343175649730969">Descargar el Limpiador de Chrome</translation>
@@ -2576,7 +2539,6 @@
 <translation id="5026874946691314267">No volver a mostrar esta notificación</translation>
 <translation id="5027550639139316293">Certificado de correo electrónico</translation>
 <translation id="5027562294707732951">Añadir extensión</translation>
-<translation id="5028012205542821824">Instalación no habilitada</translation>
 <translation id="5029568752722684782">Borrar copia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="5036662165765606524">No permitir que ningún sitio descargue varios archivos automáticamente</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">Se ha producido un error.</translation>
 <translation id="5094721898978802975">Comunicarse con aplicaciones nativas cooperativas</translation>
 <translation id="5097002363526479830">Error al establecer conexión con la red "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">No se puede encontrar la ruta absoluta hasta el directorio donde está la extensión</translation>
 <translation id="5099354524039520280">arriba</translation>
 <translation id="5100114659116077956">Debes actualizar tu Chromebox para poder disfrutar de las últimas funciones.</translation>
 <translation id="5101042277149003567">Abrir todos los marcadores</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">Mostrar en carpeta</translation>
 <translation id="5171045022955879922">Busca o escribe una URL</translation>
 <translation id="5171343362375269016">Memoria trasladada al espacio de reserva</translation>
-<translation id="5175870427301879686"><ph name="URL" /> quiere almacenar los datos de forma permanente en tu ordenador.</translation>
 <translation id="5177479852722101802">Seguir bloqueando el acceso a la cámara y al micrófono</translation>
 <translation id="5177526793333269655">Vista de miniaturas</translation>
 <translation id="5177549709747445269">Estás utilizando datos móviles</translation>
@@ -2740,7 +2700,6 @@
 <translation id="529175790091471945">Formatear este dispositivo</translation>
 <translation id="5293170712604732402">Restaura los valores predeterminados originales de la configuración</translation>
 <translation id="5298219193514155779">Tema creado por</translation>
-<translation id="5298363578196989456">La extensión <ph name="IMPORT_NAME" /> no se puede compartir porque no es un módulo compartido.</translation>
 <translation id="5299109548848736476">No realizar seguimiento</translation>
 <translation id="5299682071747318445">Los datos se han encriptado con tu frase de contraseña de sincronización.</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -2768,7 +2727,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" quiere vincularse</translation>
 <translation id="5332624210073556029">Zona horaria:</translation>
 <translation id="5334142896108694079">Caché de secuencia de comandos</translation>
-<translation id="533433379391851622">Se esperaba la versión "<ph name="EXPECTED_VERSION" />", pero la versión fue "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Ver código fuente</translation>
 <translation id="5335458522276292100">Creando copia de seguridad de <ph name="FILE_COUNT" /> en <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instalada por una aplicación externa</translation>
@@ -2806,7 +2764,6 @@
 <translation id="5390100381392048184">Permitir que los sitios web reproduzcan sonidos</translation>
 <translation id="5390284375844109566">Base de datos indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5396126354477659676">El complemento <ph name="PEPPER_PLUGIN_NAME" /> del dominio <ph name="PEPPER_PLUGIN_DOMAIN" /> quiere acceder a tu ordenador.</translation>
 <translation id="5397794290049113714">Tú</translation>
 <translation id="5398572795982417028">La referencia de página está fuera de los límites admitidos, el límite es <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anuncios bloqueados</translation>
@@ -2868,7 +2825,6 @@
 <translation id="5485754497697573575">Restaurar todas las pestañas</translation>
 <translation id="5486261815000869482">Confirmar contraseña</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> comparte tu pantalla con <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Debe existir un valor de entrada para la clave privada.</translation>
 <translation id="5486561344817861625">Simular reinicio del navegador</translation>
 <translation id="5487521232677179737">Borrar los datos</translation>
 <translation id="5488093641312826914">Se ha copiado <ph name="COPIED_ITEM_NAME" /></translation>
@@ -2951,7 +2907,6 @@
 <translation id="5600706100022181951">Para descargar la actualización se necesitan <ph name="UPDATE_SIZE_MB" /> MB de datos móviles. ¿Quieres continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Otros motores de búsqueda</translation>
-<translation id="5606674617204776232">El complemento <ph name="PEPPER_PLUGIN_NAME" /> de <ph name="PEPPER_PLUGIN_DOMAIN" /> quiere acceder a tu dispositivo.</translation>
 <translation id="5608580678041221894">Toca las siguientes teclas para ajustar o mover la zona para recortar</translation>
 <translation id="5609231933459083978">Parece que la aplicación no es válida.</translation>
 <translation id="5610038042047936818">Cambiar al modo de cámara</translation>
@@ -3194,7 +3149,6 @@
 <translation id="5990386583461751448">Traducida</translation>
 <translation id="5991049340509704927">Ampliar</translation>
 <translation id="5993332328670040093">El uso de datos dejará de medirse.</translation>
-<translation id="6003177993629630467">Es posible que <ph name="PRODUCT_NAME" /> no se pueda mantener actualizado.</translation>
 <translation id="600424552813877586">La aplicación no es válida.</translation>
 <translation id="6005695835120147974">Router multimedia</translation>
 <translation id="6006484371116297560">Clásico</translation>
@@ -3219,6 +3173,7 @@
 <translation id="604001903249547235">Copia de seguridad en la nube</translation>
 <translation id="6040143037577758943">Cerrar</translation>
 <translation id="6040852767465482106">Identidad anónima</translation>
+<translation id="6041155700700864984">Salir del modo de pantalla completa</translation>
 <translation id="604124094241169006">Automático</translation>
 <translation id="6042169520002885235">Seleccionar el modelo y el fabricante de la impresora</translation>
 <translation id="6042308850641462728">Más</translation>
@@ -3235,7 +3190,6 @@
 <translation id="6056710589053485679">Volver a cargar normalmente</translation>
 <translation id="6059652578941944813">Jerarquía de certificados</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ha fallado.</translation>
 <translation id="6064217302520318294">Bloqueo de pantalla</translation>
 <translation id="6065289257230303064">Atributos de directorio de la entidad receptora del certificado</translation>
 <translation id="6068338049763724728">Habilitar registro remoto</translation>
@@ -3311,7 +3265,7 @@
 <translation id="6178664161104547336">Seleccionar un certificado</translation>
 <translation id="6180288788882902869">Google Play en tu <ph name="DEVICE_TYPE" /></translation>
 <translation id="6181431612547969857">Descarga bloqueada</translation>
-<translation id="6181803575025675566">Controla cómo funciona en <ph name="LINK_START" />Configuración<ph name="LINK_END" />.</translation>
+<translation id="6181803575025675566">Puedes gestionar estas opciones en <ph name="LINK_START" />Configuración<ph name="LINK_END" />.</translation>
 <translation id="6185132558746749656">Ubicación del dispositivo</translation>
 <translation id="6185696379715117369">Retroceder página</translation>
 <translation id="6189412234224385711">Abrir con <ph name="EXTENSION_NAME" /></translation>
@@ -3344,7 +3298,6 @@
 <translation id="6237816943013845465">Te permite ajustar la resolución de pantalla</translation>
 <translation id="6238923052227198598">Mantener la última nota en la pantalla de bloqueo</translation>
 <translation id="6239558157302047471">Volver a cargar &amp;marco</translation>
-<translation id="624022915548992686">Salir de la página</translation>
 <translation id="6241530762627360640">Acceder a información sobre dispositivos Bluetooth vinculados a tu sistema y descubrir dispositivos Bluetooth cercanos.</translation>
 <translation id="6243774244933267674">Servidor no disponible</translation>
 <translation id="6246413617632217567">No se ha podido importar el usuario supervisado. Comprueba los permisos y el espacio de tu disco duro y vuelve a intentarlo.</translation>
@@ -3393,13 +3346,11 @@
 <translation id="6312403991423642364">Error desconocido de red</translation>
 <translation id="6313641880021325787">SALIR DE RV</translation>
 <translation id="6314819609899340042">Has habilitado correctamente funciones de depuración en este dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Tus páginas de inicio han cambiado para incluir <ph name="URL" />. Para inhabilitar las extensiones que cambian la página de inicio, haz clic en Restaurar.</translation>
 <translation id="6315493146179903667">Traer todo al frente</translation>
 <translation id="6316806695097060329">Este dispositivo <ph name="SHORT_PRODUCT_NAME" /> se ha diseñado para ofrecerte la mejor experiencia posible con Internet.</translation>
 <translation id="6317318380444133405">Ya no es compatible.</translation>
 <translation id="6317369057005134371">Esperando ventana de la aplicación...</translation>
 <translation id="6318407754858604988">Se ha iniciado la descarga</translation>
-<translation id="6322279351188361895">Se ha producido un error al leer la clave privada.</translation>
 <translation id="6325191661371220117">Inhabilitar inicio automático</translation>
 <translation id="6326175484149238433">Desinstalar de Chrome</translation>
 <translation id="6326855256003666642">Número de actividades en curso</translation>
@@ -3408,7 +3359,6 @@
 <translation id="6333049849394141510">Elegir qué sincronizar</translation>
 <translation id="6333064448949140209">El archivo se enviará a Google para depurarlo</translation>
 <translation id="6333834492048057036">El cursor se sitúa en la barra de direcciones para la búsqueda</translation>
-<translation id="6336907568130557310">Cualquier usuario que pueda ver el archivo exportado podrá ver tus contraseñas. No compartas el archivo con nadie y elimínalo después de importarlo.</translation>
 <translation id="6339668969738228384">Crear un perfil para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">No se ha podido conectar con el servidor. Comprueba la conexión de red y vuelve a intentarlo. Si el problema persiste, reinicia el Chromebook.</translation>
 <translation id="6340071272923955280">Protocolo de impresión en Internet (IPPS)</translation>
@@ -3437,7 +3387,6 @@
 <translation id="6385543213911723544">Los sitios web pueden guardar y consultar datos de cookies</translation>
 <translation id="6388771388956873507">Busca el sensor de huellas digitales del dispositivo y tócalo con el dedo</translation>
 <translation id="6390799748543157332">Las páginas que aparezcan en esta ventana no se mostrarán en el historial del navegador y no dejarán otros rastros como cookies en el ordenador después de cerrar todas las ventanas abiertas de la sesión de invitado. No obstante, se conservará cualquier archivo que descargues.</translation>
-<translation id="6391538222494443604">Debe existir el directorio de entrada.</translation>
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /> e <ph name="BEGIN_LINK1" />información del sistema<ph name="END_LINK1" /></translation>
 <translation id="6397363302884558537">Dejar de hablar</translation>
 <translation id="6397592254427394018">Abrir todos los marcadores en una ventana de &amp;incógnito</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">Administrar bloqueo de JavaScript...</translation>
 <translation id="6459488832681039634">Usar selección para buscar</translation>
 <translation id="6460601847208524483">Buscar siguiente</translation>
-<translation id="6462080265650314920">Las aplicaciones deben incluir el encabezado content-type "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">¿Sigues ahí?</translation>
 <translation id="6463795194797719782">&amp;Edición</translation>
 <translation id="6466988389784393586">&amp;Abrir todos los marcadores</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">¿Quieres que Google traduzca esta página de <ph name="SOURCE_LANGUAGE" /> a <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispositivo señalador conectado</translation>
-<translation id="6677037229676347494">Se esperaba un ID "<ph name="EXPECTED_ID" />", pero el ID fue "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL de la consulta</translation>
 <translation id="6680028776254050810">Cambiar usuario</translation>
 <translation id="6680442031740878064">Disponible: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3667,7 +3614,7 @@
 <translation id="6739923123728562974">Mostrar acceso directo del escritorio</translation>
 <translation id="6740234557573873150"><ph name="FILE_NAME" /> en pausa</translation>
 <translation id="6742339027238151589">Accesible para secuencia de comandos</translation>
-<translation id="6743841972744298686">Configuración de sincronización</translation>
+<translation id="6743841972744298686">Ajustes de sincronización</translation>
 <translation id="6745592621698551453">Actualizar ahora</translation>
 <translation id="6746124502594467657">Bajar</translation>
 <translation id="674632704103926902">Habilitar la función tocar y arrastrar</translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">Para personalizar la información que Google recopila en cualquier momento, accede a <ph name="BEGIN_LINK" />Configuración<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Revocar acceso a archivo</translation>
 <translation id="6904655473976120856">Pulsa el botón de la aplicación para salir.</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> quiere compartir tu pantalla.</translation>
-<translation id="6909461304779452601">No es posible añadir aplicaciones, extensiones ni secuencias de comandos de usuario desde este sitio web.</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="691024665142758461">Descargar varios archivos</translation>
 <translation id="6911324888870229398">Se ha perdido la conexión de red. Comprueba la conexión o prueba con otra red Wi-Fi.</translation>
@@ -4101,7 +4046,6 @@
 <translation id="747114903913869239">Error: no es posible decodificar la extensión.</translation>
 <translation id="7473891865547856676">No, gracias</translation>
 <translation id="747459581954555080">Restaurar todo</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> ha detectado un error.</translation>
 <translation id="7475671414023905704">URL de contraseñas perdidas de Netscape</translation>
 <translation id="7476454130948140105">No tienes suficiente batería para instalar la actualización (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Si has olvidado la frase de contraseña, reinicia la sincronización a través del <ph name="BEGIN_LINK" />panel de control de Google<ph name="END_LINK" />.</translation>
@@ -4138,7 +4082,6 @@
 <translation id="7507930499305566459">Certificado de respuesta de estado</translation>
 <translation id="7508545000531937079">Presentación de diapositivas</translation>
 <translation id="7513029293694390567">Permite iniciar sesión automáticamente en sitios web con credenciales almacenadas. Si esta función está inhabilitada, se te solicitará la confirmación cada vez que intentes iniciar sesión en un sitio web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> quiere identificar tu dispositivo de forma única para reproducir contenido protegido.</translation>
 <translation id="7517569744831774757">Restablece los ajustes a la configuración predeterminada original.</translation>
 <translation id="7517786267097410259">Crear una contraseña:</translation>
 <translation id="7518150891539970662">Registros de WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4168,7 +4111,6 @@
     Google e intentar volver a crear un usuario supervisado.</translation>
 <translation id="756445078718366910">Abrir ventana del navegador</translation>
 <translation id="7564847347806291057">Finalizar proceso</translation>
-<translation id="7565291891798266313">Tu motor de búsqueda ha cambiado a <ph name="URL" />. Para inhabilitar las extensiones que cambian el motor de búsqueda, haz clic en Restaurar.</translation>
 <translation id="7566118625369982896">Gestionar enlaces de aplicaciones de Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Datos de Chrome borrados</translation>
@@ -4177,7 +4119,6 @@
 <translation id="7573172247376861652">Carga de batería</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Intercalar</translation>
-<translation id="7577815336900970562">Usar una red Wi‑Fi o móvil para determinar la ubicación</translation>
 <translation id="7579149537961810247">Silenciar sitios web</translation>
 <translation id="7580671184200851182">Reproducir el mismo audio en todos los altavoces (audio mono)</translation>
 <translation id="7581462281756524039">Una herramienta de limpieza</translation>
@@ -4284,6 +4225,7 @@
 <translation id="7773726648746946405">Almacenamiento de sesión</translation>
 <translation id="7781335840981796660">Se eliminarán todas las cuentas de usuario y todos los datos locales.</translation>
 <translation id="7782102568078991263">No hay más sugerencias de Google.</translation>
+<translation id="778330624322499012">No se ha podido cargar el complemento <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7784067724422331729">La configuración de seguridad de tu ordenador ha bloqueado este archivo.</translation>
 <translation id="7786207843293321886">Salir de la sesión de invitado</translation>
 <translation id="7786889348652477777">&amp;Volver a cargar aplicación</translation>
@@ -4446,7 +4388,6 @@
 <translation id="8001504501378762252">Es posible que un sitio web te acabe de robar la contraseña</translation>
 <translation id="8004582292198964060">Navegador</translation>
 <translation id="8008356846765065031">No hay conexión a Internet. Comprueba la conexión.</translation>
-<translation id="8008765610824028412">No se ha podido cargar <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Enviar automáticamente información del sistema y contenido de las páginas a Google para que pueda detectar aplicaciones y sitios web peligrosos</translation>
 <translation id="8012382203418782830">Esta página se ha traducido.</translation>
 <translation id="8014154204619229810">La herramienta de actualización se está ejecutando en este momento. Actualiza en un minuto para comprobarlo de nuevo.</translation>
@@ -4563,7 +4504,6 @@
 <translation id="8191230140820435481">Administrar tus aplicaciones, extensiones y temas</translation>
 <translation id="8191453843330043793">Solucionador de proxies V8</translation>
 <translation id="8195027750202970175">Tamaño en disco</translation>
-<translation id="8195739004487400241">Tu página principal ha cambiado a <ph name="URL" />. Para inhabilitar las extensiones que cambian la página principal, haz clic en Restaurar.</translation>
 <translation id="8199300056570174101">Propiedades de los dispositivos y las redes (servicio)</translation>
 <translation id="8200772114523450471">Reanudar</translation>
 <translation id="8202160505685531999">Vuelve a introducir tu contraseña para actualizar tu perfil de <ph name="DEVICE_TYPE" />.</translation>
@@ -4607,7 +4547,6 @@
 <translation id="8261378640211443080">Esta extensión no aparece en <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> y se podría haber añadido sin tu conocimiento.</translation>
 <translation id="8261387128019234107">Añadir cuenta de <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Eliminar</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> no está implementado en esta compilación.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha inhabilitado el cursor de tu ratón.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> ha activado el modo de pantalla completa.</translation>
 <translation id="8270242299912238708">Documentos PDF</translation>
@@ -4708,6 +4647,7 @@
 <translation id="8454288007744638700">O selecciona una nueva red:</translation>
 <translation id="845627346958584683">Fecha de vencimiento</translation>
 <translation id="8456681095658380701">El nombre no es válido</translation>
+<translation id="8457451314607652708">Importar marcadores</translation>
 <translation id="8460336040822756677">Si desactivas Smart Lock para <ph name="DEVICE_TYPE" />, no podrás desbloquear los dispositivos Chrome con el teléfono. Deberás introducir la contraseña.</translation>
 <translation id="8461329675984532579">Nombre del proveedor inicial</translation>
 <translation id="84613761564611563">Se ha solicitado la configuración de red de la IU. Por favor, espera...</translation>
@@ -4739,7 +4679,6 @@
 <translation id="850875081535031620">No se ha encontrado software dañino</translation>
 <translation id="8512476990829870887">Finalizar proceso</translation>
 <translation id="851263357009351303">Permitir siempre que <ph name="HOST" /> muestre imágenes</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" está depurando este navegador.</translation>
 <translation id="8521475323816527629">Accede rápidamente a tus aplicaciones</translation>
 <translation id="8523493869875972733">Mantener cambios</translation>
 <translation id="8523849605371521713">Añadida por política</translation>
@@ -4795,7 +4734,6 @@
 <translation id="8620765578342452535">Configurar conexiones de red</translation>
 <translation id="8620790565535071193">No se ha podido realizar la búsqueda</translation>
 <translation id="8622877356447980900">¿Quieres traducir esta página?</translation>
-<translation id="8623004009673949077">La aplicación con el atributo del archivo de manifiesto "kiosk_only" se debe instalar en el modo de kiosco de Chrome OS.</translation>
 <translation id="8624205858755890468">Permite que el Asistente te muestre acciones, aplicaciones e información relacionadas.</translation>
 <translation id="862542460444371744">&amp;Extensiones</translation>
 <translation id="8627151598708688654">Seleccionar fuente</translation>
@@ -4944,7 +4882,6 @@
 <translation id="882204272221080310">Actualizar firmware para mayor seguridad</translation>
 <translation id="8823514049557262177">Copiar te&amp;xto de enlace</translation>
 <translation id="8824701697284169214">Añadir pá&amp;gina...</translation>
-<translation id="8827850355924932817">Usar una red Wi‑Fi para determinar la ubicación</translation>
 <translation id="8828933418460119530">Nombre de DNS</translation>
 <translation id="8830796635868321089">La búsqueda de actualizaciones no ha podido utilizar la configuración de proxy actual. Ajusta la <ph name="PROXY_SETTINGS_LINK_START" />configuración de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> controla la configuración de red.</translation>
@@ -4976,9 +4913,7 @@
 <translation id="8879284080359814990">&amp;Mostrar como pestaña</translation>
 <translation id="8884961208881553398">Añadir nuevos servicios</translation>
 <translation id="8885197664446363138">Smart Lock no está disponible</translation>
-<translation id="8885905466771744233">Ya existe una clave privada para la extensión especificada. Vuelve a utilizar esa clave o elimínala primero.</translation>
 <translation id="8888432776533519951">Color:</translation>
-<translation id="8892992092192084762">Tema instalado: <ph name="THEME_NAME" /></translation>
 <translation id="8893928184421379330">No se ha podido reconocer el dispositivo <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Lista de marcadores</translation>
 <translation id="88986195241502842">Avanzar página</translation>
@@ -4993,7 +4928,6 @@
 <translation id="8908902564709148335">Advertencia: Has habilitado la opción --scripts-require-action en este ordenador, lo que limita las posibilidades de esta extensión. Sin embargo, es posible que en otros dispositivos esta opción no se admita o esté habilitada. En esos dispositivos, la extensión también puede:</translation>
 <translation id="8910146161325739742">Compartir tu pantalla</translation>
 <translation id="8910222113987937043">Los cambios que realices en tus marcadores, tu historial, tus contraseñas y otros ajustes no se sincronizarán con tu cuenta de Google. Sin embargo, tus datos actuales permanecerán almacenados en esa cuenta y se podrán administrar en el <ph name="BEGIN_LINK" />Panel de Control de Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google ha marcado <ph name="EXTENSION_NAME" /> como extensión maliciosa, por lo que se ha evitado su instalación.</translation>
 <translation id="8912793549644936705">Expandir</translation>
 <translation id="8915370057835397490">Cargando sugerencia</translation>
 <translation id="8916476537757519021">Submarco incógnito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5099,7 +5033,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Ratón USB conectado</translation>
 <translation id="9076523132036239772">Tu dirección de correo electrónico y tu contraseña no se han podido verificar. Intenta conectarte primero a una red.</translation>
-<translation id="907841381057066561">Se ha producido un error al crear un archivo .zip temporal durante la compresión.</translation>
 <translation id="9084064520949870008">Abrir como ventana</translation>
 <translation id="9088234649737575428">Una política de empresa ha bloqueado el complemento <ph name="PLUGIN_NAME" /></translation>
 <translation id="9088917181875854783">Confirma que esta clave de acceso aparezca en "<ph name="DEVICE_NAME" />":</translation>
@@ -5190,11 +5123,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Introducir frase de contraseña</translation>
 <translation id="939736085109172342">Nueva carpeta</translation>
-<translation id="941543339607623937">La clave privada no es válida.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> está compartiendo audio y una pestaña de Chrome.</translation>
 <translation id="942954117721265519">No hay imágenes en este directorio.</translation>
 <translation id="945522503751344254">Enviar comentarios</translation>
-<translation id="951981865514037445"><ph name="URL" /> quiere utilizar la ubicación de tu dispositivo.</translation>
 <translation id="952992212772159698">Sin activar</translation>
 <translation id="9580706199804957">No se ha podido conectar con los servicios de Google</translation>
 <translation id="958515377357646513">Tocar para avanzar</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 77188cd..445f0ab 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Ainult šifreerimine</translation>
 <translation id="1039337018183941703">Sobimatu või rikutud fail</translation>
 <translation id="1042174272890264476">Teie arvutil on ka toote <ph name="SHORT_PRODUCT_NAME" /> sisseehitatud RLZ-teek. RLZ määrab korduva ja isikut mittetuvastava ID-tunnuse, et mõõta konkreetse reklaamikampaania tekitatud otsinguid ja toote <ph name="SHORT_PRODUCT_NAME" /> kasutust. Need sildid kuvatakse vahel ka tootes <ph name="PRODUCT_NAME" /> Google'i otsingupäringutes.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> soovib suure andmekoguse alaliselt teie seadmesse talletada.</translation>
 <translation id="1046059554679513793">Vabandust, see nimi on juba kasutusel!</translation>
 <translation id="1047431265488717055">Kopeeri lingi te&amp;kst</translation>
 <translation id="1047726139967079566">Lisa selle lehe järjehoidja...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Kas taastada vaikeotsingumootor?</translation>
 <translation id="1177863135347784049">Kohandatud</translation>
 <translation id="1178581264944972037">Peata</translation>
-<translation id="1179803038870941185"><ph name="URL" /> soovib teie MIDI-seadmeid täielikult juhtida.</translation>
 <translation id="1181037720776840403">Eemalda</translation>
 <translation id="1183237619868651138">Faili <ph name="EXTERNAL_CRX_FILE" /> ei saa kohalikku vahemällu installida.</translation>
 <translation id="1185924365081634987">Võrguvea parandamiseks võite proovida ka <ph name="GUEST_SIGNIN_LINK_START" />külalisena sirvimist<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Juurdepääs arvutisse salvestatud failile}other{Juurdepääs arvutisse salvestatud # failile}}</translation>
 <translation id="1195076408729068893">Smart Locki käivitamiseks sisestage oma parool. Järgmisel korral saate seadme <ph name="DEVICE_TYPE" /> avada oma telefoniga.</translation>
 <translation id="1195447618553298278">Tundmatu viga.</translation>
-<translation id="1196338895211115272">Privaatvõtme eksportimine nurjus.</translation>
 <translation id="119738088725604856">Ekraanipildi aken</translation>
 <translation id="1197979282329025000">Ilmnes viga printeri <ph name="PRINTER_NAME" /> printerivõimaluste toomisel. Printerit ei saanud teenusega <ph name="CLOUD_PRINT_NAME" /> registreerida.</translation>
 <translation id="1198271701881992799">Hakkame pihta</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Teie administraator soovitab seade jaoks kindlat väärtust.</translation>
 <translation id="1225177025209879837">Päringu töötlemine ...</translation>
 <translation id="1225211345201532184">Riiuliüksus 5</translation>
-<translation id="1225404570112441414">Lisage sait riiulisse, et see oleks alati käepärast.</translation>
 <translation id="1227507814927581609">Autentimine ebaõnnestus seadmega „<ph name="DEVICE_NAME" />” ühenduse loomisel.</translation>
 <translation id="1230807973377071856">süsteemimenüü</translation>
 <translation id="1232569758102978740">Pealkirjata</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Järjehoidjate HTML-fail</translation>
 <translation id="1303671224831497365">Bluetooth-seadmeid ei leitud</translation>
 <translation id="1306606229401759371">Muuda seaded</translation>
-<translation id="1307398858972670978">Saidil <ph name="SAVED_PASSWORDS_LINK" /> pääsete oma paroolidele juurde mis tahes seadmes</translation>
 <translation id="1307559529304613120">Vabandust! Süsteemil ei õnnestunud selle seadme pikaajalist API juurdepääsuluba salvestada.</translation>
 <translation id="1313405956111467313">Automaatne puhverserveri konfigureerimine</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Otsi</translation>
 <translation id="1386387014181100145">Terekest!</translation>
 <translation id="138784436342154190">Kas taastada käivitamisel avatav vaikeleht?</translation>
-<translation id="1389297115360905376">Seda on võimalik lisada vaid teenusest <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Ava tavalisel vahelehel</translation>
-<translation id="1391807639023934267">Lehe kiirem laadimine.</translation>
 <translation id="1393283411312835250">Päike ja pilved</translation>
 <translation id="1395262318152388157">Otsinguliugur</translation>
 <translation id="1395730723686586365">Värskendaja käivitati</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Kavatsete üle minna rakenduse <ph name="PRODUCT_NAME" /> ebastabiilsele versioonile, mis sisaldab pooleliolevaid funktsioone. Tekivad krahhid ja ootamatud vead. Olge jätkamisel ettevaatlik.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (laienduse ID „<ph name="EXTENSION_ID" />”) ei ole seda tüüpi seansi puhul lubatud.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Oih! RSA juhusliku privaatvõtme genereerimine ebaõnnestus.</translation>
 <translation id="1420834118113404499">Meedialitsentsid</translation>
 <translation id="1420920093772172268">Sidumise lubamiseks <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">Jah</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opeeri heli aadress</translation>
 <translation id="1465827627707997754">Pitsalõik</translation>
 <translation id="1467432559032391204">Vasakule</translation>
-<translation id="1467999917853307373"><ph name="URL" /> soovib andmed alaliselt teie seadmesse talletada.</translation>
-<translation id="1470719357688513792">Uued küpsiste seaded rakenduvad pärast lehe uuesti laadimist.</translation>
 <translation id="1470811252759861213">Oma laienduste nägemiseks kõigis oma arvutites <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Faili „<ph name="FILENAME" />” ei laaditud üles. Teie Google Drive’is ei ole piisavalt vaba ruumi.</translation>
 <translation id="1475502736924165259">Teil on sertifikaate, mis ei sobi ühtegi muusse kategooriasse</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Suur hiirekursor</translation>
 <translation id="1543284117603151572">Imporditud teenusest Edge</translation>
 <translation id="1545177026077493356">Automaatne kioskirežiim</translation>
+<translation id="1545775234664667895">Teema „<ph name="THEME_NAME" />“ installitud</translation>
 <translation id="1545786162090505744">URL, kus päringu kohal on %s</translation>
 <translation id="1546280085599573572">See laiendus muutis seda, milline leht kuvatakse avalehe nupul klõpsamisel.</translation>
 <translation id="1547572086206517271">Vajalik on värskendamine</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />vaadata üle<ph name="END_BOLD" />, mida jälgitav kasutaja on külastanud ja
     <ph name="BEGIN_BOLD" />hallata<ph name="END_BOLD" /> muid seadeid.</translation>
 <translation id="1648943974594387137">Sisselogimisandmed on aegunud</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> rida ei näidata&gt;</translation>
 <translation id="1650371550981945235">Kuva sisestusvalikud</translation>
 <translation id="1650709179466243265">Lisab www. ja .com-i ning avab aadressi</translation>
 <translation id="1651008383952180276">Peate sisestama sama parooli kaks korda</translation>
-<translation id="1652972346408808053">Parool salvestati. Saidil <ph name="SAVED_PASSWORDS_LINK" /> pääsete oma paroolidele juurde mis tahes seadmes</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Lisage printer teenusesse Google'i pilvprintimine, et saaksite printida kõikjal.}other{Lisage # printerit teenusesse Google'i pilvprintimine, et saaksite printida kõikjal.}}</translation>
 <translation id="1657406563541664238">Aidake muuta rakendus <ph name="PRODUCT_NAME" /> paremaks, saates Google'ile automaatselt kasutusstatistikat ja veaaruandeid</translation>
 <translation id="1658424621194652532">See leht pääseb teie mikrofoni juurde.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Jätka küpsiste blokeerimist</translation>
 <translation id="204622017488417136">Teie seadmes taastatakse varem installitud Chrome'i versioon. Kõik kasutajakontod ja kohalikud andmed kustutatakse. Seda ei saa tagasi võtta.</translation>
 <translation id="2048182445208425546">Juurdepääs võrguliiklusele</translation>
-<translation id="2049137146490122801">Administraator keelas juurdepääsu masinas olevatele kohalikele failidele.</translation>
 <translation id="204914487372604757">Loo otsetee</translation>
 <translation id="2050339315714019657">Vertikaalpaigutus</translation>
 <translation id="2053312383184521053">Jõudeoleku andmed</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Pole veel laaditud</translation>
 <translation id="2107494551712864447">Sõrmejälje lisamine</translation>
-<translation id="2111843886872897694">Rakendusi tuleb esitada hostist, mida need mõjutavad.</translation>
 <translation id="2112877397266219826">Lülitage oma puutetundlik pult seadistamiseks sisse</translation>
 <translation id="21133533946938348">Kinnita vaheleht</translation>
 <translation id="2113479184312716848">Ava &amp;fail ...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Andke meile teada, mis toimub</translation>
 <translation id="2229161054156947610">Jäänud on rohkem kui 1 tund</translation>
 <translation id="222931766245975952">Fail on kärbitud</translation>
-<translation id="222949136907494149"><ph name="URL" /> soovib kasutada teie seadme asukohta.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Kausta „<ph name="FOLDER_NAME" />” ei saa luua. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klõpsake tänase vigurlogo vaatamiseks</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Blokeeri alati juurdepääs mikrofonile</translation>
 <translation id="2367972762794486313">Rakenduste kuvamine</translation>
 <translation id="2371076942591664043">Ava, kui on &amp;valmis</translation>
-<translation id="237336063998926520">Asukoha määramiseks IP-aadressi kasutamine</translation>
 <translation id="2377319039870049694">Lülita loendivaatele</translation>
 <translation id="2377667304966270281">Tõsised vead</translation>
 <translation id="2378075407703503998">Valitud on <ph name="SELCTED_FILE_COUNT" /> faili</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> soovib kopeerida faile seadmest <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Sertifitseerimisorgani võtme ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> on lisatud</translation>
-<translation id="246335896104539386">Järjehoidjate importimine</translation>
 <translation id="2464089476039395325">HTTP-puhverserver</translation>
 <translation id="2468902267404883140">Teie telefoniga ei saa ühendust luua. Veenduge, et kasutaksite ühilduvat Android-telefoni, mis on sisse lülitatud ja käepärast. &lt;a&gt;Lisateave&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Toetamata laiendused on keelatud</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Desinstalli</translation>
 <translation id="2487067538648443797">Uue järjehoidja lisamine</translation>
 <translation id="248861575772995840">Teie telefoni ei õnnestu leida. Veenduge, et seadme <ph name="DEVICE_TYPE" /> Bluetooth oleks sisse lülitatud. &lt;a&gt;Lisateave&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Pistikprogramm (<ph name="PLUGIN_NAME" />) ei reageeri.</translation>
 <translation id="2489428929217601177">eelmisest päevast</translation>
 <translation id="2489918096470125693">Lisa &amp;kaust ...</translation>
 <translation id="249113932447298600">Kahjuks praegu seadet <ph name="DEVICE_LABEL" /> ei toetata.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Õnnitleme! Teie võrgu „<ph name="NAME" />” andmeteenus on aktiveeritud ja kasutamiseks valmis.</translation>
 <translation id="2566124945717127842">Pärast Powerwashiga lähtestamist on teie toote <ph name="IDS_SHORT_PRODUCT_NAME" /> seade just nagu uus.</translation>
 <translation id="2568774940984945469">Teaberiba ümbris</translation>
-<translation id="2570000010887652771">Andmemahtu säästeti.</translation>
 <translation id="257088987046510401">Teemad</translation>
 <translation id="2572032849266859634">On antud kirjutuskaitstud juurdepääs seadmele <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Valige pilt ja nimi</translation>
 <translation id="2575247648642144396">Ikoon on nähtav, kui laiendus saab praegusel lehel toimida. Laienduse kasutamiseks klõpsake ikoonil või vajutage klahvikombinatsiooni <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Teie telefoni ei õnnestu leida. Veenduge, et seade <ph name="DEVICE_TYPE" /> oleks WiFi- või mobiilsidevõrguga ühendatud. &lt;a&gt;Lisateave&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Selle nimega CRX-fail on juba olemas.</translation>
 <translation id="257779572837908839">Seadista seadmena Chromebox koosolekutele</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Draivi ei saa eemaldada<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Sertifitseerimisorgani sertifikaadi kustutamisel ei usalda teie brauser enam selle sertifitseerimisorgani väljastatavaid sertifikaate.</translation>
 <translation id="2653659639078652383">Esita</translation>
 <translation id="265390580714150011">Välja väärtus</translation>
-<translation id="2654286334048437383">Järjehoidjate eksportimine</translation>
 <translation id="2655386581175833247">Kasutaja sertifikaat:</translation>
 <translation id="2660779039299703961">Sündmus</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Meediagalerii lisamine kataloogiga</translation>
 <translation id="2908789530129661844">Suumi ekraanil välja</translation>
 <translation id="2910318910161511225">Looge võrguühendus ja proovige uuesti</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> soovib kasutada teie mikrofoni.</translation>
 <translation id="2913331724188855103">Lubab saitidel salvestada küpsiseid ja lugeda küpsiste andmeid (soovitatav)</translation>
 <translation id="2916073183900451334">Veebilehel tabeldusklahvi vajutades tõstetakse esile lingid ja ka vormiväljad</translation>
 <translation id="2916745397441987255">Otsige laiendusi</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Kuulamine …</translation>
 <translation id="3141917231319778873">Antud taotlust ei toetata seadmes „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3144126448740580210">VALMIS</translation>
-<translation id="3144135466825225871">crx-faili asendamine ebaõnnestus. Kontrollige, kas fail on kasutusel.</translation>
 <translation id="3144647712221361880">Ava link kasutajana</translation>
 <translation id="3149510190863420837">Chrome'i rakendused</translation>
 <translation id="3150927491400159470">Põhjalik uuestilaadimine</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Käita alati kõikidel saitidel</translation>
 <translation id="3312424061798279731">Lubatud keeled</translation>
 <translation id="3312903956926554846">Installimine töölauale</translation>
-<translation id="3313473140726597081">Käivitamisel avatavaks leheks määrati <ph name="URL" />. Kui soovite keelata laiendused, mis muudavad käivitamisel avatavat lehte, klõpsake nupul Taasta.</translation>
 <translation id="3313590242757056087">Selleks et määrata, milliseid veebisaite valvatav kasutaja näeb, saate seadistada
     piirangud ja seaded lehel <ph name="MANAGEMENT_URL" />.
     Kui te ei soovi vaikeseadeid muuta, võib <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Rakenduse teave</translation>
 <translation id="3335947283844343239">Ava uuesti suletud vaheleht</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> blokeeriti, kuna see on aegunud.</translation>
 <translation id="3340978935015468852">seaded</translation>
 <translation id="3341703758641437857">Luba juurdepääs failide URL-idele</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />” soovib selle laienduse eemaldada.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Järjehoidja on lisatud</translation>
 <translation id="3389312115541230716">Paremklõpsake tegumiribal ikoonil <ph name="SMALL_PRODUCT_LOGO" /></translation>
 <translation id="3391716558283801616">Vahekaart 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> soovib kasutada teie kaamerat ja mikrofoni.</translation>
 <translation id="3396331542604645348">Valitud printer pole saadaval või pole õigesti installitud. Kontrollige printerit või valige teine ​​printer.</translation>
 <translation id="3399432415385675819">Märguanded keelatakse</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni</translation>
 <translation id="3551320343578183772">Sule vaheleht</translation>
 <translation id="3552780134252864554">Kustutatakse väljumisel</translation>
-<translation id="355298399003313926"><ph name="URL" /> soovib vastata juurdepääsetavuse sündmustele.</translation>
 <translation id="3555812735919707620">Eemalda laiendus</translation>
 <translation id="3556000484321257665">Otsingumootoriks määrati <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Privaatvõtme sisendi väärtus peab olema kehtiv tee.</translation>
 <translation id="3563432852173030730">Kioski rakendust ei saanud alla laadida.</translation>
 <translation id="3564334271939054422">Teie kasutatav WiFi-võrk (<ph name="NETWORK_ID" />) võib nõuda sisselogimislehe külastamist.</translation>
 <translation id="3564708465992574908">Suumitasemed</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Sertifikaadi nimepiirangud</translation>
 <translation id="3596235046596950091">Luba pilveteenused</translation>
 <translation id="3599863153486145794">Kustutab ajaloo kõigist sisselogitud seadmetest. Aadressil <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> võib teie Google'i kontol olla muus vormis sirvimisajalugu.</translation>
-<translation id="3600456501114769456">Teie administraator on keelanud seadmes juurdepääsu kohalikele failidele.</translation>
 <translation id="3600792891314830896">Heli esitavad saidid vaigistatakse</translation>
 <translation id="3603177256297531067">Seda lehte ei õnnestunud tõlkida</translation>
 <translation id="3603533104205588786">Lehe järjehoidjatesse lisamiseks klõpsake tärnil</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Ekraanipildid on keelatud</translation>
 <translation id="3625870480639975468">Lähtestab suumimise</translation>
 <translation id="3626281679859535460">Eredus</translation>
-<translation id="3627052133907344175">Laiendus nõuab üksust „<ph name="IMPORT_NAME" />” minimaalse versiooniga „<ph name="IMPORT_VERSION" />”, kuid installitud on ainult versioon „<ph name="INSTALLED_VERSION" />”.</translation>
 <translation id="3627320433825461852">Jäänud on vähem kui 1 minut</translation>
 <translation id="3627588569887975815">Ava link inko&amp;gnito aknas</translation>
 <translation id="3627671146180677314">Netscape'i sertifikaadi uuendusaeg</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Keeleseaded</translation>
 <translation id="3668823961463113931">Töötlejad</translation>
 <translation id="3670229581627177274">Lülita Bluetooth sisse</translation>
-<translation id="3672159315667503033"><ph name="URL" /> tahab suured andmed alaliselt teie kohalikku arvutisse talletada.</translation>
 <translation id="3672681487849735243">Tuvastati tehaseviga</translation>
 <translation id="367645871420407123">jätke tühjaks, kui soovite määrata testkujutise vaikeväärtusele juurparooli</translation>
 <translation id="3678156199662914018">Laiend: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Olete võrguühenduseta</translation>
 <translation id="3788401245189148511">See võiks:</translation>
 <translation id="3789841737615482174">Installi</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> töötab ainult töölaual.</translation>
 <translation id="379082410132524484">Teie kaart on aegunud</translation>
 <translation id="3792890930871100565">Eemalda printereid</translation>
 <translation id="379422718204375917">Kasutage oma kontole sisselogimiseks funktsiooni Smart Lock</translation>
-<translation id="3794595850995182458">Välju lehelt</translation>
 <translation id="3796648294839530037">Lemmikvõrgud:</translation>
 <translation id="3797900183766075808">&amp;Otsi otsingumootoriga <ph name="SEARCH_ENGINE" /> terminit „<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Võimaldab lubada/keelata funktsiooni Puuduta klõpsamiseks</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Luba <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Sisestati vale salvestamistüüp.</translation>
 <translation id="3983586614702900908">tundmatu müüja seadmed</translation>
-<translation id="3984413272403535372">Laienduse allkirjastamisel ilmnes viga.</translation>
 <translation id="3987938432087324095">Kahjuks ei kuulnud seda.</translation>
 <translation id="3988996860813292272">Ajavööndi valimine</translation>
 <translation id="3989635538409502728">Logi välja</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Installige rakendused ja mängud Google Playst oma Chromebooki. &lt;a target="_blank" href="<ph name="URL" />"&gt;Lisateave&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Anna nõusolek rühma jaoks</translation>
 <translation id="4090103403438682346">Luba kinnitatud juurdepääs</translation>
-<translation id="4090404313667273475">Lehe elementide kuvamiseks on vaja pistikprogrammi <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Seda laiendust hallatakse ega saa eemaldada.)</translation>
 <translation id="4091434297613116013">paberilehed</translation>
 <translation id="4093955363990068916">Kohalik fail:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> saab nüüd teie paroole sünkroonida.</translation>
 <translation id="4715553623069266137">väga lühike (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash suurendab turvalisust</translation>
-<translation id="471800408830181311">Privaatvõtit ei õnnestunud väljastada.</translation>
 <translation id="4720113199587244118">Lisa seadmed</translation>
 <translation id="4720185134442950733">Mobiilse andmeside võrk</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> jagab teie ekraani.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Tugev</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> tahab suhelda laiendusega „<ph name="EXTENSION_NAME" />”</translation>
 <translation id="4918086044614829423">Nõustu</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> soovib kasutada teie kaamerat.</translation>
 <translation id="4920887663447894854">Sellel lehel on järgmiseid saite blokeeritud nii, et need ei saa teie asukohta jälgida:</translation>
 <translation id="492299503953721473">Eemalda Androidi rakendused</translation>
 <translation id="4923279099980110923">Jah, soovin aidata</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Laiendus sisaldab pahavara.</translation>
 <translation id="498294082491145744">Muutke seadeid, mis juhivad veebisaitide juurdepääsu funktsioonidele (nt küpsistele, JavaScriptile, pistikprogrammidele, geograafilisele asukohale, mikrofonile, kaamerale jne).</translation>
 <translation id="4988526792673242964">Leheküljed</translation>
-<translation id="4988792151665380515">Avalikku võtit ei õnnestunud eksportida.</translation>
 <translation id="49896407730300355">Pööra &amp;vastupäeva</translation>
 <translation id="4989966318180235467">Uuri &amp;taustalehte</translation>
 <translation id="4990343175649730969">Laadi alla Chrome Cleanup Tool</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Ära näita seda uuesti</translation>
 <translation id="5027550639139316293">Meili sertifikaat</translation>
 <translation id="5027562294707732951">Lisa laiendus</translation>
-<translation id="5028012205542821824">Installimine ei ole lubatud.</translation>
 <translation id="5029568752722684782">Kustuta koopia</translation>
 <translation id="5030338702439866405">Väljaandja</translation>
 <translation id="5036662165765606524">Ära luba ühelgi saidil automaatselt mitut faili alla laadida</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Tekkis viga.</translation>
 <translation id="5094721898978802975">Side koostööd tegevate omarakendustega</translation>
 <translation id="5097002363526479830">Võrguga „<ph name="NAME" />” ühenduse loomine ebaõnnestus: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Ei leia pakitava kataloogi absoluutteed.</translation>
 <translation id="5099354524039520280">üles</translation>
 <translation id="5100114659116077956">Uusimate funktsioonide teieni toomiseks vajab Chromebox värskendamist.</translation>
 <translation id="5101042277149003567">Ava kõik järjehoidjad</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Kuva kaustas</translation>
 <translation id="5171045022955879922">Otsige või sisestage URL</translation>
 <translation id="5171343362375269016">Saalitud mälu</translation>
-<translation id="5175870427301879686"><ph name="URL" /> tahab andmed püsivalt teie kohalikku arvutisse talletada.</translation>
 <translation id="5177479852722101802">Blokeeri jätkuvalt juurdepääs kaamerale ja mikrofonile</translation>
 <translation id="5177526793333269655">Pisipildi kuva</translation>
 <translation id="5177549709747445269">Kasutate mobiilset andmesidet</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Vorminda see seade</translation>
 <translation id="5293170712604732402">Seadete taastamine algsetele vaikevalikutele</translation>
 <translation id="5298219193514155779">Teema on loonud</translation>
-<translation id="5298363578196989456">Laiendust „<ph name="IMPORT_NAME" />” ei saa importida, kuna see pole jagatud moodul.</translation>
 <translation id="5299109548848736476">Ära jälgi</translation>
 <translation id="5299682071747318445">Kõik andmed krüpteeritakse teie sünkroonimise parooliga</translation>
 <translation id="5300589172476337783">Kuva</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">Laiendus „<ph name="CHROME_EXTENSION_NAME" />” soovib siduda</translation>
 <translation id="5332624210073556029">Ajavöönd:</translation>
 <translation id="5334142896108694079">Skripti vahemälu</translation>
-<translation id="533433379391851622">Eeldatav versioon oli „<ph name="EXPECTED_VERSION" />”, kuid versioon oli „<ph name="NEW_ID" />”.</translation>
 <translation id="5334844597069022743">Allika kuvamine</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google Drive'i<ph name="END_LINK" /> varundamine: <ph name="FILE_COUNT" /></translation>
 <translation id="5337771866151525739">Installis kolmas osapool.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Luba saitidel heli esitada</translation>
 <translation id="5390284375844109566">Indekseeritud andmebaas</translation>
 <translation id="5390743329570580756">Saada:</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> domeenil <ph name="PEPPER_PLUGIN_DOMAIN" /> soovib juurdepääsu teie arvutile.</translation>
 <translation id="5397794290049113714">Teie</translation>
 <translation id="5398572795982417028">Piiridest väljas olev leht, limiit on <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklaamid on blokeeritud</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Taasta kõik vahekaardid</translation>
 <translation id="5486261815000869482">Kinnitage parool</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> jagab teie ekraanikuva vahelehega <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Privaatvõtme sisendi väärtus peab olema olemas.</translation>
 <translation id="5486561344817861625">Simuleeri brauseri taaskäivitamist</translation>
 <translation id="5487521232677179737">Kustuta andmed</translation>
 <translation id="5488093641312826914">„<ph name="COPIED_ITEM_NAME" />” on kopeeritud</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Värskenduse allalaadimiseks kulub <ph name="UPDATE_SIZE_MB" /> MB mobiilset andmesidet. Kas soovite jätkata?</translation>
 <translation id="5601503069213153581">PIN-kood</translation>
 <translation id="5605623530403479164">Muud otsingumootorid</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> domeenil <ph name="PEPPER_PLUGIN_DOMAIN" /> soovib juurdepääsu teie seadmele.</translation>
 <translation id="5608580678041221894">Kärpimisala kohandamiseks või teisaldamiseks puudutage järgmiseid klahve</translation>
 <translation id="5609231933459083978">Rakendus näib olevat sobimatu.</translation>
 <translation id="5610038042047936818">Lülita kaamerarežiimile</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Tõlgitud</translation>
 <translation id="5991049340509704927">Suurenda</translation>
 <translation id="5993332328670040093">Teie andmemahu kasutust ei mõõdeta enam.</translation>
-<translation id="6003177993629630467">Võimalik, et <ph name="PRODUCT_NAME" />'il ei õnnestu ennast värskendada.</translation>
 <translation id="600424552813877586">Kehtetu rakendus.</translation>
 <translation id="6005695835120147974">Meedia marsruuter</translation>
 <translation id="6006484371116297560">Klassikaline</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Pilvepõhine varundus</translation>
 <translation id="6040143037577758943">Sulge</translation>
 <translation id="6040852767465482106">Anonüümne identiteet</translation>
+<translation id="6041155700700864984">Välju täisekraanilt</translation>
 <translation id="604124094241169006">Automaatne</translation>
 <translation id="6042169520002885235">Valige printeri tootja ja mudel</translation>
 <translation id="6042308850641462728">Rohkem</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Tavaline uuestilaadimine</translation>
 <translation id="6059652578941944813">Sertifikaatide hierarhia</translation>
 <translation id="6059925163896151826">USB-seadmed</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> jooksis kokku.</translation>
 <translation id="6064217302520318294">Ekraanilukk</translation>
 <translation id="6065289257230303064">Sertifikaadi subjekti kataloogi atribuudid</translation>
 <translation id="6068338049763724728">Luba kaugregistreerimine</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Võimaldab kohandada ekraani eraldusvõimet</translation>
 <translation id="6238923052227198598">Säilita viimane märge lukustuskuval</translation>
 <translation id="6239558157302047471">Laadi &amp;raam uuesti</translation>
-<translation id="624022915548992686">Välju lehelt</translation>
 <translation id="6241530762627360640">Juurdepääs teie süsteemiga seotud Bluetoothi seadmete teabele ja läheduses olevate Bluetoothi seadmete tuvastamine.</translation>
 <translation id="6243774244933267674">Server ei ole saadaval</translation>
 <translation id="6246413617632217567">Jälgitavat kasutajat ei saanud importida. Kontrollige kõvakettaruumi ja lube ning proovige uuesti.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Tundmatu võrguviga</translation>
 <translation id="6313641880021325787">VÄLJU VR-REŽIIMIST</translation>
 <translation id="6314819609899340042">Olete lubanud toote <ph name="IDS_SHORT_PRODUCT_NAME" /> seadmes silumisfunktsioonid.</translation>
-<translation id="6315343732431721770">Käivitamisel avatavaid lehti muudeti aadressi <ph name="URL" /> lisamiseks. Kui soovite keelata laiendused, mis muudavad käivitamisel avatavat lehte, klõpsake nupul Taasta.</translation>
 <translation id="6315493146179903667">Too kõik ette</translation>
 <translation id="6316806695097060329">See <ph name="SHORT_PRODUCT_NAME" />'i seade loodi teile parima veebikogemuse pakkumiseks.</translation>
 <translation id="6317318380444133405">Enam ei toetata.</translation>
 <translation id="6317369057005134371">Rakenduse akna ootamine ...</translation>
 <translation id="6318407754858604988">Allalaadimist alustati</translation>
-<translation id="6322279351188361895">Privaatvõtme lugemine ei õnnestunud.</translation>
 <translation id="6325191661371220117">Keela automaatne käivitamine</translation>
 <translation id="6326175484149238433">Eemalda Chrome'ist</translation>
 <translation id="6326855256003666642">Säilitamise loend</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Valige sünkroonitavad andmed</translation>
 <translation id="6333064448949140209">Fail saadetakse silumiseks Google'ile</translation>
 <translation id="6333834492048057036">Aadressiriba esiletõstmine otsinguks</translation>
-<translation id="6336907568130557310">Teie paroolid on nähtavad kõigile, kes eksporditud faili näevad. Ärge jagage seda faili kellegagi ja kustutage see pärast importimist.</translation>
 <translation id="6339668969738228384">Loo e-posti aadressile <ph name="USER_EMAIL_ADDRESS" /> uus profiil</translation>
 <translation id="6340017061976355871">Serveriga ei õnnestunud ühendust luua. Kontrollige võrguühendust ja proovige uuesti. Probleemi jätkumisel taaskäivitage oma Chromebook.</translation>
 <translation id="6340071272923955280">Interneti prindiprotokoll (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Saidid saavad salvestada ja lugeda küpsisefaili andmeid</translation>
 <translation id="6388771388956873507">Leidke seadmel olev sõrmejäljeandur ja puudutage seda sõrmega</translation>
 <translation id="6390799748543157332">Lehti, mida vaatate selles aknas, ei lisata teie brauseri ajalukku ja pärast kõikide avatud külalise režiimi akende sulgemist ei jää neist arvutisse ka muid jälgi (nt küpsiseid). Kõik allalaaditud failid siiski säilitatakse.</translation>
-<translation id="6391538222494443604">Olemas peab olema sisendkataloog.</translation>
 <translation id="6395423953133416962">Saada <ph name="BEGIN_LINK1" />süsteemiteave<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />mõõdikud<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Lõpeta rääkimine</translation>
 <translation id="6397592254427394018">Ava kõik järjehoidjad &amp;inkognito aknas</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">JavaScripti blokeerimise haldamine...</translation>
 <translation id="6459488832681039634">Kasuta otsimiseks valikut</translation>
 <translation id="6460601847208524483">Otsi järgmine</translation>
-<translation id="6462080265650314920">Rakendusi tuleb esitada sisu tüübiga „<ph name="CONTENT_TYPE" />”.</translation>
 <translation id="6462082050341971451">Kas olete veel seal?</translation>
 <translation id="6463795194797719782">&amp;Muuda</translation>
 <translation id="6466988389784393586">&amp;Ava kõik järjehoidjad</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Kas soovite lasta Google'il selle lehe tõlkida <ph name="SOURCE_LANGUAGE" /> keelest <ph name="TARGET_LANGUAGE" /> keelde?</translation>
 <translation id="6675665718701918026">Ühendati kursoriseade</translation>
-<translation id="6677037229676347494">Eeldatav ID oli „<ph name="EXPECTED_ID" />”, kuid ID oli „<ph name="NEW_ID" />”.</translation>
 <translation id="6678717876183468697">Päringu URL</translation>
 <translation id="6680028776254050810">Kasutaja vahetamine</translation>
 <translation id="6680442031740878064">Saadaval: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Menüüs <ph name="BEGIN_LINK" />Seaded<ph name="END_LINK" /> saab alati kohandada, millist teavet Google kogub.</translation>
 <translation id="6904344821472985372">Eemalda juurdepääs failile</translation>
 <translation id="6904655473976120856">Väljumiseks vajutage rakenduse nuppu</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> soovib teie ekraani jagada.</translation>
-<translation id="6909461304779452601">Rakendusi, laiendusi ja kasutaja skripte ei saa sellel veebisaidil lisada.</translation>
 <translation id="6910211073230771657">Kustutatud</translation>
 <translation id="691024665142758461">Mitme faili allalaadimine</translation>
 <translation id="6911324888870229398">Võrguühendus katkes. Kontrollige ühendust või proovige mõnda teist WiFi-võrku.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Viga: laiendust ei õnnestu dekodeerida</translation>
 <translation id="7473891865547856676">Tänan, ei</translation>
 <translation id="747459581954555080">Taasta kõik</translation>
-<translation id="7475034671245341386">Pistikprogrammis <ph name="PLUGIN_NAME" /> ilmnes viga.</translation>
 <translation id="7475671414023905704">Netscape'i kaotatud parooli URL</translation>
 <translation id="7476454130948140105">Aku on värskendamiseks liiga tühi (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Kui olete parooli unustanud, peatage ja lähtestage sünkroonimine <ph name="BEGIN_LINK" />Google Dashboardi<ph name="END_LINK" /> kaudu.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Olekuvastaja sertifikaat</translation>
 <translation id="7508545000531937079">Slaidiseanss</translation>
 <translation id="7513029293694390567">Teid logitakse salvestatud mandaadiga veebisaitidele automaatselt sisse. Kui see on keelatud, palutakse teilt iga kord enne veebisaidile sisselogimist kinnitust.</translation>
-<translation id="7515670329462166359">URL <ph name="URL" /> soovib kaitstud sisu esitamiseks teie seadme kordumatult tuvastada.</translation>
 <translation id="7517569744831774757">Seadete taastamine algsetele vaikevalikutele.</translation>
 <translation id="7517786267097410259">Parooli loomine –</translation>
 <translation id="7518150891539970662">WebRTC logid (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     proovida jälgitavat kasutajat uuesti luua.</translation>
 <translation id="756445078718366910">Ava brauseri aken</translation>
 <translation id="7564847347806291057">Lõpeta toiming</translation>
-<translation id="7565291891798266313">Otsingumootoriks määrati <ph name="URL" />. Kui soovite keelata laiendused, mis muudavad otsingumootorit, klõpsake nupul Taasta.</translation>
 <translation id="7566118625369982896">Play rakenduse linkide haldamine</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome'i andmed kustutati</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Aku laadimine</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Eksemplarhaaval</translation>
-<translation id="7577815336900970562">Asukoha määramiseks kasutatakse WiFi- või mobiilsidevõrku</translation>
 <translation id="7579149537961810247">Vaigista saidid</translation>
 <translation id="7580671184200851182">Esita sama heli kõigist kõlaritest (monoheli)</translation>
 <translation id="7581462281756524039">Puhastustööriist</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Seansi talletusruum</translation>
 <translation id="7781335840981796660">Kõik kasutajakontod ja kohalikud andmed eemaldatakse.</translation>
 <translation id="7782102568078991263">Google'ilt ei ole rohkem soovitusi</translation>
+<translation id="778330624322499012">Pistikprogrammi <ph name="PLUGIN_NAME" /> laadimine ebaõnnestus</translation>
 <translation id="7784067724422331729">Teie arvuti turvaseaded blokeerisid selle faili.</translation>
 <translation id="7786207843293321886">Välju külastajaseansist</translation>
 <translation id="7786889348652477777">&amp;Laadi rakendus uuesti</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Sait võis varastada teie parooli</translation>
 <translation id="8004582292198964060">Brauser</translation>
 <translation id="8008356846765065031">Interneti-ühendus puudub. Kontrollige Interneti-ühendust.</translation>
-<translation id="8008765610824028412">Pistikprogrammi <ph name="PLUGIN_NAME" /> laadimine ebaõnnestus.</translation>
 <translation id="8008818777654712271">Saada automaatselt teatud süsteemiteavet ja lehesisu Google'ile, et aidata tuvastada ohtlikke rakendusi ning saite</translation>
 <translation id="8012382203418782830">See leht on tõlgitud.</translation>
 <translation id="8014154204619229810">Värskendaja töötab praegu. Värskendage uuesti kontrollimiseks minuti pärast.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Teie rakenduste, laienduste ja teemade haldamine</translation>
 <translation id="8191453843330043793">V8 puhverserveri lahendaja</translation>
 <translation id="8195027750202970175">Maht kettal</translation>
-<translation id="8195739004487400241">Avaleheks määrati <ph name="URL" />. Kui soovite keelata laiendused, mis muudavad avalehte, klõpsake nuul Taasta.</translation>
 <translation id="8199300056570174101">Võrk (teenus) ja seadme atribuudid</translation>
 <translation id="8200772114523450471">Taasta</translation>
 <translation id="8202160505685531999">Sisestage oma seadme <ph name="DEVICE_TYPE" /> profiili värskendamiseks parool uuesti.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Seda laiendust ei leidu veebipoes <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ja te ei pruugi selle lisamisest teadlik olla.</translation>
 <translation id="8261387128019234107">Lisa konto profiilile <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Kustuta</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ei ole sellesse järku juurutatud.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> keelas teie hiirekursori.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />” aktiveeris täisekraani režiimi.</translation>
 <translation id="8270242299912238708">PDF-dokumendid</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Või valige uus võrk:</translation>
 <translation id="845627346958584683">Lõppemisaeg</translation>
 <translation id="8456681095658380701">Kehtetu nimi</translation>
+<translation id="8457451314607652708">Impordi järjehoidjad</translation>
 <translation id="8460336040822756677">Kui lülitate teenuse Smart Lock seadmes <ph name="DEVICE_TYPE" /> välja, siis ei saa te Chrome'i seadmeid telefoniga avada. Sel juhul peate sisestama parooli.</translation>
 <translation id="8461329675984532579">Koduteenuse pakkuja nimi</translation>
 <translation id="84613761564611563">Taotleti juurdepääsu võrguseadistuse kasutajaliidesele, oodake …</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Ohtlikku tarkvara ei leitud</translation>
 <translation id="8512476990829870887">Lõpeta protsess</translation>
 <translation id="851263357009351303">Luba alati saidil <ph name="HOST" /> pilte kuvada</translation>
-<translation id="8513191386157529469">„<ph name="CLIENT_NAME" />” silub seda brauserit.</translation>
 <translation id="8521475323816527629">Avage rakendused kiiresti</translation>
 <translation id="8523493869875972733">Säilita muudatused</translation>
 <translation id="8523849605371521713">Reegliga lisatud</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Võrguühenduste seadistamine</translation>
 <translation id="8620790565535071193">Skannimine ebaõnnestus</translation>
 <translation id="8622877356447980900">Kas soovite lehe tõlkida?</translation>
-<translation id="8623004009673949077">Rakendus manifesti atribuudiga „kiosk_only” tuleb installida Chrome OS-i kioskirežiimis.</translation>
 <translation id="8624205858755890468">Lubab assistendil esitada teile seotud teavet, rakendusi ja toiminguid.</translation>
 <translation id="862542460444371744">&amp;Laiendused</translation>
 <translation id="8627151598708688654">Allika valimine</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Värskenda turvalisuse suurendamiseks püsivara.</translation>
 <translation id="8823514049557262177">Kopeeri lingi te&amp;kst</translation>
 <translation id="8824701697284169214">Lisa &amp;leht ...</translation>
-<translation id="8827850355924932817">Asukoha määramiseks kasutatakse WiFi-võrku</translation>
 <translation id="8828933418460119530">DNS-nimi</translation>
 <translation id="8830796635868321089">Värskenduste kontrollimine puhverserveri praeguste seadetega ebaõnnestus. Korrigeerige <ph name="PROXY_SETTINGS_LINK_START" />puhverserveri seadeid<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Võrguseadistust juhib <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Kuva vahelehena</translation>
 <translation id="8884961208881553398">Lisa uued teenused</translation>
 <translation id="8885197664446363138">Smart Lock pole saadaval</translation>
-<translation id="8885905466771744233">Määratud laiendusel on juba privaatvõti. Kasutage uuesti seda võtit või kustutage see kõigepealt.</translation>
 <translation id="8888432776533519951">Värv:</translation>
-<translation id="8892992092192084762">Installitud teema „<ph name="THEME_NAME" />”.</translation>
 <translation id="8893928184421379330">Kahjuks ei õnnestu seadet <ph name="DEVICE_LABEL" /> ära tunda.</translation>
 <translation id="8895454554629927345">Järjehoidjate loend</translation>
 <translation id="88986195241502842">Lehe lõppu</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Hoiatus. Olete lubanud selles arvutis toimingut nõudvate skriptide lipu, mis piirab selle laienduse võimalusi. Siiski ei pruugi muud seadmed seda lippu toetada või lubada. Neis seadmetes saab see laiendus teha ka järgmist.</translation>
 <translation id="8910146161325739742">Oma ekraani jagamine</translation>
 <translation id="8910222113987937043">Teie järjehoidjate, ajaloo, paroolide ja muude seadete muudatusi ei sünkroonita enam teie Google'i kontoga. Teie olemasolevad andmed jäävad aga teie Google'i kontole alles ja neid saab hallata <ph name="BEGIN_LINK" />Google'i juhtpaneelil<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google märgistas laienduse „<ph name="EXTENSION_NAME" />” pahatahtlikuks ja installimine blokeeriti.</translation>
 <translation id="8912793549644936705">Venitatud</translation>
 <translation id="8915370057835397490">Soovituste laadimine</translation>
 <translation id="8916476537757519021">Inkognito alamraam: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-hiir on ühendatud</translation>
 <translation id="9076523132036239772">Kahjuks ei õnnestunud teie e-posti aadressi või parooli kinnitada. Proovige kõigepealt luua ühendus võrguga.</translation>
-<translation id="907841381057066561">Pakkimisel ei õnnestunud luua ajutist ZIP-faili.</translation>
 <translation id="9084064520949870008">Ava aknana</translation>
 <translation id="9088234649737575428">Pistikprogramm <ph name="PLUGIN_NAME" /> on ettevõtte reegliga keelatud</translation>
 <translation id="9088917181875854783">Veenduge, et see pääsukood on seadmes „<ph name="DEVICE_NAME" />” kuvatud:</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Sisesta parool</translation>
 <translation id="939736085109172342">Uus kaust</translation>
-<translation id="941543339607623937">Vale privaatvõti.</translation>
 <translation id="942532530371314860">Rakendus <ph name="APP_NAME" /> jagab Chrome'i vahelehte ja heli.</translation>
 <translation id="942954117721265519">Selles kataloogis pilte pole.</translation>
 <translation id="945522503751344254">Saada tagasisidet</translation>
-<translation id="951981865514037445"><ph name="URL" /> soovib kasutada teie seadme asukohta.</translation>
 <translation id="952992212772159698">Aktiveerimata</translation>
 <translation id="9580706199804957">Google'i teenustega ei õnnestunud ühendust luua</translation>
 <translation id="958515377357646513">Puudutage edasiminemiseks.</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index c2c3e7f..000f6f2 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">فقط به رمز درآورد</translation>
 <translation id="1039337018183941703">فایل نامعتبر یا خراب است</translation>
 <translation id="1042174272890264476">‏‫همچنین کتابخانه RLZ‏ <ph name="SHORT_PRODUCT_NAME" /> از قبل بر روی رایانه شما نصب شده است. RLZ یک برچسب غیرمنحصر بفرد و غیرقابل‌شناسایی برای سنجش جستجوها و استفاده از <ph name="SHORT_PRODUCT_NAME" /> اختصاص می‌دهد که توسط یک کمپین تبلیغاتی خاص ارائه می‌شود. در بعضی مواقع در <ph name="PRODUCT_NAME" /> این برچسب‌ها در عباراتی که در جستجوی Goole جستجو می‌شوند نمایان می‌شوند.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> می‌خواهد داده‌های بزرگ را برای همیشه در دستگاه شما ذخیره کند.</translation>
 <translation id="1046059554679513793">اوه، این نام از قبل در حال استفاده است!</translation>
 <translation id="1047431265488717055">کپی کردن متن &amp;پیوند</translation>
 <translation id="1047726139967079566">نشانک گذاری این صفحه...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">موتور جستجوی پیش‌فرض بازیابی شود؟</translation>
 <translation id="1177863135347784049">سفارشی</translation>
 <translation id="1178581264944972037">مکث</translation>
-<translation id="1179803038870941185">‏<ph name="URL" /> می‌خواهد کنترل کامل دستگاه‌های MIDI شما را به‌دست آورد.</translation>
 <translation id="1181037720776840403">حذف</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> در حافظه پنهان محلی نصب نمی‌شود.</translation>
 <translation id="1185924365081634987">همچنین می‌توانید برای برطرف کردن این خطای شبکه، <ph name="GUEST_SIGNIN_LINK_START" />به عنوان مهمان مرور کنید<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{دسترسی به یک فایل ذخیره شده بر روی رایانه شما}one{دسترسی به # فایل ذخیره شده بر روی رایانه شما}other{دسترسی به # فایل ذخیره شده بر روی رایانه شما}}</translation>
 <translation id="1195076408729068893">‏برای شروع Smart Lock، گذرواژه‌تان را وارد کنید. دفعه بعد، برای باز کردن قفل <ph name="DEVICE_TYPE" />، می‌توانید از تلفنتان استفاده کنید.</translation>
 <translation id="1195447618553298278">خطای ناشناس.</translation>
-<translation id="1196338895211115272">صادر کردن کلید خصوصی ناموفق بود.</translation>
 <translation id="119738088725604856">پنجره عکس صفحه‌نمایش</translation>
 <translation id="1197979282329025000">هنگام بازیابی قابلیت‌های چاپگر برای چاپگر <ph name="PRINTER_NAME" />، خطایی روی داد. این چاپگر با <ph name="CLOUD_PRINT_NAME" /> ثبت نمی‌شود.</translation>
 <translation id="1198271701881992799">بیایید شروع کنیم</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">سرپرست شما توصیه می‌کند که مقدار خاصی را برای این گزینه وارد کنید.</translation>
 <translation id="1225177025209879837">پردازش درخواست...</translation>
 <translation id="1225211345201532184">مورد ۵ قفسه</translation>
-<translation id="1225404570112441414">برای استفاه از این سایت در هر زمانی، آن را به قفسه‌تان اضافه کنید.</translation>
 <translation id="1227507814927581609">هنگام اتصال به «<ph name="DEVICE_NAME" />» راستی‌آزمایی ناموفق بود.</translation>
 <translation id="1230807973377071856">منوی سیستم</translation>
 <translation id="1232569758102978740">بدون عنوان</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">‏فایل HTML نشانک‌ها</translation>
 <translation id="1303671224831497365">هیچ دستگاه بلوتوثی یافت نشد</translation>
 <translation id="1306606229401759371">تغییر تنظیمات</translation>
-<translation id="1307398858972670978">در <ph name="SAVED_PASSWORDS_LINK" />، از هر دستگاهی به گذرواژه‌هایتان دسترسی داشته باشید</translation>
 <translation id="1307559529304613120">‏متأسفیم! سیستم نتوانست کد دسترسی دراز مدت به API را برای این دستگاه ذخیره کند.</translation>
 <translation id="1313405956111467313">پیکربندی پراکسی خودکار</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">جستجو</translation>
 <translation id="1386387014181100145">سلام، حالتان چطور است.</translation>
 <translation id="138784436342154190">صفحه شروع پیش‌فرض بازیابی شود؟</translation>
-<translation id="1389297115360905376">این مورد را فقط می‌توان از <ph name="CHROME_WEB_STORE" /> اضافه کرد.</translation>
 <translation id="1390548061267426325">بازکردن به‌عنوان برگه عادی</translation>
-<translation id="1391807639023934267">صفحه سریع‌تر بارگیری شد.</translation>
 <translation id="1393283411312835250">آفتاب و ابر</translation>
 <translation id="1395262318152388157">اسلایدر جستجو</translation>
 <translation id="1395730723686586365">به‌روزرسان شروع شد</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">شما نسخه ناپایداری از <ph name="PRODUCT_NAME" /> را به‌روزرسانی می‌کنید که حاوی قابلیت‌های در حال توسعه است. خرابی‌ها و اشکال‌های غیرمنتظره‌ای رخ خواهد داد. لطفاُ با احتیاط ادامه دهید.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (شناسه برنامه افزودنی «<ph name="EXTENSION_ID" />») در این نوع جلسه مجاز نیست.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">‏اوه! ایجاد کلید خصوصی RSA تصادفی ناموفق بود.</translation>
 <translation id="1420834118113404499">مجوزهای رسانه</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> جهت مجاز کردن مرتبط‌سازی</translation>
 <translation id="1426410128494586442">بله</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">کپی آدرس صوت</translation>
 <translation id="1465827627707997754">تکه پیتزا</translation>
 <translation id="1467432559032391204">چپ</translation>
-<translation id="1467999917853307373"><ph name="URL" /> می‌خواهد داده‌ها را برای همیشه در دستگاه شما ذخیره کند.</translation>
-<translation id="1470719357688513792">تنظیمات جدید کوکی بعد از بارگیری مجدد صفحه اجرا می‌شود.</translation>
 <translation id="1470811252759861213">برای دریافت افزونه‌هایتان در همه رایانه‌هایتان، <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">‏«<ph name="FILENAME" />» بارگذاری نشد. فضای کافی در Google Drive شما وجود ندارد.</translation>
 <translation id="1475502736924165259">گواهی‌هایی برای فایل دارید که در هیچ‌کدام از دسته‌های دیگر قرار نمی‌گیرد</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">نشانگر موشواره بزرگ</translation>
 <translation id="1543284117603151572">‏وارد شده از Edge</translation>
 <translation id="1545177026077493356">حالت کیوسک خودکار</translation>
+<translation id="1545775234664667895">طرح زمینه نصب شده "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">‏نشانی وب با %s به جای پرسش</translation>
 <translation id="1546280085599573572">این افزونه، صفحه‌ای را با کلیک روی دکمه صفحه اصلی نمایش داده می‌شود، تغییر داده است.</translation>
 <translation id="1547572086206517271">باید بازخوانی شود</translation>
@@ -440,11 +431,9 @@
 وب‌سایت‌های بازدید شده توسط کاربر نظارت شده را <ph name="BEGIN_BOLD" />بررسی کنید<ph name="END_BOLD" />،
 و سایر تنظیمات را <ph name="BEGIN_BOLD" />مدیریت کنید<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">جزئیات ورود به سیستم قدیمی هستند</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> خط نشان داده نمی‌شوند&gt;</translation>
 <translation id="1650371550981945235">نمایش گزینه‌های ورودی</translation>
 <translation id="1650709179466243265">‏افزودن .www و com. و باز کردن آدرس</translation>
 <translation id="1651008383952180276">باید همان عبارت عبور را دو بار وارد کنید</translation>
-<translation id="1652972346408808053">گذرواژه ذخیره شد. در <ph name="SAVED_PASSWORDS_LINK" />، از هر دستگاهی به گذرواژه‌هایتان دسترسی داشته باشید.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{‏چاپگر را به Google Cloud Print اضافه کنید تا بتوانید از هر کجا چاپ کنید.}one{‏# چاپگر را به Google Cloud Print اضافه کنید تا بتوانید از هر کجا چاپ کنید.}other{‏# چاپگر را به Google Cloud Print اضافه کنید تا بتوانید از هر کجا چاپ کنید.}}</translation>
 <translation id="1657406563541664238">‏با ارسال خودکار آمار استفاده و گزارش‌های خرابی به Google، به بهتر شدن <ph name="PRODUCT_NAME" /> کمک کنید.</translation>
 <translation id="1658424621194652532">این صفحه به میکروفون شما دسترسی دارد.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">ادامه مسدود کردن کوکی‌ها</translation>
 <translation id="204622017488417136">‏دستگاه شما به نسخه قبلاً نصب شده Chrome باز می‌گردد. همه حساب‌های کاربری و داده‌های محلی حذف می‌شوند. این کار قابل بازگشت نیست.</translation>
 <translation id="2048182445208425546">دسترسی به ترافیک شبکه شما</translation>
-<translation id="2049137146490122801">دسترسی به فایل‌های محلی بر روی دستگاه از طریق سرپرست غیرفعال شده است.</translation>
 <translation id="204914487372604757">ایجاد میان‌بر</translation>
 <translation id="2050339315714019657">عمودی</translation>
 <translation id="2053312383184521053">داده‌های حالت بی‌حرکت</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">‏Pepper سه بعدی</translation>
 <translation id="2105006017282194539">هنوز بارگیری نشده است</translation>
 <translation id="2107494551712864447">افزودن اثرانگشت</translation>
-<translation id="2111843886872897694">برنامه‌ها باید از جانب میزبانی سرو شوند که بر آن تأثیر دارند.</translation>
 <translation id="2112877397266219826">برای تنظیم کردن من، کنترل‌کننده لمسی‌تان را روشن کنید</translation>
 <translation id="21133533946938348">کوچک کردن برگه</translation>
 <translation id="2113479184312716848">باز کردن &amp;فایل...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">به ما بگویید چه اتفاقی افتاده است</translation>
 <translation id="2229161054156947610">بیش از ۱ ساعت مانده است</translation>
 <translation id="222931766245975952">فایل ناقص</translation>
-<translation id="222949136907494149"><ph name="URL" /> می‌خواهد از موقعیت مکانی رایانه شما استفاده کند.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">پوشه «<ph name="FOLDER_NAME" />» را نمی‌توان ایجاد کرد.<ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">‏برای مشاهده doodle امروز، کلیک کنید</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">دسترسی به میکروفون همیشه مسدود شود</translation>
 <translation id="2367972762794486313">نمایش برنامه‌ها</translation>
 <translation id="2371076942591664043">پس از &amp;تکمیل باز شود</translation>
-<translation id="237336063998926520">‏استفاده از نشانی IP برای تعیین مکان</translation>
 <translation id="2377319039870049694">جابه‌جایی به نمای فهرستی</translation>
 <translation id="2377667304966270281">خطاهای سخت‌افزاری</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> فایل انتخاب شد</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> می‌خواهد چند فایل از <ph name="VOLUME_NAME" /> کپی کند.</translation>
 <translation id="2462724976360937186">شناسه کلید ارائه دهنده مجوز</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> اضافه شد</translation>
-<translation id="246335896104539386">وارد کردن نشانک‌ها</translation>
 <translation id="2464089476039395325">‏پروکسی HTTP</translation>
 <translation id="2468902267404883140">‏به تلفنتان متصل نمی‌شود. مطمئن شوید از تلفن Android سازگاری استفاده می‌کنید که روشن و در دسترس است. &lt;a&gt;بیشتر بدانید&lt;/a&gt;</translation>
 <translation id="2470702053775288986">افزونه‌های پشتیبانی نشده غیرفعال شدند.</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">حذف نصب</translation>
 <translation id="2487067538648443797">افزودن نشانک جدید</translation>
 <translation id="248861575772995840">‏تلفنتان پیدا نمی‌شود. مطمئن شوید بلوتوث <ph name="DEVICE_TYPE" /> روشن است. &lt;a&gt;بیشتر بدانید&lt;/a&gt;</translation>
-<translation id="2489316678672211764">یک افزایه ‏(<ph name="PLUGIN_NAME" />) پاسخ نمی‌دهد.</translation>
 <translation id="2489428929217601177">روز گذشته</translation>
 <translation id="2489918096470125693">افزودن &amp;پوشه...</translation>
 <translation id="249113932447298600">متأسفیم، دستگاه <ph name="DEVICE_LABEL" /> در حال حاضر پشتیبانی نمی‌شود.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">تبریک می‌گوییم! خدمات داده «<ph name="NAME" />» شما فعال شده است و آماده استفاده است.</translation>
 <translation id="2566124945717127842">‏Powerwash، دستگاه <ph name="IDS_SHORT_PRODUCT_NAME" /> شما را بازنشانی می‌کند، به نحوی که مانند یک دستگاه جدید به نظر می‌رسد.</translation>
 <translation id="2568774940984945469">قسمت نوار اطلاعات</translation>
-<translation id="2570000010887652771">داده‌های ذخیره‌‌شده.</translation>
 <translation id="257088987046510401">طرح‌‌های قسمت</translation>
 <translation id="2572032849266859634">مجوز دسترسی فقط خواندنی به <ph name="VOLUME_NAME" /> صادر شد.</translation>
 <translation id="2573269395582837871">انتخاب عکس و نام</translation>
 <translation id="2575247648642144396">وقتی برنامه افزودنی بتواند در صفحه کنونی کار کند این نماد قابل مشاهده خواهد بود. با کلیک کردن روی نماد یا با فشار دادن <ph name="EXTENSION_SHORTCUT" /> از این برنامه افزودنی استفاده کنید.</translation>
 <translation id="2575268751393592580">‏تلفنتان پیدا نمی‌شود. مطمئن شوید <ph name="DEVICE_TYPE" /> به Wi-Fi یا یک شبکه تلفن همراه متصل است. &lt;a&gt;بیشتر بدانید&lt;/a&gt;</translation>
-<translation id="2576842806987913196">‏یک فایل CRX در حال حاضر با این نام وجود دارد.</translation>
 <translation id="257779572837908839">‏راه‌اندازی به‌عنوان Chromebox برای جلسات</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />فضا پیاده‌سازی نشد<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">‏درصورتی‌که مجوز یک ارائه دهنده مجوز (CA) را حذف کنید، مرورگر شما دیگر به مجوزهای ارائه شده توسط آن CA اطمینان نخواهد کرد.</translation>
 <translation id="2653659639078652383">ارائه</translation>
 <translation id="265390580714150011">مقدار قسمت</translation>
-<translation id="2654286334048437383">صادرکردن نشانک‌ها</translation>
 <translation id="2655386581175833247">گواهی کاربر:</translation>
 <translation id="2660779039299703961">رویداد</translation>
 <translation id="2661146741306740526">۱۶x۹</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">افزودن گالری رسانه از طریق دایرکتوری</translation>
 <translation id="2908789530129661844">کوچک‌نمایی صفحه</translation>
 <translation id="2910318910161511225">به شبکه متصل شوید و دوباره امتحان کنید</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> می‌خواهد از میکروفن شما استفاده کند.</translation>
 <translation id="2913331724188855103">سایت‌ها مجاز به ذخیره و خواندن داده‌های کوکی باشند (توصیه می‌شود)</translation>
 <translation id="2916073183900451334">‏فشار دادن Tab در صفحهٔ وب، پیوندها و قسمت‌های فرم را برجسته می‌کند</translation>
 <translation id="2916745397441987255">جستجوی افزونه‌ها</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">درحال گوش کردن...</translation>
 <translation id="3141917231319778873">درخواست موردنظر در این دستگاه پشتیبانی نمی‌شود: «<ph name="DEVICE_NAME" />».</translation>
 <translation id="3144126448740580210">تمام</translation>
-<translation id="3144135466825225871">‏فایل crx جایگزین نشد. بررسی کنید که آیا فایل در حال استفاده است یا نه.</translation>
 <translation id="3144647712221361880">بازکردن پیوند به‌عنوان</translation>
 <translation id="3149510190863420837">‏برنامه‌های Chrome</translation>
 <translation id="3150927491400159470">تازه سازی سخت</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">همیشه در همه سایت‌ها اجرا شود</translation>
 <translation id="3312424061798279731">زبان‌های فعال</translation>
 <translation id="3312903956926554846">نصب در میز کار</translation>
-<translation id="3313473140726597081">صفحه شروع به <ph name="URL" /> تغییر کرد. برای غیرفعال کردن افزونه‌هایی که صفحه شروع شما را تغییر می‌دهند، روی «بازیابی» کلیک کنید.</translation>
 <translation id="3313590242757056087">برای تنظیم این که کاربر نظارت‌شده مجاز به مشاهده چه وب‌سایت‌هایی باشد، می‌توانید
     با بازدید از <ph name="MANAGEMENT_URL" /> محدودیت‌ها و تنظیمات را پیکربندی کنید.
     چنانچه تنظیمات پیش‌فرض را تغییر ندهید، <ph name="USER_DISPLAY_NAME" />
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">اطلاعات برنامه</translation>
 <translation id="3335947283844343239">باز کردن مجدد برگه بسته شده</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> به دلیل قدیمی بودن مسدود شد.</translation>
 <translation id="3340978935015468852">تنظیمات</translation>
 <translation id="3341703758641437857">اجازهٔ دسترسی به نشانی‌های وب فایل</translation>
 <translation id="3342361181740736773">«<ph name="TRIGGERING_EXTENSION_NAME" />» می‌خواهد این افزونه را بردارد.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">نشانک اضافه شد</translation>
 <translation id="3389312115541230716">روی نماد <ph name="SMALL_PRODUCT_LOGO" /> در نوار وظیفه کلیک راست کنید</translation>
 <translation id="3391716558283801616">برگه ۷</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> می‌خواهد از دوربین و میکروفن شما استفاده کند.</translation>
 <translation id="3396331542604645348">چاپگر انتخابی موجود نیست یا به درستی نصب نشده است. چاپگر خود را بررسی کرده یا چاپگر دیگری را انتخاب کنید.</translation>
 <translation id="3399432415385675819">اعلان‌ها غیرفعال خواهند شد</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />، <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">‏Chrome به صورت خودکار به‌روزرسانی می‌شود تا همیشه تازه‌ترین نسخه را در اختیار داشته باشید.</translation>
 <translation id="3551320343578183772">بستن برگه</translation>
 <translation id="3552780134252864554">هنگام «خروج» پاک شد</translation>
-<translation id="355298399003313926"><ph name="URL" /> می‌خواهد به رویدادهای مربوط به دسترس‌پذیری پاسخ دهد.</translation>
 <translation id="3555812735919707620">حذف برنامه افزودنی</translation>
 <translation id="3556000484321257665">موتور جستجو به <ph name="URL" /> تغییر کرد.</translation>
-<translation id="3561217442734750519">مقدار ورودی برای کلید خصوصی باید یک مسیر معتبر باشد.</translation>
 <translation id="3563432852173030730">برنامه کیوسک بارگیری نشد.</translation>
 <translation id="3564334271939054422">‏احتمالاً شبکه‌ Wi-Fi مورد استفاده‌تان (<ph name="NETWORK_ID" />) نیاز دارد که به یک صفحه ورود به سیستم بروید.</translation>
 <translation id="3564708465992574908">سطوح بزرگ‌نمایی</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">محدودیتهای نام گواهی</translation>
 <translation id="3596235046596950091">فعال کردن سرویس‌های ابری</translation>
 <translation id="3599863153486145794">‏سابقه را از همه دستگاه‌های به سیستم واردشده پاک می‌کند. ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد.</translation>
-<translation id="3600456501114769456">دسترسی به فایل‌های محلی بر روی دستگاه شما توسط سرپرست سیستم شما از کار افتاده است.</translation>
 <translation id="3600792891314830896">سایت‌هایی که صدا پخش می‌کنند بی‌صدا شوند</translation>
 <translation id="3603177256297531067">ترجمه این صفحه امکان‌پذیر نیست</translation>
 <translation id="3603533104205588786">می‌توانید برای نشانک‌گذاری صفحه‌ای، روی ستاره کلیک کنید</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">عکس از صفحه‌نمایش غیرفعال است</translation>
 <translation id="3625870480639975468">بازنشانی بزرگ‌نمایی</translation>
 <translation id="3626281679859535460">روشنایی</translation>
-<translation id="3627052133907344175">برنامه افزودنی به «<ph name="IMPORT_NAME" />» نسخه حداقل «<ph name="IMPORT_VERSION" />» نیاز دارد، اما فقط نسخه «<ph name="INSTALLED_VERSION" />» نصب است.</translation>
 <translation id="3627320433825461852">کمتر از ۱ دقیقه باقی مانده است</translation>
 <translation id="3627588569887975815">باز کردن پیوند در پنجره حالت &amp;ناشناس</translation>
 <translation id="3627671146180677314">‏زمان تجدید گواهی Netscape</translation>
@@ -1764,7 +1735,6 @@
 <translation id="3668570675727296296">تنظیمات زبان</translation>
 <translation id="3668823961463113931">کنترل‌کننده‌ها</translation>
 <translation id="3670229581627177274">روشن کردن بلوتوث</translation>
-<translation id="3672159315667503033"><ph name="URL" /> می‌خواهد به‌طور دائم داده‌های بزرگ را در رایانه محلی شما ذخیره کند.</translation>
 <translation id="3672681487849735243">یک خطای کارخانه شناسایی شده است</translation>
 <translation id="367645871420407123">اگر می‌خواهید گذرواژه ریشه را روی مقدار تصویر آرمایشی پیش‌فرض تنظیم کنید، خالی بگذارید</translation>
 <translation id="3678156199662914018">برنامهٔ افزودنی: <ph name="EXTENSION_NAME" /></translation>
@@ -1842,11 +1812,9 @@
 <translation id="3786301125658655746">شما آفلاین هستید</translation>
 <translation id="3788401245189148511">این می‌توانست:</translation>
 <translation id="3789841737615482174">نصب</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> تنها بر روی دسکتاپ کار می‌کند.</translation>
 <translation id="379082410132524484">کارتتان منقضی شده است</translation>
 <translation id="3792890930871100565">قطع ارتباط چاپگرها</translation>
 <translation id="379422718204375917">‏استفاده از Smart Lock‌ برای ورود به سیستم حساب</translation>
-<translation id="3794595850995182458">خروج از صفحه</translation>
 <translation id="3796648294839530037">شبکه‌های دلخواه:</translation>
 <translation id="3797900183766075808">‏(&amp;S) جستجوی <ph name="SEARCH_ENGINE" /> برای «<ph name="SEARCH_TERMS" />»</translation>
 <translation id="3798325802885154040">به شما امکان می‌دهد «ضربه برای کلیک» را فعال/غیرفعال کنید</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326">فعال کردن <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">نوع ذخیره نامعتبری وارد شده است.</translation>
 <translation id="3983586614702900908">دستگاه‌های ارائه‌دهنده ناشناس</translation>
-<translation id="3984413272403535372">هنگام امضای برنامهٔ افزودنی خطا رخ داد.</translation>
 <translation id="3987938432087324095">متأسفم، متوجه نشدم.</translation>
 <translation id="3988996860813292272">انتخاب منطقه زمانی</translation>
 <translation id="3989635538409502728">خروج از سیستم</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">‏نصب برنامه‌ها و بازی‌‌ها از Google Play در Chromebook‏. &lt;a target="_blank" href="‏<ph name="URL" />"&gt;بیشتر بدانید&lt;/a&gt;</translation>
 <translation id="4088095054444612037">پذیرش برای گروه</translation>
 <translation id="4090103403438682346">فعال کردن دسترسی تأییدشده</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> برای نمایش برخی از عناصر این صفحه لازم است.</translation>
 <translation id="4090535558450035482">(این برنامه افزودنی مدیریت می‌شود و نمی‌تواند حذف شود.)</translation>
 <translation id="4091434297613116013">صفحات کاغذ</translation>
 <translation id="4093955363990068916">فایل محلی:</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> اکنون می‌تواند رمزهای ورود شما را همگام‌سازی کند.</translation>
 <translation id="4715553623069266137">خیلی کوتاه (۰٫۸ ثانیه)</translation>
 <translation id="4716483597559580346">‏Powerwash برای امنیت بیشتر</translation>
-<translation id="471800408830181311">ارسال کلید خصوصی ناموفق بود.</translation>
 <translation id="4720113199587244118">افزودن دستگاه‌ها</translation>
 <translation id="4720185134442950733">شبکه داده تلفن همراه</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> در حال اشتراک‌گذاری صفحه نمایش شما است.</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">قوی</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> می‌خواهد با افزونه «<ph name="EXTENSION_NAME" />» ارتباط برقرار کند</translation>
 <translation id="4918086044614829423">می‌پذیرم</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> می‌خواهد از دوربین شما استفاده کند.</translation>
 <translation id="4920887663447894854">از ردیابی مکان شما در این صفحه توسط سایت‌های زیر جلوگیری شده است:</translation>
 <translation id="492299503953721473">‏حذف برنامه‌های Android</translation>
 <translation id="4923279099980110923">بله می‌خواهم کمک کنم</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">این افزونه بدافزار دارد.</translation>
 <translation id="498294082491145744">تغییر تنظیمات که دسترسی وب‌سایت‌ها به قابلیت‌هایی مثل کوکی‌ها، جاوا اسکرپیت، افزایه‌ها، موقعیت جغرافیایی، میکروفن، دوربین و غیره را کنترل می‌کنند.</translation>
 <translation id="4988526792673242964">صفحات</translation>
-<translation id="4988792151665380515">صادر کردن کلید عمومی ناموفق بود.</translation>
 <translation id="49896407730300355">چرخاندن خلاف جهت ع&amp;قربه‌های ساعت</translation>
 <translation id="4989966318180235467">بازرسی صفحه &amp;پس‌زمینه</translation>
 <translation id="4990343175649730969">‏بارگیری ابزار پاک‌سازی Chrome</translation>
@@ -2574,7 +2537,6 @@
 <translation id="5026874946691314267">این مورد دیگر نشان داده نشود.</translation>
 <translation id="5027550639139316293">گواهی رایانامه</translation>
 <translation id="5027562294707732951">افزودن افزونه</translation>
-<translation id="5028012205542821824">نصب فعال نیست.</translation>
 <translation id="5029568752722684782">پاک کردن نسخه کپی</translation>
 <translation id="5030338702439866405">صدور توسط</translation>
 <translation id="5036662165765606524">به هیچ سایتی اجازه داده نشود چند فایل را به‌طور خودکار بارگیری کند</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">خطایی روی داد.</translation>
 <translation id="5094721898978802975">ارتباط با برنامه‌های بومی همکار</translation>
 <translation id="5097002363526479830">اتصال ناموفق به شبکه "<ph name="NAME" />":<ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">نمی‌توان مسیر کامل به دایرکتوری را برای بسته بندی پیدا کرد.</translation>
 <translation id="5099354524039520280">بالا</translation>
 <translation id="5100114659116077956">‏Chromebox شما باید به‌روزرسانی شود تا آخرین ویژگی‌ها را در اختیار شما قرار دهد.</translation>
 <translation id="5101042277149003567">باز کردن همه نشانک‌ها</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">نمایش در پوشه</translation>
 <translation id="5171045022955879922">‏جستجو یا تایپ URL</translation>
 <translation id="5171343362375269016">حافظه جابجاشده</translation>
-<translation id="5175870427301879686"><ph name="URL" /> می‌خواهد به‌طور دائم داده‌ها را در کامپیوتر محلی‌تان ذخیره کند.</translation>
 <translation id="5177479852722101802">ادامه مسدود کردن دسترسی به دوربین و میکروفن</translation>
 <translation id="5177526793333269655">نمای تصویر کوچک</translation>
 <translation id="5177549709747445269">از داده تلفن همراه استفاده می‌کنید</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">قالب‌بندی این دستگاه</translation>
 <translation id="5293170712604732402">بازنشانی تنظیمات به پیش‌فرض‌های اولیه آن‌ها</translation>
 <translation id="5298219193514155779">ایحاد طرح زمینه توسط</translation>
-<translation id="5298363578196989456">نمی‌توان برنامه افزودنی «<ph name="IMPORT_NAME" />» را وارد کرد زیرا یک ماژول اشتراک‌گذاری شده نیست.</translation>
 <translation id="5299109548848736476">ردیابی نشود</translation>
 <translation id="5299682071747318445">تمام داده‌ها با رمز عبارتی همگام‌سازی شما رمزگذاری شده‌اند</translation>
 <translation id="5300589172476337783">نمایش</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170">«<ph name="CHROME_EXTENSION_NAME" />» می‌خواهد مرتبط شود</translation>
 <translation id="5332624210073556029">منطقهٔ زمانی:</translation>
 <translation id="5334142896108694079">حافظهٔ پنهان اسکریپت</translation>
-<translation id="533433379391851622">نسخه مورد انتظار «<ph name="EXPECTED_VERSION" />»، اما نسخه «<ph name="NEW_ID" />» بود.</translation>
 <translation id="5334844597069022743">مشاهده منبع</translation>
 <translation id="5335458522276292100">‏درحال پشتیبان‌گیری از <ph name="FILE_COUNT" /> در <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">توسط یک شخص ثالث نصب شده است.</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">پخش صدا در سایت‌ها مجاز شود</translation>
 <translation id="5390284375844109566">پایگاه داده فهرست‌بندی شده</translation>
 <translation id="5390743329570580756">ارسال برای</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> در <ph name="PEPPER_PLUGIN_DOMAIN" /> می‌خواهد به رایانه شما دسترسی پیدا کند.</translation>
 <translation id="5397794290049113714">شما</translation>
 <translation id="5398572795982417028">ارجاع صفحه بیش از حد مجاز است، حداکثر مجاز <ph name="MAXIMUM_PAGE" /> است</translation>
 <translation id="5398772614898833570">آگهی‌ها مسدود شدند</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">بازیابی همه برگه‌ها</translation>
 <translation id="5486261815000869482">تأیید گذرواژه</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> در حال اشتراک‌گذاری صفحه نمایشتان با <ph name="TAB_NAME" /> است.</translation>
-<translation id="5486326529110362464">مقدار ورودی برای کلید خصوصی باید وجود داشته باشد.</translation>
 <translation id="5486561344817861625">شبیه‌سازی راه‌اندازی مجدد مرورگر</translation>
 <translation id="5487521232677179737">پاک کردن داده‌ها</translation>
 <translation id="5488093641312826914">«<ph name="COPIED_ITEM_NAME" />» کپی شد</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951">به‌روزرسانی با مصرف <ph name="UPDATE_SIZE_MB" /> مگابایت داده تلفن همراه بارگیری می‌شود. ادامه می‌دهید؟</translation>
 <translation id="5601503069213153581">پین</translation>
 <translation id="5605623530403479164">موتورهای جستجوی دیگر</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> در <ph name="PEPPER_PLUGIN_DOMAIN" /> می‌خواهد به دستگاه شما دسترسی پیدا کند.</translation>
 <translation id="5608580678041221894">برای تنظیم یا انتقال ناحیه بریده‌شده، روی کلیدهای زیر ضربه بزنید</translation>
 <translation id="5609231933459083978">به نظر می‌رسد این برنامه معتبر نیست.</translation>
 <translation id="5610038042047936818">تغییر به حالت دوربین</translation>
@@ -3192,7 +3147,6 @@
 <translation id="5990386583461751448">ترجمه‌شده</translation>
 <translation id="5991049340509704927">بزرگ‌نمایی</translation>
 <translation id="5993332328670040093">داده‌های شما دیگر اندازه‌گیری نمی‌شود</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> ممکن است نتواند خود را به روز نگه دارد.</translation>
 <translation id="600424552813877586">برنامه کاربردی نامعتبر است.</translation>
 <translation id="6005695835120147974">رهیاب رسانه</translation>
 <translation id="6006484371116297560">کلاسيک</translation>
@@ -3217,6 +3171,7 @@
 <translation id="604001903249547235">‏پشتیبان‌گیری Cloud</translation>
 <translation id="6040143037577758943">بستن</translation>
 <translation id="6040852767465482106">شناسه ناشناس</translation>
+<translation id="6041155700700864984">خروج از تمام صفحه</translation>
 <translation id="604124094241169006">خودکار</translation>
 <translation id="6042169520002885235">سازنده و مدل چاپگر را انتخاب کنید</translation>
 <translation id="6042308850641462728">بیشتر</translation>
@@ -3233,7 +3188,6 @@
 <translation id="6056710589053485679">تازه‌سازی عادی</translation>
 <translation id="6059652578941944813">سلسه مراتب گواهی</translation>
 <translation id="6059925163896151826">‏دستگاه‌های USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> خراب شده است.</translation>
 <translation id="6064217302520318294">قفل صفحه</translation>
 <translation id="6065289257230303064">ویژگی‌های دایرکتوری موضوع گواهی</translation>
 <translation id="6068338049763724728">فعال کردن ثبت‌نام ازراه‌دور</translation>
@@ -3342,7 +3296,6 @@
 <translation id="6237816943013845465">به شما امکان می‌دهد وضوح صفحه را تنظیم کنید</translation>
 <translation id="6238923052227198598">نگه داشتن جدیدترین یادداشت در صفحه درحالت قفل</translation>
 <translation id="6239558157302047471">تازه‌سازی قاب</translation>
-<translation id="624022915548992686">خروج از صفحه</translation>
 <translation id="6241530762627360640">دسترسی به اطلاعات دستگاه‌های بلوتوث مرتبط شده با سیستم شما و کشف دستگاه‌های بلوتوث در این نزدیکی.</translation>
 <translation id="6243774244933267674">سرور در دسترس نیست</translation>
 <translation id="6246413617632217567">کاربر تحت‌نظارت وارد نشد. لطفاً فضای دیسک سخت و مجوزهایتان را بررسی کرده، دوباره امتحان کنید.</translation>
@@ -3391,13 +3344,11 @@
 <translation id="6312403991423642364">خطای شبکه ناشناس</translation>
 <translation id="6313641880021325787">‏خروج از VR</translation>
 <translation id="6314819609899340042">ویژگی‌های رفع اشکال را با موفقیت در این دستگاه <ph name="IDS_SHORT_PRODUCT_NAME" /> فعال کردید.</translation>
-<translation id="6315343732431721770">صفحه‌های شروع تغییر کردند تا <ph name="URL" /> به آن‌ها اضافه شود. برای غیرفعال کردن افزونه‌هایی که صفحه شروع شما را تغییر می‌دهند، روی «بازیابی» کلیک کنید.</translation>
 <translation id="6315493146179903667">آوردن همه به جلو</translation>
 <translation id="6316806695097060329">این دستگاه <ph name="SHORT_PRODUCT_NAME" /> طراحی شده تا بهترین تجربه وب را به شما ارائه دهد.</translation>
 <translation id="6317318380444133405">دیگر پشتیبانی نمی‌شود.</translation>
 <translation id="6317369057005134371">در انتظار پنجره برنامه ...</translation>
 <translation id="6318407754858604988">بارگیری شروع شد</translation>
-<translation id="6322279351188361895">خواندن کلید خصوصی ناموفق بود.</translation>
 <translation id="6325191661371220117">از کار انداختن اجرای خودکار</translation>
 <translation id="6326175484149238433">‏حذف از Chrome</translation>
 <translation id="6326855256003666642">تعداد فعالیت‌های زنده‌نگه‌داری</translation>
@@ -3406,7 +3357,6 @@
 <translation id="6333049849394141510">انتخاب آنچه که باید همگام‌سازی شود</translation>
 <translation id="6333064448949140209">‏فایل برای اشکال‌زدایی به Google ارسال خواهد شد</translation>
 <translation id="6333834492048057036">تمرکز نوار آدرس برای جستجو</translation>
-<translation id="6336907568130557310">گذرواژه‌های شما برای همه افرادی که می‌توانند فایل‌. صادرشده را ببینید قابل‌مشاهده است. فایل را با کسی هم‌رسانی نکنید و آن را بعد از وارد کردن حذف کنید.</translation>
 <translation id="6339668969738228384">ایجاد نمایه جدیدی برای <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">‏به سرور متصل نشد. لطفاً اتصال شبکه‌تان را بررسی کرده و دوباره امتحان کنید. اگر مشکل برطرف نشد، Chromebook خود را بازراه‌اندازی کنید.</translation>
 <translation id="6340071272923955280">‏پروتکل چاپ اینترنتی (IPPS)</translation>
@@ -3435,7 +3385,6 @@
 <translation id="6385543213911723544">سایت‌ها می‌توانند داده‌های کوکی را ذخیره کرده و بخوانند</translation>
 <translation id="6388771388956873507">حسگر اثر انگشت را در دستگاهتان پیدا کنید و آن را با انگشتتان لمس کنید</translation>
 <translation id="6390799748543157332">صفحاتی که در این پنجره مشاهده می‌کنید در سابقه مرورگر نشان داده نمی‌شوند و بعد از بسته شدن همه پنجره‌های مهمان باز، هیچ رد دیگری (مانند کوکی) در رایانه از خود به جای نمی‌گذارند. با این وجود، فایل‌هایی که بارگیری می‌کنید، حفظ می‌شوند.</translation>
-<translation id="6391538222494443604">دایرکتوری ورودی باید بسته شود.</translation>
 <translation id="6395423953133416962">ارسال <ph name="BEGIN_LINK1" />اطلاعات سیستم<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />معیارها<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">توقف صحبت</translation>
 <translation id="6397592254427394018">باز کردن همه نشانک‌ها در پنجره &amp;ناشناس</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">مدیریت انسداد جاوا اسکریپت...</translation>
 <translation id="6459488832681039634">استفاده از انتخاب برای یافتن</translation>
 <translation id="6460601847208524483">یافتن بعدی</translation>
-<translation id="6462080265650314920">نوع محتوای برنامه باید «<ph name="CONTENT_TYPE" />» باشد.</translation>
 <translation id="6462082050341971451">آیا هنوز آنجا هستید؟</translation>
 <translation id="6463795194797719782">&amp;ویرایش</translation>
 <translation id="6466988389784393586">&amp;باز کردن همه نشانک‌ها</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">‏می‌خواهید Google این صفحه را از <ph name="SOURCE_LANGUAGE" /> به <ph name="TARGET_LANGUAGE" /> ترجمه کند؟</translation>
 <translation id="6675665718701918026">دستگاه نشانگر متصل شد</translation>
-<translation id="6677037229676347494">شناسه مورد انتظار «<ph name="EXPECTED_ID" />» است، اما شناسه «<ph name="NEW_ID" />» بود.</translation>
 <translation id="6678717876183468697">نشانی وب عبارت</translation>
 <translation id="6680028776254050810">تغییر کاربران</translation>
 <translation id="6680442031740878064">در دسترس: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">‏هر وقت بخواهید می‌توانید اطلاعاتی را که Google جمع‌آوری می‌کند، در <ph name="BEGIN_LINK" />تنظیمات<ph name="END_LINK" /> سفارشی کنید.</translation>
 <translation id="6904344821472985372">ابطال دسترسی به فایل</translation>
 <translation id="6904655473976120856">برای خروج، دکمه «برنامه» را فشار دهید</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> می‌خواهد صفحه شما را به اشتراک بگذارد.</translation>
-<translation id="6909461304779452601">برنامه‌ها، افزونه‌ها و اسکریپت‌های کاربر را نمی‌توان از این وب‌سایت اضافه کرد.</translation>
 <translation id="6910211073230771657">حذف شد</translation>
 <translation id="691024665142758461">بارگیری چندین فایل.</translation>
 <translation id="6911324888870229398">‏اتصال شبکه قطع شد. لطفاً اتصالتان را بررسی کنید یا شبکه Wi-Fi دیگری را امتحان کنید.</translation>
@@ -4103,7 +4048,6 @@
 <translation id="747114903913869239">خطا: رمزگشایی برنامهٔ افزودنی ممکن نیست</translation>
 <translation id="7473891865547856676">نه متشکرم</translation>
 <translation id="747459581954555080">بازیابی همه</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> با خطایی مواجه شده است.</translation>
 <translation id="7475671414023905704">‏نشانی وب گذرواژه گم شده Netscape</translation>
 <translation id="7476454130948140105">شارژ باتری برای به‌روزرسانی خیلی کم است (<ph name="BATTERY_PERCENT" />٪)</translation>
 <translation id="7477347901712410606">‏اگر رمز عبارتی خود را فراموش کرده‌اید، صبر کنید و ازطریق <ph name="BEGIN_LINK" />داشبورد Google<ph name="END_LINK" /> دوباره همگام‌سازی را بازنشانی کنید.</translation>
@@ -4140,7 +4084,6 @@
 <translation id="7507930499305566459">گواهی وضعیت پاسخگو</translation>
 <translation id="7508545000531937079">نمایش اسلاید</translation>
 <translation id="7513029293694390567">با استفاده از اعتبارنامه‌های ذخیره‌شده، به‌طور خودکار به سیستم وب‌سایت‌ها وارد شوید. اگر این قابلیت غیرفعال باشد، هر بار قبل از وارد شدن به وب‌سایت از شما برای تأیید اطلاعات درخواست می‌شود.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> برای پخش محتوای محافظت‌شده، می‌خواهد دستگاهتان را به‌طور متمایز شناسایی کند.</translation>
 <translation id="7517569744831774757">بازنشانی تنظیمات به پیش‌فرض‌های اولیه آن‌ها.</translation>
 <translation id="7517786267097410259">ایجاد گذرواژه -</translation>
 <translation id="7518150891539970662">‏گزارش‌های WebRTC ‏(<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4170,7 +4113,6 @@
    نظارت‌شده نمایید.</translation>
 <translation id="756445078718366910">باز کردن پنجرهٔ مرورگر</translation>
 <translation id="7564847347806291057">پایان دادن به فرایند</translation>
-<translation id="7565291891798266313">موتور جستجو به <ph name="URL" /> تغییر کرد. برای غیرفعال کردن افزونه‌هایی که موتور جستجو را تغییر می‌دهند، روی «بازیابی» کلیک کنید.</translation>
 <translation id="7566118625369982896">‏مدیریت پیوندهای برنامه Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">‏داده‌های Chrome پاک شد</translation>
@@ -4179,7 +4121,6 @@
 <translation id="7573172247376861652">شارژ باتری</translation>
 <translation id="7576032389798113292">۶x۴</translation>
 <translation id="7576690715254076113">تلفیق کردن</translation>
-<translation id="7577815336900970562">‏استفاده از WiFi‌ یا شبکه تلفن همراه برای تعیین مکان</translation>
 <translation id="7579149537961810247">بی‌صدا کردن سایت‌ها</translation>
 <translation id="7580671184200851182">یک صدا را از طریق همه بلندگوها پخش کنید (تک صوتی)</translation>
 <translation id="7581462281756524039">یک ابزار پاکسازی</translation>
@@ -4286,6 +4227,7 @@
 <translation id="7773726648746946405">ذخیره جلسه</translation>
 <translation id="7781335840981796660">همه حساب‌های کاربر و داده‌های محلی حذف می‌شوند.</translation>
 <translation id="7782102568078991263">‏پیشنهاد دیگری از Google وجود ندارد</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> بارگیری نشد</translation>
 <translation id="7784067724422331729">تنظیمات امنیتی رایانه شما این فایل را مسدود کرد.</translation>
 <translation id="7786207843293321886">خروج مهمان</translation>
 <translation id="7786889348652477777">&amp;تازه‌سازی برنامه</translation>
@@ -4447,7 +4389,6 @@
 <translation id="8001504501378762252">ممکن است سایتی گذرواژه‌تان را سرقت کرده باشد</translation>
 <translation id="8004582292198964060">مرورگر</translation>
 <translation id="8008356846765065031">اینترنت قطع است. لطفاً اتصال اینترنتتان را بررسی کنید.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> بارگیری نشد.</translation>
 <translation id="8008818777654712271">‏ارسال خودکار برخی از اطلاعات سیستم و محتوای صفحه به Google برای کمک به شناسایی برنامه‌ها و سایت‌های خطرناک</translation>
 <translation id="8012382203418782830">این صفحه ترجمه شده است.</translation>
 <translation id="8014154204619229810">در حال حاضر به‌روزرسان در حال اجراست. برای بررسی دوباره، بعد از یک دقیقه بازخوانی کنید.</translation>
@@ -4564,7 +4505,6 @@
 <translation id="8191230140820435481">مدیریت برنامه‌ها، افزونه‌ها و طرح‌های زمینه</translation>
 <translation id="8191453843330043793">‏تحلیل‌گر پراکسی V8</translation>
 <translation id="8195027750202970175">اندازه روی دیسک</translation>
-<translation id="8195739004487400241">صفحه اصلی به <ph name="URL" /> تغییر کرد. برای غیرفعال کردن افزونه‌هایی که صفحه اصلی را تغییر می‌دهند، روی «بازیابی» کلیک کنید.</translation>
 <translation id="8199300056570174101">مشخصات دستگاه و شبکه (سرویس)</translation>
 <translation id="8200772114523450471">ازسرگیری</translation>
 <translation id="8202160505685531999">لطفاً برای به‌روزرسانی نمایه <ph name="DEVICE_TYPE" /> خود، گذرواژه‌تان را دوباره وارد کنید.</translation>
@@ -4608,7 +4548,6 @@
 <translation id="8261378640211443080">این برنامه‌افزودنی در <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست نشده است و ممکن است بدون اطلاع شما اضافه شده باشد.</translation>
 <translation id="8261387128019234107">افزودن حساب برای <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">حذف</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> در این ساخت اجرا نشده است.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> مکان‌نمای ماوس شما را غیرفعال کرد.</translation>
 <translation id="8264718194193514834">«<ph name="EXTENSION_NAME" />» حالت تمام صفحه را فعال کرد.</translation>
 <translation id="8270242299912238708">‏سندهای PDF</translation>
@@ -4709,6 +4648,7 @@
 <translation id="8454288007744638700">یا یک شبکه جدید انتخاب کنید:</translation>
 <translation id="845627346958584683">زمان انقضا</translation>
 <translation id="8456681095658380701">نام نامعتبر</translation>
+<translation id="8457451314607652708">وارد کردن نشانک‌ها</translation>
 <translation id="8460336040822756677">‏اگر Smart Lock را برای <ph name="DEVICE_TYPE" /> خاموش کنید، نمی‌توانید قفل دستگاه‌های Chrome خود را با استفاده از تلفنتان باز کنید. باید گذرواژه‌تان را تایپ کنید.</translation>
 <translation id="8461329675984532579">نام ارائه‌دهنده اصلی</translation>
 <translation id="84613761564611563">رابط کاربری پیکربندی شبکه درخواست شد، لطفاً صبر کنید…</translation>
@@ -4740,7 +4680,6 @@
 <translation id="850875081535031620">نرم‌افزار مضری پیدا نشد</translation>
 <translation id="8512476990829870887">پایان دادن به فرآیند</translation>
 <translation id="851263357009351303">همیشه <ph name="HOST" /> مجاز باشد تصاویر را نشان دهد</translation>
-<translation id="8513191386157529469">«<ph name="CLIENT_NAME" />» در حال اشکال‌زدایی این مرورگر است.</translation>
 <translation id="8521475323816527629">دسترسی سریع به برنامه‌ها</translation>
 <translation id="8523493869875972733">حفظ تغییرات</translation>
 <translation id="8523849605371521713">به‌موجب خط‌مشی اضافه شد</translation>
@@ -4796,7 +4735,6 @@
 <translation id="8620765578342452535">پیکربندی اتصالات شبکه</translation>
 <translation id="8620790565535071193">اسکن نشد</translation>
 <translation id="8622877356447980900">می‌خواهید این صفحه ترجمه شود؟</translation>
-<translation id="8623004009673949077">‏برنامه با ویژگی مانیفست «kiosk_only» باید در حالت کیوسک سیستم عامل Chrome نصب شود.</translation>
 <translation id="8624205858755890468">«دستیار» را برای نمایش اطلاعات، برنامه‌ها و کنش‌های مرتبط فعال می‌کند.</translation>
 <translation id="862542460444371744">&amp;برنامه های افزودنی</translation>
 <translation id="8627151598708688654">انتخاب منبع</translation>
@@ -4945,7 +4883,6 @@
 <translation id="882204272221080310">به‌روزرسانی میان‌افزار برای امنیت بیشتر.</translation>
 <translation id="8823514049557262177">کپی کردن متن &amp;پیوند</translation>
 <translation id="8824701697284169214">افزودن &amp;صفحه...</translation>
-<translation id="8827850355924932817">‏استفاده از شبکه WiFi‌ برای تعیین مکان</translation>
 <translation id="8828933418460119530">‏نام DNS</translation>
 <translation id="8830796635868321089">با تنظیمات پراکسی کنونی، بررسی برای به‌روزرسانی ناموفق بود. لطفاً <ph name="PROXY_SETTINGS_LINK_START" />تنظیمات پراکسی<ph name="PROXY_SETTINGS_LINK_END" />تان را تغییر دهید.</translation>
 <translation id="8834039744648160717">پیکربندی شبکه توسط <ph name="USER_EMAIL" /> کنترل می‌شود.</translation>
@@ -4977,9 +4914,7 @@
 <translation id="8879284080359814990">&amp;نمایش به‌صورت برگه</translation>
 <translation id="8884961208881553398">افزودن سرویس‌های جدید</translation>
 <translation id="8885197664446363138">‏Smart Lock در دسترس نیست</translation>
-<translation id="8885905466771744233">کلید خصوصی برای برنامهٔ افزودنی مشخص شده از قبل وجود دارد. از آن کلید مجدداً استفاده کنید یا ابتدا آن را حذف کنید.</translation>
 <translation id="8888432776533519951">رنگ:</translation>
-<translation id="8892992092192084762">طرح‌زمینه نصب شده "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">متأسفیم، دستگاه <ph name="DEVICE_LABEL" /> شناسایی نشد.</translation>
 <translation id="8895454554629927345">فهرست نشانک</translation>
 <translation id="88986195241502842">صفحه پایین</translation>
@@ -4994,7 +4929,6 @@
 <translation id="8908902564709148335">هشدار: پرچم --اسکریپت-نیاز-به-اقدام-دارد را در این رایانه فعال کرده‌اید که قابلیت‌های این برنامه افزودنی را محدود می‌کند. با وجود این، شاید سایر دستگاه‌ها از این پرچم پشتیبانی نکنند یا آن را فعال کرده باشند. در این دستگاه‌ها، این برنامه افزودنی می‌تواند این موارد را نیز انجام دهد:</translation>
 <translation id="8910146161325739742">اشتراک‌گذاری صفحه</translation>
 <translation id="8910222113987937043">‏تغییرات ایجادشده در نشانک‌ها، سابقه، گذرواژه‌ها و سایر تنظیمات شما با حساب Google شما دیگر همگام‌سازی نخواهد شد. بااین‌وجود داده‌های قبلاً ذخیره‌شده در حساب Google شما در آنجا می‌مانند و در <ph name="BEGIN_LINK" />داشبورد Google<ph name="END_LINK" /> می‌توانید آن‌ها را مدیریت کنید.</translation>
-<translation id="8911079125461595075">‏‫Google‏ «<ph name="EXTENSION_NAME" />» را به عنوان برنامه مخرب پرچم‌‌گذاری کرده است و از نصب آن جلوگیری شده است.</translation>
 <translation id="8912793549644936705">گسترده کردن</translation>
 <translation id="8915370057835397490">در حال بارگیری پیشنهادات</translation>
 <translation id="8916476537757519021">قاب فرعی ناشناس: <ph name="SUBFRAME_SITE" /></translation>
@@ -5100,7 +5034,6 @@
 <translation id="9074739597929991885">بلوتوث</translation>
 <translation id="9074836595010225693">‏موشواره USB متصل شد</translation>
 <translation id="9076523132036239772">متأسفم، رایانامه و گذرواژه شما تأیید نشد. ابتدا به یک شبکه متصل شوید.</translation>
-<translation id="907841381057066561">ایجاد فایل فشرده موقت هنگام بسته بندی ناموفق بود.</translation>
 <translation id="9084064520949870008">بازکردن به‌عنوان پنجره</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> توسط خط‌مشی شرکت مسدود شده است</translation>
 <translation id="9088917181875854783">لطفاً تأیید کنید که این کلیدواژه در دستگاه "<ph name="DEVICE_NAME" />" نشان داده می‌شود:</translation>
@@ -5191,11 +5124,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">عبارت ورود را وارد کنید</translation>
 <translation id="939736085109172342">پوشهٔ جدید</translation>
-<translation id="941543339607623937">کلید خصوصی نامعتبر.</translation>
 <translation id="942532530371314860">‏<ph name="APP_NAME" /> در حال اشتراک‌گذاری یک برگه Chrome و صوت است.</translation>
 <translation id="942954117721265519">تصویری در دایرکتوری وجود ندارد.</translation>
 <translation id="945522503751344254">ارسال بازخورد</translation>
-<translation id="951981865514037445"><ph name="URL" /> می‌خواهد از موقعیت مکانی دستگاه شما استفاده کند.</translation>
 <translation id="952992212772159698">فعال نشد</translation>
 <translation id="9580706199804957">‏به سرویس‌های Google متصل نشد</translation>
 <translation id="958515377357646513">برای حرکت به جلو،‌ لمس کنید.</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index 988fbca..c1e093a 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Vain salakoodaus</translation>
 <translation id="1039337018183941703">Virheellinen tai korruptoitunut tiedosto</translation>
 <translation id="1042174272890264476"><ph name="SHORT_PRODUCT_NAME" /> sisältää sisäänrakennetun RLZ-kirjaston. RLZ tuottaa ei-yksilöivän tagin, jolla voidaan mitata tietyn kampanjan aiheuttamia hakuja ja tuotteen <ph name="SHORT_PRODUCT_NAME" /> käyttöä. <ph name="PRODUCT_NAME" /> näyttää ajoittain näitä tunnisteita Google-hakujen kyselyissä.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> haluaa tallentaa suuria tietomääriä pysyvästi laitteellesi.</translation>
 <translation id="1046059554679513793">Oho, tämä nimi on jo käytössä!</translation>
 <translation id="1047431265488717055">Kopioi linkin te&amp;ksti</translation>
 <translation id="1047726139967079566">Aseta tämä sivu kirjanmerkiksi...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Palautetaanko oletushakukone?</translation>
 <translation id="1177863135347784049">Muokattu</translation>
 <translation id="1178581264944972037">Tauko</translation>
-<translation id="1179803038870941185"><ph name="URL" /> haluaa MIDI-laitteidesi täyden hallintaoikeuden.</translation>
 <translation id="1181037720776840403">Poista</translation>
 <translation id="1183237619868651138">Kohdetta <ph name="EXTERNAL_CRX_FILE" /> ei voi asentaa paikalliseen välimuistiin.</translation>
 <translation id="1185924365081634987">Voit myös kokeilla korjata verkkovirheen <ph name="GUEST_SIGNIN_LINK_START" />vierasselauksen<ph name="GUEST_SIGNIN_LINK_END" /> avulla.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Käyttää tietokoneellasi olevaa tiedostoa.}other{Käyttää # tietokoneellasi olevaa tiedostoa.}}</translation>
 <translation id="1195076408729068893">Käynnistä Smart Lock antamalla salasanasi. Seuraavan kerran kun <ph name="DEVICE_TYPE" /> on avattava lukituksesta, voit käyttää tähän puhelintasi.</translation>
 <translation id="1195447618553298278">Tuntematon virhe.</translation>
-<translation id="1196338895211115272">Yksityisen avaimen vienti epäonnistui.</translation>
 <translation id="119738088725604856">Kuvakaappausikkuna</translation>
 <translation id="1197979282329025000">Tapahtui virhe noudettaessa tulostimen <ph name="PRINTER_NAME" /> asetuksia. Tulostinta ei välttämättä ole rekisteröity palveluun <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Aloitetaan</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Järjestelmänvalvoja suosittelee tälle asetukselle tiettyä arvoa.</translation>
 <translation id="1225177025209879837">Käsitellään pyyntöä…</translation>
 <translation id="1225211345201532184">Hyllyn kohde 5</translation>
-<translation id="1225404570112441414">Lisää tämä sivusto hyllyysi, niin voit käyttää sitä milloin tahansa.</translation>
 <translation id="1227507814927581609">Todennus epäonnistui yhdistettäessä laitteeseen <ph name="DEVICE_NAME" />.</translation>
 <translation id="1230807973377071856">järjestelmävalikko</translation>
 <translation id="1232569758102978740">Nimetön</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Lisää HTML-tiedoston kirjanmerkkeihin</translation>
 <translation id="1303671224831497365">Bluetooth-laitteita ei löytynyt</translation>
 <translation id="1306606229401759371">Muuta asetuksia</translation>
-<translation id="1307398858972670978">Hallinnoi salasanojasi millä tahansa laitteella osoitteessa <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1307559529304613120">Hups! Järjestelmä ei voinut tallentaa laitteelle pitkäaikaista API-käyttötunnusta.</translation>
 <translation id="1313405956111467313">Automaattinen välityspalvelimen määritys</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Haku</translation>
 <translation id="1386387014181100145">Heipä hei!</translation>
 <translation id="138784436342154190">Palautetaanko oletusaloitussivu?</translation>
-<translation id="1389297115360905376">Tämä voidaan asentaa vain sijainnista <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Avaa tavallisella välilehdellä</translation>
-<translation id="1391807639023934267">Sivu ladattu nopeammin</translation>
 <translation id="1393283411312835250">Aurinko ja pilviä</translation>
 <translation id="1395262318152388157">Kelaamisen liukusäädin</translation>
 <translation id="1395730723686586365">Päivittäjä käynnistyi</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Olet päivittämässä tuotteen <ph name="PRODUCT_NAME" /> epävakaaseen versioon, jossa on vasta kehitysvaiheessa olevia ominaisuuksia. Ohjelman kaatumisia ja odottamattomia virheitä on odotettavissa. Jatka omalla vastuullasi.</translation>
 <translation id="1415990189994829608">Laajennusta <ph name="EXTENSION_NAME" /> (laajennustunnus <ph name="EXTENSION_ID" />) ei sallita tämäntyyppisessä ístunnossa.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Hups! Satunnaisen yksityisen RSA-avaimen luominen epäonnistui.</translation>
 <translation id="1420834118113404499">Median käyttöluvat</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, jotta laiteparin muodostus onnistuu</translation>
 <translation id="1426410128494586442">Kyllä</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opioi äänen osoite</translation>
 <translation id="1465827627707997754">Pizzapala</translation>
 <translation id="1467432559032391204">Vasemmalle</translation>
-<translation id="1467999917853307373"><ph name="URL" /> haluaa tallentaa tietoja pysyvästi laitteellesi.</translation>
-<translation id="1470719357688513792">Uudet evästeasetukset tulevat voimaan päivitettyäsi sivun.</translation>
 <translation id="1470811252759861213"><ph name="SIGN_IN_LINK" />, niin voit käyttää laajennuksia kaikilla tietokoneillasi.</translation>
 <translation id="1474339897586437869">Tiedostoa <ph name="FILENAME" /> ei lähetetty. Google Drivessasi ei ole riittävästi vapaata tallennustilaa.</translation>
 <translation id="1475502736924165259">Sinulla on tallennettuja varmenteita, jotka eivät sovi muihin luokkiin.</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Suuri hiiren osoitin</translation>
 <translation id="1543284117603151572">Edgestä tuodut</translation>
 <translation id="1545177026077493356">Automaattinen kioskitila</translation>
+<translation id="1545775234664667895">Asennettin teema <ph name="THEME_NAME" /></translation>
 <translation id="1545786162090505744">URL-osoite jonka %s käytössä ennen hakua</translation>
 <translation id="1546280085599573572">Tämä laajennus on vaihtanut Etusivu-painikkeella avattavan sivun.</translation>
 <translation id="1547572086206517271">Päivitä sivu</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />tarkistaa<ph name="END_BOLD" />, missä sivustoissa valvottu käyttäjä on käynyt, sekä
     <ph name="BEGIN_BOLD" />hallinnoida<ph name="END_BOLD" /> muita asetuksia.</translation>
 <translation id="1648943974594387137">Kirjautumistiedot ovat vanhentuneet.</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> riviä ei näytetä&gt;</translation>
 <translation id="1650371550981945235">Näytä syöttöasetukset</translation>
 <translation id="1650709179466243265">Lisää www. ja .com ja avaa osoite</translation>
 <translation id="1651008383952180276">Kirjoita sama tunnuslause kahdesti.</translation>
-<translation id="1652972346408808053">Salasana tallennettu. Hallinnoi salasanojasi millä tahansa laitteella osoitteessa <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Lisää tulostin Google Cloud Printiin, jotta voit tulostaa mistä tahansa.}other{Lisää # tulostinta Google Cloud Printiin, jotta voit tulostaa mistä tahansa.}}</translation>
 <translation id="1657406563541664238">Auta parantamaan tuotetta <ph name="PRODUCT_NAME" /> lähettämällä automaattisesti käyttötilastoja ja virheraportteja Googlelle.</translation>
 <translation id="1658424621194652532">Tämä sivu käyttää mikrofoniasi.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Estä evästeet edelleen</translation>
 <translation id="204622017488417136">Laitteeseesi palautetaan aiemmin asennettu Chromen versio. Kaikki käyttäjätilit ja paikalliset tiedot poistetaan. Tätä ei voi kumota.</translation>
 <translation id="2048182445208425546">Käyttää verkkoliikennettäsi</translation>
-<translation id="2049137146490122801">Järjestelmänvalvojasi on estänyt sinua käyttämästä koneelle tallennettuja tiedostoja.</translation>
 <translation id="204914487372604757">Luo pikakuvake</translation>
 <translation id="2050339315714019657">Pystysuunta</translation>
 <translation id="2053312383184521053">Tiedot käyttämätön-tilassa</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ei vielä ladattu</translation>
 <translation id="2107494551712864447">Lisää sormenjälki</translation>
-<translation id="2111843886872897694">Sovelluksen näyttämiseen on käytettävä isäntää, johon sovellus vaikuttaa.</translation>
 <translation id="2112877397266219826">Ota kosketussäädin käyttöön, jotta voit määrittää minut</translation>
 <translation id="21133533946938348">Kiinnitä välilehti</translation>
 <translation id="2113479184312716848">Avaa &amp;tiedosto...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Kerro, mitä tapahtuu</translation>
 <translation id="2229161054156947610">Yli tunti jäljellä</translation>
 <translation id="222931766245975952">Tiedosto katkaistu</translation>
-<translation id="222949136907494149"><ph name="URL" /> haluaa käyttää tietokoneesi sijaintia.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Kansiota <ph name="FOLDER_NAME" /> ei voi luoda. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Katso päivän Doodle klikkaamalla.</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Estä aina mikrofonin käyttö</translation>
 <translation id="2367972762794486313">Näytä sovellukset</translation>
 <translation id="2371076942591664043">Avaa, kun val&amp;mis</translation>
-<translation id="237336063998926520">Määritä sijainti IP-osoitteesi avulla</translation>
 <translation id="2377319039870049694">Vaihda luettelonäkymään</translation>
 <translation id="2377667304966270281">Levyn sivuvirheet</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> tiedostoa on valittu</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> pyytää lupaa kopioida tiedostoja tallennusvälineeltä <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Varmenteen myöntäjän avaimen tunnus</translation>
 <translation id="2462752602710430187">Lisättiin <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Tuo kirjanmerkkejä</translation>
 <translation id="2464089476039395325">HTTP-välityspalvelin</translation>
 <translation id="2468902267404883140">Puhelimeesi ei voitu muodostaa yhteyttä. Varmista, että käytät yhteensopivaa Android-laitetta ja että se on käden ulottuvilla. &lt;a&gt;Lisätietoja&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Ei-tuetut laajennukset poistettu käytöstä</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Poista</translation>
 <translation id="2487067538648443797">Lisää kirjanmerkki</translation>
 <translation id="248861575772995840">Puhelintasi ei löydy. Varmista, että laitteen <ph name="DEVICE_TYPE" /> Bluetooth on otettu käyttöön. &lt;a&gt;Lisätietoja&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Laajennus (<ph name="PLUGIN_NAME" />) ei vastaa.</translation>
 <translation id="2489428929217601177">eilinen</translation>
 <translation id="2489918096470125693">Lisää kansio...</translation>
 <translation id="249113932447298600">Laitetta <ph name="DEVICE_LABEL" /> ei tueta tällä hetkellä.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Onnittelut! Tiedonsiirtopalvelusi <ph name="NAME" /> on aktivoitu ja käyttövalmis.</translation>
 <translation id="2566124945717127842">Palauta <ph name="IDS_SHORT_PRODUCT_NAME" />-laitteesi alkuperäiseen tilaan suorittamalla Powerwash.</translation>
 <translation id="2568774940984945469">Tietopalkki</translation>
-<translation id="2570000010887652771">Tiedot tallennettu</translation>
 <translation id="257088987046510401">Teemat</translation>
 <translation id="2572032849266859634">Laajennukselle myönnettiin vain luku -oikeus tallennusvälineeseen <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Valitse kuva ja nimi</translation>
 <translation id="2575247648642144396">Tämä kuvake näkyy, kun laajennus voi toimia nykyisellä sivulla. Ota laajennus käyttöön klikkaamalla kuvaketta tai painamalla <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Puhelintasi ei löydy. Varmista, että <ph name="DEVICE_TYPE" /> on yhteydessä Wi-Fi- tai mobiiliverkkoon. &lt;a&gt;Lisätietoja&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Tämän niminen CRX-tiedosto on jo olemassa.</translation>
 <translation id="257779572837908839">Määritä Chromebox kokouksille ‑tilaan</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Osaa ei voi poistaa käytöstä<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Jos poistat varmenteen myöntäjän varmenteen, selaimesi ei enää luota tämän myöntäjän varmenteisiin.</translation>
 <translation id="2653659639078652383">Lähetä</translation>
 <translation id="265390580714150011">Kentän arvo</translation>
-<translation id="2654286334048437383">Vie kirjanmerkkejä</translation>
 <translation id="2655386581175833247">Käyttäjävarmenne:</translation>
 <translation id="2660779039299703961">Tapahtuma</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Lisää mediagalleria hakemiston mukaan</translation>
 <translation id="2908789530129661844">Zoomaa kauemmas</translation>
 <translation id="2910318910161511225">Muodosta yhteys verkkoon ja yritä uudelleen.</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> haluaa käyttää mikrofonia.</translation>
 <translation id="2913331724188855103">Salli sivustojen tallentaa ja lukea evästetietoja (suositus).</translation>
 <translation id="2916073183900451334">Sarkaimen painaminen verkkosivulla korostaa linkit ja lomakekentät</translation>
 <translation id="2916745397441987255">Hae laajennuksia</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Kuunnellaan…</translation>
 <translation id="3141917231319778873">Annettua pyyntöä ei tueta laitteella <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">VALMIS</translation>
-<translation id="3144135466825225871">CRX-tiedoston korvaaminen epäonnistui. Tarkista, onko tiedosto käytössä.</translation>
 <translation id="3144647712221361880">Avaa linkki käyttäjänä</translation>
 <translation id="3149510190863420837">Chrome-sovellukset</translation>
 <translation id="3150927491400159470">Pakotettu päivitys</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Suorita aina kaikilla sivustoilla</translation>
 <translation id="3312424061798279731">Käytössä olevat kielet</translation>
 <translation id="3312903956926554846">Asenna työpöydälle</translation>
-<translation id="3313473140726597081">Aloitussivuksi vaihdettiin <ph name="URL" />. Jos haluat poistaa käytöstä laajennuksia, jotka voivat vaihtaa aloitussivusi, klikkaa Palauta.</translation>
 <translation id="3313590242757056087">Jos haluat määrittää, mitä verkkosivustoja valvottu käyttäjä voi katsella, voit määrittää rajoitukset
     ja asetukset osoitteessa <ph name="MANAGEMENT_URL" />.
     Jos et halua muuttaa oletusasetuksia, <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Sovelluksen tiedot</translation>
 <translation id="3335947283844343239">Avaa suljettu välilehti uudelleen</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> estettiin, koska se on vanhentunut.</translation>
 <translation id="3340978935015468852">asetuksissa</translation>
 <translation id="3341703758641437857">Salli tiedostojen URL-osoitteiden käyttö</translation>
 <translation id="3342361181740736773"><ph name="TRIGGERING_EXTENSION_NAME" /> haluaa poistaa tämän laajennuksen.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Kirjanmerkki lisättiin</translation>
 <translation id="3389312115541230716">Klikkaa tehtäväpalkissa olevaa <ph name="SMALL_PRODUCT_LOGO" />-kuvaketta hiiren kakkospainikkeella.</translation>
 <translation id="3391716558283801616">Välilehti 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> haluaa käyttää kameraa ja mikrofonia.</translation>
 <translation id="3396331542604645348">Valittu tulostin ei ole käytettävissä tai oikein asennettu. Varmista, että tulostin on kunnossa, tai valitse toinen tulostin.</translation>
 <translation id="3399432415385675819">Ilmoitukset poistetaan käytöstä.</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome päivitetään automaattisesti, joten käytössäsi on aina uusin versio</translation>
 <translation id="3551320343578183772">Sulje välilehti</translation>
 <translation id="3552780134252864554">Tyhjennetty poistumisen yhteydessä</translation>
-<translation id="355298399003313926"><ph name="URL" /> haluaa vastata esteettömyystapahtumiin.</translation>
 <translation id="3555812735919707620">Poista laajennus</translation>
 <translation id="3556000484321257665">Hakukoneeksi vaihdettiin <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Yksityisen avaimen syötearvon täytyy olla kelvollinen polku.</translation>
 <translation id="3563432852173030730">Kioskisovelluksen lataaminen ei onnistunut.</translation>
 <translation id="3564334271939054422">Käyttämäsi Wi-Fi-verkko (<ph name="NETWORK_ID" />) saattaa edellyttää kirjautumista.</translation>
 <translation id="3564708465992574908">Zoomaustasot</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Varmenteen nimirajoitukset</translation>
 <translation id="3596235046596950091">Ota pilvipalvelut käyttöön</translation>
 <translation id="3599863153486145794">Tyhjentää kaikkien sisäänkirjautuneiden laitteiden historian. Google-tililläsi voi olla muuta toimintaa osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Järjestelmänvalvojasi on estänyt sinua käyttämästä laitteeseen tallennettuja tiedostoja.</translation>
 <translation id="3600792891314830896">Mykistä ääniä toistavat sivustot</translation>
 <translation id="3603177256297531067">Sivua ei voi kääntää</translation>
 <translation id="3603533104205588786">Voit lisätä sivun kirjanmerkkeihin klikkaamalla tähteä.</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Kuvakaappaukset poissa käytöstä</translation>
 <translation id="3625870480639975468">Nollaa zoomaus</translation>
 <translation id="3626281679859535460">Kirkkaus</translation>
-<translation id="3627052133907344175">Laajennus edellyttää sovellusliittymän <ph name="IMPORT_NAME" /> vähimmäisversiota <ph name="IMPORT_VERSION" />, mutta asennettuna on vain versio <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Alle minuutti jäljellä</translation>
 <translation id="3627588569887975815">Avaa linkki inco&amp;gnito-ikkunassa</translation>
 <translation id="3627671146180677314">Netscape-varmenteen uusimisaika</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Kieliasetukset</translation>
 <translation id="3668823961463113931">Käsittelypalvelut</translation>
 <translation id="3670229581627177274">Ota Bluetooth käyttöön</translation>
-<translation id="3672159315667503033"><ph name="URL" /> haluaa tallentaa suuria tietomääriä pysyvästi paikalliselle tietokoneelle.</translation>
 <translation id="3672681487849735243">Tehdasvirhe on havaittu</translation>
 <translation id="367645871420407123">Jätä tyhjäksi, jos haluat asettaa pääkäyttäjän salasanaksi oletustestikuvan arvon.</translation>
 <translation id="3678156199662914018">Laajennus: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Olet offline-tilassa</translation>
 <translation id="3788401245189148511">Se voisi:</translation>
 <translation id="3789841737615482174">Asenna</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> toimii vain työpöytätilassa.</translation>
 <translation id="379082410132524484">Korttisi on vanhentunut.</translation>
 <translation id="3792890930871100565">Irrota tulostimet</translation>
 <translation id="379422718204375917">Kirjaudu sisään tilillesi Smart Lockin avulla</translation>
-<translation id="3794595850995182458">Poistumissivu</translation>
 <translation id="3796648294839530037">Suosikkiverkot:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />-haku termillä <ph name="SEARCH_TERMS" /></translation>
 <translation id="3798325802885154040">Voit ottaa napauttamalla klikkaamisen käyttöön tai poistaa sen käytöstä.</translation>
@@ -1979,7 +1947,6 @@
 <translation id="3979748722126423326">Ota käyttöön <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Annoit virheellisen tallennustyypin.</translation>
 <translation id="3983586614702900908">tuntemattoman myyjän laitteet</translation>
-<translation id="3984413272403535372">Virhe allekirjoittaessa varmennetta.</translation>
 <translation id="3987938432087324095">En saanut selvää.</translation>
 <translation id="3988996860813292272">Valitse aikavyöhyke</translation>
 <translation id="3989635538409502728">Kirjaudu ulos</translation>
@@ -2035,7 +2002,6 @@
 <translation id="4087470595660267445">Asenna sovelluksia ja pelejä Google Playsta Chromebookille. &lt;a target="_blank" href="<ph name="URL" />"&gt;Lisätietoja&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Hyväksy ryhmän puolesta</translation>
 <translation id="4090103403438682346">Ota käyttöön vahvistettu käyttö</translation>
-<translation id="4090404313667273475">Joidenkin tämän sivun osien näyttämiseen tarvitaan laajennus <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Tämä laajennus on hallinnoitu eikä sitä voi poistaa.)</translation>
 <translation id="4091434297613116013">paperiarkkia</translation>
 <translation id="4093955363990068916">Paikallinen tiedosto:</translation>
@@ -2369,7 +2335,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> voi nyt synkronoida salasanasi</translation>
 <translation id="4715553623069266137">hyvin lyhyt (0,8 s)</translation>
 <translation id="4716483597559580346">Paranna suojausta powerwashin avulla</translation>
-<translation id="471800408830181311">Yksityisen avaimen tulostus ei onnistunut.</translation>
 <translation id="4720113199587244118">Lisää laitteita</translation>
 <translation id="4720185134442950733">Mobiiliverkko</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> jakaa näyttösi.</translation>
@@ -2506,7 +2471,6 @@
 <translation id="4917385247580444890">Vahva</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> haluaa viestiä laajennuksen <ph name="EXTENSION_NAME" /> kanssa.</translation>
 <translation id="4918086044614829423">Hyväksy</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> haluaa käyttää kameraa.</translation>
 <translation id="4920887663447894854">Seuraavia sivustoja on estetty käyttämästä sijaintiasi tällä sivulla:</translation>
 <translation id="492299503953721473">Poista Android-sovellukset</translation>
 <translation id="4923279099980110923">Kyllä, haluan auttaa</translation>
@@ -2547,7 +2511,6 @@
 <translation id="4980805016576257426">Tämä laajennus sisältää haittaohjelmia.</translation>
 <translation id="498294082491145744">Muokata asetuksia, jotka ohjaavat verkkosivustojen käyttöoikeutta ominaisuuksiin, kuten evästeisiin, JavaScriptiin, laajennuksiin, sijaintiin, mikrofoniin, kameraan jne.</translation>
 <translation id="4988526792673242964">Sivut</translation>
-<translation id="4988792151665380515">Julkisen avaimen vienti epäonnistui.</translation>
 <translation id="49896407730300355">Käännä &amp;vastapäivään</translation>
 <translation id="4989966318180235467">Tarkista &amp;taustasivu</translation>
 <translation id="4990343175649730969">Lataa Chrome Cleanup Tool</translation>
@@ -2576,7 +2539,6 @@
 <translation id="5026874946691314267">Älä näytä tätä uudelleen</translation>
 <translation id="5027550639139316293">Sähköpostivarmenne</translation>
 <translation id="5027562294707732951">Lisää laajennus</translation>
-<translation id="5028012205542821824">Asennus ei ole käytössä.</translation>
 <translation id="5029568752722684782">Poista kopio</translation>
 <translation id="5030338702439866405">Myöntänyt</translation>
 <translation id="5036662165765606524">Älä anna sivustojen ladata useita tiedostoja automaattisesti</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">Tapahtui virhe.</translation>
 <translation id="5094721898978802975">Kommunikoi yhteistyötä tekevien natiivisovellusten kanssa</translation>
 <translation id="5097002363526479830">Yhteyden muodostaminen verkkoon "<ph name="NAME" />" epäonnistui: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Pakattavaan tiedostoon ei löydy absoluuttista polkua.</translation>
 <translation id="5099354524039520280">ylös</translation>
 <translation id="5100114659116077956">Chromebox on päivitettävä, jotta saat uusimmat ominaisuudet käyttöön.</translation>
 <translation id="5101042277149003567">Avaa kaikki kirjanmerkit</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">Näytä kansiossa</translation>
 <translation id="5171045022955879922">Kirjoita hakusanoja tai URL-osoite</translation>
 <translation id="5171343362375269016">Vaihdettu muisti</translation>
-<translation id="5175870427301879686"><ph name="URL" /> haluaa tallentaa tietoja pysyvästi paikalliselle tietokoneelle.</translation>
 <translation id="5177479852722101802">Estä kameran ja mikrofonin käyttö edelleen</translation>
 <translation id="5177526793333269655">Pikkukuvanäkymä</translation>
 <translation id="5177549709747445269">Käytät mobiilitiedonsiirtoa</translation>
@@ -2740,7 +2700,6 @@
 <translation id="529175790091471945">Alusta tämä laite</translation>
 <translation id="5293170712604732402">Palauta kaikki asetukset alkuperäisiksi</translation>
 <translation id="5298219193514155779">Teeman loi</translation>
-<translation id="5298363578196989456">Laajennusta <ph name="IMPORT_NAME" /> ei voi tuoda, koska se ei ole jaettu moduuli.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Kaikki tiedot on salattu oman synkronoinnin tunnuslauseesi avulla</translation>
 <translation id="5300589172476337783">Näytä</translation>
@@ -2768,7 +2727,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> haluaa muodostaa laiteparin</translation>
 <translation id="5332624210073556029">Aikavyöhyke:</translation>
 <translation id="5334142896108694079">Ohjelmavälimuisti</translation>
-<translation id="533433379391851622">Odotettiin versiota <ph name="EXPECTED_VERSION" />, mutta versio oli <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Näytä lähdekoodi</translation>
 <translation id="5335458522276292100">Varmuuskopioidaan <ph name="FILE_COUNT" /> <ph name="BEGIN_LINK" />Google Driveen<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Kolmannen osapuolen asentama.</translation>
@@ -2806,7 +2764,6 @@
 <translation id="5390100381392048184">Salli sivustojen toistaa ääniä</translation>
 <translation id="5390284375844109566">Indeksoitu tietokanta</translation>
 <translation id="5390743329570580756">Lähetä:</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> -laajennus verkkotunnuksessa <ph name="PEPPER_PLUGIN_DOMAIN" /> haluaa käyttää tietokonettasi.</translation>
 <translation id="5397794290049113714">Sinä</translation>
 <translation id="5398572795982417028">Sivuviittaus on rajojen ulkopuolella. Raja on <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Mainokset estetty</translation>
@@ -2868,7 +2825,6 @@
 <translation id="5485754497697573575">Palauta kaikki välilehdet</translation>
 <translation id="5486261815000869482">Vahvista salasana</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> jakaa ruutusi välilehden <ph name="TAB_NAME" /> kanssa.</translation>
-<translation id="5486326529110362464">Yksityisen avaimen syötearvoa ei ole olemassa.</translation>
 <translation id="5486561344817861625">Simuloi selaimen uudelleenkäynnistys</translation>
 <translation id="5487521232677179737">Poista tiedot</translation>
 <translation id="5488093641312826914"><ph name="COPIED_ITEM_NAME" /> kopioitu</translation>
@@ -2951,7 +2907,6 @@
 <translation id="5600706100022181951">Päivityksen lataukseen käytetään <ph name="UPDATE_SIZE_MB" /> Mt mobiilidataa. Haluatko jatkaa?</translation>
 <translation id="5601503069213153581">PIN-koodi</translation>
 <translation id="5605623530403479164">Muut hakukoneet</translation>
-<translation id="5606674617204776232">Laajennus <ph name="PEPPER_PLUGIN_NAME" /> verkkotunnuksessa <ph name="PEPPER_PLUGIN_DOMAIN" /> haluaa käyttää laitettasi.</translation>
 <translation id="5608580678041221894">Muokkaa tai siirrä rajattua aluetta seuraavilla näppäimillä.</translation>
 <translation id="5609231933459083978">Sovellus vaikuttaa virheelliseltä.</translation>
 <translation id="5610038042047936818">Vaihda kameratilaan</translation>
@@ -3194,7 +3149,6 @@
 <translation id="5990386583461751448">Käännetty</translation>
 <translation id="5991049340509704927">Suurenna</translation>
 <translation id="5993332328670040093">Datankäyttöäsi ei enää mitata.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> ei välttämättä pysty päivittämään itseään.</translation>
 <translation id="600424552813877586">Virheellinen sovellus.</translation>
 <translation id="6005695835120147974">Mediareititin</translation>
 <translation id="6006484371116297560">Perinteinen</translation>
@@ -3219,6 +3173,7 @@
 <translation id="604001903249547235">Pilvivarmuuskopiointi</translation>
 <translation id="6040143037577758943">Sulje</translation>
 <translation id="6040852767465482106">Anonyymi henkilöllisyys</translation>
+<translation id="6041155700700864984">Poistu koko näytön tilasta</translation>
 <translation id="604124094241169006">Automaattinen</translation>
 <translation id="6042169520002885235">Valitse tulostimen valmistaja ja malli</translation>
 <translation id="6042308850641462728">Lisää</translation>
@@ -3235,7 +3190,6 @@
 <translation id="6056710589053485679">Normaali päivitys</translation>
 <translation id="6059652578941944813">Varmennehierarkia</translation>
 <translation id="6059925163896151826">USB-laitteet</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> on kaatunut.</translation>
 <translation id="6064217302520318294">Näytön lukitus</translation>
 <translation id="6065289257230303064">Varmenteen kohdehakemiston attribuutit</translation>
 <translation id="6068338049763724728">Käytä etäkäyttöönottoa</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Sallii näytön resoluution säätämisen.</translation>
 <translation id="6238923052227198598">Jätä viimeisin muistiinpano lukitusnäytölle</translation>
 <translation id="6239558157302047471">Lataa kehys uudelleen</translation>
-<translation id="624022915548992686">Poistumissivu</translation>
 <translation id="6241530762627360640">Käyttää järjestelmäsi kanssa laitepariksi liitettyjen Bluetooth-laitteiden tietoja ja löytää lähellä olevia Bluetooth-laitteita.</translation>
 <translation id="6243774244933267674">Palvelin ei ole käytettävissä</translation>
 <translation id="6246413617632217567">Valvotun käyttäjän tuonti epäonnistui. Tarkista kiintolevytila ja käyttöluvat ja yritä sitten uudelleen.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Tuntematon verkkovirhe</translation>
 <translation id="6313641880021325787">POISTU VR:STÄ</translation>
 <translation id="6314819609899340042"><ph name="IDS_SHORT_PRODUCT_NAME" />-laitteen virheenkorjausominaisuuksien käyttöönotto onnistui.</translation>
-<translation id="6315343732431721770">Aloitussivujasi muokattiin, ja niihin sisältyy nyt <ph name="URL" />. Jos haluat poistaa käytöstä laajennuksia, jotka voivat vaihtaa aloitussivusi, klikkaa Palauta.</translation>
 <translation id="6315493146179903667">Siirrä kaikki etualalle</translation>
 <translation id="6316806695097060329">Tämä <ph name="SHORT_PRODUCT_NAME" />-laite on suunniteltu antamaan sinulle paras mahdollinen verkkokokemus.</translation>
 <translation id="6317318380444133405">Ei enää tueta</translation>
 <translation id="6317369057005134371">Odotetaan sovellusikkunaa…</translation>
 <translation id="6318407754858604988">Lataus aloitettu</translation>
-<translation id="6322279351188361895">Yksityisen avaimen lukeminen epäonnistui.</translation>
 <translation id="6325191661371220117">Poista automaattinen käynnistys käytöstä</translation>
 <translation id="6326175484149238433">Poista Chromesta</translation>
 <translation id="6326855256003666642">Käyttävien toimintojen määrä</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Valitse synkronoitavat kohteet</translation>
 <translation id="6333064448949140209">Tiedosto lähetetään Googlelle virheenkorjausta varten.</translation>
 <translation id="6333834492048057036">Tarkenna osoitepalkkiin hakua varten</translation>
-<translation id="6336907568130557310">Salasanasi näkyvät kaikille, jotka näkevät viedyn tiedoston. Älä jaa tiedostoa kenenkään kanssa ja poista se tuonnin jälkeen.</translation>
 <translation id="6339668969738228384">Luo uusi profiili käyttäjälle <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Palvelimeen ei saatu yhteyttä. Tarkista verkkoyhteytesi ja yritä uudelleen. Jos ongelma jatkuu, käynnistä Chromebook uudelleen.</translation>
 <translation id="6340071272923955280">Internet-tulostusprotokolla (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Sivustot voivat lukea ja tallentaa evästetietoja.</translation>
 <translation id="6388771388956873507">Etsi laitteen sormenjälkitunnistin ja kosketa sitä sormellasi.</translation>
 <translation id="6390799748543157332">Tässä ikkunassa katselemasi sivut eivät näy selaushistoriassa, eikä niistä jää tietokoneelle muita jälkiä, kuten evästeitä, suljettuasi kaikki vierailijaikkunat. Kaikki lataamasi tiedostot kuitenkin säilytetään.</translation>
-<translation id="6391538222494443604">Syöttöhakemistoa ei ole olemassa.</translation>
 <translation id="6395423953133416962">Lähetä <ph name="BEGIN_LINK1" />järjestelmän tiedot<ph name="END_LINK1" /> ja <ph name="BEGIN_LINK2" />tilastot<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Lopeta puhuminen</translation>
 <translation id="6397592254427394018">Avaa kaikki kirjanmerkit incognito-ikkunassa</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Hallinnoi JavaScriptin estoa...</translation>
 <translation id="6459488832681039634">Hae valinnan avulla</translation>
 <translation id="6460601847208524483">Hae seuraava</translation>
-<translation id="6462080265650314920">Sovellusten näyttämiseen tulee käyttää sisältötyyppiä <ph name="CONTENT_TYPE" />.</translation>
 <translation id="6462082050341971451">Oletko vielä siellä?</translation>
 <translation id="6463795194797719782">M&amp;uokkaa</translation>
 <translation id="6466988389784393586">Avaa kaikki kirjanmerkit</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Haluatko, että Google kääntää tämän sivun kielestä <ph name="SOURCE_LANGUAGE" /> kieleen <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Osoitinlaite yhdistetty.</translation>
-<translation id="6677037229676347494">Odotettiin tunnusta <ph name="EXPECTED_ID" />, mutta tunnus oli <ph name="NEW_ID" />.</translation>
 <translation id="6678717876183468697">Kyselyn URL-osoite</translation>
 <translation id="6680028776254050810">Vaihda käyttäjää</translation>
 <translation id="6680442031740878064">Käytettävissä: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Voit koska tahansa muokata <ph name="BEGIN_LINK" />asetuksista<ph name="END_LINK" />, mitä tietoja Google kerää.</translation>
 <translation id="6904344821472985372">Peruuta pääsy tiedostoon</translation>
 <translation id="6904655473976120856">Sulje painamalla Sovellukset-painiketta.</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> haluaa jakaa laitteesi näytön.</translation>
-<translation id="6909461304779452601">Sovelluksia, laajennuksia ja käyttäjien komentosarjoja ei voida lisätä tästä verkkosivustosta.</translation>
 <translation id="6910211073230771657">Poistettu</translation>
 <translation id="691024665142758461">ladata useita tiedostoja</translation>
 <translation id="6911324888870229398">Verkkoyhteys katkesi. Tarkista yhteys tai kokeile toista Wi-Fi-verkkoa.</translation>
@@ -4104,7 +4049,6 @@
 <translation id="747114903913869239">Virhe: laajennuksen koodauksen purkaminen ei onnistunut</translation>
 <translation id="7473891865547856676">Ei kiitos</translation>
 <translation id="747459581954555080">Palauta kaikki</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> on havainnut virheen.</translation>
 <translation id="7475671414023905704">Netscapen unohtunut salasana -URL</translation>
 <translation id="7476454130948140105">Akun varaus ei riitä päivittämiseen (<ph name="BATTERY_PERCENT" /> %).</translation>
 <translation id="7477347901712410606">Jos olet unohtanut tunnuslauseen, keskeytä ja nollaa synkronointi <ph name="BEGIN_LINK" />Google-hallintapaneelin<ph name="END_LINK" /> kautta.</translation>
@@ -4141,7 +4085,6 @@
 <translation id="7507930499305566459">Tilavastausvarmenne</translation>
 <translation id="7508545000531937079">Diaesitys</translation>
 <translation id="7513029293694390567">Kirjaudu automaattisesti verkkosivustoille käyttämällä tallennettuja kirjautumistietoja. Jos toiminto ei ole käytössä, sinua pyydetään vahvistamaan kirjautuminen aina, kun kirjaudut sivustolle.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> haluaa tunnistaa laitteesi suojatun sisällön toistamista varten.</translation>
 <translation id="7517569744831774757">Palauta kaikki asetukset alkuperäisiksi.</translation>
 <translation id="7517786267097410259">Luo salasana –</translation>
 <translation id="7518150891539970662">WebRTC-lokit (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4171,7 +4114,6 @@
     yrittää luoda valvotun käyttäjän uudelleen.</translation>
 <translation id="756445078718366910">Avaa selainikkuna</translation>
 <translation id="7564847347806291057">Lopeta prosessi</translation>
-<translation id="7565291891798266313">Hakukoneeksi vaihdettiin <ph name="URL" />. Jos haluat poistaa käytöstä laajennuksia, jotka voivat vaihtaa hakukoneesi, klikkaa Palauta.</translation>
 <translation id="7566118625369982896">Hallinnoi Play-sovelluksen linkkejä</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome-tiedot tyhjennetty</translation>
@@ -4180,7 +4122,6 @@
 <translation id="7573172247376861652">Akun varaus</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Kokoa</translation>
-<translation id="7577815336900970562">Paikanna Wi-Fi- tai mobiiliverkoilla</translation>
 <translation id="7579149537961810247">Mykistä sivustoja</translation>
 <translation id="7580671184200851182">Toista äänet samanlaisina kaikista kaiuttimista (monotoisto)</translation>
 <translation id="7581462281756524039">Poistotyökalu</translation>
@@ -4287,6 +4228,7 @@
 <translation id="7773726648746946405">Käyttökerran tallennustila</translation>
 <translation id="7781335840981796660">Kaikki käyttäjätilit ja paikalliset tiedot poistetaan.</translation>
 <translation id="7782102568078991263">Ei enää ehdotuksia Googlelta</translation>
+<translation id="778330624322499012">Laajennusta <ph name="PLUGIN_NAME" /> ei voitu ladata</translation>
 <translation id="7784067724422331729">Tietokoneesi suojausasetukset estivät tämän tiedoston.</translation>
 <translation id="7786207843293321886">Lopeta vierailijakäyttö</translation>
 <translation id="7786889348652477777">&amp;Lataa sovellus uudelleen</translation>
@@ -4448,7 +4390,6 @@
 <translation id="8001504501378762252">Sivusto saattoi juuri varastaa salasanasi</translation>
 <translation id="8004582292198964060">Selain</translation>
 <translation id="8008356846765065031">Internetyhteys katkaistu. Tarkista internetyhteytesi.</translation>
-<translation id="8008765610824028412">Laajennuksen <ph name="PLUGIN_NAME" /> lataus epäonnistui.</translation>
 <translation id="8008818777654712271">Lähetä automaattisesti joitain järjestelmän tietoja ja sivujen sisältöjä Googlelle auttaaksesi sitä havaitsemaan vaarallisia sovelluksia ja sivustoja.</translation>
 <translation id="8012382203418782830">Tämä sivu on käännetty.</translation>
 <translation id="8014154204619229810">Päivitysohjelma on käynnissä. Lataa sivu hetken kuluttua uudelleen ja tarkista tilanne.</translation>
@@ -4565,7 +4506,6 @@
 <translation id="8191230140820435481">Hallita sovelluksia, laajennuksia ja teemoja</translation>
 <translation id="8191453843330043793">V8-välityspalvelimen selvittäjä</translation>
 <translation id="8195027750202970175">Tiedoston koko</translation>
-<translation id="8195739004487400241">Etusivuksi vaihdettiin <ph name="URL" />. Jos haluat poistaa käytöstä laajennuksia, jotka voivat vaihtaa etusivusi, klikkaa Palauta.</translation>
 <translation id="8199300056570174101">Verkon ja laitteen ominaisuudet</translation>
 <translation id="8200772114523450471">Jatka</translation>
 <translation id="8202160505685531999">Päivitä <ph name="DEVICE_TYPE" />-profiilisi kirjoittamalla salasanasi uudelleen.</translation>
@@ -4609,7 +4549,6 @@
 <translation id="8261378640211443080">Tätä laajennusta ei löydy kohteesta <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, ja se on voitu lisätä ilman lupaasi.</translation>
 <translation id="8261387128019234107">Lisää tili henkilölle <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Poista</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ei ole käytössä tässä versiossa.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> poisti hiiren osoittimen käytöstä.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> käynnisti koko ruudun tilan.</translation>
 <translation id="8270242299912238708">PDF-dokumentit</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">Tai valitse uusi verkko:</translation>
 <translation id="845627346958584683">Päättymisaika</translation>
 <translation id="8456681095658380701">Nimi ei kelpaa</translation>
+<translation id="8457451314607652708">Tuo kirjanmerkkejä</translation>
 <translation id="8460336040822756677">Jos poistat käytöstä Smart Lockin laitteelle <ph name="DEVICE_TYPE" />, et voi avata Chrome-laitteiden lukitusta käyttämällä puhelintasi. Sinun täytyy antaa salasanasi.</translation>
 <translation id="8461329675984532579">Kotiverkon palveluntarjoajan nimi</translation>
 <translation id="84613761564611563">Verkon määrityksen käyttöliittymää pyydettiin, odota hetki…</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">Haittaohjelmia ei löytynyt.</translation>
 <translation id="8512476990829870887">Lopeta prosessi</translation>
 <translation id="851263357009351303">Salli aina sivuston <ph name="HOST" /> näyttää kuvia</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> jäljittää ja korjaa tämän selaimen virheitä.</translation>
 <translation id="8521475323816527629">Avaa sovelluksia nopeasti</translation>
 <translation id="8523493869875972733">Säilytä muutokset</translation>
 <translation id="8523849605371521713">Käytännön lisäämä</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">Määrittää verkkoyhteydet</translation>
 <translation id="8620790565535071193">Haku epäonnistui</translation>
 <translation id="8622877356447980900">Haluatko kääntää tämän sivun?</translation>
-<translation id="8623004009673949077">Sovellukset, joilla on luettelomäärite kiosk_only, täytyy asentaa Chrome-käyttöjärjestelmän kioskitilassa.</translation>
 <translation id="8624205858755890468">Sallii Assistantin näyttää kohteisiin liittyviä tietoja, sovelluksia ja toimintoja.</translation>
 <translation id="862542460444371744">Laaj&amp;ennukset</translation>
 <translation id="8627151598708688654">Valitse lähde</translation>
@@ -4946,7 +4884,6 @@
 <translation id="882204272221080310">Paranna suojausta päivittämällä laiteohjelmisto.</translation>
 <translation id="8823514049557262177">Kopioi linkin te&amp;ksti</translation>
 <translation id="8824701697284169214">Lisää sivu...</translation>
-<translation id="8827850355924932817">Paikanna Wi-Fi-verkolla</translation>
 <translation id="8828933418460119530">DNS-nimi</translation>
 <translation id="8830796635868321089">Päivitystarkistus epäonnistui nykyisillä välityspalvelinasetuksilla. Muuta <ph name="PROXY_SETTINGS_LINK_START" />välityspalvelinasetuksia<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> ohjaa verkon määritystä.</translation>
@@ -4978,9 +4915,7 @@
 <translation id="8879284080359814990">&amp;Näytä välilehtenä</translation>
 <translation id="8884961208881553398">Lisää uusia palveluita</translation>
 <translation id="8885197664446363138">Smart Lock ei ole käytettävissä</translation>
-<translation id="8885905466771744233">Kyseiselle laajennukselle on jo olemassa yksityinen avain. Käytä tätä avainta tai poista se ensin.</translation>
 <translation id="8888432776533519951">Väri:</translation>
-<translation id="8892992092192084762">Teema <ph name="THEME_NAME" /> asennettu.</translation>
 <translation id="8893928184421379330">Laitetta <ph name="DEVICE_LABEL" /> ei tunnistettu.</translation>
 <translation id="8895454554629927345">Kirjanmerkkiluettelo</translation>
 <translation id="88986195241502842">Sivu alas</translation>
@@ -4995,7 +4930,6 @@
 <translation id="8908902564709148335">Varoitus: Olet ottanut tällä tietokoneella käyttöön --scripts-require-action-komennon, joka rajoittaa tämän laajennuksen ominaisuuksia. Muut laitteet eivät välttämättä tue tätä komentoa tai ne eivät ole ottaneet sitä käyttöön. Näillä laitteilla laajennus voi tehdä myös seuraavia asioita:</translation>
 <translation id="8910146161325739742">Näytön jakaminen</translation>
 <translation id="8910222113987937043">Kirjanmerkkeihin, historiaan, salasanoihin ja muihin asetuksiin tehtyjä muutoksia ei enää synkronoida Google-tilillesi. Nykyiset tietosi pysyvät kuitenkin Google-tilillä ja niitä voidaan hallinnoida <ph name="BEGIN_LINK" />Google Hallintapaneelissa<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google on merkinnyt laajennuksen <ph name="EXTENSION_NAME" /> haitalliseksi, joten sen asennus on estetty.</translation>
 <translation id="8912793549644936705">Venytä</translation>
 <translation id="8915370057835397490">Ladataan ehdotusta</translation>
 <translation id="8916476537757519021">Incognito-alakehys: <ph name="SUBFRAME_SITE" /></translation>
@@ -5101,7 +5035,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-hiiri yhdistetty</translation>
 <translation id="9076523132036239772">Sähköpostiosoitettasi tai salasanaasi ei voi vahvistaa. Muodosta ensin verkkoyhteys.</translation>
-<translation id="907841381057066561">Väliaikaisen zip-tiedoston luominen pakkauksen aikana epäonnistui.</translation>
 <translation id="9084064520949870008">Avaa ikkunassa</translation>
 <translation id="9088234649737575428">Yrityskäytäntö estää laajennuksen <ph name="PLUGIN_NAME" />.</translation>
 <translation id="9088917181875854783">Vahvista, että tämä salasana näkyy laitteella <ph name="DEVICE_NAME" />:</translation>
@@ -5192,11 +5125,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Anna tunnuslause</translation>
 <translation id="939736085109172342">Uusi kansio</translation>
-<translation id="941543339607623937">Virheellinen yksityinen avain.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> jakaa Chrome-välilehden ja ääntä.</translation>
 <translation id="942954117721265519">Tässä hakemistossa ei ole kuvia.</translation>
 <translation id="945522503751344254">Lähetä palautetta</translation>
-<translation id="951981865514037445"><ph name="URL" /> haluaa käyttää laitteesi sijaintia.</translation>
 <translation id="952992212772159698">Ei aktivoitu</translation>
 <translation id="9580706199804957">Google-palveluihin ei saatu yhteyttä.</translation>
 <translation id="958515377357646513">Siirry eteenpäin koskettamalla.</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 64af913..f567ffb 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Encipher Lamang</translation>
 <translation id="1039337018183941703">Di-wasto o sira ang file</translation>
 <translation id="1042174272890264476">Ang iyong computer ay may naka-built in din na RLZ library ng <ph name="SHORT_PRODUCT_NAME" />. Nagtatalaga ang RLZ ng hindi natatangi at hindi personal na nakakapagpakilalang tag upang sukatin ang mga paghahanap at paggamit ng <ph name="SHORT_PRODUCT_NAME" /> na nahimok ng isang partikular na kampanya sa pag-promote. Lumalabas minsan ang mga label na ito sa mga query sa Paghahanap sa Google sa <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Gustong ng <ph name="URL" /> na permanenteng mag-imbak ng malaking data sa iyong device.</translation>
 <translation id="1046059554679513793">Naku, ginagamit na ang pangalang ito!</translation>
 <translation id="1047431265488717055">Kopyahin ang Text ng Link</translation>
 <translation id="1047726139967079566">Bookmark This Page...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">I-restore ang Default na Search Engine?</translation>
 <translation id="1177863135347784049">Custom</translation>
 <translation id="1178581264944972037">I-pause</translation>
-<translation id="1179803038870941185">Gusto ng <ph name="URL" /> na magkaroon ng buong kontrol sa iyong mga MIDI device.</translation>
 <translation id="1181037720776840403">Alisin</translation>
 <translation id="1183237619868651138">Hindi ma-install ang <ph name="EXTERNAL_CRX_FILE" /> sa lokal na cache.</translation>
 <translation id="1185924365081634987">Maaari mo ring subukang <ph name="GUEST_SIGNIN_LINK_START" />mag-browse bilang bisita<ph name="GUEST_SIGNIN_LINK_END" /> upang ayusin ang error sa network na ito.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Mag-access ng file na nakaimbak sa iyong computer}one{Mag-access ng # file na nakaimbak sa iyong computer}other{Mag-access ng # na file na nakaimbak sa iyong computer}}</translation>
 <translation id="1195076408729068893">Upang simulan ang Smart Lock, ilagay ang iyong password. Sa susunod, maaari mong gamitin ang iyong telepono upang i-unlock ang <ph name="DEVICE_TYPE" /> mo.</translation>
 <translation id="1195447618553298278">Hindi kilalang error.</translation>
-<translation id="1196338895211115272">Nabigong i-export ang pribadong key.</translation>
 <translation id="119738088725604856">Screenshot window</translation>
 <translation id="1197979282329025000">May nangyaring error habang binabawi ang mga kakayahan ng printer para sa printer na <ph name="PRINTER_NAME" />. Hindi mairehistro ang printer na ito sa <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Tayo nang magsimula</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Inirerekomenda ng iyong administrator ang isang tukoy na halaga para sa setting na ito.</translation>
 <translation id="1225177025209879837">Pinoproseso ang kahilingan...</translation>
 <translation id="1225211345201532184">Item 5 sa shelf</translation>
-<translation id="1225404570112441414">Idagdag ang site na ito sa iyong shelf upang magamit ito anumang oras.</translation>
 <translation id="1227507814927581609">Nabigo ang pagpapatunay habang kumokonekta sa "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu ng system</translation>
 <translation id="1232569758102978740">Walang pamagat</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML File ng Mga Bookmark</translation>
 <translation id="1303671224831497365">Walang nakitang Bluetooth device</translation>
 <translation id="1306606229401759371">Baguhin ang mga setting</translation>
-<translation id="1307398858972670978">I-access ang iyong mga password mula sa anumang device sa <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Oops!  Nabigo ang system na i-imbak ang pangmatagalang token sa pag-access sa API para sa device na ito.</translation>
 <translation id="1313405956111467313">Awtomatikong proxy configuration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Hanapin</translation>
 <translation id="1386387014181100145">Kamusta.</translation>
 <translation id="138784436342154190">I-restore ang default na page sa pagsisimula?</translation>
-<translation id="1389297115360905376">Maidaragdag lamang ito mula sa <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Buksan bilang Regular na Tab</translation>
-<translation id="1391807639023934267">Mas mabilis na na-load ang page.</translation>
 <translation id="1393283411312835250">Araw at mga ulap</translation>
 <translation id="1395262318152388157">Slider ng seek bar</translation>
 <translation id="1395730723686586365">Sinimulan ang updater</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Iyong ina-update ang isang hindi matatag na bersyon ng <ph name="PRODUCT_NAME" /> na naglalaman ng mga tampok na kasalukuyang isinasagawa. Magkakaroon ng mga pag-crash at hindi inaasahang mga bug. Mangyaring magpatuloy nang may pag-iingat.</translation>
 <translation id="1415990189994829608">Ang <ph name="EXTENSION_NAME" /> (extension ID "<ph name="EXTENSION_ID" />") ay hindi pinapayagan sa ganitong uri ng session.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Hala! Nabigong mabuo ang random RSA pribadong key.</translation>
 <translation id="1420834118113404499">Mga lisensya ng media</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> upang payagan ang pagpapares</translation>
 <translation id="1426410128494586442">Oo</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opyahin ang Address ng Audio</translation>
 <translation id="1465827627707997754">Hiwa ng pizza</translation>
 <translation id="1467432559032391204">Kaliwa</translation>
-<translation id="1467999917853307373">Gusto ng <ph name="URL" /> na permanenteng mag-imbak ng data sa iyong device.</translation>
-<translation id="1470719357688513792">Magkakabisa ang mga bagong setting ng cookie pagkatapos i-reload ang pahina.</translation>
 <translation id="1470811252759861213">Upang mailagay ang iyong mga extension sa lahat ng iyong computer, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Hindi na-upload ang "<ph name="FILENAME" />." Walang sapat na bakanteng espasyo sa iyong Google Drive.</translation>
 <translation id="1475502736924165259">Mayroon kang mga certificate sa file na hindi umaangkop sa alinman sa iba pang mga kategorya</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Malaking mouse cursor</translation>
 <translation id="1543284117603151572">Na-import Mula Sa Edge</translation>
 <translation id="1545177026077493356">Awtomatikong Kiosk Mode</translation>
+<translation id="1545775234664667895">Naka-install na temang "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL na may mga % sa lugar ng query</translation>
 <translation id="1546280085599573572">Binago ng extension na ito ang ipinapakitang page kapag na-click mo ang button ng Home.</translation>
 <translation id="1547572086206517271">Kinakailangang i-refresh</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />suriin<ph name="END_BOLD" /> ang mga website na binisita ng pinangangasiwaang user, at
     <ph name="BEGIN_BOLD" />pamahalaan<ph name="END_BOLD" /> ang iba pang mga setting.</translation>
 <translation id="1648943974594387137">Luma na ang mga detalye ng pag-sign in</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> (na) linya ang hindi ipinapakita&gt;</translation>
 <translation id="1650371550981945235">Ipakita ang mga opsyon sa pag-input</translation>
 <translation id="1650709179466243265">Idagdag ang www. at .com at bukas na address</translation>
 <translation id="1651008383952180276">Dapat mong ilagay ang katulad na passphrase nang dalawang beses</translation>
-<translation id="1652972346408808053">Na-save ang password. I-access ang iyong mga password mula sa anumang device sa <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Idagdag ang printer sa Google Cloud Print nang sa gayon ay makakapag-print ka kahit saan.}one{Idagdag ang # printer sa Google Cloud Print nang sa gayon ay makakapag-print ka kahit saan.}other{Idagdag ang # na printer sa Google Cloud Print nang sa gayon ay makakapag-print ka kahit saan.}}</translation>
 <translation id="1657406563541664238">Tulungan ang <ph name="PRODUCT_NAME" /> na maging mas mahusay sa pamamagitan ng awtomatikong pagpapadala ng mga istatistika ng paggamit at mga crash report sa Google</translation>
 <translation id="1658424621194652532">Ina-access ng pahinang ito ang iyong mikropono.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Ipagpatuloy ang pag-block ng cookies</translation>
 <translation id="204622017488417136">Ibabalik ang iyong device sa dating naka-install na bersyon ng Chrome. Aalisin ang lahat ng user account at lokal na data. Hindi na ito maaaring bawiin.</translation>
 <translation id="2048182445208425546">I-access ang trapiko ng iyong network</translation>
-<translation id="2049137146490122801">Hindi pinapagana ng iyong administrator ang pag-access sa mga lokal na file sa iyong machine.</translation>
 <translation id="204914487372604757">Lumikha ng shortcut sa </translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2053312383184521053">Data sa Idle na Estado</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Hindi pa nalo-load</translation>
 <translation id="2107494551712864447">Magdagdag ng fingerprint</translation>
-<translation id="2111843886872897694">Dapat maihatid ang apps mula sa host na naaapektuhan ng mga ito.</translation>
 <translation id="2112877397266219826">I-on ang iyong controller ng pagpindot upang i-set up ako</translation>
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2113479184312716848">Buksan ang &amp;File...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Sabihin sa Amin Kung Ano ang Nangyayari</translation>
 <translation id="2229161054156947610">Mahigit sa 1 oras ang natitira</translation>
 <translation id="222931766245975952">Naputol ang file</translation>
-<translation id="222949136907494149">Nais gamitin ng <ph name="URL" /> ang lokasyon ng iyong computer.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Hindi malikha ang folder na "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">I-click upang tingnan ang doodle ngayong araw</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Palaging i-block ang pag-access sa mikropono</translation>
 <translation id="2367972762794486313">Ipakita ang apps</translation>
 <translation id="2371076942591664043">Buksan kapag &amp;tapos na</translation>
-<translation id="237336063998926520">Gamitin ang iyong IP address upang malaman ang lokasyon</translation>
 <translation id="2377319039870049694">Lumipat sa list view</translation>
 <translation id="2377667304966270281">Mga Hard Fault</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> (na) file ang pinili</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">Gustong kumopya ng <ph name="APP_NAME" /> ng mga file mula sa <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Certification Authority Key ID</translation>
 <translation id="2462752602710430187">Idinagdag ang <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Mag-import ng Mga Bookmark</translation>
 <translation id="2464089476039395325">HTTP Proxy</translation>
 <translation id="2468902267404883140">Hindi makakonekta sa iyong telepono. Siguraduhing gumagamit ka ng tugmang Android phone na naka-on at malapit. &lt;a&gt;Matuto pa&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Na-disable ang mga hindi sinusuportahang extension</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">I-uninstall</translation>
 <translation id="2487067538648443797">Magdagdag ng bagong bookmark</translation>
 <translation id="248861575772995840">Hindi mahanap ang iyong telepono. Siguraduhing naka-on ang Bluetooth ng <ph name="DEVICE_TYPE" /> mo. &lt;a&gt;Matuto pa&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Hindi tumutugon ang plugin na (<ph name="PLUGIN_NAME" />).</translation>
 <translation id="2489428929217601177">ang nakaraang araw</translation>
 <translation id="2489918096470125693">Magdagdag ng &amp;Folder...</translation>
 <translation id="249113932447298600">Paumanhin, hindi sinusuportahan ang device na <ph name="DEVICE_LABEL" /> sa oras na ito.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Binabati kita! Na-activate ang iyong serbisyo ng data ng '<ph name="NAME" />' at handa nang gamitin.</translation>
 <translation id="2566124945717127842">Mag-powerwash upang i-reset ang iyong <ph name="IDS_SHORT_PRODUCT_NAME" /> device upang maging parang bago.</translation>
 <translation id="2568774940984945469">Infobar Container</translation>
-<translation id="2570000010887652771">Na-save ang data.</translation>
 <translation id="257088987046510401">Mga tema</translation>
 <translation id="2572032849266859634">Ipinagkaloob na sa <ph name="VOLUME_NAME" /> ang read-only na access.</translation>
 <translation id="2573269395582837871">Pumili ng larawan at pangalan</translation>
 <translation id="2575247648642144396">Makikita ang icon na ito kapag makakakilos ang extension sa kasalukuyang pahina. Gamitin ang extension na ito sa pamamagitan ng pag-click sa icon o sa pamamagitan ng pagpindot sa <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Hindi mahanap ang iyong telepono. Siguraduhing nakakonekta sa Wi-Fi o mobile network ang <ph name="DEVICE_TYPE" /> mo. &lt;a&gt;Matuto pa&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Mayroon nang isang CRX file na may ganitong pangalan.</translation>
 <translation id="257779572837908839">I-set up bilang Chromebox for meetings</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Hindi ma-unmount ang volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Kapag nagtanggal ka ng certificate ng Certification Authority (CA), hindi na pagkakatiwalaan ng iyong browser ang anumang mga certificate na ibinigay ng CA na iyon.</translation>
 <translation id="2653659639078652383">Isumite</translation>
 <translation id="265390580714150011">Field Value</translation>
-<translation id="2654286334048437383">Mag-export ng Mga Bookmark</translation>
 <translation id="2655386581175833247">Certificate ng user:</translation>
 <translation id="2660779039299703961">Kaganapan</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Magdagdag ng Media Gallery ayon sa Direktoryo</translation>
 <translation id="2908789530129661844">Mag-zoom out sa screen</translation>
 <translation id="2910318910161511225">Kumonekta sa isang network at subukang muli</translation>
-<translation id="2912905526406334195">Gustong  gamitin ng <ph name="HOST" /> ang iyong microphone.</translation>
 <translation id="2913331724188855103">Payagan ang mga site na mag-save at magbasa ng data ng cookie (inirerekomenda)</translation>
 <translation id="2916073183900451334">Ang pagpindot sa Tab sa isang webpage ay nagha-highlight ng mga link, pati na rin ang mga field ng form</translation>
 <translation id="2916745397441987255">Maghanap sa mga extension</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">Itaas ang window</translation>
 <translation id="3053013834507634016">Paggamit ng Certificate Key </translation>
 <translation id="3057861065630527966">I-back up ang iyong mga larawan at video</translation>
-<translation id="3060379269883947824">I-enable ang select-to-speak</translation>
+<translation id="3060379269883947824">I-enable ang Select to Speak</translation>
 <translation id="3061707000357573562">Serbisyo sa Pag-patch</translation>
 <translation id="3064410671692449875">Hindi sapat ang data</translation>
 <translation id="3065041951436100775">Feedback na isinara ang tab</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Nakikinig...</translation>
 <translation id="3141917231319778873">Ang ibinigay na kahilingan ay hindi sinusuportahan sa: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">TAPOS NA</translation>
-<translation id="3144135466825225871">Nabigong palitan ang crx na file. Tingnan upang malaman kung ginagamit ang file.</translation>
 <translation id="3144647712221361880">Buksan ang link bilang</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150927491400159470">I-hard Reload</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Patakbuhin sa Lahat ng Site sa Lahat ng Pagkakataon</translation>
 <translation id="3312424061798279731">Mga naka-enable na wika</translation>
 <translation id="3312903956926554846">I-install sa desktop</translation>
-<translation id="3313473140726597081">Naging <ph name="URL" /> ang iyong page sa pagsisimula. Upang i-disable ang mga extension na binabago ang page sa pagsisimula mo, i-click ang I-restore.</translation>
 <translation id="3313590242757056087">Upang itakda kung aling mga website ang maaring tingnan ng pinangangasiwaang user, maisasaayos mo ang mga paghihigpit
     at setting sa pamamagitan ng pagbisita sa <ph name="MANAGEMENT_URL" />.
     Kung hindi mo babaguhin ang mga default na setting, maba-browse ni <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Impormasyon ng app</translation>
 <translation id="3335947283844343239">Muling buksan ang Nakasarang Tab</translation>
-<translation id="3337069537196930048">Na-block ang <ph name="PLUGIN_NAME" /> dahil hindi ito napapanahon.</translation>
 <translation id="3340978935015468852">mga setting</translation>
 <translation id="3341703758641437857">Payagan ang access na mag-file ng mga URL</translation>
 <translation id="3342361181740736773">Gustong alisin ng "<ph name="TRIGGERING_EXTENSION_NAME" />" ang extension na ito.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Naidagdag na ang Bookmark</translation>
 <translation id="3389312115541230716">I-right click ang icon na <ph name="SMALL_PRODUCT_LOGO" /> sa taskbar</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340">Gusto ng <ph name="HOST" /> na gamitin ang iyong camera at microphone.</translation>
 <translation id="3396331542604645348">Ang napiling printer ay hindi available o hindi naka-install nang tama.  Tingnan ang iyong printer o subukang pumili ng isa pang printer.</translation>
 <translation id="3399432415385675819">Madi-disable ang mga notification</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Awtomatikong nag-a-update ang Chrome upang palagi kang mayroon ng pinakabagong bersyon</translation>
 <translation id="3551320343578183772">Isara ang Tab</translation>
 <translation id="3552780134252864554">Na-clear sa Paglabas</translation>
-<translation id="355298399003313926">Gustong tumugon ng <ph name="URL" /> sa mga kaganapan ng pagiging naa-access.</translation>
 <translation id="3555812735919707620">Alisin ang extension</translation>
 <translation id="3556000484321257665">Ginawang <ph name="URL" /> ang iyong search engine.</translation>
-<translation id="3561217442734750519">Dapat na wastong path ang input na halaga para sa pribadong key.</translation>
 <translation id="3563432852173030730">Hindi ma-download ang Kiosk application.</translation>
 <translation id="3564334271939054422">Maaaring humiling sa iyo ang ginagamit mong Wi-Fi network (<ph name="NETWORK_ID" />) na bisitahin mo ang page ng pag-log in nito.</translation>
 <translation id="3564708465992574908">Mga Level ng Pag-zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Mga Limitasyon sa Pangalan ng Certificate</translation>
 <translation id="3596235046596950091">I-enable ang mga serbisyo sa cloud</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="3600456501114769456">Hindi pinagana ng iyong administrator ang access sa mga lokal na file sa iyong device.</translation>
 <translation id="3600792891314830896">I-mute ang mga site na nagpe-play ng tunog</translation>
 <translation id="3603177256297531067">Hindi Maisalin ang Page na Ito</translation>
 <translation id="3603533104205588786">Maaari mong i-click ang star upang mag-bookmark ng page</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Naka-disable ang mga screenshot</translation>
 <translation id="3625870480639975468">I-reset ang zoom</translation>
 <translation id="3626281679859535460">Tingkad</translation>
-<translation id="3627052133907344175">Kinakailangan ng extension ang "<ph name="IMPORT_NAME" />" na mayroong minimum na bersyon na "<ph name="IMPORT_VERSION" />", ngunit ang bersyon na "<ph name="INSTALLED_VERSION" />" lang ang naka-install.</translation>
 <translation id="3627320433825461852">Wala nang 1 minuto ang natitira</translation>
 <translation id="3627588569887975815">Buksan ang link sa inco&amp;gnito window</translation>
 <translation id="3627671146180677314">Oras ng Pag-renew ng Netscape Certificate</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Mga setting ng wika</translation>
 <translation id="3668823961463113931">Mga Handler</translation>
 <translation id="3670229581627177274">I-on ang Bluetooth</translation>
-<translation id="3672159315667503033">Nais ng <ph name="URL" /> na permanenteng mag-imbak ng malaking data sa iyong lokal na computer.</translation>
 <translation id="3672681487849735243">Nakakita ng factory error</translation>
 <translation id="367645871420407123">iwanang blangko kung gusto mong itakda ang root password sa default na value ng pansubok na larawan</translation>
 <translation id="3678156199662914018">Extension: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Naka-offline ka</translation>
 <translation id="3788401245189148511">Maaari itong:</translation>
 <translation id="3789841737615482174">Mag-install</translation>
-<translation id="3790146417033334899">Gumagana lang ang <ph name="PLUGIN_NAME" /> sa desktop.</translation>
 <translation id="379082410132524484">Nag-expire na ang iyong card</translation>
 <translation id="3792890930871100565">Idiskonekta ang mga printer</translation>
 <translation id="379422718204375917">Gamitin ang Smart Lock upang mag-sign in sa iyong account</translation>
-<translation id="3794595850995182458">Umalis sa page</translation>
 <translation id="3796648294839530037">Mga Paboritong Network:</translation>
 <translation id="3797900183766075808">&amp;Maghanap sa <ph name="SEARCH_ENGINE" /> ng “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Nagbibigay-daan sa iyong i-enable/i-disable ang tap-to-click</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Paganahin ang <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Di-wastong uri ng pag-save ang ipinasok.</translation>
 <translation id="3983586614702900908">mga device mula sa isang hindi kilalang vendor</translation>
-<translation id="3984413272403535372">Nagka-error habang linalagdaan ang extension.</translation>
 <translation id="3987938432087324095">Paumanhin, hindi ko naunawaan iyon.</translation>
 <translation id="3988996860813292272">Pumili ng timezone</translation>
 <translation id="3989635538409502728">Mag-sign Out</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Mag-install ng mga app at laro mula sa Google Play sa iyong Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Matuto pa&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Tanggapin para sa pangkat</translation>
 <translation id="4090103403438682346">I-enable ang Bine-verify na Access</translation>
-<translation id="4090404313667273475">Kinakailangan ang <ph name="PLUGIN_NAME" /> upang maipakita ang ilang elemento sa pahinang ito.</translation>
 <translation id="4090535558450035482">(Pinamamahalaan at hindi maaaring alisin ang extension na ito.)</translation>
 <translation id="4091434297613116013">mga sheet ng papel</translation>
 <translation id="4093955363990068916">Lokal na file:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">Masi-sync na ngayon ng <ph name="PRODUCT_NAME" /> ang iyong mga password.</translation>
 <translation id="4715553623069266137">napakaikli (0.8s)</translation>
 <translation id="4716483597559580346">Powerwash para sa pinaigting na seguridad</translation>
-<translation id="471800408830181311">Nabigong ilabas ang pribadong key.</translation>
 <translation id="4720113199587244118">Magdagdag ng Mga Device</translation>
 <translation id="4720185134442950733">Network ng mobile data</translation>
 <translation id="4722920479021006856">Ibinabahagi ng <ph name="APP_NAME" /> ang iyong screen.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Malakas</translation>
 <translation id="4918021164741308375">Gusto ng <ph name="ORIGIN" /> na makipag-ugnayan sa extension na "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Tanggapin</translation>
-<translation id="4919810557098212913">Gustong gamitin ng <ph name="HOST" /> ang iyong camera.</translation>
 <translation id="4920887663447894854">Hinarangan ang sumusunod na mga site mula sa pagsubaybay ng iyong lokasyon sa pahinang ito:</translation>
 <translation id="492299503953721473">Alisin ang mga Android app</translation>
 <translation id="4923279099980110923">Oo, gusto kong makatulong</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">May malware ang extension na ito.</translation>
 <translation id="498294082491145744">Baguhin ang iyong mga setting na nagkokontrol sa access ng mga website sa mga feature gaya ng cookies, JavaScript, mga plugin, geolocation, mikropono, camera atbp.</translation>
 <translation id="4988526792673242964">Mga Page</translation>
-<translation id="4988792151665380515">Nabigong i-export ang pampublikong key.</translation>
 <translation id="49896407730300355">I-rotate p&amp;akaliwa</translation>
 <translation id="4989966318180235467">Siyasatin ang pahina ng &amp;background</translation>
 <translation id="4990343175649730969">I-download ang Chrome Cleanup Tool</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Huwag itong ipakita muli</translation>
 <translation id="5027550639139316293">Email Certificate</translation>
 <translation id="5027562294707732951">Idagdag ang extension</translation>
-<translation id="5028012205542821824">Hindi pinagana ang pag-install.</translation>
 <translation id="5029568752722684782">I-clear ang kopya</translation>
 <translation id="5030338702439866405">Ibinigay Ni</translation>
 <translation id="5036662165765606524">Huwag payagan ang anumang site na awtomatikong mag-download ng maraming file</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">May naganap na error.</translation>
 <translation id="5094721898978802975">Makipag-ugnay sa mga nakikipagtulungang native na application</translation>
 <translation id="5097002363526479830">Nabigong kumonekta sa network na '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Hindi mahanap ang ganap na daanan sa direktoryo sa pack.</translation>
 <translation id="5099354524039520280">pataas</translation>
 <translation id="5100114659116077956">Upang maibigay sa iyo ang mga pinakabagong feature, kailangang mag-update ng iyong Chromebox.</translation>
 <translation id="5101042277149003567">Buksan lahat ng mga bookmark</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Ipinakita sa folder</translation>
 <translation id="5171045022955879922">Hanapin o i-type ang URL</translation>
 <translation id="5171343362375269016">Swapped Memory</translation>
-<translation id="5175870427301879686">Nais ng <ph name="URL" /> na permanenteng mag-imbak ng data sa iyong lokal na computer.</translation>
 <translation id="5177479852722101802">Ipagpatuloy ang pag-block ng access sa camera at mikropono</translation>
 <translation id="5177526793333269655">View na thumbnail</translation>
 <translation id="5177549709747445269">Gumagamit ka ng mobile data</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">I-format ang device na ito</translation>
 <translation id="5293170712604732402">I-restore ang mga setting sa mga orihinal na default ng mga ito</translation>
 <translation id="5298219193514155779">Ang tema ay nilikha ni</translation>
-<translation id="5298363578196989456">Hindi ma-import ang extension na "<ph name="IMPORT_NAME" />" dahil hindi ito isang nakabahaging module.</translation>
 <translation id="5299109548848736476">Huwag Subaybayan</translation>
 <translation id="5299682071747318445">Ine-encrypt ang lahat ng data gamit ang iyong passphrase sa pag-sync</translation>
 <translation id="5300589172476337783">Ipakita</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">Gustong makipagpares ng "<ph name="CHROME_EXTENSION_NAME" />"</translation>
 <translation id="5332624210073556029">Time zone:</translation>
 <translation id="5334142896108694079">Cache ng Script</translation>
-<translation id="533433379391851622">"<ph name="EXPECTED_VERSION" />" ang inaasahang bersyon, ngunit "<ph name="NEW_ID" />" ang bersyon.</translation>
 <translation id="5334844597069022743">Tingnan ang source</translation>
 <translation id="5335458522276292100">Bina-back up ang <ph name="FILE_COUNT" /> sa <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Na-install ng third party.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Payagan ang mga site na mag-play ng tunog</translation>
 <translation id="5390284375844109566">Naka-index na database</translation>
 <translation id="5390743329570580756">Magpadala para sa</translation>
-<translation id="5396126354477659676">Gustong i-access ng <ph name="PEPPER_PLUGIN_NAME" /> sa <ph name="PEPPER_PLUGIN_DOMAIN" /> ang iyong computer.</translation>
 <translation id="5397794290049113714">Ikaw</translation>
 <translation id="5398572795982417028">Lampas sa hangganan ang tinukoy na page, ang limitasyon ay <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Na-block ang mga ad</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Ibalik ang Lahat ng Mga Tab</translation>
 <translation id="5486261815000869482">Kumpirmahin ang password</translation>
 <translation id="5486275809415469523">Ibinabahagi ng <ph name="APP_NAME" /> ang iyong screen sa <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Dapat na umiiral ang halaga ng input para sa pribadong key.</translation>
 <translation id="5486561344817861625">I-simulate ang Pag-restart ng Browser</translation>
 <translation id="5487521232677179737">I-clear ang data</translation>
 <translation id="5488093641312826914">Nakopya ang '<ph name="COPIED_ITEM_NAME" />'</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Ida-download ang update gamit ang <ph name="UPDATE_SIZE_MB" /> MB ng mobile data. Gusto mo bang magpatuloy?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Iba pang mga search engine</translation>
-<translation id="5606674617204776232">Gustong i-access ng <ph name="PEPPER_PLUGIN_NAME" /> sa <ph name="PEPPER_PLUGIN_DOMAIN" /> ang iyong device.</translation>
 <translation id="5608580678041221894">I-tap ang mga sumusunod na key upang isaayos o ilipat ang lugar ng pag-crop</translation>
 <translation id="5609231933459083978">Mukhang di-wasto ang application.</translation>
 <translation id="5610038042047936818">Lumipat sa camera mode</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Naisalin</translation>
 <translation id="5991049340509704927">I-magnify</translation>
 <translation id="5993332328670040093">Hindi na susukatin ang paggamit mo ng data.</translation>
-<translation id="6003177993629630467">Maaaring hindi magawa ng <ph name="PRODUCT_NAME" /> na mapanatiling naa-update ang sarili nito.</translation>
 <translation id="600424552813877586">Di-wastong application.</translation>
 <translation id="6005695835120147974">Router para sa Media</translation>
 <translation id="6006484371116297560">Classic</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Pag-back up sa Cloud</translation>
 <translation id="6040143037577758943">Isara</translation>
 <translation id="6040852767465482106">Anonymous na Pagkakakilanlan</translation>
+<translation id="6041155700700864984">Lumabas sa Fullscreen</translation>
 <translation id="604124094241169006">Awtomatiko</translation>
 <translation id="6042169520002885235">Pumili ng manufacturer at modelo ng printer</translation>
 <translation id="6042308850641462728">Higit pa</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">I-reload Nang Normal</translation>
 <translation id="6059652578941944813">Pagkakasunud-sunod ng Certificate</translation>
 <translation id="6059925163896151826">Mga USB device</translation>
-<translation id="6060435378291459521">Nag-crash ang <ph name="PLUGIN_NAME" />.</translation>
 <translation id="6064217302520318294">Lock ng screen</translation>
 <translation id="6065289257230303064">Mga Katangian ng Direktoryo ng Paksa ng Certificate</translation>
 <translation id="6068338049763724728">I-enable ang malayuang pagpapatala</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Nagbibigay-daan sa iyong i-adjust ang resolution ng iyong screen</translation>
 <translation id="6238923052227198598">Panatilihin ang pinakabagong tala sa lock screen</translation>
 <translation id="6239558157302047471">I-reload ang &amp;frame</translation>
-<translation id="624022915548992686">Umalis sa Page</translation>
 <translation id="6241530762627360640">Mag-access ng impormasyon tungkol sa mga Bluetooth device na nakapares sa iyong system at tumuklas ng mga kalapit na Bluetooth device.</translation>
 <translation id="6243774244933267674">Hindi available ang server</translation>
 <translation id="6246413617632217567">Hindi ma-import ang pinangangasiwaang user. Pakitingnan ang espasyo sa iyong hard drive at mga pahintulot at subukang muli.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Hindi alam na error sa network</translation>
 <translation id="6313641880021325787">LUMABAS SA VR</translation>
 <translation id="6314819609899340042">Matagumpay mong na-enable ang mga feature para sa pagde-debug sa <ph name="IDS_SHORT_PRODUCT_NAME" /> device na ito.</translation>
-<translation id="6315343732431721770">Binago ang iyong mga page sa pagsisimula upang isama ang <ph name="URL" />. Upang i-disable ang mga extension na binabago ang page sa pagsisimula mo, i-click ang I-restore.</translation>
 <translation id="6315493146179903667">Bring All to Front</translation>
 <translation id="6316806695097060329">Idinisenyo ang <ph name="SHORT_PRODUCT_NAME" /> device upang maihatid ang pinakamahusay na karanasan sa web sa iyo.</translation>
 <translation id="6317318380444133405">Hindi na sinusuportahan.</translation>
 <translation id="6317369057005134371">Hinihintay ang application window...</translation>
 <translation id="6318407754858604988">Nagsimula ang pag-download</translation>
-<translation id="6322279351188361895">Nabigong basahin ang pribadong key.</translation>
 <translation id="6325191661371220117">I-disable ang awtomatikong paglulunsad</translation>
 <translation id="6326175484149238433">Alisin sa Chrome</translation>
 <translation id="6326855256003666642">Bilang ng Keepalive</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Piliin kung ano ang isi-sync</translation>
 <translation id="6333064448949140209">Ipapadala ang file sa Google para sa pagde-debug</translation>
 <translation id="6333834492048057036">I-focus ang address bar para sa paghahanap</translation>
-<translation id="6336907568130557310">Makikita ng sinumang nakakakita sa na-export na file ang mga password mo. Huwag ibahagi ang file sa kahit sino at i-delete ito pagkatapos itong i-import.</translation>
 <translation id="6339668969738228384">Gumawa ng bagong profile para sa <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Hindi makakonekta sa server. Pakitingnan ang iyong koneksyon sa network at subukang muli. Kung magpapatuloy ang problema, i-restart ang Chromebook mo.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Maaaring mag-save at magbasa ng data ng cookie ang mga site</translation>
 <translation id="6388771388956873507">Hanapin ang sensor para sa fingerprint sa iyong device at pindutin ito gamit ang iyong daliri</translation>
 <translation id="6390799748543157332">Hindi lalabas sa iyong history ng browser ang mga page na tiningnan mo sa window na ito at hindi mag-iiwan ang mga ito ng iba pang mga palatandaan, tulad ng cookies, sa computer pagkatapos mong isara ang lahat ng nakabukas na mga window ng Bisita. Gayunpaman, papanatilihin ang anumang mga file na na-download mo.</translation>
-<translation id="6391538222494443604">Dapat na umiiral ang direktoryo ng input.</translation>
 <translation id="6395423953133416962">Ipadala ang <ph name="BEGIN_LINK1" />impormasyon ng system<ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />mga sukatan<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Ihinto ang Pagsasalita</translation>
 <translation id="6397592254427394018">Buksan ang lahat ng bookmark sa &amp;incognito window</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Pamahalaan ang pagharang ng JavaScript...</translation>
 <translation id="6459488832681039634">Use Selection for Find</translation>
 <translation id="6460601847208524483">Find Next</translation>
-<translation id="6462080265650314920">Dapat maihatid ang apps gamit ang uri ng nilalaman na "<ph name="CONTENT_TYPE" />."</translation>
 <translation id="6462082050341971451">Nariyan ka pa ba?</translation>
 <translation id="6463795194797719782">&amp;Mag-edit</translation>
 <translation id="6466988389784393586">&amp;Buksan Ang Lahat ng Bookmark</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Gusto mo bang i-translate ng Google ang page na ito mula sa <ph name="SOURCE_LANGUAGE" /> patungo sa <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">May nakakonektang pointing device</translation>
-<translation id="6677037229676347494">"<ph name="EXPECTED_ID" />" ang inaasahang ID, ngunit "<ph name="NEW_ID" />" ang ID.</translation>
 <translation id="6678717876183468697">URL ng Query</translation>
 <translation id="6680028776254050810">Magpalit ng mga User</translation>
 <translation id="6680442031740878064">Available: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Maaari mong i-customize kung anong impormasyon ang kinokolekta ng Google sa <ph name="BEGIN_LINK" />Mga Setting<ph name="END_LINK" /> anumang oras.</translation>
 <translation id="6904344821472985372">Bawiin ang access sa file</translation>
 <translation id="6904655473976120856">Pindutin ang button ng App upang lumabas</translation>
-<translation id="6904713658985136356">Gustong ibahagi ng <ph name="HOST" /> ang iyong screen.</translation>
-<translation id="6909461304779452601">Hindi maaaring idagdag mula sa website na ito ang apps, mga extension, at script ng user.</translation>
 <translation id="6910211073230771657">Na-delete</translation>
 <translation id="691024665142758461">Mag-download ng maraming file</translation>
 <translation id="6911324888870229398">Nawala ang koneksyon sa network. Pakitingnan ang iyong koneksyon o sumubok ng ibang Wi-Fi network.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Error: Hindi magawang i-decode ang extension</translation>
 <translation id="7473891865547856676">Hindi, Salamat</translation>
 <translation id="747459581954555080">Ipanumbalik lahat</translation>
-<translation id="7475034671245341386">Nagka-error sa <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">URL ng Nawalang Password ng Netscape</translation>
 <translation id="7476454130948140105">Masyadong kaunti ang baterya (<ph name="BATTERY_PERCENT" />%) para sa pag-update</translation>
 <translation id="7477347901712410606">Kung nakalimutan mo ang iyong passphrase, ihinto at i-reset ang Pag-sync sa pamamagitan ng <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Certificate sa Katayuan ng Responder</translation>
 <translation id="7508545000531937079">Slideshow</translation>
 <translation id="7513029293694390567">Awtomatikong mag-sign in sa mga website gamit ang mga naka-store na kredensyal. Kung naka-disable, hihingan ka ng kumpirmasyon sa bawat pagkakataon bago ka mag-sign in sa isang website.</translation>
-<translation id="7515670329462166359">Gustong matukoy ng <ph name="URL" /> ang iyong device upang makapag-play ng protektadong content.</translation>
 <translation id="7517569744831774757">Ibalik ang mga setting sa mga orihinal na default ng mga ito.</translation>
 <translation id="7517786267097410259">Gumawa ng isang password -</translation>
 <translation id="7518150891539970662">Mga log ng WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     subukang gumawa ulit ng pinapangasiwaang user.</translation>
 <translation id="756445078718366910">Magbukas ng Window ng Browser</translation>
 <translation id="7564847347806291057">Tapusin ang proseso</translation>
-<translation id="7565291891798266313">Ginawang <ph name="URL" /> ang iyong search engine. Upang i-disable ang mga extension na binabago ang search engine mo, i-click ang I-restore.</translation>
 <translation id="7566118625369982896">Pamahalaan ang mga link ng app sa Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Na-clear ang data ng Chrome</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Charge ng Baterya</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Tipunin</translation>
-<translation id="7577815336900970562">Gumamit ng WiFi o cellular network upang matukoy ang lokasyon</translation>
 <translation id="7579149537961810247">I-mute ang Mga Site</translation>
 <translation id="7580671184200851182">I-play ang parehong audio sa lahat ng speaker (mono audio)</translation>
 <translation id="7581462281756524039">Isang tool sa paglilinis</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Storage ng session</translation>
 <translation id="7781335840981796660">Aalisin ang lahat ng user account at lokal na data.</translation>
 <translation id="7782102568078991263">Wala nang mga suhestiyon mula sa Google</translation>
+<translation id="778330624322499012">Hindi ma-load ang <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Na-block ng mga setting ng seguridad sa iyong computer ang file na ito.</translation>
 <translation id="7786207843293321886">Lumabas sa Bisita</translation>
 <translation id="7786889348652477777">I-&amp;reload ang App</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Maaaring ninakaw ng site ang iyong password</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Nadiskonekta ang Internet. Pakisuri ang iyong koneksyon sa internet.</translation>
-<translation id="8008765610824028412">Hindi ma-load ang <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Awtomatikong magpadala ng ilang impormasyon ng system at content ng page sa Google upang makatulong na tumukoy ng mga mapanganib na app at site</translation>
 <translation id="8012382203418782830">Naisalin na ang pahinang ito.</translation>
 <translation id="8014154204619229810">Kasalukuyang tumatakbo ang updater. I-refresh pagkatapos ng isang minuto upang muling suriin.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Pamahalaan ang iyong apps, mga extension, at tema</translation>
 <translation id="8191453843330043793">Panglutas ng Proxy ng V8</translation>
 <translation id="8195027750202970175">Sukat sa disk</translation>
-<translation id="8195739004487400241">Ginawang <ph name="URL" /> ang iyong homepage. Upang i-disable ang mga extension na binabago ang homepage mo, i-click ang I-restore.</translation>
 <translation id="8199300056570174101">Mga property ng Network (Serbisyo) at Device</translation>
 <translation id="8200772114523450471">Resume</translation>
 <translation id="8202160505685531999">Mangyaring ilagay muli ang iyong password upang i-update ang iyong profile sa <ph name="DEVICE_TYPE" />.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Hindi nakalista ang extension na ito sa <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> at maaaring naidagdag nang hindi mo nalalaman.</translation>
 <translation id="8261387128019234107">Magdagdag ng account para kay <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">I-delete</translation>
-<translation id="826246685091802258">Hindi ipinapatupad ang <ph name="BAD_FLAG" /> sa build na ito.</translation>
 <translation id="8263744495942430914">Hindi pinagana ng <ph name="FULLSCREEN_ORIGIN" /> ang cursor ng iyong mouse.</translation>
 <translation id="8264718194193514834">Nag-trigger ang "<ph name="EXTENSION_NAME" />" ng full screen.</translation>
 <translation id="8270242299912238708">Mga dokumentong PDF</translation>
@@ -4714,6 +4653,7 @@
 <translation id="8454288007744638700">O kaya, pumili ng bagong network:</translation>
 <translation id="845627346958584683">Oras ng Expiration</translation>
 <translation id="8456681095658380701">Di-wastong pangalan</translation>
+<translation id="8457451314607652708">Mag-import ng mga bookmark</translation>
 <translation id="8460336040822756677">Kung io-off mo ang Smart Lock para sa <ph name="DEVICE_TYPE" />, hindi mo maa-unlock ang iyong mga Chrome device gamit ang iyong telepono. Kakailanganin mong i-type ang iyong password.</translation>
 <translation id="8461329675984532579">Pangalan ng home provider</translation>
 <translation id="84613761564611563">Hiniling ang network configure UI, mangyaring maghintay...</translation>
@@ -4745,7 +4685,6 @@
 <translation id="850875081535031620">Walang nahanap na mapaminsalang software</translation>
 <translation id="8512476990829870887">Tapusin ang Proseso</translation>
 <translation id="851263357009351303">Palaging hayaan ang <ph name="HOST" /> na magpakita ng mga larawan</translation>
-<translation id="8513191386157529469">Dine-debug ng "<ph name="CLIENT_NAME" />" ang browser na ito.</translation>
 <translation id="8521475323816527629">Mabilis na makapunta sa iyong mga app</translation>
 <translation id="8523493869875972733">Panatilihin ang Mga Pagbabago</translation>
 <translation id="8523849605371521713">Idinagdag ng patakaran</translation>
@@ -4801,7 +4740,6 @@
 <translation id="8620765578342452535">I-configure ang mga koneksyon sa network</translation>
 <translation id="8620790565535071193">Hindi na-scan</translation>
 <translation id="8622877356447980900">Gusto mo bang isalin ang page na ito?</translation>
-<translation id="8623004009673949077">Naka-install dapat sa kiosk mode ng Chrome OS  ang app na may 'kiosk_only' na manifest attribute.</translation>
 <translation id="8624205858755890468">Binibigyang-daan ang Assistant na magpakita sa iyo ng mga kaugnay na impormasyon, app, at pagkilos.</translation>
 <translation id="862542460444371744">&amp;Mga Extension</translation>
 <translation id="8627151598708688654">Pumili ng pinagmulan</translation>
@@ -4950,7 +4888,6 @@
 <translation id="882204272221080310">I-update ang firmware para sa karagdagang seguridad.</translation>
 <translation id="8823514049557262177">Kopyahin ang text ng link</translation>
 <translation id="8824701697284169214">Magdagdag ng Pahina...</translation>
-<translation id="8827850355924932817">Gumamit ng WiFi network upang matukoy ang lokasyon</translation>
 <translation id="8828933418460119530">Pangalan ng DNS</translation>
 <translation id="8830796635868321089">Nabigo ang pagsusuri sa update gamit ang mga kasalukuyang setting ng proxy. Mangyaring isaayos ang iyong <ph name="PROXY_SETTINGS_LINK_START" />mga setting ng proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Ang configuration ng network ay kinokontrol ng <ph name="USER_EMAIL" />.</translation>
@@ -4983,9 +4920,7 @@
 <translation id="8879284080359814990">&amp;Ipakita Bilang Tab</translation>
 <translation id="8884961208881553398">Magdagdag ng mga bagong serbisyo</translation>
 <translation id="8885197664446363138">Hindi available ang Smart Lock</translation>
-<translation id="8885905466771744233">Umiiral na ang pribadong key para sa tinukoy na extension. Gamiting muli ang key na iyon o tanggalin muna ito.</translation>
 <translation id="8888432776533519951">Kulay</translation>
-<translation id="8892992092192084762">Na-install ang temang "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Paumanhin, hindi makilala ang device na <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Listahan ng bookmark</translation>
 <translation id="88986195241502842">Pababa sa pahina</translation>
@@ -4994,13 +4929,12 @@
 <translation id="8899285681604219177">Na-disable ang Mga Hindi Sinusuportahang Extension</translation>
 <translation id="8899551033019439140">Naghahanap ng printer...</translation>
 <translation id="8899851313684471736">Buksan ang link sa bagong &amp;window</translation>
-<translation id="8902667442496790482">Buksan ang mga setting ng select-to-speak</translation>
+<translation id="8902667442496790482">Buksan ang mga setting ng Select to Speak</translation>
 <translation id="8903921497873541725">Mag-zoom in</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">Babala: Na-enable mo ang flag na --scripts-require-action sa computer na ito, na naglilimita sa mga kakayahan ng extension na ito. Gayunpaman, maaaring hindi suportahan o hindi i-enable ng ibang mga device ang flag na ito. Sa mga device na ito, maaari ding gawin ng extension na ito ang mga sumusunod:</translation>
 <translation id="8910146161325739742">Ibahagi ang iyong screen</translation>
 <translation id="8910222113987937043">Hindi na isi-sync sa Google Account mo ang mga pagbabago sa iyong mga bookmark, history, password at iba pang mga setting. Gayunpaman, mananatiling nakaimbak sa Google Account mo ang iyong kasalukuyang data at mapamamahalaan ito sa <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Na-flag ng Google ang "<ph name="EXTENSION_NAME" />" bilang nakakahamak at pinigilan ang pag-install.</translation>
 <translation id="8912793549644936705">Naka-stretch</translation>
 <translation id="8915370057835397490">Nilo-load ang suhestiyon</translation>
 <translation id="8916476537757519021">Incognito na Subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5106,7 +5040,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Nakakonekta ang USB mouse</translation>
 <translation id="9076523132036239772">Paumanhin, hindi ma-verify ang iyong email o password. Subukan munang kumonekta sa network.</translation>
-<translation id="907841381057066561">Nabigo sa paglikha ng pansamantalang zip file sa oras ng packaging.</translation>
 <translation id="9084064520949870008">Buksan bilang Window</translation>
 <translation id="9088234649737575428">Na-block ang <ph name="PLUGIN_NAME" /> ng patakaran ng kumpanya</translation>
 <translation id="9088917181875854783">Pakikumpirma na ipinapakita ang passkey na ito sa "<ph name="DEVICE_NAME" />":</translation>
@@ -5197,12 +5130,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ilagay ang passphrase</translation>
 <translation id="939736085109172342">Bagong folder</translation>
-<translation id="941543339607623937">Di-wastong pribadong key.</translation>
 <translation id="942532530371314860">Nagbabahagi ng tab ng Chrome at audio ang <ph name="APP_NAME" />.</translation>
 <translation id="942954117721265519">Walang mga larawan sa direktoryong ito.</translation>
 <translation id="945522503751344254">Magpadala ng feedback...</translation>
-<translation id="951981865514037445">Gustong gamitin ng <ph name="URL" /> ang lokasyon ng iyong device. 
-</translation>
 <translation id="952992212772159698">Hindi na-activate</translation>
 <translation id="9580706199804957">Hindi makakonekta sa mga serbisyo ng Google</translation>
 <translation id="958515377357646513">Pumindot upang pumunta sa susunod.</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index b4c970fb..27b2a55 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Chiffrer seulement</translation>
 <translation id="1039337018183941703">Fichier non valide ou corrompu</translation>
 <translation id="1042174272890264476">Votre ordinateur est fourni avec la bibliothèque RLZ de <ph name="SHORT_PRODUCT_NAME" />. RLZ attribue un tag non unique (et qui n'identifie pas personnellement les internautes) afin de mesurer les recherches et l'utilisation de <ph name="SHORT_PRODUCT_NAME" /> générées par une campagne de promotion spécifique. Ces libellés s'affichent parfois dans les requêtes de recherche Google dans <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Une demande de stockage permanent de données volumineuses sur votre appareil a été envoyée à partir de <ph name="URL" />.</translation>
 <translation id="1046059554679513793">Petit problème... Ce nom est déjà utilisé.</translation>
 <translation id="1047431265488717055">Copier le te&amp;xte du lien</translation>
 <translation id="1047726139967079566">Ajouter cette page aux favoris</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Restaurer le moteur de recherche par défaut ?</translation>
 <translation id="1177863135347784049">Personnalisé</translation>
 <translation id="1178581264944972037">Suspendre</translation>
-<translation id="1179803038870941185">Une demande de contrôle total de vos appareils MIDI a été envoyée via <ph name="URL" />.</translation>
 <translation id="1181037720776840403">Supprimer</translation>
 <translation id="1183237619868651138">Impossible d'installer le fichier <ph name="EXTERNAL_CRX_FILE" /> dans le cache local.</translation>
 <translation id="1185924365081634987">Vous pouvez également essayer de <ph name="GUEST_SIGNIN_LINK_START" />naviguer en tant qu'invité<ph name="GUEST_SIGNIN_LINK_END" /> pour corriger cette erreur réseau.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Accédez à un fichier stocké sur votre ordinateur.}one{Accédez à # fichier stocké sur votre ordinateur.}other{Accédez à # fichiers stockés sur votre ordinateur.}}</translation>
 <translation id="1195076408729068893">Pour lancer Smart Lock, saisissez votre mot de passe. La prochaine fois, vous pourrez utiliser votre téléphone pour déverrouiller votre <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Erreur inconnue</translation>
-<translation id="1196338895211115272">Échec d'exportation de la clé privée</translation>
 <translation id="119738088725604856">Capture d'écran de la fenêtre</translation>
 <translation id="1197979282329025000">Une erreur s'est produite lors de la récupération des fonctions de l'imprimante <ph name="PRINTER_NAME" />. Cette imprimante n'a pas pu être enregistrée dans <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Mise en route</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Votre administrateur recommande une valeur spécifique pour ce paramètre.</translation>
 <translation id="1225177025209879837">Traitement de la demande en cours…</translation>
 <translation id="1225211345201532184">Élément d'étagère 5</translation>
-<translation id="1225404570112441414">Ajoutez ce site à votre étagère pour l'utiliser à tout moment.</translation>
 <translation id="1227507814927581609">Échec de l'authentification lors de la connexion à l'appareil "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu système</translation>
 <translation id="1232569758102978740">Sans titre</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Ajouter le fichier HTML aux favoris</translation>
 <translation id="1303671224831497365">Aucun appareil Bluetooth détecté</translation>
 <translation id="1306606229401759371">Modifier les paramètres</translation>
-<translation id="1307398858972670978">Accédez à vos mots de passe depuis n'importe quel appareil à l'adresse <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Échec de l'enregistrement du jeton d'accès aux API à long terme pour cet appareil.</translation>
 <translation id="1313405956111467313">Configuration automatique du proxy</translation>
 <translation id="131364520783682672">Verr. maj.</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Rechercher</translation>
 <translation id="1386387014181100145">Bonjour</translation>
 <translation id="138784436342154190">Restaurer la page de démarrage par défaut ?</translation>
-<translation id="1389297115360905376">Cet élément doit être installé depuis le <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Ouvrir dans un onglet standard</translation>
-<translation id="1391807639023934267">Page chargée plus rapidement.</translation>
 <translation id="1393283411312835250">Soleil et nuages</translation>
 <translation id="1395262318152388157">Barre de recherche</translation>
 <translation id="1395730723686586365">Processus de mise à jour lancé</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Vous passez à une version instable de <ph name="PRODUCT_NAME" /> qui contient des fonctionnalités en cours de développement. Des plantages et des bugs inattendus peuvent se produire. Procédez avec prudence.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID d'extension "<ph name="EXTENSION_ID" />") n'est pas autorisé à se joindre à ce type de session.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Échec de génération de clé privée RSA aléatoire</translation>
 <translation id="1420834118113404499">Licences multimédias</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> pour autoriser l'association</translation>
 <translation id="1426410128494586442">Oui</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opier l'adresse audio</translation>
 <translation id="1465827627707997754">Part de pizza</translation>
 <translation id="1467432559032391204">Vers la gauche</translation>
-<translation id="1467999917853307373">Une demande de stockage permanent de données sur votre appareil a été envoyée à partir de <ph name="URL" />.</translation>
-<translation id="1470719357688513792">Les nouveaux paramètres des cookies seront appliqués quand vous aurez actualisé la page.</translation>
 <translation id="1470811252759861213">Pour synchroniser vos extensions sur tous vos ordinateurs, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Le fichier "<ph name="FILENAME" />" n'a pas été importé, car l'espace disponible sur Google Drive est insuffisant.</translation>
 <translation id="1475502736924165259">Vous disposez de certificats qui n'appartiennent à aucune autre catégorie.</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Grand curseur</translation>
 <translation id="1543284117603151572">Importés depuis Edge</translation>
 <translation id="1545177026077493356">Mode Kiosque automatique</translation>
+<translation id="1545775234664667895">Thème "<ph name="THEME_NAME" />" installé</translation>
 <translation id="1545786162090505744">URL avec %s à la place de la requête</translation>
 <translation id="1546280085599573572">Cette extension a modifié la page affichée lorsque vous cliquez sur le bouton Accueil.</translation>
 <translation id="1547572086206517271">Actualisation requise</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />vérifier<ph name="END_BOLD" /> les sites Web que l'utilisateur supervisé a consultés ; et
     <ph name="BEGIN_BOLD" />gérer<ph name="END_BOLD" /> d'autres paramètres.</translation>
 <translation id="1648943974594387137">Les informations de connexion sont obsolètes</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> lignes non affichées&gt;</translation>
 <translation id="1650371550981945235">Afficher les options de saisie</translation>
 <translation id="1650709179466243265">Ajouter www. et .com, puis ouvrir la page</translation>
 <translation id="1651008383952180276">Vous devez saisir deux fois la même phrase secrète</translation>
-<translation id="1652972346408808053">Mot de passe enregistré. Accédez à vos mots de passe depuis n'importe quel appareil sur la page <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Ajoutez l'imprimante à Google Cloud Print pour imprimer des documents où que vous soyez.}one{Ajoutez # imprimante à Google Cloud Print pour imprimer des documents où que vous soyez.}other{Ajoutez # imprimantes à Google Cloud Print pour imprimer des documents où que vous soyez.}}</translation>
 <translation id="1657406563541664238">Nous aider à améliorer <ph name="PRODUCT_NAME" /> en envoyant automatiquement les statistiques d'utilisation et les rapports d'erreur à Google</translation>
 <translation id="1658424621194652532">Cette page a accès à votre micro</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continuer à bloquer les cookies</translation>
 <translation id="204622017488417136">La version de Chrome précédemment installée va être rétablie sur votre appareil. Les données locales et les comptes utilisateur vont être supprimés. Cette opération est irréversible.</translation>
 <translation id="2048182445208425546">Accéder au trafic de votre réseau</translation>
-<translation id="2049137146490122801">Votre administrateur a désactivé l'accès aux fichiers locaux sur votre ordinateur.</translation>
 <translation id="204914487372604757">Créer un raccourci</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2053312383184521053">Données sur l'état de veille</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Pas encore chargé</translation>
 <translation id="2107494551712864447">Ajouter une empreinte digitale</translation>
-<translation id="2111843886872897694">Les applications doivent être diffusées depuis l'hôte qu'elles affectent.</translation>
 <translation id="2112877397266219826">Activez votre contrôleur tactile pour la configuration</translation>
 <translation id="21133533946938348">Épingler l'onglet</translation>
 <translation id="2113479184312716848">&amp;Ouvrir un fichier...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Décrivez-nous le problème rencontré</translation>
 <translation id="2229161054156947610">Plus d'1 heure restante</translation>
 <translation id="222931766245975952">Fichier tronqué.</translation>
-<translation id="222949136907494149"><ph name="URL" /> souhaite avoir accès à la position de votre ordinateur.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Impossible de créer le dossier "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Cliquez ici pour afficher le doodle du jour</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Toujours bloquer l'accès au micro</translation>
 <translation id="2367972762794486313">Afficher les applications</translation>
 <translation id="2371076942591664043">Ouvrir une fois le téléchargement &amp;terminé</translation>
-<translation id="237336063998926520">Utilisez votre adresse IP pour déterminer votre position</translation>
 <translation id="2377319039870049694">Passer en mode Liste</translation>
 <translation id="2377667304966270281">Défauts matériels</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> fichiers sélectionnés</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">"<ph name="APP_NAME" />" souhaite copier des fichiers depuis "<ph name="VOLUME_NAME" />".</translation>
 <translation id="2462724976360937186">ID de clé de l'autorité de certification</translation>
 <translation id="2462752602710430187">L'imprimante <ph name="PRINTER_NAME" /> a bien été ajoutée.</translation>
-<translation id="246335896104539386">Importer des favoris</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Impossible de se connecter à votre téléphone. Assurez-vous qu'il s'agit bien d'un téléphone Android compatible, qu'il est allumé et qu'il se trouve à proximité. &lt;a&gt;En savoir plus&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Désactivation des extensions non compatibles</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Désinstaller</translation>
 <translation id="2487067538648443797">Ajouter un favori</translation>
 <translation id="248861575772995840">Impossible de trouver votre téléphone. Assurez-vous que le Bluetooth de votre <ph name="DEVICE_TYPE" /> est activé. &lt;a&gt;En savoir plus&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Un plug-in (<ph name="PLUGIN_NAME" />) ne répond pas.</translation>
 <translation id="2489428929217601177">des dernières 24 heures</translation>
 <translation id="2489918096470125693">Ajouter un &amp;dossier...</translation>
 <translation id="249113932447298600">Désolé, le périphérique <ph name="DEVICE_LABEL" /> n'est pas compatible pour le moment.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Félicitations ! Votre service de données "<ph name="NAME" />" a été activé et est prêt à être utilisé.</translation>
 <translation id="2566124945717127842">Effectuez un Powerwash pour rétablir la configuration d'usine de votre appareil <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2568774940984945469">Conteneur de barres d'infos</translation>
-<translation id="2570000010887652771">Données économisées.</translation>
 <translation id="257088987046510401">Thèmes</translation>
 <translation id="2572032849266859634">L'accès en lecture seule à "<ph name="VOLUME_NAME" />" a été accordé.</translation>
 <translation id="2573269395582837871">Sélectionner une photo et choisissez un nom</translation>
 <translation id="2575247648642144396">Cette icône s'affiche lorsque l'extension peut être utilisée au sein de la page qui s'affiche actuellement. Pour utiliser cette extension, cliquez sur l'icône ou appuyez sur <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Impossible de trouver votre téléphone. Assurez-vous que votre <ph name="DEVICE_TYPE" /> est connecté au Wi-Fi ou à un réseau mobile. &lt;a&gt;En savoir plus&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Un autre fichier CRX portant le même nom existe déjà.</translation>
 <translation id="257779572837908839">Configurer en tant que Chromebox pour la visioconférence</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Impossible de désinstaller le volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Si vous supprimez le certificat d'une autorité de certification, votre navigateur ne fera plus confiance aux certificats émis par cette autorité de certification.</translation>
 <translation id="2653659639078652383">Valider</translation>
 <translation id="265390580714150011">Valeur du champ</translation>
-<translation id="2654286334048437383">Exporter des favoris</translation>
 <translation id="2655386581175833247">Certificat utilisateur :</translation>
 <translation id="2660779039299703961">Événement</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Ajouter une galerie de médias par répertoire</translation>
 <translation id="2908789530129661844">Zoom arrière</translation>
 <translation id="2910318910161511225">Connectez-vous à un réseau et réessayez</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> veut utiliser votre micro.</translation>
 <translation id="2913331724188855103">Autoriser les sites à enregistrer et à lire les données des cookies (recommandé)</translation>
 <translation id="2916073183900451334">Sur le Web, Tab permet de sélectionner les liens, ainsi que les champs de formulaire.</translation>
 <translation id="2916745397441987255">Rechercher dans les extensions</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Écoute…</translation>
 <translation id="3141917231319778873">La demande fournie n'est pas compatible avec l'appareil <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">OK</translation>
-<translation id="3144135466825225871">Échec lors du remplacement du fichier CRX. Vérifiez qu'il n'est pas en cours d'utilisation.</translation>
 <translation id="3144647712221361880">Ouvrir le lien avec le compte</translation>
 <translation id="3149510190863420837">Applications Chrome</translation>
 <translation id="3150927491400159470">Actualisation forcée</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Toujours exécuter pour tous les sites</translation>
 <translation id="3312424061798279731">Langues activées</translation>
 <translation id="3312903956926554846">Installer sur le bureau</translation>
-<translation id="3313473140726597081">Votre page de démarrage a été remplacée par <ph name="URL" />. Pour désactiver les extensions qui changent la page de démarrage, cliquez sur "Restaurer".</translation>
 <translation id="3313590242757056087">Pour définir les sites Web que l'utilisateur supervisé peut consulter, vous pouvez configurer des restrictions
     et des paramètres sur le site <ph name="MANAGEMENT_URL" />.
     Si vous conservez les paramètres par défaut, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informations relatives à l'application</translation>
 <translation id="3335947283844343239">Rouvrir l'onglet fermé</translation>
-<translation id="3337069537196930048">Le plug-in <ph name="PLUGIN_NAME" /> a été bloqué, car il est obsolète.</translation>
 <translation id="3340978935015468852">paramètres</translation>
 <translation id="3341703758641437857">Autoriser l'accès aux URL de fichier</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" souhaite supprimer cette extension.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Favori ajouté</translation>
 <translation id="3389312115541230716">Faites un clic droit sur l'icône <ph name="SMALL_PRODUCT_LOGO" /> dans la barre des tâches.</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> veut utiliser votre appareil photo et votre micro.</translation>
 <translation id="3396331542604645348">L'imprimante sélectionnée n'est pas disponible ou n'est pas installée correctement. Veuillez vérifier votre imprimante ou en sélectionner une autre.</translation>
 <translation id="3399432415385675819">Les notifications seront désactivées</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome se met à jour automatiquement afin que vous disposiez toujours de la version la plus récente.</translation>
 <translation id="3551320343578183772">Fermer l'onglet</translation>
 <translation id="3552780134252864554">Effacé en fin de session</translation>
-<translation id="355298399003313926"><ph name="URL" /> souhaite répondre aux événements d'accessibilité.</translation>
 <translation id="3555812735919707620">Supprimer l'extension</translation>
 <translation id="3556000484321257665">Votre moteur de recherche a été remplacé par <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Vous devez indiquer un chemin valide comme valeur de clé privée.</translation>
 <translation id="3563432852173030730">Impossible de télécharger l'application kiosque.</translation>
 <translation id="3564334271939054422">Pour utiliser ce réseau Wi-Fi (<ph name="NETWORK_ID" />), vous devrez peut-être vous rendre sur la page de connexion correspondante.</translation>
 <translation id="3564708465992574908">Niveaux de zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Contraintes de nom du certificat</translation>
 <translation id="3596235046596950091">Activer les services cloud</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="3600456501114769456">Votre administrateur a désactivé l'accès aux fichiers locaux sur votre appareil.</translation>
 <translation id="3600792891314830896">Couper le son des sites</translation>
 <translation id="3603177256297531067">Impossible de traduire cette page</translation>
 <translation id="3603533104205588786">Vous pouvez cliquer sur l'étoile pour ajouter une page à vos favoris</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Captures d'écran désactivées</translation>
 <translation id="3625870480639975468">Réinitialiser le zoom</translation>
 <translation id="3626281679859535460">Luminosité</translation>
-<translation id="3627052133907344175">L'extension nécessite au minimum "<ph name="IMPORT_NAME" />" version <ph name="IMPORT_VERSION" />, mais la version installée est la <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Moins d'1 minute restante</translation>
 <translation id="3627588569887975815">Ouvrir le lien dans une fenêtre en navi&amp;gation privée</translation>
 <translation id="3627671146180677314">Date de renouvellement du certificat Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Paramètres linguistiques</translation>
 <translation id="3668823961463113931">Gestionnaires</translation>
 <translation id="3670229581627177274">Activer le Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> veut stocker de façon permanente des données volumineuses sur votre ordinateur local.</translation>
 <translation id="3672681487849735243">Une erreur a été détectée dans la configuration d'usine</translation>
 <translation id="367645871420407123">N'indiquez rien si vous voulez définir le mot de passe racine sur la valeur d'image test par défaut.</translation>
 <translation id="3678156199662914018">Extension : <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Vous êtes actuellement hors connexion.</translation>
 <translation id="3788401245189148511">Elle pourrait :</translation>
 <translation id="3789841737615482174">Installer</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> fonctionne uniquement sur le bureau.</translation>
 <translation id="379082410132524484">Votre carte est arrivée à expiration</translation>
 <translation id="3792890930871100565">Déconnecter des imprimantes</translation>
 <translation id="379422718204375917">Utiliser Smart Lock pour vous connecter à votre compte</translation>
-<translation id="3794595850995182458">Quitter la page</translation>
 <translation id="3796648294839530037">Réseaux favoris :</translation>
 <translation id="3797900183766075808">&amp;Rechercher "<ph name="SEARCH_TERMS" />" avec <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Permet d'activer ou de désactiver la fonctionnalité Taper pour cliquer</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Activer <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Le type d'enregistrement indiqué est incorrect.</translation>
 <translation id="3983586614702900908">appareils d'un fournisseur inconnu</translation>
-<translation id="3984413272403535372">Erreur lors de la signature de l'extension</translation>
 <translation id="3987938432087324095">Pardon, je n'ai pas compris.</translation>
 <translation id="3988996860813292272">Sélectionner un fuseau horaire</translation>
 <translation id="3989635538409502728">Déconnexion</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Installez des applications et des jeux sur votre Chromebook depuis Google Play. &lt;a target="_blank" href="<ph name="URL" />"&gt;En savoir plus&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Accepter pour le groupe</translation>
 <translation id="4090103403438682346">Activer l'accès validé</translation>
-<translation id="4090404313667273475">Le plug-in <ph name="PLUGIN_NAME" /> est nécessaire pour afficher certains éléments sur cette page.</translation>
 <translation id="4090535558450035482">(Cette extension est gérée et ne peut pas être supprimée.)</translation>
 <translation id="4091434297613116013">feuilles de papier</translation>
 <translation id="4093955363990068916">Fichier local :</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> peut maintenant synchroniser vos mots de passe.</translation>
 <translation id="4715553623069266137">très court (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash pour plus de sécurité</translation>
-<translation id="471800408830181311">Échec de création de clé privée</translation>
 <translation id="4720113199587244118">Ajouter des périphériques</translation>
 <translation id="4720185134442950733">Réseau de données mobiles</translation>
 <translation id="4722920479021006856">Votre écran est partagé par le biais de l'application <ph name="APP_NAME" />.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Très bon</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> souhaite communiquer avec l'extension "<ph name="EXTENSION_NAME" />".</translation>
 <translation id="4918086044614829423">Accepter</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> veut utiliser votre appareil photo.</translation>
 <translation id="4920887663447894854">Le suivi de votre position géographique sur cette page a été bloqué pour les sites suivants :</translation>
 <translation id="492299503953721473">Supprimer des applications Android</translation>
 <translation id="4923279099980110923">Je souhaite apporter mon aide</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Cette extension contient des logiciels malveillants.</translation>
 <translation id="498294082491145744">Modifier les paramètres qui contrôlent l'accès des sites Web à des fonctionnalités telles que les cookies, le code JavaScript, les plug-ins, la géolocalisation, le micro, la caméra, etc.</translation>
 <translation id="4988526792673242964">Pages</translation>
-<translation id="4988792151665380515">Échec d'exportation de la clé publique</translation>
 <translation id="49896407730300355">Rotation &amp;antihoraire</translation>
 <translation id="4989966318180235467">Inspecter la page d'&amp;arrière-plan</translation>
 <translation id="4990343175649730969">Télécharger l'outil de nettoyage Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Ne plus afficher ce message</translation>
 <translation id="5027550639139316293">Certificat de courrier électronique</translation>
 <translation id="5027562294707732951">Ajouter l'extension</translation>
-<translation id="5028012205542821824">L'installation n'a pas été activée.</translation>
 <translation id="5029568752722684782">Effacer la copie</translation>
 <translation id="5030338702439866405">Émis par</translation>
 <translation id="5036662165765606524">N'autoriser le téléchargement automatique de plusieurs fichiers pour aucun site</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Une erreur s'est produite.</translation>
 <translation id="5094721898978802975">Communiquer avec les applications natives associées</translation>
 <translation id="5097002363526479830">Échec de la connexion au réseau "<ph name="NAME" />" : <ph name="DETAILS" />.</translation>
-<translation id="5098647635849512368">Impossible de trouver le chemin d'accès absolu du répertoire à empaqueter.</translation>
 <translation id="5099354524039520280">haut</translation>
 <translation id="5100114659116077956">Pour vous permettre de bénéficier des dernières fonctionnalités, votre Chromebox doit être mise à jour.</translation>
 <translation id="5101042277149003567">Ouvrir tous les favoris</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Afficher le dossier</translation>
 <translation id="5171045022955879922">Rechercher ou saisir une URL</translation>
 <translation id="5171343362375269016">Espace mémoire d'échange</translation>
-<translation id="5175870427301879686"><ph name="URL" /> veut stocker des données de façon permanente sur votre ordinateur local.</translation>
 <translation id="5177479852722101802">Continuer à bloquer l'accès à la caméra et au micro</translation>
 <translation id="5177526793333269655">Afficher les vignettes</translation>
 <translation id="5177549709747445269">Vous utilisez des données mobiles</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formater cet appareil</translation>
 <translation id="5293170712604732402">Restaurer les paramètres par défaut</translation>
 <translation id="5298219193514155779">Thème créé par</translation>
-<translation id="5298363578196989456">Impossible d'importer l'extension "<ph name="IMPORT_NAME" />", car il ne s'agit pas d'un module partagé.</translation>
 <translation id="5299109548848736476">Interdire le suivi</translation>
 <translation id="5299682071747318445">Toutes les données sont chiffrées avec votre phrase secrète de synchronisation.</translation>
 <translation id="5300589172476337783">Afficher</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" tente de s'associer</translation>
 <translation id="5332624210073556029">Fuseau horaire :</translation>
 <translation id="5334142896108694079">Cache des scripts</translation>
-<translation id="533433379391851622">Version <ph name="NEW_ID" /> reçue au lieu de la version <ph name="EXPECTED_VERSION" /> attendue.</translation>
 <translation id="5334844597069022743">Afficher le code source</translation>
 <translation id="5335458522276292100">Sauvegarde de <ph name="FILE_COUNT" /> sur <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />…</translation>
 <translation id="5337771866151525739">Installé par un tiers</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Autoriser l'activation du son des sites</translation>
 <translation id="5390284375844109566">Base de données indexée</translation>
 <translation id="5390743329570580756">Envoyer pour</translation>
-<translation id="5396126354477659676">Le plug-in <ph name="PEPPER_PLUGIN_NAME" /> provenant du domaine <ph name="PEPPER_PLUGIN_DOMAIN" /> demande l'accès à votre ordinateur.</translation>
 <translation id="5397794290049113714">Vous</translation>
 <translation id="5398572795982417028">Plage de pages hors limites. Le nombre maximal de pages est <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Annonces bloquées</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Restaurer tous les onglets</translation>
 <translation id="5486261815000869482">Confirmer le mot de passe</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> partage votre écran avec <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">La valeur d'entrée de la clé privée est obligatoire.</translation>
 <translation id="5486561344817861625">Simuler le redémarrage du navigateur</translation>
 <translation id="5487521232677179737">Effacer les données</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" copié</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Le téléchargement de la mise à jour utilisera <ph name="UPDATE_SIZE_MB" /> Mo de données mobiles. Voulez-vous continuer ?</translation>
 <translation id="5601503069213153581">Code d'accès</translation>
 <translation id="5605623530403479164">Autres moteurs de recherche</translation>
-<translation id="5606674617204776232">Une demande d'accès à votre appareil a été envoyée à partir du plug-in <ph name="PEPPER_PLUGIN_NAME" /> issu du domaine <ph name="PEPPER_PLUGIN_DOMAIN" />.</translation>
 <translation id="5608580678041221894">Appuyez sur les touches suivantes pour ajuster ou déplacer la zone de recadrage</translation>
 <translation id="5609231933459083978">L'application ne semble pas valide.</translation>
 <translation id="5610038042047936818">Passer en mode Appareil photo</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Traduite</translation>
 <translation id="5991049340509704927">Agrandir</translation>
 <translation id="5993332328670040093">Votre utilisation des données ne sera plus mesurée.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> risque de ne pas rester à jour.</translation>
 <translation id="600424552813877586">Application non valide.</translation>
 <translation id="6005695835120147974">Routeur multimédia</translation>
 <translation id="6006484371116297560">Classique</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Sauvegarde Cloud</translation>
 <translation id="6040143037577758943">Fermer</translation>
 <translation id="6040852767465482106">Authentification anonyme</translation>
+<translation id="6041155700700864984">Quitter le mode plein écran</translation>
 <translation id="604124094241169006">Automatique</translation>
 <translation id="6042169520002885235">Sélectionner un fabricant et un modèle d'imprimante</translation>
 <translation id="6042308850641462728">Plus</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Actualisation normale</translation>
 <translation id="6059652578941944813">Hiérarchie des certificats</translation>
 <translation id="6059925163896151826">Appareils USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> a planté.</translation>
 <translation id="6064217302520318294">Verrouillage de l'écran</translation>
 <translation id="6065289257230303064">Attributs du répertoire de l'objet du certificat</translation>
 <translation id="6068338049763724728">Activer l'enregistrement à distance</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Permet d'ajuster la résolution de l'écran</translation>
 <translation id="6238923052227198598">Conserver la dernière note sur l'écran de verrouillage</translation>
 <translation id="6239558157302047471">Actualiser le &amp;cadre</translation>
-<translation id="624022915548992686">Quitter la page</translation>
 <translation id="6241530762627360640">Accéder aux informations relatives aux appareils Bluetooth associés à votre système et détecter les appareils Bluetooth à proximité</translation>
 <translation id="6243774244933267674">Serveur indisponible.</translation>
 <translation id="6246413617632217567">Impossible d'importer l'utilisateur supervisé. Veuillez vérifier l'espace disponible sur votre disque dur et vos autorisations, puis réessayer.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Erreur de réseau inconnue.</translation>
 <translation id="6313641880021325787">QUITTER LA RV</translation>
 <translation id="6314819609899340042">Les fonctionnalités de débogage ont été activées sur cet appareil <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Vos pages de démarrage ont été modifiées pour inclure <ph name="URL" />. Pour désactiver les extensions qui changent vos pages de démarrage, cliquez sur "Restaurer".</translation>
 <translation id="6315493146179903667">Tout ramener au premier plan</translation>
 <translation id="6316806695097060329">Cet appareil <ph name="SHORT_PRODUCT_NAME" /> a été conçu pour vous proposer la meilleure expérience possible sur le Web.</translation>
 <translation id="6317318380444133405">L'imprimante est désormais incompatible.</translation>
 <translation id="6317369057005134371">Création de la fenêtre de l'application en cours…</translation>
 <translation id="6318407754858604988">Le téléchargement a commencé</translation>
-<translation id="6322279351188361895">Échec de lecture de la clé privée</translation>
 <translation id="6325191661371220117">Désactiver le lancement automatique</translation>
 <translation id="6326175484149238433">Supprimer de Google Chrome</translation>
 <translation id="6326855256003666642">Nombre d'activités en cours</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Choisir les éléments à synchroniser</translation>
 <translation id="6333064448949140209">Le fichier sera envoyé à Google pour être débogué.</translation>
 <translation id="6333834492048057036">Centrer sur la barre d'adresse pour la recherche</translation>
-<translation id="6336907568130557310">Toute personne ayant accès au fichier exporté pourra voir vos mots de passe. Veillez à ne jamais partager ce fichier avec des tiers et à le supprimer après son importation.</translation>
 <translation id="6339668969738228384">Créer un profil pour <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Impossible de se connecter au serveur. Veuillez vérifier votre connexion réseau et réessayer. Si le problème persiste, redémarrez votre Chromebook.</translation>
 <translation id="6340071272923955280">Protocole d'impression Internet (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Les sites peuvent enregistrer et consulter les données liées aux cookies.</translation>
 <translation id="6388771388956873507">Localisez le lecteur d'empreinte digitale de votre appareil, puis posez le doigt dessus</translation>
 <translation id="6390799748543157332">Les pages que vous consultez dans cette fenêtre ne sont pas consignées dans l'historique du navigateur et ne laissent aucune autre trace sur votre ordinateur (des cookies, par exemple), une fois que vous avez fermé toutes les fenêtres Invité ouvertes. Tous les fichiers téléchargés sont toutefois conservés.</translation>
-<translation id="6391538222494443604">Le répertoire d'extensions est obligatoire.</translation>
 <translation id="6395423953133416962">Envoyer les <ph name="BEGIN_LINK1" />informations système<ph name="END_LINK1" /> et les <ph name="BEGIN_LINK2" />statistiques<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Arrêter de parler</translation>
 <translation id="6397592254427394018">Ouvrir tous les favoris dans une fenêtre de &amp;navigation privée</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Configurer le blocage de JavaScript...</translation>
 <translation id="6459488832681039634">Rechercher la sélection</translation>
 <translation id="6460601847208524483">Rechercher le suivant</translation>
-<translation id="6462080265650314920">Les applications doivent être diffusées avec le type de contenu <ph name="CONTENT_TYPE" />.</translation>
 <translation id="6462082050341971451">Êtes-vous toujours là ?</translation>
 <translation id="6463795194797719782">&amp;Modifier</translation>
 <translation id="6466988389784393586">&amp;Ouvrir tous les favoris</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Souhaitez-vous que Google traduise cette page de la langue "<ph name="SOURCE_LANGUAGE" />" vers la langue "<ph name="TARGET_LANGUAGE" />" ?</translation>
 <translation id="6675665718701918026">Dispositif de pointage connecté</translation>
-<translation id="6677037229676347494">Identifiant "<ph name="NEW_ID" />" reçu au lieu de l'identifiant "<ph name="EXPECTED_ID" />" attendu.</translation>
 <translation id="6678717876183468697">URL de requête</translation>
 <translation id="6680028776254050810">Changer d'utilisateur</translation>
 <translation id="6680442031740878064">Espace disponible : <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Vous pouvez personnaliser à tout moment les informations recueillies par Google dans les <ph name="BEGIN_LINK" />Paramètres<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Révoquer l'accès aux fichiers</translation>
 <translation id="6904655473976120856">Appuyer sur le bouton de l'application pour sortir</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> souhaite partager votre écran.</translation>
-<translation id="6909461304779452601">Les applications, les extensions et les scripts d'utilisateur ne peuvent pas être ajoutés à partir de ce site Web.</translation>
 <translation id="6910211073230771657">Supprimé</translation>
 <translation id="691024665142758461">Télécharger plusieurs fichiers</translation>
 <translation id="6911324888870229398">Connexion réseau perdue. Veuillez vérifier votre connexion ou essayer un autre réseau Wi-Fi.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Erreur : impossible de décoder l'extension.</translation>
 <translation id="7473891865547856676">Non, merci</translation>
 <translation id="747459581954555080">Tout restaurer</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> a rencontré une erreur.</translation>
 <translation id="7475671414023905704">URL de mot de passe perdu Netscape</translation>
 <translation id="7476454130948140105">Batterie trop faible pour la mise à jour (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Si vous avez oublié votre phrase secrète, interrompez la synchronisation, puis reconfigurez-la via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Certificat du répondeur d'état</translation>
 <translation id="7508545000531937079">Diaporama</translation>
 <translation id="7513029293694390567">Permet de se connecter automatiquement aux sites Web à l'aide des identifiants enregistrés. Si cette fonctionnalité est désactivée, vous êtes invité à confirmer chaque connexion à un site Web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> doit identifier votre appareil pour vous autoriser à lire du contenu protégé.</translation>
 <translation id="7517569744831774757">Restaurer les paramètres par défaut</translation>
 <translation id="7517786267097410259">Créer un mot de passe –</translation>
 <translation id="7518150891539970662">Journaux WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     réessayer de créer un compte utilisateur supervisé.</translation>
 <translation id="756445078718366910">Ouvrir une fenêtre du navigateur</translation>
 <translation id="7564847347806291057">Arrêter le processus</translation>
-<translation id="7565291891798266313">Votre moteur de recherche a été remplacé par <ph name="URL" />. Pour désactiver les extensions qui changent le moteur de recherche, cliquez sur "Restaurer".</translation>
 <translation id="7566118625369982896">Gérer les liens de l'application Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Données de Chrome effacées</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Charge de la batterie</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Assembler</translation>
-<translation id="7577815336900970562">Utiliser le réseau Wi‑Fi ou mobile pour déterminer la position</translation>
 <translation id="7579149537961810247">Couper le son des sites</translation>
 <translation id="7580671184200851182">Lire le même contenu audio sur toutes les enceintes (son mono)</translation>
 <translation id="7581462281756524039">Un outil de nettoyage</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Stockage de session</translation>
 <translation id="7781335840981796660">Tous les comptes utilisateur et toutes les données locales seront supprimés.</translation>
 <translation id="7782102568078991263">Aucune autre suggestion de Google</translation>
+<translation id="778330624322499012">Impossible de charger le plug-in <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7784067724422331729">Les paramètres de sécurité de votre ordinateur ont bloqué ce fichier.</translation>
 <translation id="7786207843293321886">Fermer la session d'invité</translation>
 <translation id="7786889348652477777">&amp;Actualiser l'application</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Un site vient peut-être de dérober votre mot de passe</translation>
 <translation id="8004582292198964060">Navigateur</translation>
 <translation id="8008356846765065031">Connexion Internet interrompue. Veuillez vérifier votre connexion.</translation>
-<translation id="8008765610824028412">Impossible de charger <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Envoyer automatiquement des informations système et du contenu de page à Google afin de faciliter la détection d'applications et de sites dangereux</translation>
 <translation id="8012382203418782830">Cette page a été traduite.</translation>
 <translation id="8014154204619229810">Le processus de mise à jour est en cours. Actualisez la page dans quelques instants et revérifiez.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Gérer vos applications, vos extensions et vos thèmes</translation>
 <translation id="8191453843330043793">Résolution de proxy V8</translation>
 <translation id="8195027750202970175">Taille sur le disque</translation>
-<translation id="8195739004487400241">Votre page d'accueil a été remplacée par <ph name="URL" />. Pour désactiver les extensions qui changent la page d'accueil, cliquez sur "Restaurer".</translation>
 <translation id="8199300056570174101">Propriétés du réseau (service) et de l'appareil</translation>
 <translation id="8200772114523450471">Reprendre</translation>
 <translation id="8202160505685531999">Saisissez à nouveau votre mot de passe pour modifier votre profil <ph name="DEVICE_TYPE" /></translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080">Cette extension n'est pas répertoriée sur le <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> et a pu être ajoutée à votre insu.</translation>
 <translation id="8261387128019234107">Ajouter un compte pour <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Supprimer</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> n'est pas disponible avec cette version.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a désactivé le curseur de votre souris.</translation>
 <translation id="8264718194193514834">L'extension <ph name="EXTENSION_NAME" /> a déclenché le mode Plein écran.</translation>
 <translation id="8270242299912238708">Documents PDF</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Ou sélectionnez un nouveau réseau :</translation>
 <translation id="845627346958584683">Délai d'expiration</translation>
 <translation id="8456681095658380701">Ce nom n'est pas valide.</translation>
+<translation id="8457451314607652708">Importer les favoris</translation>
 <translation id="8460336040822756677">Si vous désactivez Smart Lock pour <ph name="DEVICE_TYPE" />, vous ne pourrez pas déverrouiller vos appareils Chrome avec votre téléphone. Vous devrez saisir votre mot de passe.</translation>
 <translation id="8461329675984532579">Nom du fournisseur personnel</translation>
 <translation id="84613761564611563">Demande d'interface utilisateur en cours pour la configuration réseau. Merci de patienter…</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Aucun logiciel malveillant détecté</translation>
 <translation id="8512476990829870887">Arrêter le processus</translation>
 <translation id="851263357009351303">Toujours autoriser <ph name="HOST" /> à afficher les images</translation>
-<translation id="8513191386157529469">Le débogage de ce navigateur est actuellement effectué par "<ph name="CLIENT_NAME" />".</translation>
 <translation id="8521475323816527629">Accédez rapidement à vos applications</translation>
 <translation id="8523493869875972733">Conserver les modifications</translation>
 <translation id="8523849605371521713">Ajoutée en raison des règles</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Configurer les connexions réseau</translation>
 <translation id="8620790565535071193">Échec de l'analyse</translation>
 <translation id="8622877356447980900">Voulez-vous traduire cette page ?</translation>
-<translation id="8623004009673949077">L'application dont le fichier manifeste comporte un attribut "kiosk_only" doit être installée en mode Kiosque pour Chrome OS.</translation>
 <translation id="8624205858755890468">Active l'Assistant pour vous proposer des informations, des applications et des actions similaires.</translation>
 <translation id="862542460444371744">&amp;Extensions</translation>
 <translation id="8627151598708688654">Sélectionner la source</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Mettre à jour le micrologiciel pour plus de sécurité.</translation>
 <translation id="8823514049557262177">Copier le te&amp;xte du lien</translation>
 <translation id="8824701697284169214">Ajouter une pa&amp;ge...</translation>
-<translation id="8827850355924932817">Utiliser le réseau Wi-Fi pour déterminer la position</translation>
 <translation id="8828933418460119530">Nom DNS</translation>
 <translation id="8830796635868321089">Échec de la vérification de mise à jour avec les paramètres de proxy actuels. Veuillez modifier vos <ph name="PROXY_SETTINGS_LINK_START" />paramètres de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">La configuration réseau est contrôlée par <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">Afficher dan&amp;s un onglet</translation>
 <translation id="8884961208881553398">Ajouter de nouveaux services</translation>
 <translation id="8885197664446363138">Smart Lock indisponible</translation>
-<translation id="8885905466771744233">L'extension indiquée est déjà associée à une clé privée. Utilisez cette clé ou supprimez-la.</translation>
 <translation id="8888432776533519951">Couleur :</translation>
-<translation id="8892992092192084762">Thème "<ph name="THEME_NAME" />" installé.</translation>
 <translation id="8893928184421379330">Désolé, impossible de reconnaître le périphérique <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Liste des favoris</translation>
 <translation id="88986195241502842">Accéder à la page suivante</translation>
@@ -4992,13 +4927,12 @@
 <translation id="8899285681604219177">Désactivation des extensions non compatibles</translation>
 <translation id="8899551033019439140">Recherche de l'imprimante…</translation>
 <translation id="8899851313684471736">Ouvrir le lien dans une nouvelle &amp;fenêtre</translation>
-<translation id="8902667442496790482">Ouvrir les paramètres "Sélectionner pour prononcer"</translation>
+<translation id="8902667442496790482">Ouvrir les paramètres de "Sélectionner pour prononcer"</translation>
 <translation id="8903921497873541725">Zoom avant</translation>
 <translation id="8904976895050290827">Synchronisation Google Chrome</translation>
 <translation id="8908902564709148335">Avertissement : Vous avez activé l'indicateur --scripts-require-action sur cet ordinateur, ce qui limite les fonctionnalités de cette extension. Cependant, sur d'autres appareils, cet indicateur n'est pas compatible ou n'est pas activé. Sur ces appareils, cette extension peut également :</translation>
 <translation id="8910146161325739742">Partager votre écran</translation>
 <translation id="8910222113987937043">Les modifications apportées à vos favoris, à votre historique, à vos mots de passe et à d'autres paramètres ne seront plus synchronisées avec votre compte Google. Cependant, les données déjà stockées sur votre compte Google y seront conservées et pourront être gérées dans le <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google a signalé l'extension "<ph name="EXTENSION_NAME" />" comme malveillante et a bloqué son installation.</translation>
 <translation id="8912793549644936705">Étirer</translation>
 <translation id="8915370057835397490">Chargement des suggestions en cours…</translation>
 <translation id="8916476537757519021">Sous-cadre de navigation privée : <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Souris USB connectée.</translation>
 <translation id="9076523132036239772">Adresse e-mail ou mot de passe incorrect. Essayez tout d'abord de vous connecter à un réseau.</translation>
-<translation id="907841381057066561">Échec de création du fichier zip temporaire lors de la création du pack</translation>
 <translation id="9084064520949870008">Ouvrir dans une fenêtre</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> est bloqué conformément à une règle d'entreprise.</translation>
 <translation id="9088917181875854783">Confirmez que cette clé d'accès est affichée sur "<ph name="DEVICE_NAME" />" :</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Saisir la phrase secrète</translation>
 <translation id="939736085109172342">Nouveau dossier</translation>
-<translation id="941543339607623937">Clé privée non valide.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> partage un onglet Chrome et un contenu audio.</translation>
 <translation id="942954117721265519">Pas d'image dans ce répertoire.</translation>
 <translation id="945522503751344254">Envoyer le commentaire</translation>
-<translation id="951981865514037445"><ph name="URL" /> souhaite avoir accès à la position de votre appareil.</translation>
 <translation id="952992212772159698">Désactivé</translation>
 <translation id="9580706199804957">Impossible de se connecter aux services Google</translation>
 <translation id="958515377357646513">Appuyer pour avancer.</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index b7fe0ff..bf7b6e1f 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">ફક્ત ચિહ્નિત કરો</translation>
 <translation id="1039337018183941703">અમાન્ય અથવા દૂષિત ફાઇલ</translation>
 <translation id="1042174272890264476">તમારા કમ્પ્યુટરની સાથે <ph name="SHORT_PRODUCT_NAME" /> ની RLZ લાઇબ્રેરી બિલ્ટ ઇન પણ આવે છે. RLZ વિશેષ પ્રચારાત્મક ઝુંબેશ દ્વારા ચલાવવામાં આવતી શોધ અને <ph name="SHORT_PRODUCT_NAME" /> ઉપયોગને માપવા માટે બિન-અદ્વિતીય, બિન-વ્યક્તિગત રૂપે ઓળખી શકાય તેવા ટૅગ સોંપે છે. આ લેબલ્સ કેટલીકવાર <ph name="PRODUCT_NAME" /> માં Google શોધ ક્વેરીઝમાં દેખાય છે.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> તમારા ઉપકરણ પર કાયમી ધોરણે વિશાળ ડેટા સ્ટોર કરવા માંગે છે.</translation>
 <translation id="1046059554679513793">ઓહ, આ નામ પહેલેથી ઉપયોગમાં છે!</translation>
 <translation id="1047431265488717055">લિંક ટે&amp;ક્સ્ટને કૉપિ કરો</translation>
 <translation id="1047726139967079566">આ પૃષ્ઠને બુકમાર્ક કરો...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">ડિફૉલ્ટ શોધ એંજિન પુનઃસ્થાપિત કરીએ?</translation>
 <translation id="1177863135347784049">કસ્ટમ</translation>
 <translation id="1178581264944972037">થોભો</translation>
-<translation id="1179803038870941185"><ph name="URL" /> તમારા MIDI ઉપકરણોનું પૂર્ણ નિયંત્રણ મેળવવા માંગે છે.</translation>
 <translation id="1181037720776840403">દૂર કરો</translation>
 <translation id="1183237619868651138">સ્થાનિક કેશમાં <ph name="EXTERNAL_CRX_FILE" /> ને ઇન્સ્ટોલ કરી શકતાં નથી.</translation>
 <translation id="1185924365081634987">આ નેટવર્ક ભૂલને સુધારવા માટે તમે <ph name="GUEST_SIGNIN_LINK_START" />અતિથિ તરીકે બ્રાઉઝ કરો<ph name="GUEST_SIGNIN_LINK_END" /> ને પણ અજમાવી શકો છો.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{તમારા કમ્પ્યુટરમાં સંગ્રહિત એક ફાઇલ ઍક્સેસ કરો}one{તમારા કમ્પ્યુટરમાં સંગ્રહિત # ફાઇલો ઍક્સેસ કરો}other{તમારા કમ્પ્યુટરમાં સંગ્રહિત # ફાઇલો ઍક્સેસ કરો}}</translation>
 <translation id="1195076408729068893">Smart Lock શરૂ કરવા માટે, તમારો પાસવર્ડ દાખલ કરો. આગલી વખતે, તમે <ph name="DEVICE_TYPE" />ને અનલૉક કરવા માટે તમારો ફોન વાપરી શકશો.</translation>
 <translation id="1195447618553298278">અજ્ઞાત ભૂલ.</translation>
-<translation id="1196338895211115272">ખાનગી કી નિકાસ કરવામાં નિષ્ફળ.</translation>
 <translation id="119738088725604856">સ્ક્રીનશૉટ વિંડો</translation>
 <translation id="1197979282329025000">પ્રિંટર <ph name="PRINTER_NAME" /> માટે પ્રિંટર ક્ષમતાઓ પુનર્પ્રાપ્ત કરતી વખતે ભૂલ થઈ છે. આ પ્રિંટર <ph name="CLOUD_PRINT_NAME" /> સાથે નોંધાયેલું નથી.</translation>
 <translation id="1198271701881992799">ચાલો શરૂ કરીએ</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">તમારા એડમિનિસ્ટ્રેટર આ સેટિંગ માટે વિશિષ્ટ મૂલ્યની ભલામણ કરે છે.</translation>
 <translation id="1225177025209879837">વિનંતી પર પ્રક્રિયા થઈ રહી છે...</translation>
 <translation id="1225211345201532184">શેલ્ફ આઇટમ 5</translation>
-<translation id="1225404570112441414">આ સાઇટને ગમે ત્યારે ઉપયોગમાં લેવા માટે તેને તમારા શેલ્ફમાં ઉમેરો.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" થી કનેક્ટ કરવાનો પ્રયાસ કરતી વખતે પ્રમાણીકરણ નિષ્ફળ થયું.</translation>
 <translation id="1230807973377071856">સિસ્ટમનું મેનૂ</translation>
 <translation id="1232569758102978740">શીર્ષક વિનાનું</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">બુકમાર્ક્સ HTML ફાઇલ</translation>
 <translation id="1303671224831497365">કોઈ Bluetooth ઉપકરણો મળ્યાં નથી</translation>
 <translation id="1306606229401759371">સેટિંગ્સ બદલો</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> પર કોઈ પણ ઉપકરણ પરથી તમારા પાસવર્ડને ઍક્સેસ કરો</translation>
 <translation id="1307559529304613120">અરેરે!  સિસ્ટમ આ ઉપકરણ માટે એક લાંબા ગાળાનું API ઍક્સેસ ટોકન સ્ટોર કરવામાં નિષ્ફળ થઈ.</translation>
 <translation id="1313405956111467313">સ્વયંચાલિત પ્રોક્સી કન્ફિગરેશન</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">શોધો</translation>
 <translation id="1386387014181100145">હેલો.</translation>
 <translation id="138784436342154190">ડિફૉલ્ટ સ્ટાર્ટઅપ પૃષ્ઠને પુનઃસ્થાપિત કરીએ?</translation>
-<translation id="1389297115360905376">આ ફક્ત <ph name="CHROME_WEB_STORE" /> થી જ ઉમેરી શકાશે.</translation>
 <translation id="1390548061267426325">નિયમિત ટૅબ તરીકે ખોલો</translation>
-<translation id="1391807639023934267">પૃષ્ઠ વધુ ઝડપી લોડ થયું.</translation>
 <translation id="1393283411312835250">સૂર્ય અને વાદળો</translation>
 <translation id="1395262318152388157">સ્લાઇડર શોધો</translation>
 <translation id="1395730723686586365">અપડેટકર્તા પ્રારંભ કર્યું</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">તમે <ph name="PRODUCT_NAME" /> ના અસ્થાયી સંસ્કરણમાં અપડેટ કરી રહ્યાં છો જેમાં તે સુવિધાઓ શામેલ છે કે જેની પ્રક્રિયા ચાલુ છે. ક્રેશેસ અને અનપેક્ષિત બગ્સ આવશે. કૃપા કરીને સાવધાનીથી આગળ વધો.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (એક્સ્ટેન્શન ID "<ph name="EXTENSION_ID" />") ને આ પ્રકારના સત્રમાં મંજૂરી નથી.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">અરેરે! રેંડમ RSA ખાનગી કી જનરેટ કરવામાં નિષ્ફળ.</translation>
 <translation id="1420834118113404499">મીડિયા લાઇસન્સીસ</translation>
 <translation id="1420920093772172268">જોડી કરવાની મંજૂરી આપવા માટે <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">હા</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ઑડિઓ સરનામું કૉ&amp;પિ કરો</translation>
 <translation id="1465827627707997754">પીઝા સ્લાઇસ</translation>
 <translation id="1467432559032391204">ડાબું</translation>
-<translation id="1467999917853307373"><ph name="URL" /> તમારા ઉપકરણ પર કાયમી ધોરણે ડેટા સ્ટોર કરવા માંગે છે.</translation>
-<translation id="1470719357688513792">નવી કૂકી સેટિંગ્સ પૃષ્ઠ ફરીથી લોડ કર્યા પછી પ્રભાવમાં આવશે.</translation>
 <translation id="1470811252759861213">તમારા તમામ કમ્પ્યુટર્સ પર તમારા એક્સ્ટેન્શન્સ મેળવવા માટે, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" ને અપલોડ કરવામાં આવી ન હતી. તમારી Google ડ્રાઇવમાં પૂરતી ખાલી જગ્યા નથી.</translation>
 <translation id="1475502736924165259">તમારી પાસે ફાઇલ પર પ્રમાણપત્રો છે જે અન્ય કોઈપણ કૅટેગરીઝમાં ફિટ થતાં નથી</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">મોટું માઉસ કર્સર</translation>
 <translation id="1543284117603151572">Edge માંથી આયાત કરેલ</translation>
 <translation id="1545177026077493356">સ્વચલિત કિઓસ્ક મોડ</translation>
+<translation id="1545775234664667895">ઇન્સ્ટોલ કરેલી થીમ "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">ક્વેરીના બદલે %s વાળું URL</translation>
 <translation id="1546280085599573572">જ્યારે તમે હોમ બટન ક્લિક કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે આ એક્સટેન્શને બદલ્યું છે.</translation>
 <translation id="1547572086206517271">તાજું કરવું આવશ્યક</translation>
@@ -439,11 +430,9 @@
     નિરીક્ષણ કરેલ વપરાશકર્તાએ મુલાકાત લીધેલી વેબસાઇટ્સની <ph name="BEGIN_BOLD" />સમીક્ષા<ph name="END_BOLD" /> કરી શકો છો, અને
     અન્ય સેટિંગ્સનું <ph name="BEGIN_BOLD" />સંચાલન<ph name="END_BOLD" /> કરી શકો છો.</translation>
 <translation id="1648943974594387137">સાઇન-ઇન વિગતો જૂની થઈ ગઈ છે</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> પંક્તિઓ બતાવેલ નથી&gt;</translation>
 <translation id="1650371550981945235">ઇનપુટ વિકલ્પો બતાવો</translation>
 <translation id="1650709179466243265">www. અને .com ઉમેરો અને સરનામું ખોલો</translation>
 <translation id="1651008383952180276">તમારે તે જ પાસફ્રેઝ બે વાર દાખલ કરવો આવશ્યક છે</translation>
-<translation id="1652972346408808053">પાસવર્ડ સાચવ્યો. <ph name="SAVED_PASSWORDS_LINK" /> પર કોઈ પણ ઉપકરણ પરથી તમારા પાસવર્ડને ઍક્સેસ કરો</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google મેઘ મુદ્રણમાં પ્રિન્ટર ઉમેરો જેથી તમે ગમે-ત્યાંથી છાપી શકો.}one{Google મેઘ મુદ્રણમાં # પ્રિન્ટર્સ ઉમેરો જેથી તમે ગમે-ત્યાંથી છાપી શકો.}other{Google મેઘ મુદ્રણમાં # પ્રિન્ટર્સ ઉમેરો જેથી તમે ગમે-ત્યાંથી છાપી શકો.}}</translation>
 <translation id="1657406563541664238">ઉપયોગનાં આંકડાઓ અને ક્રેશ રિપોર્ટ્સ આપમેળે Google ને મોકલીને <ph name="PRODUCT_NAME" /> ને વધુ સારુ બનાવવામાં સહાય કરો</translation>
 <translation id="1658424621194652532">આ પૃષ્ઠ તમારા માઇક્રોફોનને ઍક્સેસ કરી રહ્યું છે.</translation>
@@ -670,7 +659,6 @@
 <translation id="2045969484888636535">કૂકીઝ અવરોધિત કરવાનું ચાલુ રાખો</translation>
 <translation id="204622017488417136">તમારું ઉપકરણ Chrome ના અગાઉ ઇન્ટોલ કરેલાં સંસ્કરણ પર પરત ફરશે. તમામ વપરાશકર્તા એકાઉન્ટ્સ અને સ્થાનિક ડેટા દૂર કરવામાં આવશે. આ પૂર્વવત્‌ કરી શકાતું નથી.</translation>
 <translation id="2048182445208425546">તમારા નેટવર્ક ટ્રાફિકની ઍક્સેસ</translation>
-<translation id="2049137146490122801">તમારા મશીન પરની સ્થાનિક ફાઇલોની ઍક્સેસ તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરાઈ છે. </translation>
 <translation id="204914487372604757">શૉર્ટકટ બનાવો </translation>
 <translation id="2050339315714019657">પોર્ટ્રેટ</translation>
 <translation id="2053312383184521053">નિષ્ક્રિય સ્થિતિ ડેટા</translation>
@@ -704,7 +692,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">હજી લોડ કર્યું નથી</translation>
 <translation id="2107494551712864447">કોઈ ફિંગરપ્રિન્ટ ઉમેરો</translation>
-<translation id="2111843886872897694">ઍપ્લિકેશનો જે હોસ્ટને અસર કરે છે તેમાંથી પ્રદાન કરવી આવશ્યક છે.</translation>
 <translation id="2112877397266219826">મને સેટ કરવા માટે તમારા ટચ નિયંત્રકોને ચાલુ કરો</translation>
 <translation id="21133533946938348">ટૅબ પિન કરો</translation>
 <translation id="2113479184312716848">Open &amp;File...</translation>
@@ -791,7 +778,6 @@
 <translation id="2226720438730111184">શું થઈ રહ્યું છે તે અમને કહો</translation>
 <translation id="2229161054156947610">1 કલાક કરતા વધુ બાકી</translation>
 <translation id="222931766245975952">ફાઇલ કપાયેલ છે</translation>
-<translation id="222949136907494149"><ph name="URL" /> તમારા કમ્પ્યુટરનાં સ્થાનનો ઉપયોગ કરવા માંગે છે.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">ફોલ્ડર "<ph name="FOLDER_NAME" />" બનાવવામાં અક્ષમ. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">આજનું ડૂડલ જોવા માટે ક્લિક કરો</translation>
@@ -879,7 +865,6 @@
 <translation id="236141728043665931">માઇક્રોફોનની ઍક્સેસને હંમેશા અવરોધિત કરો</translation>
 <translation id="2367972762794486313">ઍપ્લિકેશનો બતાવો</translation>
 <translation id="2371076942591664043">&amp;પૂર્ણ થાય ત્યારે ખોલો</translation>
-<translation id="237336063998926520">સ્થાન નક્કી કરવા માટે તમારા IP ઍડ્રેસનો ઉપયોગ કરો</translation>
 <translation id="2377319039870049694">સૂચિ દૃશ્ય પર સ્વિચ કરો</translation>
 <translation id="2377667304966270281">Hard Faults</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ફાઇલો પસંદ કરી</translation>
@@ -926,7 +911,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> માંથી ફાઈલ્સ કોપી કરવા માંગે છે.</translation>
 <translation id="2462724976360937186">પ્રમાણન અધિકારી કી ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ઉમેર્યું</translation>
-<translation id="246335896104539386">બુકમાર્ક આયાત કરો</translation>
 <translation id="2464089476039395325">HTTP પ્રોક્સી</translation>
 <translation id="2468902267404883140">તમારા ફોન સાથે કનેક્ટ કરી શકાતું નથી. ખાતરી કરો કે તમે સુસંગત Android ફોનનો ઉપયોગ કરી રહ્યા છો જે ચાલુ છે અને હાથવગો છે. &lt;a&gt;વધુ જાણો&lt;/a&gt;</translation>
 <translation id="2470702053775288986">અસમર્થિત એક્સ્ટેન્શન્સ અક્ષમ કર્યાં</translation>
@@ -942,7 +926,6 @@
 <translation id="2485422356828889247">અનઇન્સ્ટોલ કરો</translation>
 <translation id="2487067538648443797">નવું બુકમાર્ક ઉમેરો</translation>
 <translation id="248861575772995840">તમારો ફોન શોધી શકાતો નથી. ખાતરી કરો કે તમારા <ph name="DEVICE_TYPE" />નું Bluetooth ચાલુ કરેલું છે. &lt;a&gt;વધુ જાણો&lt;/a&gt;</translation>
-<translation id="2489316678672211764">પ્લગિન (<ph name="PLUGIN_NAME" />) પ્રતિસાદ આપી રહ્યું નથી.</translation>
 <translation id="2489428929217601177">વીતેલો દિવસ</translation>
 <translation id="2489918096470125693">&amp;ફોલ્ડર ઉમેરો...</translation>
 <translation id="249113932447298600">માફ કરશો, આ સમયે ઉપકરણ <ph name="DEVICE_LABEL" /> ને સપોર્ટ નથી.</translation>
@@ -996,13 +979,11 @@
 <translation id="2563856802393254086">અભિનંદન! તમારી '<ph name="NAME" />' ડેટા સેવાને સક્રિય કરવામાં આવી છે અને આગળ વધવા માટે તૈયાર છે.</translation>
 <translation id="2566124945717127842">તમારા <ph name="IDS_SHORT_PRODUCT_NAME" /> ઉપકરણને નવાની જેમ ફરીથી સેટ કરવા માટે પાવરવૉશ કરો.</translation>
 <translation id="2568774940984945469">માહિતી બાર સંગ્રહક</translation>
-<translation id="2570000010887652771">બચાવેલ ડેટા.</translation>
 <translation id="257088987046510401">થીમ્સ</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> ને માત્ર વાંચવાની ઍક્સેસ મંજૂર કરવામાં આવી છે.</translation>
 <translation id="2573269395582837871">એક ચિત્ર અને નામ પસંદ કરો</translation>
 <translation id="2575247648642144396">જ્યારે એક્સ્ટેંશન વર્તમાન પૃષ્ઠ પર કાર્ય કરી શકે ત્યારે આ આયકન દૃશ્યક્ષમ હશે. આયકન પર ક્લિક કરીને અથવા <ph name="EXTENSION_SHORTCUT" /> દબાવીને આ એક્સ્ટેંશનનો ઉપયોગ કરો.</translation>
 <translation id="2575268751393592580">તમારો ફોન શોધી શકાતો નથી. ખાતરી કરો કે તમારું <ph name="DEVICE_TYPE" /> Wi-Fi અથવા મોબાઇલ નેટવર્ક સાથે કનેક્ટ કરેલું છે. &lt;a&gt;વધુ જાણો&lt;/a&gt;</translation>
-<translation id="2576842806987913196">આ નામવાળી એક CRX ફાઇલ પહેલાથી જ અસ્તિત્વમાં છે.</translation>
 <translation id="257779572837908839">મીટિંગ માટે Chromebox તરીકે સેટ કરો</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />વૉલ્યૂમ અનમાઉન્ટ કરી શકતાં નથી<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">જો તમે સર્ટિફિકેશન ઑથોરિટી (CA) ને કાઢો છો, તો તમારું બ્રાઉઝર તે CA દ્વારા રજૂ કરાયેલા કોઈપણ પ્રમાણપત્રો પર વિશ્વાસ કરશે નહીં.</translation>
 <translation id="2653659639078652383">સબમિટ કરો</translation>
 <translation id="265390580714150011">ફીલ્ડ મૂલ્ય</translation>
-<translation id="2654286334048437383">બુકમાર્ક નિકાસ કરો</translation>
 <translation id="2655386581175833247">વપરાશકર્તા પ્રમાણપત્ર:</translation>
 <translation id="2660779039299703961">ઇવેન્ટ</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">ડાયરેક્ટરી દ્વારા મીડિયા ગૅલેરી ઉમેરો</translation>
 <translation id="2908789530129661844">સ્ક્રીન ઝૂમ ઘટાડો</translation>
 <translation id="2910318910161511225">નેટવર્કથી કનેક્ટ કરો અને ફરીથી પ્રયાસ કરો</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> તમારા માઇક્રોફોનનો ઉપયોગ કરવા માગે છે.</translation>
 <translation id="2913331724188855103">સાઇટ્સને કૂકી ડેટા સાચવવા અને વાંચવાની મંજૂરી આપો (ભલામણ કરેલ)</translation>
 <translation id="2916073183900451334">વેબપેજ પર ટૅબને દબાવવાથી લિંક્સની સાથે સાથે ફોર્મ ફીલ્ડ્સ હાઇલાઇટ્સ થાય છે</translation>
 <translation id="2916745397441987255">એક્સ્ટેન્શન્સ શોધો</translation>
@@ -1356,7 +1335,7 @@
 <translation id="3051523411789012618">Window અપ</translation>
 <translation id="3053013834507634016">પ્રમાણપત્ર કી ઉપયોગ</translation>
 <translation id="3057861065630527966">તમારા ફોટો અને વિડિઓઝનો બેકઅપ લો</translation>
-<translation id="3060379269883947824">બોલવા માટે પસંદ કરોને ચાલુ કરો</translation>
+<translation id="3060379269883947824">સાંભળવા માટે પસંદ કરોને ચાલુ કરો</translation>
 <translation id="3061707000357573562">પૅચ સેવા</translation>
 <translation id="3064410671692449875">અપૂરતો ડેટા</translation>
 <translation id="3065041951436100775">ટેબ ફરજિયાત બંધ કરવાનો પ્રતિસાદ.</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">સાંભળી રહ્યાં છીએ...</translation>
 <translation id="3141917231319778873">આપેલ વિનંતી આના પર સમર્થિત નથી: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">થઈ ગયું</translation>
-<translation id="3144135466825225871">crx ફાઇલ બદલવામાં નિષ્ફળ થયું. ફાઇલ ઉપયોગમાં છે કે નહીં તે જોવા માટે તપાસો.</translation>
 <translation id="3144647712221361880">આ રીતે લિંક ખોલો</translation>
 <translation id="3149510190863420837">Chrome ઍપ્લિકેશનો</translation>
 <translation id="3150927491400159470">સખત રીતે ફરીથી લોડ કરો</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">હંમેશાં બધી સાઇટ્સ પર ચલાવો</translation>
 <translation id="3312424061798279731">સક્ષમ કરેલ ભાષાઓ</translation>
 <translation id="3312903956926554846">ડેસ્કટૉપ પર ઇન્સ્ટૉલ કરો</translation>
-<translation id="3313473140726597081">તમારું સ્ટાર્ટઅપ પૃષ્ઠ <ph name="URL" /> પર બદલ્યું હતું. તમારા સ્ટાર્ટઅપ પૃષ્ઠને બદલનારા એક્સ્ટેન્શનને અક્ષમ કરવા માટે, પુનઃસ્થાપિત કરો ક્લિક કરો.</translation>
 <translation id="3313590242757056087">નિરીક્ષણ કરેલ વપરાશકર્તા કઈ વેબસાઇટ્સ જોઈ શકે છે તે સેટ કરવા માટે, તમે પ્રતિબંધો અને
     સેટિંગ્સને <ph name="MANAGEMENT_URL" /> ની મુલાકાત લઈને ગોઠવી શકો છો.
     જો તમે ડિફોલ્ટ સેટિંગ્સ બદલતા નથી, તો <ph name="USER_DISPLAY_NAME" />
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">ઍપ્લિકેશન માહિતી</translation>
 <translation id="3335947283844343239">બંધ કરેલું ટૅબ ફરીથી ખોલો</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> અવરોધિત કર્યું હતું કારણ કે તે જૂનું છે.</translation>
 <translation id="3340978935015468852">સેટિંગ્સ</translation>
 <translation id="3341703758641437857">URL ફાઇલ કરવા ઍક્સેસની મંજૂરી આપો</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" આ એક્સ્ટેંશનને કાઢી નાખવા માગે છે.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">બુકમાર્ક ઉમેરાયો</translation>
 <translation id="3389312115541230716">ટાસ્કબારમાં <ph name="SMALL_PRODUCT_LOGO" /> આઇકનને રાઇટ ક્લિક કરો</translation>
 <translation id="3391716558283801616">ટૅબ 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> તમારા કૅમેરા અને માઇક્રોફોનનો ઉપયોગ કરવાનું ઇચ્છે છે.</translation>
 <translation id="3396331542604645348">પસંદ કરેલું પ્રિંટર ઉપલબ્ધ નથી અથવા ઠીકથી ઇન્સ્ટોલ કરેલું નથી. તમારા પ્રિંટરને તપાસો અથવા બીજા પ્રિંટરને પસંદ કરી જુઓ.</translation>
 <translation id="3399432415385675819">સૂચનાઓ અક્ષમ કરવામાં આવશે</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">Chrome આપમેળે અપડેટ થાય છે જેથી કરીને તમારી પાસે હંમેશા સૌથી તાજું સંસ્કરણ રહે છે.</translation>
 <translation id="3551320343578183772">ટૅબ બંધ કરો</translation>
 <translation id="3552780134252864554">બહાર નીકળવા પર સાફ કર્યું</translation>
-<translation id="355298399003313926"><ph name="URL" /> ઍક્સેસિબિલિટી ઇવેન્ટનો જવાબ આપવા માગે છે.</translation>
 <translation id="3555812735919707620">એક્સ્ટેન્શન દૂર કરો</translation>
 <translation id="3556000484321257665">તમારું શોધ એંજિન, <ph name="URL" /> પર બદલ્યું હતું.</translation>
-<translation id="3561217442734750519">ખાનગી કી માટેનું ઇનપુટ મૂલ્ય એ એક માન્ય પાથ હોવો આવશ્યક છે.</translation>
 <translation id="3563432852173030730">કિઓસ્ક ઍપ્લિકેશન ડાઉનલોડ કરી શકાઈ નથી.</translation>
 <translation id="3564334271939054422">તમે ઉપયોગમાં લઈ રહ્યાં છો તે Wi-Fi નેટવર્ક <ph name="NETWORK_ID" /> માટે, તમારે તેના લોગિન પૃષ્ઠની મુલાકાત લેવાની જરૂર હોઈ શકે છે.</translation>
 <translation id="3564708465992574908">ઝૂમ સ્તરો</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">પ્રમાણપત્રના નામની મર્યાદાઓ</translation>
 <translation id="3596235046596950091">મેઘ સેવાઓ સક્ષમ કરો</translation>
 <translation id="3599863153486145794">બધા સાઇન ઇન કરેલ ઉપકરણોમાંથી ઇતિહાસ સાફ કરે છે. તમારા Google એકાઉન્ટમાં <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> પર બ્રાઉઝિંગ ઇતિહાસના અન્ય સ્વરૂપો હોઈ શકે છે.</translation>
-<translation id="3600456501114769456">તમારા ઉપકરણ પર સ્થાનિક ફાઇલોની ઍક્સેસ તમારા વ્યવસ્થાપક દ્વારા અક્ષમ કરેલી છે.</translation>
 <translation id="3600792891314830896">જે સાઇટ અવાજ ચલાવતી હોય તેઓનો અવાજ બંધ કરો</translation>
 <translation id="3603177256297531067">આ પેજનો અનુવાદ કરી શકાયો નથી</translation>
 <translation id="3603533104205588786">એક પેજને બુકમાર્ક કરવા માટે તમે તારા પર ક્લિક કરી શકો છો</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">સ્ક્રીનશોટ્સ અક્ષમ કર્યા</translation>
 <translation id="3625870480639975468">ઝૂમ ફરીથી સેટ કરો </translation>
 <translation id="3626281679859535460">તેજ</translation>
-<translation id="3627052133907344175">એક્સટેન્શનને ન્યૂનતમ સંસકરણ "<ph name="IMPORT_VERSION" />" સાથે "<ph name="IMPORT_NAME" />" ની જરૂર છે, પરંતુ ફક્ત સંસ્કરણ "<ph name="INSTALLED_VERSION" />" જ ઇન્સ્ટોલ કરેલું છે.</translation>
 <translation id="3627320433825461852">1 થી ઓછી મિનિટ બાકી</translation>
 <translation id="3627588569887975815">છુ&amp;પી વિંડોમાં લિંક ખોલો</translation>
 <translation id="3627671146180677314">નેટસ્કેપ પ્રમાણપત્ર નવીકરણ સમય</translation>
@@ -1764,7 +1735,6 @@
 <translation id="3668570675727296296">ભાષા સેટિંગ્સ</translation>
 <translation id="3668823961463113931">હેન્ડલર્સ</translation>
 <translation id="3670229581627177274">Bluetooth ચાલુ કરો</translation>
-<translation id="3672159315667503033"><ph name="URL" /> તમારા કમ્પ્યુટર પર કાયમી ધોરણે વિશાળ ડેટા સ્ટોર કરવા માંગે છે.</translation>
 <translation id="3672681487849735243">એક ફેક્ટરી ભૂલ શોધવામાં આવી છે</translation>
 <translation id="367645871420407123">જો તમે રૂટ પાસવર્ડને ડિફૉલ્ટ પરીક્ષણ છબી મૂલ્ય પર સેટ કરવા માંગતા હો તો ખાલી છોડો</translation>
 <translation id="3678156199662914018">એક્સ્ટેંશન: <ph name="EXTENSION_NAME" /></translation>
@@ -1842,11 +1812,9 @@
 <translation id="3786301125658655746">તમે ઑફલાઇન છો</translation>
 <translation id="3788401245189148511">તે આ કરી શકે છે:</translation>
 <translation id="3789841737615482174">ઇન્સ્ટોલ કરો</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> ફક્ત ડેસ્કટૉપ પર જ કાર્ય કરે છે.</translation>
 <translation id="379082410132524484">તમારા કાર્ડની સમયસીમા સમાપ્ત થઈ ગઈ છે</translation>
 <translation id="3792890930871100565">પ્રિંટર્સ ડિસ્કનેક્ટ કરો</translation>
 <translation id="379422718204375917">તમારા એકાઉન્ટમાં સાઇન ઇન કરવા માટે Smart Lockનો ઉપયોગ કરો</translation>
-<translation id="3794595850995182458">પેજમાંથી બહાર નીકળો</translation>
 <translation id="3796648294839530037">મનપસંદ નેટવર્ક્સ:</translation>
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” માટે <ph name="SEARCH_ENGINE" /> માં &amp;શોધ કરો</translation>
 <translation id="3798325802885154040">તમને ક્લિક કરવા હલકું દબાવવું સક્ષમ/અક્ષમ કરવાની મંજૂરી આપે છે</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> સક્ષમ કરો</translation>
 <translation id="3981760180856053153">અમાન્ય સાચવો પ્રકાર દાખલ થયો છે.</translation>
 <translation id="3983586614702900908">અજાણ્યા વિક્રેતા પાસેથી ઉપકરણો</translation>
-<translation id="3984413272403535372">એક્સટેંશન હસ્તાક્ષરિત કરતી વખતે ભૂલ.</translation>
 <translation id="3987938432087324095">માફ કરશો, તે સમજાયું ન હતું.</translation>
 <translation id="3988996860813292272">સમયઝોન પસંદ કરો</translation>
 <translation id="3989635538409502728">સાઇન આઉટ કરો</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">Google Play પરથી તમારી Chromebookમાં ઍપ્લિકેશનો અને રમતો ઇન્સ્ટૉલ કરો. &lt;a target="_blank" href="<ph name="URL" />"&gt;વધુ જાણો&lt;/a&gt;</translation>
 <translation id="4088095054444612037">જૂથ માટે સ્વીકારો</translation>
 <translation id="4090103403438682346">ચકાસાયેલ ઍક્સેસ સક્ષમ કરો</translation>
-<translation id="4090404313667273475">આ પૃષ્ઠ પર કેટલાક ઘટકોને પ્રદર્શિત કરવા માટે <ph name="PLUGIN_NAME" /> ની આવશ્યકતા છે.</translation>
 <translation id="4090535558450035482">(આ એક્સટેન્શન સંચાલિત છે અને દૂર કરી શકાતું નથી.)</translation>
 <translation id="4091434297613116013">કાગળનાં પત્રકો</translation>
 <translation id="4093955363990068916">સ્થાનિક ફાઇલ:</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> હવે તમારા પાસવર્ડ્સ સમન્વિત કરી શકે છે.</translation>
 <translation id="4715553623069266137">ખૂબ ટૂંકો વિલંબ (0.8 સે)</translation>
 <translation id="4716483597559580346">વધારાની સુરક્ષા માટે પાવરવૉશ</translation>
-<translation id="471800408830181311">ખાનગી કી બનાવવામાં નિષ્ફળ.</translation>
 <translation id="4720113199587244118">ઉપકરણો ઉમેરો</translation>
 <translation id="4720185134442950733">મોબાઇલ ડેટા નેટવર્ક</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> તમારી સ્ક્રીનને શેર કરી રહી છે.</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">સશક્ત</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> એ એક્સ્ટેન્શન "<ph name="EXTENSION_NAME" />" સાથે વાર્તાલાપ કરવા માંગે છે</translation>
 <translation id="4918086044614829423">સ્વીકારો</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> તમારા કૅમેરાનો ઉપયોગ કરવા માંગે છે.</translation>
 <translation id="4920887663447894854">નીચેની સાઇટ્સને આ પૃષ્ઠ પર તમારા સ્થાનને ટ્રેક કરવાથી અવરોધિત કરી છે:</translation>
 <translation id="492299503953721473">Android ઍપ્લિકેશનો દૂર કરો</translation>
 <translation id="4923279099980110923">હા, હું સહાય કરવા માંગુ છું</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">આ એક્સટેન્શનમાં માલવેર છે.</translation>
 <translation id="498294082491145744">તમારી તે સેટિંગ્સને બદલો કે જે કૂકીઝ, JavaScript, પ્લગિન્સ, ભૌગોલિક સ્થાન, માઇક્રોફોન, કૅમેરા, વગેરે જેવી સુવિધાઓની વેબસાઇટ્સની ઍક્સેસને નિયંત્રિત કરે છે</translation>
 <translation id="4988526792673242964">પૃષ્ઠો</translation>
-<translation id="4988792151665380515">ખાનગી કી નિકાસ કરવામાં નિષ્ફળ.</translation>
 <translation id="49896407730300355">ઘ&amp;ડિયાળની વિપરિત દિશામાં ફેરવો</translation>
 <translation id="4989966318180235467">&amp;પૃષ્ઠભૂમિ પૃષ્ઠની તપાસ કરો</translation>
 <translation id="4990343175649730969">Chrome સફાઈ સાધન ડાઉનલોડ કરો</translation>
@@ -2574,7 +2537,6 @@
 <translation id="5026874946691314267">આ ફરી બતાવશો નહીં</translation>
 <translation id="5027550639139316293">ઇમેઇલ પ્રમાણપત્ર</translation>
 <translation id="5027562294707732951">એક્સ્ટેન્શન ઉમેરો</translation>
-<translation id="5028012205542821824">ઇન્સ્ટોલેશન સક્ષમ કરેલ નથી.</translation>
 <translation id="5029568752722684782">કૉપિ સાફ કરો</translation>
 <translation id="5030338702439866405">આના દ્વારા રજૂ કરાયું</translation>
 <translation id="5036662165765606524">કોઈપણ સાઇટને આપમેળે બહુવિધ ફાઇલો ડાઉનલોડ કરવાની મંજૂરી આપશો નહીં</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">કોઈ ભૂલ આવી છે.</translation>
 <translation id="5094721898978802975">સહયોગ કરતી મૂળ ઍપ્લિકેશન સાથે સંચાર કરો</translation>
 <translation id="5097002363526479830">નેટવર્ક '<ph name="NAME" />' થી કનેક્ટ કરવામાં નિષ્ફળ: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">પૅક કરવા માટે ડાયરેક્ટરીનો સંપૂર્ણ પાથ શોધી શકાતો નથી.</translation>
 <translation id="5099354524039520280">ઉપર</translation>
 <translation id="5100114659116077956">તમારી સમક્ષ નવી સુવિધાઓ લાવવા માટે, તમારી Chromebox ને અપડેટ કરવાની જરૂર છે.</translation>
 <translation id="5101042277149003567">બધા બુકમાર્ક ખોલો</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">ફોલ્ડરમાં બતાવો</translation>
 <translation id="5171045022955879922">URL શોધો અથવા લખો</translation>
 <translation id="5171343362375269016">સ્વૅપ કરેલ મેમરી</translation>
-<translation id="5175870427301879686"><ph name="URL" /> તમારા કમ્પ્યુટર પર કાયમી ધોરણે ડેટા સ્ટોર કરવા માંગે છે.</translation>
 <translation id="5177479852722101802">કૅમેરા અને માઇક્રોફોન ઍક્સેસને અવરોધિત કરવાનું ચાલુ રાખો</translation>
 <translation id="5177526793333269655">થંબનેલ દૃશ્ય</translation>
 <translation id="5177549709747445269">તમે મોબાઇલ ડેટાનો ઉપયોગ કરી રહ્યાં છો</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">આ ઉપકરણને ફોર્મેટ કરો</translation>
 <translation id="5293170712604732402">સેટિંગ્સને તેમના મૂળ ડિફૉલ્ટ પર પુનઃસ્થાપિત કરો</translation>
 <translation id="5298219193514155779">થીમ રચનાકાર</translation>
-<translation id="5298363578196989456">એક્સટેન્શન "<ph name="IMPORT_NAME" />" આયાત કરવામાં અસમર્થ કારણ કે તે કોઈ શેર કરેલ મોડ્યૂલ નથી.</translation>
 <translation id="5299109548848736476">ટ્રૅક કરશો નહીં</translation>
 <translation id="5299682071747318445">તમારા સમન્વયન પાસફ્રેઝ સાથે તમામ ડેટા એન્ક્રિપ્ટ કરાયો છે</translation>
 <translation id="5300589172476337783">બતાવો</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />", આની સાથે જોડી કરવા માગે છે</translation>
 <translation id="5332624210073556029">ટાઇમ ઝોન:</translation>
 <translation id="5334142896108694079">સ્ક્રિપ્ટ કેશ</translation>
-<translation id="533433379391851622">અપેક્ષિત સંસકરણ "<ph name="EXPECTED_VERSION" />" છે, પરંતુ સંસ્કરણ "<ph name="NEW_ID" />" હતું.</translation>
 <translation id="5334844597069022743">સ્રોત જુઓ</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google ડ્રાઇવ<ph name="END_LINK" />માં <ph name="FILE_COUNT" />નો બૅકઅપ લઈ રહ્યાં છીએ</translation>
 <translation id="5337771866151525739">તૃતીય-પક્ષ દ્વારા ઇન્સ્ટોલ કરેલું.</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">સાઇટને અવાજ ચલાવવાની મંજૂરી આપો</translation>
 <translation id="5390284375844109566">અનુક્રમિત ડેટાબેસ</translation>
 <translation id="5390743329570580756">આ માટે મોકલો</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> પરનું <ph name="PEPPER_PLUGIN_NAME" /> તમારા કમ્પ્યુટરને ઍક્સેસ કરવા માગે છે.</translation>
 <translation id="5397794290049113714">તમે</translation>
 <translation id="5398572795982417028">વધુ પડતો મોટો પૃષ્ઠ સંદર્ભ, મર્યાદા <ph name="MAXIMUM_PAGE" /> છે</translation>
 <translation id="5398772614898833570">જાહેરાતો અવરોધિત કરી</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">તમામ ટૅબ્સ પુનર્સ્થાપિત કરો</translation>
 <translation id="5486261815000869482">પાસવર્ડની પુષ્ટિ કરો</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> તમારી સ્ક્રીનને <ph name="TAB_NAME" /> સાથે શેર કરી રહ્યું છે.</translation>
-<translation id="5486326529110362464">ખાનગી કી માટે ઇનપુટ મૂલ્ય અસ્તિત્વમાં હોવું જોઈએ.</translation>
 <translation id="5486561344817861625">બ્રાઉઝર પુનઃપ્રારંભનું અનુકરણ કરો</translation>
 <translation id="5487521232677179737">ડેટા સાફ કરો</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' કૉપિ કરી</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951">અપડેટ ડાઉનલોડ કરવામાં <ph name="UPDATE_SIZE_MB" /> MB મોબાઇલ ડેટા વપરાશે. શું તમે ચાલુ રાખવા માગો છો?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">અન્ય શોધ એંજીન્સ</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> પર <ph name="PEPPER_PLUGIN_NAME" /> તમારા ઉપકરણને ઍક્સેસ કરવા માગે છે.</translation>
 <translation id="5608580678041221894">કાપવા માટેના ક્ષેત્રને સમાયોજિત કરવા અથવા ખસેડવા માટે નીચેની કીને ટૅપ કરો</translation>
 <translation id="5609231933459083978">ઍપ્લિકેશન અમાન્ય હોય તેવું લાગે છે.</translation>
 <translation id="5610038042047936818">કૅમેરા મોડ પર સ્વિચ કરો</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">અનુવાદિત</translation>
 <translation id="5991049340509704927">મૅગ્નિફાઇ</translation>
 <translation id="5993332328670040093">ડેટા વપરાશનું હવેથી માપન કરવામાં આવશે નહિ.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> પોતાને અપડેટ રાખી શકશે નહીં.</translation>
 <translation id="600424552813877586">અમાન્ય ઍપ્લિકેશન.</translation>
 <translation id="6005695835120147974">મીડિયા રાઉટર</translation>
 <translation id="6006484371116297560">ક્લાસિક</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">મેઘ બેકઅપ</translation>
 <translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="6040852767465482106">અજાણ ઓળખાણ</translation>
+<translation id="6041155700700864984">પૂર્ણસ્ક્રીનમાંથી બહાર નીકળો</translation>
 <translation id="604124094241169006">સ્વચલિત</translation>
 <translation id="6042169520002885235">પ્રિન્ટર ઉત્પાદક અને મૉડલ પસંદ કરો</translation>
 <translation id="6042308850641462728">વધુ</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">સામાન્ય રીતે ફરીથી લોડ કરો</translation>
 <translation id="6059652578941944813">પ્રમાણપત્ર હાયરાર્કી</translation>
 <translation id="6059925163896151826">USB ઉપકરણો</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ક્રૅશ થયું છે.</translation>
 <translation id="6064217302520318294">સ્ક્રીન લૉક</translation>
 <translation id="6065289257230303064">પ્રમાણપત્ર વિષય નિર્દેશિકાના લક્ષણો </translation>
 <translation id="6068338049763724728">રીમોટ પ્રવેશ નોંધણીને સક્ષમ કરો</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">તમને તમારું સ્ક્રીન રિઝોલ્યૂશન સમાયોજિત કરવાની મંજૂરી આપે છે</translation>
 <translation id="6238923052227198598">લૉક સ્ક્રીન પર એક એકદમ નવી નોંધ રાખો</translation>
 <translation id="6239558157302047471">&amp;ફ્રેમ ફરીથી લોડ કરો</translation>
-<translation id="624022915548992686">પેજમાંથી બહાર નીકળો</translation>
 <translation id="6241530762627360640">તમારા સિસ્ટમ સાથે જોડી બનાવેલા Bluetooth ઉપકરણો વિશેની માહિતી ઍક્સેસ કરો અને નજીકના Bluetooth ઉપકરણોની શોધ કરો.</translation>
 <translation id="6243774244933267674">સર્વર અનુપલબ્ધ</translation>
 <translation id="6246413617632217567">નિરીક્ષિત વપરાશકર્તા આયાત કરી શક્યાં નથી. કૃપા કરીને તમારું હાર્ડ ડ્રાઇવ સ્થાન અને પરવાનગીઓ તપાસો અને ફરીથી પ્રયાસ કરો.</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">અજ્ઞાત નેટવર્ક ભૂલ</translation>
 <translation id="6313641880021325787">VRથી બહાર નીકળો</translation>
 <translation id="6314819609899340042">આ <ph name="IDS_SHORT_PRODUCT_NAME" /> ઉપકરણ પર તમે સફળતાપૂર્વક ડિબગિંગ સુવિધાઓ સક્ષમ કરેલી છે.</translation>
-<translation id="6315343732431721770"><ph name="URL" /> ને શામેલ કરવા માટે તમારા સ્ટાર્ટઅપ પૃષ્ઠો બદલવામાં આવ્યાં હતાં. તમારા સ્ટાર્ટઅપ પૃષ્ઠને બદલનારા એક્સ્ટેન્શનને અક્ષમ કરવા માટે, પુનઃસ્થાપિત કરો ક્લિક કરો.</translation>
 <translation id="6315493146179903667">બધાને આગળ લાવો</translation>
 <translation id="6316806695097060329">તમને વેબનો શ્રેષ્ઠ અનુભવ આપવા માટે આ <ph name="SHORT_PRODUCT_NAME" /> ઉપકરણને રચવામાં આવ્યું હતું.</translation>
 <translation id="6317318380444133405">હવે સમર્થિત રહ્યું નથી.</translation>
 <translation id="6317369057005134371">ઍપ્લિકેશન વિન્ડો માટે રાહ જોઇ રહ્યાં છે...</translation>
 <translation id="6318407754858604988">ડાઉનલોડ શરૂ થયું</translation>
-<translation id="6322279351188361895">ખાનગી કી વાંચવામાં નિષ્ફળ છે.</translation>
 <translation id="6325191661371220117">સ્વતઃ લોન્ચ અક્ષમ કરો</translation>
 <translation id="6326175484149238433">Chrome માંથી દૂર કરો</translation>
 <translation id="6326855256003666642">સક્રિય રાખવા માટેની સંખ્યા</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">શું સમન્વયન કરવાનું છે તે પસંદ કરો</translation>
 <translation id="6333064448949140209">ડીબગિંગ માટે ફાઇલ Google ને મોકલવામાં આવશે</translation>
 <translation id="6333834492048057036">શોધ માટે સરનામાં બાર પર ફોકસ કરો</translation>
-<translation id="6336907568130557310">તમારો પાસવર્ડ જે નિકાસ કરેલી ફાઇલને જોઈ શકે છે તે કોઈ પણ વ્યક્તિને દૃશ્યક્ષમ હશે. ફાઇલને કોઈની પણ સાથે શેર ન કરશો અને તેને આયાત કર્યા પછી ડિલીટ કરશો.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> માટે એક નવી પ્રોફાઇલ બનાવો</translation>
 <translation id="6340017061976355871">સર્વર સાથે કનેક્ટ ન કરી શક્યાં. કૃપા કરીને તમારું નેટવર્ક કનેક્શન તપાસો અને ફરી પ્રયાસ કરો. જો સમસ્યા ચાલુ રહે, તો તમારી Chromebook ફરી શરૂ કરો.</translation>
 <translation id="6340071272923955280">ઇન્ટરનેટ પ્રિંટિંગ પ્રોટોકોલ (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">સાઇટ્સ કુકી ડેટા સાચવી અને વાંચી શકે છે</translation>
 <translation id="6388771388956873507">તમારા ઉપકરણ પર ફિંગરપ્રિન્ટ સેન્સર શોધો અને તેને તમારી આંગળી વડે ટચ કરો</translation>
 <translation id="6390799748543157332">આ વિંડોમાં તમે જે પૃષ્ઠો જોઈ રહ્યાં છો તે બ્રાઉઝર ઇતિહાસમાં દેખાશે નહીં અને તે તમે બધી ખુલેલી અતિથિ વિંડોઝ બંધ કરી દો તે પછી તમારા કમ્પ્યુટર પર કૂકીઝ જેવા કોઈ અન્ય નિશાન છોડશે નહીં. જો કે, તમે ડાઉનલોડ કરેલી કોઈપણ ફાઇલો જાળવવામાં આવશે.</translation>
-<translation id="6391538222494443604">ઇનપુટ નિર્દેશિકા અસતિત્વમાં હોવી જોઈએ. </translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />સિસ્ટમ માહિતી<ph name="END_LINK1" /> અને <ph name="BEGIN_LINK2" />મેટ્રિક્સ<ph name="END_LINK2" /> મોકલો</translation>
 <translation id="6397363302884558537">બોલવાનું રોકો</translation>
 <translation id="6397592254427394018">બધા બુકમાર્ક્સને &amp;છુપી વિંડોમાં ખોલો</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">JavaScript અવરોધિત કરવાનું મેનેજ કરો...</translation>
 <translation id="6459488832681039634">શોધવા માટે પસંદગીનો ઉપયોગ કરો</translation>
 <translation id="6460601847208524483">આગલું શોધો</translation>
-<translation id="6462080265650314920">ઍપ્લિકેશનો "<ph name="CONTENT_TYPE" />" સામગ્રી-પ્રકાર સાથેસામગ્રી-પ્રકાર સાથે પ્રદાન થવી જોઈએ.</translation>
 <translation id="6462082050341971451">શું તમે હજી પણ ત્યાં જ છો?</translation>
 <translation id="6463795194797719782">&amp;સંપાદિત કરો</translation>
 <translation id="6466988389784393586">બધાં બુકમાર્ક્સ &amp;ખોલો</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">શું તમે ઇચ્છો છો કે Google, <ph name="SOURCE_LANGUAGE" /> થી <ph name="TARGET_LANGUAGE" /> માં આ પૃષ્ઠનો અનુવાદ કરે?</translation>
 <translation id="6675665718701918026">પોઇંટિંગ ઉપકરણ કનેક્ટ કર્યું</translation>
-<translation id="6677037229676347494">અપેક્ષિત ID "<ph name="EXPECTED_ID" />", પરંતુ ID "<ph name="NEW_ID" />" હતો.</translation>
 <translation id="6678717876183468697">ક્વેરી URL</translation>
 <translation id="6680028776254050810">વપરાશકર્તાઓને સ્વિચ કરો</translation>
 <translation id="6680442031740878064">ઉપલબ્ધ: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">Google કઈ માહિતીનો સંગ્રહ કરે તેને તમે <ph name="BEGIN_LINK" />સેટિંગ<ph name="END_LINK" />માં કોઈ પણ સમયે કસ્ટમાઇઝ કરી શકો છો.</translation>
 <translation id="6904344821472985372">ફાઇલ ઍક્સેસને રદબાતલ કરો</translation>
 <translation id="6904655473976120856">બહાર નીકળવા માટે ઍપ્લિકેશન બટન દવાબો</translation>
-<translation id="6904713658985136356"><ph name="HOST" />, તમારી સ્ક્રીન શેર કરવા માગે છે.</translation>
-<translation id="6909461304779452601">આ વેબસાઇટ પરથી ઍપ્લિકેશનો, એક્સ્ટેન્શન્સ અને વપરાશકર્તા સ્ક્રિપ્ટ્સ ઉમેરી શકાતી નથી.</translation>
 <translation id="6910211073230771657">કાઢી નાખ્યું</translation>
 <translation id="691024665142758461">બહુવિધ ફાઇલોને ડાઉનલોડ કરવા</translation>
 <translation id="6911324888870229398">નેટવર્ક કનેક્શન જતું રહ્યું. કૃપા કરીને તમારું કનેક્શન તપાસો અથવા બીજું વાઇ-ફાઇ નેટવર્ક અજમાવી જુઓ.</translation>
@@ -4102,7 +4047,6 @@
 <translation id="747114903913869239">ભૂલ: એક્સટેન્શનને ડિકોડ કરવામાં અક્ષમ</translation>
 <translation id="7473891865547856676">નહીં આભાર</translation>
 <translation id="747459581954555080">બધુ પુનર્પ્રાપ્ત કરો</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> માં એક ભૂલ આવી છે.</translation>
 <translation id="7475671414023905704">નેટસ્કેપ ખોવાયેલો પાસવર્ડ URL</translation>
 <translation id="7476454130948140105">અપડેટ માટે બૅટરી ખૂબ ઓછી છે (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">જો તમે પાસફ્રેઝ ભૂલી ગયા છો, તો થોભો અને સમન્વયન <ph name="BEGIN_LINK" />Google ડેશબોર્ડ<ph name="END_LINK" /> દ્વારા ફરીથી સેટ કરો.</translation>
@@ -4139,7 +4083,6 @@
 <translation id="7507930499305566459">પ્રતિસાદકર્તાની સ્થિતિનું પ્રમાણપત્ર</translation>
 <translation id="7508545000531937079">સ્લાઇડશો</translation>
 <translation id="7513029293694390567">સંગ્રહિત ઓળખપત્રનો ઉપયોગ કરીને વેબસાઇટ્સમાં આપમેળે સાઇન ઇન કરો. જો અક્ષમ કરેલ હોય, તો વેબસાઇટમાં સાઇન ઇન કરતાં પહેલાં દર વખતે તમને પુષ્ટિકરણ માટે કહેવામાં આવશે.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> સુરક્ષિત કન્ટેન્ટ ચલાવવા માટે તમારા ઉપકરણને અનન્ય રીતે ઓળખવા માગે છે.</translation>
 <translation id="7517569744831774757">સેટિંગ્સને તેમના મૂળ ડિફોલ્ટ્સ પર પુનઃસ્થાપિત કરો.</translation>
 <translation id="7517786267097410259">એક પાસવર્ડ બનાવો -</translation>
 <translation id="7518150891539970662">WebRTC લૉગ્સ (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4169,7 +4112,6 @@
     કરી શકો છો અને ફરીથી નિરીક્ષિત વપરાશકર્તા બનાવવાનો પ્રયાસ કરી શકો છો.</translation>
 <translation id="756445078718366910">બ્રાઉઝર વિંડો ખોલો</translation>
 <translation id="7564847347806291057">પ્રક્રિયાનો અંત કરો</translation>
-<translation id="7565291891798266313">તમારું શોધ એંજિન, <ph name="URL" /> પર બદલ્યું હતું. તમારા શોધ એંજિનને બદલનારા એક્સ્ટેન્શનને અક્ષમ કરવા માટે, પુનઃસ્થાપિત કરો ક્લિક કરો.</translation>
 <translation id="7566118625369982896">Play ઍપ લિંક મેનેજ કરો</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome ડેટા સાફ કર્યો</translation>
@@ -4178,7 +4120,6 @@
 <translation id="7573172247376861652">બેટરી ચાર્જ</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">કૉલેટ</translation>
-<translation id="7577815336900970562">સ્થાન નક્કી કરવા માટે વાઇ-ફાઇ અથવા સેલ્યુલર નેટવર્કનો ઉપયોગ કરો</translation>
 <translation id="7579149537961810247">સાઇટને મ્યૂટ કરો</translation>
 <translation id="7580671184200851182">તમામ સ્પીકર્સ મારફતે સમાન ઑડિઓ ચલાવો (મોનો ઑડિઓ)</translation>
 <translation id="7581462281756524039">સફાઈ સાધન</translation>
@@ -4285,6 +4226,7 @@
 <translation id="7773726648746946405">સત્ર સ્ટોરેજ</translation>
 <translation id="7781335840981796660">બધા વપરાશકર્તા એકાઉન્ટ્સ અને સ્થાનિક ડેટા દૂર કરવામાં આવશે.</translation>
 <translation id="7782102568078991263">Google દ્વારા કોઈ વધુ સૂચનો</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> લોડ કરી શકાયું નથી</translation>
 <translation id="7784067724422331729">તમારા કમ્પ્યુટર પરની સુરક્ષા સેટિંગ્સે આ ફાઇલ અવરોધિત કરી છે.</translation>
 <translation id="7786207843293321886">અતિથિને બહાર નીકાળો</translation>
 <translation id="7786889348652477777">ઍપ્લિકેશન &amp;ફરીથી લોડ કરો</translation>
@@ -4441,7 +4383,6 @@
 <translation id="8001504501378762252">સાઇટે તમારો પાસવર્ડ ચોર્યો હોઈ શકે છે</translation>
 <translation id="8004582292198964060">બ્રાઉઝર</translation>
 <translation id="8008356846765065031">ઇન્ટરનેટ ડિસ્કનેક્ટ કર્યું. કૃપા કરીને તમારું ઇન્ટરનેટ કનેક્શન તપાસો.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> લોડ કરી શકાયું નથી.</translation>
 <translation id="8008818777654712271">જોખમી અ‍ૅપ્લિકેશનો અને સાઇટ્સ શોધવામાં સહાય કરવા માટે Google ને કેટલીક સિસ્ટમ માહિતી અને પૃષ્ઠ સામગ્રી આપમેળે મોકલો</translation>
 <translation id="8012382203418782830">આ પૃષ્ઠનો અનુવાદ કરવામાં આવ્યો છે.</translation>
 <translation id="8014154204619229810">અપડેટકર્તા હાલમાં ચાલી રહ્યું છે. ફરીથી તપાસવા માટે થોડીવારમાં તાજું કરો.</translation>
@@ -4558,7 +4499,6 @@
 <translation id="8191230140820435481">તમારી ઍપ્લિકેશનો, એક્સ્ટેન્શન અને થીમ્સ મેનેજ કરો</translation>
 <translation id="8191453843330043793">V8 પ્રોક્સી રિઝોલ્વર</translation>
 <translation id="8195027750202970175">ડિસ્ક પર કદ</translation>
-<translation id="8195739004487400241">તમારું હોમપેજ પૃષ્ઠ, <ph name="URL" /> પર બદલ્યું હતું. તમારા હોમપેજને બદલનારા એક્સ્ટેન્શનને અક્ષમ કરવા માટે, પુનઃસ્થાપિત કરો ક્લિક કરો.</translation>
 <translation id="8199300056570174101">નેટવર્ક (સેવા) અને ઉપકરણના ગુણધર્મો</translation>
 <translation id="8200772114523450471">રિઝ્યુમે</translation>
 <translation id="8202160505685531999">તમારી <ph name="DEVICE_TYPE" /> પ્રોફાઇલને અપડેટ કરવા માટે કૃપા કરીને તમારો પાસવર્ડ ફરીથી દાખલ કરો.</translation>
@@ -4602,7 +4542,6 @@
 <translation id="8261378640211443080">આ એક્સટેન્શન <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> માં સૂચિબદ્ધ નથી અને તમારી જાણ વિના ઉમેરવામાં આવ્યું હોઈ શકે છે.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> માટે એકાઉન્ટ ઉમેરો</translation>
 <translation id="8261506727792406068">કાઢી નાખો</translation>
-<translation id="826246685091802258">આ બિલ્ડમાં <ph name="BAD_FLAG" />નો અમલ કરાયો નથી.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> એ તમારા માઉસ કર્સરને અક્ષમ કર્યું છે.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> એ પૂર્ણ સ્ક્રીનને ટ્રિગર કરેલી છે.</translation>
 <translation id="8270242299912238708">PDF દસ્તાવેજો</translation>
@@ -4703,6 +4642,7 @@
 <translation id="8454288007744638700">અથવા, એક નવું નેટવર્ક પસંદ કરો:</translation>
 <translation id="845627346958584683">સમાપ્તિ સમય</translation>
 <translation id="8456681095658380701">અમાન્ય નામ</translation>
+<translation id="8457451314607652708">બુકમાર્ક્સ આયાત કરો</translation>
 <translation id="8460336040822756677">જો તમે <ph name="DEVICE_TYPE" /> માટે Smart Lock બંધ કરો, તો તમે તમારા ફોનનો ઉપયોગ કરીને તમારા Chrome ઉપકરણોને અનલૉક કરવામાં સમર્થ હશો નહીં. તમારે તમારો પાસવર્ડ લખવો પડશે.</translation>
 <translation id="8461329675984532579">હોમ પ્રદાતાનું નામ</translation>
 <translation id="84613761564611563">નેટવર્ક ગોઠવણી UI ની વિનંતી કરી, કૃપા કરીને રાહ જુઓ...</translation>
@@ -4734,7 +4674,6 @@
 <translation id="850875081535031620">કોઈ નુકસાનકારક સૉફ્ટવેર મળ્યું નથી</translation>
 <translation id="8512476990829870887">પ્રક્રિયાનો અંત કરો</translation>
 <translation id="851263357009351303"><ph name="HOST" /> ને હંમેશા છબી બતાવવાની મંજૂરી આપો</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" આ બ્રાઉઝરને ડીબગ કરી રહ્યું છે.</translation>
 <translation id="8521475323816527629">તમારી ઍપ સુધી ઝડપથી પહોંચો</translation>
 <translation id="8523493869875972733">ફેરફારો રાખો</translation>
 <translation id="8523849605371521713">નીતિ દ્વારા ઉમેરાયેલ</translation>
@@ -4790,7 +4729,6 @@
 <translation id="8620765578342452535">નેટવર્ક કનેક્શન્સ ગોઠવો</translation>
 <translation id="8620790565535071193">સ્કૅન નિષ્ફળ થયું</translation>
 <translation id="8622877356447980900">શું તમે આ પૃષ્ઠને અનુવાદિત કરવા માંગો છો?</translation>
-<translation id="8623004009673949077">Chrome OS કિઓસ્ક મોડમાં 'kiosk_only' મેનિફેસ્ટ એટ્રિબ્યુટ સાથેની ઍપ્લિકેશન ઇન્સ્ટોલ કરેલી હોવી આવશ્યક છે.</translation>
 <translation id="8624205858755890468">સહાયક તમને સંબંધિત માહિતી, ઍપ અને ક્રિયાઓ બતાવે તે ચાલુ કરે છે.</translation>
 <translation id="862542460444371744">&amp;એક્સ્ટેન્શન્સ</translation>
 <translation id="8627151598708688654">સ્રોત પસંદ કરો</translation>
@@ -4939,7 +4877,6 @@
 <translation id="882204272221080310">વધારાની સુરક્ષા માટે ફર્મવેયર અપડેટ કરો.</translation>
 <translation id="8823514049557262177">લિંક ટે&amp;ક્સ્ટને કૉપિ કરો</translation>
 <translation id="8824701697284169214">પૃ&amp;ષ્ઠ ઉમેરો...</translation>
-<translation id="8827850355924932817">સ્થાન નક્કી કરવા માટે વાઇ-ફાઇ નેટવર્કનો ઉપયોગ કરો</translation>
 <translation id="8828933418460119530">DNS નામ</translation>
 <translation id="8830796635868321089">વર્તમાન પ્રોક્સી સેટિંગ્સનો ઉપયોગ કરીને અપડેટ ચકાસણી નિષ્ફળ થયું. કૃપા કરીને તમારી <ph name="PROXY_SETTINGS_LINK_START" />પ્રોક્સી સેટિંગ્સ<ph name="PROXY_SETTINGS_LINK_END" /> સમાયોજિત કરો.</translation>
 <translation id="8834039744648160717">નેટવર્ક ગોઠવણી, <ph name="USER_EMAIL" /> દ્વારા નિયંત્રિત થાય છે.</translation>
@@ -4971,9 +4908,7 @@
 <translation id="8879284080359814990">ટૅબ તરીકે &amp;બતાવો</translation>
 <translation id="8884961208881553398">નવી સેવાઓ ઉમેરો</translation>
 <translation id="8885197664446363138">Smart Lock અનુપલબ્ધ છે</translation>
-<translation id="8885905466771744233">ઉલ્લેખિત એક્સટેન્શન માટે ખાનગી કી પહેલાંથી અસતિત્વમાં છે. તે કી ફરીથી વાપરો અથવા પહેલા તેને કાઢી નાખો.</translation>
 <translation id="8888432776533519951">રંગ:</translation>
-<translation id="8892992092192084762">ઇન્સ્ટોલ કરેલી થીમ "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">માફ કરશો, ઉપકરણ <ph name="DEVICE_LABEL" /> ઓળખી શકાયું નથી.</translation>
 <translation id="8895454554629927345">બુકમાર્કની સૂચિ</translation>
 <translation id="88986195241502842">પૃષ્ઠ નીચે</translation>
@@ -4982,13 +4917,12 @@
 <translation id="8899285681604219177">અસમર્થિત એક્સ્ટેન્શન્સ અક્ષમ કર્યાં</translation>
 <translation id="8899551033019439140">પ્રિન્ટર શોધી રહ્યાં છે...</translation>
 <translation id="8899851313684471736">નવી &amp;વિંડોમાં લિંક ખોલો</translation>
-<translation id="8902667442496790482">બોલવા માટે પસંદ કરોના સેટિંગ ખોલો</translation>
+<translation id="8902667442496790482">સાંભળવા માટે પસંદ કરોના સેટિંગ ખોલો</translation>
 <translation id="8903921497873541725">ઝૂમ વધારો</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">ચેતવણી: તમે આ કમ્પ્યુટર પર --scripts-require-action ફ્લેગ સક્ષમ કરેલ છે, જે આ એક્સ્ટેન્શનની ક્ષમતાઓને મર્યાદિત કરે છે. જો કે, અન્ય ઉપકરણો, આ ફ્લેગનું સમર્થન કરી શકશે નહીં અથવા તેમાં સક્ષમ કરેલ હોઈ શકે છે. આ ઉપકરણો પર, આ એક્સ્ટેન્શન આ પણ કરી શકે છે:</translation>
 <translation id="8910146161325739742">તમારી સ્ક્રીન શેર કરો</translation>
 <translation id="8910222113987937043">તમારા બુકમાર્ક્સ, ઇતિહાસ, પાસવર્ડ્સ અને અન્ય સેટિંગ્સ પરના ફેરફારો હવે તમારો અસ્તિત્વમાંનો ડેટા, તમારા Google એકાઉન્ટમાં સંગ્રહિત રહેશે અને તે <ph name="BEGIN_LINK" />Google ડેશબોર્ડ<ph name="END_LINK" /> પર સંચાલિત કરવામાં આવી શકે છે.</translation>
-<translation id="8911079125461595075">Google એ "<ph name="EXTENSION_NAME" />" ને દૂષિત તરીકે ધ્વજાંકિત કર્યું છે અને ઇન્સ્ટોલેશન અટકાવવામાં આવ્યું છે.</translation>
 <translation id="8912793549644936705">ખેંચો</translation>
 <translation id="8915370057835397490">સૂચનને લોડ કરી રહ્યું છે</translation>
 <translation id="8916476537757519021">છુપો મોડ સબફ્રેમ: <ph name="SUBFRAME_SITE" /></translation>
@@ -5094,7 +5028,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB માઉસ કનેક્ટ કર્યું</translation>
 <translation id="9076523132036239772">માફ કરશો, તમારો ઇમેઇલ અથવા પાસવર્ડ માન્ય કરી શકાયો નથી. સૌ પ્રથમ નેટવર્કથી કનેક્ટ કરવાનો પ્રયાસ કરો. </translation>
-<translation id="907841381057066561">પૅકેજીંગ દરમિયાન અસ્થાયી ઝિપ ફાઇલ બનાવવામાં નિષ્ફળ.</translation>
 <translation id="9084064520949870008">વિંડો તરીકે ખોલો</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" />, એન્ટરપ્રાઇઝ નીતિ દ્વારા અવરોધિત કરેલ છે</translation>
 <translation id="9088917181875854783">કૃપા કરીને ખાતરી કરો કે "<ph name="DEVICE_NAME" />" પર આ પાસકી દેખાય છે:</translation>
@@ -5185,11 +5118,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">પાસફ્રેઝ દાખલ કરો</translation>
 <translation id="939736085109172342">નવું ફોલ્ડર</translation>
-<translation id="941543339607623937">અમાન્ય ખાનગી કી.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" />, Chrome ટૅબ અને ઑડિઓને શેર કરી રહી છે.</translation>
 <translation id="942954117721265519">આ ડાયરેક્ટરીમાં છબીઓ નથી.</translation>
 <translation id="945522503751344254">પ્રતિસાદ મોકલો</translation>
-<translation id="951981865514037445"><ph name="URL" /> તમારા ઉપકરણના સ્થાનનો ઉપયોગ કરવા માંગે છે.</translation>
 <translation id="952992212772159698">સક્રિય કરેલું નથી</translation>
 <translation id="9580706199804957">Google સેવાઓ સાથે કનેક્ટ ન કરી શક્યાં</translation>
 <translation id="958515377357646513">આગળ જવા માટે ટચ કરો.</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index b9253c1..05c4477 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">केवल कूटलेखन</translation>
 <translation id="1039337018183941703">अमान्‍य या खराब फ़ाइल</translation>
 <translation id="1042174272890264476">आपके कंप्यूटर में <ph name="SHORT_PRODUCT_NAME" /> की RLZ लाइब्रेरी भी अंतर्निहित आती है. RLZ एक गैर-अद्वितीय, गैर-व्यक्तिगत रूप से पहचाने जाने योग्य टैग असाइन करता है ताकि खोजों तथा किसी विशिष्ट प्रचार अभियान द्वारा संचालित <ph name="SHORT_PRODUCT_NAME" /> उपयोग को मापा जा सके. कभी-कभी ये लेबल <ph name="PRODUCT_NAME" /> में Google खोज क्वेरी में दिखाई देते हैं.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> स्थायी रूप से आपके डिवाइस पर बड़ा डेटा संगृहीत करना चाहता है.</translation>
 <translation id="1046059554679513793">ओह, यह नाम पहले से ही उपयोग किया जा रहा है!</translation>
 <translation id="1047431265488717055">लिंक ले&amp;ख को कॉपी करें</translation>
 <translation id="1047726139967079566">इस पेज को बुकमार्क करें...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">डिफ़ॉल्ट खोज इंजन बहाल करें?</translation>
 <translation id="1177863135347784049">कस्टम</translation>
 <translation id="1178581264944972037">पॉज़ करें</translation>
-<translation id="1179803038870941185"><ph name="URL" /> आपके MIDI डिवाइस का पूर्ण नियंत्रण प्राप्त करना चाहता है.</translation>
 <translation id="1181037720776840403">निकालें</translation>
 <translation id="1183237619868651138">स्‍थानीय कैश में <ph name="EXTERNAL_CRX_FILE" /> इंस्‍टॉल नहीं कर सकते.</translation>
 <translation id="1185924365081634987">इस नेटवर्क गड़बड़ी को ठीक करने के लिए आप <ph name="GUEST_SIGNIN_LINK_START" />अतिथि के रूप में ब्राउज़ करें<ph name="GUEST_SIGNIN_LINK_END" /> को भी आज़मा सकते हैं.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{अपने कंप्‍यूटर पर संग्रहित कोई फ़ाइल ऐक्‍सेस करें}one{अपने कंप्‍यूटर पर संग्रहित # फ़ाइलें ऐक्‍सेस करें}other{अपने कंप्‍यूटर पर संग्रहित # फ़ाइलें ऐक्‍सेस करें}}</translation>
 <translation id="1195076408729068893">Smart Lock शुरू करने के लिए, अपना पासवर्ड डालें. अगली बार, आप अपने <ph name="DEVICE_TYPE" /> को अनलॉक करने के लिए अपने फ़ोन का उपयोग कर सकते हैं.</translation>
 <translation id="1195447618553298278">अज्ञात गड़बड़ी.</translation>
-<translation id="1196338895211115272">निजी कुंजी निर्यात करने में विफल.</translation>
 <translation id="119738088725604856">स्क्रीनशॉट विंडो</translation>
 <translation id="1197979282329025000">प्रिंटर <ph name="PRINTER_NAME" /> की प्रिंटर क्षमताएं पुनर्प्राप्त करते समय एक गड़बड़ी आई. इस प्रिंटर को <ph name="CLOUD_PRINT_NAME" /> के साथ पंजीकृत नहीं किया जा सका.</translation>
 <translation id="1198271701881992799">आइए प्रारंभ करते हैं</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">आपका व्‍यवस्‍थापक इस सेटिंग के लिए किसी विशिष्ट मान की अनुशंसा करता है.</translation>
 <translation id="1225177025209879837">अनुरोध प्रोसेस हो रहा है...</translation>
 <translation id="1225211345201532184">अलमारी आइटम 5</translation>
-<translation id="1225404570112441414">इस साइट को अपनी अलमारी में जोड़ें ताकि किसी भी समय इसका उपयोग कर सकें.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" से कनेक्ट होते समय प्रमाणीकरण विफल रहा.</translation>
 <translation id="1230807973377071856">सिस्टम मेनू</translation>
 <translation id="1232569758102978740">शीर्षक रहित</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML फ़ाइल को बुकमार्क करता है</translation>
 <translation id="1303671224831497365">कोई ब्लूटूथ डिवाइस नहीं मि‍ला</translation>
 <translation id="1306606229401759371">सेटिंग बदलें</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> पर मौजूद किसी भी डिवाइस से अपने पासवर्ड एक्सेस करें</translation>
 <translation id="1307559529304613120">ओह!  सिस्टम इस डिवाइस के लिए एक दीर्घ-कालीन API एक्सेस टोकन संगृहीत करने में विफल रहा.</translation>
 <translation id="1313405956111467313">स्‍वचालित प्रॉक्सी कॉन्फ़िगरेशन</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">खोज</translation>
 <translation id="1386387014181100145">कैसे हैं.</translation>
 <translation id="138784436342154190">डिफ़ॉल्ट स्टार्टअप पेज को बहाल करना चाहते हैं?</translation>
-<translation id="1389297115360905376">इसे केवल <ph name="CHROME_WEB_STORE" /> से ही जोड़ा जा सकता है.</translation>
 <translation id="1390548061267426325">नियमित टैब के रूप में खोलें</translation>
-<translation id="1391807639023934267">पेज अधिक तेजी से लोड हुआ.</translation>
 <translation id="1393283411312835250">सूरज और बादल</translation>
 <translation id="1395262318152388157">सीक स्‍लाइडर</translation>
 <translation id="1395730723686586365">अपडेटर प्रारंभ हुआ</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">आप <ph name="PRODUCT_NAME" /> के ऐसे अस्थिर वर्शन में अपडेट कर रहे हैं जिसकी सुविधाओं पर काम चल रहा है. क्रैश और अप्रत्याशित बग उत्पन्न होंगे. कृपया सावधानी से आगे बढ़ें.</translation>
 <translation id="1415990189994829608">इस प्रकार के सत्र में <ph name="EXTENSION_NAME" /> (एक्‍सटेंशन आईडी "<ph name="EXTENSION_ID" />") की अनुमति नहीं है.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">ओह! यादृच्छिक RSA निजी कुंजी जेनरेट करने में विफल.</translation>
 <translation id="1420834118113404499">मीडिया लाइसेंस</translation>
 <translation id="1420920093772172268">युग्मन की अनुमति देने के लिए <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">हां</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ऑडियो के पते को कॉ&amp;पी करें</translation>
 <translation id="1465827627707997754">पिज़्ज़ा का टुकड़ा</translation>
 <translation id="1467432559032391204">बाएं</translation>
-<translation id="1467999917853307373"><ph name="URL" /> डेटा को स्‍थायी रूप से आपके डिवाइस पर संगृहीत करना चाहता है..</translation>
-<translation id="1470719357688513792">पेज के फिर से लोड होने के बाद नई कुकी सेटिंग प्रभावी होगी.</translation>
 <translation id="1470811252759861213">अपने सभी कंप्यूटर पर अपने एक्सटेंशन प्राप्त करने के लिए, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" को अपलोड नहीं किया गया. आपकी Google डिस्क में पर्याप्त जगह नहीं है.</translation>
 <translation id="1475502736924165259">आपके पास फ़ाइल पर ऐसे प्रमाणपत्र हैं जो किसी भी अन्य श्रेणी में फ़िट नहीं होते</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">बड़ा माउस कर्सर</translation>
 <translation id="1543284117603151572">Edge से आयात किया गया</translation>
 <translation id="1545177026077493356">स्वचालित किओस्क मोड</translation>
+<translation id="1545775234664667895">थीम "<ph name="THEME_NAME" />" स्थापित की गई</translation>
 <translation id="1545786162090505744">क्वेरी के स्थान पर %s वाला URL</translation>
 <translation id="1546280085599573572">इस एक्सटेंशन ने यह बदल दिया है कि जब आप होम बटन क्लिक करते हैं तब कौन सा पेज दिखाया जाए.</translation>
 <translation id="1547572086206517271">रीफ्रेश करने की आवश्यकता है</translation>
@@ -443,11 +434,9 @@
     निगरानी में रखे गए उपयोगकर्ता द्वारा देखी गई वेबसाइट की <ph name="BEGIN_BOLD" />समीक्षा<ph name="END_BOLD" /> कर सकते हैं, और
     अन्य सेटिंग <ph name="BEGIN_BOLD" />प्रबंधित<ph name="END_BOLD" /> कर सकते हैं.</translation>
 <translation id="1648943974594387137">प्रवेश संबंधी विवरण पुराने हैं</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> पंक्तियां नहीं दिखाई गई हैं&gt;</translation>
 <translation id="1650371550981945235">इनपुट विकल्प दिखाएं</translation>
 <translation id="1650709179466243265">www. और .com जोड़ें और पता खोलें</translation>
 <translation id="1651008383952180276">आपको एक ही पासफ़्रेज़ दो बार डालना होगा</translation>
-<translation id="1652972346408808053">पासवर्ड सहेजा गया. <ph name="SAVED_PASSWORDS_LINK" /> पर मौजूद किसी भी डिवाइस से अपने पासवर्ड एक्सेस करें</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google क्लाउड प्रिंट से प्रिंटर जोड़ें ताकि आप कहीं से भी प्रिंट कर सकें.}one{Google क्लाउड प्रिंट से # प्रिंटर जोड़ें ताकि आप कहीं से भी प्रिंट कर सकें.}other{Google क्लाउड प्रिंट से # प्रिंटर जोड़ें ताकि आप कहीं से भी प्रिंट कर सकें.}}</translation>
 <translation id="1657406563541664238">Google को अपने आप उपयोग आंकड़े और क्रैश रिपोर्ट भेजकर <ph name="PRODUCT_NAME" /> को बेहतर बनाने में सहायता करें</translation>
 <translation id="1658424621194652532">यह पेज आपका माइक्रोफ़ोन एक्सेस कर रहा है.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">कुकी अवरोधित करना जारी रखें</translation>
 <translation id="204622017488417136">आपके डिवाइस को Chrome के पूर्व में इंस्‍टॉल किए गए वर्ज़न पर वापस ले जाया जाएगा. सभी उपयोगकर्ता खाते और स्‍थानीय डेटा निकाल दिया जाएगा. इसे पूर्ववत नहीं किया जा सकता.</translation>
 <translation id="2048182445208425546">अपना नेटवर्क ट्रैफ़िक ऐक्‍सेस करें</translation>
-<translation id="2049137146490122801">आपके व्‍यवस्‍थापक द्वारा आपकी मशीन पर स्थानीय फ़ाइलों की पहुंच अक्षम कर दी गई है.</translation>
 <translation id="204914487372604757">शॉर्टकट बनाएं</translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
 <translation id="2053312383184521053">निष्क्रिय स्थिति डेटा</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">अब तक लोड नहीं किया गया</translation>
 <translation id="2107494551712864447">फ़िंगरप्रिंट जोड़ें</translation>
-<translation id="2111843886872897694">ऐप्स  को उस होस्ट से प्रस्तुत किया जाना चाहिए, जिसे वे प्रभावित करते हैं.</translation>
 <translation id="2112877397266219826">मुझे सेट करने के लिए अपना स्पर्श नियंत्रक चालू करें</translation>
 <translation id="21133533946938348">टैब छोटा करें</translation>
 <translation id="2113479184312716848">&amp;फ़ाइल खोलें...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">हमें बताएं कि क्या हो रहा है</translation>
 <translation id="2229161054156947610">1 घंटा से अधिक शेष है</translation>
 <translation id="222931766245975952">फ़ाइल छोटी हो गई</translation>
-<translation id="222949136907494149"><ph name="URL" /> आपके कंप्यूटर के स्थान का उपयोग करना चाहता है.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" फ़ोल्डर बनाने में असमर्थ. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">आज का डूडल देखने के लिए क्लिक करें</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">माइक्रोफ़ोन एक्सेस हमेशा अवरुद्ध करें</translation>
 <translation id="2367972762794486313">ऐप्स  दिखाएं</translation>
 <translation id="2371076942591664043">&amp;पू्र्ण होने पर खोलें</translation>
-<translation id="237336063998926520">जगह का पता करने के लिए अपने आईपी पते का इस्तेमाल करें</translation>
 <translation id="2377319039870049694">'सूची की तरह देखें' पर स्विच करें</translation>
 <translation id="2377667304966270281">हार्ड फ़ॉल्ट</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> फ़ाइलें चयनित</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> से फ़ाइलों की कॉपी बनाना चाहता है.</translation>
 <translation id="2462724976360937186">प्रमाणन प्राधिकरण कुंजी आईडी</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> जोड़ा गया</translation>
-<translation id="246335896104539386">बुकमार्क आयात करें</translation>
 <translation id="2464089476039395325">HTTP प्रॉक्‍सी</translation>
 <translation id="2468902267404883140">आपके फ़ोन से कनेक्ट नहीं हो पा रहा है. पक्का करें कि आप ऐसे संगत Android फ़ोन का उपयोग कर रहे हैं जो चालू है और पहुंच में है. &lt;a&gt;अधिक जानें&lt;/a&gt;</translation>
 <translation id="2470702053775288986">असमर्थित एक्‍सटेंशन अक्षम</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">विस्थापित करें</translation>
 <translation id="2487067538648443797">नया बुकमार्क जोड़ें</translation>
 <translation id="248861575772995840">आपका फ़ोन नहीं मिल पा रहा है. पक्का करें कि आपके <ph name="DEVICE_TYPE" /> का ब्लूटूथ चालू है. &lt;a&gt;अधिक जानें&lt;/a&gt;</translation>
-<translation id="2489316678672211764">प्‍लग इन (<ph name="PLUGIN_NAME" />) प्रतिसाद नहीं कर रहा है.</translation>
 <translation id="2489428929217601177">पिछला दिन</translation>
 <translation id="2489918096470125693">&amp;फ़ोल्डर जोड़ें...</translation>
 <translation id="249113932447298600">क्षमा करें, डिवाइस <ph name="DEVICE_LABEL" /> इस समय समर्थित नहीं है.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">बधाई हो! आपकी '<ph name="NAME" />' डेटा सेवा सक्रिय हो गई है और अब वह चलने के लिए तैयार है.</translation>
 <translation id="2566124945717127842">अपने <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवाइस को बिल्कुल नए जैसा रीसेट करने के लिए पावरवॉश करें.</translation>
 <translation id="2568774940984945469">जानकारी बार कंटेनर</translation>
-<translation id="2570000010887652771">बचाया गया डेटा.</translation>
 <translation id="257088987046510401">थीम</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> को केवल पढ़ने के लिए ऐक्‍सेस दे दी गई है.</translation>
 <translation id="2573269395582837871">कोई फ़ोटो और नाम चुनें</translation>
 <translation id="2575247648642144396">जब एक्सटेंशन वर्तमान पेज पर कार्य कर सकेगा, तब यह आइकन दृश्यमान होगा. आइकन पर क्लिक करके या <ph name="EXTENSION_SHORTCUT" /> को दबाकर यह एक्सटेंशन सक्रिय करें.</translation>
 <translation id="2575268751393592580">आपका फ़ोन नहीं मिल पा रहा है. पक्का करें कि आपका <ph name="DEVICE_TYPE" /> वाई-फ़ाई से या किसी मोबाइल नेटवर्क से कनेक्ट है. &lt;a&gt;अधिक जानें&lt;/a&gt;</translation>
-<translation id="2576842806987913196">इस नाम वाली CRX फ़ाइल पहले से ही मौजूद है.</translation>
 <translation id="257779572837908839">मीटिंग के लिए Chromebox के रूप में सेट अप करें</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />वॉल्यूम अनमाउंट नहीं किया जा सकता<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">यदि आप किसी प्रमाणन प्राधिकरण (CA) प्रमाणपत्र को हटाते हैं, तो आपका ब्राउज़र उस CA द्वारा जारी किए गए किसी भी प्रमाणपत्र पर विश्‍वास नहीं करेगा.</translation>
 <translation id="2653659639078652383">सबमिट करें</translation>
 <translation id="265390580714150011">फ़ील्ड मान</translation>
-<translation id="2654286334048437383">बुकमार्क निर्यात करें</translation>
 <translation id="2655386581175833247">उपयोगकर्ता प्रमाणपत्र:</translation>
 <translation id="2660779039299703961">इवेंट</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">निर्देशिका द्वारा मीडिया गैलरी जोड़ें</translation>
 <translation id="2908789530129661844">स्क्रीन ज़ूम आउट करें</translation>
 <translation id="2910318910161511225">किसी नेटवर्क से कनेक्ट करें और फिर कोशिश करें</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> आपके माइक्रोफ़ोन का उपयोग करना चाहता है.</translation>
 <translation id="2913331724188855103">साइटों को कुकी डेटा सहेजने और पढ़ने दें (अनुशंसित)</translation>
 <translation id="2916073183900451334">किसी वेबपेज पर टैब दबाने से लिंक के साथ-साथ फ़ॉर्म भी हाइलाइट होते हैं</translation>
 <translation id="2916745397441987255">एक्सटेंशन खोजें</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">सुन रही है...</translation>
 <translation id="3141917231319778873">दिया गया अनुरोध इसका समर्थन नहीं करता है: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">हो गया</translation>
-<translation id="3144135466825225871">crx फ़ाइल बदलने में विफल. यह देखने के लिए जाँच करें कि क्या फ़ाइल उपयोग में है.</translation>
 <translation id="3144647712221361880">लिंक को इस रूप में खोलें</translation>
 <translation id="3149510190863420837">Chrome ऐप्स</translation>
 <translation id="3150927491400159470">कठिन पुन: लोड</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">हमेशा सभी साइटों पर चलाएं</translation>
 <translation id="3312424061798279731">सक्षम भाषाएं</translation>
 <translation id="3312903956926554846">डेस्कटॉप में इंस्टॉल करें</translation>
-<translation id="3313473140726597081">आपका स्टार्टअप पेज <ph name="URL" /> में बदल दिया गया था. आपका स्टार्टअप पेज बदलने वाले एक्सटेंशन को अक्षम करने के लिए, बहाल करें पर क्लिक करें.</translation>
 <translation id="3313590242757056087">निगरानी में रखे गए उपयोगकर्ता द्वारा देखी जा सकने वाली वेबसाइटें सेट करने के लिए, आप <ph name="MANAGEMENT_URL" /> पर जाकर प्रतिबंधों और
     सेटिंग को कॉन्फ़िगर कर सकते हैं.
     यदि आप डिफ़ॉल्ट सेटिंग नहीं बदलते हैं, तो <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">ऐप्स की जानकारी</translation>
 <translation id="3335947283844343239">बंद किए गए टैब फिर से खोलें</translation>
-<translation id="3337069537196930048">पुराना होने के कारण <ph name="PLUGIN_NAME" /> को अवरूद्ध कर दिया गया था.</translation>
 <translation id="3340978935015468852">सेटिंग</translation>
 <translation id="3341703758641437857">फ़ाइल URL तक पहुंचने की अनुमति दें</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" इस एक्सटेंशन को हटाना चाहता है.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">बुकमार्क जोड़ा गया</translation>
 <translation id="3389312115541230716">टास्कबार में <ph name="SMALL_PRODUCT_LOGO" /> आइकन पर राइट क्लिक करें</translation>
 <translation id="3391716558283801616">टैब 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> आपके कैमरा और माइक्रोफ़ोन का उपयोग करना चाहता है.</translation>
 <translation id="3396331542604645348">चयनित प्रिंटर उपलब्‍ध नहीं है या ठीक से इंस्‍टॉल नहीं किया गया है. अपना प्रिंटर जाँचें या किसी अन्‍य प्रिंटर का चयन करने का प्रयास करें.</translation>
 <translation id="3399432415385675819">नोटिफ़िकेशन अक्षम हो जाएंगे</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome अपने आप अपडेट हो जाता है इसलिए आपके पास हमेशा नवीनतम वर्शन रहता है</translation>
 <translation id="3551320343578183772">टैब बंद करें</translation>
 <translation id="3552780134252864554">बाहर निकलने पर साफ़ की गई</translation>
-<translation id="355298399003313926"><ph name="URL" /> सुलभता इवेंट का जवाब देना चाहता है.</translation>
 <translation id="3555812735919707620">एक्सटेंशन निकालें</translation>
 <translation id="3556000484321257665">आपका खोज इंजन <ph name="URL" /> में बदल दिया गया था.</translation>
-<translation id="3561217442734750519">निजी कुंजी के लिए इनपुट मान एक मान्य पथ होना चाहिए.</translation>
 <translation id="3563432852173030730">कियोस्क ऐप्लिकेशन डाउनलोड नहीं किया जा सकता.</translation>
 <translation id="3564334271939054422">आप जिस वाई-फ़ाई नेटवर्क (<ph name="NETWORK_ID" />) का उपयोग कर रहे हैं उसके लिए आपको लॉगिन पृष्‍ठ पर जाने की अावश्‍यकता हो सकती है.</translation>
 <translation id="3564708465992574908">ज़ूम स्तर</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">प्रमाणपत्र नाम बाध्यताएं</translation>
 <translation id="3596235046596950091">क्लाउड सेवाएं सक्षम करें</translation>
 <translation id="3599863153486145794">प्रवेश किए हुए सभी डिवाइसों से इतिहास साफ़ कर देता है. आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर अन्य प्रकार के ब्राउज़िंग इतिहास हो सकतेे हैं.</translation>
-<translation id="3600456501114769456">आपके डिवाइस की स्थानीय फ़ाइलों की एक्सेस आपके व्यवस्थापक द्वारा अक्षम कर दी गई है.</translation>
 <translation id="3600792891314830896">आवाज़ चलाने वाली साइटों की आवाज़ बंद करें</translation>
 <translation id="3603177256297531067">इस पेज का अनुवाद नहीं किया जा सका</translation>
 <translation id="3603533104205588786">पेज को बुकमार्क करने के लिए आप तारे पर क्लिक कर सकते हैं</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">स्क्रीनशॉट अक्षम हैं</translation>
 <translation id="3625870480639975468">ज़ूम रीसेट करें</translation>
 <translation id="3626281679859535460">स्क्रीन की रोशनी</translation>
-<translation id="3627052133907344175">एक्‍सटेंशन के लिए "<ph name="IMPORT_NAME" />" को न्‍यूनतम "<ph name="IMPORT_VERSION" />" वर्ज़न का होना चाहिए, लेकिन केवल "<ph name="INSTALLED_VERSION" />" वर्ज़न ही इंस्‍टॉल किया गया है.</translation>
 <translation id="3627320433825461852">1 मिनट से भी कम शेष है</translation>
 <translation id="3627588569887975815">&amp;गुप्त विंडो में लिंक खोलें</translation>
 <translation id="3627671146180677314">Netscape प्रमाणपत्र नवीकरण समय</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">भाषा सेटिंग</translation>
 <translation id="3668823961463113931">हैंडलर</translation>
 <translation id="3670229581627177274">ब्लूटूथ चालू करें</translation>
-<translation id="3672159315667503033"><ph name="URL" /> आपके स्थानीय कंप्यूटर पर स्थायी रूप से बड़ी मात्रा में डेटा संग्रहित करना चाहता है.</translation>
 <translation id="3672681487849735243">फ़ैक्टरी गड़बड़ी का पता लगाया गया है</translation>
 <translation id="367645871420407123">यदि आप रूट पासवर्ड को डिफ़ॉल्‍ट परीक्षण चित्र मान पर सेट करना चाहते हैं तो खाली छोड़ दें</translation>
 <translation id="3678156199662914018">एक्‍सटेंशन: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">आप ऑफ़लाइन हैं</translation>
 <translation id="3788401245189148511">यह निम्न कर सकता है:</translation>
 <translation id="3789841737615482174">इंस्‍टॉल करें</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> केवल डेस्‍कटॉप पर कार्य करता है.</translation>
 <translation id="379082410132524484">आपके कार्ड की समय-सीमा समाप्त हो गई है</translation>
 <translation id="3792890930871100565">प्रिंटर डिसकनेक्ट करें</translation>
 <translation id="379422718204375917">अपने खाते में प्रवेश करने के लिए Smart Lock का उपयोग करें</translation>
-<translation id="3794595850995182458">पेज से बाहर निकलें</translation>
 <translation id="3796648294839530037">पसंदीदा नेटवर्क:</translation>
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” को खोजने के लिए <ph name="SEARCH_ENGINE" /> पर &amp;खोजें</translation>
 <translation id="3798325802885154040">आपको क्लिक करने के लिए टैप करें सुविधा को सक्षम/अक्षम करने देती है</translation>
@@ -1980,7 +1948,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> सक्षम करें</translation>
 <translation id="3981760180856053153">सहेजने का अमान्य प्रकार दर्ज किया गया.</translation>
 <translation id="3983586614702900908">किसी अज्ञात विक्रेता के डिवाइस</translation>
-<translation id="3984413272403535372">एक्सटेंशन हस्ताक्षरित करते समय गड़बड़ी आई.</translation>
 <translation id="3987938432087324095">माफ़ करें, यह समझ में नहीं आया.</translation>
 <translation id="3988996860813292272">समय क्षेत्र चुनें</translation>
 <translation id="3989635538409502728">प्रस्थान करें</translation>
@@ -2036,7 +2003,6 @@
 <translation id="4087470595660267445">अपने Chromebook पर Google Play से ऐप्लिकेशन और गेम इंस्टॉल करें. &lt;a target="_blank" href="<ph name="URL" />"&gt;अधिक जानें&lt;/a&gt;</translation>
 <translation id="4088095054444612037">समूह के लिए स्वीकार करें</translation>
 <translation id="4090103403438682346">सत्यापित एक्सेस सक्षम करें</translation>
-<translation id="4090404313667273475">इस पेज पर कुछ तत्‍व प्रदर्शित करने के लिए <ph name="PLUGIN_NAME" /> की आवश्‍यकता है.</translation>
 <translation id="4090535558450035482">(यह एक्‍सटेंशन प्रबंधित है और इसे निकाला नहीं जा सकता.)</translation>
 <translation id="4091434297613116013">कागज़ की पत्रक</translation>
 <translation id="4093955363990068916">स्थानीय फ़ाइल:</translation>
@@ -2370,7 +2336,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> अब आपके पासवर्ड समन्वयन कर सकता है.</translation>
 <translation id="4715553623069266137">बहुत कम समय (0.8 सेकंड)</translation>
 <translation id="4716483597559580346">अतिरिक्त सुरक्षा के लिए Powerwash करें</translation>
-<translation id="471800408830181311">निजी कुंजी आउटपुट करने में विफल.</translation>
 <translation id="4720113199587244118">डिवाइस जोड़ें</translation>
 <translation id="4720185134442950733">मोबाइल डेटा नेटवर्क</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> आपकी स्क्रीन साझा कर रहा है.</translation>
@@ -2507,7 +2472,6 @@
 <translation id="4917385247580444890">सशक्त</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" एक्‍सटेंशन से संचार करना चाहता है</translation>
 <translation id="4918086044614829423">स्वीकार करें</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> आपके कैमरे का उपयोग करना चाहता है.</translation>
 <translation id="4920887663447894854">निम्न साइटों को इस पेज पर आपकी स्थिति ट्रैक करने से अवरोधित कर दिया गया है:</translation>
 <translation id="492299503953721473">Android ऐप्लिकेशन निकालें</translation>
 <translation id="4923279099980110923">हां, मुझे सहायता चाहिए</translation>
@@ -2548,7 +2512,6 @@
 <translation id="4980805016576257426">इस एक्सटेंशन में मैलवेयर है.</translation>
 <translation id="498294082491145744">कुकी, JavaScript, प्‍लग इन, भू-स्‍थान, माइक्रोफ़ोन, कैमरा आदि जैसी सुविधाओं तक वेबसाइट की ऐक्‍सेस नियंत्रित करने वाली सेटिंग में बदलाव करें.</translation>
 <translation id="4988526792673242964">पेज</translation>
-<translation id="4988792151665380515">सार्वजनिक कुंजी निर्यात करने में विफल.</translation>
 <translation id="49896407730300355">घड़ी की &amp;विपरीत दिशा में घुमाएं</translation>
 <translation id="4989966318180235467">निरीक्षण और पेजभूमि पेज</translation>
 <translation id="4990343175649730969">Chrome सॉफ़्टवेयर सफ़ाई टूल डाउनलोड करें</translation>
@@ -2577,7 +2540,6 @@
 <translation id="5026874946691314267">इसे दोबारा न दिखाएं</translation>
 <translation id="5027550639139316293">ईमेल प्रमाणपत्र</translation>
 <translation id="5027562294707732951">एक्‍सटेंशन जोड़ें</translation>
-<translation id="5028012205542821824">इंस्टॉलेशन सक्षम नहीं है.</translation>
 <translation id="5029568752722684782">स्‍पष्‍ट कॉपी</translation>
 <translation id="5030338702439866405">जारीकर्ता</translation>
 <translation id="5036662165765606524">किसी भी साइट को स्वचालित रूप से एकाधिक फ़ाइलें डाउनलोड न करने दें</translation>
@@ -2613,7 +2575,6 @@
 <translation id="509429900233858213">कोई गड़बड़ी हुई.</translation>
 <translation id="5094721898978802975">स्थानीय ऐप्स  के साथ सहयोग करते हुए संचार करें</translation>
 <translation id="5097002363526479830">नेटवर्क से कनेक्ट करने में विफल '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">पैक करने के लिए निर्देशिका का निरपेक्ष पथ नहीं ढूंढा जा सकता.</translation>
 <translation id="5099354524039520280">ऊपर</translation>
 <translation id="5100114659116077956">अपने लिए नवीनतम सुविधाएं लाने के लिए, आपके Chromebox को अपडेट करना होगा.</translation>
 <translation id="5101042277149003567">सभी बुकमार्क खोलें</translation>
@@ -2662,7 +2623,6 @@
 <translation id="5170568018924773124">फ़ोल्डर में दिखाएं</translation>
 <translation id="5171045022955879922">URL खोजें या लिखें</translation>
 <translation id="5171343362375269016">स्वैप की गई मेमोरी</translation>
-<translation id="5175870427301879686"><ph name="URL" /> आपके स्थानीय कंप्यूटर पर स्थायी रूप से डेटा संग्रहित करना चाहता है.</translation>
 <translation id="5177479852722101802">कैमरा और माइक्रोफ़ोन की पहुंच अवरुद्ध करना जारी रखें</translation>
 <translation id="5177526793333269655">थंबनेल दृश्य</translation>
 <translation id="5177549709747445269">आप मोबाइल डेटा का उपयोग कर रहे हैं</translation>
@@ -2741,7 +2701,6 @@
 <translation id="529175790091471945">यह डिवाइस फ़ॉर्मेट करें</translation>
 <translation id="5293170712604732402">सेटिंग को उनके मूल डिफ़ॉल्ट पर बहाल करें</translation>
 <translation id="5298219193514155779">थीम निर्माता</translation>
-<translation id="5298363578196989456">"<ph name="IMPORT_NAME" />" एक्‍सटेंशन को आयात करने में असमर्थ, क्‍योंकि वह एक साझा मॉड्यूल नहीं है.</translation>
 <translation id="5299109548848736476">नज़र न रखें</translation>
 <translation id="5299682071747318445">सभी डेटा आपके समन्वयन पासफ़्रेज़ के साथ एन्क्रिप्ट किया जाएगा</translation>
 <translation id="5300589172476337783">दिखाएं</translation>
@@ -2769,7 +2728,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" युग्मित करना चाहता है</translation>
 <translation id="5332624210073556029">समय क्षेत्र:</translation>
 <translation id="5334142896108694079">स्क्रिप्ट संचय</translation>
-<translation id="533433379391851622">अपेक्षित वर्शन "<ph name="EXPECTED_VERSION" />" है, लेकिन वर्शन "<ph name="NEW_ID" />" था.</translation>
 <translation id="5334844597069022743">स्रोत देखें</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> का <ph name="BEGIN_LINK" />Google डिस्क<ph name="END_LINK" /> में बैक अप लिया जा रहा है</translation>
 <translation id="5337771866151525739">किसी तृतीय पक्ष द्वारा इंस्टॉल किया गया.</translation>
@@ -2807,7 +2765,6 @@
 <translation id="5390100381392048184">साइटों को आवाज़ चलाने दें</translation>
 <translation id="5390284375844109566">अनुक्रमित डेटाबेस</translation>
 <translation id="5390743329570580756">इसके लिए भेजें</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> पर <ph name="PEPPER_PLUGIN_NAME" /> आपके कंप्यूटर की पहुंच चाहता है.</translation>
 <translation id="5397794290049113714">आप</translation>
 <translation id="5398572795982417028">सीमा से बाहर के पेज का संदर्भ, सीमा <ph name="MAXIMUM_PAGE" /> की है</translation>
 <translation id="5398772614898833570">विज्ञापन ब्लॉक हैं</translation>
@@ -2869,7 +2826,6 @@
 <translation id="5485754497697573575">सभी टैब पुनर्स्थापित करें</translation>
 <translation id="5486261815000869482">पासवर्ड की दुबारा पूछें</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> आपकी स्क्रीन <ph name="TAB_NAME" /> के साथ साझा कर रहा है.</translation>
-<translation id="5486326529110362464">निजी कुंजी के लिए इनपुट मान मौजूद होना चाहिए.</translation>
 <translation id="5486561344817861625">ब्राउज़र पुनर्प्रारंभ को सिम्युलेट करें</translation>
 <translation id="5487521232677179737">डेटा साफ़ करें</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' कॉपी किया गया</translation>
@@ -2952,7 +2908,6 @@
 <translation id="5600706100022181951">अपडेट को डाउनलोड करने में <ph name="UPDATE_SIZE_MB" /> MB मोबाइल डेटा का उपयोग होगा. क्या आप जारी रखना चाहते हैं?</translation>
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5605623530403479164">अन्य खोज इंजन</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> पर <ph name="PEPPER_PLUGIN_NAME" /> आपका डिवाइस एक्सेस करना चाहता है.</translation>
 <translation id="5608580678041221894">काटे जाने वाले क्षेत्र को एडजस्ट करने या उसकी जगह बदलने के लिए इन कुंजियों पर टैप करें</translation>
 <translation id="5609231933459083978">ऐप्लिकेशन अमान्य प्रतीत होता है.</translation>
 <translation id="5610038042047936818">कैमरा मोड में स्विच करें</translation>
@@ -3195,7 +3150,6 @@
 <translation id="5990386583461751448">अनुवाद किया गया</translation>
 <translation id="5991049340509704927">आवर्धित करें</translation>
 <translation id="5993332328670040093">अब आपके डेटा उपयोग का मापन नहीं किया जाएगा.</translation>
-<translation id="6003177993629630467">हो सकता है कि <ph name="PRODUCT_NAME" /> स्वयं को अपडेट रखने में समर्थ न हो.</translation>
 <translation id="600424552813877586">अमान्य ऐप्स .</translation>
 <translation id="6005695835120147974">मीडिया राउटर</translation>
 <translation id="6006484371116297560">क्लासिक</translation>
@@ -3220,6 +3174,7 @@
 <translation id="604001903249547235">क्‍लाउड बैकअप</translation>
 <translation id="6040143037577758943">बंद करें</translation>
 <translation id="6040852767465482106">अनाम पहचान</translation>
+<translation id="6041155700700864984">पूर्णस्‍क्रीन से बाहर निकलें</translation>
 <translation id="604124094241169006">स्वचालित</translation>
 <translation id="6042169520002885235">किसी प्रिंटर का निर्माता और मॉडल चुनें</translation>
 <translation id="6042308850641462728">अधिक</translation>
@@ -3236,7 +3191,6 @@
 <translation id="6056710589053485679">सामान्य पुन: लोड</translation>
 <translation id="6059652578941944813">प्रमाणपत्र पदानुक्रम</translation>
 <translation id="6059925163896151826">USB डिवाइस</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> बंद हो गया है.</translation>
 <translation id="6064217302520318294">स्क्रीन लॉक</translation>
 <translation id="6065289257230303064">प्रमाणपत्र विषय निर्देशिका विशेषताएं</translation>
 <translation id="6068338049763724728">दूरस्थ नामांकन सक्षम करें</translation>
@@ -3345,7 +3299,6 @@
 <translation id="6237816943013845465">आपको अपना स्क्रीन रिज़ॉल्‍यूशन समायोजित करने देती है</translation>
 <translation id="6238923052227198598">सबसे नया नोट लॉक स्क्रीन पर रखें</translation>
 <translation id="6239558157302047471">&amp;फ़्रेम पुन: लोड करें</translation>
-<translation id="624022915548992686">पेज से बाहर निकलें</translation>
 <translation id="6241530762627360640">अपने सिस्टम के साथ युग्मित ब्लूटूथ डिवाइस से संबंधित जानकारी एक्सेस करें और आस-पास के ब्लूटूथ डिवाइस की खोज करें.</translation>
 <translation id="6243774244933267674">सर्वर अनुपलब्‍ध है</translation>
 <translation id="6246413617632217567">निगरानी में रखे गए उपयोगकर्ता को आयात नहीं किया जा सका. कृपया अपने हार्ड ड्राइव का स्थान और अनुमतियां जाँचें तथा पुनः प्रयास करें.</translation>
@@ -3394,13 +3347,11 @@
 <translation id="6312403991423642364">अज्ञात नेटवर्क गड़बड़ी</translation>
 <translation id="6313641880021325787">VR से बाहर निकलें</translation>
 <translation id="6314819609899340042">आपने इस <ph name="IDS_SHORT_PRODUCT_NAME" /> डिवाइस पर डीबग करने की सुविधाओं को सफलतापूर्वक सक्षम कर लिया है.</translation>
-<translation id="6315343732431721770">आपके स्टार्टअप पेज <ph name="URL" /> को शामिल करने के लिए बदल दिए गए थे. आपके स्टार्टअप पेज में बदलाव करने वाले एक्सटेंशन को अक्षम करने के लिए, बहाल करें पर क्लिक करें.</translation>
 <translation id="6315493146179903667">सभी को सामने लाएं</translation>
 <translation id="6316806695097060329">यह <ph name="SHORT_PRODUCT_NAME" /> डिवाइस आपको वेब का सर्वश्रेष्ठ अनुभव प्रदान करने के लिए बनाया गया था.</translation>
 <translation id="6317318380444133405">अब काम नहीं करता है.</translation>
 <translation id="6317369057005134371">ऐप्लिकेशन विंडो की प्रतीक्षा की जा रही है...</translation>
 <translation id="6318407754858604988">डाउनलोड शुरू हो गया</translation>
-<translation id="6322279351188361895">निजी कुंजी को पढ़ने में विफल.</translation>
 <translation id="6325191661371220117">स्वत: लॉन्च अक्षम करें</translation>
 <translation id="6326175484149238433">Chrome से नि‍कालें</translation>
 <translation id="6326855256003666642">कीपअलाइव की गणना</translation>
@@ -3409,7 +3360,6 @@
 <translation id="6333049849394141510">जिसे समन्वयन करना है, उसे चुनें</translation>
 <translation id="6333064448949140209">डीबग करने के लिए फ़ाइल Google को भेजी जाएगी</translation>
 <translation id="6333834492048057036">खोज के लिए पता बार पर फ़ोकस करें</translation>
-<translation id="6336907568130557310">निर्यात की गई फ़ाइल को देख सकने वाले किसी भी व्यक्ति को आपके पासवर्ड दिखाई देंगे. फ़ाइल किसी भी व्यक्ति से शेयर न करें और आयात करने के बाद इसे मिटा दें.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> के लिए एक नया प्रोफ़ाइल बनाएं</translation>
 <translation id="6340017061976355871">सर्वर से नहीं जुड़ सका. कृपया अपना नेटवर्क कनेक्शन जाँचें और दोबारा कोशिश करें. अगर समस्या बनी रहती है, तो अपना Chromebook फिर से चालू करें.</translation>
 <translation id="6340071272923955280">इंटरनेट प्रिंटिंग प्रोटोकॉल (IPPS)</translation>
@@ -3438,7 +3388,6 @@
 <translation id="6385543213911723544">साइटें कुकी डेटा को सहेज और पढ़ सकती हैं</translation>
 <translation id="6388771388956873507">अपने डिवाइस पर फ़िंगरप्रिंट सेंसर ढूंढें और उस पर अपनी अंगुली से स्पर्श करें</translation>
 <translation id="6390799748543157332">इस विंडो में आपके द्वारा देखे जाने वाले पेज ब्राउज़र इतिहास में दिखाई नहीं देंगे और वे आपके द्वारा खोली गईं सभी अतिथि विंडो बंद करने के बाद कंप्यूटर पर कुकी जैसे अन्य चिह्न नहीं छोड़ेंगे. हालांकि, आपके द्वारा डाउनलोड की जाने वाली सभी फ़ाइलें संरक्षित कर ली जाएंगी.</translation>
-<translation id="6391538222494443604">इनपुट निर्देशिका मौजूद होनी चाहिए.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम की जानकारी<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> भेजें</translation>
 <translation id="6397363302884558537">बोलना रोकें</translation>
 <translation id="6397592254427394018">सभी बुकमार्क &amp;गुप्त विंडो में खोलें</translation>
@@ -3496,7 +3445,6 @@
 <translation id="6458308652667395253">JavaScript अवरोधन प्रबंधित करें...</translation>
 <translation id="6459488832681039634">ढूंढने के लिए चयन का उपयोग करें</translation>
 <translation id="6460601847208524483">अगला ढूंढें</translation>
-<translation id="6462080265650314920">ऐप्स  को सामग्री-प्रकार "<ph name="CONTENT_TYPE" />" के साथ प्रदान किया जाना चाहिए.</translation>
 <translation id="6462082050341971451">क्या आप अब भी वहां हैं?</translation>
 <translation id="6463795194797719782">&amp;संपादित करें</translation>
 <translation id="6466988389784393586">सभी बुकमार्क &amp;खोलें</translation>
@@ -3626,7 +3574,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">क्या आप चाहते हैं कि Google इस पेज का <ph name="SOURCE_LANGUAGE" /> से <ph name="TARGET_LANGUAGE" /> में अनुवाद करे?</translation>
 <translation id="6675665718701918026">सूचक डिवाइस कनेक्ट किया गया</translation>
-<translation id="6677037229676347494">अपेक्षित आईडी "<ph name="EXPECTED_ID" />" है, लेकिन आईडी "<ph name="NEW_ID" />" थी.</translation>
 <translation id="6678717876183468697">क्वेरी URL</translation>
 <translation id="6680028776254050810">उपयोगकर्ताओं को स्विच करें</translation>
 <translation id="6680442031740878064">उपलब्ध: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3766,8 +3713,6 @@
 <translation id="6903534926908201625">आप किसी भी समय <ph name="BEGIN_LINK" />सेटिंग<ph name="END_LINK" /> में जाकर यह कस्टमाइज़ कर सकते हैं कि Google कौन सी सामग्री इकट्ठा करेगा.</translation>
 <translation id="6904344821472985372">फ़ाइल एक्सेस निरस्त करें</translation>
 <translation id="6904655473976120856">बाहर निकलने के लिए ऐप्लिकेशन बटन दबाएं</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> आपकी स्क्रीन साझा करना चाहता है.</translation>
-<translation id="6909461304779452601">इस वेबसाइट से ऐप्स , एक्सटेंशन, और उपयोगकर्ता स्क्रिप्ट नहीं जोड़े जा सकते हैं.</translation>
 <translation id="6910211073230771657">हटाया गया</translation>
 <translation id="691024665142758461">एकाधिक फ़ाइलें डाउनलोड करें</translation>
 <translation id="6911324888870229398">नेटवर्क कनेक्शन टूट गया था. कृपया अपना नेटवर्क कनेक्शन जाँचें या कोई दूसरा वाई-फ़ाई नेटवर्क आज़माकर देखें.</translation>
@@ -4104,7 +4049,6 @@
 <translation id="747114903913869239">गड़बड़ी: एक्सटेंशन डिकोड करने में असमर्थ</translation>
 <translation id="7473891865547856676">जी रहने दें</translation>
 <translation id="747459581954555080">सभी को पुनर्स्थापित करें</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> में कोई गड़बड़ी आई है.</translation>
 <translation id="7475671414023905704">Netscape खोए पासवर्ड का URL</translation>
 <translation id="7476454130948140105">अपडेट करने के लिए बैटरी बहुत कम है (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">यदि‍ आप अपना पासफ्रेज़ भूल गए हैं, तो रूकें और <ph name="BEGIN_LINK" />Google डैशबोर्ड<ph name="END_LINK" /> के माध्‍यम से समन्‍वयन रीसेट करें.</translation>
@@ -4141,7 +4085,6 @@
 <translation id="7507930499305566459">स्थिति प्रतिसादी प्रमाणपत्र</translation>
 <translation id="7508545000531937079">स्लाइडशो</translation>
 <translation id="7513029293694390567">संग्रहित क्रेडेंशियल के ज़रिए वेबसाइटों में अपने आप प्रवेश करें. अक्षम होने पर, आपसे किसी वेबसाइट में प्रवेश करने से पहले हर बार पुष्टि करने के लिए कहा जाएगा.</translation>
-<translation id="7515670329462166359">सुरक्षित सामग्री चलाने के लिए <ph name="URL" /> आपके डिवाइस की अद्वितीय रूप से पहचान करना चाहता है.</translation>
 <translation id="7517569744831774757">सेटिंग को उनके मूल डिफ़ॉल्ट पर पुनर्स्थापित करें</translation>
 <translation id="7517786267097410259">पासवर्ड बनाएं -</translation>
 <translation id="7518150891539970662">WebRTC लॉग (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4171,7 +4114,6 @@
     फिर से एक निगरानी में रखा गया उपयोगकर्ता बनाकर देख सकते हैं.</translation>
 <translation id="756445078718366910">ब्राउज़र विंडो खोलें</translation>
 <translation id="7564847347806291057">प्रक्रिया समाप्त करें</translation>
-<translation id="7565291891798266313">आपका खोज इंजन <ph name="URL" /> में बदल दिया गया था. आपका खोज इंजन बदलने वाले एक्सटेंशन को अक्षम करने के लिए, बहाल करें पर क्लिक करें.</translation>
 <translation id="7566118625369982896">Play ऐप्लिकेशन के लिंक संभालें</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">साफ़ किया गया Chrome डेटा</translation>
@@ -4180,7 +4122,6 @@
 <translation id="7573172247376861652">बैटरी चार्ज</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">सेट में प्रिंट करें</translation>
-<translation id="7577815336900970562">स्थान तय करने के लिए वाई-फ़ाई या सेल्युलर नेटवर्क का इस्तेमाल करें</translation>
 <translation id="7579149537961810247">साइटें म्यूट करें</translation>
 <translation id="7580671184200851182">सभी स्पीकर से समान ऑडियो चलाएं (मोनो ऑडियो)</translation>
 <translation id="7581462281756524039">क्‍लीनअप टूल</translation>
@@ -4287,6 +4228,7 @@
 <translation id="7773726648746946405">सत्र संग्ररण</translation>
 <translation id="7781335840981796660">सभी उपयोगकर्ता खाते और स्थानीय डेटा को निकाल दिया जाएगा.</translation>
 <translation id="7782102568078991263">Google की ओर से कोई और सुझाव नहीं</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> लोड नहीं कर सके</translation>
 <translation id="7784067724422331729">आपके कंप्यूटर की सुरक्षा सेटिंग ने इस फ़ाइल को अवरोधित किया है.</translation>
 <translation id="7786207843293321886">अतिथि सत्र से बाहर निकलें</translation>
 <translation id="7786889348652477777">&amp;ऐप पुन: लोड करें</translation>
@@ -4449,7 +4391,6 @@
 <translation id="8001504501378762252">शायद किसी साइट ने आपका पासवर्ड चुरा लिया है</translation>
 <translation id="8004582292198964060">ब्राउज़र</translation>
 <translation id="8008356846765065031">इंटरनेट डिस्‍कनेक्‍ट हो गया है. कृपया अपना इंटरनेट कनेक्‍शन जाँचें.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> लोड नहीं कर सके.</translation>
 <translation id="8008818777654712271">खतरनाक ऐप्लिकेशन और साइटों का पता लगाने में सहायता करने के लिए Google को अपने आप कुछ सिस्टम जानकारी और पेज सामग्री भेजें</translation>
 <translation id="8012382203418782830">इस पेज का अनुवाद किया गया है.</translation>
 <translation id="8014154204619229810">अपडेटर वर्तमान में चल रहा है. फिर से देखने के लिए एक मिनट में रीफ्रेश करें.</translation>
@@ -4566,7 +4507,6 @@
 <translation id="8191230140820435481">अपने ऐप्स , एक्सटेंशन, और थीम प्रबंधित करें</translation>
 <translation id="8191453843330043793">V8 प्राॅक्‍सी रिज़ॉल्‍वर</translation>
 <translation id="8195027750202970175">डिस्क पर आकार</translation>
-<translation id="8195739004487400241">आपका होमपेज <ph name="URL" /> में बदल दिया गया था. आपका होमपेज बदलने वाले एक्सटेंशन को अक्षम करने के लिए, बहाल करें पर क्लिक करें.</translation>
 <translation id="8199300056570174101">नेटवर्क (सेवा) और डिवाइस प्रॉपर्टी</translation>
 <translation id="8200772114523450471">फिर से शुरू करें</translation>
 <translation id="8202160505685531999">अपनी <ph name="DEVICE_TYPE" /> प्रोफ़ाइल अपडेट करने के लिए कृपया अपना पासवर्ड पुनः डालें.</translation>
@@ -4610,7 +4550,6 @@
 <translation id="8261378640211443080">यह एक्सटेंशन <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> में सूचीबद्ध नहीं है और यह आपकी जानकारी के बिना जोड़ा गया हो सकता है.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> के लिए खाता जोड़ें</translation>
 <translation id="8261506727792406068">हटाएं</translation>
-<translation id="826246685091802258">इस बिल्ड में <ph name="BAD_FLAG" /> लागू नहीं किया गया है.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ने आपका माउस कर्सर अक्षम कर दिया है.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ने पूर्ण स्क्रीन ट्रिगर की है.</translation>
 <translation id="8270242299912238708">PDF दस्तावेज़</translation>
@@ -4711,6 +4650,7 @@
 <translation id="8454288007744638700">या, कोई नया नेटवर्क चुनें:</translation>
 <translation id="845627346958584683">समाप्ति समय</translation>
 <translation id="8456681095658380701">अमान्‍य नाम</translation>
+<translation id="8457451314607652708">बुकमार्क आयात करें</translation>
 <translation id="8460336040822756677">यदि आप <ph name="DEVICE_TYPE" /> के लिए Smart Lock बंद कर देते हैं, तो आप अपने फ़ोन का उपयोग करके अपने Chrome डिवाइस अनलॉक नहीं कर सकेंगे. आपको अपना पासवर्ड लिखना होगा.</translation>
 <translation id="8461329675984532579">होम प्रदाता का नाम</translation>
 <translation id="84613761564611563">नेटवर्क कॉन्फ़िगर UI का अनुरोध किया गया, कृृपया प्रतीक्षा करें...</translation>
@@ -4742,7 +4682,6 @@
 <translation id="850875081535031620">नुकसान पहुंचाने वाला कोई सॉफ़्टवेयर नहीं मिला</translation>
 <translation id="8512476990829870887">प्रक्रिया समाप्त करें</translation>
 <translation id="851263357009351303"><ph name="HOST" /> को हमेशा चित्र दिखाने की अनुमति दें</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" इस ब्राउज़र को डीबग कर रहा है.</translation>
 <translation id="8521475323816527629">अपने ऐप्लिकेशन तक तेज़ी से पहुंचें</translation>
 <translation id="8523493869875972733">बदलावों को बनाए रखें</translation>
 <translation id="8523849605371521713">पॉलिसी द्वारा जोड़ा गया</translation>
@@ -4798,7 +4737,6 @@
 <translation id="8620765578342452535">नेटवर्क कनेक्‍शन कॉन्‍फ़िगर करें</translation>
 <translation id="8620790565535071193">स्कैन नहीं किया जा सका</translation>
 <translation id="8622877356447980900">क्या आप इस पेज का अनुवाद करना चाहते हैं?</translation>
-<translation id="8623004009673949077">'kiosk_only' मेनिफ़ेस्‍ट विशेषता वाला ऐप Chrome OS कियोस्‍क मोड में इंस्‍टॉल किया जाना चाहिए.</translation>
 <translation id="8624205858755890468">आपको संबंधित जानकारी, ऐप और कार्रवाइयां दिखाने के लिए Assistant को चालू करता है.</translation>
 <translation id="862542460444371744">&amp;एक्‍सटेंशन</translation>
 <translation id="8627151598708688654">स्रोत चुनें</translation>
@@ -4947,7 +4885,6 @@
 <translation id="882204272221080310">अतिरिक्त सुरक्षा के लिए फ़र्मवेयर अपडेट करें.</translation>
 <translation id="8823514049557262177">लिंक ले&amp;ख को कॉपी करें</translation>
 <translation id="8824701697284169214">पृ&amp;ष्ठ जोड़ें...</translation>
-<translation id="8827850355924932817">जगह तय करने के लिए वाई-फ़ाई नेटवर्क का इस्तेमाल करें</translation>
 <translation id="8828933418460119530">DNS नाम</translation>
 <translation id="8830796635868321089">वर्तमान प्रॉक्सी सेटिंग के उपयोग से अपडेट जाँच विफल रही. कृपया अपनी <ph name="PROXY_SETTINGS_LINK_START" />प्रॉक्सी सेटिंग<ph name="PROXY_SETTINGS_LINK_END" /> एडजस्ट करें.</translation>
 <translation id="8834039744648160717">नेटवर्क कॉन्फ़िगरेशन को <ph name="USER_EMAIL" /> नियंत्रित करता है.</translation>
@@ -4979,9 +4916,7 @@
 <translation id="8879284080359814990">टैब के रूप में &amp;दिखाएं</translation>
 <translation id="8884961208881553398">नई सेवाएं जोड़ें</translation>
 <translation id="8885197664446363138">Smart Lock अनुपलब्‍ध है</translation>
-<translation id="8885905466771744233">निर्दिष्ट किए गए एक्सटेंशन के लिए कोई निजी कुंजी पहले से मौजूद है. उस कुंजी का फिर से उपयोग करें या पहले इसे हटाएं.</translation>
 <translation id="8888432776533519951">रंग:</translation>
-<translation id="8892992092192084762">इंस्टॉल की गई थीम "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">क्षमा करें, डिवाइस <ph name="DEVICE_LABEL" /> की पहचान नहीं हो सकी.</translation>
 <translation id="8895454554629927345">बुकमार्क सूची</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4996,7 +4931,6 @@
 <translation id="8908902564709148335">चेतावनी: आपने इस कंप्‍यूटर पर --स्क्रिप्‍ट-आवश्‍यक-कार्यवाही फ़्लैग सक्षम किया है, जो इस एक्‍सटेंशन की क्षमताओं को सीमित करता है. हालांकि, हो सकता है कि अन्‍य डिवाइस इस फ़्लैग का समर्थन न करें या यह सक्षम किया गया हो. इन डिवाइस पर, यह एक्‍सटेंशन यह भी कर सकता है:</translation>
 <translation id="8910146161325739742">अपनी स्क्रीन साझा करें</translation>
 <translation id="8910222113987937043">आपके बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग में किए गए बदलाव अब आपके Google खाते से सिंक नहीं किए जाएंगे. हालांकि, आपका मौजूदा डेटा आपके Google खाते में संग्रहित रहेगा और <ph name="BEGIN_LINK" />Google डैशबोर्ड<ph name="END_LINK" /> पर प्रबंधित किया जा सकेगा.</translation>
-<translation id="8911079125461595075">Google ने <ph name="EXTENSION_NAME" /> को दुर्भावनापूर्ण के रूप में फ़्लैग किया है और इंस्टॉलेशन रोक दिया गया है.</translation>
 <translation id="8912793549644936705">खींचें</translation>
 <translation id="8915370057835397490">सुझाव लोड हो रहे हैं</translation>
 <translation id="8916476537757519021">गुप्त सबफ़्रेम: <ph name="SUBFRAME_SITE" /></translation>
@@ -5102,7 +5036,6 @@
 <translation id="9074739597929991885">ब्लूटूथ</translation>
 <translation id="9074836595010225693">USB माउस कनेक्ट किया गया</translation>
 <translation id="9076523132036239772">क्षमा करें, आपके ईमेल या पासवर्ड का सत्‍यापन नहीं किया जा सका. पहले किसी नेटवर्क से कनेक्‍ट करने का प्रयास करें.</translation>
-<translation id="907841381057066561">पैकेजिंग के दौरान अस्थायी ज़िप फ़ाइल बनाने में विफल.</translation>
 <translation id="9084064520949870008">विंडो के रूप में खोलें</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> एंटरप्राइज़ नीति द्वारा अवरोधित है</translation>
 <translation id="9088917181875854783">कृपया दुबारा पूछें कि यह पासकुंजी "<ph name="DEVICE_NAME" />" पर दिखाई गई है:</translation>
@@ -5193,11 +5126,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">पासफ़्रेज़ दर्ज करें</translation>
 <translation id="939736085109172342">नया फ़ोल्डर</translation>
-<translation id="941543339607623937">अमान्य निजी कुंजी.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> एक Chrome टैब और ऑडियो साझा कर रहा है.</translation>
 <translation id="942954117721265519">इस निर्देशिका में कोई चित्र नहीं है.</translation>
 <translation id="945522503751344254">सुझाव भेजें</translation>
-<translation id="951981865514037445"><ph name="URL" /> आपके डिवाइस के स्थान का उपयोग करना चाहता है.</translation>
 <translation id="952992212772159698">सक्रिय नहीं किया गया</translation>
 <translation id="9580706199804957">Google सेवाओं से कनेक्ट नहीं हो सका</translation>
 <translation id="958515377357646513">आगे जाने के लिए स्पर्श करें.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 1c9f1351..904342e 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Samo za šifriranje</translation>
 <translation id="1039337018183941703">Neispravna ili oštećena datoteka</translation>
 <translation id="1042174272890264476">Vaše računalo ima ugrađenu RLZ biblioteku preglednika <ph name="SHORT_PRODUCT_NAME" />. RLZ dodjeljuje nejedinstvenu oznaku koja ne može poslužiti za osobnu identifikaciju za mjerenje pretraživanja i upotrebu proizvoda <ph name="SHORT_PRODUCT_NAME" /> potaknutu određenom promotivnom kampanjom. Te se oznake ponekad prikazuju u upitima Google pretraživanja u pregledniku <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> želi trajno pohraniti veliku količinu podataka na vaš uređaj.</translation>
 <translation id="1046059554679513793">Ups, to je ime već u upotrebi!</translation>
 <translation id="1047431265488717055">Kopiraj te&amp;kst veze</translation>
 <translation id="1047726139967079566">Označi ovu stranicu...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Želite li vratiti zadanu tražilicu?</translation>
 <translation id="1177863135347784049">Prilagođeno</translation>
 <translation id="1178581264944972037">Pauziraj</translation>
-<translation id="1179803038870941185"><ph name="URL" /> želi dobiti potpuni nadzor nad vašim MIDI uređajima.</translation>
 <translation id="1181037720776840403">Ukloni</translation>
 <translation id="1183237619868651138">Nije moguća instalacija datoteke <ph name="EXTERNAL_CRX_FILE" /> u lokalnu predmemoriju.</translation>
 <translation id="1185924365081634987">Možete pokušati <ph name="GUEST_SIGNIN_LINK_START" />pregledavati kao gost<ph name="GUEST_SIGNIN_LINK_END" /> da biste riješili tu mrežnu pogrešku.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Pristup datoteci spremljenoj na računalu}one{Pristup do # datoteke spremljene na računalu}few{Pristup do # datoteke spremljene na računalu}other{Pristup do # datoteka spremljenih na računalu}}</translation>
 <translation id="1195076408729068893">Da biste pokrenuli Smart Lock, unesite zaporku. Sljedeći ćete put <ph name="DEVICE_TYPE" /> moći otključati telefonom.</translation>
 <translation id="1195447618553298278">Nepoznata pogreška.</translation>
-<translation id="1196338895211115272">Izvoz osobnog ključa nije uspio.</translation>
 <translation id="119738088725604856">Prozor snimke zaslona</translation>
 <translation id="1197979282329025000">Došlo je do pogreške tijekom dohvata mogućosti pisača za pisač <ph name="PRINTER_NAME" />. Ovaj se pisač ne može registrirati s nazivom <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Počnimo</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administrator preporučuje određenu vrijednost za tu postavku.</translation>
 <translation id="1225177025209879837">Obrada zahtjeva...</translation>
 <translation id="1225211345201532184">Stavka police 5</translation>
-<translation id="1225404570112441414">Dodajte tu web-lokaciju na svoju policu da biste je koristili kad to želite.</translation>
 <translation id="1227507814927581609">Autentifikacija nije uspjela prilikom povezivanja s uređajem "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">Izbornik sustava</translation>
 <translation id="1232569758102978740">Neimenovano</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML datoteka oznaka</translation>
 <translation id="1303671224831497365">Nije pronađen nijedan Bluetooth uređaj</translation>
 <translation id="1306606229401759371">Promijeni postavke</translation>
-<translation id="1307398858972670978">Pristupajte zaporkama s bilo kojeg uređaja na stranici <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ups! Sustav nije uspio pohraniti token za dugotrajni pristup API-ju za ovaj uređaj.</translation>
 <translation id="1313405956111467313">Automatska konfiguracija proxyja</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Traži</translation>
 <translation id="1386387014181100145">Pozdrav.</translation>
 <translation id="138784436342154190">Želite li vratiti zadanu polaznu stranicu?</translation>
-<translation id="1389297115360905376">Može se dodati jedino iz usluge <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Otvori kao uobičajenu karticu</translation>
-<translation id="1391807639023934267">Stranica se učitala brže.</translation>
 <translation id="1393283411312835250">Sunce i oblaci</translation>
 <translation id="1395262318152388157">Klizač za traženje</translation>
 <translation id="1395730723686586365">Alat za ažuriranje pokrenut je</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Ažurirate na nestabilnu verziju usluge <ph name="PRODUCT_NAME" /> koja sadrži značajke na kojima se još radi. Dolazit će do rušenja i neočekivanih programskih pogrešaka. Budite oprezni.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID proširenja "<ph name="EXTENSION_ID" />") nije dopušten u ovoj vrsti sesije.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Šteta! Nije uspjelo generiranje nasumičnog RSA osobnog ključa.</translation>
 <translation id="1420834118113404499">Licence medijskog sadržaja</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> da biste omogućili uparivanje</translation>
 <translation id="1426410128494586442">Da</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opiraj adresu audiozapisa</translation>
 <translation id="1465827627707997754">Komad pizze</translation>
 <translation id="1467432559032391204">Ulijevo</translation>
-<translation id="1467999917853307373"><ph name="URL" /> želi trajno pohraniti podatke na vaš uređaj.</translation>
-<translation id="1470719357688513792">Nove postavke kolačića postat će aktivne nakon ponovnog učitavanja stranice.</translation>
 <translation id="1470811252759861213">Da biste imali svoja proširenja na svim svojim računalima, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Datoteka "<ph name="FILENAME" />" nije prenesena. Nema dovoljno slobodnog prostora na Google disku.</translation>
 <translation id="1475502736924165259">U arhivi imate certifikate koji ne odgovaraju nijednoj od ostalih kategorija</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Veliki pokazivač miša</translation>
 <translation id="1543284117603151572">Uvezeno iz Edgea</translation>
 <translation id="1545177026077493356">Automatski način kioska</translation>
+<translation id="1545775234664667895">Instalirana tema "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL s %s na mjestu upita</translation>
 <translation id="1546280085599573572">Ovo proširenje promijenilo je stranicu koja se prikazuje kada se klikne gumb Početna.</translation>
 <translation id="1547572086206517271">Morate osvježiti stranicu</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />pregledati<ph name="END_BOLD" /> web-lokacije koje je nadzirani korisnik posjetio i
     <ph name="BEGIN_BOLD" />upravljati<ph name="END_BOLD" /> drugim postavkama.</translation>
 <translation id="1648943974594387137">Podaci za prijavu zastarjeli su</translation>
-<translation id="1649641629389702691">&lt;Broj linija koje nisu prikazane: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Prikaži opcije unosa</translation>
 <translation id="1650709179466243265">Dodaj www. i .com i otvori adresu</translation>
 <translation id="1651008383952180276">Morate dvaput unijeti istu šifru</translation>
-<translation id="1652972346408808053">Zaporka je spremljena. Pristupajte zaporkama s bilo kojeg uređaja na stranici <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Dodajte pisač na Google Cloud Print kako biste mogli ispisivati s bilo kojeg mjesta.}one{Dodajte # pisač na Google Cloud Print kako biste mogli ispisivati s bilo kojeg mjesta.}few{Dodajte # pisača na Google Cloud Print kako biste mogli ispisivati s bilo kojeg mjesta.}other{Dodajte # pisača na Google Cloud Print kako biste mogli ispisivati s bilo kojeg mjesta.}}</translation>
 <translation id="1657406563541664238">Olakšajte nam poboljšanje preglednika <ph name="PRODUCT_NAME" /> automatskim slanjem statistike o upotrebi i izvješća o padu programa Googleu</translation>
 <translation id="1658424621194652532">Ova stranica pristupa vašem mikrofonu.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Nastavi blokirati kolačiće</translation>
 <translation id="204622017488417136">Uređaj će se vratiti na prethodno instaliranu verziju Chromea, a svi korisnički računi i lokalni podaci bit će uklonjeni. Tu radnju nije moguće poništiti.</translation>
 <translation id="2048182445208425546">pristupiti vašem mrežnom prometu</translation>
-<translation id="2049137146490122801">Pristup lokalnim datotekama na vašem računalu onemogućio je administrator.</translation>
 <translation id="204914487372604757">Stvori prečac</translation>
 <translation id="2050339315714019657">Portret</translation>
 <translation id="2053312383184521053">Podaci o stanju mirovanja</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Još nije učitano</translation>
 <translation id="2107494551712864447">Dodajte otisak prsta</translation>
-<translation id="2111843886872897694">Aplikacije moraju biti poslužene s hosta na koji utječu.</translation>
 <translation id="2112877397266219826">Uključite svoj dodirni upravljač kako biste me postavili</translation>
 <translation id="21133533946938348">Pričvrsti karticu</translation>
 <translation id="2113479184312716848">Open &amp;File... (Otvori datoteku...)</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Recite nam što se događa</translation>
 <translation id="2229161054156947610">Preostalo više od 1 sata</translation>
 <translation id="222931766245975952">Datoteka je skraćena</translation>
-<translation id="222949136907494149"><ph name="URL" /> želi upotrijebiti lokaciju vašeg računala.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Nije moguće izraditi mapu "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kliknite za prikaz današnjeg doodle logotipa</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Uvijek blokiraj pristup mikrofonu</translation>
 <translation id="2367972762794486313">Prikaz aplikacija</translation>
 <translation id="2371076942591664043">Otvori nakon &amp;dovršetka</translation>
-<translation id="237336063998926520">Upotreba vaše IP adrese radi određivanja lokacije</translation>
 <translation id="2377319039870049694">Prebaci na prikaz popisa</translation>
 <translation id="2377667304966270281">Pogreške tvrdog diska</translation>
 <translation id="2378075407703503998">Odabrane datoteke: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> želi kopirati datoteke s jedinice <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID ključa tijela za izdavanje certifikata</translation>
 <translation id="2462752602710430187">Dodano: <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Uvezi oznake</translation>
 <translation id="2464089476039395325">HTTP proxy</translation>
 <translation id="2468902267404883140">Povezivanje s telefonom nije moguće. Provjerite je li vaš Android telefon kompatibilan, uključen i pri ruci. &lt;a&gt;Saznajte više&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Onemogućena su nepodržana proširenja</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Deinstaliraj</translation>
 <translation id="2487067538648443797">Dodaj novu oznaku</translation>
 <translation id="248861575772995840">Telefon nije moguće pronaći. Provjerite je li na uređaju <ph name="DEVICE_TYPE" /> uključen Bluetooth. &lt;a&gt;Saznajte više&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Dodatak (<ph name="PLUGIN_NAME" />) ne reagira.</translation>
 <translation id="2489428929217601177">protekli dan</translation>
 <translation id="2489918096470125693">Dodavanje &amp;mape...</translation>
 <translation id="249113932447298600">Žao nam je, uređaj <ph name="DEVICE_LABEL" /> trenutačno nije podržan.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Čestitamo! Podatkovna usluga "<ph name="NAME" />" aktivirana je i spremna za pokret.</translation>
 <translation id="2566124945717127842">Pokrenite Powerwash da biste vratili uređaj <ph name="IDS_SHORT_PRODUCT_NAME" /> na tvorničke postavke.</translation>
 <translation id="2568774940984945469">Spremnik infotrake</translation>
-<translation id="2570000010887652771">Spremljeni podaci.</translation>
 <translation id="257088987046510401">Teme</translation>
 <translation id="2572032849266859634">Odobren je samo pristup za čitanje jedinice <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Odaberite sliku i ime</translation>
 <translation id="2575247648642144396">Ova će ikona biti vidljiva kada proširenje bude moglo djelovati na trenutačnoj stranici. Aktivirajte to proširenje tako što ćete kliknuti ikonu ili pritisnuti <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Telefon nije moguće pronaći. Provjerite je li <ph name="DEVICE_TYPE" /> povezan s Wi-Fi ili mobilnom mrežom. &lt;a&gt;Saznajte više&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Već postoji CRX datoteka s takvim nazivom.</translation>
 <translation id="257779572837908839">Postavi kao Chromebox za videokonferencije</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nije moguće ukloniti postavljeni volumen<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Ako izbrišete certifikat tijela za izdavanje certifikata, vaš preglednik više neće vjerovati nijednom certifikatu koji to tijelo izda.</translation>
 <translation id="2653659639078652383">Pošalji</translation>
 <translation id="265390580714150011">Vrijednost polja</translation>
-<translation id="2654286334048437383">Izvezi oznake</translation>
 <translation id="2655386581175833247">Korisnički certifikat:</translation>
 <translation id="2660779039299703961">Događaj</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Dodavanje galerije medija po direktoriju</translation>
 <translation id="2908789530129661844">Smanjivanje zaslona</translation>
 <translation id="2910318910161511225">Povežite se s mrežom i pokušajte ponovo</translation>
-<translation id="2912905526406334195">Host <ph name="HOST" /> želi upotrijebiti vaš mikrofon.</translation>
 <translation id="2913331724188855103">Dopuštanje web-lokacijama da spremaju i čitaju podatke kolačića (preporučeno)</translation>
 <translation id="2916073183900451334">Pritiskom na Tab na web-stranici ističu se veze, isto kao i iz polja</translation>
 <translation id="2916745397441987255">Pretražite proširenja</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Slušanje...</translation>
 <translation id="3141917231319778873">Navedeni zahtjev nije podržan za uređaj: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">GOTOVO</translation>
-<translation id="3144135466825225871">Zamjena CRX datoteke nije uspjela. Provjerite je li datoteka u upotrebi.</translation>
 <translation id="3144647712221361880">Otvori vezu kao</translation>
 <translation id="3149510190863420837">Aplikacije sustava Chrome</translation>
 <translation id="3150927491400159470">Tvrdo ponovno učitavanje</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Uvijek pokreni na svim web-lokacijama</translation>
 <translation id="3312424061798279731">Omogućeni jezici</translation>
 <translation id="3312903956926554846">Instaliraj na računalo</translation>
-<translation id="3313473140726597081">Vaša je polazna stranica promijenjena u <ph name="URL" />. Da biste onemogućili proširenja koja mijenjaju polaznu stranicu, kliknite Vrati.</translation>
 <translation id="3313590242757056087">Da biste odredili koje web-lokacije nadzirani korisnik može gledati, možete
     konfigurirati ograničenja i postavke tako što ćete posjetiti <ph name="MANAGEMENT_URL" />.
     Ako ne promijenite zadane postavke, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informacije o aplikaciji</translation>
 <translation id="3335947283844343239">Ponovo otvori zatvorenu karticu</translation>
-<translation id="3337069537196930048">Dodatak <ph name="PLUGIN_NAME" /> blokiran je jer je zastario.</translation>
 <translation id="3340978935015468852">postavke</translation>
 <translation id="3341703758641437857">Dozvoli pristup URL-ovima datoteke</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" želi ukloniti to proširenje.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Oznaka je dodana</translation>
 <translation id="3389312115541230716">Desnom tipkom kliknite ikonu <ph name="SMALL_PRODUCT_LOGO" /> na programskoj traci</translation>
 <translation id="3391716558283801616">Kartica 7</translation>
-<translation id="3394150261239285340">Host <ph name="HOST" /> želi upotrijebiti vaš fotoaparat i mikrofon.</translation>
 <translation id="3396331542604645348">Odabrani pisač nije dostupan ili nije ispravno instaliran. Provjerite pisač ili pokušajte odabrati neki drugi.</translation>
 <translation id="3399432415385675819">Obavijesti će se onemogućiti</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome se automatski ažurira tako da uvijek imate najnoviju verziju</translation>
 <translation id="3551320343578183772">Zatvori karticu</translation>
 <translation id="3552780134252864554">Briše se pri izlazu</translation>
-<translation id="355298399003313926"><ph name="URL" /> želi odgovoriti na događaje pristupačnosti.</translation>
 <translation id="3555812735919707620">Ukloni proširenje</translation>
 <translation id="3556000484321257665">Vaša je tražilica promijenjena u <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Vrijednost unosa osobnog ključa mora biti valjana putanja.</translation>
 <translation id="3563432852173030730">Aplikacija kioska nije preuzeta.</translation>
 <translation id="3564334271939054422">Wi-Fi mreža koju upotrebljavate (<ph name="NETWORK_ID" />) može tražiti da otvorite njezinu stranicu za prijavu.</translation>
 <translation id="3564708465992574908">Razine zumiranja</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Ograničenja naziva certifikata</translation>
 <translation id="3596235046596950091">Omogući usluge u oblaku</translation>
 <translation id="3599863153486145794">Briše povijest na svim uređajima na kojima ste prijavljeni. Na vašem Google računu možda postoje drugi oblici povijesti pregledavanja na stranici <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Pristup lokalnim datotekama na vašem uređaju onemogućio je administrator.</translation>
 <translation id="3600792891314830896">Isključen je zvuk na web-lokacijama koje ga reproduciraju</translation>
 <translation id="3603177256297531067">Ovu stranicu nije moguće prevesti</translation>
 <translation id="3603533104205588786">Stranicu možete označiti klikom na zvjezdicu</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Snimke zaslona onemogućene su</translation>
 <translation id="3625870480639975468">Poništavanje zumiranja</translation>
 <translation id="3626281679859535460">Svjetlina</translation>
-<translation id="3627052133907344175">Minimalna verzija za "<ph name="IMPORT_NAME" />" koju proširenje zahtijeva jest "<ph name="IMPORT_VERSION" />", ali je instalirana samo verzija "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Preostalo je manje od 1 minute</translation>
 <translation id="3627588569887975815">Otvori vezu u anonimnom prozoru</translation>
 <translation id="3627671146180677314">Vrijeme za obnavljanje Netscape certifikata</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Postavke jezika</translation>
 <translation id="3668823961463113931">Rukovatelji</translation>
 <translation id="3670229581627177274">Uključite Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> želi trajno pohraniti veliku količinu podataka na vaše lokalno računalo.</translation>
 <translation id="3672681487849735243">Otkrivena je tvornička pogreška</translation>
 <translation id="367645871420407123">ostavite prazno ako želite postaviti korijensku zaporku na zadanu vrijednost testne slike</translation>
 <translation id="3678156199662914018">Proširenje: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Izvan mreže ste</translation>
 <translation id="3788401245189148511">Proširenje ili aplikacija mogli bi:</translation>
 <translation id="3789841737615482174">Instaliraj</translation>
-<translation id="3790146417033334899">Dodatak <ph name="PLUGIN_NAME" /> funkcionira samo na radnoj površini.</translation>
 <translation id="379082410132524484">Vaša je kartica istekla</translation>
 <translation id="3792890930871100565">Isključi pisače</translation>
 <translation id="379422718204375917">Upotrebljavajte Smart Lock za prijavu na račun</translation>
-<translation id="3794595850995182458">Izlazna stranica</translation>
 <translation id="3796648294839530037">Omiljene mreže:</translation>
 <translation id="3797900183766075808">&amp;Traži pojam "<ph name="SEARCH_TERMS" />" na tražilici <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Omogućuje uključivanje i isključivanje klikanja dodirom</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Omogući <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Unesena je nevažeća vrsta spremanja.</translation>
 <translation id="3983586614702900908">uređaji nepoznatog dobavljača</translation>
-<translation id="3984413272403535372">Došlo je do pogreške tijekom potpisivanja proširenja.</translation>
 <translation id="3987938432087324095">Žao mi je, ne razumijem.</translation>
 <translation id="3988996860813292272">Odaberite vremensku zonu</translation>
 <translation id="3989635538409502728">Odjava</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Instaliranje aplikacija i igara s Google Playa na vaš Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Saznajte više&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Prihvati za grupu</translation>
 <translation id="4090103403438682346">Omogući potvrđeni pristup</translation>
-<translation id="4090404313667273475">Za prikaz nekih elemenata na ovoj stranici potreban je dodatak <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(To je upravljano proširenje i ne može se ukloniti.)</translation>
 <translation id="4091434297613116013">listova papira</translation>
 <translation id="4093955363990068916">Lokalna datoteka:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> sada može sinkronizirati vaše zaporke.</translation>
 <translation id="4715553623069266137">vrlo kratka (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash za dodatnu sigurnost</translation>
-<translation id="471800408830181311">Izvoz osobnog ključa nije uspio.</translation>
 <translation id="4720113199587244118">Dodaj uređaje</translation>
 <translation id="4720185134442950733">Mobilna podatkovna mreža</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> dijeli vaš zaslon.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Jak</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> želi komunicirati s proširenjem "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Prihvati</translation>
-<translation id="4919810557098212913">Host <ph name="HOST" /> želi upotrijebiti vaš fotoaparat.</translation>
 <translation id="4920887663447894854">Sljedeće web-lokacije blokirane su u praćenju vaše lokacije na ovoj web-stranici:</translation>
 <translation id="492299503953721473">Ukloni Android aplikacije</translation>
 <translation id="4923279099980110923">Da, želim pomoći</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Proširenje sadrži zlonamjerni softver.</translation>
 <translation id="498294082491145744">Mijenja postavke koje upravljaju pristupom web-lokacija značajkama kao što su kolačići, JavaScript, priključci, geolokacija, mikrofon, fotoaparat itd.</translation>
 <translation id="4988526792673242964">Stranice</translation>
-<translation id="4988792151665380515">Izvoz javnog ključa nije uspio.</translation>
 <translation id="49896407730300355">Zakreni u smjeru suprotnom od &amp;kretanja kazaljke na satu</translation>
 <translation id="4989966318180235467">Provjeri &amp;pozadinsku stranicu</translation>
 <translation id="4990343175649730969">Preuzmite Chromeov alat za čišćenje</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Ne prikazuj to ponovo</translation>
 <translation id="5027550639139316293">Certifikat e-pošte</translation>
 <translation id="5027562294707732951">Dodaj proširenje</translation>
-<translation id="5028012205542821824">Instalacija nije omogućena.</translation>
 <translation id="5029568752722684782">Izbriši kopiju</translation>
 <translation id="5030338702439866405">Izdaje</translation>
 <translation id="5036662165765606524">Ne dozvoli nijednoj web-lokaciji automatsko preuzimanje više datoteka</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Došlo je do pogreške.</translation>
 <translation id="5094721898978802975">komunicirati sa suradničkim nativnim aplikacijama</translation>
 <translation id="5097002363526479830">Neuspješno povezivanje s mrežom "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nije moguće pronaći apsolutni put prema direktoriju za pakiranje.</translation>
 <translation id="5099354524039520280">gore</translation>
 <translation id="5100114659116077956">Kako biste mogli upotrebljavati najnovije značajke, Chromebox treba ažurirati.</translation>
 <translation id="5101042277149003567">Otvori sve oznake</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Pokaži u mapi</translation>
 <translation id="5171045022955879922">Pretražite ili upišite URL</translation>
 <translation id="5171343362375269016">Zamijenjena memorija</translation>
-<translation id="5175870427301879686"><ph name="URL" /> želi trajno pohraniti podatke na vaše lokalno računalo.</translation>
 <translation id="5177479852722101802">Nastavi blokirati pristup kameri i mikrofonu</translation>
 <translation id="5177526793333269655">Prikaz minijatura</translation>
 <translation id="5177549709747445269">Upotrebljavate mobilne podatke</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatiraj ovaj uređaj</translation>
 <translation id="5293170712604732402">Vraćanje postavki na njihove izvorne zadane vrijednosti</translation>
 <translation id="5298219193514155779">Temu je stvorio autor</translation>
-<translation id="5298363578196989456">Nije moguće uvesti proširenje "<ph name="IMPORT_NAME" />" jer nije dijeljeni modul.</translation>
 <translation id="5299109548848736476">Nemoj pratiti</translation>
 <translation id="5299682071747318445">Svi su podaci šifrirani vašom zaporkom za sinkronizaciju</translation>
 <translation id="5300589172476337783">Prikaži</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">Proširenje "<ph name="CHROME_EXTENSION_NAME" />" želi se upariti</translation>
 <translation id="5332624210073556029">Vremenska zona:</translation>
 <translation id="5334142896108694079">Predmemorija skripte</translation>
-<translation id="533433379391851622">Očekivana je verzija "<ph name="EXPECTED_VERSION" />", ali je verzija bila "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Pogledaj izvor</translation>
 <translation id="5335458522276292100">Sigurnosno kopiranje datoteka (ukupno) <ph name="FILE_COUNT" /> na <ph name="BEGIN_LINK" />Google disk<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instalirala treća strana.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Dopusti web-lokacijama reprodukciju zvuka</translation>
 <translation id="5390284375844109566">Indeksirana baza podataka</translation>
 <translation id="5390743329570580756">Prima</translation>
-<translation id="5396126354477659676">Dodatak <ph name="PEPPER_PLUGIN_NAME" /> na domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi pristupiti vašem računalu.</translation>
 <translation id="5397794290049113714">Vi</translation>
 <translation id="5398572795982417028">Referenca na stranicu izvan je granica, a granica je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Oglasi su blokirani</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Vrati sve kartice</translation>
 <translation id="5486261815000869482">Potvrdite zaporku</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> dijeli vaš zaslon s karticom <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Vrijednost unosa za osobni ključ mora postojati.</translation>
 <translation id="5486561344817861625">Simulacija ponovnog pokretanja preglednika</translation>
 <translation id="5487521232677179737">Izbriši podatke</translation>
 <translation id="5488093641312826914">Kopirano: "<ph name="COPIED_ITEM_NAME" />"</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Za preuzimanje ažuriranja iskoristit će se <ph name="UPDATE_SIZE_MB" /> MB mobilnih podataka. Želite li nastaviti?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Ostale tražilice</translation>
-<translation id="5606674617204776232">Dodatak <ph name="PEPPER_PLUGIN_NAME" /> na domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi pristupiti vašem uređaju.</translation>
 <translation id="5608580678041221894">Dodirnite sljedeće tipke da biste prilagodili ili pomaknuli područje za izrezivanje</translation>
 <translation id="5609231933459083978">Čini se da je ova aplikacija nevažeća.</translation>
 <translation id="5610038042047936818">Prijeđi na način fotoaparata</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Prevedeno</translation>
 <translation id="5991049340509704927">Uvećanje</translation>
 <translation id="5993332328670040093">Vaša upotreba podataka više se neće mjeriti.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> možda se neće moći sam ažurirati.</translation>
 <translation id="600424552813877586">Nevažeća aplikacija.</translation>
 <translation id="6005695835120147974">Usmjerivač medija</translation>
 <translation id="6006484371116297560">Klasična</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Sigurnosno kopiranje u oblaku</translation>
 <translation id="6040143037577758943">Zatvori</translation>
 <translation id="6040852767465482106">Anoniman identitet</translation>
+<translation id="6041155700700864984">Izađi iz punog zaslona</translation>
 <translation id="604124094241169006">Automatski</translation>
 <translation id="6042169520002885235">Odabir proizvođača i modela pisača</translation>
 <translation id="6042308850641462728">Više</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Normalno ponovno učitavanje</translation>
 <translation id="6059652578941944813">Hijerarhija certifikata</translation>
 <translation id="6059925163896151826">USB uređaji</translation>
-<translation id="6060435378291459521">Dodatak <ph name="PLUGIN_NAME" /> se srušio</translation>
 <translation id="6064217302520318294">Zaključavanje zaslona</translation>
 <translation id="6065289257230303064">Atributi direktorija predmeta certifikata</translation>
 <translation id="6068338049763724728">Omogući daljinsko registriranje</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Omogućuje prilagodbu razlučivosti zaslona</translation>
 <translation id="6238923052227198598">Zadrži najnoviju bilješku na zaključanom zaslonu</translation>
 <translation id="6239558157302047471">Ponovo učitaj okvir</translation>
-<translation id="624022915548992686">Izlazna stranica</translation>
 <translation id="6241530762627360640">pristupiti informacijama o Bluetooth uređajima uparenim s vašim sustavom i otkrivati Bluetooth uređaje u blizini</translation>
 <translation id="6243774244933267674">Poslužitelj nije dostupan</translation>
 <translation id="6246413617632217567">Nadzirani korisnik nije uvezen. Provjerite imate li dovoljno prostora na tvrdom disku i potrebna dopuštenja pa pokušajte ponovo.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Nepoznata mrežna pogreška</translation>
 <translation id="6313641880021325787">ZATVORI VR</translation>
 <translation id="6314819609899340042">Uspješno ste omogućili značajke za otklanjanje pogrešaka na ovom uređaju <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Vaše polazne stranice promijenjene su tako da uključuju <ph name="URL" />. Da biste onemogućili proširenja koja mijenjaju polaznu stranicu, kliknite Vrati.</translation>
 <translation id="6315493146179903667">Postavi sve u prednji plan</translation>
 <translation id="6316806695097060329">Ovaj uređaj <ph name="SHORT_PRODUCT_NAME" /> napravljen je tako da vam pruži najbolji mogući doživljaj weba.</translation>
 <translation id="6317318380444133405">Više nije podržan.</translation>
 <translation id="6317369057005134371">Čeka se prozor aplikacije...</translation>
 <translation id="6318407754858604988">Preuzimanje je započelo</translation>
-<translation id="6322279351188361895">Čitanje osobnog ključa nije uspjelo.</translation>
 <translation id="6325191661371220117">Onemogući automatsko pokretanje</translation>
 <translation id="6326175484149238433">Ukloni iz programa Chrome</translation>
 <translation id="6326855256003666642">Broj aktivnosti održavanja</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Odaberite što ćete sinkronizirati</translation>
 <translation id="6333064448949140209">Datoteka će se poslati Googleu radi uklanjanja pogrešaka</translation>
 <translation id="6333834492048057036">Fokusiraj adresnu traku za pretraživanje</translation>
-<translation id="6336907568130557310">Vaše zaporke bit će vidljive svima koji vide izvezenu datoteku. Nemojte dijeliti datoteku ni s kim i izbrišite je nakon uvoza.</translation>
 <translation id="6339668969738228384">Izradi novi profil za <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Povezivanje s poslužiteljem nije moguće. Provjerite mrežnu vezu i pokušajte ponovo. Ako se problem ne riješi, ponovo pokrenite Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Web-lokacije mogu spremiti i čitati podatke kolačića</translation>
 <translation id="6388771388956873507">Pronađite senzor otiska prsta na uređaju i dodirnite ga prstom</translation>
 <translation id="6390799748543157332">Stranice koje gledate u ovom prozoru neće se pojaviti u povijesti preglednika niti će ostaviti druge tragove, poput kolačića, na računalu nakon što zatvorite sve otvorene gostujuće prozore. Međutim, datoteke koje preuzmete sačuvat će se.</translation>
-<translation id="6391538222494443604">Mora postojati direktorij za unos.</translation>
 <translation id="6395423953133416962">Šalji <ph name="BEGIN_LINK1" />informacije o sustavu<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />mjerne podatke<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Prestani govoriti</translation>
 <translation id="6397592254427394018">Otvaranje svih oznaka u anonimnom prozoru</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Upravljanje blokiranjem za JavaScript...</translation>
 <translation id="6459488832681039634">Koristi odabir za traženje</translation>
 <translation id="6460601847208524483">Traži sljedeće</translation>
-<translation id="6462080265650314920">Aplikacije moraju biti poslužene s vrstom sadržaja "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Jeste li još tamo?</translation>
 <translation id="6463795194797719782">&amp;Uredi</translation>
 <translation id="6466988389784393586">&amp;Otvaranje svih oznaka</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Želite li da Google prevede ovu stranicu (<ph name="SOURCE_LANGUAGE" /> – <ph name="TARGET_LANGUAGE" />)?</translation>
 <translation id="6675665718701918026">Pokazivački je uređaj povezan</translation>
-<translation id="6677037229676347494">Očekivan je ID "<ph name="EXPECTED_ID" />", ali je ID bio "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL upita</translation>
 <translation id="6680028776254050810">Promjena korisnika</translation>
 <translation id="6680442031740878064">Dostupno: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Informacije koje Google prikuplja možete prilagoditi bilo kada u <ph name="BEGIN_LINK" />Postavkama<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Opozovi pristup datoteci</translation>
 <translation id="6904655473976120856">Pritisnite gumb aplikacije za izlazak</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> želi podijeliti vaš zaslon.</translation>
-<translation id="6909461304779452601">Aplikacije, proširenja i korisničke skripte ne mogu se dodavati s ove web-lokacije.</translation>
 <translation id="6910211073230771657">Izbrisano</translation>
 <translation id="691024665142758461">preuzeti više datoteka</translation>
 <translation id="6911324888870229398">Prekinuta je veza s mrežom. Provjerite vezu ili pokušajte s drugom Wi-Fi mrežom.</translation>
@@ -4104,7 +4049,6 @@
 <translation id="747114903913869239">Pogreška: Nije moguće dekodirati proširenje</translation>
 <translation id="7473891865547856676">Ne, hvala</translation>
 <translation id="747459581954555080">Obnovi sve</translation>
-<translation id="7475034671245341386">Dodatak <ph name="PLUGIN_NAME" /> naišao je na pogrešku.</translation>
 <translation id="7475671414023905704">URL Netscape izgubljene zaporke</translation>
 <translation id="7476454130948140105">Baterija nije dovoljno napunjena za ažuriranje (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Ako ste zaboravili zaporku, stanite i poništite sinkronizaciju na <ph name="BEGIN_LINK" />Google Nadzornoj ploči<ph name="END_LINK" />.</translation>
@@ -4141,7 +4085,6 @@
 <translation id="7507930499305566459">Certifikat odgovora statusa</translation>
 <translation id="7508545000531937079">Prezentacija</translation>
 <translation id="7513029293694390567">Automatski se prijavite na web-lokacije pomoću spremljenih vjerodajnica. Ako je ta značajka onemogućena, tražit će se potvrda prije svakog prijavljivanja na web-lokaciju.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> želi jedinstveno identificirati vaš uređaj radi reprodukcije zaštićenog sadržaja.</translation>
 <translation id="7517569744831774757">Vraćanje postavki na njihove izvorne zadane vrijednosti.</translation>
 <translation id="7517786267097410259">Izrada zaporke –</translation>
 <translation id="7518150891539970662">WebRTC zapisnici (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4171,7 +4114,6 @@
     ponovo pokušati izraditi nadziranog korisnika.</translation>
 <translation id="756445078718366910">Otvori prozor preglednika</translation>
 <translation id="7564847347806291057">Završi proces</translation>
-<translation id="7565291891798266313">Vaša je tražilica promijenjena u <ph name="URL" />. Da biste onemogućili proširenja koja mijenjaju tražilicu, kliknite Vrati.</translation>
 <translation id="7566118625369982896">Upravljaj vezama aplikacije Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chromeovi su podaci izbrisani</translation>
@@ -4180,7 +4122,6 @@
 <translation id="7573172247376861652">Punjenje baterije</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Spari</translation>
-<translation id="7577815336900970562">Upotrijebi Wi-Fi ili mobilnu mrežu za određivanje lokacije</translation>
 <translation id="7579149537961810247">Zanemari web-lokacije</translation>
 <translation id="7580671184200851182">Reprodukcija istog zvuka na svim zvučnicima (mono audio)</translation>
 <translation id="7581462281756524039">Alat za čišćenje</translation>
@@ -4287,6 +4228,7 @@
 <translation id="7773726648746946405">Pohrana sesije</translation>
 <translation id="7781335840981796660">Uklonit će se svi korisnički računi i lokalni podaci.</translation>
 <translation id="7782102568078991263">Nema više prijedloga iz Googlea</translation>
+<translation id="778330624322499012">Nije uspjelo učitavanje dodatka <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Sigurnosne postavke na vašem računalu blokirale su ovu datoteku.</translation>
 <translation id="7786207843293321886">Izlazak iz sesije gosta</translation>
 <translation id="7786889348652477777">&amp;Ponovo učitaj aplikaciju</translation>
@@ -4449,7 +4391,6 @@
 <translation id="8001504501378762252">Web-lokacija vam je možda ukrala zaporku</translation>
 <translation id="8004582292198964060">Preglednik</translation>
 <translation id="8008356846765065031">Prekinuta je veza s internetom. Provjerite internetsku vezu.</translation>
-<translation id="8008765610824028412">Nije uspjelo učitavanje dodatka <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Automatski šalji Googleu neke podatke o sustavu i sadržaj stranice radi otkrivanja opasnih aplikacija i web-lokacija</translation>
 <translation id="8012382203418782830">Ta je stranica prevedena.</translation>
 <translation id="8014154204619229810">U tijeku je izvođenje alata za ažuriranje. Osvježite za minutu i provjerite ponovo.</translation>
@@ -4566,7 +4507,6 @@
 <translation id="8191230140820435481">upravljati vašim aplikacijama, proširenjima i temama</translation>
 <translation id="8191453843330043793">Razrješavanje V8 proxyja</translation>
 <translation id="8195027750202970175">Veličina na disku</translation>
-<translation id="8195739004487400241">Vaša je početna stranica promijenjena u <ph name="URL" />. Da biste onemogućili proširenja koja mijenjaju početnu stranicu, kliknite Vrati.</translation>
 <translation id="8199300056570174101">Svojstva mreže (usluge) i uređaja</translation>
 <translation id="8200772114523450471">Nastavi</translation>
 <translation id="8202160505685531999">Ponovo unesite zaporku da biste ažurirali svoj profil na uređaju <ph name="DEVICE_TYPE" />.</translation>
@@ -4610,7 +4550,6 @@
 <translation id="8261378640211443080">To proširenje nije navedeno u trgovini <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i možda je dodano bez vašeg znanja.</translation>
 <translation id="8261387128019234107">Dodaj račun za profil <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Izbriši</translation>
-<translation id="826246685091802258">Oznaka <ph name="BAD_FLAG" /> nije implementirana u ovoj međuverziji.</translation>
 <translation id="8263744495942430914">Stranica <ph name="FULLSCREEN_ORIGIN" /> onemogućila je pokazivač miša.</translation>
 <translation id="8264718194193514834">Proširenje <ph name="EXTENSION_NAME" /> pokrenulo je prikaz na cijelom zaslonu.</translation>
 <translation id="8270242299912238708">PDF dokumenti</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Možete i odabrati novu mrežu:</translation>
 <translation id="845627346958584683">Vrijeme isteka</translation>
 <translation id="8456681095658380701">Pogrešno ime</translation>
+<translation id="8457451314607652708">Uvezi oznake</translation>
 <translation id="8460336040822756677">Ako isključite Smart Lock za uređaj <ph name="DEVICE_TYPE" />, nećete moći otključati svoje Chrome uređaje pomoću telefona. Morat ćete unijeti zaporku.</translation>
 <translation id="8461329675984532579">Naziv davatelja usluge kućne mreže</translation>
 <translation id="84613761564611563">Zatraženo je korisničko sučelje za konfiguriranje mreže, pričekajte...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Nije pronađen štetan softver</translation>
 <translation id="8512476990829870887">Završi proces</translation>
 <translation id="851263357009351303">Uvijek dopusti da web-lokacija <ph name="HOST" /> prikazuje slike</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" ispravlja programske pogreške u tom pregledniku.</translation>
 <translation id="8521475323816527629">Brzo pristupite svojim aplikacijama</translation>
 <translation id="8523493869875972733">Zadrži promjene</translation>
 <translation id="8523849605371521713">Dodala pravila</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Konfiguracija mrežnih veza</translation>
 <translation id="8620790565535071193">Traženje nije uspjelo</translation>
 <translation id="8622877356447980900">Želite li prevesti tu stranicu?</translation>
-<translation id="8623004009673949077">Aplikaciju s atributom manifesta "kiosk_only" potrebno je instalirati u načinu kioska OS-a Chrome.</translation>
 <translation id="8624205858755890468">Omogućuje Asistentu da vam prikazuje povezane informacije, aplikacije i radnje.</translation>
 <translation id="862542460444371744">&amp;Proširenja</translation>
 <translation id="8627151598708688654">Odaberite izvor</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Ažuriraj opremu radi dodatne zaštite.</translation>
 <translation id="8823514049557262177">Kopiraj te&amp;kst veze</translation>
 <translation id="8824701697284169214">Dodavanje stra&amp;nice...</translation>
-<translation id="8827850355924932817">Upotrijebi Wi-Fi mrežu za određivanje lokacije</translation>
 <translation id="8828933418460119530">Naziv DNS-a</translation>
 <translation id="8830796635868321089">Provjera ažuriranja pomoću trenutačnih postavki proxyja nije uspjela. Prilagodite <ph name="PROXY_SETTINGS_LINK_START" />postavke proxyja<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Konfiguracijom mreže upravlja <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Prikaži kao karticu</translation>
 <translation id="8884961208881553398">Dodaj nove usluge</translation>
 <translation id="8885197664446363138">Smart Lock nije dostupan</translation>
-<translation id="8885905466771744233">Osobni ključ za navedeno proširenje već postoji. Ponovo koristite taj ključ ili ga prvo izbrišite.</translation>
 <translation id="8888432776533519951">Boja:</translation>
-<translation id="8892992092192084762">Instalirana tema "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">Žao nam je, nije bilo moguće prepoznati uređaj <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Popis oznaka</translation>
 <translation id="88986195241502842">Stranica prema dolje</translation>
@@ -4997,7 +4932,6 @@
 <translation id="8908902564709148335">Upozorenje: omogućili ste oznaku --scripts-require-action na ovom računalu koja ograničava mogućnosti ovog proširenja. No, drugi uređaji možda neće podržavati ovu oznaku ili je neće imati omogućenu. Na tim uređajima ovo proširenje može također:</translation>
 <translation id="8910146161325739742">Dijeljenje zaslona</translation>
 <translation id="8910222113987937043">Promjene vaših oznaka, povijesti, zaporki i drugih postavki više se neće sinkronizirati s vašim Google računom. 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="8911079125461595075">Google je označio proširenje "<ph name="EXTENSION_NAME" />" kao zlonamjerno pa je instalacija spriječena.</translation>
 <translation id="8912793549644936705">Rastegni</translation>
 <translation id="8915370057835397490">Učitavanje prijedloga</translation>
 <translation id="8916476537757519021">Anonimni podokvir: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB miš povezan</translation>
 <translation id="9076523132036239772">Nažalost, nismo uspjeli provjeriti vašu e-poštu ili zaporku. Pokušajte se prvo povezati s mrežom.</translation>
-<translation id="907841381057066561">Nije uspjelo stvaranje privremene sažete datoteke tijekom sažimanja.</translation>
 <translation id="9084064520949870008">Otvori kao prozor</translation>
 <translation id="9088234649737575428">Dodatak <ph name="PLUGIN_NAME" /> blokiran je prema pravilima organizacije</translation>
 <translation id="9088917181875854783">Potvrdite da je ova zaporka prikazana na uređaju "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Unesite zaporku</translation>
 <translation id="939736085109172342">Nova mapa</translation>
-<translation id="941543339607623937">Nevažeći osobni ključ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> dijeli Chromeovu karticu i zvuk.</translation>
 <translation id="942954117721265519">Nema slika u ovom direktoriju.</translation>
 <translation id="945522503751344254">Slanje povratnih informacija</translation>
-<translation id="951981865514037445"><ph name="URL" /> želi upotrijebiti lokaciju vašeg uređaja.</translation>
 <translation id="952992212772159698">Nije aktivirano</translation>
 <translation id="9580706199804957">Povezivanje s Googleovim uslugama nije uspjelo</translation>
 <translation id="958515377357646513">Dodirnite za pomicanje prema naprijed</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index 7c79f707..32f2c00 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Csak titkosítás</translation>
 <translation id="1039337018183941703">Érvénytelen vagy sérült fájl</translation>
 <translation id="1042174272890264476">Számítógépe a <ph name="SHORT_PRODUCT_NAME" /> RLZ-könyvtárát is tartalmazza beépítve. Az RLZ egy nem egyedi, személy szerinti azonosításra nem alkalmas címkét rendel hozzá a keresések és a <ph name="SHORT_PRODUCT_NAME" /> használatának egy adott promóciós kampány keretein belüli felméréséhez. Ezek a címkék időnként a <ph name="PRODUCT_NAME" /> Google-keresési lekérdezéseiben is feltűnnek.</translation>
-<translation id="1042574203789536285">A(z) <ph name="URL" /> webhely állandó jelleggel nagyméretű adatokat akar tárolni az eszközén.</translation>
 <translation id="1046059554679513793">Hoppá, ez a név már foglalt!</translation>
 <translation id="1047431265488717055">Link szövegének má&amp;solása</translation>
 <translation id="1047726139967079566">Könyvjelző hozzáadása ehhez az oldalhoz...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Visszaállítja az alapértelmezett keresőmotort?</translation>
 <translation id="1177863135347784049">Egyéni</translation>
 <translation id="1178581264944972037">Szünet</translation>
-<translation id="1179803038870941185">A(z) <ph name="URL" /> teljes hozzáférést kér a MIDI-eszközökhöz.</translation>
 <translation id="1181037720776840403">Eltávolítás</translation>
 <translation id="1183237619868651138">A(z) <ph name="EXTERNAL_CRX_FILE" /> nem telepíthető a helyi gyorsítótárban.</translation>
 <translation id="1185924365081634987">A hiba javításához kipróbálhatja a <ph name="GUEST_SIGNIN_LINK_START" />vendégként történő böngészést is<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{A számítógépen tárolt fájl elérése}other{A számítógépen tárolt # fájl elérése}}</translation>
 <translation id="1195076408729068893">A Smart Lock használatának megkezdéséhez meg kell adnia jelszavát. Legközelebb már a telefonjával oldhatja fel <ph name="DEVICE_TYPE" /> eszköze zárolását.</translation>
 <translation id="1195447618553298278">Ismeretlen hiba.</translation>
-<translation id="1196338895211115272">A privát kulcs exportálása sikertelen.</translation>
 <translation id="119738088725604856">Képernyőfelvétel ablak</translation>
 <translation id="1197979282329025000">Hiba történt a(z) <ph name="PRINTER_NAME" /> nyomtató képességeinek lekérésekor. Ez a nyomtató nem regisztrálható itt: <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Kezdjük</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Rendszergazdája egy meghatározott értéket javasol ehhez a beállításhoz.</translation>
 <translation id="1225177025209879837">A kérelem feldolgozása folyamatban van...</translation>
 <translation id="1225211345201532184">5. polcelem</translation>
-<translation id="1225404570112441414">Adja hozzá ezt a webhelyet a polcához, így bármikor használhatja.</translation>
 <translation id="1227507814927581609">A hitelesítés sikertelen volt a következőhöz való csatlakozáskor: „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="1230807973377071856">rendszer menü</translation>
 <translation id="1232569758102978740">Névtelen</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Könyvjelzők HTML-fájlja</translation>
 <translation id="1303671224831497365">Nem található Bluetooth-eszköz</translation>
 <translation id="1306606229401759371">Beállítások módosítása</translation>
-<translation id="1307398858972670978">Bármely eszközről elérheti jelszavait a következő címen: <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Hoppá! A rendszer nem tudta tárolni az eszköz hosszú távú API hozzáférési tokenjét.</translation>
 <translation id="1313405956111467313">Automatikus proxykonfiguráció</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Keresés</translation>
 <translation id="1386387014181100145">Üdvözöljük!</translation>
 <translation id="138784436342154190">Visszaállítja az alapértelmezett kezdőoldalt?</translation>
-<translation id="1389297115360905376">Ez csak innen adható hozzá: <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Megnyitás normál lapként</translation>
-<translation id="1391807639023934267">Gyorsabb oldal betöltve.</translation>
 <translation id="1393283411312835250">Nap és felhők</translation>
 <translation id="1395262318152388157">Keresőcsúszka</translation>
 <translation id="1395730723686586365">A frissítő elindult</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">A(z) <ph name="PRODUCT_NAME" /> instabil verziójára frissít, amely fejlesztés alatt álló funkciókat tartalmaz. Előfordulhatnak rendszerösszeomlások és váratlan programhibák. Kérjük, fokozott körültekintéssel lépjen tovább.</translation>
 <translation id="1415990189994829608">Az ilyen jellegű munkamenetekben a(z) <ph name="EXTENSION_NAME" /> (bővítményazonosító: „<ph name="EXTENSION_ID" />”) nem engedélyezett.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Ajjaj! Nem sikerült a véletlenszerű RSA privát kulcs generálása.</translation>
 <translation id="1420834118113404499">Médiaengedélyek</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> a párosítás engedélyezéséhez</translation>
 <translation id="1426410128494586442">Igen</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Audi&amp;ocím másolása</translation>
 <translation id="1465827627707997754">Pizzaszelet</translation>
 <translation id="1467432559032391204">Balra</translation>
-<translation id="1467999917853307373">A(z) <ph name="URL" /> webhely állandó jelleggel adatokat akar tárolni az eszközén.</translation>
-<translation id="1470719357688513792">Az új cookie-beállítások az oldal ismételt betöltése után lépnek életbe.</translation>
 <translation id="1470811252759861213">Ha az összes számítógépén szeretné elérni bővítményeit: <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">A(z) „<ph name="FILENAME" />” feltöltése nem történt meg. Nincs elegendő szabad terület a Google Drive-on.</translation>
 <translation id="1475502736924165259">Vannak olyan tanúsítványok, amelyek nem illenek a többi kategória egyikébe se</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Nagy egérmutató</translation>
 <translation id="1543284117603151572">Az Edge böngészőből importálva</translation>
 <translation id="1545177026077493356">Automatikus kioszk mód</translation>
+<translation id="1545775234664667895">Telepített téma: "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL, ahol a lekérdezést a %s helyettesíti</translation>
 <translation id="1546280085599573572">Ez a bővítmény azt módosította, hogy melyik oldal jelenjen meg a Kezdőlap gombra való kattintás esetén.</translation>
 <translation id="1547572086206517271">Frissítés szükséges</translation>
@@ -443,11 +434,9 @@
     a felügyelt felhasználó által felkeresett webhelyek <ph name="BEGIN_BOLD" />áttekintése<ph name="END_BOLD" />, valamint
     egyéb beállítások <ph name="BEGIN_BOLD" />kezelése<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">A bejelentkezési adatok elavultak</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> sor nincs megjelenítve&gt;</translation>
 <translation id="1650371550981945235">Beviteli lehetőségek megjelenítése</translation>
 <translation id="1650709179466243265">Adja hozzá a www. és a .com kiegészítéseket, és nyissa meg a címet</translation>
 <translation id="1651008383952180276">Mindkét alkalommal ugyanazt az összetett jelszót kell megadnia</translation>
-<translation id="1652972346408808053">Jelszó mentve. Bármely eszközről hozzáférhet jelszavaihoz a következő címen: <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Adja hozzá a nyomtatót a Google Cloud Print szolgáltatáshoz, hogy bárhonnan nyomtathasson.}other{Adjon hozzá # nyomtatót a Google Cloud Print szolgáltatáshoz, hogy bárhonnan nyomtathasson.}}</translation>
 <translation id="1657406563541664238">Segítsen a <ph name="PRODUCT_NAME" /> fejlesztésében azáltal, hogy automatikusan elküldi a használati statisztikákat és hibajelentéseket a Google részére</translation>
 <translation id="1658424621194652532">Ez az oldal hozzáfér az Ön mikrofonjához.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Cookie-k tiltásának folytatása</translation>
 <translation id="204622017488417136">Eszköze visszatér a Chrome korábban telepített példányához. A rendszer minden felhasználói fiókot és helyi adatot eltávolít. A műveletet nem lehet visszavonni.</translation>
 <translation id="2048182445208425546">A hálózati forgalom elérése</translation>
-<translation id="2049137146490122801">A rendszergazda letiltotta a számítógép helyi fájljaihoz való hozzáférést.</translation>
 <translation id="204914487372604757">Parancsikon létrehozása</translation>
 <translation id="2050339315714019657">Álló</translation>
 <translation id="2053312383184521053">Tétlen állapot adatai</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Még nincs betöltve</translation>
 <translation id="2107494551712864447">Ujjlenyomat hozzáadása</translation>
-<translation id="2111843886872897694">Az alkalmazásokat az általuk érintett gazdagépről kell kiszolgálni.</translation>
 <translation id="2112877397266219826">Kapcsolja be az érintőképernyőt a beállításhoz</translation>
 <translation id="21133533946938348">Lap rögzítése</translation>
 <translation id="2113479184312716848">&amp;Fájl megnyitása...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Mondja el, mi a probléma</translation>
 <translation id="2229161054156947610">Több mint 1 óra van hátra</translation>
 <translation id="222931766245975952">A fájl csonkult</translation>
-<translation id="222949136907494149">A(z) <ph name="URL" /> az Ön számítógépének helyadatait akarja használni.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Nem sikerült létrehozni a(z) "<ph name="FOLDER_NAME" />" könyvtárat. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kattintson a mai ünnepi embléma megtekintéséhez</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Mikrofon elérésének állandó tiltása</translation>
 <translation id="2367972762794486313">Alkalmazások megjelenítése</translation>
 <translation id="2371076942591664043">Megnyitás, amikor &amp;kész</translation>
-<translation id="237336063998926520">Az IP-cím használata a tartózkodási hely megállapítására</translation>
 <translation id="2377319039870049694">Váltás listanézetre</translation>
 <translation id="2377667304966270281">Súlyos laphiba</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> fájl kiválasztva</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">A(z) <ph name="APP_NAME" /> fájlokat szeretne másolni a következőről: <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Tanúsítványkibocsátó kulcsazonosítója</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> hozzáadva</translation>
-<translation id="246335896104539386">Könyvjelzők importálása</translation>
 <translation id="2464089476039395325">HTTP-proxy</translation>
 <translation id="2468902267404883140">Nem lehet csatlakozni a telefonhoz. Győződjön meg arról, hogy kompatibilis, bekapcsolt Android-telefonja kéznél van. &lt;a&gt;További információ&lt;/a&gt;.</translation>
 <translation id="2470702053775288986">Nem támogatott kiterjesztések kikapcsolva</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Eltávolítás</translation>
 <translation id="2487067538648443797">Új könyvjelző hozzáadása</translation>
 <translation id="248861575772995840">A telefon nem található. Győződjön meg arról, hogy a <ph name="DEVICE_TYPE" /> eszközön a Bluetooth be van kapcsolva. &lt;a&gt;További információ&lt;/a&gt;.</translation>
-<translation id="2489316678672211764">Egy beépülő modul (<ph name="PLUGIN_NAME" />) nem válaszol.</translation>
 <translation id="2489428929217601177">elmúlt nap</translation>
 <translation id="2489918096470125693">Mappa &amp;hozzáadása...</translation>
 <translation id="249113932447298600">Elnézést kérünk, de a(z) <ph name="DEVICE_LABEL" /> eszköz jelenleg nem támogatott.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Gratulálunk! „<ph name="NAME" />” adatszolgáltatása aktív, és készen áll a használatra.</translation>
 <translation id="2566124945717127842">Végezze el a powerwash műveletet a(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> eszköz visszaállításához, hogy az olyan legyen, mint új korában.</translation>
 <translation id="2568774940984945469">Infósáv tárolója</translation>
-<translation id="2570000010887652771">Megspórolt adatforgalom.</translation>
 <translation id="257088987046510401">Témák</translation>
 <translation id="2572032849266859634">Csak olvasási hozzáférést kapott a következőhöz: <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Válasszon ki egy képet és nevet</translation>
 <translation id="2575247648642144396">Ez az ikon akkor látható, ha az adott bővítmény műveletet hajthat végre az aktuális oldalon. A bővítményt az ikonra kattintva, illetve a következő billentyűkódot megnyomva használhatja: <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">A telefon nem található. Győződjön meg arról, hogy a(z) <ph name="DEVICE_TYPE" /> csatlakozik a Wi-Fi- vagy mobilhálózathoz. &lt;a&gt;További információ&lt;/a&gt;.</translation>
-<translation id="2576842806987913196">Már van egy CRX-fájl ilyen névvel.</translation>
 <translation id="257779572837908839">Beállítás videokonferenciákhoz készült Chromebox eszközként</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nem sikerült a kötet leválasztása<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Ha töröl egy tanúsítványkibocsátói (CA) tanúsítványt, a böngészője többé nem fog megbízni az adott tanúsítványkibocsátó által kibocsátott tanúsítványokban.</translation>
 <translation id="2653659639078652383">Elküldés</translation>
 <translation id="265390580714150011">Mező értéke</translation>
-<translation id="2654286334048437383">Könyvjelzők exportálása</translation>
 <translation id="2655386581175833247">Felhasználói tanúsítvány:</translation>
 <translation id="2660779039299703961">Esemény</translation>
 <translation id="2661146741306740526">16×9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Médiagaléria hozzáadása könyvtár szerint</translation>
 <translation id="2908789530129661844">Képernyő kicsinyítése</translation>
 <translation id="2910318910161511225">Csatlakozzon egy hálózathoz, és próbálja újra</translation>
-<translation id="2912905526406334195">A(z) <ph name="HOST" /> a mikrofont kívánja használni.</translation>
 <translation id="2913331724188855103">Cookie-adatok mentésének és olvasásának engedélyezése a webhelyeken (ajánlott)</translation>
 <translation id="2916073183900451334">A Tab billentyű megnyomása a weboldalakon kiemeli a linkeket és a beviteli mezőket</translation>
 <translation id="2916745397441987255">Bővítmények keresése</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">Ablak mozgatása felfelé</translation>
 <translation id="3053013834507634016">Tanúsítványkulcs felhasználása</translation>
 <translation id="3057861065630527966">Biztonsági másolat készítése a fotókról és videókról</translation>
-<translation id="3060379269883947824">Kijelöléssel felolvasás engedélyezése</translation>
+<translation id="3060379269883947824">Felolvasás engedélyezése</translation>
 <translation id="3061707000357573562">Javítókészlet szolgáltatás</translation>
 <translation id="3064410671692449875">Nincs elegendő adat</translation>
 <translation id="3065041951436100775">Visszajelzés megszakított lapról.</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Figyelek…</translation>
 <translation id="3141917231319778873">Az adott kérés nem támogatott a következőhöz: „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3144126448740580210">KÉSZ</translation>
-<translation id="3144135466825225871">Nem sikerült lecserélni a crx-fájlt. Ellenőrizze, hogy nincs-e használatban a fájl.</translation>
 <translation id="3144647712221361880">Link megnyitása mint</translation>
 <translation id="3149510190863420837">Chrome-alkalmazások</translation>
 <translation id="3150927491400159470">Teljes újratöltés</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Mindig fut minden webhelyen</translation>
 <translation id="3312424061798279731">Engedélyezett nyelvek</translation>
 <translation id="3312903956926554846">Telepítés az asztalra</translation>
-<translation id="3313473140726597081">Kezdőoldala a következőre módosult: <ph name="URL" />. A kezdőoldalt módosító bővítmények letiltásához kattintson a Visszaállítás gombra.</translation>
 <translation id="3313590242757056087">Annak megadásához, hogy a felügyelt felhasználó mely webhelyeket nézheti meg,
     korlátozásokat és beállításokat adhat meg itt: <ph name="MANAGEMENT_URL" />.
     Ha nem módosítja az alapértelmezett beállításokat, akkor <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Alkalmazásadatok</translation>
 <translation id="3335947283844343239">Bezárt lap megnyitása</translation>
-<translation id="3337069537196930048">A(z) <ph name="PLUGIN_NAME" /> bővítményt letiltottuk, mivel már lejárt.</translation>
 <translation id="3340978935015468852">beállítások</translation>
 <translation id="3341703758641437857">Fájl URL-ekhez való hozzáférés engedélyezése</translation>
 <translation id="3342361181740736773">A(z) „<ph name="TRIGGERING_EXTENSION_NAME" />” szeretné eltávolítani ezt a bővítményt.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Könyvjelző hozzáadva</translation>
 <translation id="3389312115541230716">Kattintson a jobb gombbal a(z) <ph name="SMALL_PRODUCT_LOGO" /> ikonjára a tálcán</translation>
 <translation id="3391716558283801616">7. lap</translation>
-<translation id="3394150261239285340">A(z) <ph name="HOST" /> weboldal használni kívánja a kamerát és a mikrofont.</translation>
 <translation id="3396331542604645348">A kiválasztott nyomtató nem érhető el, vagy nincs megfelelően telepítve. Ellenőrizze a nyomtatót, vagy válasszon egy másikat.</translation>
 <translation id="3399432415385675819">Az értesítések le lesznek tiltva</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">A Chrome automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik.</translation>
 <translation id="3551320343578183772">Lap bezárása</translation>
 <translation id="3552780134252864554">Törlés kilépéskor</translation>
-<translation id="355298399003313926">A(z) <ph name="URL" /> kisegítő lehetőségekkel kapcsolatos eseményekre szeretne válaszolni.</translation>
 <translation id="3555812735919707620">Bővítmény eltávolítása</translation>
 <translation id="3556000484321257665">A keresőmotor a következőre módosult: <ph name="URL" />.</translation>
-<translation id="3561217442734750519">A privát kulcs beviteli értékéhez érvényes útvonalat kell megadnia.</translation>
 <translation id="3563432852173030730">A kioszkalkalmazást nem sikerült letölteni.</translation>
 <translation id="3564334271939054422">Előfordulhat, hogy az Ön által használt Wi-Fi-hálózat (<ph name="NETWORK_ID" />) előírja a bejelentkezési oldal felkeresését.</translation>
 <translation id="3564708465992574908">Nagyítási/kicsinyítési szintek</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Tanúsítvány nevének megkötései</translation>
 <translation id="3596235046596950091">Felhőszolgáltatások engedélyezése</translation>
 <translation id="3599863153486145794">Törli az előzményeket valamennyi bejelentkezett eszközről. Előfordulhat, hogy a böngészési előzmények más formái még megtalálhatók Google-fiókjában a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webhelyen.</translation>
-<translation id="3600456501114769456">A rendszergazda letiltotta a helyi fájlok elérését az eszközön.</translation>
 <translation id="3600792891314830896">Elnémítja a hangot lejátszó webhelyeket</translation>
 <translation id="3603177256297531067">Nem sikerült lefordítani az oldalt</translation>
 <translation id="3603533104205588786">Az oldalt úgy is hozzáadhatja a könyvjelzőkhöz, hogy a csillagra kattint</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Képernyőképek letiltva</translation>
 <translation id="3625870480639975468">Nagyítás alaphelyzetbe állítása</translation>
 <translation id="3626281679859535460">Fényerő</translation>
-<translation id="3627052133907344175">A bővítmény a(z) „<ph name="IMPORT_NAME" />” legalább „<ph name="IMPORT_VERSION" />” verzióját igényli, ám csak a(z) „<ph name="INSTALLED_VERSION" />” verzió van telepítve.</translation>
 <translation id="3627320433825461852">Kevesebb mint 1 perc van hátra</translation>
 <translation id="3627588569887975815">Link megnyitása inko&amp;gnitóablakban</translation>
 <translation id="3627671146180677314">Netscape tanúsítvány - megújítás ideje</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Nyelvi beállítások</translation>
 <translation id="3668823961463113931">Kezelők</translation>
 <translation id="3670229581627177274">Bluetooth bekapcsolása</translation>
-<translation id="3672159315667503033">A(z) <ph name="URL" /> webhely állandó, nagy méretű adatokat akar tárolni a helyi számítógépen.</translation>
 <translation id="3672681487849735243">A rendszer gyári hibát észlelt</translation>
 <translation id="367645871420407123">hagyja üresen, ha a root jelszót az alapértelmezett tesztkép értékére szeretné állítani</translation>
 <translation id="3678156199662914018">Bővítmény: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Ön jelenleg offline állapotban van</translation>
 <translation id="3788401245189148511">A következőkre lehet képes:</translation>
 <translation id="3789841737615482174">Telepítés</translation>
-<translation id="3790146417033334899">A(z) <ph name="PLUGIN_NAME" /> csak az asztalon működik.</translation>
 <translation id="379082410132524484">A kártya lejárt</translation>
 <translation id="3792890930871100565">Nyomtatók leválasztása</translation>
 <translation id="379422718204375917">Jelentkezzen be fiókjába a Smart Lock használatával</translation>
-<translation id="3794595850995182458">Oldal elhagyása</translation>
 <translation id="3796648294839530037">Kedvenc hálózatok:</translation>
 <translation id="3797900183766075808">&amp;Keresés a(z) <ph name="SEARCH_ENGINE" /> keresőmotorral a következőre: <ph name="SEARCH_TERMS" /></translation>
 <translation id="3798325802885154040">Lehetővé teszi a koppintással történő kattintás engedélyezését/letiltását</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> engedélyezése</translation>
 <translation id="3981760180856053153">A megadott mentéstípus érvénytelen.</translation>
 <translation id="3983586614702900908">ismeretlen szolgáltatótól származó eszközök</translation>
-<translation id="3984413272403535372">Hiba történt a bővítmények aláírása során.</translation>
 <translation id="3987938432087324095">Elnézést, de nem értettem.</translation>
 <translation id="3988996860813292272">Időzóna kiválasztásaƒƒ</translation>
 <translation id="3989635538409502728">Kijelentkezés</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Alkalmazásokat és játékokat telepíthet a Chromebookra a Google Playről. &lt;a target="_blank" href="<ph name="URL" />"&gt;További információ.&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Elfogadás a csoportra vonatkozóan</translation>
 <translation id="4090103403438682346">Ellenőrzött hozzáférés engedélyezése</translation>
-<translation id="4090404313667273475">Az oldal egyes elemeinek megjelenítéséhez a következő plug-in szükséges: <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(A bővítmény felügyelt, nem távolítható el.)</translation>
 <translation id="4091434297613116013">papírlap</translation>
 <translation id="4093955363990068916">Helyi fájl:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">A <ph name="PRODUCT_NAME" /> mostantól képes szinkronizálni jelszavait.</translation>
 <translation id="4715553623069266137">nagyon rövid (0,8 mp)</translation>
 <translation id="4716483597559580346">Powerwash művelet a nagyobb biztonság érdekében</translation>
-<translation id="471800408830181311">Nem sikerült a privát kulcs kiírása.</translation>
 <translation id="4720113199587244118">Eszközök hozzáadása</translation>
 <translation id="4720185134442950733">Mobiladat-hálózat</translation>
 <translation id="4722920479021006856">A(z) <ph name="APP_NAME" /> megosztja az Ön képernyőjét.</translation>
@@ -2508,7 +2473,6 @@
 <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>
 <translation id="4918086044614829423">Elfogadás</translation>
-<translation id="4919810557098212913">A(z) <ph name="HOST" /> weboldal használni kívánja a kamerát.</translation>
 <translation id="4920887663447894854">A következő webhelyek nem figyelhetik a tartózkodási helyét ezen az oldalon:</translation>
 <translation id="492299503953721473">Android-alkalmazások eltávolítása</translation>
 <translation id="4923279099980110923">Igen, szeretnék segíteni</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Ez a bővítmény rosszindulatú programot tartalmaz.</translation>
 <translation id="498294082491145744">A weboldalak cookie-khoz, JavaScripthez, beépülő modulokhoz, tartózkodási helyhez, mikrofonhoz, kamerához stb. való hozzáférését vezérlő beállítások módosítása.</translation>
 <translation id="4988526792673242964">Oldal</translation>
-<translation id="4988792151665380515">Nem sikerült a nyilvános kulcs exportálása.</translation>
 <translation id="49896407730300355">Forgatás &amp;balra</translation>
 <translation id="4989966318180235467">&amp;Háttéroldal vizsgálata</translation>
 <translation id="4990343175649730969">A Chrome Szoftvereltávolító eszköz letöltése</translation>
@@ -2578,7 +2541,6 @@
 <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>
-<translation id="5028012205542821824">A telepítés nincs engedélyezve.</translation>
 <translation id="5029568752722684782">Példány törlése</translation>
 <translation id="5030338702439866405">Kiállította:</translation>
 <translation id="5036662165765606524">Ne engedélyezze a webhelyeknek több fájl automatikus letöltését</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Hiba történt.</translation>
 <translation id="5094721898978802975">Kommunikáció az együttműködő natív alkalmazásokkal</translation>
 <translation id="5097002363526479830">Nem sikerült csatlakozni a(z) <ph name="NAME" /> hálózathoz: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nem található a csomagolni kívánt könyvtár abszolút elérési útvonala.</translation>
 <translation id="5099354524039520280">felfelé</translation>
 <translation id="5100114659116077956">Ahhoz, hogy a legújabb funkciókat tudjuk biztosítani Önnek, frissítenie kell Chromebox eszközét.</translation>
 <translation id="5101042277149003567">Az összes könyvjelző megnyitása</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Megjelenítés mappában</translation>
 <translation id="5171045022955879922">Keressen vagy írjon be egy URL-t</translation>
 <translation id="5171343362375269016">Cserememória</translation>
-<translation id="5175870427301879686">A(z) <ph name="URL" /> webhely állandó adatokat akar tárolni a helyi számítógépen.</translation>
 <translation id="5177479852722101802">A kamerához és mikrofonhoz való hozzáférés tiltásának fenntartása</translation>
 <translation id="5177526793333269655">Indexképnézet</translation>
 <translation id="5177549709747445269">Jelenleg mobiladatokat használ</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Az eszköz formázása</translation>
 <translation id="5293170712604732402">Beállítások visszaállítása alapértelmezettre</translation>
 <translation id="5298219193514155779">Téma készítője:</translation>
-<translation id="5298363578196989456">A(z) „<ph name="IMPORT_NAME" />” bővítményt nem lehetett importálni, mivel az nem megosztott modul.</translation>
 <translation id="5299109548848736476">Nincs nyomon követés</translation>
 <translation id="5299682071747318445">Az összes adat titkosítva lesz az összetett szinkronizálási jelszavával</translation>
 <translation id="5300589172476337783">Megjelenítés</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">A(z) „<ph name="CHROME_EXTENSION_NAME" />” szeretne párosítást végrehajtani</translation>
 <translation id="5332624210073556029">Időzóna:</translation>
 <translation id="5334142896108694079">Szkript gyorsítótár</translation>
-<translation id="533433379391851622">A várt verzió "<ph name="EXPECTED_VERSION" />", de a kapott verzió "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Forráskód megtekintése</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> biztonsági mentése a <ph name="BEGIN_LINK" />Google Drive-ra<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Harmadik fél telepítette.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">A webhelyek lejátszhatnak hangokat</translation>
 <translation id="5390284375844109566">Indexelt adatbázis</translation>
 <translation id="5390743329570580756">Küldés –</translation>
-<translation id="5396126354477659676">A(z) <ph name="PEPPER_PLUGIN_NAME" /> webhelyen található <ph name="PEPPER_PLUGIN_DOMAIN" /> bővítmény hozzá akar férni a számítógéphez.</translation>
 <translation id="5397794290049113714">Ön</translation>
 <translation id="5398572795982417028">Tartományon kívüli oldalra való hivatkozás; a maximális érték <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Hirdetések letiltva</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Minden lap visszaállítása</translation>
 <translation id="5486261815000869482">Jelszó megerősítése</translation>
 <translation id="5486275809415469523">A(z) <ph name="APP_NAME" /> megosztja a képernyőt a következővel: <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Kell lennie beviteli értéknek a privát kulcsnál.</translation>
 <translation id="5486561344817861625">Böngésző újraindításának szimulálása</translation>
 <translation id="5487521232677179737">Adatok törlése</translation>
 <translation id="5488093641312826914">„<ph name="COPIED_ITEM_NAME" />” másolva</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">A frissítés letöltése <ph name="UPDATE_SIZE_MB" /> MB mobiladat-forgalmat igényel. Szeretné folytatni?</translation>
 <translation id="5601503069213153581">PIN-kód</translation>
 <translation id="5605623530403479164">További keresők</translation>
-<translation id="5606674617204776232">A(z) <ph name="PEPPER_PLUGIN_DOMAIN" /> webhelyen található <ph name="PEPPER_PLUGIN_NAME" /> plug-in hozzá akar férni eszközéhez.</translation>
 <translation id="5608580678041221894">Az alábbi kulcsokra koppintva módosítható vagy mozgatható a körbevágás területe</translation>
 <translation id="5609231933459083978">Úgy tűnik, hogy az alkalmazás érvénytelen.</translation>
 <translation id="5610038042047936818">Váltás kamera módra</translation>
@@ -3198,7 +3153,6 @@
 <translation id="5990386583461751448">Fordítás</translation>
 <translation id="5991049340509704927">Nagyítás</translation>
 <translation id="5993332328670040093">Az adathasználatot a továbbiakban nem méri a böngésző.</translation>
-<translation id="6003177993629630467">A <ph name="PRODUCT_NAME" /> nem tudja rendszeresen frissíteni önmagát.</translation>
 <translation id="600424552813877586">Érvénytelen alkalmazás.</translation>
 <translation id="6005695835120147974">Adathordozó router</translation>
 <translation id="6006484371116297560">Klasszikus</translation>
@@ -3223,6 +3177,7 @@
 <translation id="604001903249547235">Biztonsági mentés a felhőbe</translation>
 <translation id="6040143037577758943">Bezárás</translation>
 <translation id="6040852767465482106">Névtelen azonosító</translation>
+<translation id="6041155700700864984">Kilépés a teljes képernyős módból</translation>
 <translation id="604124094241169006">Automatikus</translation>
 <translation id="6042169520002885235">A nyomtató gyártójának és modelljének kiválasztása</translation>
 <translation id="6042308850641462728">Hosszabban</translation>
@@ -3239,7 +3194,6 @@
 <translation id="6056710589053485679">Normál újratöltés</translation>
 <translation id="6059652578941944813">Tanúsítvány-hierarchia</translation>
 <translation id="6059925163896151826">USB-eszközök</translation>
-<translation id="6060435378291459521">A(z) <ph name="PLUGIN_NAME" /> összeomlott.</translation>
 <translation id="6064217302520318294">Képernyőzárolás</translation>
 <translation id="6065289257230303064">Tanúsítványtulajdonos könyvtárattribútumai</translation>
 <translation id="6068338049763724728">Távoli regisztrálás engedélyezése</translation>
@@ -3348,7 +3302,6 @@
 <translation id="6237816943013845465">Lehetővé teszi a képernyő felbontásának módosítását</translation>
 <translation id="6238923052227198598">Legutóbbi jegyzet megtartása a lezárási képernyőn</translation>
 <translation id="6239558157302047471">&amp;Keret újratöltése</translation>
-<translation id="624022915548992686">Oldal elhagyása</translation>
 <translation id="6241530762627360640">A rendszerrel párosított Bluetooth-eszközökkel kapcsolatos információk elérése és a közeli Bluetooth-eszközök felderítése.</translation>
 <translation id="6243774244933267674">A szerver nem érhető el</translation>
 <translation id="6246413617632217567">Nem sikerült importálni a felügyelt felhasználót. Kérjük, ellenőrizze a merevlemezen rendelkezésre álló helyet és az engedélyeket, majd próbálja újra.</translation>
@@ -3397,13 +3350,11 @@
 <translation id="6312403991423642364">Ismeretlen hálózati hiba</translation>
 <translation id="6313641880021325787">KILÉPÉS A VIRTUÁLIS VALÓSÁGBÓL</translation>
 <translation id="6314819609899340042">Sikeresen engedélyezte a hibakeresési szolgáltatásokat ezen a(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> eszközön.</translation>
-<translation id="6315343732431721770">Kezdőoldala módosult, így már a következőt is tartalmazza: <ph name="URL" />. A kezdőoldalt módosító bővítmények letiltásához kattintson a Visszaállítás gombra.</translation>
 <translation id="6315493146179903667">Összes az előtérbe</translation>
 <translation id="6316806695097060329">A <ph name="SHORT_PRODUCT_NAME" /> tervezése során az volt a cél, hogy Önnek a lehető legjobb internetezési élményt nyújthassuk.</translation>
 <translation id="6317318380444133405">Már nem támogatott.</translation>
 <translation id="6317369057005134371">Várakozás az alkalmazás ablakára...</translation>
 <translation id="6318407754858604988">A letöltés megkezdődött</translation>
-<translation id="6322279351188361895">A privát kulcs olvasása sikertelen.</translation>
 <translation id="6325191661371220117">Automatikus indítás tiltása</translation>
 <translation id="6326175484149238433">Eltávolítás a Chrome-ból</translation>
 <translation id="6326855256003666642">Életben tartási számláló</translation>
@@ -3412,7 +3363,6 @@
 <translation id="6333049849394141510">Szinkronizálás beállítása</translation>
 <translation id="6333064448949140209">A fájlt elküldjük a Google-nak hibakeresésre</translation>
 <translation id="6333834492048057036">Címsávra fókuszálás a kereséshez</translation>
-<translation id="6336907568130557310">Jelszavai mindenki számára láthatók lesznek, aki hozzáfér az exportált fájlhoz. A fájlt ne ossza meg senkivel, és törölje az importálás után.</translation>
 <translation id="6339668969738228384">Új profil létrehozása a következőhöz: <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Nem sikerült csatlakozni a szerverhez. Ellenőrizze a hálózati kapcsolatot, és próbálja újra. Ha a probléma továbbra is fennáll, indítsa újra a Chromebookot.</translation>
 <translation id="6340071272923955280">Internetes nyomtatási protokoll (IPPS)</translation>
@@ -3441,7 +3391,6 @@
 <translation id="6385543213911723544">A webhelyek menthetik és olvashatják a cookie-adatokat</translation>
 <translation id="6388771388956873507">Keresse meg az eszköz ujjlenyomat-érzékelőjét, és érintse meg ujjával</translation>
 <translation id="6390799748543157332">Az ebben az ablakban megtekintett oldalak a vendégmódban megnyitott ablakok bezárását követően nem fognak megjelenni a böngészési előzmények között, és nem hagynak egyéb nyomokat, például cookie-kat a számítógépen. Azonban az Ön által letöltött fájlokat a rendszer megőrzi.</translation>
-<translation id="6391538222494443604">Kell lennie beviteli könyvtárnak.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Rendszer-információk<ph name="END_LINK1" /> és <ph name="BEGIN_LINK2" />mutatószámok<ph name="END_LINK2" /> küldése</translation>
 <translation id="6397363302884558537">Beszéd leállítása</translation>
 <translation id="6397592254427394018">Az összes könyvjelző megnyitása &amp;inkognitóablakban</translation>
@@ -3499,7 +3448,6 @@
 <translation id="6458308652667395253">JavaScript letiltásának kezelése...</translation>
 <translation id="6459488832681039634">Keresés a kijelölésben</translation>
 <translation id="6460601847208524483">Következő keresése</translation>
-<translation id="6462080265650314920">Az alkalmazásokat "<ph name="CONTENT_TYPE" />" tartalomtípussal kell ellátni.</translation>
 <translation id="6462082050341971451">Ott van még?</translation>
 <translation id="6463795194797719782">&amp;Szerkesztés</translation>
 <translation id="6466988389784393586">&amp;Az összes könyvjelző megnyitása</translation>
@@ -3629,7 +3577,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Szeretné, hogy a Google lefordítsa az oldalt <ph name="SOURCE_LANGUAGE" /> nyelvről <ph name="TARGET_LANGUAGE" /> nyelvre?</translation>
 <translation id="6675665718701918026">Mutatóeszköz csatlakoztatva</translation>
-<translation id="6677037229676347494">A várt azonosító "<ph name="EXPECTED_ID" />", de a kapott azonosító "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">Lekérdezés URL-je</translation>
 <translation id="6680028776254050810">Felhasználóváltás</translation>
 <translation id="6680442031740878064">Rendelkezésre álló tárhely: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3769,8 +3716,6 @@
 <translation id="6903534926908201625">A <ph name="BEGIN_LINK" />Beállításokban<ph name="END_LINK" /> bármikor személyre szabhatja, hogy milyen adatokat gyűjthet a Google.</translation>
 <translation id="6904344821472985372">Fájlhozzáférés visszavonása</translation>
 <translation id="6904655473976120856">Kilépéshez nyomja meg az Alkalmazás gombot</translation>
-<translation id="6904713658985136356">A(z) <ph name="HOST" /> szeretné megosztani a képernyőt.</translation>
-<translation id="6909461304779452601">Alkalmazásokat, bővítményeket és felhasználói szkripteket nem lehet hozzáadni erről a weboldalról.</translation>
 <translation id="6910211073230771657">Törölve</translation>
 <translation id="691024665142758461">Több fájl letöltése</translation>
 <translation id="6911324888870229398">Megszűnt a hálózati kapcsolat. Ellenőrizze a kapcsolatot, vagy próbáljon másik Wi-Fi-hálózatra csatlakozni.</translation>
@@ -4107,7 +4052,6 @@
 <translation id="747114903913869239">Hiba: nem lehet dekódolni a bővítményt</translation>
 <translation id="7473891865547856676">Nem, köszönöm</translation>
 <translation id="747459581954555080">Összes visszaállítása</translation>
-<translation id="7475034671245341386">A(z) <ph name="PLUGIN_NAME" /> hibába ütközött.</translation>
 <translation id="7475671414023905704">Netscape - elveszett jelszó URL</translation>
 <translation id="7476454130948140105">Az akkumulátor töltöttségi szintje túl alacsony a frissítéshez (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Ha elfelejtette összetett jelszavát, állítsa le és állítsa vissza a <ph name="BEGIN_LINK" />Google irányítópulton<ph name="END_LINK" /> keresztül történő szinkronizálást.</translation>
@@ -4144,7 +4088,6 @@
 <translation id="7507930499305566459">Állapotjelentő tanúsítvány</translation>
 <translation id="7508545000531937079">Diavetítés</translation>
 <translation id="7513029293694390567">Automatikus bejelentkezés webhelyekre a tárolt hitelesítő adatokkal. Ha a funkció ki van kapcsolva, akkor a rendszer minden alkalommal megerősítést kér Öntől, mielőtt bejelentkezne az adott webhelyre.</translation>
-<translation id="7515670329462166359">A(z) <ph name="URL" /> URL egyedien szeretné azonosítani az eszközt a védett tartalmak lejátszásához.</translation>
 <translation id="7517569744831774757">Beállítások visszaállítása alapértelmezettre.</translation>
 <translation id="7517786267097410259">Hozzon létre egy jelszót –</translation>
 <translation id="7518150891539970662">WebRTC-naplók (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4174,7 +4117,6 @@
     létrehozni a felügyelt felhasználót.</translation>
 <translation id="756445078718366910">Böngészőablak megnyitása</translation>
 <translation id="7564847347806291057">Folyamat leállítása</translation>
-<translation id="7565291891798266313">A keresőmotor a következőre módosult: <ph name="URL" />. A keresőmotort módosító bővítmények letiltásához kattintson a Visszaállítás gombra.</translation>
 <translation id="7566118625369982896">Play-alkalmazáslinkek kezelése</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome-adatok törölve</translation>
@@ -4183,7 +4125,6 @@
 <translation id="7573172247376861652">Akkumulátor töltése</translation>
 <translation id="7576032389798113292">6×4</translation>
 <translation id="7576690715254076113">Szétválogatás</translation>
-<translation id="7577815336900970562">Wi-Fi- és mobilhálózatok használata a tartózkodási hely megállapításához</translation>
 <translation id="7579149537961810247">Webhelyek némítása</translation>
 <translation id="7580671184200851182">Azonos hang lejátszása mindegyik hangszórón (monó hang)</translation>
 <translation id="7581462281756524039">Egy karbantartó eszköz</translation>
@@ -4290,6 +4231,7 @@
 <translation id="7773726648746946405">Programfolyamat-tárolás</translation>
 <translation id="7781335840981796660">Az összes felhasználói fiók és helyi adat törlődik.</translation>
 <translation id="7782102568078991263">Nincs több javaslat a Google-tól</translation>
+<translation id="778330624322499012">Nem sikerült a(z) <ph name="PLUGIN_NAME" /> betöltése</translation>
 <translation id="7784067724422331729">A számítógép biztonsági beállításai letiltották ezt a fájlt.</translation>
 <translation id="7786207843293321886">Kilépés a Vendég munkamenetből</translation>
 <translation id="7786889348652477777">Alkalmazás új&amp;ratöltése</translation>
@@ -4452,7 +4394,6 @@
 <translation id="8001504501378762252">Előfordulhat, hogy egy webhely ellopta jelszavát</translation>
 <translation id="8004582292198964060">Böngésző</translation>
 <translation id="8008356846765065031">Az internetkapcsolat megszűnt. Kérjük, ellenőrizze az internetkapcsolatot.</translation>
-<translation id="8008765610824028412">Nem sikerült a(z) <ph name="PLUGIN_NAME" /> betöltése.</translation>
 <translation id="8008818777654712271">Bizonyos rendszer-információk és oldaltartalmak automatikus küldése a Google-nak a veszélyes alkalmazások és webhelyek felderítése érdekében</translation>
 <translation id="8012382203418782830">Az oldal fordítása megtörtént.</translation>
 <translation id="8014154204619229810">A frissítő most fut. Frissítsen egy perc múlva, és ellenőrizze az állapotát.</translation>
@@ -4569,7 +4510,6 @@
 <translation id="8191230140820435481">Alkalmazások, bővítmények és témák kezelése</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Lemezen elfoglalt méret</translation>
-<translation id="8195739004487400241">Kezdőlapja a következőre módosult: <ph name="URL" />. A kezdőlapot módosító bővítmények letiltásához kattintson a Visszaállítás gombra.</translation>
 <translation id="8199300056570174101">Hálózati (szolgáltatási) és eszköztulajdonságok</translation>
 <translation id="8200772114523450471">Folytatás</translation>
 <translation id="8202160505685531999"><ph name="DEVICE_TYPE" />-profilja frissítéséhez adja meg újra jelszavát.</translation>
@@ -4613,7 +4553,6 @@
 <translation id="8261378640211443080">A bővítmény nem a(z) <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> szolgáltatásból származik, és előfordulhat, hogy az Ön tudta nélkül lett telepítve.</translation>
 <translation id="8261387128019234107">Fiók hozzáadása a következőhöz: <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Törlés</translation>
-<translation id="826246685091802258">A(z) <ph name="BAD_FLAG" /> nincs megvalósítva ebben a buildben.</translation>
 <translation id="8263744495942430914">A(z) <ph name="FULLSCREEN_ORIGIN" /> letiltotta az egérmutatót.</translation>
 <translation id="8264718194193514834">A(z) „<ph name="EXTENSION_NAME" />” aktiválta a teljes képernyős módot.</translation>
 <translation id="8270242299912238708">PDF-dokumentumok</translation>
@@ -4714,6 +4653,7 @@
 <translation id="8454288007744638700">Vagy válasszon új hálózatot:</translation>
 <translation id="845627346958584683">Lejárat időpontja</translation>
 <translation id="8456681095658380701">Érvénytelen név</translation>
+<translation id="8457451314607652708">Könyvjelzők importálása</translation>
 <translation id="8460336040822756677">Ha kikapcsolja a Smart Lock <ph name="DEVICE_TYPE" /> eszközhöz funkciót, akkor a jövőben nem tudja feloldani Chrome-eszközeit a telefonja használatával, hanem be kell írnia jelszavát.</translation>
 <translation id="8461329675984532579">Otthoni szolgáltató neve</translation>
 <translation id="84613761564611563">Hálózatkonfigurációs UI kérése megtörtént, kérjük, várjon…</translation>
@@ -4745,7 +4685,6 @@
 <translation id="850875081535031620">Nem találtunk kártékony szoftvereket</translation>
 <translation id="8512476990829870887">Folyamat leállítása</translation>
 <translation id="851263357009351303"><ph name="HOST" /> mindig mutathasson képeket</translation>
-<translation id="8513191386157529469">A(z) „<ph name="CLIENT_NAME" />” hibakeresést hajt végre ennél a böngészőnél.</translation>
 <translation id="8521475323816527629">Gyorsan eljuthat alkalmazásaihoz</translation>
 <translation id="8523493869875972733">Módosítások megtartása</translation>
 <translation id="8523849605371521713">Házirend adta hozzá</translation>
@@ -4801,7 +4740,6 @@
 <translation id="8620765578342452535">Hálózati kapcsolatok beállítása</translation>
 <translation id="8620790565535071193">Sikertelen keresés</translation>
 <translation id="8622877356447980900">Szeretné lefordítani ezt az oldalt?</translation>
-<translation id="8623004009673949077">A „kiosk_only” jegyzékattribútummal rendelkező alkalmazást kioszk módban kell telepíteni a Chrome OS rendszeren.</translation>
 <translation id="8624205858755890468">Engedélyezi a Segédnek a kapcsolódó információk, alkalmazások és műveletek megjelenítését.</translation>
 <translation id="862542460444371744">Bővítménye&amp;k</translation>
 <translation id="8627151598708688654">Forrás kiválasztása</translation>
@@ -4950,7 +4888,6 @@
 <translation id="882204272221080310">Firmware frissítése a nagyobb biztonság érdekében.</translation>
 <translation id="8823514049557262177">Link szövegének má&amp;solása</translation>
 <translation id="8824701697284169214">Ol&amp;dal hozzáadása...</translation>
-<translation id="8827850355924932817">Wi-Fi-hálózat használata a tartózkodási hely meghatározásához</translation>
 <translation id="8828933418460119530">DNS neve</translation>
 <translation id="8830796635868321089">Nem sikerült a frissítés ellenőrzése a jelenlegi proxybeállítások használatával. Kérjük, módosítsa a <ph name="PROXY_SETTINGS_LINK_START" />proxybeállításait<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">A hálózati konfigurációt a következő szabályozza: <ph name="USER_EMAIL" />.</translation>
@@ -4982,9 +4919,7 @@
 <translation id="8879284080359814990">Megjeleníté&amp;s lapként</translation>
 <translation id="8884961208881553398">Új szolgáltatások hozzáadása</translation>
 <translation id="8885197664446363138">A Smart Lock nem áll rendelkezésre</translation>
-<translation id="8885905466771744233">A megadott bővítményhez már létezik privát kulcs. Használja újra vagy előbb törölje azt.</translation>
 <translation id="8888432776533519951">Szín:</translation>
-<translation id="8892992092192084762">A telepített téma: "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">Elnézést kérünk, de a(z) <ph name="DEVICE_LABEL" /> eszköz nem ismerhető fel.</translation>
 <translation id="8895454554629927345">Könyvjelzőlista</translation>
 <translation id="88986195241502842">Lapozás lefelé</translation>
@@ -4999,7 +4934,6 @@
 <translation id="8908902564709148335">Figyelmeztetés: engedélyezte a --scripts-require-action jelzőt ezen a számítógépen, amely korlátozza a bővítmény lehetőségeit. Előfordulhat azonban, hogy más eszközök nem támogatják ezt a jelzőt, vagy nem engedélyezik azt. Ezeken az eszközökön a bővítmény a következőket is megteheti:</translation>
 <translation id="8910146161325739742">Képernyőmegosztás</translation>
 <translation id="8910222113987937043">A könyvjelzők, előzmények, jelszavak és egyéb beállítások módosításai nem lesznek szinkronizálva Google-fiókjával. 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="8911079125461595075">A Google a(z) „<ph name="EXTENSION_NAME" />” bővítményt rosszindulatúként jelölte meg, és megakadályozta a telepítését.</translation>
 <translation id="8912793549644936705">Nyújtva</translation>
 <translation id="8915370057835397490">Javaslatok betöltése</translation>
 <translation id="8916476537757519021">Inkognitó subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5105,7 +5039,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-egér csatlakoztatva</translation>
 <translation id="9076523132036239772">Elnézést kérünk, de e-mail címének vagy jelszavának ellenőrzése sikertelen volt. Próbáljon csatlakozni egy hálózathoz.</translation>
-<translation id="907841381057066561">Nem sikerült az ideiglenes .zip fájl létrehozása a tömörítés során.</translation>
 <translation id="9084064520949870008">Megnyitás ablakként</translation>
 <translation id="9088234649737575428">A(z) <ph name="PLUGIN_NAME" /> beépülő modult letiltotta a vállalati házirend</translation>
 <translation id="9088917181875854783">Kérjük, erősítse meg, hogy ez az azonosítókulcs jelenik meg a(z) "<ph name="DEVICE_NAME" />" nevű eszközön:</translation>
@@ -5196,11 +5129,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Összetett jelszó megadása</translation>
 <translation id="939736085109172342">Új mappa</translation>
-<translation id="941543339607623937">Érvénytelen privát kulcs.</translation>
 <translation id="942532530371314860">A(z) <ph name="APP_NAME" /> megosztja a Chrome egy lapját és a hangot.</translation>
 <translation id="942954117721265519">Nincs kép ebben a könyvtárban.</translation>
 <translation id="945522503751344254">Visszajelzés küldése</translation>
-<translation id="951981865514037445">A(z) <ph name="URL" /> az Ön eszközének helyadatait akarja használni.</translation>
 <translation id="952992212772159698">Nincs aktiválva</translation>
 <translation id="9580706199804957">Nem sikerült csatlakozni a Google-szolgáltatásokhoz</translation>
 <translation id="958515377357646513">Érintse meg a továbblépéshez.</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index b6fa7ae..5c33722 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Khusus Penyandi</translation>
 <translation id="1039337018183941703">File tidak valid atau rusak</translation>
 <translation id="1042174272890264476">Komputer Anda juga dilengkapi dengan perpustakaan RLZ <ph name="SHORT_PRODUCT_NAME" /> yang tertanam di dalamnya. RLZ menetapkan tag tak unik dan tidak dapat diidentifikasi secara pribadi untuk mengukur penelusuran dan penggunaan <ph name="SHORT_PRODUCT_NAME" /> yang didorong oleh kampanye promosi tertentu. Biasanya label ini muncul di kueri Google Penelusuran di <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> ingin menyimpan data berukuran besar pada perangkat Anda secara permanen.</translation>
 <translation id="1046059554679513793">Ups, nama ini sudah digunakan!</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Tautan</translation>
 <translation id="1047726139967079566">Bookmark Halaman Ini...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Pulihkan Mesin Telusur Default?</translation>
 <translation id="1177863135347784049">Sesuaikan</translation>
 <translation id="1178581264944972037">Jeda</translation>
-<translation id="1179803038870941185"><ph name="URL" /> ingin mendapatkan kontrol penuh atas perangkat MIDI Anda.</translation>
 <translation id="1181037720776840403">Hapus</translation>
 <translation id="1183237619868651138">Tidak dapat memasang <ph name="EXTERNAL_CRX_FILE" /> di cache lokal.</translation>
 <translation id="1185924365081634987">Anda juga dapat mencoba untuk <ph name="GUEST_SIGNIN_LINK_START" />menjelajahi sebagai tamu<ph name="GUEST_SIGNIN_LINK_END" /> untuk memperbaiki kesalahan jaringan ini.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Mengakses satu file yang tersimpan di komputer Anda}other{Mengakses # file yang tersimpan di komputer Anda}}</translation>
 <translation id="1195076408729068893">Untuk memulai Smart Lock, masukkan sandi. Lain kali, Anda dapat menggunakan ponsel untuk membuka kunci <ph name="DEVICE_TYPE" /> Anda.</translation>
 <translation id="1195447618553298278">Kesalahan tak dikenal.</translation>
-<translation id="1196338895211115272">Gagal mengekspor kunci pribadi.</translation>
 <translation id="119738088725604856">Jendela screenshot</translation>
 <translation id="1197979282329025000">Kesalahan terjadi selagi mengambil informasi kemampuan printer untuk printer <ph name="PRINTER_NAME" />. Printer ini tidak dapat didaftarkan ke <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Mari memulai</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administrator Anda menyarankan nilai tertentu untuk setelan ini.</translation>
 <translation id="1225177025209879837">Memproses permintaan...</translation>
 <translation id="1225211345201532184">Item rak 5</translation>
-<translation id="1225404570112441414">Tambahkan situs ini ke rak Anda agar dapat digunakan setiap saat.</translation>
 <translation id="1227507814927581609">Autentikasi gagal saat menyambung ke "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu sistem</translation>
 <translation id="1232569758102978740">Tanpa Judul</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">File HTML Bookmark</translation>
 <translation id="1303671224831497365">Perangkat Bluetooth tidak ditemukan</translation>
 <translation id="1306606229401759371">Ubah setelan</translation>
-<translation id="1307398858972670978">Akses sandi dari perangkat apa pun di <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ups! Sistem gagal menyimpan token akses API jangka panjang untuk perangkat ini.</translation>
 <translation id="1313405956111467313">Konfigurasi proxy otomatis</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Telusuri</translation>
 <translation id="1386387014181100145">Hai.</translation>
 <translation id="138784436342154190">Pulihkan halaman awal default?</translation>
-<translation id="1389297115360905376">Yang seperti ini hanya dapat ditambahkan dari <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation>
-<translation id="1391807639023934267">Halaman dimuat lebih cepat.</translation>
 <translation id="1393283411312835250">Matahari dan awan</translation>
 <translation id="1395262318152388157">Bilah geser</translation>
 <translation id="1395730723686586365">Updater dimulai</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Anda memperbarui ke versi tidak stabil dari <ph name="PRODUCT_NAME" /> yang berisi fitur yang sedang dalam proses. Akan terjadi mogok dan bug tidak terduga. Lanjutkan dengan hati-hati.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID ekstensi "<ph name="EXTENSION_ID" />") tidak diizinkan dalam jenis sesi ini.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Wah! Gagal membuat kunci pribadi RSA acak.</translation>
 <translation id="1420834118113404499">Lisensi media</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> untuk mengizinkan penyandingan</translation>
 <translation id="1426410128494586442">Ya</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">S&amp;alin Alamat Audio</translation>
 <translation id="1465827627707997754">Irisan pizza</translation>
 <translation id="1467432559032391204">Kiri</translation>
-<translation id="1467999917853307373"><ph name="URL" /> ingin menyimpan data di perangkat Anda secara permanen.</translation>
-<translation id="1470719357688513792">Setelan cookie baru akan berlaku setelah halaman dimuat ulang.</translation>
 <translation id="1470811252759861213">Untuk mendapatkan ekstensi di semua komputer, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" tidak diupload. Ruang di Google Drive Anda tidak cukup.</translation>
 <translation id="1475502736924165259">Anda memiliki sertifikat pada file yang tidak sesuai dengan kategori lain mana pun</translation>
@@ -349,7 +339,7 @@
     proxy bekerja. Jika Anda merasa tidak seharusnya menggunakan
     server proxy, sesuaikan <ph name="LINK_START" />setelan proxy<ph name="LINK_END" /> Anda.</translation>
 <translation id="1510907582379248592">Sandi tersimpan untuk <ph name="ORIGIN" />:</translation>
-<translation id="1511388193702657997">Tawaran untuk menyimpan sandi web Anda</translation>
+<translation id="1511388193702657997">Tawarkan untuk menyimpan sandi web Anda</translation>
 <translation id="1512210426710821809">Satu-satunya cara untuk mengurungkan tindakan ini adalah dengan menginstal ulang <ph name="IDS_SHORT_PRODUCT_OS_NAME" /></translation>
 <translation id="1514215615641002767">Tambahkan ke desktop</translation>
 <translation id="151501797353681931">Diimpor Dari Safari</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Kursor mouse besar</translation>
 <translation id="1543284117603151572">Diimpor Dari Edge</translation>
 <translation id="1545177026077493356">Mode Kios Otomatis</translation>
+<translation id="1545775234664667895">Tema "<ph name="THEME_NAME" />" telah terinstal</translation>
 <translation id="1545786162090505744">URL dengan %s di tempat kueri</translation>
 <translation id="1546280085599573572">Ekstensi ini telah mengubah halaman apa yang ditampilkan saat Anda mengeklik tombol Beranda.</translation>
 <translation id="1547572086206517271">Segarkan halaman</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />meninjau<ph name="END_BOLD" /> situs web yang dikunjungi pengguna yang dilindungi, dan
     <ph name="BEGIN_BOLD" />mengelola<ph name="END_BOLD" /> setelan lainnya.</translation>
 <translation id="1648943974594387137">Detail info masuk sudah usang</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> garis tidak ditampilkan&gt;</translation>
 <translation id="1650371550981945235">Tampilkan opsi masukan</translation>
 <translation id="1650709179466243265">Tambahkan www. dan .com dan buka alamat</translation>
 <translation id="1651008383952180276">Anda harus memasukkan frasa sandi yang sama dua kali</translation>
-<translation id="1652972346408808053">Sandi disimpan. Akses sandi Anda dari perangkat apa pun di <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Tambahkan printer ke Google Cloud Print agar Anda dapat mencetak dari mana saja.}other{Tambahkan # printer ke Google Cloud Print agar Anda dapat mencetak dari mana saja.}}</translation>
 <translation id="1657406563541664238">Bantu menjadikan <ph name="PRODUCT_NAME" /> lebih baik dengan mengirim statistik penggunaan dan laporan kerusakan secara otomatis ke Google</translation>
 <translation id="1658424621194652532">Halaman ini mengakses mikrofon anda.</translation>
@@ -506,7 +495,7 @@
 <translation id="1756681705074952506">Metode masukan</translation>
 <translation id="175772926354468439">Aktifkan tema</translation>
 <translation id="1758018619400202187">EAP-TLS</translation>
-<translation id="17584710573359123">Lihat di Toko Web Chrome</translation>
+<translation id="17584710573359123">Lihat di Chrome Web Store</translation>
 <translation id="1758831820837444715">Konfigurasikan jaringan Ethernet</translation>
 <translation id="1763046204212875858">Buat pintasan aplikasi</translation>
 <translation id="1763108912552529023">Terus menjelajah</translation>
@@ -654,7 +643,7 @@
 <translation id="1999115740519098545">Saat memulai</translation>
 <translation id="2006638907958895361">Buka Link di <ph name="APP" /></translation>
 <translation id="2007404777272201486">Laporkan Masalah...</translation>
-<translation id="2015632741368427174">Pengalihan diblokir ke situs:</translation>
+<translation id="2015632741368427174">Pengalihan ke situs di bawah ini diblokir:</translation>
 <translation id="2016430552235416146">Tradisional</translation>
 <translation id="2017334798163366053">Nonaktifkan koleksi data kinerja</translation>
 <translation id="2017836877785168846">Hapus histori dan pelengkapan otomatis di kolom URL.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Lanjutkan pencekalan cookie</translation>
 <translation id="204622017488417136">Perangkat Anda akan dikembalikan ke versi Chrome yang terpasang sebelumnya. Semua akun pengguna dan data lokal akan dihapus. Tindakan ini tidak dapat diurungkan.</translation>
 <translation id="2048182445208425546">Mengakses lalu lintas jaringan Anda</translation>
-<translation id="2049137146490122801">Akses ke file lokal pada komputer Anda dinonaktifkan oleh administrator.</translation>
 <translation id="204914487372604757">Buat pintasan</translation>
 <translation id="2050339315714019657">Potret</translation>
 <translation id="2053312383184521053">Data Status Menganggur</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Belum dimuat</translation>
 <translation id="2107494551712864447">Tambahkan sidik jari</translation>
-<translation id="2111843886872897694">Aplikasi harus disediakan dari hosting yang dipengaruhinya.</translation>
 <translation id="2112877397266219826">Aktifkan pengontrol sentuh untuk menyiapkan</translation>
 <translation id="21133533946938348">Pasang pin pada Tab</translation>
 <translation id="2113479184312716848">Buka &amp;Berkas...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Beri Tahu Kami Apa Yang Terjadi</translation>
 <translation id="2229161054156947610">Lebih dari 1 jam lagi</translation>
 <translation id="222931766245975952">File terpotong</translation>
-<translation id="222949136907494149"><ph name="URL" /> ingin menggunakan lokasi komputer Anda.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Tidak dapat membuat folder "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klik untuk melihat Doodle hari ini</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Selalu blokir akses mikrofon</translation>
 <translation id="2367972762794486313">Tampilkan aplikasi</translation>
 <translation id="2371076942591664043">Buka setelah &amp;selesai</translation>
-<translation id="237336063998926520">Gunakan alamat IP untuk menentukan lokasi</translation>
 <translation id="2377319039870049694">Beralih ke tampilan daftar</translation>
 <translation id="2377667304966270281">Hard Fault</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> file dipilih</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ingin menyalin file dari <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID Kunci Otoritas Sertifikasi</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ditambahkan</translation>
-<translation id="246335896104539386">Impor Bookmark</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Tidak dapat terhubung ke ponsel. Pastikan Anda menggunakan ponsel Android yang kompatibel, yang diaktifkan dan ada dalam jangkauan. &lt;a&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Ekstensi yang tidak didukung dinonaktifkan</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Uninstal</translation>
 <translation id="2487067538648443797">Tambahkan bookmark baru</translation>
 <translation id="248861575772995840">Ponsel tidak dapat ditemukan. Pastikan Bluetooth <ph name="DEVICE_TYPE" /> Anda aktif. &lt;a&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Plugin (<ph name="PLUGIN_NAME" />) tidak merespons.</translation>
 <translation id="2489428929217601177">kemarin</translation>
 <translation id="2489918096470125693">Tambahkan &amp;Map...</translation>
 <translation id="249113932447298600">Maaf, saat ini perangkat <ph name="DEVICE_LABEL" /> tidak didukung.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Selamat! Layanan data '<ph name="NAME" />' Anda telah diaktifkan dan siap digunakan.</translation>
 <translation id="2566124945717127842">Powerwash untuk mengatur ulang perangkat <ph name="IDS_SHORT_PRODUCT_NAME" /> agar jadi seperti baru.</translation>
 <translation id="2568774940984945469">Infobar Container</translation>
-<translation id="2570000010887652771">Lebih hemat data.</translation>
 <translation id="257088987046510401">Tema</translation>
 <translation id="2572032849266859634">Akses hanya baca ke <ph name="VOLUME_NAME" /> telah diberikan.</translation>
 <translation id="2573269395582837871">Pilih gambar dan nama</translation>
 <translation id="2575247648642144396">Ikon ini akan terlihat saat ekstensi dapat berperan di halaman aktif. Gunakan ekstensi ini dengan mengeklik ikon atau dengan menekan <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Ponsel tidak dapat ditemukan. Pastikan <ph name="DEVICE_TYPE" /> Anda terhubung ke Wi-Fi atau jaringan seluler. &lt;a&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Sudah ada file CRX dengan nama ini.</translation>
 <translation id="257779572837908839">Siapkan sebagai Chromebox untuk meeting</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Tidak dapat melepaskan volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Jika Anda menghapus sertifikat Otoritas Sertifikasi (CA), browser tidak akan lagi memercayai semua sertifikat yang dikeluarkan oleh CA.</translation>
 <translation id="2653659639078652383">Kirim</translation>
 <translation id="265390580714150011">Nilai Bidang</translation>
-<translation id="2654286334048437383">Ekspor Bookmark</translation>
 <translation id="2655386581175833247">Sertifikat pengguna:</translation>
 <translation id="2660779039299703961">Acara</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Tambahkan Galeri Media menurut Direktori</translation>
 <translation id="2908789530129661844">Memperkecil layar</translation>
 <translation id="2910318910161511225">Sambungkan ke jaringan dan coba lagi</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ingin menggunakan mikrofon Anda.</translation>
 <translation id="2913331724188855103">Izinkan situs untuk menyimpan dan membaca data cookie (disarankan)</translation>
 <translation id="2916073183900451334">Menekan Tab pada halaman web akan menyorot link, juga bidang formulir</translation>
 <translation id="2916745397441987255">Telusuri ekstensi</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">Jendela ke atas</translation>
 <translation id="3053013834507634016">Penggunaan Kunci Sertifikat</translation>
 <translation id="3057861065630527966">Cadangkan foto dan video</translation>
-<translation id="3060379269883947824">Aktifkan klik untuk diucapkan</translation>
+<translation id="3060379269883947824">Aktifkan fitur klik untuk diucapkan</translation>
 <translation id="3061707000357573562">Layanan Patch</translation>
 <translation id="3064410671692449875">Data tidak cukup</translation>
 <translation id="3065041951436100775">Masukan tab yang ditutup.</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Mendengarkan...</translation>
 <translation id="3141917231319778873">Permintaan yang diberikan tidak didukung di: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">SELESAI</translation>
-<translation id="3144135466825225871">Gagal mengganti file crx. Cek apakah file sedang digunakan.</translation>
 <translation id="3144647712221361880">Buka link sebagai</translation>
 <translation id="3149510190863420837">Aplikasi Chrome</translation>
 <translation id="3150927491400159470">Muat Ulang Keras</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Selalu Jalankan di Semua Situs</translation>
 <translation id="3312424061798279731">Bahasa yang diaktifkan</translation>
 <translation id="3312903956926554846">Instal ke desktop</translation>
-<translation id="3313473140726597081">Halaman awal diubah ke <ph name="URL" />. Untuk menonaktifkan ekstensi yang mengubah halaman awal, klik Pulihkan.</translation>
 <translation id="3313590242757056087">Untuk menyetel situs web yang dapat dilihat pengguna yang dilindungi, Anda dapat mengonfigurasi batasan
     dan setelan dengan mengunjungi <ph name="MANAGEMENT_URL" />.
     Jika Anda tidak mengubah setelan default, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Info aplikasi</translation>
 <translation id="3335947283844343239">Buka Kembali Tab yang Tertutup</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> diblokir karena sudah usang.</translation>
 <translation id="3340978935015468852">setelan</translation>
 <translation id="3341703758641437857">Izinkan akses ke URL file</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ingin menghapus ekstensi ini.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Bookmark Ditambahkan</translation>
 <translation id="3389312115541230716">Klik kanan ikon <ph name="SMALL_PRODUCT_LOGO" /> di bilah tugas</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> ingin menggunakan kamera dan mikrofon Anda.</translation>
 <translation id="3396331542604645348">Printer yang dipilih tidak tersedia atau tidak dipasang dengan semestinya. Periksa printer Anda atau coba pilih printer lainnya.</translation>
 <translation id="3399432415385675819">Notifikasi akan dinonaktifkan</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1594,7 +1569,7 @@
 <translation id="3423858849633684918">Harap Luncurkan Ulang <ph name="PRODUCT_NAME" /></translation>
 <translation id="3424969259347320884">Jelaskan yang Anda Lakukan Saat Tab Error</translation>
 <translation id="3427092606871434483">Izinkan (default)</translation>
-<translation id="3428419049384081277">Anda sudah login!</translation>
+<translation id="3428419049384081277">Anda sudah login</translation>
 <translation id="3429275422858276529">Bookmark halaman ini agar mudah ditemukan nanti</translation>
 <translation id="3429599832623003132">$1 item</translation>
 <translation id="3432227430032737297">Buang Semua Yang Ditampilkan</translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome memperbarui secara otomatis jadi Anda selalu memiliki versi terbaru</translation>
 <translation id="3551320343578183772">Tutup Tab</translation>
 <translation id="3552780134252864554">Dihapus saat Keluar</translation>
-<translation id="355298399003313926"><ph name="URL" /> ingin merespons acara aksesibilitas.</translation>
 <translation id="3555812735919707620">Buang ekstensi</translation>
 <translation id="3556000484321257665">Mesin telusur diubah ke <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Nilai masukan untuk kunci pribadi harus jalur yang valid.</translation>
 <translation id="3563432852173030730">Aplikasi Kios tidak dapat didownload.</translation>
 <translation id="3564334271939054422">Jaringan Wi-Fi yang Anda gunakan (<ph name="NETWORK_ID" />) mungkin mengharuskan Anda mengunjungi halaman masuknya.</translation>
 <translation id="3564708465992574908">Tingkat Zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Kendala Nama Sertifikat</translation>
 <translation id="3596235046596950091">Aktifkan layanan awan</translation>
 <translation id="3599863153486145794">Menghapus histori dari semua perangkat yang dibuat login. Akun Google Anda mungkin memiliki bentuk histori browsing lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Akses ke file lokal di perangkat Anda dinonaktifkan oleh administrator Anda.</translation>
 <translation id="3600792891314830896">Mematikan suara situs yang memutar suara</translation>
 <translation id="3603177256297531067">Halaman Ini Tidak Dapat Diterjemahkan</translation>
 <translation id="3603533104205588786">Anda dapat mengklik bintang untuk mem-bookmark halaman</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Screenshot dinonaktifkan</translation>
 <translation id="3625870480639975468">Setel ulang zoom</translation>
 <translation id="3626281679859535460">Kecerahan</translation>
-<translation id="3627052133907344175">Ekstensi memerlukan "<ph name="IMPORT_NAME" />" dengan versi minimum "<ph name="IMPORT_VERSION" />", namun hanya versi "<ph name="INSTALLED_VERSION" />" yang terpasang.</translation>
 <translation id="3627320433825461852">Kurang dari 1 menit lagi</translation>
 <translation id="3627588569887975815">Buka link di jendela penya&amp;maran</translation>
 <translation id="3627671146180677314">Netscape Certificate Renewal Time</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Setelan bahasa</translation>
 <translation id="3668823961463113931">Penangan</translation>
 <translation id="3670229581627177274">Aktifkan Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> ingin menyimpan data besar pada komputer lokal Anda secara permanen.</translation>
 <translation id="3672681487849735243">Kesalahan pabrik terdeteksi</translation>
 <translation id="367645871420407123">biarkan kosong jika Anda ingin menyetel sandi akar ke nilai gambar uji default</translation>
 <translation id="3678156199662914018">Ekstensi: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Anda sedang offline</translation>
 <translation id="3788401245189148511">Aplikasi/ekstensi dapat:</translation>
 <translation id="3789841737615482174">Instal</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> hanya bekerja di desktop.</translation>
 <translation id="379082410132524484">Kartu Anda telah habis masa berlakunya</translation>
 <translation id="3792890930871100565">Lepaskan sambungan printer</translation>
 <translation id="379422718204375917">Gunakan Smart Lock untuk login ke akun Anda</translation>
-<translation id="3794595850995182458">Keluar dari halaman</translation>
 <translation id="3796648294839530037">Jaringan Favorit:</translation>
 <translation id="3797900183766075808">&amp;Menelusuri <ph name="SEARCH_ENGINE" /> untuk “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Memungkinkan Anda mengaktifkan/menonaktifkan ketuk untuk mengeklik</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Aktifkan <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Jenis penyimpanan yang dimasukkan tidak valid.</translation>
 <translation id="3983586614702900908">perangkat dari vendor tak dikenal</translation>
-<translation id="3984413272403535372">Kesalahan ketika menandai ekstensi.</translation>
 <translation id="3987938432087324095">Maaf, kurang jelas.</translation>
 <translation id="3988996860813292272">Pilih zona waktu</translation>
 <translation id="3989635538409502728">Keluar</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Menginstal aplikasi dan game dari Google Play di Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Pelajari lebih lanjut&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Terima untuk grup</translation>
 <translation id="4090103403438682346">Mengaktifkan Akses Terverifikasi</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> diperlukan untuk menampilkan beberapa elemen pada halaman ini.</translation>
 <translation id="4090535558450035482">(Ekstensi ini dikelola dan tidak dapat dibuang.)</translation>
 <translation id="4091434297613116013">lembaran kertas</translation>
 <translation id="4093955363990068916">File lokal:</translation>
@@ -2085,7 +2051,7 @@
 <translation id="4180684688621252156">Layanan pencetakan</translation>
 <translation id="4180788401304023883">Hapus sertifikat CA "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="4181841719683918333">Bahasa</translation>
-<translation id="4184885522552335684">Seret untuk memindahkan tampilan</translation>
+<translation id="4184885522552335684">Tarik untuk memindahkan tampilan</translation>
 <translation id="4193154014135846272">Dokumen Google</translation>
 <translation id="4194570336751258953">Aktifkan ketuk-untuk-mengeklik</translation>
 <translation id="4195643157523330669">Buka di tab baru</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kini dapat menyinkronkan sandi.</translation>
 <translation id="4715553623069266137">sangat singkat (0,8 dtk)</translation>
 <translation id="4716483597559580346">Powerwash untuk keamanan tambahan</translation>
-<translation id="471800408830181311">Gagal mengeluarkan kunci pribadi.</translation>
 <translation id="4720113199587244118">Tambahkan Perangkat</translation>
 <translation id="4720185134442950733">Jaringan data seluler</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> berbagi layar Anda.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Kuat</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ingin berkomunikasi dengan ekstensi "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Terima</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ingin menggunakan kamera Anda.</translation>
 <translation id="4920887663447894854">Situs berikut telah dicekal agar tidak melacak lokasi Anda pada halaman ini:</translation>
 <translation id="492299503953721473">Hapus aplikasi Android</translation>
 <translation id="4923279099980110923">Ya, saya ingin membantu</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Ekstensi ini berisi software perusak.</translation>
 <translation id="498294082491145744">Mengubah setelan yang mengontrol akses situs web ke fitur seperti cookie, JavaScript, plugin, geolokasi, mikrofon, kamera, dll.</translation>
 <translation id="4988526792673242964">Halaman</translation>
-<translation id="4988792151665380515">Gagal mengekspor kunci publik.</translation>
 <translation id="49896407730300355">Putar &amp;berlawanan arah jarum jam</translation>
 <translation id="4989966318180235467">Periksa halaman latar &amp;belakang</translation>
 <translation id="4990343175649730969">Download Alat Pembersih Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Jangan tampilkan pemberitahuan ini lagi</translation>
 <translation id="5027550639139316293">Sertifikat Email</translation>
 <translation id="5027562294707732951">Tambahkan ekstensi</translation>
-<translation id="5028012205542821824">Pemasangan tidak diaktifkan.</translation>
 <translation id="5029568752722684782">Hapus salinan</translation>
 <translation id="5030338702439866405">Diterbitkan Oleh</translation>
 <translation id="5036662165765606524">Jangan izinkan situs apa pun mendownload beberapa file secara otomatis</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Terjadi kesalahan.</translation>
 <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang kooperatif</translation>
 <translation id="5097002363526479830">Gagal menyambung ke jaringan '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Tidak dapat menemukan jalur pasti ke direktori untuk masuk.</translation>
 <translation id="5099354524039520280">ke atas</translation>
 <translation id="5100114659116077956">Untuk menyajikan fitur terbaru kepada Anda, Chromebox perlu diperbarui.</translation>
 <translation id="5101042277149003567">Buka semua bookmark</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Tampilkan dalam folder</translation>
 <translation id="5171045022955879922">Telusuri atau ketik URL</translation>
 <translation id="5171343362375269016">Memori yang Ditukar</translation>
-<translation id="5175870427301879686"><ph name="URL" /> ingin menyimpan data di komputer lokal Anda secara permanen.</translation>
 <translation id="5177479852722101802">Terus blokir akses mikrofon dan kamera</translation>
 <translation id="5177526793333269655">Tampilan thumbnail</translation>
 <translation id="5177549709747445269">Anda menggunakan data seluler</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Format perangkat ini</translation>
 <translation id="5293170712604732402">Memulihkan setelan ke default aslinya</translation>
 <translation id="5298219193514155779">Tema dibuat oleh</translation>
-<translation id="5298363578196989456">Tidak dapat mengimpor ekstensi "<ph name="IMPORT_NAME" />" karena bukan modul yang dibagikan.</translation>
 <translation id="5299109548848736476">Jangan Lacak</translation>
 <translation id="5299682071747318445">Semua data dienkripsi dengan frasa sandi sinkronisasi Anda</translation>
 <translation id="5300589172476337783">Tampilkan</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" ingin menyandingkan</translation>
 <translation id="5332624210073556029">Zona waktu:</translation>
 <translation id="5334142896108694079">Cache Skrip</translation>
-<translation id="533433379391851622">Versi yang diharapkan "<ph name="EXPECTED_VERSION" />", tapi versinya adalah "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Lihat sumber</translation>
 <translation id="5335458522276292100">Mem-backup <ph name="FILE_COUNT" /> ke <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Dipasang oleh pihak ketiga.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Izinkan situs untuk memutar suara</translation>
 <translation id="5390284375844109566">Basis data yang diindeks</translation>
 <translation id="5390743329570580756">Kirim untuk</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> pada <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses komputer Anda.</translation>
 <translation id="5397794290049113714">Anda</translation>
 <translation id="5398572795982417028">Di luar referensi halaman batas, batasannya adalah <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Iklan diblokir</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Pulihkan Semua Tab</translation>
 <translation id="5486261815000869482">Konfirmasi sandi</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> membagikan layar Anda dengan <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Nilai masukan untuk kunci pribadi harus ada.</translation>
 <translation id="5486561344817861625">Simulasikan Mulai Ulang Browser</translation>
 <translation id="5487521232677179737">Hapus data</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' disalin</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Update akan didownload menggunakan data seluler sebesar <ph name="UPDATE_SIZE_MB" /> MB. Ingin melanjutkan?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Mesin telusur lainnya</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> pada <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses perangkat Anda.</translation>
 <translation id="5608580678041221894">Tap tombol berikut untuk menyesuaikan atau memindahkan area pemangkasan</translation>
 <translation id="5609231933459083978">Tampaknya aplikasi ini tidak valid.</translation>
 <translation id="5610038042047936818">Beralih ke mode kamera</translation>
@@ -2977,7 +2932,7 @@
 <translation id="563535393368633106">Tanyakan sebelum mengakses (disarankan)</translation>
 <translation id="5636996382092289526">Untuk menggunakan <ph name="NETWORK_ID" />, pertama Anda harus <ph name="LINK_START" />mengunjungi halaman proses masuk jaringan<ph name="LINK_END" />, yang akan otomatis terbuka dalam beberapa detik. Jika hal itu tidak terjadi, jaringan tidak akan dapat digunakan.</translation>
 <translation id="5637476008227280525">Data seluler aktif</translation>
-<translation id="5638309510554459422">Temukan ekstensi dan tema di <ph name="BEGIN_LINK" />Toko Web Chrome<ph name="END_LINK" /></translation>
+<translation id="5638309510554459422">Temukan ekstensi dan tema di <ph name="BEGIN_LINK" />Chrome Web Store<ph name="END_LINK" /></translation>
 <translation id="5638497698949808140">Diupdate <ph name="HOURS" /> jam yang lalu</translation>
 <translation id="5639549361331209298">Muat ulang halaman ini, tahan untuk melihat opsi lainnya</translation>
 <translation id="5642508497713047">Penandatangan CRL</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Diterjemahkan</translation>
 <translation id="5991049340509704927">Memperbesar</translation>
 <translation id="5993332328670040093">Penggunaan data Anda tidak akan diukur lagi.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> mungkin tidak dapat tetap dimutakhirkan secara otomatis.</translation>
 <translation id="600424552813877586">Aplikasi tidak valid.</translation>
 <translation id="6005695835120147974">Router Media</translation>
 <translation id="6006484371116297560">Klasik</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Cadangan Awan</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6040852767465482106">Identitas Anonim</translation>
+<translation id="6041155700700864984">Keluar dari Layar Penuh</translation>
 <translation id="604124094241169006">Otomatis</translation>
 <translation id="6042169520002885235">Pilih model dan produsen printer</translation>
 <translation id="6042308850641462728">Lainnya</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Muat Ulang Normal</translation>
 <translation id="6059652578941944813">Hierarki Sertifikat</translation>
 <translation id="6059925163896151826">Perangkat USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> telah error.</translation>
 <translation id="6064217302520318294">Kunci layar</translation>
 <translation id="6065289257230303064">Atribut Direktori Subjek Sertifikat</translation>
 <translation id="6068338049763724728">Aktifkan pendaftaran jarak jauh</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Memungkinkan Anda menyesuaikan resolusi layar</translation>
 <translation id="6238923052227198598">Tampilkan catatan terbaru di layar kunci</translation>
 <translation id="6239558157302047471">Muat ulang &amp;frame</translation>
-<translation id="624022915548992686">Keluar dari Halaman</translation>
 <translation id="6241530762627360640">Mengakses informasi tentang perangkat Bluetooth yang disandingkan dengan sistem Anda dan menemukan perangkat Bluetooth di sekitarnya.</translation>
 <translation id="6243774244933267674">Server tidak tersedia</translation>
 <translation id="6246413617632217567">Pengguna yang dilindungi tersebut tidak dapat diimpor. Periksa izin dan ruang hard drive Anda, lalu coba lagi.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Kesalahan jaringan tidak dikenal</translation>
 <translation id="6313641880021325787">KELUAR VR</translation>
 <translation id="6314819609899340042">Anda berhasil mengaktifkan fitur debug di perangkat <ph name="IDS_SHORT_PRODUCT_NAME" /> ini.</translation>
-<translation id="6315343732431721770">Halaman awal diubah untuk menyertakan <ph name="URL" />. Untuk menonaktifkan ekstensi yang mengubah halaman awal, klik Pulihkan.</translation>
 <translation id="6315493146179903667">Pindahkan Semua ke Depan</translation>
 <translation id="6316806695097060329">Perangkat <ph name="SHORT_PRODUCT_NAME" /> ini didesain untuk memberikan pengalaman web terbaik kepada Anda.</translation>
 <translation id="6317318380444133405">Tidak didukung lagi.</translation>
 <translation id="6317369057005134371">Menunggu jendela aplikasi...</translation>
 <translation id="6318407754858604988">Download dimulai</translation>
-<translation id="6322279351188361895">Gagal membaca kunci pribadi.</translation>
 <translation id="6325191661371220117">Nonaktifkan luncurkan otomatis</translation>
 <translation id="6326175484149238433">Hapus dari Chrome</translation>
 <translation id="6326855256003666642">Jumlah aktivitas yang Tetap Aktif</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Pilih yang akan disinkronkan</translation>
 <translation id="6333064448949140209">File akan dikirim ke Google untuk proses debug</translation>
 <translation id="6333834492048057036">Memfokuskan bilah alamat untuk penelusuran</translation>
-<translation id="6336907568130557310">Sandi akan terlihat oleh orang yang dapat melihat file yang diekspor. Jangan bagikan file ke semua orang dan hapus setelah mengimpornya.</translation>
 <translation id="6339668969738228384">Buat profil baru untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Tidak dapat terhubung dengan server. Harap periksa koneksi jaringan dan coba lagi. Jika masalah berlanjut, nyalakan ulang Chromebook.</translation>
 <translation id="6340071272923955280">Protokol Pencetakan Internet (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Situs dapat menyimpan dan membaca data cookie</translation>
 <translation id="6388771388956873507">Temukan sensor sidik jari di perangkat dan sentuh sensor tersebut dengan jari Anda</translation>
 <translation id="6390799748543157332">Halaman yang Anda lihat di jendela ini tidak akan muncul dalam histori browser dan tidak meninggalkan jejak lain, seperti cookie, di komputer setelah Anda menutup semua jendela Tamu yang terbuka. Namun, file apa pun yang Anda download akan tersimpan.</translation>
-<translation id="6391538222494443604">Direktori masukan harus ada.</translation>
 <translation id="6395423953133416962">Kirim <ph name="BEGIN_LINK1" />informasi sistem<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />metrik<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Berhenti Berbicara</translation>
 <translation id="6397592254427394018">Buka semua bookmark di &amp;jendela penyamaran</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Kelola pencekalan JavaScript...</translation>
 <translation id="6459488832681039634">Gunakan Pilihan untuk Temukan</translation>
 <translation id="6460601847208524483">Temukan Berikutnya</translation>
-<translation id="6462080265650314920">Aplikasi harus disediakan dengan jenis konten "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Anda masih di sana?</translation>
 <translation id="6463795194797719782">&amp;Edit</translation>
 <translation id="6466988389784393586">&amp;Buka Semua Bookmark</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Ingin Google menerjemahkan halaman ini dari <ph name="SOURCE_LANGUAGE" /> ke <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Perangkat penunjuk telah tersambung</translation>
-<translation id="6677037229676347494">ID yang diharapkan "<ph name="EXPECTED_ID" />", tapi ID-nya adalah "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL Kueri</translation>
 <translation id="6680028776254050810">Alihkan Pengguna</translation>
 <translation id="6680442031740878064">Tersedia: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3673,7 +3620,7 @@
 <translation id="6743841972744298686">Setelan sinkronisasi</translation>
 <translation id="6745592621698551453">Perbarui sekarang</translation>
 <translation id="6746124502594467657">Berpindah ke bawah</translation>
-<translation id="674632704103926902">Aktifkan ketuk seret</translation>
+<translation id="674632704103926902">Aktifkan ketuk tarik</translation>
 <translation id="6746392203843147041">keraskan vol.</translation>
 <translation id="6748217015615267851">Perender: <ph name="RENDERER_URL" /></translation>
 <translation id="6748465660675848252">Anda dapat melanjutkan, namun hanya setelan dan data yang disinkronkan yang akan dipulihkan. Semua data lokal akan hilang.</translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Anda dapat menyesuaikan informasi yang dikumpulkan Google di <ph name="BEGIN_LINK" />Setelan<ph name="END_LINK" /> kapan saja.</translation>
 <translation id="6904344821472985372">Cabut akses file</translation>
 <translation id="6904655473976120856">Tekan tombol Aplikasi untuk keluar</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> ingin berbagi layar Anda.</translation>
-<translation id="6909461304779452601">Aplikasi, ekstensi, dan skrip pengguna tidak dapat ditambahkan dari situs web ini.</translation>
 <translation id="6910211073230771657">Dihapus</translation>
 <translation id="691024665142758461">Mendownload beberapa file</translation>
 <translation id="6911324888870229398">Koneksi jaringan terputus. Harap periksa koneksi atau coba jaringan Wi-Fi lain.</translation>
@@ -3810,7 +3755,7 @@
 <translation id="6979737339423435258">Semua</translation>
 <translation id="6980462514016882061">Google dapat menggunakan histori penjelajahan Anda untuk mempersonalisasi Penelusuran, iklan, dan layanan Google lainnya</translation>
 <translation id="6981982820502123353">Aksesibilitas</translation>
-<translation id="6983201004195852174">Tekan dan tahan tombol Penelusuran, lalu klik atau seret untuk memilih konten yang akan dibaca dengan lantang</translation>
+<translation id="6983201004195852174">Tekan dan tahan tombol Penelusuran, lalu klik atau tarik untuk memilih konten yang akan dibaca dengan lantang</translation>
 <translation id="6983783921975806247">OID terdaftar</translation>
 <translation id="6983991971286645866">Semua pengeditan akan disimpan ke $1.</translation>
 <translation id="6984299437918708277">Pilih gambar yang akan ditampilkan untuk akun Anda di layar login</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Kesalahan: Tidak dapat mendekodekan ekstensi</translation>
 <translation id="7473891865547856676">Lain Kali</translation>
 <translation id="747459581954555080">Pulihkan semua</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> telah mengalami error.</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7476454130948140105">Baterai terlalu lemah untuk mengupdate (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Jika lupa frasa sandi, berhenti dan setel ulang Sinkronisasi melalui <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Sertifikat Penanggap Status</translation>
 <translation id="7508545000531937079">Rangkai Slide</translation>
 <translation id="7513029293694390567">Otomatis login ke situs menggunakan kredensial yang tersimpan. Jika dinonaktifkan, Anda akan dimintai konfirmasi setiap kali login ke situs.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> ingin mengidentifikasi perangkat Anda secara unik guna memutar konten yang dilindungi.</translation>
 <translation id="7517569744831774757">Memulihkan setelan ke default aslinya.</translation>
 <translation id="7517786267097410259">Buat sandi -</translation>
 <translation id="7518150891539970662">Log WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     mencoba membuat pengguna yang dilindungi lagi.</translation>
 <translation id="756445078718366910">Buka Jendela Browser</translation>
 <translation id="7564847347806291057">Akhiri proses</translation>
-<translation id="7565291891798266313">Mesin telusur diubah menjadi <ph name="URL" />. Untuk menonaktifkan ekstensi yang mengubah mesin telusur, klik Pulihkan.</translation>
 <translation id="7566118625369982896">Kelola link aplikasi Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Data Chrome telah dihapus</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Pengisian Daya Beterai</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Padukan</translation>
-<translation id="7577815336900970562">Menggunakan WiFi atau jaringan seluler untuk menentukan lokasi</translation>
 <translation id="7579149537961810247">Matikan Notifikasi Situs</translation>
 <translation id="7580671184200851182">Putar audio yang sama melalui semua speaker (audio mono)</translation>
 <translation id="7581462281756524039">Alat pembersih</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Penyimpanan sesi</translation>
 <translation id="7781335840981796660">Semua akun dan data lokal pengguna akan dihapus.</translation>
 <translation id="7782102568078991263">Tidak ada lagi saran dari Google</translation>
+<translation id="778330624322499012">Tidak dapat memuat <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Setelan keamanan di komputer Anda memblokir file ini.</translation>
 <translation id="7786207843293321886">Keluar dari Sesi Tamu</translation>
 <translation id="7786889348652477777">&amp;Muat Ulang Aplikasi</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Sebuah situs mungkin telah mencuri sandi Anda</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Internet terputus. Periksa sambungan internet Anda.</translation>
-<translation id="8008765610824028412">Tidak dapat memuat <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Mengirim sebagian informasi sistem dan konten halaman secara otomatis ke Google untuk membantu mendeteksi aplikasi dan situs berbahaya</translation>
 <translation id="8012382203418782830">Halaman ini telah diterjemahkan.</translation>
 <translation id="8014154204619229810">Alat pembaru sedang berjalan. Segarkan dalam satu menit untuk memeriksa lagi.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Mengelola aplikasi, ekstensi, dan tema Anda</translation>
 <translation id="8191453843330043793">Pemecah Proxy V8</translation>
 <translation id="8195027750202970175">Ukuran di disk</translation>
-<translation id="8195739004487400241">Halaman beranda diubah menjadi <ph name="URL" />. Untuk menonaktifkan ekstensi yang mengubah beranda, klik Pulihkan.</translation>
 <translation id="8199300056570174101">Properti Perangkat dan Jaringan (Layanan)</translation>
 <translation id="8200772114523450471">Lanjutkan</translation>
 <translation id="8202160505685531999">Masukkan kembali sandi untuk memperbarui profil <ph name="DEVICE_TYPE" /> Anda.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Ekstensi ini tidak tercantum dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa sepengetahuan Anda.</translation>
 <translation id="8261387128019234107">Tambahkan akun untuk <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Hapus</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> tidak diterapkan di versi ini.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> telah menonaktifkan kursor mouse Anda.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" memicu layar penuh.</translation>
 <translation id="8270242299912238708">Dokumen PDF</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Atau, pilih jaringan baru:</translation>
 <translation id="845627346958584683">Waktu Kedaluwarsa</translation>
 <translation id="8456681095658380701">Nama tidak valid</translation>
+<translation id="8457451314607652708">Impor bookmark</translation>
 <translation id="8460336040822756677">Jika fitur Smart Lock untuk <ph name="DEVICE_TYPE" /> dinonaktifkan, perangkat Chrome tidak dapat dibuka menggunakan ponsel. Anda perlu mengetikkan sandi untuk membukanya.</translation>
 <translation id="8461329675984532579">Nama penyedia rumah</translation>
 <translation id="84613761564611563">Antarmuka konfigurasi jaringan diminta, harap tunggu...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Software berbahaya tidak ditemukan</translation>
 <translation id="8512476990829870887">Akhiri Proses</translation>
 <translation id="851263357009351303">Selalu izinkan <ph name="HOST" /> menampilkan gambar</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" melakukan debug pada browser ini.</translation>
 <translation id="8521475323816527629">Buka aplikasi dengan cepat</translation>
 <translation id="8523493869875972733">Simpan Perubahan</translation>
 <translation id="8523849605371521713">Ditambahkan sesuai kebijakan</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Konfigurasi sambungan jaringan</translation>
 <translation id="8620790565535071193">Pemindaian gagal</translation>
 <translation id="8622877356447980900">Ingin menerjemahkan halaman ini?</translation>
-<translation id="8623004009673949077">Aplikasi dengan atribut manifes 'kiosk_only' harus dipasang pada mode kios Chrome OS.</translation>
 <translation id="8624205858755890468">Mengaktifkan Asisten agar dapat menampilkan aplikasi, tindakan, dan info terkait.</translation>
 <translation id="862542460444371744">&amp;Ekstensi</translation>
 <translation id="8627151598708688654">Pilih sumber</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Update firmware untuk tambahan keamanan.</translation>
 <translation id="8823514049557262177">Salin te&amp;ks link</translation>
 <translation id="8824701697284169214">Tambahkan La&amp;man...</translation>
-<translation id="8827850355924932817">Menggunakan jaringan Wi-Fi untuk menentukan lokasi</translation>
 <translation id="8828933418460119530">Nama DNS</translation>
 <translation id="8830796635868321089">Gagal melakukan pemeriksaan pembaruan menggunakan setelan proxy. Sesuaikan <ph name="PROXY_SETTINGS_LINK_START" />setelan proxy<ph name="PROXY_SETTINGS_LINK_END" /> Anda.</translation>
 <translation id="8834039744648160717">Konfigurasi jaringan dikontrol oleh <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">Tampilkan &amp;Sebagai Tab</translation>
 <translation id="8884961208881553398">Tambahkan layanan baru</translation>
 <translation id="8885197664446363138">Smart Lock tidak tersedia</translation>
-<translation id="8885905466771744233">Kunci pribadi untuk ekstensi yang ditentukan sudah ada. Gunakan kembali kunci itu atau hapus terlebih dulu.</translation>
 <translation id="8888432776533519951">Warna:</translation>
-<translation id="8892992092192084762">Tema "<ph name="THEME_NAME" />" telah terpasang.</translation>
 <translation id="8893928184421379330">Maaf, perangkat <ph name="DEVICE_LABEL" /> tidak dapat dikenali.</translation>
 <translation id="8895454554629927345">Daftar bookmark</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4997,7 +4932,6 @@
 <translation id="8908902564709148335">Peringatan: Anda telah mengaktifkan penanda --skrip-memerlukan-tindakan pada komputer ini, yang membatasi kemampuan ekstensi ini. Akan tetapi, perangkat lain mungkin tidak mendukung penanda ini atau mengaktifkannya. Pada perangkat ini, ekstensi ini juga dapat:</translation>
 <translation id="8910146161325739742">Berbagi layar</translation>
 <translation id="8910222113987937043">Perubahan terhadap bookmark, histori, sandi, dan setelan lain sudah tidak disinkronkan ke Akun Google Anda. Namun, data yang sudah ada akan tetap disimpan di Akun Google dan dapat dikelola di <ph name="BEGIN_LINK" />Google Dasbor<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google telah menandai "<ph name="EXTENSION_NAME" />" sebagai berbahaya dan pemasangannya telah dicegah.</translation>
 <translation id="8912793549644936705">Meregang</translation>
 <translation id="8915370057835397490">Memuat saran</translation>
 <translation id="8916476537757519021">Subkerangka Mode Penyamaran: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Mouse USB tersambung</translation>
 <translation id="9076523132036239772">Maaf, email atau sandi Anda tidak dapat diverifikasi. Coba sambungkan ke jaringan terlebih dulu.</translation>
-<translation id="907841381057066561">Gagal membuat file zip sementara selama pengemasan</translation>
 <translation id="9084064520949870008">Buka sebagai Jendela</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> diblokir oleh kebijakan perusahaan</translation>
 <translation id="9088917181875854783">Konfirmasikan bahwa kunci sandi ini ditampilkan di "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Masukkan frasa sandi</translation>
 <translation id="939736085109172342">Folder baru</translation>
-<translation id="941543339607623937">Kunci pribadi tidak valid.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> membagikan audio dan tab Chrome.</translation>
 <translation id="942954117721265519">Tidak ada gambar dalam direktori ini.</translation>
 <translation id="945522503751344254">Kirim masukan</translation>
-<translation id="951981865514037445"><ph name="URL" /> ingin menggunakan lokasi perangkat Anda.</translation>
 <translation id="952992212772159698">Tidak diaktifkan</translation>
 <translation id="9580706199804957">Tidak dapat terhubung dengan layanan Google</translation>
 <translation id="958515377357646513">Sentuh untuk maju.</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 4e0e817..89e9dd9f 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Solo crittografia</translation>
 <translation id="1039337018183941703">File non valido o danneggiato</translation>
 <translation id="1042174272890264476">Sul computer è integrata anche la libreria RLZ di <ph name="SHORT_PRODUCT_NAME" />. RLZ assegna un tag non univoco che non consente l'identificazione personale per valutare le ricerche e l'utilizzo di <ph name="SHORT_PRODUCT_NAME" /> promosso da una determinata campagna promozionale. Talvolta queste etichette vengono visualizzate in query della Ricerca Google in <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> vuole memorizzare in modo permanente grandi quantità di dati sul dispositivo.</translation>
 <translation id="1046059554679513793">Spiacenti, questo nome è già in uso.</translation>
 <translation id="1047431265488717055">Copia testo del lin&amp;k</translation>
 <translation id="1047726139967079566">Aggiungi questa pagina ai Preferiti...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Ripristinare il motore di ricerca predefinito?</translation>
 <translation id="1177863135347784049">Personalizzati</translation>
 <translation id="1178581264944972037">Pausa</translation>
-<translation id="1179803038870941185"><ph name="URL" /> vuole avere il controllo totale dei tuoi dispositivi MIDI.</translation>
 <translation id="1181037720776840403">Rimuovi</translation>
 <translation id="1183237619868651138">Impossibile installare <ph name="EXTERNAL_CRX_FILE" /> nella cache locale.</translation>
 <translation id="1185924365081634987">Puoi anche provare a <ph name="GUEST_SIGNIN_LINK_START" />navigare come ospite<ph name="GUEST_SIGNIN_LINK_END" /> per correggere questo errore di rete.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Accesso a un file memorizzato sul computer}other{Accesso a # file memorizzati sul computer}}</translation>
 <translation id="1195076408729068893">Per avviare Smart Lock, inserisci la password. La prossima volta potrai usare il telefono per sbloccare il tuo dispositivo <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Errore sconosciuto.</translation>
-<translation id="1196338895211115272">Operazione di esportazione della chiave privata non riuscita.</translation>
 <translation id="119738088725604856">Finestra dello screenshot</translation>
 <translation id="1197979282329025000">Si è verificato un errore durante il recupero delle funzionalità della stampante <ph name="PRINTER_NAME" />. Non è stato possibile registrare questa stampante con <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Iniziamo</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">L'amministratore consiglia un valore specifico per questa impostazione.</translation>
 <translation id="1225177025209879837">Elaborazione della richiesta in corso...</translation>
 <translation id="1225211345201532184">Elemento 5 della shelf</translation>
-<translation id="1225404570112441414">Aggiungi questo sito al tuo shelf per utilizzarlo in qualsiasi momento.</translation>
 <translation id="1227507814927581609">Autenticazione non riuscita durante la connessione a "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu di sistema</translation>
 <translation id="1232569758102978740">Senza titolo</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">File HTML preferiti</translation>
 <translation id="1303671224831497365">Nessun dispositivo Bluetooth trovato</translation>
 <translation id="1306606229401759371">Modifica impostazioni</translation>
-<translation id="1307398858972670978">Accedi alle tue password da qualsiasi dispositivo all'indirizzo <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Spiacenti, il sistema non è riuscito a memorizzare il token di accesso all'API a lungo termine per questo dispositivo.</translation>
 <translation id="1313405956111467313">Configurazione automatica del proxy</translation>
 <translation id="131364520783682672">Bloc maiusc</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Cerca</translation>
 <translation id="1386387014181100145">Salve.</translation>
 <translation id="138784436342154190">Ripristinare la pagina iniziale predefinita?</translation>
-<translation id="1389297115360905376">È possibile aggiungerla soltanto dal <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Apri in una scheda normale</translation>
-<translation id="1391807639023934267">Pagina caricata più velocemente.</translation>
 <translation id="1393283411312835250">Sole e nuvole</translation>
 <translation id="1395262318152388157">Dispositivo di scorrimento</translation>
 <translation id="1395730723686586365">Programma di aggiornamento avviato</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Stai per passare a una versione non stabile di <ph name="PRODUCT_NAME" /> che contiene funzioni ancora in fase di sviluppo. Si verificheranno arresti anomali e bug imprevisti. Procedi con cautela.</translation>
 <translation id="1415990189994829608">L'estensione <ph name="EXTENSION_NAME" /> (ID estensione "<ph name="EXTENSION_ID" />") non è consentita in questo tipo di sessione.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Spiacenti, operazione di generazione della chiave privata RSA casuale non riuscita.</translation>
 <translation id="1420834118113404499">Licenze multimediali</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> per consentire l'accoppiamento</translation>
 <translation id="1426410128494586442">Sì</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opia l'indirizzo dell'audio</translation>
 <translation id="1465827627707997754">Fetta di pizza</translation>
 <translation id="1467432559032391204">Sinistra</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vuole memorizzare in modo permanente i dati sul tuo dispositivo.</translation>
-<translation id="1470719357688513792">Le nuove impostazioni dei cookie avranno effetto una volta ricaricata la pagina.</translation>
 <translation id="1470811252759861213">Per trovare le tue estensioni su tutti i computer, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Impossibile caricare "<ph name="FILENAME" />". Lo spazio disponibile su Google Drive non è sufficiente.</translation>
 <translation id="1475502736924165259">Hai certificati su file che non rientrano in nessuna delle altre categorie</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Puntatore del mouse grande</translation>
 <translation id="1543284117603151572">Importati da Edge</translation>
 <translation id="1545177026077493356">Modalità kiosk automatica</translation>
+<translation id="1545775234664667895">Tema "<ph name="THEME_NAME" />" installato</translation>
 <translation id="1545786162090505744">URL con %s al posto della query</translation>
 <translation id="1546280085599573572">Questa estensione ha cambiato la pagina mostrata quando fai clic sul pulsante Pagina iniziale.</translation>
 <translation id="1547572086206517271">Aggiornamento necessario</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />controllare<ph name="END_BOLD" /> i siti web visitati dall'utente supervisionato e
     <ph name="BEGIN_BOLD" />gestire<ph name="END_BOLD" /> altre impostazioni.</translation>
 <translation id="1648943974594387137">I dati di accesso sono obsoleti</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> righe non mostrate&gt;</translation>
 <translation id="1650371550981945235">Mostra opzioni di immissione</translation>
 <translation id="1650709179466243265">Aggiungi www. e .com e apri l'indirizzo</translation>
 <translation id="1651008383952180276">Devi inserire la stessa passphrase due volte</translation>
-<translation id="1652972346408808053">Password salvata. Accedi alle tue password da qualsiasi dispositivo all'indirizzo <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Aggiungi la stampante a Google Cloud Print per poter stampare ovunque.}other{Aggiungi # stampanti a Google Cloud Print per poter stampare ovunque.}}</translation>
 <translation id="1657406563541664238">Aiutaci a migliorare <ph name="PRODUCT_NAME" /> inviando automaticamente a Google le statistiche sull'utilizzo e segnalazioni sugli arresti anomali</translation>
 <translation id="1658424621194652532">Questa pagina sta accedendo al microfono.</translation>
@@ -654,7 +643,7 @@
 <translation id="1999115740519098545">All'avvio</translation>
 <translation id="2006638907958895361">Apri link in <ph name="APP" /></translation>
 <translation id="2007404777272201486">Segnala un problema...</translation>
-<translation id="2015632741368427174">Reindirizzamento al sito bloccato:</translation>
+<translation id="2015632741368427174">Reindirizzamento bloccato al seguente sito:</translation>
 <translation id="2016430552235416146">Tradizionale</translation>
 <translation id="2017334798163366053">Disattiva raccolta di dati sul rendimento</translation>
 <translation id="2017836877785168846">Consente di cancellare la cronologia e i completamenti automatici nella barra degli indirizzi.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continua a bloccare i cookie</translation>
 <translation id="204622017488417136">Sul dispositivo verrà ripristinata la versione di Chrome installata precedentemente. Tutti gli account utente e i dati locali verranno rimossi. L'operazione non può essere annullata.</translation>
 <translation id="2048182445208425546">Accesso al traffico di rete</translation>
-<translation id="2049137146490122801">L'accesso ai file locali sul tuo computer è stato disabilitato dal tuo amministratore.</translation>
 <translation id="204914487372604757">Crea scorciatoia</translation>
 <translation id="2050339315714019657">Verticale</translation>
 <translation id="2053312383184521053">Dati sullo stato di inattività</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Non ancora caricato</translation>
 <translation id="2107494551712864447">Aggiungi un'impronta digitale</translation>
-<translation id="2111843886872897694">Le applicazioni devono essere pubblicate dall'host che le riguarda.</translation>
 <translation id="2112877397266219826">Attiva il tuo touch controller per configurare il dispositivo</translation>
 <translation id="21133533946938348">Blocca scheda</translation>
 <translation id="2113479184312716848">Apri &amp;file...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Spiegaci cosa succede</translation>
 <translation id="2229161054156947610">Più di un'ora rimanente</translation>
 <translation id="222931766245975952">File troncato</translation>
-<translation id="222949136907494149">L'<ph name="URL" /> chiede di utilizzare la posizione del tuo computer.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Impossibile creare la cartella "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Fai clic per visualizzare il doodle di oggi</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Impedisci sempre l'accesso al microfono</translation>
 <translation id="2367972762794486313">Mostra app</translation>
 <translation id="2371076942591664043">Apri al &amp;termine</translation>
-<translation id="237336063998926520">Utilizza l'indirizzo IP per stabilire la posizione</translation>
 <translation id="2377319039870049694">Passa alla visualizzazione elenco</translation>
 <translation id="2377667304966270281">Errori hardware</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> file selezionati</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> vorrebbe copiare file da <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID della chiave dell'autorità di certificazione</translation>
 <translation id="2462752602710430187">È stata aggiunta la stampante <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importa Preferiti</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Impossibile connettersi al telefono. Assicurati di usare un telefono Android compatibile che sia acceso e a portata di mano. &lt;a&gt;Ulteriori informazioni&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Estensioni non supportate disattivate</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Disinstalla</translation>
 <translation id="2487067538648443797">Aggiungi nuovo preferito</translation>
 <translation id="248861575772995840">Impossibile trovare il telefono. Assicurati che sul dispositivo <ph name="DEVICE_TYPE" /> sia attivo il Bluetooth. &lt;a&gt;Ulteriori informazioni&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Un plug-in (<ph name="PLUGIN_NAME" />) non risponde.</translation>
 <translation id="2489428929217601177">ultimo giorno</translation>
 <translation id="2489918096470125693">Aggiungi &amp;cartella...</translation>
 <translation id="249113932447298600">Spiacenti, il dispositivo <ph name="DEVICE_LABEL" /> non è al momento supportato.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Complimenti, il tuo servizio dati "<ph name="NAME" />" è stato attivato ed è pronto all'uso.</translation>
 <translation id="2566124945717127842">Esegui il powerwash per ripristinare il tuo dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /> e farlo tornare come nuovo.</translation>
 <translation id="2568774940984945469">Infobar Container</translation>
-<translation id="2570000010887652771">Dati salvati.</translation>
 <translation id="257088987046510401">Temi</translation>
 <translation id="2572032849266859634">È stato concesso l'accesso in sola lettura a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Scegli un'immagine e un nome</translation>
 <translation id="2575247648642144396">Questa icona sarà visibile quando l'estensione potrà agire sulla pagina corrente. Utilizza questa estensione facendo clic sull'icona o premendo <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Impossibile trovare il telefono. Assicurati che il dispositivo <ph name="DEVICE_TYPE" /> sia connesso a una rete mobile o Wi-Fi. &lt;a&gt;Ulteriori informazioni&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Esiste già un file CRX con questo nome.</translation>
 <translation id="257779572837908839">Configura come Chromebox per videoconferenze</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Impossibile smontare il volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1067,7 +1048,6 @@
 <translation id="2653266418988778031">Se elimini il certificato di un'autorità di certificazione (CA), il browser non considererà più attendibili i certificati emessi da tale autorità.</translation>
 <translation id="2653659639078652383">Invia</translation>
 <translation id="265390580714150011">Valore campo</translation>
-<translation id="2654286334048437383">Esporta preferiti</translation>
 <translation id="2655386581175833247">Certificato utente:</translation>
 <translation id="2660779039299703961">Evento</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1261,7 +1241,6 @@
 <translation id="2908162660801918428">Aggiungi Galleria Media per directory</translation>
 <translation id="2908789530129661844">Riduci lo zoom sullo schermo</translation>
 <translation id="2910318910161511225">Collegati a una rete e riprova</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> vuole utilizzare il microfono.</translation>
 <translation id="2913331724188855103">Consenti ai siti di salvare e leggere i dati dei cookie (opzione consigliata)</translation>
 <translation id="2916073183900451334">Se premi Tab in una pagina web vengono evidenziati i link, così come i campi dei moduli</translation>
 <translation id="2916745397441987255">Cerca tra le estensioni</translation>
@@ -1414,7 +1393,6 @@
 <translation id="3141318088920353606">In ascolto…</translation>
 <translation id="3141917231319778873">La richiesta indicata non è supportata su: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">FINE</translation>
-<translation id="3144135466825225871">Impossibile sostituire il file crx. Controlla se il file è in uso.</translation>
 <translation id="3144647712221361880">Apri link come</translation>
 <translation id="3149510190863420837">Applicazioni Chrome</translation>
 <translation id="3150927491400159470">Ricaricamento manuale</translation>
@@ -1524,7 +1502,6 @@
 <translation id="3309747692199697901">Esegui sempre su tutti i siti</translation>
 <translation id="3312424061798279731">Lingue attive</translation>
 <translation id="3312903956926554846">Installa sul desktop</translation>
-<translation id="3313473140726597081">Pagina iniziale sostituita con: <ph name="URL" />. Per disattivare le estensioni che cambiano la pagina iniziale, fai clic su Ripristina.</translation>
 <translation id="3313590242757056087">Per impostare i siti web che l'utente supervisionato può visualizzare, puoi configurare limitazioni e impostazioni visitando il sito all'indirizzo <ph name="MANAGEMENT_URL" />.
 Se non modifichi le impostazioni predefinite, <ph name="USER_DISPLAY_NAME" /> può visitare tutti i siti sul Web.</translation>
 <translation id="3313622045786997898">Valore firma certificato</translation>
@@ -1538,7 +1515,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informazioni sull'app</translation>
 <translation id="3335947283844343239">Riapri scheda chiusa</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> è stato bloccato perché non è aggiornato.</translation>
 <translation id="3340978935015468852">impostazioni</translation>
 <translation id="3341703758641437857">Consenti l'accesso agli URL dei file</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" vorrebbe rimuovere questa estensione.</translation>
@@ -1573,7 +1549,6 @@
 <translation id="3386219708421216619">Aggiunto ai preferiti</translation>
 <translation id="3389312115541230716">Fai clic con il pulsante destro del mouse sull'icona <ph name="SMALL_PRODUCT_LOGO" /> nella barra delle applicazioni</translation>
 <translation id="3391716558283801616">Scheda 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> vuole utilizzare la fotocamera e il microfono.</translation>
 <translation id="3396331542604645348">La stampante selezionata non è disponibile o non è installata correttamente. Controlla la stampante o prova a selezionarne un'altra.</translation>
 <translation id="3399432415385675819">Le notifiche verranno disattivate</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1685,10 +1660,8 @@
 <translation id="3550915441744863158">Chrome si aggiorna automaticamente per consentirti di avere sempre la versione più recente</translation>
 <translation id="3551320343578183772">Chiudi scheda</translation>
 <translation id="3552780134252864554">Cancellato all'uscita</translation>
-<translation id="355298399003313926"><ph name="URL" /> vuole rispondere agli eventi di accessibilità.</translation>
 <translation id="3555812735919707620">Rimuovi estensione</translation>
 <translation id="3556000484321257665">Motore di ricerca sostituito con: <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Il valore di input per la chiave privata deve essere un percorso valido.</translation>
 <translation id="3563432852173030730">Impossibile scaricare l'applicazione kiosk.</translation>
 <translation id="3564334271939054422">La rete Wi-Fi in uso (<ph name="NETWORK_ID" />) potrebbe richiedere la visita della relativa pagina di accesso.</translation>
 <translation id="3564708465992574908">Livelli di zoom</translation>
@@ -1710,7 +1683,6 @@
 <translation id="3593965109698325041">Vincoli nomi certificati</translation>
 <translation id="3596235046596950091">Attiva servizi cloud</translation>
 <translation id="3599863153486145794">Consente di cancellare la cronologia da tutti i dispositivi su cui hai eseguito l'accesso. Il tuo account Google potrebbe avere altri tipi di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">L'accesso ai file locali sul tuo dispositivo è stato disattivato dal tuo amministratore.</translation>
 <translation id="3600792891314830896">Disattiva l'audio nei siti che riproducono suoni</translation>
 <translation id="3603177256297531067">Impossibile tradurre questa pagina</translation>
 <translation id="3603533104205588786">Puoi fare clic sulla stella per aggiungere una pagina ai preferiti</translation>
@@ -1735,7 +1707,6 @@
 <translation id="3625258641415618104">Screenshot disabilitati</translation>
 <translation id="3625870480639975468">Reimposta lo zoom</translation>
 <translation id="3626281679859535460">Luminosità</translation>
-<translation id="3627052133907344175">L'estensione richiede "<ph name="IMPORT_NAME" />" con la versione minima "<ph name="IMPORT_VERSION" />", ma è installata soltanto la versione "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Meno di un minuto rimanente</translation>
 <translation id="3627588569887975815">Apri link in finestra di navigazione in inco&amp;gnito</translation>
 <translation id="3627671146180677314">Data di rinnovo certificato Netscape</translation>
@@ -1765,7 +1736,6 @@
 <translation id="3668570675727296296">Impostazioni lingua</translation>
 <translation id="3668823961463113931">Gestori</translation>
 <translation id="3670229581627177274">Attiva il Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vuole memorizzare in modo permanente grandi quantità di dati sul computer locale.</translation>
 <translation id="3672681487849735243">È stato rilevato un errore di fabbrica</translation>
 <translation id="367645871420407123">lascia vuoto questo campo se desideri impostare la password root sul valore dell'immagine di test predefinita</translation>
 <translation id="3678156199662914018">Estensione: <ph name="EXTENSION_NAME" /></translation>
@@ -1843,11 +1813,9 @@
 <translation id="3786301125658655746">Sei offline</translation>
 <translation id="3788401245189148511">Potrebbe:</translation>
 <translation id="3789841737615482174">Installa</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> funziona solo sul desktop.</translation>
 <translation id="379082410132524484">La tua carta è scaduta</translation>
 <translation id="3792890930871100565">Scollega stampanti</translation>
 <translation id="379422718204375917">Usa Smart Lock per accedere al tuo account</translation>
-<translation id="3794595850995182458">Pagina di uscita</translation>
 <translation id="3796648294839530037">Reti preferite:</translation>
 <translation id="3797900183766075808">&amp;Cerca "<ph name="SEARCH_TERMS" />" su <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Consente di attivare/disattivare il tocco per fare clic</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326">Abilita <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">È stato inserito un tipo non valido per il salvataggio.</translation>
 <translation id="3983586614702900908">dispositivi di un fornitore sconosciuto</translation>
-<translation id="3984413272403535372">Errore durante la firma dell'estensione.</translation>
 <translation id="3987938432087324095">Scusa, non ho capito.</translation>
 <translation id="3988996860813292272">Seleziona il fuso orario</translation>
 <translation id="3989635538409502728">Esci</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">Installa app e giochi di Google Play sul Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Ulteriori informazioni&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Accetta per gruppo</translation>
 <translation id="4090103403438682346">Consente di attivare l'accesso verificato</translation>
-<translation id="4090404313667273475">Per poter visualizzare alcuni elementi della pagina è necessario <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Questa estensione è gestita e non può essere rimossa.)</translation>
 <translation id="4091434297613116013">fogli</translation>
 <translation id="4093955363990068916">File locale:</translation>
@@ -2368,7 +2334,6 @@
 <translation id="4714531393479055912">Ora <ph name="PRODUCT_NAME" /> può sincronizzare le tue password.</translation>
 <translation id="4715553623069266137">molto breve (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash per maggiore sicurezza</translation>
-<translation id="471800408830181311">Operazione di output della chiave privata non riuscita.</translation>
 <translation id="4720113199587244118">Aggiungi dispositivi</translation>
 <translation id="4720185134442950733">Rete di dati mobili</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> sta condividendo il tuo schermo.</translation>
@@ -2505,7 +2470,6 @@
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vuole comunicare con l'estensione "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Accetto</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> vuole utilizzare la fotocamera.</translation>
 <translation id="4920887663447894854">Il monitoraggio della tua posizione da parte dei seguenti siti è stato bloccato su questa pagina:</translation>
 <translation id="492299503953721473">Rimuovi app Android</translation>
 <translation id="4923279099980110923">Sì, desidero dare il mio contributo</translation>
@@ -2546,7 +2510,6 @@
 <translation id="4980805016576257426">Questa estensione contiene malware.</translation>
 <translation id="498294082491145744">Modifica delle impostazioni che controllano l'accesso dei siti web a funzioni quali cookie, JavaScript, plug-in, geolocalizzazione, microfono, videocamera ecc.</translation>
 <translation id="4988526792673242964">Pagine</translation>
-<translation id="4988792151665380515">Operazione di esportazione della chiave pubblica non riuscita.</translation>
 <translation id="49896407730300355">Ruota in senso anti&amp;orario</translation>
 <translation id="4989966318180235467">Ispeziona pagina in &amp;background</translation>
 <translation id="4990343175649730969">Scarica Chrome Software Cleaner</translation>
@@ -2575,7 +2538,6 @@
 <translation id="5026874946691314267">Non visualizzare più</translation>
 <translation id="5027550639139316293">Certificato email</translation>
 <translation id="5027562294707732951">Aggiungi estensione</translation>
-<translation id="5028012205542821824">L'installazione non è attiva.</translation>
 <translation id="5029568752722684782">Cancella copia</translation>
 <translation id="5030338702439866405">Emesso da</translation>
 <translation id="5036662165765606524">Non consentire ai siti di scaricare automaticamente più file</translation>
@@ -2611,7 +2573,6 @@
 <translation id="509429900233858213">Si è verificato un errore.</translation>
 <translation id="5094721898978802975">Comunicazione con applicazioni native interoperative</translation>
 <translation id="5097002363526479830">Connessione alla rete "<ph name="NAME" />" non riuscita: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Impossibile trovare il percorso assoluto della directory per creare il pacchetto.</translation>
 <translation id="5099354524039520280">su</translation>
 <translation id="5100114659116077956">Per poterti offrire le funzionalità più recenti, devi aggiornare il Chromebox.</translation>
 <translation id="5101042277149003567">Apri tutti i Preferiti</translation>
@@ -2660,7 +2621,6 @@
 <translation id="5170568018924773124">Mostra nella cartella</translation>
 <translation id="5171045022955879922">Cerca o digita un URL</translation>
 <translation id="5171343362375269016">Memoria sostituita</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vuole memorizzare in modo permanente i dati sul computer locale.</translation>
 <translation id="5177479852722101802">Continua a impedire l'accesso a webcam e microfono</translation>
 <translation id="5177526793333269655">Visualizzazione Miniature</translation>
 <translation id="5177549709747445269">Dati mobili in uso</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">Formatta questo dispositivo</translation>
 <translation id="5293170712604732402">Ripristina le impostazioni predefinite originali</translation>
 <translation id="5298219193514155779">Tema creato da</translation>
-<translation id="5298363578196989456">Impossibile importare l'estensione "<ph name="IMPORT_NAME" />" perché non è un modulo condiviso.</translation>
 <translation id="5299109548848736476">Non tenere traccia</translation>
 <translation id="5299682071747318445">Tutti i dati vengono criptati con la tua passphrase di sincronizzazione</translation>
 <translation id="5300589172476337783">Mostra</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170">L'estensione "<ph name="CHROME_EXTENSION_NAME" />" desidera accoppiarsi</translation>
 <translation id="5332624210073556029">Fuso orario:</translation>
 <translation id="5334142896108694079">Cache script</translation>
-<translation id="533433379391851622">La versione prevista era "<ph name="EXPECTED_VERSION" />", ma in realtà era "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Visualizza sorgente</translation>
 <translation id="5335458522276292100">Backup di <ph name="FILE_COUNT" /> su <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> in corso</translation>
 <translation id="5337771866151525739">Installata da una terza parte.</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">Consenti ai siti di riprodurre l'audio</translation>
 <translation id="5390284375844109566">Database indicizzato</translation>
 <translation id="5390743329570580756">Invia per</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> su <ph name="PEPPER_PLUGIN_DOMAIN" /> chiede di accedere al tuo computer.</translation>
 <translation id="5397794290049113714">Tu</translation>
 <translation id="5398572795982417028">Riferimento pagina oltre i limiti. Il limite è <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annunci bloccati</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">Ripristina tutte le schede</translation>
 <translation id="5486261815000869482">Conferma password</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> condivide il tuo schermo con <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Il valore di input per la chiave privata deve essere esistente.</translation>
 <translation id="5486561344817861625">Simula riavvio browser</translation>
 <translation id="5487521232677179737">Cancella dati</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" copiato</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951">Il download dell'aggiornamento richiederà <ph name="UPDATE_SIZE_MB" /> MB di dati mobili. Vuoi continuare?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Altri motori di ricerca</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> su <ph name="PEPPER_PLUGIN_DOMAIN" /> vuole accedere al tuo dispositivo.</translation>
 <translation id="5608580678041221894">Tocca i seguenti tasti per regolare o spostare l'area di ritaglio</translation>
 <translation id="5609231933459083978">L'applicazione non sembra essere valida.</translation>
 <translation id="5610038042047936818">Passa a modalità Fotocamera</translation>
@@ -3192,7 +3147,6 @@
 <translation id="5990386583461751448">Tradotta</translation>
 <translation id="5991049340509704927">Ingrandisci</translation>
 <translation id="5993332328670040093">L'utilizzo dei dati non verrà più misurato.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> potrebbe non essere in grado di effettuare gli aggiornamenti.</translation>
 <translation id="600424552813877586">Applicazione non valida.</translation>
 <translation id="6005695835120147974">Media Router</translation>
 <translation id="6006484371116297560">Classico</translation>
@@ -3217,6 +3171,7 @@
 <translation id="604001903249547235">Backup nella cloud</translation>
 <translation id="6040143037577758943">Chiudi</translation>
 <translation id="6040852767465482106">Identità anonima</translation>
+<translation id="6041155700700864984">Chiudi schermo intero</translation>
 <translation id="604124094241169006">Automatica</translation>
 <translation id="6042169520002885235">Seleziona un produttore e un modello di stampante</translation>
 <translation id="6042308850641462728">Più</translation>
@@ -3233,7 +3188,6 @@
 <translation id="6056710589053485679">Ricaricamento normale</translation>
 <translation id="6059652578941944813">Gerarchia certificati</translation>
 <translation id="6059925163896151826">Dispositivi USB</translation>
-<translation id="6060435378291459521">Arresto anomalo di <ph name="PLUGIN_NAME" />.</translation>
 <translation id="6064217302520318294">Blocco schermo</translation>
 <translation id="6065289257230303064">Attributi directory soggetto certificato</translation>
 <translation id="6068338049763724728">Attiva registrazione remota</translation>
@@ -3342,7 +3296,6 @@
 <translation id="6237816943013845465">Consente di regolare la risoluzione dello schermo</translation>
 <translation id="6238923052227198598">Tieni le note più recenti sulla schermata di blocco</translation>
 <translation id="6239558157302047471">Ricarica &amp;frame</translation>
-<translation id="624022915548992686">Pagina di uscita</translation>
 <translation id="6241530762627360640">Accedere a informazioni sui dispositivi Bluetooth accoppiati con il sistema e rilevare dispositivi Bluetooth nelle vicinanze.</translation>
 <translation id="6243774244933267674">Server non disponibile</translation>
 <translation id="6246413617632217567">Impossibile importare l'utente supervisionato. Controlla lo spazio disponibile sul disco rigido e le autorizzazioni, quindi riprova.</translation>
@@ -3391,13 +3344,11 @@
 <translation id="6312403991423642364">Errore di rete sconosciuto</translation>
 <translation id="6313641880021325787">ESCI DA REALTÀ VIRTUALE</translation>
 <translation id="6314819609899340042">Hai attivato le funzioni di debug su questo dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Le pagine iniziali sono state modificate per includere <ph name="URL" />. Per disattivare le estensioni che cambiano la pagina iniziale, fai clic su Ripristina.</translation>
 <translation id="6315493146179903667">Porta tutto in primo piano</translation>
 <translation id="6316806695097060329">Questo dispositivo <ph name="SHORT_PRODUCT_NAME" /> è stato ideato per offrirti un'esperienza ottimale sul Web.</translation>
 <translation id="6317318380444133405">La stampante non è più supportata.</translation>
 <translation id="6317369057005134371">In attesa della finestra dell'applicazione...</translation>
 <translation id="6318407754858604988">Download iniziato</translation>
-<translation id="6322279351188361895">Operazione di lettura della chiave privata non riuscita.</translation>
 <translation id="6325191661371220117">Disattiva avvio automatico</translation>
 <translation id="6326175484149238433">Rimuovi da Chrome</translation>
 <translation id="6326855256003666642">Conteggio attività keep-alive</translation>
@@ -3406,7 +3357,6 @@
 <translation id="6333049849394141510">Scegli che cosa sincronizzare</translation>
 <translation id="6333064448949140209">Il file sarà inviato a Google per il debug</translation>
 <translation id="6333834492048057036">Attivazione della barra degli indirizzi per la ricerca</translation>
-<translation id="6336907568130557310">Le tue password saranno visibili a chiunque abbia accesso al file esportato. Non condividere il file con nessuno ed eliminalo dopo averlo importato.</translation>
 <translation id="6339668969738228384">Crea un nuovo profilo per <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Impossibile connettersi al server. Controlla la connessione di rete e riprova. Se il problema persiste, riavvia il Chromebook.</translation>
 <translation id="6340071272923955280">Protocollo di stampa Internet (IPPS)</translation>
@@ -3435,7 +3385,6 @@
 <translation id="6385543213911723544">I siti possono memorizzare e leggere i dati dei cookie</translation>
 <translation id="6388771388956873507">Individua il sensore di impronte digitali sul dispositivo e toccalo con il dito</translation>
 <translation id="6390799748543157332">Le pagine visualizzate in questa finestra non verranno memorizzate nella cronologia del browser e non lasceranno altre tracce, ad esempio cookie, sul computer dopo la chiusura di tutte le finestre Ospite aperte. Tutti i file scaricati verranno comunque conservati.</translation>
-<translation id="6391538222494443604">La directory di input deve essere esistente.</translation>
 <translation id="6395423953133416962">Invia <ph name="BEGIN_LINK1" />informazioni di sistema<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />metriche<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Interrompi comandi vocali</translation>
 <translation id="6397592254427394018">Apri tutti i Preferiti nella finestra di navigazione in &amp;incognito</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">Gestisci il blocco di JavaScript...</translation>
 <translation id="6459488832681039634">Utilizza selezione per Trova</translation>
 <translation id="6460601847208524483">Trova successivo</translation>
-<translation id="6462080265650314920">Le applicazioni devono essere pubblicate con content-type "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Sei ancora lì?</translation>
 <translation id="6463795194797719782">&amp;Modifica</translation>
 <translation id="6466988389784393586">&amp;Apri tutti i Preferiti</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Vuoi che Google traduca la pagina da <ph name="SOURCE_LANGUAGE" /> in <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispositivo di puntamento collegato</translation>
-<translation id="6677037229676347494">L'ID previsto era "<ph name="EXPECTED_ID" />", ma in realtà era "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL query</translation>
 <translation id="6680028776254050810">Scambia utenti</translation>
 <translation id="6680442031740878064">Disponibile: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">Puoi personalizzare in qualsiasi momento le informazioni raccolte da Google nelle <ph name="BEGIN_LINK" />Impostazioni<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Revoca accesso a file</translation>
 <translation id="6904655473976120856">Premi il pulsante App per uscire</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> vuole condividere il tuo schermo.</translation>
-<translation id="6909461304779452601">Non è possibile aggiungere applicazioni, estensioni e script utente da questo sito web.</translation>
 <translation id="6910211073230771657">Eliminato</translation>
 <translation id="691024665142758461">Scaricare più file</translation>
 <translation id="6911324888870229398">Connessione di rete interrotta. Controlla la connessione o prova a usare un'altra rete Wi-Fi.</translation>
@@ -4094,7 +4039,6 @@
 <translation id="747114903913869239">Errore: impossibile decodificare l'estensione</translation>
 <translation id="7473891865547856676">No grazie</translation>
 <translation id="747459581954555080">Ripristina tutto</translation>
-<translation id="7475034671245341386">Si è verificato un errore con <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">URL password persa Netscape</translation>
 <translation id="7476454130948140105">Livello della batteria troppo basso per eseguire l'aggiornamento (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Se hai dimenticato la password, interrompi e reimposta la sincronizzazione tramite <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4131,7 +4075,6 @@
 <translation id="7507930499305566459">Certificato risponditore stato</translation>
 <translation id="7508545000531937079">Slideshow</translation>
 <translation id="7513029293694390567">Accedi automaticamente ai siti web utilizzando credenziali memorizzate. Se la funzione non è attiva, ti viene chiesta la conferma prima di ogni accesso ai siti web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> vuole identificare in modo univoco il tuo dispositivo per poter riprodurre contenuti protetti.</translation>
 <translation id="7517569744831774757">Ripristina le impostazioni predefinite originali.</translation>
 <translation id="7517786267097410259">Crea una password -</translation>
 <translation id="7518150891539970662">Log WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4159,7 +4102,6 @@
 <translation id="7563991800558061108">Per risolvere il problema dovuto a questo errore, dovrai accedere al tuo account Google dalla schermata di accesso. Dopodiché potrai uscire dal tuo account Google e provare di nuovo a creare un utente supervisionato.</translation>
 <translation id="756445078718366910">Apri finestra del browser</translation>
 <translation id="7564847347806291057">Termina processo</translation>
-<translation id="7565291891798266313">Motore di ricerca sostituito con: <ph name="URL" />. Per disattivare le estensioni che cambiano il motore di ricerca, fai clic su Ripristina.</translation>
 <translation id="7566118625369982896">Gestisci i link dell'app Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Dati di Chrome cancellati</translation>
@@ -4168,7 +4110,6 @@
 <translation id="7573172247376861652">Carica della batteria</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Fascicola</translation>
-<translation id="7577815336900970562">Usa reti Wi-Fi o mobili per stabilire la posizione</translation>
 <translation id="7579149537961810247">Disattiva l'audio dei siti</translation>
 <translation id="7580671184200851182">Riproduci lo stesso audio su tutti gli altoparlanti (audio mono)</translation>
 <translation id="7581462281756524039">Uno strumento per la pulizia</translation>
@@ -4275,6 +4216,7 @@
 <translation id="7773726648746946405">Session storage</translation>
 <translation id="7781335840981796660">Tutti gli account utente e i dati locali verranno rimossi.</translation>
 <translation id="7782102568078991263">Nessun altro suggerimento da Google</translation>
+<translation id="778330624322499012">Impossibile caricare <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Le impostazioni di sicurezza del computer hanno bloccato questo file.</translation>
 <translation id="7786207843293321886">Esci da sessione Ospite</translation>
 <translation id="7786889348652477777">&amp;Ricarica app</translation>
@@ -4437,7 +4379,6 @@
 <translation id="8001504501378762252">Un sito potrebbe avere rubato la tua password</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Disconnesso da Internet. Controlla la tua connessione Internet.</translation>
-<translation id="8008765610824028412">Impossibile caricare <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Invia automaticamente a Google alcune informazioni sul sistema e alcuni contenuti delle pagine per contribuire a rilevare app e siti pericolosi</translation>
 <translation id="8012382203418782830">Questa pagina è stata tradotta.</translation>
 <translation id="8014154204619229810">Lo strumento di aggiornamento è in esecuzione. Aggiorna tra un minuto per ricontrollare.</translation>
@@ -4554,7 +4495,6 @@
 <translation id="8191230140820435481">Gestire applicazioni, estensioni e temi</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Dimensioni su disco</translation>
-<translation id="8195739004487400241">Home page sostituita con: <ph name="URL" />. Per disattivare le estensioni che cambiano l'home page, fai clic su Ripristina.</translation>
 <translation id="8199300056570174101">Proprietà dispositivo e rete (servizio)</translation>
 <translation id="8200772114523450471">Riprendi</translation>
 <translation id="8202160505685531999">Inserisci di nuovo la password per aggiornare il profilo <ph name="DEVICE_TYPE" />.</translation>
@@ -4598,7 +4538,6 @@
 <translation id="8261378640211443080">Questa estensione non è elencata nel <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e potrebbe essere stata aggiunta a tua insaputa.</translation>
 <translation id="8261387128019234107">Aggiungi account per <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Elimina</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> non implementato in questa build.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ha disattivato il puntatore del mouse.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ha attivato lo schermo intero.</translation>
 <translation id="8270242299912238708">Documenti PDF</translation>
@@ -4699,6 +4638,7 @@
 <translation id="8454288007744638700">In alternativa, seleziona una nuova rete:</translation>
 <translation id="845627346958584683">Data di scadenza</translation>
 <translation id="8456681095658380701">Nome non valido</translation>
+<translation id="8457451314607652708">Importa Preferiti</translation>
 <translation id="8460336040822756677">Se disattivi Smart Lock per <ph name="DEVICE_TYPE" />, non puoi sbloccare i tuoi dispositivi Chrome utilizzando il telefono. Dovrai digitare la password.</translation>
 <translation id="8461329675984532579">Nome del provider principale</translation>
 <translation id="84613761564611563">Interfaccia utente di configurazione rete richiesta. Attendi...</translation>
@@ -4730,7 +4670,6 @@
 <translation id="850875081535031620">Nessun software dannoso trovato</translation>
 <translation id="8512476990829870887">Termina processo</translation>
 <translation id="851263357009351303">Consenti sempre la visualizzazione di immagini in <ph name="HOST" /></translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" sta eseguendo il debug del browser.</translation>
 <translation id="8521475323816527629">Accedi velocemente alle tue app</translation>
 <translation id="8523493869875972733">Mantieni le modifiche</translation>
 <translation id="8523849605371521713">Aggiunta in base alle norme</translation>
@@ -4786,7 +4725,6 @@
 <translation id="8620765578342452535">Configura connessioni di rete</translation>
 <translation id="8620790565535071193">Scansione non riuscita</translation>
 <translation id="8622877356447980900">Vuoi tradurre questa pagina?</translation>
-<translation id="8623004009673949077">L'app con l'attributo del file manifest "kiosk_only" deve essere installata in modalità kiosk Chrome OS.</translation>
 <translation id="8624205858755890468">Consente all'assistente di mostrarti azioni, app e informazioni correlate.</translation>
 <translation id="862542460444371744">&amp;Estensioni</translation>
 <translation id="8627151598708688654">Seleziona fonte</translation>
@@ -4935,7 +4873,6 @@
 <translation id="882204272221080310">Aggiorna il firmware per maggiore sicurezza.</translation>
 <translation id="8823514049557262177">Copia testo del lin&amp;k</translation>
 <translation id="8824701697284169214">Aggiungi pa&amp;gina...</translation>
-<translation id="8827850355924932817">Usa la rete WiFi per stabilire la posizione</translation>
 <translation id="8828933418460119530">Nome DNS</translation>
 <translation id="8830796635868321089">Il controllo degli aggiornamenti utilizzando le impostazioni proxy correnti non è riuscito. Regola le tue <ph name="PROXY_SETTINGS_LINK_START" />impostazioni proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Configurazione di rete controllata da <ph name="USER_EMAIL" />.</translation>
@@ -4967,9 +4904,7 @@
 <translation id="8879284080359814990">Mostra come &amp;scheda</translation>
 <translation id="8884961208881553398">Aggiungi nuovi servizi</translation>
 <translation id="8885197664446363138">Smart Lock non disponibile</translation>
-<translation id="8885905466771744233">Esiste già una chiave privata per l'estensione specificata. Riutilizza tale chiave o prima eliminala.</translation>
 <translation id="8888432776533519951">Colore:</translation>
-<translation id="8892992092192084762">Tema "<ph name="THEME_NAME" />" installato.</translation>
 <translation id="8893928184421379330">Spiacenti, impossibile riconoscere il dispositivo <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Elenco dei preferiti</translation>
 <translation id="88986195241502842">Pagina giù</translation>
@@ -4984,7 +4919,6 @@
 <translation id="8908902564709148335">Avviso. Hai attivato sul computer il flag --scripts-require-action, che limita le funzionalità di questa estensione. Altri dispositivi, però, potrebbero non supportare questo flag o la sua attivazione. Su tali dispositivi, questa estensione può anche:</translation>
 <translation id="8910146161325739742">Condividi lo schermo</translation>
 <translation id="8910222113987937043">Le modifiche apportate a preferiti, cronologia, password e altre impostazioni non verranno più sincronizzate con il tuo account Google. I dati esistenti rimarranno invece memorizzati nel tuo account Google e potranno essere gestiti su <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google ha contrassegnato l'estensione "<ph name="EXTENSION_NAME" />" come dannosa ed è stata impedita l'installazione.</translation>
 <translation id="8912793549644936705">Allunga</translation>
 <translation id="8915370057835397490">Caricamento suggerimento</translation>
 <translation id="8916476537757519021">Frame secondario modalità di navigazione in incognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5090,7 +5024,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Mouse USB collegato</translation>
 <translation id="9076523132036239772">Spiacenti, impossibile verificare l'indirizzo email o la password. Prova a collegarti a una rete prima.</translation>
-<translation id="907841381057066561">Operazione di creazione di un file zip temporaneo durante la creazione del pacchetto non riuscita.</translation>
 <translation id="9084064520949870008">Apri in una finestra</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> è bloccato dalle norme aziendali</translation>
 <translation id="9088917181875854783">Conferma che la passkey sia visualizzata su "<ph name="DEVICE_NAME" />":</translation>
@@ -5181,11 +5114,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Inserisci passphrase</translation>
 <translation id="939736085109172342">Nuova cartella</translation>
-<translation id="941543339607623937">Chiave privata non valida.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> condivide l'audio e una scheda Chrome.</translation>
 <translation id="942954117721265519">Non ci sono immagini in questa directory.</translation>
 <translation id="945522503751344254">Invia feedback</translation>
-<translation id="951981865514037445">L'<ph name="URL" /> chiede di utilizzare la posizione del tuo dispositivo.</translation>
 <translation id="952992212772159698">Non attivo</translation>
 <translation id="9580706199804957">Impossibile connettersi ai servizi Google</translation>
 <translation id="958515377357646513">Tocca per andare avanti.</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index 827948e1..08dbaf0 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">הצפן בלבד</translation>
 <translation id="1039337018183941703">הקובץ לא חוקי, או שהוא פגום</translation>
 <translation id="1042174272890264476">‏המחשב שלך מגיע גם עם ספריית ה-RLZ המובנה של <ph name="SHORT_PRODUCT_NAME" />‏. RLZ מקצה תג שאינו ייחודי ואינו ניתן לזיהוי על מנת למדוד את החיפוש ואת השימוש ב-<ph name="SHORT_PRODUCT_NAME" /> המונעים על ידי קמפיין ספציפי לקידום מכירות. התוויות האלה מופיעות לעתים בשאילתות החיפוש של Google ב-<ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> רוצה לאחסן באופן קבוע כמות גדולה של נתונים במכשיר שלך.</translation>
 <translation id="1046059554679513793">אופס, שם זה כבר נמצא בשימוש!</translation>
 <translation id="1047431265488717055">העתקת ט&amp;קסט קישור</translation>
 <translation id="1047726139967079566">הוסף דף זה לסימניות...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">לשחזר את מנוע החיפוש שהוגדר כברירת המחדל?</translation>
 <translation id="1177863135347784049">מותאם אישית</translation>
 <translation id="1178581264944972037">השהה</translation>
-<translation id="1179803038870941185">‏<ph name="URL" /> רוצה לקבל שליטה מלאה על מכשירי MIDI שלך.</translation>
 <translation id="1181037720776840403">הסר</translation>
 <translation id="1183237619868651138">לא ניתן להתקין את <ph name="EXTERNAL_CRX_FILE" /> במטמון המקומי.</translation>
 <translation id="1185924365081634987">כדאי גם לנסות <ph name="GUEST_SIGNIN_LINK_START" />לגלוש כאורח<ph name="GUEST_SIGNIN_LINK_END" /> כדי לתקן את שגיאת הרשת הזו.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{גישה אל קובץ המאוחסן במחשב שלך}two{גישה אל # קבצים המאוחסנים במחשב שלך}many{גישה אל # קבצים המאוחסנים במחשב שלך}other{גישה אל # קבצים המאוחסנים במחשב שלך}}</translation>
 <translation id="1195076408729068893">‏עליך להזין את הסיסמה שלך כדי להפעיל את Smart Lock. בפעם הבאה אפשר יהיה להשתמש בטלפון כדי לנעול את <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">שגיאה לא ידועה.</translation>
-<translation id="1196338895211115272">נכשל ייצוא מפתח פרטי.</translation>
 <translation id="119738088725604856">חלון צילום מסך</translation>
 <translation id="1197979282329025000">אירעה שגיאה בעת אחזור יכולות של המדפסת <ph name="PRINTER_NAME" />. לא ניתן לרשום מדפסת זו ב-<ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">בוא נתחיל</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">מנהל המערכת ממליץ על ערך מסוים עבור הגדרה זו.</translation>
 <translation id="1225177025209879837">מעבד את הבקשה...</translation>
 <translation id="1225211345201532184">פריט מדף 5</translation>
-<translation id="1225404570112441414">הוסף את האתר הזה למדף כדי להשתמש בו בכל עת.</translation>
 <translation id="1227507814927581609">האימות נכשל בעת ההתחברות אל "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">תפריט מערכת</translation>
 <translation id="1232569758102978740">ללא שם</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">‏קובץ HTML לסימניות</translation>
 <translation id="1303671224831497365">‏לא נמצאו התקני Bluetooth</translation>
 <translation id="1306606229401759371">שנה הגדרות</translation>
-<translation id="1307398858972670978">הסיסמאות שלך זמינות מכל המכשירים בכתובת <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">‏אופס! המערכת לא הצליחה לאחסן את אסימון הגישה לטווח ארוך אל ממשק ה-API עבור המכשיר הזה.</translation>
 <translation id="1313405956111467313">‏תצורה אוטומטית של שרת proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">חפש</translation>
 <translation id="1386387014181100145">אהלן.</translation>
 <translation id="138784436342154190">לשחזר את דף הפתיחה שהוגדר כברירת המחדל?</translation>
-<translation id="1389297115360905376">ניתן להוסיף רק מ-<ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">פתח ככרטיסייה רגילה</translation>
-<translation id="1391807639023934267">טעינה מהירה יותר של הדף.</translation>
 <translation id="1393283411312835250">שמש ועננים</translation>
 <translation id="1395262318152388157">מחוון חיפוש</translation>
 <translation id="1395730723686586365">המעדכן הופעל</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">אתה מעדכן לגרסה לא יציבה של <ph name="PRODUCT_NAME" /> המכילה תכונות שנמצאות בתהליך. ייתכנו קריסות מחשב ובאגים לא צפויים. המשך בזהירות.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (מזהה תוסף "<ph name="EXTENSION_ID" />") אסור בסוג ההפעלה הזה.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">‏אוי לא! אירע כשל ביצירת מפתח RSA פרטי אקראי.</translation>
 <translation id="1420834118113404499">רישיונות מדיה</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> כדי לאפשר התאמה</translation>
 <translation id="1426410128494586442">כן</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">העתק כתובת &amp;אודיו</translation>
 <translation id="1465827627707997754">משולש פיצה</translation>
 <translation id="1467432559032391204">שמאלה</translation>
-<translation id="1467999917853307373">אפליקציית האינטרנט <ph name="URL" /> מבקשת לאחסן נתונים במכשיר שלך באופן קבוע.</translation>
-<translation id="1470719357688513792">‏הגדרות חדשות של קובצי Cookie ייכנסו לתוקף לאחר הטעינה מחדש של הדף.</translation>
 <translation id="1470811252759861213">כדי להתקין את התוספים בכל המחשבים שלך, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">‏הקובץ "<ph name="FILENAME" />" לא הועלה. אין לך מספיק שטח פנוי ב-Google Drive.</translation>
 <translation id="1475502736924165259">יש לך אישורים בקובץ שאינם מתאימים לאף אחת מהקטגוריות האחרות</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">סמן עכבר גדול</translation>
 <translation id="1543284117603151572">‏מיובא מ-Edge</translation>
 <translation id="1545177026077493356">מצב קיוסק אוטומטי</translation>
+<translation id="1545775234664667895">נושא שהותקן "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">‏כתובת אתר עם %s במקום שאילתה</translation>
 <translation id="1546280085599573572">התוסף הזה שינה את הדף שמוצג כשאתה לוחץ על הלחצן 'דף הבית'.</translation>
 <translation id="1547572086206517271">נדרש רענון</translation>
@@ -440,11 +431,9 @@
     <ph name="BEGIN_BOLD" />לסקור<ph name="END_BOLD" /> אתרים שהמשתמש המנוהל ביקר בהם, וכן
     <ph name="BEGIN_BOLD" />לנהל<ph name="END_BOLD" /> הגדרות נוספות.</translation>
 <translation id="1648943974594387137">פרטי הכניסה אינם מעודכנים</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> שורות לא מוצגות&gt;</translation>
 <translation id="1650371550981945235">הצג אפשרויות קלט</translation>
 <translation id="1650709179466243265">‏הוסף www. ו-‎.com וכתובת פתוחה</translation>
 <translation id="1651008383952180276">עליך להזין אותו ביטוי סיסמה פעמיים</translation>
-<translation id="1652972346408808053">הסיסמה נשמרה. אפשר לגשת לסיסמאות שלך מכל המכשירים בכתובת <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{‏הוסף את המדפסת אל Google Cloud Print כך שתוכל להדפיס מכל מקום.}two{‏הוסף # מדפסות אל Google Cloud Print כך שתוכל להדפיס מכל מקום.}many{‏הוסף # מדפסות אל Google Cloud Print כך שתוכל להדפיס מכל מקום.}other{‏הוסף # מדפסות אל Google Cloud Print כך שתוכל להדפיס מכל מקום.}}</translation>
 <translation id="1657406563541664238">‏עזור להפוך את <ph name="PRODUCT_NAME" /> לטוב יותר, על ידי שליחה אוטומטית של נתוני שימוש ודוחות קריסה אל Google</translation>
 <translation id="1658424621194652532">דף זה ניגש למיקרופון שלך.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">‏המשך לחסום קובצי Cookie</translation>
 <translation id="204622017488417136">‏המכשיר שלך יוחזר לגרסה הקודמת המותקנת של Chrome. כל חשבונות המשתמשים והנתונים המקומיים יוסרו. לא ניתן לבטל פעולה זו.</translation>
 <translation id="2048182445208425546">גישה לתנועת הרשת שלך</translation>
-<translation id="2049137146490122801">הגישה לקבצים מקומיים במחשב שלך מושבתת על ידי מנהל המערכת.</translation>
 <translation id="204914487372604757">צור קיצור דרך</translation>
 <translation id="2050339315714019657">לאורך</translation>
 <translation id="2053312383184521053">נתוני מצב של חוסר פעילות</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">לא נטען עדיין</translation>
 <translation id="2107494551712864447">הוספה של טביעת אצבע</translation>
-<translation id="2111843886872897694">היישומים חייבים להיות מוצגים מהמארח שעליו הם משפיעים.</translation>
 <translation id="2112877397266219826">הפעל את בקר המגע שלך כדי להגדיר אותי</translation>
 <translation id="21133533946938348">הצמד כרטיסייה</translation>
 <translation id="2113479184312716848">פתח &amp;קובץ...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">ספר לנו מה קורה</translation>
 <translation id="2229161054156947610">נותרה יותר משעה אחת</translation>
 <translation id="222931766245975952">הקובץ נקטע</translation>
-<translation id="222949136907494149"><ph name="URL" /> רוצה להשתמש במיקום המחשב שלך.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">לא ניתן ליצור את התיקיה "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">לחיצה תציג את הדודל היומי</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">חסום תמיד גישה למיקרופון</translation>
 <translation id="2367972762794486313">הצג יישומים</translation>
 <translation id="2371076942591664043">פתח &amp;בסיום</translation>
-<translation id="237336063998926520">‏שימוש בכתובת ה-IP לאיתור המיקום</translation>
 <translation id="2377319039870049694">מעבר לתצוגת רשימה</translation>
 <translation id="2377667304966270281">שגיאות חמורות</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> קבצים נבחרו</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> רוצה להעתיק קבצים מ-<ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">מזהה מפתח של רשות אישורים</translation>
 <translation id="2462752602710430187">המדפסת <ph name="PRINTER_NAME" /> נוספה</translation>
-<translation id="246335896104539386">ייבוא סימניות</translation>
 <translation id="2464089476039395325">‏שרת proxy של HTTP</translation>
 <translation id="2468902267404883140">‏לא ניתן לבצע התחברות לטלפון שלך. יש לוודא שימוש בטלפון Android תואם ושהוא מופעל ונמצא בקרבתך. &lt;a&gt;מידע נוסף&lt;/a&gt;</translation>
 <translation id="2470702053775288986">תוספים שלא נתמכים הושבתו</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">הסר התקנה</translation>
 <translation id="2487067538648443797">הוספת סימניה חדשה</translation>
 <translation id="248861575772995840">‏לא ניתן למצוא את הטלפון שלך. יש לוודא שה-Bluetooth מופעל ב-<ph name="DEVICE_TYPE" />. &lt;a&gt;מידע נוסף&lt;/a&gt;</translation>
-<translation id="2489316678672211764">יש פלאגין (<ph name="PLUGIN_NAME" />) שאינו מגיב.</translation>
 <translation id="2489428929217601177">מהיום האחרון</translation>
 <translation id="2489918096470125693">הוסף &amp;תיקיה...</translation>
 <translation id="249113932447298600">מצטערים, המכשיר <ph name="DEVICE_LABEL" /> אינו נתמך בשלב זה.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">ברכותינו! שירות הנתונים שלך, '<ph name="NAME" />', הופעל ומוכן לשימוש.</translation>
 <translation id="2566124945717127842">‏בצע פעולת Powerwash כדי לאפס את מכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> שלך כך שיהיה כמו חדש.</translation>
 <translation id="2568774940984945469">גורם מכיל של סרגל המידע</translation>
-<translation id="2570000010887652771">נתונים שנשמרו.</translation>
 <translation id="257088987046510401">ערכות נושא</translation>
 <translation id="2572032849266859634">ניתנה הרשאה לקריאה בלבד ב-<ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">בחר תמונה ושם</translation>
 <translation id="2575247648642144396">סמל זה יוצג כאשר התוסף יכול לפעול בדף הנוכחי. השתמש בתוסף זה על ידי לחיצה על הסמל או על ידי הקשה על <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">‏לא ניתן למצוא את הטלפון שלך. יש לוודא שה-<ph name="DEVICE_TYPE" /> מחובר לרשת Wi-Fi או לרשת סלולרית. &lt;a&gt;מידע נוסף&lt;/a&gt;</translation>
-<translation id="2576842806987913196">‏כבר קיים קובץ CRX בשם זה.</translation>
 <translation id="257779572837908839">‏הגדרה כ-Chromebox לניהול פגישות</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />לא ניתן לנתק את אמצעי האחסון<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1065,7 +1046,6 @@
 <translation id="2653266418988778031">‏אם תמחק אישור של רשות אישורים (CA), הדפדפן שלך לא יוכל לתת אמון באף אישור שהונפק על ידי רשות אישורים זו.</translation>
 <translation id="2653659639078652383">שלח</translation>
 <translation id="265390580714150011">ערך שדה </translation>
-<translation id="2654286334048437383">ייצוא סימניות</translation>
 <translation id="2655386581175833247">אישור משתמש:</translation>
 <translation id="2660779039299703961">אירוע</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1259,7 +1239,6 @@
 <translation id="2908162660801918428">הוספת גלריית מדיה לפי ספריה</translation>
 <translation id="2908789530129661844">התרחק מהתצוגה</translation>
 <translation id="2910318910161511225">יש להתחבר לרשת ולנסות שוב</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> מעוניין להשתמש במיקרופון שלך.</translation>
 <translation id="2913331724188855103">‏התר לאתרים לשמור ולקרוא נתונים של קובצי Cookie (מומלץ)</translation>
 <translation id="2916073183900451334">‏לחיצה על המקש Tab תדגיש קישורים בדף וכן שדות של טפסים</translation>
 <translation id="2916745397441987255">חפש תוספים</translation>
@@ -1357,7 +1336,7 @@
 <translation id="3051523411789012618">הזזת חלון כלפי מטה</translation>
 <translation id="3053013834507634016">שימוש במפתח אישור </translation>
 <translation id="3057861065630527966">גבה את התמונות והסרטונים</translation>
-<translation id="3060379269883947824">הפעל בחירת טקסט להקראה בקול</translation>
+<translation id="3060379269883947824">הפעלת הקראה</translation>
 <translation id="3061707000357573562">שירות תיקון</translation>
 <translation id="3064410671692449875">אין מספיק נתונים</translation>
 <translation id="3065041951436100775">משוב על כרטיסייה שנסגרה.</translation>
@@ -1412,7 +1391,6 @@
 <translation id="3141318088920353606">המערכת מקשיבה...</translation>
 <translation id="3141917231319778873">הבקשה הנתונה אינה נתמכת במכשיר: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">בוצע</translation>
-<translation id="3144135466825225871">‏הנסיון להחליף קובץ crx נכשל. בדוק אם הקובץ נמצא בשימוש.</translation>
 <translation id="3144647712221361880">פתח קישור בתור</translation>
 <translation id="3149510190863420837">‏יישומי Chrome</translation>
 <translation id="3150927491400159470">טעינה מחדש קשיחה</translation>
@@ -1499,7 +1477,7 @@
 <translation id="3289856944988573801">‏כדי לבדוק אם יש עדכונים, השתמש ב-Ethernet או ב-Wi-Fi.</translation>
 <translation id="3294437725009624529">אורח</translation>
 <translation id="329650768420594634">אזהרת 'ארוז תוסף'</translation>
-<translation id="329838636886466101">בצע תיקון</translation>
+<translation id="329838636886466101">תיקון</translation>
 <translation id="3298789223962368867">הוזנה כתובת אתר לא חוקית.</translation>
 <translation id="32991397311664836">מכשירים:</translation>
 <translation id="3300394989536077382">נחתם על ידי</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">הרץ תמיד בכל האתרים</translation>
 <translation id="3312424061798279731">שפות זמינות</translation>
 <translation id="3312903956926554846">התקנה בשולחן העבודה</translation>
-<translation id="3313473140726597081">דף הפתיחה השתנה ל-<ph name="URL" />. בלחיצה על 'שחזר' ניתן להשבית תוספים שמשנים את דף הפתיחה שלך.</translation>
 <translation id="3313590242757056087">כדי להגדיר אילו אתרים המשתמש בפיקוח יכול להציג, ניתן להגדיר הגבלות
     והגדרות על ידי ביקור ב-<ph name="MANAGEMENT_URL" />.
     אם לא תשנה את הגדרות ברירת המחדל, <ph name="USER_DISPLAY_NAME" />
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">פרטי יישום</translation>
 <translation id="3335947283844343239">פתח מחדש כרטיסייה שנסגרה</translation>
-<translation id="3337069537196930048">הפלאגין <ph name="PLUGIN_NAME" /> נחסם משום שאינו מעודכן.</translation>
 <translation id="3340978935015468852">הגדרות</translation>
 <translation id="3341703758641437857">אפשר גישה לכתובות אתרים של קבצים</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" רוצה להסיר את התוסף.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">הסימנייה נוספה</translation>
 <translation id="3389312115541230716">לחץ לחיצה ימנית על הסמל <ph name="SMALL_PRODUCT_LOGO" /> בשורת המשימות</translation>
 <translation id="3391716558283801616">כרטיסייה 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> מעוניין להשתמש במצלמה ובמיקרופון שלך.</translation>
 <translation id="3396331542604645348">המדפסת שנבחרה אינה זמינה או שאינה מותקנת כראוי. בדוק את המדפסת או נסה לבחור מדפסת אחרת.</translation>
 <translation id="3399432415385675819">הודעות יושבתו</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">‏Chrome מתעדכן באופן אוטומטי כך שתשתמש תמיד בגרסה העדכנית ביותר</translation>
 <translation id="3551320343578183772">סגור כרטיסייה</translation>
 <translation id="3552780134252864554">מנוקה בעת היציאה</translation>
-<translation id="355298399003313926"><ph name="URL" /> מבקש להגיב לאירועי נגישות.</translation>
 <translation id="3555812735919707620">הסר תוסף</translation>
 <translation id="3556000484321257665">מנוע החיפוש השתנה ל-<ph name="URL" />.</translation>
-<translation id="3561217442734750519">ערך קלט עבור מפתח פרטי חייב להיות נתיב חוקי.</translation>
 <translation id="3563432852173030730">לא ניתן היה להוריד את יישום הקיוסק.</translation>
 <translation id="3564334271939054422">‏ייתכן שתתבקש להיכנס לדף ההתחברות של רשת ה-Wi-Fi שבה אתה משתמש (<ph name="NETWORK_ID" />).</translation>
 <translation id="3564708465992574908">רמות מרחק התצוגה</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">מגבלות שם אישור </translation>
 <translation id="3596235046596950091">הפעלת שירותי ענן</translation>
 <translation id="3599863153486145794">‏ניקוי ההיסטוריה מכל המכשירים שבהם המשתמש נכנס לחשבון. ייתכן שלחשבון Google שלך יהיו צורות אחרות של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">מנהל המערכת ביטל את הגישה לקבצים מקומיים במכשיר שלך.</translation>
 <translation id="3600792891314830896">השתקת אתרים שמשמיעים צלילים</translation>
 <translation id="3603177256297531067">לא ניתן היה לתרגם את הדף הזה</translation>
 <translation id="3603533104205588786">בלחיצה על סימן הכוכב אפשר להוסיף דף לסימניות</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">צילומי מסך מושבתים</translation>
 <translation id="3625870480639975468">אפס מרחק מתצוגה</translation>
 <translation id="3626281679859535460">בהירות</translation>
-<translation id="3627052133907344175">כדי להשתמש בתוסף יש צורך ב-"<ph name="IMPORT_NAME" />" בגרסה "<ph name="IMPORT_VERSION" />" לכל הפחות, אך רק גרסה "<ph name="INSTALLED_VERSION" />" מותקנת.</translation>
 <translation id="3627320433825461852">נותרה פחות מדקה אחת</translation>
 <translation id="3627588569887975815">פתח קישור בחלון גלישה פרטית</translation>
 <translation id="3627671146180677314">‏מועד חידוש של אישור Netscape</translation>
@@ -1764,7 +1735,6 @@
 <translation id="3668570675727296296">הגדרות שפה</translation>
 <translation id="3668823961463113931">מטפלים</translation>
 <translation id="3670229581627177274">‏הפעל Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> רוצה לאחסן נתונים גדולים במחשב המקומי שלך באופן קבוע.</translation>
 <translation id="3672681487849735243">אותרה שגיאה שמקורה ביצרן</translation>
 <translation id="367645871420407123">‏השאר ריק אם ברצונך להגדיר את סיסמת root לערך תמונת בדיקת ברירת המחדל</translation>
 <translation id="3678156199662914018">תוסף: <ph name="EXTENSION_NAME" /></translation>
@@ -1842,11 +1812,9 @@
 <translation id="3786301125658655746">אינך מחובר לאינטרנט</translation>
 <translation id="3788401245189148511">מעוניינים:</translation>
 <translation id="3789841737615482174">התקן</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> פועל בשולחן העבודה בלבד.</translation>
 <translation id="379082410132524484">תוקף הכרטיס שלך פג</translation>
 <translation id="3792890930871100565">נתק מדפסות</translation>
 <translation id="379422718204375917">‏כדאי להשתמש ב-Smart Lock לכניסה לחשבון</translation>
-<translation id="3794595850995182458">יציאה מהדף</translation>
 <translation id="3796648294839530037">רשתות מועדפות:</translation>
 <translation id="3797900183766075808">&amp;חפש ב-<ph name="SEARCH_ENGINE" /> אחר '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="3798325802885154040">הגדרה זו מאפשרת להפעיל/להשבית את התכונה 'הקש ללחיצה'</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326">הפעל את <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">הוזן סוג שמירה לא חוקי.</translation>
 <translation id="3983586614702900908">מכשירים מספק לא ידוע</translation>
-<translation id="3984413272403535372">שגיאה בחתימה על התוסף.</translation>
 <translation id="3987938432087324095">זה לא היה ברור.</translation>
 <translation id="3988996860813292272">בחר אזור זמן</translation>
 <translation id="3989635538409502728">יציאה</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">‏התקן במכשיר ה-Chromebook שלך אפליקציות ומשחקים מ-Google Play. &lt;a target="_blank" href="<ph name="URL" />"&gt;מידע נוסף&lt;/a&gt;</translation>
 <translation id="4088095054444612037">אשר עבור הקבוצה</translation>
 <translation id="4090103403438682346">הפעל גישה מאומתת</translation>
-<translation id="4090404313667273475">יש צורך בפלאגין <ph name="PLUGIN_NAME" /> כדי להציג חלק מהרכיבים בדף זה.</translation>
 <translation id="4090535558450035482">(תוסף זה מנוהל ולא ניתן להסירו).</translation>
 <translation id="4091434297613116013">גליונות נייר</translation>
 <translation id="4093955363990068916">קובץ מקומי:</translation>
@@ -2060,7 +2026,7 @@
 <translation id="4130207949184424187">התוסף הזה שינה את הדף שמוצג כשאתה מבצע חיפוש מסרגל הכתובות.</translation>
 <translation id="413121957363593859">רכיבים</translation>
 <translation id="4131410914670010031">שחור ולבן</translation>
-<translation id="4136203100490971508">תאורת הלילה תידלק באופן אוטומטי בשעת הזריחה</translation>
+<translation id="4136203100490971508">תאורת הלילה תכבה באופן אוטומטי בשעת הזריחה</translation>
 <translation id="4138267921960073861">הצג שמות משתמשים ותמונות במסך הכניסה</translation>
 <translation id="4140559601186535628">הודעות בדחיפה</translation>
 <translation id="4146026355784316281">פתח תמיד באמצעות מציג המערכת</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> יכול עכשיו לסנכרן את הסיסמאות שלך.</translation>
 <translation id="4715553623069266137">קצרה מאוד (0.8 שניות)</translation>
 <translation id="4716483597559580346">‏ביצוע Powerwash להגברת האבטחה</translation>
-<translation id="471800408830181311">נכשל בפלט מפתח פרטי.</translation>
 <translation id="4720113199587244118">הוסף מכשירים</translation>
 <translation id="4720185134442950733">רשת נתונים לנייד</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> משתף את המסך שלך.</translation>
@@ -2402,7 +2367,7 @@
 <translation id="4777825441726637019">‏חנות Play</translation>
 <translation id="4779083564647765204">מרחק מתצוגה</translation>
 <translation id="477945296921629067">{NUM_POPUPS,plural, =1{חלון קופץ נחסם}two{# חלונות קופצים נחסמו}many{# חלונות קופצים נחסמו}other{# חלונות קופצים נחסמו}}</translation>
-<translation id="4780321648949301421">שמור דף כ...</translation>
+<translation id="4780321648949301421">שמירת הדף בשם...</translation>
 <translation id="4781787911582943401">התקרב לתצוגה</translation>
 <translation id="4784330909746505604">‏מצגת PowerPoint</translation>
 <translation id="4790972063719531840">‏שליחה אוטומטית של נתוני אבחון ושימוש אל Google</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">חזק</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> רוצה לתקשר עם התוסף"<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">אשר</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> מעוניין להשתמש במצלמה שלך.</translation>
 <translation id="4920887663447894854">האתרים הבאים נחסמו ממעקב אחר המיקום שלך בדף זה:</translation>
 <translation id="492299503953721473">‏הסר אפליקציות Android</translation>
 <translation id="4923279099980110923">כן, אני רוצה לעזור</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">התוסף הזה מכיל תוכנה זדונית.</translation>
 <translation id="498294082491145744">‏שינוי ההגדרות לגישה של אתרים לתכונות כמו קובצי cookie, ‏JavaScript, יישומי פלאגין, מיקום גיאוגרפי, מיקרופון, מצלמה וכו'.</translation>
 <translation id="4988526792673242964">דפים</translation>
-<translation id="4988792151665380515">נכשל ייצוא מפתח ציבורי.</translation>
 <translation id="49896407730300355">סובב נ&amp;גד כיוון השעון</translation>
 <translation id="4989966318180235467">בדוק את דף ה&amp;רקע</translation>
 <translation id="4990343175649730969">‏הורד את Chrome Cleanup Tool</translation>
@@ -2573,8 +2536,7 @@
 <translation id="5024856940085636730">פעולה מסוימת נמשכת זמן רב מהצפוי. האם ברצונך לבטל אותה?</translation>
 <translation id="5026874946691314267">אל תציג הודעה זו שוב</translation>
 <translation id="5027550639139316293">אישור אימייל</translation>
-<translation id="5027562294707732951">הוסף את התוסף</translation>
-<translation id="5028012205542821824">ההתקנה אינה מופעלת.</translation>
+<translation id="5027562294707732951">התקנת התוסף</translation>
 <translation id="5029568752722684782">נקה את העותק</translation>
 <translation id="5030338702439866405">הונפק על ידי</translation>
 <translation id="5036662165765606524">אל תאפשר לאף אתר להוריד קבצים מרובים באופן אוטומטי</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">אירעה שגיאה.</translation>
 <translation id="5094721898978802975">יצירת קשר עם יישומים מקוריים שמשתפים פעולה</translation>
 <translation id="5097002363526479830">ההתחברות לרשת נכשלה '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">לא ניתן למצוא את הנתיב המוחלט לספריה לאריזה.</translation>
 <translation id="5099354524039520280">למעלה</translation>
 <translation id="5100114659116077956">‏על מנת שתקבל את התכונות החדשות ביותר, על ה-Chromebox שלך לעבור עדכון.</translation>
 <translation id="5101042277149003567">פתח את כל הסימניות</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">הצג בתיקייה</translation>
 <translation id="5171045022955879922">חפש או הקלד כתובת אתר</translation>
 <translation id="5171343362375269016">זיכרון מוחלף</translation>
-<translation id="5175870427301879686"><ph name="URL" /> רוצה לאחסן נתונים במחשב המקומי שלך באופן קבוע.</translation>
 <translation id="5177479852722101802">המשך לחסום גישה אל המצלמה והמיקרופון</translation>
 <translation id="5177526793333269655">תצוגת תמונה ממוזערת</translation>
 <translation id="5177549709747445269">אתה משתמש בחיבור נתונים לנייד</translation>
@@ -2739,7 +2699,6 @@
 <translation id="529175790091471945">פרמט מכשיר זה</translation>
 <translation id="5293170712604732402">שחזר את ההגדרות לברירות המחדל המקוריות שלהן</translation>
 <translation id="5298219193514155779">נושא שנוצר על ידי</translation>
-<translation id="5298363578196989456">לא ניתן לייבא את התוסף "<ph name="IMPORT_NAME" />" מפני שהוא אינו מודול משותף.</translation>
 <translation id="5299109548848736476">ללא מעקב</translation>
 <translation id="5299682071747318445">כל הנתונים מסונכרנים באמצעות משפט הסיסמה שלך לסנכרון</translation>
 <translation id="5300589172476337783">הצג</translation>
@@ -2767,7 +2726,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" רוצה לבצע התאמה עם</translation>
 <translation id="5332624210073556029">אזור זמן:</translation>
 <translation id="5334142896108694079">מטמון של סקריפט</translation>
-<translation id="533433379391851622">הגרסה הצפויה היא "<ph name="EXPECTED_VERSION" />", אבל הגרסה היתה "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">הצג מקור</translation>
 <translation id="5335458522276292100">‏מגבה <ph name="FILE_COUNT" /> ב-<ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">הותקן על ידי צד שלישי.</translation>
@@ -2805,7 +2763,6 @@
 <translation id="5390100381392048184">מתן הרשאה לאתרים להשמיע צלילים</translation>
 <translation id="5390284375844109566">מסד נתונים שנוסף לאינדקס</translation>
 <translation id="5390743329570580756">שלח עבור</translation>
-<translation id="5396126354477659676">הפלאגין <ph name="PEPPER_PLUGIN_NAME" /> ב-<ph name="PEPPER_PLUGIN_DOMAIN" /> מבקש גישה למחשב שלך.</translation>
 <translation id="5397794290049113714">אתה</translation>
 <translation id="5398572795982417028">התייחסות לדף מחוץ לטווח, המגבלה היא <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">מודעות חסומות</translation>
@@ -2867,7 +2824,6 @@
 <translation id="5485754497697573575">שחזר את כל הכרטיסיות</translation>
 <translation id="5486261815000869482">אשר סיסמה</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> משתף את המסך שלך עם <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">חייב להתקיים ערך קלט של מפתח פרטי.</translation>
 <translation id="5486561344817861625">ביצוע הדמיה של הפעלת דפדפן מחדש</translation>
 <translation id="5487521232677179737">נקה נתונים</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' הועתק</translation>
@@ -2950,7 +2906,6 @@
 <translation id="5600706100022181951">‏ההורדה של העדכון תנצל MB <ph name="UPDATE_SIZE_MB" /> מחבילת הגלישה. להמשיך?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">מנועי חיפוש אחרים</translation>
-<translation id="5606674617204776232">הפלאגין <ph name="PEPPER_PLUGIN_NAME" /> ב-<ph name="PEPPER_PLUGIN_DOMAIN" /> מבקש גישה למכשיר שלך.</translation>
 <translation id="5608580678041221894">הקש על המקשים הבאים כדי לשנות או להזיז את אזור החיתוך</translation>
 <translation id="5609231933459083978">נראה שהיישום אינו חוקי.</translation>
 <translation id="5610038042047936818">מעבר למצב מצלמה</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">מתורגם</translation>
 <translation id="5991049340509704927">הגדל</translation>
 <translation id="5993332328670040093">השימוש בנתונים כבר לא יימדד.</translation>
-<translation id="6003177993629630467">ייתכן ש-<ph name="PRODUCT_NAME" /> לא יוכל להתעדכן.</translation>
 <translation id="600424552813877586">יישום לא חוקי.</translation>
 <translation id="6005695835120147974">נתב מדיה</translation>
 <translation id="6006484371116297560">קלאסי</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">גיבוי בענן</translation>
 <translation id="6040143037577758943">סגור</translation>
 <translation id="6040852767465482106">זהות אנונימית</translation>
+<translation id="6041155700700864984">יציאה ממסך מלא</translation>
 <translation id="604124094241169006">אוטומטי</translation>
 <translation id="6042169520002885235">בחר את היצרן והדגם של המדפסת</translation>
 <translation id="6042308850641462728">עוד</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">טעינה מחדש רגילה</translation>
 <translation id="6059652578941944813">היררכיית אישורים</translation>
 <translation id="6059925163896151826">‏מכשירי USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> קרס.</translation>
 <translation id="6064217302520318294">נעילת מסך</translation>
 <translation id="6065289257230303064">תכונות ספרייה של נושא אישור</translation>
 <translation id="6068338049763724728">הפעלה של רישום מרחוק</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">הגדרה זו מאפשרת לך לקבוע את רזולוציית המסך</translation>
 <translation id="6238923052227198598">המשך הצגת ההודעה האחרונה במסך הנעילה</translation>
 <translation id="6239558157302047471">טען מחדש את ה&amp;מסגרת</translation>
-<translation id="624022915548992686">יציאה מהדף</translation>
 <translation id="6241530762627360640">‏פרטי גישה של מכשירי Bluetooth המותאמים למערכת שלך ומגלים מכשירי Bluetooth קרובים.</translation>
 <translation id="6243774244933267674">השרת אינו זמין</translation>
 <translation id="6246413617632217567">לא ניתן לייבא את המשתמש בפיקוח. ודא שיש שטח אחסון פנוי בכונן הקשיח, בדוק את ההרשאות שלך ונסה שוב.</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">שגיאת רשת לא ידועה</translation>
 <translation id="6313641880021325787">‏יציאה מ-VR</translation>
 <translation id="6314819609899340042">הפעלת בהצלחה תכונות ניפוי באגים במכשיר <ph name="IDS_SHORT_PRODUCT_NAME" /> זה.</translation>
-<translation id="6315343732431721770">דפי הפתיחה השתנו והם כוללים עכשיו את <ph name="URL" />. בלחיצה על 'שחזר' ניתן להשבית תוספים שמשנים את דף הפתיחה שלך.</translation>
 <translation id="6315493146179903667">הבא הכול קדימה</translation>
 <translation id="6316806695097060329">מכשיר <ph name="SHORT_PRODUCT_NAME" /> זה תוכנן לספק לך את החוויה הטובה ביותר באינטרנט.</translation>
 <translation id="6317318380444133405">התמיכה הופסקה.</translation>
 <translation id="6317369057005134371">ממתין לחלון היישום...</translation>
 <translation id="6318407754858604988">ההורדה התחילה</translation>
-<translation id="6322279351188361895">נכשל בקריאת מפתח פרטי.</translation>
 <translation id="6325191661371220117">השבת הפעלה אוטומטית</translation>
 <translation id="6326175484149238433">‏הסר מ-Chrome</translation>
 <translation id="6326855256003666642">‏ספירת Keepalive</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">בחר מה לסנכרן</translation>
 <translation id="6333064448949140209">‏הקובץ יישלח אל Google לניפוי באגים</translation>
 <translation id="6333834492048057036">מיקוד בסרגל כתובות לחיפוש</translation>
-<translation id="6336907568130557310">כל מי שיוכל לגשת אל הקובץ המיוצא יוכל לראות גם את הסיסמאות שלך. אין לשתף את הקובץ עם אף אחד, ויש למחוק אותו לאחר הייבוא.</translation>
 <translation id="6339668969738228384">צור פרופיל חדש בשביל <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">‏לא ניתן היה להתחבר אל השרת. יש לבדוק את חיבור הרשת ולנסות שוב. אם הבעיה ממשיכה, יש להפעיל מחדש את ה-Chromebook.</translation>
 <translation id="6340071272923955280">‏פרוטוקול הדפסה באינטרנט (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">‏אתרים יכולים לשמור ולקרוא נתונים של קובצי cookie</translation>
 <translation id="6388771388956873507">מצא את חיישן טביעות האצבע במכשיר וגע בו עם האצבע</translation>
 <translation id="6390799748543157332">‏הדפים שאתה מציג בחלון זה לא יופיעו בהיסטוריית הדפדפן, ולאחר שתסגור את כל חלונות האורח הפתוחים, לא יותירו במחשב עקבות, כמו קובצי Cookie. עם זאת, כל הקבצים שאתה מוריד יישמרו.</translation>
-<translation id="6391538222494443604">ספריית קלט חייבת להתקיים.</translation>
 <translation id="6395423953133416962">שלח <ph name="BEGIN_LINK1" />פרטי מערכת<ph name="END_LINK1" /> ו<ph name="BEGIN_LINK2" />ערכים<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">הפסק לדבר</translation>
 <translation id="6397592254427394018">פתח את כל הסימניות בחלון &amp;גלישה בסתר</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">‏ניהול חסימת JavaScript...</translation>
 <translation id="6459488832681039634">השתמש בבחירה כדי לחפש</translation>
 <translation id="6460601847208524483">חפש את הבא</translation>
-<translation id="6462080265650314920">היישומים חייבים להיות מוצגים עם סוג תוכן "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">האם אתה עדיין שם?</translation>
 <translation id="6463795194797719782">&amp;ערוך</translation>
 <translation id="6466988389784393586">&amp;פתח את כל הסימניות</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">‏האם תרצה ש-Google תתרגם דף זה מ<ph name="SOURCE_LANGUAGE" /> ל<ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">התקן הצבעה מחובר</translation>
-<translation id="6677037229676347494">המזהה הצפוי הוא "<ph name="EXPECTED_ID" />", אך המזהה היה "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">כתובת אתר של שאילתה</translation>
 <translation id="6680028776254050810">החלף משתמשים</translation>
 <translation id="6680442031740878064">השטח הזמין: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">‏מתי שרוצים אפשר לקבוע דרך <ph name="BEGIN_LINK" />ההגדרות<ph name="END_LINK" /> את סוגי המידע ש-Google אוספת.</translation>
 <translation id="6904344821472985372">בטל גישה לקבצים</translation>
 <translation id="6904655473976120856">לחץ על לחצן האפליקציה כדי לצאת</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> רוצה לשתף את המסך שלך.</translation>
-<translation id="6909461304779452601">לא ניתן להוסיף יישומים, תוספים וסקריפטים של משתמש מהאתר הזה.</translation>
 <translation id="6910211073230771657">נמחק</translation>
 <translation id="691024665142758461">להוריד מספר קבצים</translation>
 <translation id="6911324888870229398">‏החיבור לרשת נותק. יש לבדוק את החיבור או לנסות רשת Wi-Fi אחרת.</translation>
@@ -4096,7 +4041,6 @@
 <translation id="747114903913869239">שגיאה: לא ניתן לפענח תוסף</translation>
 <translation id="7473891865547856676">לא, תודה</translation>
 <translation id="747459581954555080">שחזר הכל</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> נתקל בשגיאה.</translation>
 <translation id="7475671414023905704">‏כתובת אתר לסיסמה שאבדה של Netscape</translation>
 <translation id="7476454130948140105">‏הסוללה חלשה מדי להתקנת העדכון (‎<ph name="BATTERY_PERCENT" />%‎)</translation>
 <translation id="7477347901712410606">‏אם שכחת את משפט-הסיסמה, עצור ואפס את הסינכרון דרך <ph name="BEGIN_LINK" />לוח הבקרה של Google‏<ph name="END_LINK" /></translation>
@@ -4133,7 +4077,6 @@
 <translation id="7507930499305566459">אישור מגיב סטטוס</translation>
 <translation id="7508545000531937079">מצגת שקופיות</translation>
 <translation id="7513029293694390567">היכנס באופן אוטומטי לאתרים באמצעות פרטי כניסה שמורים. כשהאפשרות הזו מושבתת, תתבקש לאשר לפני כל כניסה לאתר.</translation>
-<translation id="7515670329462166359">האתר <ph name="URL" /> מבקש לזהות את המכשיר שלך באופן ייחודי לצורך הפעלת תוכן מוגן.</translation>
 <translation id="7517569744831774757">החזר את ההגדרות לברירות המחדל המקוריות שלהן.</translation>
 <translation id="7517786267097410259">צור סיסמה -</translation>
 <translation id="7518150891539970662">‏יומני WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4161,7 +4104,6 @@
 <translation id="7563991800558061108">‏כדי להתאושש משגיאה זו, עליך להיכנס לחשבון Google שלך ממסך הכניסה. לאחר מכן תוכל לצאת מחשבון Google שלך ולנסות ליצור שוב משתמש בפיקוח.</translation>
 <translation id="756445078718366910">פתח חלון דפדפן</translation>
 <translation id="7564847347806291057">סיים תהליך</translation>
-<translation id="7565291891798266313">מנוע החיפוש השתנה ל-<ph name="URL" />. בלחיצה על 'שחזר' ניתן להשבית תוספים שמשנים את מנוע החיפוש.</translation>
 <translation id="7566118625369982896">‏ניהול קישורים של אפליקציות מ-Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">‏נתוני Chrome נוקו</translation>
@@ -4170,7 +4112,6 @@
 <translation id="7573172247376861652">טעינת סוללה</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">אסוף</translation>
-<translation id="7577815336900970562">‏שימוש ב-Wi-Fi או ברשת סלולרית לקביעת המיקום</translation>
 <translation id="7579149537961810247">השתק אתרים</translation>
 <translation id="7580671184200851182">השמע את אותו אודיו מכל הרמקולים (אודיו מונו)</translation>
 <translation id="7581462281756524039">כלי לניקוי</translation>
@@ -4277,6 +4218,7 @@
 <translation id="7773726648746946405">אחסון הפעלה</translation>
 <translation id="7781335840981796660">תתבצע הסרה של כל חשבונות המשתמש והנתונים השמורים במכשיר.</translation>
 <translation id="7782102568078991263">‏אין יותר הצעות מ-Google</translation>
+<translation id="778330624322499012">לא ניתן להעלות את <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">הגדרות אבטחה במחשב שלך חסמו קובץ זה.</translation>
 <translation id="7786207843293321886">צא מהפעלת אורח</translation>
 <translation id="7786889348652477777">&amp;טען אפליקציה מחדש</translation>
@@ -4438,7 +4380,6 @@
 <translation id="8001504501378762252">ייתכן שאתר גנב את הסיסמה שלך</translation>
 <translation id="8004582292198964060">דפדפן</translation>
 <translation id="8008356846765065031">האינטרנט מנותק. בדוק את חיבור האינטרנט.</translation>
-<translation id="8008765610824028412">אי אפשר לטעון את <ph name="PLUGIN_NAME" /></translation>
 <translation id="8008818777654712271">‏שלח באופן אוטומטי חלק מפרטי המערכת ותוכן הדף אל Google כדי לעזור בזיהוי של יישומים ואתרים מסוכנים.</translation>
 <translation id="8012382203418782830">הדף הזה תורגם.</translation>
 <translation id="8014154204619229810">המעדכן פועל כעת. רענן בעוד דקה כדי לבדוק שנית.</translation>
@@ -4555,7 +4496,6 @@
 <translation id="8191230140820435481">לנהל את היישומים, התוספים והעיצובים שלך</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">גודל בדיסק</translation>
-<translation id="8195739004487400241">דף הבית שלך השתנה ל-<ph name="URL" />. בלחיצה על 'שחזר' ניתן להשבית תוספים שמשנים את דף הבית.</translation>
 <translation id="8199300056570174101">מאפייני רשת (שירות) ומכשיר</translation>
 <translation id="8200772114523450471">חדש</translation>
 <translation id="8202160505685531999">הזן שוב את הסיסמה כדי לעדכן את פרופיל <ph name="DEVICE_TYPE" />.</translation>
@@ -4599,7 +4539,6 @@
 <translation id="8261378640211443080">התוסף הזה לא רשום ב<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> וייתכן שנוסף ללא ידיעתך.</translation>
 <translation id="8261387128019234107">הוסף חשבון עבור <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">מחיקה</translation>
-<translation id="826246685091802258">‏<ph name="BAD_FLAG" /> לא מוטמע ב-build הזה.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> השבית את סמן העכבר.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" הפעיל מסך מלא.</translation>
 <translation id="8270242299912238708">‏מסמכי PDF</translation>
@@ -4700,6 +4639,7 @@
 <translation id="8454288007744638700">לחלופין, בחר רשת חדשה:</translation>
 <translation id="845627346958584683">מועד תפוגה</translation>
 <translation id="8456681095658380701">שם לא חוקי</translation>
+<translation id="8457451314607652708">יבא סימניות</translation>
 <translation id="8460336040822756677">‏אם תשבית את Smart Lock‏ ב-<ph name="DEVICE_TYPE" />, לא תוכל לבטל את נעילת מכשירי ה-Chrome שלך באמצעות הטלפון, ותצטרך להזין את הסיסמה.</translation>
 <translation id="8461329675984532579">שם ספק ביתי</translation>
 <translation id="84613761564611563">נוצרה בקשה עבור ממשק משתמש להגדרות הרשת, נא להמתין...</translation>
@@ -4731,7 +4671,6 @@
 <translation id="850875081535031620">לא נמצאו תוכנות מזיקות</translation>
 <translation id="8512476990829870887">סיים תהליך</translation>
 <translation id="851263357009351303">אפשר ל-<ph name="HOST" /> להציג תמונות תמיד</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" מנפה את הבאגים בדפדפן זה.</translation>
 <translation id="8521475323816527629">גישה מהירה לאפליקציות</translation>
 <translation id="8523493869875972733">שמור את השינויים</translation>
 <translation id="8523849605371521713">נוסף על-ידי מדיניות</translation>
@@ -4769,7 +4708,7 @@
 <translation id="8581809080475256101">לחץ כדי להתקדם, תפריט הקשר כדי לראות את ההיסטוריה</translation>
 <translation id="8584280235376696778">פתח וידאו בכרטיסייה חדשה</translation>
 <translation id="8588866096426746242">הצגת נתונים סטטיסטיים של פרופיל</translation>
-<translation id="8589652987924574405">‏הסימניות, ההיסטוריה, הסיסמאות וההגדרות האחרות יסונכרנו עם חשבון Google שלך, כדי שאפשר יהיה להשתמש בהן בכל המכשירים. אפשר לשנות את ההגדרה הזאת בכל שלב דרך ההגדרות.</translation>
+<translation id="8589652987924574405">‏הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות יסונכרנו עם חשבון Google שלך, כדי שאפשר יהיה להשתמש בהן בכל המכשירים. אפשר לשנות את ההגדרה הזאת בכל שלב דרך ההגדרות.</translation>
 <translation id="8590375307970699841">הגדר עדכונים אוטומטיים</translation>
 <translation id="8594908476761052472">צילום סרטון</translation>
 <translation id="8596540852772265699">קבצים מותאמים אישית</translation>
@@ -4787,7 +4726,6 @@
 <translation id="8620765578342452535">הגדרת חיבורי רשת</translation>
 <translation id="8620790565535071193">הסריקה נכשלה</translation>
 <translation id="8622877356447980900">האם אתה רוצה לתרגם את הדף הזה?</translation>
-<translation id="8623004009673949077">‏יש להתקין יישומים עם מאפיין המניפסט 'kiosk_only' במצב קיוסק של מערכת ההפעלה של Chrome.</translation>
 <translation id="8624205858755890468">‏מאפשר ל-Assistant להציג לך פעולות, אפליקציות ופרטים קשורים.</translation>
 <translation id="862542460444371744">&amp;תוספים</translation>
 <translation id="8627151598708688654">בחירת מקור</translation>
@@ -4936,7 +4874,6 @@
 <translation id="882204272221080310">כדאי לעדכן את הקושחה כדי להגביר את האבטחה.</translation>
 <translation id="8823514049557262177">העתק ט&amp;קסט קישור</translation>
 <translation id="8824701697284169214">הוסף &amp;דף...</translation>
-<translation id="8827850355924932817">‏שימוש ברשת Wi-Fi לקביעת המיקום</translation>
 <translation id="8828933418460119530">‏שם DNS</translation>
 <translation id="8830796635868321089">‏בדיקת העדכון נכשלה עם ההגדרות הנוכחיות של שרת ה-proxy‏. התאם את <ph name="PROXY_SETTINGS_LINK_START" />הגדרות שרת ה-proxy שלך<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">הגדרת הרשת היא בשליטת <ph name="USER_EMAIL" />.</translation>
@@ -4968,9 +4905,7 @@
 <translation id="8879284080359814990">הצ&amp;ג ככרטיסייה</translation>
 <translation id="8884961208881553398">הוסף שירותים חדשים</translation>
 <translation id="8885197664446363138">‏Smart Lock אינו זמין</translation>
-<translation id="8885905466771744233">מפתח פרטי לתוסף שצוין כבר קיים. השתמש שוב במפתח זה או מחק אותו תחילה.</translation>
 <translation id="8888432776533519951">צבע:</translation>
-<translation id="8892992092192084762">עיצוב מותקן "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">מצטערים, לא ניתן לזהות את המכשיר <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">רשימת סימניות</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4979,13 +4914,12 @@
 <translation id="8899285681604219177">תוספים שאינם נתמכים הושבתו</translation>
 <translation id="8899551033019439140">מחפש מדפסת...</translation>
 <translation id="8899851313684471736">פתח קישור &amp;בחלון חדש</translation>
-<translation id="8902667442496790482">פתח את ההגדרות של בחירת טקסט להקראה בקול</translation>
+<translation id="8902667442496790482">פתיחה של הגדרות ההקראה</translation>
 <translation id="8903921497873541725">התקרב</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">אזהרה: הפעלת את סימן הסקריפטים-דורשים-פעולה במחשב זה, אשר מגביל את יכולותיו של תוסף זה. עם זאת, ייתכן שמכשירים אחרים אינם תומכים בסמל זה או שהוא כבר מופעל בהם. במכשירים אלו, תוסף זה יכול גם:</translation>
 <translation id="8910146161325739742">שיתוף המסך שלך</translation>
 <translation id="8910222113987937043">‏שינויים בסימניות, בהיסטוריה, בסיסמאות ובהגדרות אחרות לא יסונכרנו עוד עם חשבון Google שלך. עם זאת, הנתונים הקיימים עדיין יישארו בחשבון Google ותוכל לנהל אותם ב<ph name="BEGIN_LINK" />מרכז השליטה של Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">‏Google סימנה את "<ph name="EXTENSION_NAME" />" כזדוני, וההתקנה נמנעה.</translation>
 <translation id="8912793549644936705">מתח</translation>
 <translation id="8915370057835397490">טוען הצעה...</translation>
 <translation id="8916476537757519021">תת-מסגרת לגלישה בסתר: <ph name="SUBFRAME_SITE" /></translation>
@@ -5091,7 +5025,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">‏עכבר USB מחובר</translation>
 <translation id="9076523132036239772">מצטערים, לא ניתן לאמת את האימייל או הסיסמה שלך. נסה תחילה להתחבר לרשת.</translation>
-<translation id="907841381057066561">‏נכשל ביצירת קובץ zip זמני במהלך האריזה.</translation>
 <translation id="9084064520949870008">פתח כחלון</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> חסום לפי מדיניות הארגון</translation>
 <translation id="9088917181875854783">אשר שסיסמה זו מוצגת ב-"<ph name="DEVICE_NAME" />":</translation>
@@ -5175,18 +5108,16 @@
 <translation id="93393615658292258">סיסמה בלבד</translation>
 <translation id="935490618240037774">‏הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות יסונכרנו עם חשבון Google, כך שתוכל להשתמש בהן בכל המכשירים שלך.</translation>
 <translation id="936801553271523408">נתוני אבחון של מערכת</translation>
-<translation id="93766956588638423">תקן את התוסף</translation>
+<translation id="93766956588638423">תיקון התוסף</translation>
 <translation id="938470336146445890">התקן אישור משתמש.</translation>
 <translation id="938582441709398163">שכבת-על של מקלדת</translation>
 <translation id="939252827960237676">שמירת צילום המסך נכשלה</translation>
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">הזן משפט-סיסמה</translation>
 <translation id="939736085109172342">תיקייה חדשה</translation>
-<translation id="941543339607623937">מפתח פרטי לא חוקי.</translation>
 <translation id="942532530371314860">‏<ph name="APP_NAME" /> משתף כרטיסייה ואודיו של Chrome.</translation>
 <translation id="942954117721265519">אין תמונות בספריה הזו.</translation>
 <translation id="945522503751344254"> שליחת משוב</translation>
-<translation id="951981865514037445"><ph name="URL" />‏ רוצה להשתמש במיקום המכשיר שלך.</translation>
 <translation id="952992212772159698">לא פעיל</translation>
 <translation id="9580706199804957">‏לא ניתן היה להתחבר אל שירותי Google</translation>
 <translation id="958515377357646513">גע כדי לעבור קדימה.</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index cc29129..31b3eac 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">暗号化のみ</translation>
 <translation id="1039337018183941703">ファイルが無効であるか壊れています</translation>
 <translation id="1042174272890264476">お使いのパソコンには <ph name="SHORT_PRODUCT_NAME" /> の RLZ ライブラリも組み込まれています。RLZ は、個人を特定できないタグを割り当てて、特定の販促キャンペーンで生じた検索や <ph name="SHORT_PRODUCT_NAME" /> の利用状況を計測します。これらのラベルは <ph name="PRODUCT_NAME" /> で Google 検索キーワード内に表示されることがあります。</translation>
-<translation id="1042574203789536285"><ph name="URL" /> がこの端末に大量のデータを永続的に保存しようとしています。</translation>
 <translation id="1046059554679513793">この名前は既に使用されています。</translation>
 <translation id="1047431265488717055">リンクテキストをコピー(&amp;X)</translation>
 <translation id="1047726139967079566">ブックマークに追加...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">既定の検索エンジンに戻しますか?</translation>
 <translation id="1177863135347784049">カスタム</translation>
 <translation id="1178581264944972037">一時停止</translation>
-<translation id="1179803038870941185"><ph name="URL" /> が MIDI デバイスのフル コントロールを求めています。</translation>
 <translation id="1181037720776840403">削除</translation>
 <translation id="1183237619868651138">ローカル キャッシュの <ph name="EXTERNAL_CRX_FILE" /> はインストールできません。</translation>
 <translation id="1185924365081634987">このネットワーク エラーを解決するには、<ph name="GUEST_SIGNIN_LINK_START" />ゲストとしてブラウジング<ph name="GUEST_SIGNIN_LINK_END" />もお試しください。</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{パソコンに保存されている 1 個のファイルにアクセスします}other{パソコンに保存されている # 個のファイルにアクセスします}}</translation>
 <translation id="1195076408729068893">Smart Lock の使用を開始するには、パスワードを入力します。次回から、スマートフォンで <ph name="DEVICE_TYPE" /> のロックを解除できます。</translation>
 <translation id="1195447618553298278">不明なエラーです。</translation>
-<translation id="1196338895211115272">秘密鍵をエクスポートできませんでした。</translation>
 <translation id="119738088725604856">スクリーンショット ウィンドウ</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> プリンタのプリンタ機能の取得中にエラーが発生しました。このプリンタを <ph name="CLOUD_PRINT_NAME" /> に登録できませんでした。</translation>
 <translation id="1198271701881992799">さあ始めましょう</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">この設定には管理者が特定の値を推奨しています。</translation>
 <translation id="1225177025209879837">リクエストを処理しています...</translation>
 <translation id="1225211345201532184">シェルフ アイテム 5</translation>
-<translation id="1225404570112441414">このサイトをシェルフに追加するといつでも使えるようになります。</translation>
 <translation id="1227507814927581609">「<ph name="DEVICE_NAME" />」への接続中に、認証に失敗しました。</translation>
 <translation id="1230807973377071856">システム メニュー</translation>
 <translation id="1232569758102978740">無題</translation>
@@ -192,7 +188,7 @@
 <translation id="1280820357415527819">モバイル ネットワークを検索しています</translation>
 <translation id="1285320974508926690">このサイトは翻訳しない</translation>
 <translation id="1285484354230578868">Google ドライブ アカウントでのデータの保存</translation>
-<translation id="1288037062697528143">読書灯は日没時刻に自動的にオンになります</translation>
+<translation id="1288037062697528143">読書灯は日の入り時刻に自動的にオンになります</translation>
 <translation id="1293177648337752319">サイトのミュートを解除</translation>
 <translation id="1293509594570842875">新しい監視対象ユーザーを作成できませんでした。ネットワーク接続を確認し、しばらくしてからもう一度お試しください。</translation>
 <translation id="1293556467332435079">ファイル</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML ファイルをブックマークに登録</translation>
 <translation id="1303671224831497365">Bluetooth デバイスが見つかりませんでした</translation>
 <translation id="1306606229401759371">設定を変更</translation>
-<translation id="1307398858972670978">どの端末からでも <ph name="SAVED_PASSWORDS_LINK" /> でパスワードにアクセスできます</translation>
 <translation id="1307559529304613120">このデバイスの長期 API アクセス トークンを保存できませんでした。</translation>
 <translation id="1313405956111467313">自動プロキシ設定</translation>
 <translation id="131364520783682672">CapsLock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">検索</translation>
 <translation id="1386387014181100145">こんにちは。</translation>
 <translation id="138784436342154190">デフォルトの起動ページに戻しますか?</translation>
-<translation id="1389297115360905376">これは <ph name="CHROME_WEB_STORE" /> からのみ追加できます。</translation>
 <translation id="1390548061267426325">通常のタブとして開く</translation>
-<translation id="1391807639023934267">ページ読み込みを高速化します。</translation>
 <translation id="1393283411312835250">太陽と雲</translation>
 <translation id="1395262318152388157">シーク スライダー</translation>
 <translation id="1395730723686586365">アップデータ起動</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">アップデートしようとしているバージョンの <ph name="PRODUCT_NAME" /> には開発中の機能が含まれており、不安定です。クラッシュや予期しないバグが発生します。続行する場合は十分にご注意ください。</translation>
 <translation id="1415990189994829608">このタイプのセッションでは、<ph name="EXTENSION_NAME" />(拡張機能 ID「<ph name="EXTENSION_ID" />」)は使用できません。</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">ランダムな RSA 秘密鍵を生成できませんでした。</translation>
 <translation id="1420834118113404499">メディア ライセンス</translation>
 <translation id="1420920093772172268">ペア設定するには <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">はい</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">オーディオ アドレスをコピー(&amp;C)</translation>
 <translation id="1465827627707997754">ピザ</translation>
 <translation id="1467432559032391204">左</translation>
-<translation id="1467999917853307373"><ph name="URL" /> がお使いの端末への永続的なデータ保存を必要としています。</translation>
-<translation id="1470719357688513792">新しい Cookie 設定はページの再読み込み後に有効になります。</translation>
 <translation id="1470811252759861213">お使いのどの端末でも同じ拡張機能を使用するには、<ph name="SIGN_IN_LINK" />します。</translation>
 <translation id="1474339897586437869">「<ph name="FILENAME" />」はアップロードされていません。Google ドライブに十分な空き容量がありません。</translation>
 <translation id="1475502736924165259">他のどのカテゴリにも適合しない証明書がファイルに格納されています</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">大きいマウス カーソル</translation>
 <translation id="1543284117603151572">Edge からインポート</translation>
 <translation id="1545177026077493356">自動キオスク モード</translation>
+<translation id="1545775234664667895">テーマ「<ph name="THEME_NAME" />」をインストールしました</translation>
 <translation id="1545786162090505744">URL(%s=検索語句)</translation>
 <translation id="1546280085599573572">この拡張機能により、ホームボタンをクリックしたときに表示されるページが変更されました。</translation>
 <translation id="1547572086206517271">更新が必要です</translation>
@@ -444,11 +435,9 @@
     監視対象ユーザーがどのウェブサイトにアクセスしたかを<ph name="BEGIN_BOLD" />確認<ph name="END_BOLD" />する
     その他の設定を<ph name="BEGIN_BOLD" />管理<ph name="END_BOLD" />する</translation>
 <translation id="1648943974594387137">ログイン情報が古くなっています</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> 行が非表示です&gt;</translation>
 <translation id="1650371550981945235">入力オプションを表示</translation>
 <translation id="1650709179466243265">www. と .com を追加してアドレスを開く</translation>
 <translation id="1651008383952180276">同じパスフレーズを 2 回入力する必要があります</translation>
-<translation id="1652972346408808053">パスワードを保存しました。どの端末からでも <ph name="SAVED_PASSWORDS_LINK" /> でパスワードにアクセスできます。</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{プリンタを Google クラウド プリントに追加してください。登録したプリンタにはどこからでも印刷できます。}other{# 件のプリンタを Google クラウド プリントに追加してください。登録したプリンタにはどこからでも印刷できます。}}</translation>
 <translation id="1657406563541664238">使用統計データや障害レポートを Google に自動送信して <ph name="PRODUCT_NAME" /> の機能向上に役立てる</translation>
 <translation id="1658424621194652532">このページはマイクにアクセスしています。</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Cookie のブロックを続行する</translation>
 <translation id="204622017488417136">以前インストールしたバージョンの Chrome にデバイスを戻します。すべてのユーザー アカウントとローカルデータは削除されます。この操作は元に戻せません。</translation>
 <translation id="2048182445208425546">ユーザーのネットワーク トラフィックへのアクセス</translation>
-<translation id="2049137146490122801">ご使用のパソコンのローカル ファイルへのアクセスは管理者によって無効にされています。</translation>
 <translation id="204914487372604757">ショートカットを作成</translation>
 <translation id="2050339315714019657">縦</translation>
 <translation id="2053312383184521053">アイドル状態のデータ</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">まだ読み込まれていません</translation>
 <translation id="2107494551712864447">指紋の登録</translation>
-<translation id="2111843886872897694">アプリは、関連付けられたホストから提供される必要があります。</translation>
 <translation id="2112877397266219826">設定するにはタッチ コントローラをオンにしてください</translation>
 <translation id="21133533946938348">タブを固定</translation>
 <translation id="2113479184312716848">ファイルを開く(&amp;F)...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">問題の詳細をお知らせください</translation>
 <translation id="2229161054156947610">あと 1 時間以上</translation>
 <translation id="222931766245975952">ファイルの一部が削除されました</translation>
-<translation id="222949136907494149"><ph name="URL" /> ではパソコンの現在地情報が必要となります。</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">フォルダ「<ph name="FOLDER_NAME" />」を作成することができません。<ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">クリックして今日の Doodle を表示</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">マイクのアクセスを常にブロックする</translation>
 <translation id="2367972762794486313">アプリを表示</translation>
 <translation id="2371076942591664043">ダウンロードしたら開く(&amp;D)</translation>
-<translation id="237336063998926520">IP アドレスを使って現在地を特定します</translation>
 <translation id="2377319039870049694">リスト表示に切り替え</translation>
 <translation id="2377667304966270281">ハードの障害数</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> 個のファイルを選択</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239">「<ph name="APP_NAME" />」が <ph name="VOLUME_NAME" /> のファイルのコピーを求めています。</translation>
 <translation id="2462724976360937186">認証局キー ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> を追加しました</translation>
-<translation id="246335896104539386">ブックマークをインポート</translation>
 <translation id="2464089476039395325">HTTP プロキシ</translation>
 <translation id="2468902267404883140">スマートフォンに接続できません。使用している Android スマートフォンが対応機種で、電源が入っており、手の届く範囲にあることを確認してください。&lt;a&gt;詳細&lt;/a&gt;</translation>
 <translation id="2470702053775288986">サポートされていない拡張機能が無効</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">アンインストール</translation>
 <translation id="2487067538648443797">新しいブックマークを追加</translation>
 <translation id="248861575772995840">スマートフォンが見つかりません。<ph name="DEVICE_TYPE" /> で Bluetooth がオンになっていることを確認してください。&lt;a&gt;詳細&lt;/a&gt;</translation>
-<translation id="2489316678672211764">プラグイン(<ph name="PLUGIN_NAME" />)は応答していません。</translation>
 <translation id="2489428929217601177">過去 1 日</translation>
 <translation id="2489918096470125693">フォルダを追加(&amp;F)...</translation>
 <translation id="249113932447298600">デバイス <ph name="DEVICE_LABEL" /> は現在サポートされていません。</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">「<ph name="NAME" />」データ サービスが有効になり、使用できるようになりました。</translation>
 <translation id="2566124945717127842">お使いの <ph name="IDS_SHORT_PRODUCT_NAME" /> 搭載デバイスを出荷時の状態にリセットするために、Powerwash を実行します。</translation>
 <translation id="2568774940984945469">情報バー コンテナ</translation>
-<translation id="2570000010887652771">データ消費を削減しました。</translation>
 <translation id="257088987046510401">テーマ</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> への読み取り専用アクセスが許可されました。</translation>
 <translation id="2573269395582837871">画像と名前を選択</translation>
 <translation id="2575247648642144396">このアイコンは、表示中のページで拡張機能が使用できる場合に表示されます。この拡張機能を使用するには、アイコンをクリックするか、<ph name="EXTENSION_SHORTCUT" /> を押します。</translation>
 <translation id="2575268751393592580">スマートフォンが見つかりません。<ph name="DEVICE_TYPE" /> が Wi-Fi またはモバイル ネットワークに接続されていることを確認してください。&lt;a&gt;詳細&lt;/a&gt;</translation>
-<translation id="2576842806987913196">既にこの名前の CRX ファイルが存在しています。</translation>
 <translation id="257779572837908839">Chromebox for meetings として設定</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />ボリュームをマウント解除できません<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">認証局(CA)の証明書を削除すると、ブラウザはその CA が発行するどの証明書も信頼しなくなります。</translation>
 <translation id="2653659639078652383">送信</translation>
 <translation id="265390580714150011">フィールド値</translation>
-<translation id="2654286334048437383">ブックマークをエクスポート</translation>
 <translation id="2655386581175833247">ユーザー証明書:</translation>
 <translation id="2660779039299703961">イベント</translation>
 <translation id="2661146741306740526">16×9</translation>
@@ -1137,7 +1117,7 @@
 <translation id="2737363922397526254">折りたたむ...</translation>
 <translation id="2737492745329609575">設定を開始</translation>
 <translation id="2738771556149464852">終了時刻</translation>
-<translation id="2739046699559178272">保存して次へ</translation>
+<translation id="2739046699559178272">保存して続行</translation>
 <translation id="2739191690716947896">デバッグ</translation>
 <translation id="2739240477418971307">ユーザー補助設定の変更</translation>
 <translation id="2740393541869613458">監視対象ユーザーがどのウェブサイトにアクセスしたかを確認する</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">メディア ギャラリーをディレクトリ単位で追加</translation>
 <translation id="2908789530129661844">画面を縮小</translation>
 <translation id="2910318910161511225">ネットワークに接続してから、もう一度お試しください</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> がマイクへのアクセスを求めています。</translation>
 <translation id="2913331724188855103">サイトに Cookie データの保存と読み取りを許可する(推奨)</translation>
 <translation id="2916073183900451334">ウェブページで Tab キーを押すと、リンクやフォーム欄がハイライト表示されます</translation>
 <translation id="2916745397441987255">拡張機能を検索</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">お話しください...</translation>
 <translation id="3141917231319778873">「<ph name="DEVICE_NAME" />」で、指定されたリクエストはサポートされていません。</translation>
 <translation id="3144126448740580210">完了</translation>
-<translation id="3144135466825225871">crx ファイルを置き換えられませんでした。ファイルが使用されていないか確認してください。</translation>
 <translation id="3144647712221361880">別のユーザーとしてリンクを開く</translation>
 <translation id="3149510190863420837">Chrome アプリ</translation>
 <translation id="3150927491400159470">ハード再読み込み</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">すべてのサイトで常に実行</translation>
 <translation id="3312424061798279731">有効な言語</translation>
 <translation id="3312903956926554846">デスクトップにインストール</translation>
-<translation id="3313473140726597081">起動ページが <ph name="URL" /> に変更されました。起動ページを変更する拡張機能を無効にするには、[復元] をクリックしてください。</translation>
 <translation id="3313590242757056087">監視対象ユーザーがどのウェブサイトを閲覧できるかを設定するには、
     管理者が <ph name="MANAGEMENT_URL" /> で制限と設定を指定します。
     管理者がデフォルト設定を変更しない場合は、<ph name="USER_DISPLAY_NAME" /> さんは
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />)<ph name="LONGTZNAME" />(<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">アプリ情報</translation>
 <translation id="3335947283844343239">閉じたタブを開く</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> のバージョンが古いためブロックされました。</translation>
 <translation id="3340978935015468852">設定</translation>
 <translation id="3341703758641437857">ファイルの URL へのアクセスを許可する</translation>
 <translation id="3342361181740736773">「<ph name="TRIGGERING_EXTENSION_NAME" />」によってこの拡張機能が削除されます。</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">ブックマークを追加しました</translation>
 <translation id="3389312115541230716">タスクバーで <ph name="SMALL_PRODUCT_LOGO" /> アイコンを右クリックします</translation>
 <translation id="3391716558283801616">タブ 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> がカメラとマイクへのアクセスを求めています。</translation>
 <translation id="3396331542604645348">選択したプリンタは利用できないか、正しくインストールされていません。プリンタを確認するか、別のプリンタを選択してみてください。</translation>
 <translation id="3399432415385675819">通知が無効になります</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />、<ph name="TIME_LEFT" /></translation>
@@ -1595,7 +1570,7 @@
 <translation id="3423858849633684918"><ph name="PRODUCT_NAME" /> を再起動してください</translation>
 <translation id="3424969259347320884">タブのクラッシュ時に行っていた操作をご説明ください</translation>
 <translation id="3427092606871434483">許可(デフォルト)</translation>
-<translation id="3428419049384081277">ログインしました。</translation>
+<translation id="3428419049384081277">ログインしました</translation>
 <translation id="3429275422858276529">後で見つけやすいようにこのページをブックマークできます</translation>
 <translation id="3429599832623003132">$1 アイテム</translation>
 <translation id="3432227430032737297">表示中のサイトをすべて削除</translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome は自動更新されるため、常に最新版をご利用になれます</translation>
 <translation id="3551320343578183772">タブを閉じる</translation>
 <translation id="3552780134252864554">終了時に削除</translation>
-<translation id="355298399003313926"><ph name="URL" /> がユーザー補助機能のイベントを待機しています。</translation>
 <translation id="3555812735919707620">拡張機能を削除</translation>
 <translation id="3556000484321257665">検索エンジンが <ph name="URL" /> に変更されました。</translation>
-<translation id="3561217442734750519">秘密鍵の入力値は有効なパスでなければなりません。</translation>
 <translation id="3563432852173030730">キオスク アプリケーションをダウンロードできませんでした。</translation>
 <translation id="3564334271939054422">ご利用の Wi-Fi(<ph name="NETWORK_ID" />)では、ログインページへのアクセスが必要になる可能性があります。</translation>
 <translation id="3564708465992574908">ズーム レベル</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">証明書名の制約</translation>
 <translation id="3596235046596950091">クラウド サービスを有効にする</translation>
 <translation id="3599863153486145794">ログインしているすべての端末の履歴を削除します。お使いの Google アカウントの <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> に、他の形式の閲覧履歴が記録されている場合があります。</translation>
-<translation id="3600456501114769456">端末のローカルファイルへのアクセスは管理者によって禁止されています。</translation>
 <translation id="3600792891314830896">音声が再生されるサイトをミュートする</translation>
 <translation id="3603177256297531067">このページを翻訳できませんでした</translation>
 <translation id="3603533104205588786">ページをブックマークするにはスターアイコンをクリックします</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">スクリーンショットが無効</translation>
 <translation id="3625870480639975468">ズームをリセットする</translation>
 <translation id="3626281679859535460">輝度</translation>
-<translation id="3627052133907344175">拡張機能には <ph name="IMPORT_NAME" /> バージョン <ph name="IMPORT_VERSION" /> 以上が必要ですが、インストールされているのはバージョン <ph name="INSTALLED_VERSION" /> のみです。</translation>
 <translation id="3627320433825461852">あと 1 分未満</translation>
 <translation id="3627588569887975815">シークレット ウィンドウで開く(&amp;G)</translation>
 <translation id="3627671146180677314">Netscape 証明書更新時間</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">言語設定</translation>
 <translation id="3668823961463113931">ハンドラ</translation>
 <translation id="3670229581627177274">Bluetooth を ON にする</translation>
-<translation id="3672159315667503033"><ph name="URL" /> では、大容量のデータをローカル コンピュータに永続的に保存することを要求しています。</translation>
 <translation id="3672681487849735243">出荷時のエラーが見つかりました</translation>
 <translation id="367645871420407123">既定のテストイメージの値にルート パスワードを設定する場合は、空欄のままにします</translation>
 <translation id="3678156199662914018">拡張機能: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">現在オフラインです</translation>
 <translation id="3788401245189148511">次の権限へのアクセス要求:</translation>
 <translation id="3789841737615482174">インストール</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> は、デスクトップでのみ使用できます。</translation>
 <translation id="379082410132524484">カードの有効期限が切れています</translation>
 <translation id="3792890930871100565">プリンタを切断</translation>
 <translation id="379422718204375917">Smart Lock を使用してアカウントにログインする</translation>
-<translation id="3794595850995182458">ページを離れる</translation>
 <translation id="3796648294839530037">お気に入りのネットワーク:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> で「<ph name="SEARCH_TERMS" />」を検索(&amp;S)</translation>
 <translation id="3798325802885154040">タップによるクリックの有効と無効を切り替えることができます</translation>
@@ -1900,7 +1868,7 @@
 <translation id="3856800405688283469">タイムゾーンを選択</translation>
 <translation id="3856921555429624101">データ使用量の測定が終了しました</translation>
 <translation id="3857228364945137633">Smart Lock を使用すると、スマートフォンが近くにあるときに、パスワードを入力しなくても <ph name="DEVICE_TYPE" /> のロックを解除できます。</translation>
-<translation id="3857732810083914482">カスタマイズがオフです。この設定は myaccount.google.com で変更できます。</translation>
+<translation id="3857732810083914482">カスタマイズがオフになっています。この設定は myaccount.google.com で変更できます。</translation>
 <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation>
 <translation id="3860381078714302691">ハングアウト Meet へようこそ</translation>
 <translation id="3862134173397075045">Chrome のキャスト エクスペリエンスへようこそ</translation>
@@ -1982,7 +1950,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> を有効にする</translation>
 <translation id="3981760180856053153">入力された保存形式が無効です。</translation>
 <translation id="3983586614702900908">不明なベンダーのデバイス</translation>
-<translation id="3984413272403535372">拡張機能の署名中にエラーが発生しました。</translation>
 <translation id="3987938432087324095">聞き取れませんでした。</translation>
 <translation id="3988996860813292272">タイムゾーンの選択</translation>
 <translation id="3989635538409502728">ログアウト</translation>
@@ -2038,7 +2005,6 @@
 <translation id="4087470595660267445">Google Play のアプリとゲームを Chromebook にインストールします。&lt;a target="_blank" href="<ph name="URL" />"&gt;詳細&lt;/a&gt;</translation>
 <translation id="4088095054444612037">グループとの共有を許可する</translation>
 <translation id="4090103403438682346">確認済みのアクセスを有効にする</translation>
-<translation id="4090404313667273475">このページには、表示するのに <ph name="PLUGIN_NAME" /> が必要なコンテンツがあります。</translation>
 <translation id="4090535558450035482">(この拡張機能は管理対象であり、削除できません。)</translation>
 <translation id="4091434297613116013">枚</translation>
 <translation id="4093955363990068916">ローカル ファイル:</translation>
@@ -2372,7 +2338,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> でパスワードを同期できるようになりました。</translation>
 <translation id="4715553623069266137">非常に短い(0.8 秒)</translation>
 <translation id="4716483597559580346">セキュリティ強化に向けて Powerwash を実行する</translation>
-<translation id="471800408830181311">秘密鍵を出力できませんでした。</translation>
 <translation id="4720113199587244118">デバイスを追加</translation>
 <translation id="4720185134442950733">モバイルデータ ネットワーク</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> が画面を共有しています。</translation>
@@ -2509,7 +2474,6 @@
 <translation id="4917385247580444890">強い</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> が拡張機能「<ph name="EXTENSION_NAME" />」との通信をリクエストしています</translation>
 <translation id="4918086044614829423">承諾</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> がカメラへのアクセスを求めています。</translation>
 <translation id="4920887663447894854">以下のサイトは、このページ内であなたの現在地を追跡できないようブロックされています:</translation>
 <translation id="492299503953721473">Android アプリを削除</translation>
 <translation id="4923279099980110923">はい、協力します</translation>
@@ -2550,7 +2514,6 @@
 <translation id="4980805016576257426">この拡張機能には不正なソフトウェアが含まれています。</translation>
 <translation id="498294082491145744">Cookie、JavaScript、プラグイン、位置情報、マイク、カメラなどの機能へのウェブサイトからのアクセスを制御する設定を変更します。</translation>
 <translation id="4988526792673242964">ページ</translation>
-<translation id="4988792151665380515">公開鍵をエクスポートできませんでした。</translation>
 <translation id="49896407730300355">反時計回りに回転(&amp;O)</translation>
 <translation id="4989966318180235467">バックグラウンド ページの検証(&amp;B)</translation>
 <translation id="4990343175649730969">Chrome クリーンアップ ツールをダウンロード</translation>
@@ -2579,7 +2542,6 @@
 <translation id="5026874946691314267">今後このメッセージを表示しない</translation>
 <translation id="5027550639139316293">メール証明書</translation>
 <translation id="5027562294707732951">拡張機能を追加</translation>
-<translation id="5028012205542821824">インストールが有効になっていません。</translation>
 <translation id="5029568752722684782">コピーを消去</translation>
 <translation id="5030338702439866405">発行元</translation>
 <translation id="5036662165765606524">複数ファイルの自動ダウンロードをどのサイトにも許可しない</translation>
@@ -2615,7 +2577,6 @@
 <translation id="509429900233858213">エラーが発生しました。</translation>
 <translation id="5094721898978802975">連携するネイティブ アプリケーションと通信</translation>
 <translation id="5097002363526479830">ネットワーク「<ph name="NAME" />」に接続できませんでした: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">圧縮するディレクトリの絶対パスが見つかりません。</translation>
 <translation id="5099354524039520280">上</translation>
 <translation id="5100114659116077956">最新の機能を使用するには Chromebox を更新する必要があります。</translation>
 <translation id="5101042277149003567">すべてのブックマークを開く</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">フォルダを開く</translation>
 <translation id="5171045022955879922">検索または URL を入力</translation>
 <translation id="5171343362375269016">スワップ対象メモリ</translation>
-<translation id="5175870427301879686"><ph name="URL" /> では、データをローカル コンピュータに永続的に保存することを要求しています。</translation>
 <translation id="5177479852722101802">カメラとマイクへのアクセスを引き続きブロックする</translation>
 <translation id="5177526793333269655">サムネイル ビュー</translation>
 <translation id="5177549709747445269">モバイルデータ接続を使用しています</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">このデバイスをフォーマット</translation>
 <translation id="5293170712604732402">設定を元の既定値に戻します</translation>
 <translation id="5298219193514155779">テーマの作成者:</translation>
-<translation id="5298363578196989456">拡張機能「<ph name="IMPORT_NAME" />」は、共有モジュールではないため読み込めません。</translation>
 <translation id="5299109548848736476">トラッキング拒否</translation>
 <translation id="5299682071747318445">すべてのデータは同期パスフレーズで暗号化されています</translation>
 <translation id="5300589172476337783">表示</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">「<ph name="CHROME_EXTENSION_NAME" />」がペア設定を要求しています</translation>
 <translation id="5332624210073556029">タイムゾーン:</translation>
 <translation id="5334142896108694079">スクリプト キャッシュ</translation>
-<translation id="533433379391851622">期待されるバージョンは「<ph name="EXPECTED_VERSION" />」ですが、「<ph name="NEW_ID" />」になっています。</translation>
 <translation id="5334844597069022743">ソースを表示する</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" />を <ph name="BEGIN_LINK" />Google ドライブ<ph name="END_LINK" />にバックアップしています</translation>
 <translation id="5337771866151525739">第三者によってインストールされました。</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">音声の再生をサイトに許可する</translation>
 <translation id="5390284375844109566">Indexed Database</translation>
 <translation id="5390743329570580756">送信先</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> の <ph name="PEPPER_PLUGIN_NAME" /> がお使いのパソコンへのアクセスを求めています。</translation>
 <translation id="5397794290049113714">あなた</translation>
 <translation id="5398572795982417028">範囲外のページを参照しています。上限は <ph name="MAXIMUM_PAGE" /> です。</translation>
 <translation id="5398772614898833570">広告がブロックされました</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">すべてのタブを復元</translation>
 <translation id="5486261815000869482">パスワードの確認入力</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> が <ph name="TAB_NAME" /> の画面を共有しています。</translation>
-<translation id="5486326529110362464">秘密鍵の入力値が存在している必要があります。</translation>
 <translation id="5486561344817861625">ブラウザ再起動のシミュレート</translation>
 <translation id="5487521232677179737">データを消去</translation>
 <translation id="5488093641312826914">「<ph name="COPIED_ITEM_NAME" />」がコピーされました</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">アップデートをダウンロードすると、<ph name="UPDATE_SIZE_MB" /> MB のモバイルデータを使用することになります。続行してもよろしいですか?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">その他の検索エンジン</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" />の<ph name="PEPPER_PLUGIN_NAME" />がお使いの端末へのアクセスを求めています。</translation>
 <translation id="5608580678041221894">トリミング範囲を調整または移動するには次のキーをタップします</translation>
 <translation id="5609231933459083978">アプリケーションが無効になっているようです。</translation>
 <translation id="5610038042047936818">カメラモードに切り替え</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">翻訳済み</translation>
 <translation id="5991049340509704927">拡大表示</translation>
 <translation id="5993332328670040093">データ使用量はこれ以上測定されません。</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> を最新の状態に維持できない場合があります。</translation>
 <translation id="600424552813877586">無効なアプリケーションです。</translation>
 <translation id="6005695835120147974">メディア ルーター</translation>
 <translation id="6006484371116297560">クラシック</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">クラウド バックアップ</translation>
 <translation id="6040143037577758943">閉じる</translation>
 <translation id="6040852767465482106">匿名 ID</translation>
+<translation id="6041155700700864984">全画面表示を終了</translation>
 <translation id="604124094241169006">自動設定</translation>
 <translation id="6042169520002885235">プリンタのメーカーと機種を選択</translation>
 <translation id="6042308850641462728">もっと見る</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">通常の再読み込み</translation>
 <translation id="6059652578941944813">証明書の階層</translation>
 <translation id="6059925163896151826">USB デバイス</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> で問題が発生しました。</translation>
 <translation id="6064217302520318294">画面ロック</translation>
 <translation id="6065289257230303064">証明書のサブジェクトのディレクトリ属性</translation>
 <translation id="6068338049763724728">リモート登録を有効にする</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">画面の解像度を調整できます</translation>
 <translation id="6238923052227198598">ロック画面に最新のメモを表示する</translation>
 <translation id="6239558157302047471">フレームを再読み込み(&amp;F)</translation>
-<translation id="624022915548992686">ページを離れる</translation>
 <translation id="6241530762627360640">システムでペア設定されている Bluetooth デバイスの情報へのアクセスと、近くにある Bluetooth デバイスの検出。</translation>
 <translation id="6243774244933267674">サーバーを使用できません</translation>
 <translation id="6246413617632217567">監視対象ユーザーをインポートできませんでした。ハードドライブの空き容量と権限を確認し、もう一度お試しください。</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">ネットワークが不明なためエラーが発生しました</translation>
 <translation id="6313641880021325787">VR を終了</translation>
 <translation id="6314819609899340042">この <ph name="IDS_SHORT_PRODUCT_NAME" /> 搭載デバイスでデバッグ機能が有効になりました。</translation>
-<translation id="6315343732431721770">起動ページに <ph name="URL" /> が追加されました。起動ページを変更する拡張機能を無効にするには、[復元] をクリックしてください。</translation>
 <translation id="6315493146179903667">すべてを手前に移動</translation>
 <translation id="6316806695097060329">この <ph name="SHORT_PRODUCT_NAME" /> 搭載デバイスは、ウェブを最適に利用できるように作られています。</translation>
 <translation id="6317318380444133405">サポートが終了しています。</translation>
 <translation id="6317369057005134371">アプリケーション ウィンドウを待機しています...</translation>
 <translation id="6318407754858604988">ダウンロードを開始しました</translation>
-<translation id="6322279351188361895">秘密鍵を読み取ることができませんでした。</translation>
 <translation id="6325191661371220117">自動起動を無効にする</translation>
 <translation id="6326175484149238433">Chrome から削除</translation>
 <translation id="6326855256003666642">キープアライブ カウント</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">同期するデータ タイプを選択</translation>
 <translation id="6333064448949140209">ファイルはデバッグのため Google に送信されます</translation>
 <translation id="6333834492048057036">検索のためアドレスバーにフォーカスを移動</translation>
-<translation id="6336907568130557310">エクスポートしたファイルが他のユーザーに閲覧可能な場合、パスワードが知られてしまう可能性があります。ファイルは誰とも共有せず、インポートが終わったら削除してください。</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> の新しいプロフィールを作成します</translation>
 <translation id="6340017061976355871">サーバーに接続できませんでした。ネットワーク接続を確認してもう一度お試しください。問題が解決しない場合は、Chromebook を再起動してください。</translation>
 <translation id="6340071272923955280">インターネット印刷プロトコル(IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">サイトでは Cookie データの保存と読み込みが可能です</translation>
 <translation id="6388771388956873507">端末の指紋認証センサーに指を置きます</translation>
 <translation id="6390799748543157332">このウィンドウで開いたページはブラウザの履歴に記録されません。また、開いているゲスト ウィンドウをすべて閉じると、Cookie などのデータはパソコンから消去されます。ただし、ダウンロードしたファイルは保持されます。</translation>
-<translation id="6391538222494443604">入力ディレクトリが存在している必要があります。</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />システム情報<ph name="END_LINK1" />と<ph name="BEGIN_LINK2" />指標データ<ph name="END_LINK2" />を送信する</translation>
 <translation id="6397363302884558537">読み上げを停止</translation>
 <translation id="6397592254427394018">すべてのブックマークをシークレット ウィンドウで開く(&amp;I)</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Javascript のブロックを管理...</translation>
 <translation id="6459488832681039634">選択部分を検索に使用</translation>
 <translation id="6460601847208524483">次を検索</translation>
-<translation id="6462080265650314920">アプリは、コンテンツタイプ「<ph name="CONTENT_TYPE" />」で提供する必要があります。</translation>
 <translation id="6462082050341971451">まもなくログアウトされます</translation>
 <translation id="6463795194797719782">編集(&amp;E)</translation>
 <translation id="6466988389784393586">すべてのブックマークを開く(&amp;O)</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" />(USB)</translation>
 <translation id="667517062706956822">Google でこのページを <ph name="SOURCE_LANGUAGE" /> から <ph name="TARGET_LANGUAGE" /> に翻訳しますか?</translation>
 <translation id="6675665718701918026">ポインティング デバイスが接続されました</translation>
-<translation id="6677037229676347494">期待される ID は「<ph name="EXPECTED_ID" />」ですが、「<ph name="NEW_ID" />」になっています。</translation>
 <translation id="6678717876183468697">クエリ URL</translation>
 <translation id="6680028776254050810">ユーザーを切り替え</translation>
 <translation id="6680442031740878064">空き容量: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Google に送信する情報は、いつでも [<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />] ページでカスタマイズできます。</translation>
 <translation id="6904344821472985372">ファイル アクセス権を取り消す</translation>
 <translation id="6904655473976120856">終了するには [アプリ] ボタンを押します</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> が画面の共有を求めています。</translation>
-<translation id="6909461304779452601">アプリ、拡張機能、ユーザー スクリプトはこのウェブサイトから追加できません。</translation>
 <translation id="6910211073230771657">削除済み</translation>
 <translation id="691024665142758461">複数ファイルのダウンロード</translation>
 <translation id="6911324888870229398">ネットワーク接続が切断されました。接続を確認するか、別の Wi-Fi ネットワークをお試しください。</translation>
@@ -3897,7 +3842,7 @@
 <translation id="7106346894903675391">追加容量を購入...</translation>
 <translation id="7108338896283013870">非表示</translation>
 <translation id="7108668606237948702">Enter</translation>
-<translation id="7112978678959880812">カスタマイズがオンです。この設定は myaccount.google.com で変更できます。</translation>
+<translation id="7112978678959880812">カスタマイズがオンになっています。この設定は myaccount.google.com で変更できます。</translation>
 <translation id="7113502843173351041">メールアドレスの読み取り</translation>
 <translation id="7114054701490058191">パスワードが一致しません</translation>
 <translation id="7117228822971127758">しばらくしてからもう一度お試しください</translation>
@@ -4108,7 +4053,6 @@
 <translation id="747114903913869239">エラー: 拡張機能をデコードできません</translation>
 <translation id="7473891865547856676">スキップ</translation>
 <translation id="747459581954555080">すべて復元</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> でエラーが発生しました。</translation>
 <translation id="7475671414023905704">Netscape パスワード紛失 URL</translation>
 <translation id="7476454130948140105">更新するには電池残量が少なすぎます(<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">パスフレーズをお忘れの場合は、<ph name="BEGIN_LINK" />Google ダッシュボード<ph name="END_LINK" />から同期の停止とリセットを行ってください。</translation>
@@ -4145,7 +4089,6 @@
 <translation id="7507930499305566459">ステータス レスポンダ証明書</translation>
 <translation id="7508545000531937079">スライドショー</translation>
 <translation id="7513029293694390567">保存されている認証情報を使用してウェブサイトに自動的にログインします。この機能が無効になっている場合は、ウェブサイトにログインするときに毎回確認を求められます。</translation>
-<translation id="7515670329462166359"><ph name="URL" /> では、保護されたコンテンツを再生するために、端末固有の識別子へのアクセスが求められています。</translation>
 <translation id="7517569744831774757">設定を元の既定値に戻します。</translation>
 <translation id="7517786267097410259">パスワードを作成 -</translation>
 <translation id="7518150891539970662">WebRTC ログ(<ph name="WEBRTC_LOG_COUNT" /> 件)</translation>
@@ -4175,7 +4118,6 @@
     もう一度監視対象ユーザーを作成してください。</translation>
 <translation id="756445078718366910">ブラウザ ウィンドウを開く</translation>
 <translation id="7564847347806291057">プロセスを終了</translation>
-<translation id="7565291891798266313">検索エンジンが <ph name="URL" /> に変更されました。検索エンジンを変更する拡張機能を無効にするには、[復元] をクリックしてください。</translation>
 <translation id="7566118625369982896">Play アプリのリンクを管理する</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome データの消去完了</translation>
@@ -4184,7 +4126,6 @@
 <translation id="7573172247376861652">バッテリー充電</translation>
 <translation id="7576032389798113292">6×4</translation>
 <translation id="7576690715254076113">部単位で印刷</translation>
-<translation id="7577815336900970562">Wi‑Fi またはモバイル ネットワークを使って現在地を特定します</translation>
 <translation id="7579149537961810247">複数のサイトをミュート</translation>
 <translation id="7580671184200851182">すべてのスピーカーで同じオーディオを再生(モノラル オーディオ)</translation>
 <translation id="7581462281756524039">クリーンアップ ツール</translation>
@@ -4291,6 +4232,7 @@
 <translation id="7773726648746946405">セッション ストレージ</translation>
 <translation id="7781335840981796660">すべてのユーザー アカウントとローカル データは削除されます。</translation>
 <translation id="7782102568078991263">候補は以上です</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> を読み込めませんでした</translation>
 <translation id="7784067724422331729">お使いのパソコンのセキュリティ設定により、このファイルはブロックされました。</translation>
 <translation id="7786207843293321886">ゲスト セッションを終了</translation>
 <translation id="7786889348652477777">アプリを再読み込み(&amp;R)</translation>
@@ -4368,7 +4310,7 @@
 <translation id="7881969471599061635">字幕を無効にする</translation>
 <translation id="7882358943899516840">プロバイダの種類</translation>
 <translation id="7885253890047913815">最近使用した送信先</translation>
-<translation id="7886917304091689118">Chrome で実行されています</translation>
+<translation id="7886917304091689118">Chrome で実行中です</translation>
 <translation id="7887334752153342268">タブを複製</translation>
 <translation id="7887864092952184874">Bluetooth マウスがペア設定されました</translation>
 <translation id="7889966925761734854">シーク再生</translation>
@@ -4453,7 +4395,6 @@
 <translation id="8001504501378762252">サイトでパスワードを盗まれた可能性があります</translation>
 <translation id="8004582292198964060">ブラウザ</translation>
 <translation id="8008356846765065031">インターネットが切断されました。インターネット接続を確認してください。</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> を読み込めませんでした。</translation>
 <translation id="8008818777654712271">危険なアプリやサイトの検出に役立てるために一部のシステム情報やページのコンテンツを Google に自動送信する</translation>
 <translation id="8012382203418782830">このページは翻訳されました。</translation>
 <translation id="8014154204619229810">現在アップデータを実行中です。しばらくしてから更新して、もう一度ご確認ください。</translation>
@@ -4570,7 +4511,6 @@
 <translation id="8191230140820435481">アプリ、拡張機能、テーマを管理する</translation>
 <translation id="8191453843330043793">V8 プロキシ リゾルバ</translation>
 <translation id="8195027750202970175">ディスク上のサイズ</translation>
-<translation id="8195739004487400241">ホームページが <ph name="URL" /> に変更されました。ホームページを変更する拡張機能を無効にするには、[復元] をクリックしてください。</translation>
 <translation id="8199300056570174101">ネットワーク(サービス)とデバイスのプロパティ</translation>
 <translation id="8200772114523450471">再開</translation>
 <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> のプロフィールを更新するにはパスワードを再入力してください。</translation>
@@ -4614,7 +4554,6 @@
 <translation id="8261378640211443080">この拡張機能は <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />で提供されていません。知らないうちに追加された可能性があります。</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> のアカウントを追加</translation>
 <translation id="8261506727792406068">削除</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> はこのビルドで実装されていません。</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> でマウス カーソルが無効になりました。</translation>
 <translation id="8264718194193514834">「<ph name="EXTENSION_NAME" />」によって全画面表示になりました。</translation>
 <translation id="8270242299912238708">PDF ドキュメント</translation>
@@ -4715,6 +4654,7 @@
 <translation id="8454288007744638700">または、新しいネットワークを選択:</translation>
 <translation id="845627346958584683">有効期限</translation>
 <translation id="8456681095658380701">名前が無効です</translation>
+<translation id="8457451314607652708">ブックマークをインポート</translation>
 <translation id="8460336040822756677">Smart Lock for <ph name="DEVICE_TYPE" /> を無効にすると、スマートフォンを使って Chrome 搭載デバイスのロックを解除することはできなくなり、パスワードの入力が必要になります。</translation>
 <translation id="8461329675984532579">ホーム プロバイダ名</translation>
 <translation id="84613761564611563">ネットワーク設定画面を呼び出しています。しばらくお待ちください...</translation>
@@ -4746,7 +4686,6 @@
 <translation id="850875081535031620">有害なソフトウェアは見つかりませんでした</translation>
 <translation id="8512476990829870887">プロセスを終了</translation>
 <translation id="851263357009351303"><ph name="HOST" /> の画像を常に表示する</translation>
-<translation id="8513191386157529469">「<ph name="CLIENT_NAME" />」がこのブラウザをデバッグしています。</translation>
 <translation id="8521475323816527629">アプリにすばやく移動</translation>
 <translation id="8523493869875972733">変更を保持</translation>
 <translation id="8523849605371521713">ポリシーにより追加</translation>
@@ -4802,7 +4741,6 @@
 <translation id="8620765578342452535">ネットワーク接続の設定</translation>
 <translation id="8620790565535071193">スキャンできませんでした</translation>
 <translation id="8622877356447980900">このページを翻訳しますか?</translation>
-<translation id="8623004009673949077">「kiosk_only」のマニフェスト属性が指定されているアプリは、ChromeOS キオスク モードでインストールする必要があります。</translation>
 <translation id="8624205858755890468">アシスタントによる関連情報、アプリ、操作の案内を有効にします。</translation>
 <translation id="862542460444371744">拡張機能(&amp;E)</translation>
 <translation id="8627151598708688654">ソースを選択</translation>
@@ -4951,7 +4889,6 @@
 <translation id="882204272221080310">セキュリティ強化のためにファームウェアをアップデートする。</translation>
 <translation id="8823514049557262177">リンクテキストをコピー(&amp;X)</translation>
 <translation id="8824701697284169214">ページを追加(&amp;G)...</translation>
-<translation id="8827850355924932817">Wi‑Fi ネットワークを使って現在地を特定します</translation>
 <translation id="8828933418460119530">DNS 名</translation>
 <translation id="8830796635868321089">現在のプロキシ設定を使用してアップデートをチェックできませんでした。<ph name="PROXY_SETTINGS_LINK_START" />プロキシ設定<ph name="PROXY_SETTINGS_LINK_END" />を調整してください。</translation>
 <translation id="8834039744648160717">ネットワーク設定は <ph name="USER_EMAIL" /> によって管理されています。</translation>
@@ -4983,9 +4920,7 @@
 <translation id="8879284080359814990">タブで表示(&amp;S)</translation>
 <translation id="8884961208881553398">新しいサービスを追加</translation>
 <translation id="8885197664446363138">Smart Lock は使用できません</translation>
-<translation id="8885905466771744233">指定した拡張機能の秘密鍵は既に存在します。その鍵を再利用するか、先に削除してください。</translation>
 <translation id="8888432776533519951">色:</translation>
-<translation id="8892992092192084762">テーマ「<ph name="THEME_NAME" />」をインストールしました。</translation>
 <translation id="8893928184421379330">デバイス <ph name="DEVICE_LABEL" /> を認識できませんでした。</translation>
 <translation id="8895454554629927345">ブックマーク リスト</translation>
 <translation id="88986195241502842">ページ内を下に移動</translation>
@@ -5000,7 +4935,6 @@
 <translation id="8908902564709148335">警告: このパソコンで --scripts-require-action フラグを有効にしました。この拡張機能は限られた操作のみを行うことができます。ただし他のデバイスではこのフラグがサポートされていないか有効になっていない可能性があります。そのようなデバイスでは、この拡張機能は次の操作も行うことができます:</translation>
 <translation id="8910146161325739742">画面を共有する</translation>
 <translation id="8910222113987937043">ブックマーク、履歴、パスワードなどの設定に行った変更は Google アカウントと同期されなくなります。ただし、既存のデータは Google アカウントに保存され、<ph name="BEGIN_LINK" />Google ダッシュボード<ph name="END_LINK" />で管理できます。</translation>
-<translation id="8911079125461595075">「<ph name="EXTENSION_NAME" />」は不正な拡張機能として報告されているためインストールできませんでした。</translation>
 <translation id="8912793549644936705">拡大</translation>
 <translation id="8915370057835397490">候補を読み込んでいます</translation>
 <translation id="8916476537757519021">シークレット サブフレーム: <ph name="SUBFRAME_SITE" /></translation>
@@ -5106,7 +5040,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB マウスが接続されました</translation>
 <translation id="9076523132036239772">メール アドレスまたはパスワードを確認できませんでした。まずネットワークに接続してください。</translation>
-<translation id="907841381057066561">パッケージ化の処理中に一時的な zip ファイルを作成できませんでした。</translation>
 <translation id="9084064520949870008">ウィンドウとして開く</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> は会社のポリシーによってブロックされています</translation>
 <translation id="9088917181875854783">「<ph name="DEVICE_NAME" />」でこのパスキーが表示されていることを確認してください:</translation>
@@ -5197,11 +5130,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">パスフレーズを入力</translation>
 <translation id="939736085109172342">新しいフォルダ</translation>
-<translation id="941543339607623937">秘密鍵が無効です。</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> が Chrome タブと音声を共有しています。</translation>
 <translation id="942954117721265519">このディレクトリには画像がありません。</translation>
 <translation id="945522503751344254">フィードバックを送信</translation>
-<translation id="951981865514037445"><ph name="URL" /> ではデバイスの現在地情報が必要となります。</translation>
 <translation id="952992212772159698">無効</translation>
 <translation id="9580706199804957">Google サービスに接続できませんでした</translation>
 <translation id="958515377357646513">タップして次に進みます。</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index b67ddf9..0c797a5 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">ಸಂಕೇತಲಿಪಿ ಮಾತ್ರ</translation>
 <translation id="1039337018183941703">ಅಮಾನ್ಯ ಅಥವಾ ದೋಷಯುಕ್ತ ಫೈಲ್</translation>
 <translation id="1042174272890264476">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅಂತರ್‌ನಿರ್ಮಿತ <ph name="SHORT_PRODUCT_NAME" /> ನ RLZ ಲೈಬ್ರರಿಯೊಂದಿಗೆ ಸಹ ಬರುತ್ತದೆ. ಹುಡುಕಾಟಗಳನ್ನು ಅಳತೆ ಮಾಡಲು ಮತ್ತು ಒಂದು ನಿರ್ದಿಷ್ಟ ಪ್ರಚಾರದ ಶಿಬಿರದಿಂದ <ph name="SHORT_PRODUCT_NAME" /> ಬಳಕೆಯಿಂದ ಗಳಿಸಿದ ಅನನ್ಯವಲ್ಲದ, ವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸದಂತಹ ಟ್ಯಾಗ್ ಅನ್ನು RLZ ಆಯೋಜಿಸುತ್ತದೆ. ಈ ಲೇಬಲ್‌ಗಳು ಕೆಲವು ಬಾರಿ <ph name="PRODUCT_NAME" /> ನಲ್ಲಿ Google ಹುಡುಕಾಟ ಪ್ರಶ್ನೆಗಳಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ.</translation>
-<translation id="1042574203789536285">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ದೊಡ್ಡ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿಸಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="1046059554679513793">ಓಹ್, ಈ ಹೆಸರು ಈಗಾಗಲೇ ಬಳಕೆಯಲ್ಲಿದೆ!</translation>
 <translation id="1047431265488717055">ಲಿಂಕ್ ಪ&amp;ಠ್ಯ ನಕಲಿಸಿ</translation>
 <translation id="1047726139967079566">ಈ ಪುಟವನ್ನು ಬುಕ್‌ಮಾರ್ಕ್ ಮಾಡಿ...</translation>
@@ -116,7 +115,6 @@
 <translation id="1177113976278858832">ಡಿಫಾಲ್ಟ್ ಹುಡುಕಾಟ ಎಂಜಿನ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?</translation>
 <translation id="1177863135347784049">ಕಸ್ಟಮ್</translation>
 <translation id="1178581264944972037">ವಿರಾಮ</translation>
-<translation id="1179803038870941185">ನಿಮ್ಮ MIDI ಸಾಧನಗಳ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ ಪಡೆಯಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="1181037720776840403">ತೆಗೆದುಹಾಕು</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> ಅನ್ನು ಸ್ಥಳೀಯ ಸಂಗ್ರಹದಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="1185924365081634987">ಈ ನೆಟ್‌ವರ್ಕ್‌ ದೋಷವನ್ನು ಬಗೆಹರಿಸಲು <ph name="GUEST_SIGNIN_LINK_START" />ಅತಿಥಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು<ph name="GUEST_SIGNIN_LINK_END" /> ಕೂಡಾ ನೀವು ಪ್ರಯತ್ನಿಸಬಹುದು.</translation>
@@ -128,7 +126,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಫೈಲ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ}one{ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ # ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ}other{ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ # ಫೈಲ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಿ}}</translation>
 <translation id="1195076408729068893">Smart Lock ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು, ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ. ಮುಂದಿನ ಬಾರಿ, ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್‌ ಮಾಡಲು ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ನೀವು ಬಳಸಬಹುದು.</translation>
 <translation id="1195447618553298278">ಅಪರಿಚಿತ ದೋಷ.</translation>
-<translation id="1196338895211115272">ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ರಫ್ತು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="119738088725604856">ಸ್ಕ್ರೀನ್‌ಶಾಟ್ ವಿಂಡೋ</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> ಪ್ರಿಂಟರ್‌ಗಾಗಿ ಮುದ್ರಣ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಪುನಃಪಡೆಯುವಾಗ ದೋಷ ಸಂಭವಿಸಿದೆ. ಈ ಪ್ರಿಂಟರ್ ಅನ್ನು <ph name="CLOUD_PRINT_NAME" /> ನೊಂದಿಗೆ ನೋಂದಾಯಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="1198271701881992799">ಪ್ರಾರಂಭಿಸೋಣವೇ</translation>
@@ -156,7 +153,6 @@
 <translation id="1223853788495130632">ಈ ಸೆಟ್ಟಿಂಗ್‌ಗೆ ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯವನ್ನು ಶಿಫಾರಸು ಮಾಡುತ್ತಾರೆ.</translation>
 <translation id="1225177025209879837">ವಿನಂತಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="1225211345201532184">ಶೆಲ್ಫ್ ಐಟಂ 5</translation>
-<translation id="1225404570112441414">ಈ ಸೈಟ್‌ ಅನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಬಳಸಲು ನಿಮ್ಮ ಶೆಲ್ಫ್‌ಗೆ ಅದನ್ನು ಸೇರಿಸಿ.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" ಗೆ ಸಂಪರ್ಕಪಡಿಸುವಾಗ ದೃಢೀಕರಣವು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="1230807973377071856">ಸಿಸ್ಟಮ್ ಮೆನು</translation>
 <translation id="1232569758102978740">ಶೀರ್ಷಿಕೆರಹಿತ</translation>
@@ -201,7 +197,6 @@
 <translation id="1303101771013849280">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳ HTML ಫೈಲ್‌</translation>
 <translation id="1303671224831497365">ಯಾವುದೇ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
 <translation id="1306606229401759371">ಸೆಟ್ಟಿಂಗ್‌‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> ನಲ್ಲಿ ಯಾವುದೇ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಪ್ರವೇಶ ಪಡೆಯಿರಿ</translation>
 <translation id="1307559529304613120">ಓಹ್! ಈ ಸಾಧನಕ್ಕಾಗಿ ಒಂದು ಸುದೀರ್ಘ API ಪ್ರವೇಶ ಟೋಕನ್ ಪಡೆದುಕೊಳ್ಳಲು ಸಿಸ್ಟಂ ವಿಫಲಗೊಂಡಿದೆ.</translation>
 <translation id="1313405956111467313">ಸ್ವಯಂಚಾಲಿತ ಪ್ರಾಕ್ಸಿ ಕಾನ್ಫಿಗರೇಶನ್</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -253,9 +248,7 @@
 <translation id="1383876407941801731">ಹುಡುಕಾಟ</translation>
 <translation id="1386387014181100145">ಹೇಗಿರುವಿರಿ.</translation>
 <translation id="138784436342154190">ಡಿಫಾಲ್ಟ್‌ ಆರಂಭಿಕ ಪುಟವನ್ನು ಮರುಸ್ಥಾಪಿಸುವುದೇ?</translation>
-<translation id="1389297115360905376"><ph name="CHROME_WEB_STORE" /> ಮೂಲಕ ಮಾತ್ರ ಸೇರಿಸಬಹುದಾಗಿದೆ.</translation>
 <translation id="1390548061267426325">ದಿನನಿತ್ಯದ ಟ್ಯಾಬ್ ಅಂತೆ ತೆರೆಯಿರಿ</translation>
-<translation id="1391807639023934267">ವೇಗವಾದ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="1393283411312835250">ಸೂರ್ಯ ಮತ್ತು ಮೇಘಗಳು</translation>
 <translation id="1395262318152388157">ಸೀಕ್ ಸ್ಲೈಡರ್</translation>
 <translation id="1395730723686586365">ನವೀಕರಣವು ಪ್ರಾರಂಭಗೊಂಡಿದೆ</translation>
@@ -276,7 +269,6 @@
 <translation id="1414648216875402825">ನೀವು ಪ್ರಗತಿ ಹಂತದಲ್ಲಿರುವ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒಳಗೊಂಡಿರುವ <ph name="PRODUCT_NAME" /> ದ ಒಂದು ಅಸ್ಥಿರ ಆವೃತ್ತಿಯನ್ನು ನವೀಕರಿಸುತ್ತಿರುವಿರಿ. ವಿಫಲತೆಗಳು ಮತ್ತು ಅನರೀಕ್ಷಿತ ದೋಷಗಳು ಸಂಭವಿಸುತ್ತವೆ. ದಯವಿಟ್ಟು ಎಚ್ಚರಿಕೆಯಿಂದ ಮುಂದುವರಿಯಿರಿ.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ವಿಸ್ತರಣೆ ID "<ph name="EXTENSION_ID" />") ಈ ರೀತಿಯ ಸೆಶನ್‌ನಲ್ಲಿ ಅನುಮತಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">ಅಯ್ಯೋ! ಯಾದೃಚ್ಛಿಕ RSA ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="1420834118113404499">ಮಾಧ್ಯಮ ಪರವಾನಗಿಗಳು</translation>
 <translation id="1420920093772172268">ಜೋಡಿಸುವುದನ್ನು ಅನುಮತಿಸಲು <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">ಹೌದು</translation>
@@ -306,8 +298,6 @@
 <translation id="1465176863081977902">ಆಡಿಯೋ ವಿಳಾಸವನ್ನು ನ&amp;ಕಲಿಸಿ</translation>
 <translation id="1465827627707997754">ಪಿಜ್ಜಾ ಸ್ಲೈಸ್‌</translation>
 <translation id="1467432559032391204">ಎಡಕ್ಕೆ</translation>
-<translation id="1467999917853307373">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿಸಲು <ph name="URL" /> ಬಯಸಿದೆ.</translation>
-<translation id="1470719357688513792">ಪುಟವನ್ನು ಮರುಲೋಡ್ ಮಾಡಿದ ನಂತರ ಹೊಸ ಕುಕಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಕಾರ್ಯಗತವಾಗುತ್ತವೆ.</translation>
 <translation id="1470811252759861213">ನಿಮ್ಮ ಎಲ್ಲಾ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ಪಡೆಯಲು, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿಲ್ಲ. ನಿಮ್ಮ Google ಡ್ರೈವ್‌ನಲ್ಲಿ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ.</translation>
 <translation id="1475502736924165259">ಇತರ ಯಾವುದೇ ವರ್ಗಗಳಿಗೆ ಹೊಂದದಿರುವಂತಹ ಫೈಲ್‌ನಲ್ಲಿ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನೀವು ಹೊಂದಿರುವಿರಿ</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">ದೊಡ್ಡ ಮೌಸ್ ಕರ್ಸರ್</translation>
 <translation id="1543284117603151572">Edge ನಿಂದ ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಿದೆ</translation>
 <translation id="1545177026077493356">ಸ್ವಯಂಚಾಲಿತ ಕಿಯೋಸ್ಕ್ ಮೋಡ್</translation>
+<translation id="1545775234664667895">ಸ್ಥಾಪಿಸಲಾಗಿರುವ ಥೀಮ್ "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">ಕ್ವೈರಿ ಸ್ಥಳದಲ್ಲಿ %s ನೊಂದಿಗೆ URL</translation>
 <translation id="1546280085599573572">ನೀವು ಮುಖಪುಟದ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
 <translation id="1547572086206517271">ರಿಫ್ರೆಶ್ ಅಗತ್ಯವಿದೆ</translation>
@@ -440,11 +431,9 @@
     ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರು ಭೇಟಿ ನೀಡಿದ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು <ph name="BEGIN_BOLD" />ವಿಮರ್ಶೆ<ph name="END_BOLD" /> ಮಾಡಬಹುದು ಮತ್ತು
     ಇತರೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು <ph name="BEGIN_BOLD" />ನಿರ್ವಹಿಸಬಹುದು<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">ಸೈನ್-ಇನ್ ವಿವರಗಳು ಹಳೆಯದಾಗಿವೆ</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> ಸಾಲುಗಳನ್ನು ತೋರಿಸಲಾಗಿಲ್ಲ&gt;</translation>
 <translation id="1650371550981945235">ಇನ್‌ಪುಟ್‌ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು</translation>
 <translation id="1650709179466243265">www. ಮತ್ತು .com ಮತ್ತು ತೆರೆದ ವಿಳಾಸವನ್ನು ಸೇರಿಸು</translation>
 <translation id="1651008383952180276">ನೀವು ಒಂದೇ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಎರಡು ಬಾರಿ ನಮೂದಿಸಬೇಕು</translation>
-<translation id="1652972346408808053">ಪಾಸ್‌ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ. <ph name="SAVED_PASSWORDS_LINK" /> ನಲ್ಲಿ ಯಾವುದೇ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಪ್ರವೇಶ ಪಡೆಯಿರಿ</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{ಪ್ರಿಂಟರ್ ಅನ್ನು Google ಮೇಘ ಪ್ರಿಂಟ್‌ಗೆ ಸೇರಿಸಿ, ಈ ಮೂಲಕ ನೀವು ಎಲ್ಲಿಂದಲಾದರೂ ಪ್ರಿಂಟ್ ಮಾಡಬಹುದು.}one{# ಪ್ರಿಂಟರ್‌ಗಳನ್ನು Google ಮೇಘ ಪ್ರಿಂಟ್‌ಗೆ ಸೇರಿಸಿ, ಈ ಮೂಲಕ ನೀವು ಎಲ್ಲಿಂದಲಾದರೂ ಪ್ರಿಂಟ್ ಮಾಡಬಹುದು.}other{# ಪ್ರಿಂಟರ್‌ಗಳನ್ನು Google ಮೇಘ ಪ್ರಿಂಟ್‌ಗೆ ಸೇರಿಸಿ, ಈ ಮೂಲಕ ನೀವು ಎಲ್ಲಿಂದಲಾದರೂ ಪ್ರಿಂಟ್ ಮಾಡಬಹುದು.}}</translation>
 <translation id="1657406563541664238">Google ಗೆ ಬಳಕೆಯ ಅಂಕಿಅಂಶಗಳು ಮತ್ತು ಕ್ರ್ಯಾಶ್ ವರದಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ <ph name="PRODUCT_NAME" /> ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="1658424621194652532">ಈ ಪುಟವು ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶಿಸುತ್ತಿದೆ.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">ಕುಕೀಸ್ ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸು</translation>
 <translation id="204622017488417136">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹಿಂದೆ ಸ್ಥಾಪಿಸಲಾದ Chrome ನ ಆವೃತ್ತಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಎಲ್ಲ ಬಳಕೆದಾರರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="2048182445208425546">ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಟ್ರ್ಯಾಫಿಕ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
-<translation id="2049137146490122801">ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳ ಪ್ರವೇಶವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="204914487372604757">ಒಳದಾರಿಯನ್ನು ರಚಿಸು</translation>
 <translation id="2050339315714019657">ಪೋಟ್ರೇಟ್</translation>
 <translation id="2053312383184521053">ತಟಸ್ಥ ಸ್ಥಿತಿಯ ಡೇಟಾ</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">ಇನ್ನೂ ಲೋಡ್ ಮಾಡಿಲ್ಲ</translation>
 <translation id="2107494551712864447">ಬೆರಳಚ್ಚು ಸೇರಿಸಿ</translation>
-<translation id="2111843886872897694">ಪರಿಣಾಮ ಬೀರುವ ಹೋಸ್ಟ್‌ನಿಂದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒದಗಿಸಬೇಕು.</translation>
 <translation id="2112877397266219826">ನನ್ನನ್ನು ಹೊಂದಿಸಲು ನಿಮ್ಮ ಟಚ್ ನಿಯಂತ್ರಕವನ್ನು ಆನ್ ಮಾಡಿ</translation>
 <translation id="21133533946938348">ಪಿನ್ ಟ್ಯಾಬ್</translation>
 <translation id="2113479184312716848">&amp;ಫೈಲ್ ತೆರೆಯಿರಿ...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನಮಗೆ ತಿಳಿಸಿ</translation>
 <translation id="2229161054156947610">1 ಗಂಟೆಗಿಂತಲೂ ಹೆಚ್ಚು ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="222931766245975952">ಫೈಲ್ ಅನ್ನು ಮೊಟಕುಗೊಳಿಸಲಾಗಿದೆ</translation>
-<translation id="222949136907494149">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಸ್ಥಾನವನ್ನು ಬಳಸಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" ಫೋಲ್ಡರ್ ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">ಇಂದಿನ ಡೂಡಲ್ ಅನ್ನು ವೀಕ್ಷಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">ಯಾವಾಗಲೂ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="2367972762794486313">ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೋರಿಸು</translation>
 <translation id="2371076942591664043">&amp;ಮುಗಿಸಿದಾಗ ತೆರೆಯಿರಿ</translation>
-<translation id="237336063998926520">ಸ್ಥಳವನ್ನು ನಿರ್ಧರಿಸಲು ನಿಮ್ಮ ಐಪಿ ವಿಳಾಸವನ್ನು ಬಳಸಿ</translation>
 <translation id="2377319039870049694">ಪಟ್ಟಿ ವೀಕ್ಷಣೆಗೆ ಬದಲಾಯಿಸಿ</translation>
 <translation id="2377667304966270281">ಹಾರ್ಡ್ ಫಾಲ್ಟ್ಸ್</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ಫೈಲ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗಿದೆ</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ಅಪ್ಲಿಕೇಶನ್ <ph name="VOLUME_NAME" /> ನಿಂದ ಫೈಲ್‌ಗಳನ್ನು ನಕಲಿಸಲು ಬಯಸುತ್ತಿದೆ.</translation>
 <translation id="2462724976360937186">ಪ್ರಮಾಣದಪತ್ರದ ಪ್ರಾಧಿಕಾರ ಕೀ ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ಸೇರಿಸಲಾಗಿದೆ</translation>
-<translation id="246335896104539386">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಿ</translation>
 <translation id="2464089476039395325">HTTP ಪ್ರಾಕ್ಸಿ</translation>
 <translation id="2468902267404883140">ನಿಮ್ಮ ಫೋನ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನೀವು ಆನ್ ಮಾಡಿರುವಂತಹ ಮತ್ತು ಸುಲಭವಾಗಿ ಲಭ್ಯ ಇರುವ ಹೊಂದಾಣಿಕೆಯ Android ಫೋನ್ ಬಳಸಲು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. &lt;a&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
 <translation id="2470702053775288986">ಬೆಂಬಲವಿರದ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation>
 <translation id="2487067538648443797">ಹೊಸ ಬುಕ್‌ಮಾರ್ಕ್‌ ಸೇರಿಸಿ</translation>
 <translation id="248861575772995840">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನಗಳಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಆನ್‌ ಆಗಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. &lt;a&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
-<translation id="2489316678672211764">ಪ್ಲಗ್ಇನ್ (<ph name="PLUGIN_NAME" />) ಸ್ಪಂದಿಸುತ್ತಿಲ್ಲ.</translation>
 <translation id="2489428929217601177">ಹಿಂದಿನ ದಿನದಿಂದ</translation>
 <translation id="2489918096470125693">&amp;ಫೋಲ್ಡರ್ ಅನ್ನು ಸೇರಿಸಿ...</translation>
 <translation id="249113932447298600">ಕ್ಷಮಿಸಿ, ಈ ಸಮಯದಲ್ಲಿ <ph name="DEVICE_LABEL" /> ಸಾಧನಕ್ಕೆ ಬೆಂಬಲ ದೊರೆಯುತ್ತಿಲ್ಲ.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">ಅಭಿನಂದನೆಗಳು! ನಿಮ್ಮ '<ph name="NAME" />' ಡೇಟಾ ಸೇವೆಯನ್ನು ಕ್ರಿಯಾತ್ಮಕಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಮುಂದುವರೆಯಲು ಸಿದ್ಧವಾಗಿದೆ.</translation>
 <translation id="2566124945717127842">ಹೊಸದರಂತೆ ಮಾಡುವುದಕ್ಕಾಗಿ ನಿಮ್ಮ <ph name="IDS_SHORT_PRODUCT_NAME" /> ಸಾಧನವನ್ನು ಮರುಹೊಂದಿಸಲು ಪವರ್‌ವಾಶ್ ಮಾಡಿ.</translation>
 <translation id="2568774940984945469">ಮಾಹಿತಿಪಟ್ಟಿಯ ಕಂಟೇನರ್</translation>
-<translation id="2570000010887652771">ಉಳಿಸಲಾದ ಡೇಟಾ.</translation>
 <translation id="257088987046510401">ಥೀಮ್‌ಗಳು</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> ಗೆ ಓದಲು-ಮಾತ್ರ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ.</translation>
 <translation id="2573269395582837871">ಚಿತ್ರ ಮತ್ತು ಹೆಸರನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="2575247648642144396">ಪ್ರಸ್ತುತ ಪುಟದಲ್ಲಿ ವಿಸ್ತರಣೆಯು ಕಾರ್ಯನಿರ್ವಹಿಸಿದಾಗ ಈ ಐಕಾನ್ ಗೋಚರಿಸುತ್ತದೆ. ಐಕಾನ್‌ನ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡುವುದರ ಮೂಲಕ ಅಥವಾ <ph name="EXTENSION_SHORTCUT" /> ಒತ್ತುವುದರ ಮೂಲಕ ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಿ.</translation>
 <translation id="2575268751393592580">ನಿಮ್ಮ ಫೋನ್ ಪತ್ತೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನವು ವೈ-ಫೈ ಅಥವಾ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. &lt;a&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
-<translation id="2576842806987913196">ಪ್ರಸ್ತುತ ಈ ಹೆಸರಿನೊಂದಿಗೆ ಈಗಾಗಲೇ CRX ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.</translation>
 <translation id="257779572837908839">ಸಭೆಗಳಿಗಾಗಿ Chromebox ಅನ್ನು ಸೆಟಪ್‌ ಮಾಡಿ</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" /> ವಾಲ್ಯೂಮ್ ಅನ್ನು ತೆಗೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ <ph name="END_BOLD" /> <ph name="LINE_BREAKS" /> ವಾಲ್ಯೂಮ್ ಕಾರ್ಯನಿರತವಾಗಿದೆ. ಅದರಿಂದ ತೆರೆಯಲಾದ ಎಲ್ಲಾ ಫೈಲ್‌ಗಳನ್ನು ಮುಚ್ಚಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2579575372772932244">ಪ್ರೊಫೈಲ್ ಮರು ರಚಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ಕಾಯಿರಿ...</translation>
@@ -1063,7 +1044,6 @@
 <translation id="2653266418988778031">ಪ್ರಮಾಣೀಕರಣ ಪ್ರಾಧಿಕಾರದ (CA) ಪ್ರಮಾಣಪತ್ರವನ್ನು ನೀವು ಅಳಿಸಿದ್ದೇ ಆದರೆ, ಆ ಬಳಿಕ CA ಬಿಡುಗಡೆ ಮಾಡುವ ಯಾವುದೇ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ನಿಮ್ಮ ಬ್ರೌಸರ್  ನಂಬುವುದಿಲ್ಲ.</translation>
 <translation id="2653659639078652383">ಸಲ್ಲಿಸು</translation>
 <translation id="265390580714150011">ಕ್ಷೇತ್ರ ಮೌಲ್ಯ</translation>
-<translation id="2654286334048437383">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ರಫ್ತು ಮಾಡಿ</translation>
 <translation id="2655386581175833247">ಬಳಕೆದಾರ  ಪ್ರಮಾಣಪತ್ರ:</translation>
 <translation id="2660779039299703961">ಈವೆಂಟ್</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1257,7 +1237,6 @@
 <translation id="2908162660801918428">ಡೈರೆಕ್ಟರಿಯ ಮೂಲಕ ಮಾಧ್ಯಮ ಗ್ಯಾಲರಿ ಸೇರಿಸಿ</translation>
 <translation id="2908789530129661844">ಪರದೆಯನ್ನು ಝೂಮ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="2910318910161511225">ನೆಟ್‍ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
-<translation id="2912905526406334195">ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಅನ್ನು <ph name="HOST" /> ಬಳಸಬೇಕೆಂದು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="2913331724188855103">ಕುಕೀ ಡೇಟಾವನ್ನು ಉಳಿಸಲು ಮತ್ತು ರೀಡ್ ಮಾಡಲು ಸೈಟ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="2916073183900451334">ಫಾರ್ಮ್ ಕ್ಷೇತ್ರಗಳಂತೆ ವೆಬ್‌ಪುಟದಲ್ಲಿನ ಹೈಲೈಟ್ ಲಿಂಕ್‌ಗಳ ಟ್ಯಾಬ್ ಒತ್ತಿರಿ</translation>
 <translation id="2916745397441987255">ವಿಸ್ತರಣೆಗಳನ್ನು ಹುಡುಕಿ</translation>
@@ -1355,7 +1334,7 @@
 <translation id="3051523411789012618">Window ಮೇಲಕ್ಕೆ</translation>
 <translation id="3053013834507634016">ಪ್ರಮಾಣಪತ್ರ ಕೀಲಿ ಬಳಕೆ</translation>
 <translation id="3057861065630527966">ನಿಮ್ಮ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ</translation>
-<translation id="3060379269883947824">ಮಾತನಾಡಲು ಆಯ್ಕೆ ಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
+<translation id="3060379269883947824">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="3061707000357573562">ಪ್ಯಾಚ್ ಸೇವೆ</translation>
 <translation id="3064410671692449875">ಸಾಕಷ್ಟು ಡೇಟಾ ಇಲ್ಲ</translation>
 <translation id="3065041951436100775">ಟ್ಯಾಬ್ ನಾಶಪಡಿಸಿದ ಪ್ರತಿಕ್ರಿಯೆ.</translation>
@@ -1410,7 +1389,6 @@
 <translation id="3141318088920353606">ಆಲಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3141917231319778873">ನೀಡಿರುವ ವಿನಂತಿಯನ್ನು ಈ ಸಾಧನಕ್ಕೆ ಬೆಂಬಲಿಸಲಾಗುವುದಿಲ್ಲ: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">ಮುಗಿದಿದೆ</translation>
-<translation id="3144135466825225871">crx ಫೈಲ್ ಅನ್ನು ಸ್ಥಾನಾಂತರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ. ಫೈಲ್ ಬಳಕೆಯಲ್ಲಿದೆಯೆ ಎಂದು ಪರಿಶೀಲಿಸಿ.</translation>
 <translation id="3144647712221361880">ಲಿಂಕ್ ಅನ್ನು ಹೀಗೆ ತೆರೆಯಿರಿ</translation>
 <translation id="3149510190863420837">Chrome ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
 <translation id="3150927491400159470">ಹಾರ್ಡ್ ಮರುಲೋಡ್</translation>
@@ -1520,7 +1498,6 @@
 <translation id="3309747692199697901">ಯಾವಾಗಲೂ ಎಲ್ಲಾ ಸೈಟ್‌ಗಳಲ್ಲಿ ರನ್ ಮಾಡು</translation>
 <translation id="3312424061798279731">ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ಭಾಷೆಗಳು</translation>
 <translation id="3312903956926554846">ಡೆಸ್ಕ್‌ಟಾಪ್‌ಗೆ ಇನ್‌ಸ್ಟಾಲ್‌ ಮಾಡಿ</translation>
-<translation id="3313473140726597081">ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟವನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟವನ್ನು ಬದಲಾಯಿಸುವ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿಲು, ಮರುಸ್ಥಾಪಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="3313590242757056087">ಯಾವ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರು ವೀಕ್ಷಿಸಬಹುದು ಎಂಬುದನ್ನು ಹೊಂದಿಸಲು, ನೀವು <ph name="MANAGEMENT_URL" /> ಗೆ ಭೇಟಿ ನೀಡುವುದರ ಮೂಲಕ ನಿರ್ಬಂಧಗಳು ಮತ್ತು
     ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.
     ಒಂದು ವೇಳೆ ನೀವು ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾವಣೆ ಮಾಡದಿದ್ದರೆ, <ph name="USER_DISPLAY_NAME" />
@@ -1536,7 +1513,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">ಅಪ್ಲಿಕೇಶನ್‌ ಮಾಹಿತಿ</translation>
 <translation id="3335947283844343239">ಮುಚ್ಚಿದ ಟ್ಯಾಬ್ ಮರುತೆರೆ</translation>
-<translation id="3337069537196930048">ಅವಧಿ ಮೀರಿರುವ ಕಾರಣ <ph name="PLUGIN_NAME" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
 <translation id="3340978935015468852">ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="3341703758641437857">URL ಗಳನ್ನು ಫೈಲ್‌ಗಳಿಗೆ ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಿ</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ಈ ವಿಸ್ತರಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲು ಬಯಸುತ್ತದೆ.</translation>
@@ -1571,7 +1547,6 @@
 <translation id="3386219708421216619">ಬುಕ್‌ಮಾರ್ಕ್ ಸೇರಿಸಲಾಗಿದೆ</translation>
 <translation id="3389312115541230716">ಕಾರ್ಯಪಟ್ಟಿಯಲ್ಲಿ <ph name="SMALL_PRODUCT_LOGO" /> ಐಕಾನ್ ಅನ್ನು ರೈಟ್ ಕ್ಲಿಕ್ ಮಾಡಿ</translation>
 <translation id="3391716558283801616">ಟ್ಯಾಬ್ 7</translation>
-<translation id="3394150261239285340">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್ ಬಳಸಲು <ph name="HOST" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="3396331542604645348">ಆಯ್ಕೆಮಾಡಿದ ಮುದ್ರಕವು ಲಭ್ಯವಿಲ್ಲ ಅಥವಾ ಸರಿಯಾಗಿ ಸ್ಥಾಪನೆ ಮಾಡಲಾಗಿಲ್ಲ. ನಿಮ್ಮ ಮುದ್ರಕವನ್ನು ಪರೀಕ್ಷಿಸಿ ಅಥವಾ ಅವಶ್ಯವಿದ್ದರೆ ಬೇರೊಂದು ಮುದ್ರಕವನ್ನು ಆಯ್ಕೆಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="3399432415385675819">ಅಧಿಸೂಚನೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1683,10 +1658,8 @@
 <translation id="3550915441744863158">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಣಗೊಳ್ಳುತ್ತದೆ. ಹೀಗಾಗಿ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುತ್ತೀರಿ.</translation>
 <translation id="3551320343578183772">ಟ್ಯಾಬ್ ಅನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="3552780134252864554">ನಿರ್ಗಮನದಲ್ಲಿ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation>
-<translation id="355298399003313926">ಪ್ರವೇಶಿಸುವಿಕೆ ಈವೆಂಟ್‌ಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="3555812735919707620">ವಿಸ್ತರಣೆ ತೆಗೆದುಹಾಕು</translation>
 <translation id="3556000484321257665">ನಿಮ್ಮ ಹುಡುಕಾಟ ಎಂಜಿನ್ ಅನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation>
-<translation id="3561217442734750519">ಖಾಸಗಿ ಕೀಲಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯವು ಮಾನ್ಯವಾದ ಹಾದಿಯಾಗಿರಬೇಕು.</translation>
 <translation id="3563432852173030730">ಕಿಯೋಸ್ಕ್‌ ಅಪ್ಲಿಕೇಶನ್‌ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="3564334271939054422">ನೀವು ಬಳಸುತ್ತಿರುವ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್ (<ph name="NETWORK_ID" />) ನ ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ನೀವು ಭೇಟಿ ನೀಡಬೇಕಾದ ಅಗತ್ಯವಿರಬಹುದು.</translation>
 <translation id="3564708465992574908">ಝೂಮ್ ಹಂತಗಳು</translation>
@@ -1708,7 +1681,6 @@
 <translation id="3593965109698325041">ಪ್ರಮಾಣಪತ್ರ ಹೆಸರು ನಿರ್ಬಂಧಗಳು</translation>
 <translation id="3596235046596950091">ಮೇಘ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="3599863153486145794">ಸೈನ್-ಇನ್ ಮಾಡಿರುವ ಎಲ್ಲ ಸಾಧನಗಳಿಂದ ಇತಿಹಾಸವನ್ನು ತೆರವುಗೊಳಿಸುತ್ತದೆ. ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು.</translation>
-<translation id="3600456501114769456">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್‌ಗಳ ಪ್ರವೇಶವನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="3600792891314830896">ಕೆಲವು ಸೈಟ್‌ಗಳಲ್ಲಿ ಧ್ವನಿ ಪ್ಲೇ ಆಗುವುದನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ</translation>
 <translation id="3603177256297531067">ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲಾಗುವುದಿಲ್ಲ</translation>
 <translation id="3603533104205588786">ಪುಟವನ್ನು ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲು ನೀವು ನಕ್ಷತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಬಹುದು</translation>
@@ -1733,7 +1705,6 @@
 <translation id="3625258641415618104">ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="3625870480639975468">ಝೂಮ್ ಅನ್ನು ಮರುಹೊಂದಿಸು</translation>
 <translation id="3626281679859535460">ಪ್ರಕಾಶಮಾನ</translation>
-<translation id="3627052133907344175">ವಿಸ್ತರಣೆಗೆ "<ph name="IMPORT_VERSION" />" ಕನಿಷ್ಠ ಆವೃತ್ತಿಯೊಂದಿಗೆ "<ph name="IMPORT_NAME" />" ಅಗತ್ಯವಿದೆ, ಆದರೆ "<ph name="INSTALLED_VERSION" />" ಆವೃತ್ತಿಯನ್ನು ಮಾತ್ರ ಸ್ಥಾಪಿಸಲಾಗಿದೆ.</translation>
 <translation id="3627320433825461852">1 ನಿಮಿಷಕ್ಕಿಂತಲೂ ಕಡಿಮೆ ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="3627588569887975815">ಲಿಂಕ್‌ ಅನ್ನು ಅಜ್ಞಾ&amp;ತ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="3627671146180677314">Netscape ಪ್ರಮಾಣಪತ್ರ ಅಪ್‌ಡೇಟ್‌‌ ಸಮಯ</translation>
@@ -1762,7 +1733,6 @@
 <translation id="3668570675727296296">ಭಾಷೆಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="3668823961463113931">ಹ್ಯಾಂಡ್‌ಲರ್‌ಗಳು</translation>
 <translation id="3670229581627177274">ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಿ</translation>
-<translation id="3672159315667503033">ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ <ph name="URL" /> ಗೆ ಶಾಶ್ವತವಾಗಿ ಇನ್ನಷ್ಟು ಹೆಚ್ಚಿನ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸವ ಇರಾದೆ ಇದೆ.</translation>
 <translation id="3672681487849735243">ತಯಾರಿಕೆಯ ದೋಷವನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="367645871420407123">ರೂಟ್ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಪರೀಕ್ಷೆ ಚಿತ್ರ ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಸಲು ನೀವು ಬಯಸಿದರೆ ಖಾಲಿ ಬಿಡಿ</translation>
 <translation id="3678156199662914018">ವಿಸ್ತರಣೆ: <ph name="EXTENSION_NAME" /></translation>
@@ -1840,11 +1810,9 @@
 <translation id="3786301125658655746">ನೀವು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿರುವಿರಿ</translation>
 <translation id="3788401245189148511">ಇದು ಸಾಧ್ಯವಾಗಬಹುದು:</translation>
 <translation id="3789841737615482174">ಸ್ಥಾಪಿಸು</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> ಡೆಸ್ಕ್‌ಟಾಪ್‌ನಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.</translation>
 <translation id="379082410132524484">ನಿಮ್ಮ ಕಾರ್ಡ್‌ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
 <translation id="3792890930871100565">ಮುದ್ರಕಗಳನ್ನು ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ</translation>
 <translation id="379422718204375917">ನಿಮ್ಮ ಖಾತೆಗೆ ಸೈನ್‌ ಇನ್‌ ಮಾಡಲು Smart Lock ಬಳಸಿ</translation>
-<translation id="3794595850995182458">ನಿರ್ಗಮನ ಪುಟ</translation>
 <translation id="3796648294839530037">ಮೆಚ್ಚಿನ ನೆಟ್‌ವರ್ಕ್‌ಗಳು:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> ಗಾಗಿ '<ph name="SEARCH_TERMS" />' &amp;ಹುಡುಕಿ</translation>
 <translation id="3798325802885154040">ಕ್ಲಿಕ್-ಮಾಡಲು-ಟ್ಯಾಪ್ ಮಾಡಿ ಸಕ್ರಿಯಗೊಳಿಸಲು/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ</translation>
@@ -1975,7 +1943,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ಸಕ್ರಿಯಗೊಳಿಸು</translation>
 <translation id="3981760180856053153">ಅಮಾನ್ಯವಾದ ಉಳಿಸು ಪ್ರಕಾರವನ್ನು ನಮೂದಿಸಲಾಗಿದೆ.</translation>
 <translation id="3983586614702900908">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ ಸಾಧನಗಳು</translation>
-<translation id="3984413272403535372">ವಿಸ್ತರಣೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ದೋಷ.</translation>
 <translation id="3987938432087324095">ಕ್ಷಮಿಸಿ, ಅದನ್ನು ಗ್ರಹಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="3988996860813292272">ಸಮಯ ವಲಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="3989635538409502728">ಸೈನ್ ಔಟ್</translation>
@@ -2031,7 +1998,6 @@
 <translation id="4087470595660267445">ನಿಮ್ಮ Chromebook ನಲ್ಲಿ Google Playಯಿಂದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮತ್ತು ಗೇಮ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಿ. &lt;a target="_blank" href="<ph name="URL" />"&gt;ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ&lt;/a&gt;</translation>
 <translation id="4088095054444612037">ಗುಂಪಿಗಾಗಿ ಸ್ವೀಕರಿಸು</translation>
 <translation id="4090103403438682346">ಪರಿಶೀಲಿಸಿದ ಪ್ರವೇಶವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
-<translation id="4090404313667273475">ಈ ಪುಟದಲ್ಲಿನ ಕೆಲವು ಅಂಶಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು <ph name="PLUGIN_NAME" /> ನ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="4090535558450035482">(ಈ ವಿಸ್ತರಣೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ ಮತ್ತು ತೆಗೆದುಹಾಕಲಾಗುವುದಿಲ್ಲ.)</translation>
 <translation id="4091434297613116013">ಕಾಗದದ ಹಾಳೆಗಳು</translation>
 <translation id="4093955363990068916">ಸ್ಥಳೀಯ ಫೈಲ್:</translation>
@@ -2365,7 +2331,6 @@
 <translation id="4714531393479055912">ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು <ph name="PRODUCT_NAME" /> ಇದೀಗ ಸಿಂಕ್ ಮಾಡಬಹುದು.</translation>
 <translation id="4715553623069266137">ತುಂಬಾ ಚಿಕ್ಕದು (0.8s)</translation>
 <translation id="4716483597559580346">ಹೆಚ್ಚುವರಿ ಸುರಕ್ಷತೆಗಾಗಿ ಪವರ್‌ವಾಶ್</translation>
-<translation id="471800408830181311">ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="4720113199587244118">ಸಾಧನಗಳನ್ನು ಸೇರಿಸು</translation>
 <translation id="4720185134442950733">ಮೊಬೈಲ್ ಡೇಟಾ ನೆಟ್‌ವರ್ಕ್</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> ನಿಮ್ಮ ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation>
@@ -2503,7 +2468,6 @@
 <translation id="4917385247580444890">ಪ್ರಬಲ</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ಅವರು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯ ಜೊತೆಗೆ ಸಂವಹಿಸಲು ಬಯಸುತ್ತಾರೆ</translation>
 <translation id="4918086044614829423">ಸಮ್ಮತಿಸು</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸಲು ಬಯಸುತ್ತದೆ.</translation>
 <translation id="4920887663447894854">ಈ ಪುಟದಲ್ಲಿ ನಿಮ್ಮ ಸ್ಥಾನವನ್ನು ನಿಗಾ ಇರಿಸದಂತೆ ಮುಂದಿನ ಸೈಟ್‌ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ:</translation>
 <translation id="492299503953721473">Android ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕು</translation>
 <translation id="4923279099980110923">ಹೌದು, ನಾನು ಸಹಾಯ ಮಾಡಬೇಕೆಂದಿದ್ದೇನೆ</translation>
@@ -2544,7 +2508,6 @@
 <translation id="4980805016576257426">ಈ ವಿಸ್ತರಣೆಯು ಮಾಲ್‌‌ವೇರ್ ಅನ್ನು ಹೊಂದಿದೆ.</translation>
 <translation id="498294082491145744">ಕುಕೀಗಳು, JavaScript, ಪ್ಲಗ್ಇನ್‌ಗಳು, ಜಿಯೊಲೊಕೇಶನ್, ಮೈಕ್ರೊಫೋನ್, ಕ್ಯಾಮರಾ ಇತ್ಯಾದಿಗಳಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳಿಗೆ ವೆಬ್‌‌ಸೈಟ್‌ಗಳ ಪ್ರವೇಶವನ್ನು ನಿಯಂತ್ರಿಸುವ ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ.</translation>
 <translation id="4988526792673242964">ಪುಟಗಳು</translation>
-<translation id="4988792151665380515">ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ರಫ್ತು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="49896407730300355">ಅಪ್ರ&amp;ದಕ್ಷಿಣೆಯಂತೆ ತಿರುಗಿಸಿ</translation>
 <translation id="4989966318180235467">&amp;ಹಿನ್ನಲೆ ಪುಟವನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="4990343175649730969">Chrome ಸ್ವಚ್ಛತಾ ಸಾಧನ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡು</translation>
@@ -2572,7 +2535,6 @@
 <translation id="5026874946691314267">ಇದನ್ನು ಮತ್ತೆ ತೋರಿಸಬೇಡ</translation>
 <translation id="5027550639139316293">ಇಮೇಲ್ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="5027562294707732951">ವಿಸ್ತರಣೆ ಸೇರಿಸು</translation>
-<translation id="5028012205542821824">ಸ್ಥಾಪನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿಲ್ಲ.</translation>
 <translation id="5029568752722684782">ನಕಲು ತೆರವುಗೊಳಿಸು</translation>
 <translation id="5030338702439866405">ಇವರಿಂದ ನೀಡಲಾಗಿದೆ</translation>
 <translation id="5036662165765606524">ಬಹು ಫೈಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಲು ಯಾವುದೇ ಸೈಟ್‌ಗೆ ಅನುಮತಿಸುವುದು ಬೇಡ</translation>
@@ -2608,7 +2570,6 @@
 <translation id="509429900233858213">ದೋಷವೊಂದು ಕಾಣಿಸಿಕೊಂಡಿದೆ.</translation>
 <translation id="5094721898978802975">ಸಹಕರಿಸುವ ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">ಡೈರೆಕ್ಟರಿಗೆ ಪ್ಯಾಕ್ ಮಾಡಲು ಸರಿಯಾದ ಪಥವನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="5099354524039520280">ಮೇಲಕ್ಕೆ</translation>
 <translation id="5100114659116077956">ನಿಮಗೆ ಇತ್ತೀಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೀಡುವ ದೃಷ್ಟಿಯಿಂದ, ನಿಮ್ಮ Chromebox ನವೀಕರಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -2657,7 +2618,6 @@
 <translation id="5170568018924773124">ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="5171045022955879922">ಹುಡುಕಾಟ ನಡೆಸಿ ಅಥವಾ URL ಅನ್ನು ಟೈಪ್‌ ಮಾಡಿ</translation>
 <translation id="5171343362375269016">ಬದಲಾಯಿಸಿದ ಸ್ಮರಣೆ</translation>
-<translation id="5175870427301879686">ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ <ph name="URL" /> ಗೆ ಶಾಶ್ವತವಾದ ಡೇಟಾ ಸಂಗ್ರಹಣೆಯ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="5177479852722101802">ಕ್ಯಾಮರಾ ಹಾಗೂ ಮೈಕ್ರೋಫೋನ್ ಪ್ರವೇಶ ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation>
 <translation id="5177526793333269655">ಚಿಕ್ಕಚಿತ್ರ ವೀಕ್ಷಣೆ</translation>
 <translation id="5177549709747445269">ನೀವು ಮೊಬೈಲ್ ಡೇಟಾವನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">ಈ ಸಾಧನವನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ</translation>
 <translation id="5293170712604732402">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸಿ</translation>
 <translation id="5298219193514155779">ಇವರಿಂದ ಥೀಮ್ ರಚಿಸಲಾಗಿದೆ</translation>
-<translation id="5298363578196989456">"<ph name="IMPORT_NAME" />" ವಿಸ್ತರಣೆಯು ಹಂಚಿಕೊಂಡ ಮಾಡ್ಯೂಲ್ ಆಗಿಲ್ಲದಿರುವ ಕಾರಣ ಅದನ್ನು ಆಮದು ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="5299109548848736476">ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಡಿ</translation>
 <translation id="5299682071747318445">ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್‌ನೊಂದಿಗೆ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಫ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" ಜೋಡಿಸಲು ಬಯಸುತ್ತದೆ</translation>
 <translation id="5332624210073556029">ಸಮಯ ವಲಯ:</translation>
 <translation id="5334142896108694079">ಸ್ಕ್ರಿಪ್ಟ್ ಸಂಗ್ರಹ</translation>
-<translation id="533433379391851622">ನಿರೀಕ್ಷಿಸಲಾದ ಆವೃತ್ತಿ "<ph name="EXPECTED_VERSION" />", ಆದರೆ ಆವೃತ್ತಿಯು "<ph name="NEW_ID" />" ಆಗಿದೆ.</translation>
 <translation id="5334844597069022743">ಮೂಲ ವೀಕ್ಷಿಸಿ</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google ಡ್ರೈವ್<ph name="END_LINK" /> ಗೆ <ph name="FILE_COUNT" /> ಅನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="5337771866151525739">ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಮೂಲಕ ಸ್ಥಾಪಿಸಲಾಗಿದೆ.</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">ಧ್ವನಿಗಳನ್ನು ಪ್ಲೇ ಮಾಡಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ</translation>
 <translation id="5390284375844109566">ಸೂಚ್ಯಂಕಗೊಳಿಸಿದ ಡೇಟಾಬೇಸ್</translation>
 <translation id="5390743329570580756">ಇದಕ್ಕಾಗಿ ಕಳುಹಿಸಿ</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> ಅವರು <ph name="PEPPER_PLUGIN_DOMAIN" /> ನಲ್ಲಿ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತಾರೆ.</translation>
 <translation id="5397794290049113714">ನೀವು</translation>
 <translation id="5398572795982417028">ಪರಿಮಿತಿಗಳಿಂದ ಹೊರಗಿರುವ ಪುಟದ ಉಲ್ಲೇಖ, ಮಿತಿ <ph name="MAXIMUM_PAGE" /> ಆಗಿದೆ</translation>
 <translation id="5398772614898833570">ಜಾಹೀರಾತುಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">ಎಲ್ಲಾ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಿ </translation>
 <translation id="5486261815000869482">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಖಚಿತಪಡಿಸು</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> ನಿಮ್ಮ ಪರದೆಯನ್ನು <ph name="TAB_NAME" /> ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation>
-<translation id="5486326529110362464">ಖಾಸಗಿ ಕೀಲಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು.</translation>
 <translation id="5486561344817861625">ಬ್ರೌಸರ್ ಮರುಪ್ರಾರಂಭಿಸುವಿಕೆ ಸಿಮ್ಯುಲೇಟ್‌ ಮಾಡು</translation>
 <translation id="5487521232677179737">ಡೇಟಾ ತೆರವುಗೊಳಿಸು</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' ಅನ್ನು ನಕಲಿಸಲಾಗಿದೆ</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB ಮೊಬೈಲ್ ಡೇಟಾ ಬಳಸಿಕೊಂಡು ಅಪ್‌ಡೇಟ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ. ಮುಂದುವರಿಸಲು ನೀವು ಬಯಸುವಿರಾ?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">ಇತರ ಹುಡುಕಾಟದ ಇಂಜಿನ್‌ಗಳು</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> ನಲ್ಲಿ <ph name="PEPPER_PLUGIN_DOMAIN" /> ನಿಮ್ಮ ಸಾಧನವನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸಿದೆ.</translation>
 <translation id="5608580678041221894">ಕ್ರಾಪ್ ಮಾಡಿರುವ ಪ್ರದೇಶವನ್ನು ಸರಿಹೊಂದಿಸಲು ಅಥವಾ ಸರಿಸಲು ಈ ಮುಂದಿನ ಕೀಗಳನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
 <translation id="5609231933459083978">ಅಪ್ಲಿಕೇಶನ್ ಅಮಾನ್ಯವಾಗಿರುವಂತೆ ತೋರುತ್ತಿದೆ.</translation>
 <translation id="5610038042047936818">ಕ್ಯಾಮರಾ ಮೋಡ್‌ಗೆ ಬದಲಾಯಿಸಿ</translation>
@@ -3192,7 +3147,6 @@
 <translation id="5990386583461751448">ಅನುವಾದಿತ</translation>
 <translation id="5991049340509704927">ವರ್ಧಿಸು</translation>
 <translation id="5993332328670040093">ನಿಮ್ಮ ಡೇಟಾ ಬಳಕೆಯನ್ನು ಇನ್ನು ಮುಂದೆ ಮಾಪನ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> ತಾನಾಗಿಯೇ ಅಪ್‌ಡೇಟ್‌‌ ಹೊಂದಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="600424552813877586">ಅಮಾನ್ಯವಾದ ಅಪ್ಲಿಕೇಶನ್.</translation>
 <translation id="6005695835120147974">ಮಾಧ್ಯಮ ರೂಟರ್</translation>
 <translation id="6006484371116297560">ಕ್ಲಾಸಿಕ್</translation>
@@ -3217,6 +3171,7 @@
 <translation id="604001903249547235">ಮೇಘ ಬ್ಯಾಕಪ್</translation>
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6040852767465482106">ಅನಾಮಧೇಯ ಗುರುತಿಸುವಿಕೆ</translation>
+<translation id="6041155700700864984">ಪೂರ್ಣಪರದೆಯಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
 <translation id="604124094241169006">ಸ್ವಯಂಚಾಲಿತ</translation>
 <translation id="6042169520002885235">ಪ್ರಿಂಟರ್ ತಯಾರಕರನ್ನು ಮತ್ತು ಮಾದರಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="6042308850641462728">ಇನ್ನಷ್ಟು</translation>
@@ -3233,7 +3188,6 @@
 <translation id="6056710589053485679">ಸಾಮಾನ್ಯ ಮರುಲೋಡ್</translation>
 <translation id="6059652578941944813">ಪ್ರಮಾಣಪತ್ರ ಶ್ರೇಣಿ ವ್ಯವಸ್ಥೆ</translation>
 <translation id="6059925163896151826">USB ಸಾಧನಗಳು</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ.</translation>
 <translation id="6064217302520318294">ಸ್ಕ್ರೀನ್ ಲಾಕ್</translation>
 <translation id="6065289257230303064">ಪ್ರಮಾಣಪತ್ರ ವಿಷಯ ಡೈರೆಕ್ಟರಿ ಆಟ್ರಿಬ್ಯೂಟ್‌ಗಳು</translation>
 <translation id="6068338049763724728">ರಿಮೋಟ್ ನೋಂದಣಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
@@ -3342,7 +3296,6 @@
 <translation id="6237816943013845465">ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ರೆಸಲ್ಯೂಶನ್ ಸರಿಹೊಂದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ</translation>
 <translation id="6238923052227198598">ಲಾಕ್ ಪರದೆಯ ಮೇಲೆ ಇತ್ತೀಚಿನ ಟಿಪ್ಪಣಿ ಇರಿಸಿ</translation>
 <translation id="6239558157302047471">ರೀಲೋಡ್ &amp;ಫ್ರೇಮ್</translation>
-<translation id="624022915548992686">ನಿರ್ಗಮದ ಪುಟ</translation>
 <translation id="6241530762627360640">ನಿಮ್ಮ ಸಿಸ್ಟಂ ಜೊತೆಗೆ ಜೋಡಿಯಾಗಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳ ಕುರಿತ ಮಾಹಿತಿಯನ್ನು ಪ್ರವೇಶಿಸಿ ಮತ್ತು ಹತ್ತಿರದ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಿ.</translation>
 <translation id="6243774244933267674">ಸರ್ವರ್ ಲಭ್ಯವಿಲ್ಲ</translation>
 <translation id="6246413617632217567">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಹಾರ್ಡ್ ಡ್ರೈವ್ ಸ್ಥಳಾವಕಾಶ ಮತ್ತು ಅನುಮತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -3391,13 +3344,11 @@
 <translation id="6312403991423642364">ಅಪರಿಚಿತ ನೆಟ್‌ವರ್ಕ್ ದೋಷ</translation>
 <translation id="6313641880021325787">VR ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
 <translation id="6314819609899340042">ಈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ಸಾಧನದಲ್ಲಿ ನೀವು ದೋಷ ನಿವಾರಣಾ ವೈಶಿಷ್ಟ್ಯತೆಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ.</translation>
-<translation id="6315343732431721770">ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟಗಳನ್ನು <ph name="URL" /> ಗೆ ಸೇರಿಸಲು ಬದಲಾಯಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟವನ್ನು ಬದಲಾಯಿಸುವ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿಲು, ಮರುಸ್ಥಾಪಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="6315493146179903667">ಎಲ್ಲವನ್ನೂ ಮುಂದಕ್ಕೆ ಬರಿಸು</translation>
 <translation id="6316806695097060329">ನಿಮಗೆ ವೆಬ್‌ನ ಉತ್ತಮ ಅನುಭವವನ್ನು ಒದಗಿಸುವ ಸಲುವಾಗಿ ಈ <ph name="SHORT_PRODUCT_NAME" /> ಸಾಧನವನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="6317318380444133405">ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="6317369057005134371">ಅಪ್ಲಿಕೇಶನ್ ವಿಂಡೋಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="6318407754858604988">ಡೌನ್‌ಲೋಡ್ ಪ್ರಾರಂಭಿಸಲಾಗಿದೆ</translation>
-<translation id="6322279351188361895">ಗೌಪ್ಯತೆ ಕೀಲಿಯನ್ನು ಓದಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="6325191661371220117">ಸ್ವಯಂ-ಪ್ರಾರಂಭವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="6326175484149238433">Chrome ನಿಂದ ತೆಗೆದುಹಾಕು</translation>
 <translation id="6326855256003666642">ಎಣಿಕೆಯನ್ನು ಚಾಲ್ತಿಯಲ್ಲಿರಿಸಿ</translation>
@@ -3406,7 +3357,6 @@
 <translation id="6333049849394141510">ಏನು ಸಿಂಕ್  ಮಾಡಬೇಕೆಂದು ಆರಿಸಿ</translation>
 <translation id="6333064448949140209">ಡೀಬಗ್ ಮಾಡಲು Google ಗೆ ಫೈಲ್ ಕಳುಹಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="6333834492048057036">ಹುಡುಕುವುದಕ್ಕೆ ವಿಳಾಸ ಪಟ್ಟಿಯನ್ನು ಗಮನಿಸಿ</translation>
-<translation id="6336907568130557310">ರಫ್ತು ಮಾಡಲಾದ ಫೈಲ್ ಅನ್ನು ನೋಡುವ ಯಾರಿಗಾದರೂ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಗೋಚರಿಸುತ್ತವೆ. ಫೈಲ್ ಅನ್ನು ಯಾರೊಂದಿಗೂ ಹಂಚಿಕೊಳ್ಳಬೇಡಿ ಮತ್ತು ಅದನ್ನು ಆಮದು ಮಾಡಿದ ನಂತರ ಅಳಿಸಿಹಾಕಿ.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> ಗೆ ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಿ</translation>
 <translation id="6340017061976355871">ಸರ್ವರ್‌ ಮೂಲಕ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್‌ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ನಿಮ್ಮ Chromebook ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="6340071272923955280">ಇಂಟರ್ನೆಟ್ ಮುದ್ರಿಸುವಿಕೆಯ ಪ್ರೊಟೊಕಾಲ್ (IPPS)</translation>
@@ -3435,7 +3385,6 @@
 <translation id="6385543213911723544">ಸೈಟ್‌ಗಳು ಕುಕೀ ಡೇಟಾವನ್ನು ಉಳಿಸಬಹುದು ಮತ್ತು ಓದಬಹುದು</translation>
 <translation id="6388771388956873507">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್‌ ಅನ್ನು ಹುಡುಕಿ ಮತ್ತು ಅದನ್ನು ಬೆರಳಿನಿಂದ ಸ್ಪರ್ಶಿಸಿ</translation>
 <translation id="6390799748543157332">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ತೆರೆದಿರುವ ಎಲ್ಲ ಅತಿಥಿ ವಿಂಡೊಗಳನ್ನು ಮುಚ್ಚಿದ ನಂತರ ಈ ವಿಂಡೊದಲ್ಲಿ ನೀವು ವೀಕ್ಷಿಸುವ ಪುಟಗಳು ಬ್ರೌಸರ್ ಇತಿಹಾಸದಲ್ಲಿ ಗೋಚರಿಸುವುದಿಲ್ಲ ಮತ್ತು ಅವುಗಳು ಕುಕೀಗಳಂತಹ ಇತರ ಗುರುತುಗಳನ್ನು ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಬಿಡುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನೀವು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಯಾವುದೇ ಫೈಲ್‌ಗಳನ್ನು ರಕ್ಷಿಸಲಾಗುತ್ತದೆ.</translation>
-<translation id="6391538222494443604">ಇನ್‌ಪುಟ್ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />ಸಿಸ್ಟಂ‌ ಮಾಹಿತಿ<ph name="END_LINK1" /> ಮತ್ತು <ph name="BEGIN_LINK2" />ಮೆಟ್ರಿಕ್‌ಗಳನ್ನು<ph name="END_LINK2" /> ಕಳುಹಿಸಿ</translation>
 <translation id="6397363302884558537">ಮಾತನಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation>
 <translation id="6397592254427394018">&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಎಲ್ಲ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
@@ -3492,7 +3441,6 @@
 <translation id="6458308652667395253">JavaScript ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಿ...</translation>
 <translation id="6459488832681039634">ಹುಡುಕಲು ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ</translation>
 <translation id="6460601847208524483">ಮುಂದಿನದು ಕಂಡುಹಿಡಿಯಿರಿ</translation>
-<translation id="6462080265650314920">"<ph name="CONTENT_TYPE" />" ಪ್ರಕಾರದ ವಿಷಯದೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒದಗಿಸಬೇಕು.</translation>
 <translation id="6462082050341971451">ನೀವಿನ್ನೂ ಅಲ್ಲಿಯೇ ಇದ್ದೀರಾ?</translation>
 <translation id="6463795194797719782">&amp;ಸಂಪಾದಿಸು</translation>
 <translation id="6466988389784393586">ಎಲ್ಲ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು &amp;ತೆರೆಯಿರಿ</translation>
@@ -3622,7 +3570,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822"><ph name="SOURCE_LANGUAGE" /> ಭಾಷೆಯಿಂದ <ph name="TARGET_LANGUAGE" /> ಭಾಷೆಗೆ ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ನಿಮಗೆ Google ಸಹಾಯ ಬೇಕೇ?</translation>
 <translation id="6675665718701918026">ಪಾಯಿಂಟಿಂಗ್ ಸಾಧನ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ</translation>
-<translation id="6677037229676347494">ನಿರೀಕ್ಷಿಸಲಾದ ID "<ph name="EXPECTED_ID" />", ಆದರೆ ID ಯು "<ph name="NEW_ID" />" ಆಗಿದೆ.</translation>
 <translation id="6678717876183468697">ಕ್ವೆರಿ URL</translation>
 <translation id="6680028776254050810">ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ</translation>
 <translation id="6680442031740878064">ಲಭ್ಯವಿದೆ: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">ಯಾವ ಸಮಯದಲ್ಲಾದರೂ <ph name="BEGIN_LINK" />ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ<ph name="END_LINK" /> Google ಸಂಗ್ರಹಿಸುವ ಮಾಹಿತಿಯನ್ನು ನೀವು ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು.</translation>
 <translation id="6904344821472985372">ಫೈಲ್ ಪ್ರವೇಶವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಿ</translation>
 <translation id="6904655473976120856">ನಿರ್ಗಮಿಸಲು ಅಪ್ಲಿಕೇಶನ್ ಬಟನ್‌ ಅನ್ನು ಒತ್ತಿ</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> ನಿಮ್ಮ ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತದೆ.</translation>
-<translation id="6909461304779452601">ಈ ವೆಬ್‌ಸೈಟ್‌ನಿಂದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಬಳಕೆದಾರ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="6910211073230771657">ಅಳಿಸಲಾಗಿದೆ</translation>
 <translation id="691024665142758461">ಅನೇಕ ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡಿ</translation>
 <translation id="6911324888870229398">ನೆಟ್‌ವರ್ಕ್‌ ಸಂಪರ್ಕವು ಕಡಿತಗೊಂಡಿದೆ. ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಅಥವಾ ಮತ್ತೊಂದು ವೈ-ಫೈ ಸಂಪರ್ಕದ ಮೂಲಕ ಪ್ರಯತ್ನಿಸಿ.</translation>
@@ -4100,7 +4045,6 @@
 <translation id="747114903913869239">ದೋಷ: ವಿಸ್ತರಣೆಯನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation>
 <translation id="747459581954555080">ಎಲ್ಲವನ್ನು ಮರುಸಂಗ್ರಹಿಸಿ</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> ದೋಷವೊಂದನ್ನು ಎದುರಿಸಿದೆ.</translation>
 <translation id="7475671414023905704">Netscape ಕಳೆದು ಹೋದ ಪಾಸ್‌ವರ್ಡ್ URL</translation>
 <translation id="7476454130948140105"><ph name="BATTERY_PERCENT" /> ಅಪ್‌ಡೇಟ್‌ ಮಾಡಲು ಬ್ಯಾಟರಿ ತುಂಬಾ ಕಡಿಮೆ ಇದೆ</translation>
 <translation id="7477347901712410606">ನಿಮ್ಮ ಪಾಸ್‌ಪ್ರೇಸ್ ಅನ್ನು ನೀವು ಮರೆತುಹೋದಲ್ಲಿ, <ph name="BEGIN_LINK" />Google ಡ್ಯಾಶ್‌ಬೋರ್ಡ್<ph name="END_LINK" /> ಮೂಲಕ ಸಿಂಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ಮರುಹೊಂದಿಸಿ.</translation>
@@ -4135,7 +4079,6 @@
 <translation id="7507930499305566459">ಸ್ಥಿತಿ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation>
 <translation id="7508545000531937079">ಸ್ಲೈಡ್‌ಶೋ</translation>
 <translation id="7513029293694390567">ಸಂಗ್ರಹಿಸಲಾದ ರುಜುವಾತುಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ವೆಬ್‌ಸೈಟ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವ ಮೊದಲು ಪ್ರತಿ ಬಾರಿಯೂ ನಿಮಗೆ ದೃಢೀಕರಿಸಲು ಕೇಳಲಾಗುವುದು.</translation>
-<translation id="7515670329462166359">ಸಂರಕ್ಷಿಸಿದ ವಿಷಯವನ್ನು ಪ್ಲೇ ಮಾಡಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನನ್ಯವಾಗಿ ಗುರುತಿಸಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="7517569744831774757">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್‌ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸಿ.</translation>
 <translation id="7517786267097410259">ಪಾಸ್‌ವರ್ಡ್ ರಚಿಸಿ -</translation>
 <translation id="7518150891539970662">WebRTC ಲಾಗ್‌ಗಳು (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4165,7 +4108,6 @@
     ಹಾಗೂ ಮತ್ತೊಮ್ಮೆ ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="756445078718366910">ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="7564847347806291057">ಪ್ರಕ್ರಿಯೆ ಕೊನೆಗೊಳಿಸಿ</translation>
-<translation id="7565291891798266313">ನಿಮ್ಮ ಹುಡುಕಾಟ ಎಂಜಿನ್ ಅನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಹುಡುಕಾಟ ಎಂಜಿನ್ ಅನ್ನು ಬದಲಾಯಿಸುವ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿಲು, ಮರುಸ್ಥಾಪಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="7566118625369982896">ಪ್ಲೇ ಅಪ್ಲಿಕೇಶನ್ ಲಿಂಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome ಡೇಟಾ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation>
@@ -4174,7 +4116,6 @@
 <translation id="7573172247376861652">ಬ್ಯಾಟರಿ ಚಾರ್ಜ್</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">ಹೋಲಿಸಿ ನೋಡು</translation>
-<translation id="7577815336900970562">ಸ್ಥಳವನ್ನು ಪತ್ತೆಹಚ್ಚಲು ವೈಫೈ ಅಥವಾ ಸೆಲ್ಯುಲಾರ್‌ ನೆಟ್‌ವರ್ಕ್‌ ಅನ್ನು ಬಳಸಿ</translation>
 <translation id="7579149537961810247">ಸೈಟ್‌ಗಳನ್ನು ಮ್ಯೂಟ್‌ ಮಾಡಿ</translation>
 <translation id="7580671184200851182">ಎಲ್ಲಾ ಸ್ಪೀಕರ್‌ಗಳ ಮೂಲಕ ಒಂದೇ ಆಡಿಯೋ ಪ್ಲೇ ಮಾಡಿ (ಮೋನೋ ಆಡಿಯೋ)</translation>
 <translation id="7581462281756524039">ಕ್ಲೀನಪ್ ಪರಿಕರ</translation>
@@ -4281,6 +4222,7 @@
 <translation id="7773726648746946405">ಸೆಶನ್ ಸಂಗ್ರಹಣೆ</translation>
 <translation id="7781335840981796660">ಎಲ್ಲ ಬಳಕೆದಾರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation>
 <translation id="7782102568078991263">Google ನಿಂದ ಇನ್ಯಾವುದೇ ಸಲಹೆಗಳಿಲ್ಲ</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="7784067724422331729">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಭದ್ರತೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಈ ಫೈಲ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
 <translation id="7786207843293321886">ಅತಿಥಿ ಸೆಷನ್‌ನಿಂದ ನಿರ್ಗಮಿಸಿ</translation>
 <translation id="7786889348652477777">ಅಪ್ಲಿಕೇಶನ್ &amp;ಮರುಲೋಡ್ ಮಾಡಿ</translation>
@@ -4435,7 +4377,6 @@
 <translation id="8001504501378762252">ಸೈಟ್‌ವೊಂದು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಕಳವು ಮಾಡಿರಬಹುದು</translation>
 <translation id="8004582292198964060">ಬ್ರೌಸರ್</translation>
 <translation id="8008356846765065031">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="8008818777654712271">ಅಪಾಯಕಾರಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೈಟ್‌ಗಳ ಪತ್ತೆಗೆ ಸಹಾಯಮಾಡಲು Google ಗೆ ಕೆಲವು ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಪುಟ ವಿಷಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸಿ</translation>
 <translation id="8012382203418782830">ಈ ಪುಟವನ್ನು ಭಾಷಾಂತರಿಸಲಾಗಿದೆ.</translation>
 <translation id="8014154204619229810">ಅಪ್‌ಡೇಟರ್ ಪ್ರಸ್ತುತ ರನ್ ಆಗುತ್ತಿದೆ. ಮತ್ತೊಮ್ಮೆ ಪರಿಶೀಲಿಸಲು ಒಂದು ನಿಮಿಷದಲ್ಲಿ ರಿಫ್ರೆಶ್ ಮಾಡಿ.</translation>
@@ -4552,7 +4493,6 @@
 <translation id="8191230140820435481">ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು, ವಿಸ್ತರಣೆಗಳು, ಮತ್ತು ಥೀಮ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="8191453843330043793">V8 ಪ್ರಾಕ್ಸಿ ಪರಿಹಾರಕ</translation>
 <translation id="8195027750202970175">ಡಿಸ್ಕ್‌ನಲ್ಲಿನ ಗಾತ್ರ</translation>
-<translation id="8195739004487400241">ನಿಮ್ಮ ಮುಖಪುಟದ ಪುಟವನ್ನು <ph name="URL" /> ಗೆ ಬದಲಾಯಿಸಲಾಗಿದೆ. ನಿಮ್ಮ ಮುಖಪುಟವನ್ನು ಬದಲಾಯಿಸುವ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿಲು, ಮರುಸ್ಥಾಪಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ.</translation>
 <translation id="8199300056570174101">ನೆಟ್‌ವರ್ಕ್ (ಸೇವೆ) ಮತ್ತು ಸಾಧನದ ಗುಣಲಕ್ಷಣಗಳು</translation>
 <translation id="8200772114523450471">ಪುನರಾರಂಭಿಸು</translation>
 <translation id="8202160505685531999">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಪ್ರೊಫೈಲ್ ಅಪ್‌‌ಡೇಟ್‌ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಮರುನಮೂದಿಸಿ.</translation>
@@ -4596,7 +4536,6 @@
 <translation id="8261378640211443080">ಈ ವಿಸ್ತರಣೆಯನ್ನು <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗಿಲ್ಲ ಮತ್ತು ಇದು ನಿಮಗೆ ಅರಿವಿಲ್ಲದಂತೆ ಸೇರಿಸಿರಬಹುದು.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> ಗಾಗಿ ಖಾತೆಯನ್ನು ಸೇರಿಸು</translation>
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ಅನ್ನು ಈ ಬಿಲ್ಡ್‌ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಿಲ್ಲ.</translation>
 <translation id="8263744495942430914">ನಿಮ್ಮ ಮೌಸ್ ಕರ್ಸರ್ ಅನ್ನು <ph name="FULLSCREEN_ORIGIN" /> ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದೆ.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ಪೂರ್ಣ ಪರದೆಯನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿದೆ.</translation>
 <translation id="8270242299912238708">PDF ಡಾಕ್ಯುಮೆಂಟ್‌‌ಗಳು</translation>
@@ -4701,6 +4640,7 @@
 <translation id="8454288007744638700">ಅಥವಾ, ಹೊಸ ನೆಟ್‌ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ:</translation>
 <translation id="845627346958584683">ಅವಧಿ ಮೀರುವ ಸಮಯ</translation>
 <translation id="8456681095658380701">ಅಮಾನ್ಯವಾದ ಹೆಸರು</translation>
+<translation id="8457451314607652708">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಆಮದು ಮಾಡಿ</translation>
 <translation id="8460336040822756677"><ph name="DEVICE_TYPE" /> ಗೆ Smart Lock ಅನ್ನು ನೀವು ಆಫ್ ಮಾಡಿದರೆ, ನಿಮ್ಮ ಫೋನ್ ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ Chrome 
 ಸಾಧನಗಳನ್ನು ನಿಮಗೆ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನೀವು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ 
 ಟೈಪ್ ಮಾಡಬೇಕಾಗಿರುತ್ತದೆ.</translation>
@@ -4734,7 +4674,6 @@
 <translation id="850875081535031620">ಯಾವುದೇ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್‌ವೇರ್ ಕಂಡುಬಂದಿಲ್ಲ</translation>
 <translation id="8512476990829870887">ಪ್ರಕ್ರಿಯೆ ಕೊನೆಗೊಳಿಸಿ</translation>
 <translation id="851263357009351303">ಚಿತ್ರಗಳನ್ನು ತೋರಿಸಲು <ph name="HOST" /> ಅನ್ನು ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation>
-<translation id="8513191386157529469">ಈ ಬ್ರೌಸರ್‌ ಅನ್ನು "<ph name="CLIENT_NAME" />" ಡೀಬಗ್ ಮಾಡುತ್ತಿದೆ.</translation>
 <translation id="8521475323816527629">ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೇಗವಾಗಿ ಪಡೆದುಕೊಳ್ಳಿ</translation>
 <translation id="8523493869875972733">ಬದಲಾವಣೆಗಳನ್ನು ಇರಿಸು</translation>
 <translation id="8523849605371521713">ಕಾರ್ಯನೀತಿಯಿಂದ ಸೇರಿಸಲಾಗಿದೆ</translation>
@@ -4790,7 +4729,6 @@
 <translation id="8620765578342452535">ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation>
 <translation id="8620790565535071193">ಸ್ಕ್ಯಾನಿಂಗ್ ವಿಫಲವಾಗಿದೆ</translation>
 <translation id="8622877356447980900">ನೀವು ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation>
-<translation id="8623004009673949077">Chrome OS ಕಿಯೋಸ್ಕ್ ಮೋಡ್‌ನಲ್ಲಿ 'kiosk_only' ಮ್ಯಾನಿಫೆಸ್ಟ್‌ ಲಕ್ಷಣದ ಜೊತೆಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ ಸ್ಥಾಪಿಸಿರಬೇಕು.</translation>
 <translation id="8624205858755890468">ಸಂಬಂಧಿತ ಮಾಹಿತಿ, ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಕ್ರಿಯೆಗಳನ್ನು ನಿಮಗೆ ತೋರಿಸಲು ಸಹಾಯಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.</translation>
 <translation id="862542460444371744">&amp;ವಿಸ್ತರಣೆಗಳು</translation>
 <translation id="8627151598708688654">ಮೂಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
@@ -4939,7 +4877,6 @@
 <translation id="882204272221080310">ಹೆಚ್ಚುವರಿ ಸುರಕ್ಷತೆಗಾಗಿ ಫರ್ಮ್‌ವೇರ್ ಅಪ್‌ಡೇಟ್‌‌ ಮಾಡಿ.</translation>
 <translation id="8823514049557262177">ಲಿಂಕ್ ಪ&amp;ಠ್ಯ ನಕಲಿಸಿ</translation>
 <translation id="8824701697284169214">&amp;ಪುಟ ಸೇರಿಸು...</translation>
-<translation id="8827850355924932817">ಸ್ಥಳವನ್ನು ನಿರ್ಧರಿಸಲು ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ ಅನ್ನು ಬಳಸಿ</translation>
 <translation id="8828933418460119530">DNS ಹೆಸರು</translation>
 <translation id="8830796635868321089">ಪ್ರಸ್ತುತ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನವೀಕರಣದ ಪರಿಶೀಲನೆ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ <ph name="PROXY_SETTINGS_LINK_START" />ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು<ph name="PROXY_SETTINGS_LINK_END" /> ಹೊಂದಿಸಿ.</translation>
 <translation id="8834039744648160717"><ph name="USER_EMAIL" /> ಮೂಲಕ ನೆಟ್‌ವರ್ಕ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲಾಗಿದೆ.</translation>
@@ -4971,9 +4908,7 @@
 <translation id="8879284080359814990">ಟ್ಯಾಬ್‌ನಂತೆ &amp;ತೋರಿಸಿ</translation>
 <translation id="8884961208881553398">ಹೊಸ ಸೇವೆಗಳನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="8885197664446363138">Smart Lock ಲಭ್ಯವಿಲ್ಲ</translation>
-<translation id="8885905466771744233">ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಸ್ತರಣೆಗೆ ಖಾಸಗಿ ಕೀಲಿ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಆ ಕೀಲಿಯನ್ನು ಮರುಬಳಕೆ ಮಾಡಿ ಅಥವಾ ಮೊದಲು ಅದನ್ನು ಅಳಿಸಿ.</translation>
 <translation id="8888432776533519951">ಬಣ್ಣ:</translation>
-<translation id="8892992092192084762">ಸ್ಥಾಪಿಸಿದ ಥೀಮ್ "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">ಕ್ಷಮಿಸಿ, <ph name="DEVICE_LABEL" />ಸಾಧನವನ್ನು ಗುರುತಿಸಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="8895454554629927345">ಬುಕ್‌ಮಾರ್ಕ್ ಪಟ್ಟಿ</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4982,13 +4917,12 @@
 <translation id="8899285681604219177">ಬೆಂಬಲವಿರದ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
 <translation id="8899551033019439140">ಪ್ರಿಂಟರ್ ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="8899851313684471736">ಹೊಸ &amp;ವಿಂಡೋದಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation>
-<translation id="8902667442496790482">ಮಾತನಾಡಲು ಆಯ್ಕೆ ಮಾಡಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
+<translation id="8902667442496790482">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="8903921497873541725">ಝೂಮ್ ಇನ್</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">ಎಚ್ಚರಿಕೆ: ನೀವು ಈ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಈ ವಿಸ್ತರಣಾ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಮಿತಿಗೊಳಿಸುವಂತಹ --ಕ್ರಮ ಅಗತ್ಯವಿರುವ ಫ್ಲ್ಯಾಗ್‌ನ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿರುವಿರಿ. ಆದಾಗ್ಯೂ, ಇತರ ಸಾಧನಗಳು ಈ ಫ್ಲ್ಯಾ‌ಗ್ ಅನ್ನು ಬೆಂಬಲಿಸದಿರಬಹುದು ಅಥವಾ ಸಕ್ರಿಯಗೊಳಿಸದಿರಬಹುದು. ಈ ಸಾಧನಗಳಲ್ಲಿ, ಈ ವಿಸ್ತರಣೆಯು ಹೀಗೆ ಮಾಡಬಹುದು:</translation>
 <translation id="8910146161325739742">ನಿಮ್ಮ ಪರದೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಿ</translation>
 <translation id="8910222113987937043">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮಾಡಲಾಗುವ ಬದಲಾವಣೆಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ನಿಮ್ಮ Google ಖಾತೆಗೆ ಸಿಂಕ್‌ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿಯೇ ಇರುತ್ತದೆ ಮತ್ತು <ph name="BEGIN_LINK" />Google ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌<ph name="END_LINK" />ನಲ್ಲಿ ನಿರ್ವಹಿಸಬಹುದಾಗಿದೆ.</translation>
-<translation id="8911079125461595075">Google <ph name="EXTENSION_NAME" /> ಅನ್ನು ದೋಷಪೂರಿತವೆಂದು ಫ್ಲ್ಯಾಗ್ ಮಾಡಿದೆ ಹಾಗೂ ಸ್ಥಾಪನೆಯನ್ನು ತಡೆಗಟ್ಟಲಾಗಿದೆ.</translation>
 <translation id="8912793549644936705">ಎಳೆದಿರುವುದು</translation>
 <translation id="8915370057835397490">ಸಲಹೆಯನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8916476537757519021">ಅದೃಶ್ಯ ಉಪಫ್ರೇಮ್: <ph name="SUBFRAME_SITE" /></translation>
@@ -5094,7 +5028,6 @@
 <translation id="9074739597929991885">ಬ್ಲೂಟೂತ್‌</translation>
 <translation id="9074836595010225693">USB ಮೌಸ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation>
 <translation id="9076523132036239772">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಇಮೇಲ್ ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗಲಿಲ್ಲ. ಮೊದಲು ಯಾವುದಾದರೂ ನೆಟ್‌ವರ್ಕ್‌ ಜೊತೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
-<translation id="907841381057066561">ಪ್ಯಾಕೇಜಿಂಗ್ ಸಮಯದಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಜಿಪ್ ಫೈಲ್ ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="9084064520949870008">ವಿಂಡೊ ಅಂತೆ ತೆರೆಯಿರಿ</translation>
 <translation id="9088234649737575428">ಎಂಟರ್‌ಪ್ರೈಸ್ ನೀತಿಗಳಿಂದ <ph name="PLUGIN_NAME" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="9088917181875854783">ದಯವಿಟ್ಟು "<ph name="DEVICE_NAME" />" ರಲ್ಲಿ ತೋರಿಸಿರುವಂತೆ ಈ ಪಾಸ್‌ಕೀಯನ್ನು ಖಚಿತಪಡಿಸಿ:</translation>
@@ -5186,11 +5119,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="939736085109172342">ಹೊಸ ಫೋಲ್ಡರ್</translation>
-<translation id="941543339607623937">ಅಮಾನ್ಯ ಖಾಸಗಿ ಕೀಲಿ.</translation>
 <translation id="942532530371314860">Chrome ಟ್ಯಾಬ್ ಮತ್ತು ಆಡಿಯೋವನ್ನು <ph name="APP_NAME" /> ಹಂಚಿಕೊಳ್ಳುತ್ತಿದೆ.</translation>
 <translation id="942954117721265519">ಈ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಯಾವುದೇ ಚಿತ್ರಗಳಿಲ್ಲ.</translation>
 <translation id="945522503751344254">ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ</translation>
-<translation id="951981865514037445">ನಿಮ್ಮ ಸಾಧನಗಳ ಸ್ಥಾನವನ್ನು ಬಳಸಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ.</translation>
 <translation id="952992212772159698">ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ</translation>
 <translation id="9580706199804957">Google ಸೇವೆಗಳ ಮೂಲಕ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation>
 <translation id="958515377357646513">ಮುಂದಕ್ಕೆ ಹೋಗಲು ಸ್ಪರ್ಶಿಸಿ.</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 95f5fd4..f60125c5 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">암호화만</translation>
 <translation id="1039337018183941703">잘못되었거나 손상된 파일입니다.</translation>
 <translation id="1042174272890264476">또한 컴퓨터에는 <ph name="SHORT_PRODUCT_NAME" /> RLZ 라이브러리가 내장되어 있습니다. RLZ는 고유하지 않고 개인 식별이 불가능한 태그를 할당하여 특정 홍보 캠페인을 통한 검색 및 <ph name="SHORT_PRODUCT_NAME" /> 사용 실태를 측정합니다. 이러한 라벨은 <ph name="PRODUCT_NAME" />의 Google 검색어에 표시되기도 합니다.</translation>
-<translation id="1042574203789536285"><ph name="URL" />에서 내 기기에 대용량 데이터를 영구적으로 저장하려고 합니다.</translation>
 <translation id="1046059554679513793">이미 사용 중인 이름입니다.</translation>
 <translation id="1047431265488717055">링크 텍스트 복사(&amp;X)</translation>
 <translation id="1047726139967079566">현재 페이지를 북마크에 추가...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">기본 검색엔진을 복원하시겠습니까?</translation>
 <translation id="1177863135347784049">맞춤</translation>
 <translation id="1178581264944972037">일시중지</translation>
-<translation id="1179803038870941185"><ph name="URL" />에서 MIDI 기기를 완전히 제어하려고 합니다.</translation>
 <translation id="1181037720776840403">삭제</translation>
 <translation id="1183237619868651138">로컬 캐시에 <ph name="EXTERNAL_CRX_FILE" />을(를) 설치할 수 없습니다.</translation>
 <translation id="1185924365081634987"><ph name="GUEST_SIGNIN_LINK_START" />손님으로 로그인<ph name="GUEST_SIGNIN_LINK_END" />하여 네트워크 오류를 수정할 수도 있습니다.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{컴퓨터에 저장된 파일 1개에 액세스}other{컴퓨터에 저장된 파일 #개에 액세스}}</translation>
 <translation id="1195076408729068893">Smart Lock을 시작하려면 비밀번호를 입력하세요. 다음번에는 휴대전화를 사용하여 <ph name="DEVICE_TYPE" />을(를) 잠금 해제할 수 있습니다.</translation>
 <translation id="1195447618553298278">알 수 없는 오류</translation>
-<translation id="1196338895211115272">비공개 키를 내보내지 못했습니다.</translation>
 <translation id="119738088725604856">스크린샷 창</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> 프린터의 인쇄 가능 매수를 검색하는 중에 오류가 발생했습니다. 이 프린터를 <ph name="CLOUD_PRINT_NAME" />(으)로 등록할 수 없습니다.</translation>
 <translation id="1198271701881992799">시작하기</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">관리자가 이 설정에 대해 특정 값을 추천합니다.</translation>
 <translation id="1225177025209879837">요청을 처리하는 중...</translation>
 <translation id="1225211345201532184">서가 항목 5</translation>
-<translation id="1225404570112441414">이 사이트를 언제든지 사용할 수 있도록 실행기에 추가합니다.</translation>
 <translation id="1227507814927581609">'<ph name="DEVICE_NAME" />'에 연결하는 동안 인증에 실패했습니다.</translation>
 <translation id="1230807973377071856">시스템 메뉴</translation>
 <translation id="1232569758102978740">제목 없음</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML 파일 북마크하기</translation>
 <translation id="1303671224831497365">블루투스 기기를 찾을 수 없습니다.</translation>
 <translation id="1306606229401759371">설정 변경</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> 링크를 통해 어느 기기에서나 비밀번호에 액세스할 수 있습니다.</translation>
 <translation id="1307559529304613120">시스템이 이 기기에 대한 장기 API 액세스 토큰을 저장하지 못했습니다.</translation>
 <translation id="1313405956111467313">자동 프록시 설정</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">검색</translation>
 <translation id="1386387014181100145">안녕하세요.</translation>
 <translation id="138784436342154190">기본 시작 페이지를 복원하시겠습니까?</translation>
-<translation id="1389297115360905376">이 프로그램은 <ph name="CHROME_WEB_STORE" />에서만 추가할 수 있습니다.</translation>
 <translation id="1390548061267426325">일반 탭으로 열기</translation>
-<translation id="1391807639023934267">페이지가 빠르게 로드됩니다.</translation>
 <translation id="1393283411312835250">태양과 구름</translation>
 <translation id="1395262318152388157">탐색 슬라이더</translation>
 <translation id="1395730723686586365">업데이터 시작됨</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">개발 중인 기능을 포함하는 <ph name="PRODUCT_NAME" />의 불안정한 버전으로 업데이트합니다. 기기가 비정상 종료되거나 예기치 않은 버그가 발생할 수 있습니다. 주의해서 진행하시기 바랍니다.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" />(확장 프로그램 ID '<ph name="EXTENSION_ID" />')은(는) 이 세션 유형에서 허용되지 않습니다.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">임의의 RSA 비공개 키를 생성하지 못했습니다.</translation>
 <translation id="1420834118113404499">미디어 라이선스</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />을(를) 통해 페어링 허용</translation>
 <translation id="1426410128494586442">예</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">오디오 주소 복사(&amp;O)</translation>
 <translation id="1465827627707997754">피자 조각</translation>
 <translation id="1467432559032391204">왼쪽</translation>
-<translation id="1467999917853307373"><ph name="URL" />에서 내 기기에 데이터를 영구적으로 저장하려고 합니다.</translation>
-<translation id="1470719357688513792">새 쿠키 설정은 페이지를 새로고침한 다음에 적용됩니다.</translation>
 <translation id="1470811252759861213">모든 컴퓨터에서 확장 프로그램을 사용하려면 <ph name="SIGN_IN_LINK" />에 로그인하세요.</translation>
 <translation id="1474339897586437869">'<ph name="FILENAME" />'이(가) 업로드되지 않았습니다. Google 드라이브에 충분한 여유 공간이 없습니다.</translation>
 <translation id="1475502736924165259">모든 기타 카테고리에 맞지 않는 인증서가 등록되어 있습니다.</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">큰 마우스 커서</translation>
 <translation id="1543284117603151572">Edge에서 가져옴</translation>
 <translation id="1545177026077493356">자동 키오스크 모드</translation>
+<translation id="1545775234664667895">테마('<ph name="THEME_NAME" />')를 설치했습니다.</translation>
 <translation id="1545786162090505744">URL(검색어 자리에 % 입력)</translation>
 <translation id="1546280085599573572">홈 버튼을 클릭하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="1547572086206517271">새로고침 필요</translation>
@@ -444,11 +435,9 @@
     관리 대상 사용자가 방문한 웹사이트 <ph name="BEGIN_BOLD" />검토<ph name="END_BOLD" />
     기타 설정 <ph name="BEGIN_BOLD" />관리<ph name="END_BOLD" /></translation>
 <translation id="1648943974594387137">로그인 세부정보의 유효기간이 만료되었습니다.</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" />줄이 표시되지 않음&gt;</translation>
 <translation id="1650371550981945235">입력 옵션 표시</translation>
 <translation id="1650709179466243265">www.와 .com을 추가하여 주소 열기</translation>
 <translation id="1651008383952180276">동일한 암호를 두 번 입력해야 합니다.</translation>
-<translation id="1652972346408808053">비밀번호가 저장되었습니다. <ph name="SAVED_PASSWORDS_LINK" /> 링크를 통해 어느 기기에서나 비밀번호에 액세스할 수 있습니다.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google 클라우드 프린트에 프린터를 추가하여 어디서나 인쇄하세요.}other{Google 클라우드 프린트에 프린터 #개를 추가하여 어디서나 인쇄하세요.}}</translation>
 <translation id="1657406563541664238">사용 통계 및 비정상 종료 보고서가 Google로 자동 전송되게 하여 <ph name="PRODUCT_NAME" /> 개선에 도움 주기</translation>
 <translation id="1658424621194652532">마이크에 액세스하는 페이지입니다.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">쿠키 계속 차단</translation>
 <translation id="204622017488417136">기기가 이전에 설치된 버전의 Chrome으로 돌아갑니다. 사용자 계정과 로컬 데이터가 모두 삭제됩니다. 이 작업은 취소할 수 없습니다.</translation>
 <translation id="2048182445208425546">네트워크 트래픽에 액세스</translation>
-<translation id="2049137146490122801">관리자가 시스템의 로컬 파일에 대한 액세스를 차단했습니다.</translation>
 <translation id="204914487372604757">바로가기 만들기</translation>
 <translation id="2050339315714019657">세로 방향</translation>
 <translation id="2053312383184521053">유휴 상태 데이터</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">아직 로드되지 않음</translation>
 <translation id="2107494551712864447">지문 추가</translation>
-<translation id="2111843886872897694">앱은 영향을 미치는 호스트에서 제공되어야 합니다.</translation>
 <translation id="2112877397266219826">설정이 필요하면 터치 컨트롤러를 사용하도록 설정하세요.</translation>
 <translation id="21133533946938348">탭 고정</translation>
 <translation id="2113479184312716848">파일 열기(&amp;F)...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">어떤 문제인지 알려주세요.</translation>
 <translation id="2229161054156947610">1시간 이상 남음</translation>
 <translation id="222931766245975952">파일이 잘림</translation>
-<translation id="222949136907494149"><ph name="URL" />에서 내 컴퓨터의 위치에 액세스하려고 합니다.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">'<ph name="FOLDER_NAME" />' 폴더를 생성할 수 없습니다. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">클릭하여 오늘의 기념일 로고 보기</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">마이크 액세스 항상 차단</translation>
 <translation id="2367972762794486313">앱 표시</translation>
 <translation id="2371076942591664043">완료되면 열기(&amp;D)</translation>
-<translation id="237336063998926520">IP 주소를 사용하여 위치 파악</translation>
 <translation id="2377319039870049694">목록 보기로 전환</translation>
 <translation id="2377667304966270281">하드 결함</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" />개의 파일이 선택됨</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" />에서 <ph name="VOLUME_NAME" />에 있는 파일을 복사하려고 합니다.</translation>
 <translation id="2462724976360937186">인증 기관 키 ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> 추가됨</translation>
-<translation id="246335896104539386">북마크 가져오기</translation>
 <translation id="2464089476039395325">HTTP 프록시</translation>
 <translation id="2468902267404883140">휴대전화에 연결할 수 없습니다. 호환 가능한 Android 휴대전화를 사용 중인지, 휴대전화의 전원이 켜져 있는지, 손에 닿는 거리에 있는지 확인하세요. &lt;a&gt;자세히 알아보기&lt;/a&gt;</translation>
 <translation id="2470702053775288986">지원되지 않는 확장 프로그램이 사용 중지됨</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">제거</translation>
 <translation id="2487067538648443797">새 북마크 추가</translation>
 <translation id="248861575772995840">휴대전화를 찾을 수 없습니다. <ph name="DEVICE_TYPE" />의 블루투스가 사용 설정되어 있는지 확인하세요. &lt;a&gt;자세히 알아보기&lt;/a&gt;</translation>
-<translation id="2489316678672211764">플러그인(<ph name="PLUGIN_NAME" />)이 응답하지 않습니다.</translation>
 <translation id="2489428929217601177">지난 1일</translation>
 <translation id="2489918096470125693">폴더 추가(&amp;F)...</translation>
 <translation id="249113932447298600">죄송합니다. 현재 이 기기(<ph name="DEVICE_LABEL" />)는 지원되지 않습니다.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">축하합니다. '<ph name="NAME" />' 데이터 서비스가 활성화되어 사용할 수 있습니다.</translation>
 <translation id="2566124945717127842">Powerwash는 <ph name="IDS_SHORT_PRODUCT_NAME" /> 기기를 재설정하여 새것처럼 만듭니다.</translation>
 <translation id="2568774940984945469">정보 표시줄 컨테이너</translation>
-<translation id="2570000010887652771">데이터를 절약했습니다.</translation>
 <translation id="257088987046510401">테마</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" />에 대한 읽기 전용 액세스가 허용되었습니다.</translation>
 <translation id="2573269395582837871">그림과 이름 선택</translation>
 <translation id="2575247648642144396">현재 페이지에서 확장 프로그램을 실행할 수 있으면 아이콘이 표시됩니다. 아이콘을 클릭하거나 <ph name="EXTENSION_SHORTCUT" />을(를) 눌러 확장 프로그램을 사용합니다.</translation>
 <translation id="2575268751393592580">휴대전화를 찾을 수 없습니다. <ph name="DEVICE_TYPE" />이(가) Wi-Fi 또는 모바일 네트워크에 연결되어 있는지 확인하세요. &lt;a&gt;자세히 알아보기&lt;/a&gt;</translation>
-<translation id="2576842806987913196">동일한 이름의 CRX 파일이 이미 있습니다.</translation>
 <translation id="257779572837908839">Chromebox 화상회의 시스템으로 설정</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />볼륨을 마운트 해제할 수 없습니다<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">인증 기관(CA) 인증서를 삭제하면 브라우저가 해당 CA에서 발급된 인증서를 더 이상 신뢰하지 않습니다.</translation>
 <translation id="2653659639078652383">제출</translation>
 <translation id="265390580714150011">필드 값</translation>
-<translation id="2654286334048437383">북마크 내보내기</translation>
 <translation id="2655386581175833247">사용자 인증서:</translation>
 <translation id="2660779039299703961">이벤트</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">디렉토리별 미디어 갤러리 추가</translation>
 <translation id="2908789530129661844">화면 축소</translation>
 <translation id="2910318910161511225">네트워크에 연결하고 다시 시도해 주세요</translation>
-<translation id="2912905526406334195"><ph name="HOST" />에서 사용자의 마이크를 사용하려고 합니다.</translation>
 <translation id="2913331724188855103">사이트에서 쿠키 데이터를 저장하고 읽도록 허용(권장)</translation>
 <translation id="2916073183900451334">웹페이지에서 Tab 키를 누르면 링크뿐 아니라 양식 입력란도 강조표시됩니다.</translation>
 <translation id="2916745397441987255">확장 프로그램 검색</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">창 올리기</translation>
 <translation id="3053013834507634016">인증서 키 사용</translation>
 <translation id="3057861065630527966">사진 및 동영상을 백업합니다.</translation>
-<translation id="3060379269883947824">음성 안내 사용</translation>
+<translation id="3060379269883947824">텍스트 읽어주기 사용</translation>
 <translation id="3061707000357573562">서비스 패치</translation>
 <translation id="3064410671692449875">데이터 부족</translation>
 <translation id="3065041951436100775">탭 사용 중지 관련 피드백</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">듣는 중...</translation>
 <translation id="3141917231319778873">기기(<ph name="DEVICE_NAME" />)에서 지원하지 않는 요청입니다.</translation>
 <translation id="3144126448740580210">완료</translation>
-<translation id="3144135466825225871">crx 파일을 대체하지 못했습니다. 파일을 사용 중인지 확인하세요.</translation>
 <translation id="3144647712221361880">다음으로 링크 열기</translation>
 <translation id="3149510190863420837">Chrome 앱</translation>
 <translation id="3150927491400159470">강력 새로고침</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">항상 모든 사이트에서 실행</translation>
 <translation id="3312424061798279731">사용 설정된 언어</translation>
 <translation id="3312903956926554846">데스크톱에 설치</translation>
-<translation id="3313473140726597081">시작 페이지가 <ph name="URL" />(으)로 변경되었습니다. 시작 페이지를 변경하는 확장 프로그램을 사용하지 않으려면 복원을 클릭하세요.</translation>
 <translation id="3313590242757056087">관리 대상 사용자가 볼 수 있는 웹사이트를 설정하려면
     <ph name="MANAGEMENT_URL" /> 페이지에 방문하여 제한사항 및 설정을 지정할 수 있습니다.
     기본 설정을 변경하지 않으면 <ph name="USER_DISPLAY_NAME" />님이
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">앱 정보</translation>
 <translation id="3335947283844343239">닫은 탭 다시 열기</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" />이(가) 오래되어 차단되었습니다.</translation>
 <translation id="3340978935015468852">설정</translation>
 <translation id="3341703758641437857">파일 URL에 대한 액세스 허용</translation>
 <translation id="3342361181740736773"><ph name="TRIGGERING_EXTENSION_NAME" />에서 이 확장 프로그램을 제거하려 합니다.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">북마크 추가됨</translation>
 <translation id="3389312115541230716">작업 표시줄의 <ph name="SMALL_PRODUCT_LOGO" /> 아이콘을 마우스 오른쪽 버튼으로 클릭</translation>
 <translation id="3391716558283801616">탭 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" />에서 사용자의 카메라와 마이크를 사용하려고 합니다.</translation>
 <translation id="3396331542604645348">선택한 프린터가 사용할 수 없거나 올바르게 설치되어 있지 않습니다. 프린터를 확인하거나 다른 프린터를 선택해 보세요.</translation>
 <translation id="3399432415385675819">알림이 사용 중지됩니다.</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome은 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다.</translation>
 <translation id="3551320343578183772">탭 닫기</translation>
 <translation id="3552780134252864554">종료 시 삭제됨</translation>
-<translation id="355298399003313926"><ph name="URL" />에서 접근성 이벤트에 응답하려고 합니다.</translation>
 <translation id="3555812735919707620">확장 프로그램 삭제</translation>
 <translation id="3556000484321257665">검색엔진이 <ph name="URL" />(으)로 변경되었습니다.</translation>
-<translation id="3561217442734750519">비공개 키 입력 값은 유효한 경로여야 합니다.</translation>
 <translation id="3563432852173030730">키오스크 애플리케이션을 다운로드할 수 없습니다.</translation>
 <translation id="3564334271939054422">사용 중인 Wi-Fi 네트워크(<ph name="NETWORK_ID" />)에서 로그인 페이지 방문을 요청할 수 있습니다.</translation>
 <translation id="3564708465992574908">확대/축소 수준</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">인증서 이름 제약조건</translation>
 <translation id="3596235046596950091">클라우드 서비스 사용</translation>
 <translation id="3599863153486145794">로그인된 모든 기기에서 방문 기록을 지웁니다. Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 사용 기록이 다른 형식으로 남아 있을 수도 있습니다.</translation>
-<translation id="3600456501114769456">관리자가 사용자 기기의 로컬 파일에 대한 액세스를 차단했습니다.</translation>
 <translation id="3600792891314830896">소리를 재생하는 사이트 음소거</translation>
 <translation id="3603177256297531067">페이지를 번역할 수 없음</translation>
 <translation id="3603533104205588786">별표를 클릭하여 페이지를 북마크에 추가할 수 있습니다.</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">스크린샷 캡쳐 사용 중지됨</translation>
 <translation id="3625870480639975468">확대/축소 재설정</translation>
 <translation id="3626281679859535460">밝기</translation>
-<translation id="3627052133907344175">확장 프로그램은 최소 버전 "<ph name="IMPORT_VERSION" />"의 "<ph name="IMPORT_NAME" />"을(를) 요구하지만 "<ph name="INSTALLED_VERSION" />" 버전만 설치되었습니다.</translation>
 <translation id="3627320433825461852">1분 미만 남음</translation>
 <translation id="3627588569887975815">시크릿 창에서 링크 열기(&amp;G)</translation>
 <translation id="3627671146180677314">Netscape Certificate Renewal Time</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">언어 설정</translation>
 <translation id="3668823961463113931">핸들러</translation>
 <translation id="3670229581627177274">블루투스 켜기</translation>
-<translation id="3672159315667503033"><ph name="URL" />에서 로컬 컴퓨터에 대용량 데이터를 영구 저장하려고 합니다.</translation>
 <translation id="3672681487849735243">하드웨어에서 문제가 발견되었습니다.</translation>
 <translation id="367645871420407123">루트 비밀번호를 기본 테스트 이미지 값으로 설정하려면 비워두세요.</translation>
 <translation id="3678156199662914018">확장 프로그램: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">오프라인 상태입니다.</translation>
 <translation id="3788401245189148511">이전에 가능했던 대상:</translation>
 <translation id="3789841737615482174">설치</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" />은(는) 데스크톱에서만 작동합니다.</translation>
 <translation id="379082410132524484">카드가 만료됨</translation>
 <translation id="3792890930871100565">프린터 연결 해제</translation>
 <translation id="379422718204375917">Smart Lock을 사용하여 계정에 로그인</translation>
-<translation id="3794595850995182458">페이지 나가기</translation>
 <translation id="3796648294839530037">자주 이용하는 네트워크:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" />에서 '<ph name="SEARCH_TERMS" />' 검색(&amp;S)</translation>
 <translation id="3798325802885154040">탭하여 클릭을 사용/사용 중지</translation>
@@ -1983,7 +1951,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> 사용</translation>
 <translation id="3981760180856053153">잘못된 저장 유형을 입력했습니다.</translation>
 <translation id="3983586614702900908">알 수 없는 공급업체의 기기</translation>
-<translation id="3984413272403535372">확장 프로그램에 서명하는 중에 오류가 발생했습니다.</translation>
 <translation id="3987938432087324095">죄송합니다. 인식하지 못했습니다.</translation>
 <translation id="3988996860813292272">시간대 선택</translation>
 <translation id="3989635538409502728">로그아웃</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Chromebook에 Google Play의 앱 및 게임을 설치합니다. &lt;a target="_blank" href="<ph name="URL" />"&gt;자세히 알아보기&lt;/a&gt;</translation>
 <translation id="4088095054444612037">그룹 공유 승인</translation>
 <translation id="4090103403438682346">인증 액세스 서비스 사용</translation>
-<translation id="4090404313667273475">이 페이지에 일부 요소를 표시하려면 <ph name="PLUGIN_NAME" />이(가) 필요합니다.</translation>
 <translation id="4090535558450035482">(관리되는 확장 프로그램으로 삭제할 수 없습니다.)</translation>
 <translation id="4091434297613116013">장</translation>
 <translation id="4093955363990068916">로컬 파일:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">이제 <ph name="PRODUCT_NAME" />에서 비밀번호를 동기화할 수 있습니다.</translation>
 <translation id="4715553623069266137">매우 짧게(0.8초)</translation>
 <translation id="4716483597559580346">파워워시를 사용하여 보안 강화</translation>
-<translation id="471800408830181311">비공개 키를 출력하지 못했습니다.</translation>
 <translation id="4720113199587244118">기기 추가</translation>
 <translation id="4720185134442950733">모바일 데이터 네트워크</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" />에서 내 화면을 공유하는 중입니다.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">강력</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" />에서 '<ph name="EXTENSION_NAME" />' 확장 프로그램과 통신하려고 합니다.</translation>
 <translation id="4918086044614829423">수락</translation>
-<translation id="4919810557098212913"><ph name="HOST" />에서 사용자의 카메라를 사용하려고 합니다.</translation>
 <translation id="4920887663447894854">이 페이지에서 사용자 위치 추적이 차단된 사이트는 다음과 같습니다.</translation>
 <translation id="492299503953721473">Android 앱 삭제</translation>
 <translation id="4923279099980110923">네, 돕고 싶습니다.</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">확장 프로그램에 멀웨어가 포함되어 있습니다.</translation>
 <translation id="498294082491145744">쿠키, 자바스크립트, 플러그인, 위치 정보, 마이크, 카메라 등과 같은 기능에 대한 웹사이트의 액세스 권한을 제어하는 설정을 변경합니다.</translation>
 <translation id="4988526792673242964">페이지</translation>
-<translation id="4988792151665380515">공개 키를 내보내지 못했습니다.</translation>
 <translation id="49896407730300355">반시계 방향으로 회전(&amp;O)</translation>
 <translation id="4989966318180235467">백그라운드 페이지 검사(&amp;B)</translation>
 <translation id="4990343175649730969">Chrome 정리도구 다운로드</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">이 메시지를 다시 표시하지 않음</translation>
 <translation id="5027550639139316293">이메일 인증서</translation>
 <translation id="5027562294707732951">확장 프로그램 추가</translation>
-<translation id="5028012205542821824">설치하도록 설정되어 있지 않습니다.</translation>
 <translation id="5029568752722684782">사본 지우기</translation>
 <translation id="5030338702439866405">발급 기관</translation>
 <translation id="5036662165765606524">사이트에서 여러 파일을 자동으로 다운로드하도록 허용하지 않음</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">오류가 발생했습니다.</translation>
 <translation id="5094721898978802975">협력 중인 기본 애플리케이션과 통신</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' 네트워크에 연결하지 못했습니다: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">패키지할 디렉토리에 대한 절대 경로를 찾을 수 없습니다.</translation>
 <translation id="5099354524039520280">위</translation>
 <translation id="5100114659116077956">최신 기능을 사용하려면 Chromebox를 업데이트해야 합니다.</translation>
 <translation id="5101042277149003567">모든 북마크 열기</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">폴더 열기</translation>
 <translation id="5171045022955879922">검색 또는 URL 입력</translation>
 <translation id="5171343362375269016">교체된 메모리</translation>
-<translation id="5175870427301879686"><ph name="URL" />에서 로컬 컴퓨터에 데이터를 영구 저장하려고 합니다.</translation>
 <translation id="5177479852722101802">카메라 및 마이크 액세스 계속 차단</translation>
 <translation id="5177526793333269655">미리보기 이미지 보기</translation>
 <translation id="5177549709747445269">모바일 데이터 사용 중</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">이 기기 포맷</translation>
 <translation id="5293170712604732402">설정을 기본값으로 복원</translation>
 <translation id="5298219193514155779">테마 제작자</translation>
-<translation id="5298363578196989456">중요한 확장 프로그램 '<ph name="IMPORT_NAME" />'은 공유 모듈이 아니므로 가져올 수 없습니다.</translation>
 <translation id="5299109548848736476">추적 안함</translation>
 <translation id="5299682071747318445">동기화 암호로 모든 데이터 암호화됨</translation>
 <translation id="5300589172476337783">표시</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">'<ph name="CHROME_EXTENSION_NAME" />'에서 페어링하려고 함</translation>
 <translation id="5332624210073556029">표준시간대:</translation>
 <translation id="5334142896108694079">스크립트 캐시</translation>
-<translation id="533433379391851622">'<ph name="EXPECTED_VERSION" />' 버전을 예상했으나 '<ph name="NEW_ID" />' 버전이 표시되었습니다.</translation>
 <translation id="5334844597069022743">소스 보기</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google 드라이브<ph name="END_LINK" />에 파일 <ph name="FILE_COUNT" />개 백업 중</translation>
 <translation id="5337771866151525739">제3자에 의해 설치되었습니다.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">사이트에서 소리를 재생하도록 허용</translation>
 <translation id="5390284375844109566">색인화된 데이터베이스</translation>
 <translation id="5390743329570580756">다음에 대해 보내기:</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" />의 <ph name="PEPPER_PLUGIN_NAME" />이(가) 사용자 컴퓨터에 액세스하려고 합니다.</translation>
 <translation id="5397794290049113714">나</translation>
 <translation id="5398572795982417028">페이지가 범위를 벗어난 경우 참고하세요. 한도는 <ph name="MAXIMUM_PAGE" />페이지입니다.</translation>
 <translation id="5398772614898833570">광고 차단됨</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">모든 탭 복원</translation>
 <translation id="5486261815000869482">비밀번호 확인</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />에서 <ph name="TAB_NAME" />와(과) 내 화면을 공유 중입니다.</translation>
-<translation id="5486326529110362464">비공개 키 입력 값이 있어야 합니다.</translation>
 <translation id="5486561344817861625">브라우저 다시 시작 시뮬레이션</translation>
 <translation id="5487521232677179737">인터넷 사용 기록 삭제</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />'이(가) 복사됨</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" />MB의 모바일 데이터를 사용하여 업데이트를 다운로드합니다. 계속하시겠습니까?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">기타 검색엔진</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" />의 <ph name="PEPPER_PLUGIN_NAME" />이(가) 사용자 기기에 액세스하려고 합니다.</translation>
 <translation id="5608580678041221894">다음 키를 탭하여 자르기 영역을 조정하거나 이동하세요.</translation>
 <translation id="5609231933459083978">애플리케이션이 잘못된 것 같습니다.</translation>
 <translation id="5610038042047936818">카메라 모드로 전환</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">번역됨</translation>
 <translation id="5991049340509704927">확대</translation>
 <translation id="5993332328670040093">더 이상 데이터 사용이 측정되지 않습니다.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" />에서 자동 업데이트를 수행하지 못할 수 있습니다.</translation>
 <translation id="600424552813877586">잘못된 애플리케이션</translation>
 <translation id="6005695835120147974">미디어 라우터</translation>
 <translation id="6006484371116297560">기본</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">클라우드 백업</translation>
 <translation id="6040143037577758943">닫기</translation>
 <translation id="6040852767465482106">익명 ID</translation>
+<translation id="6041155700700864984">전체화면 종료</translation>
 <translation id="604124094241169006">자동</translation>
 <translation id="6042169520002885235">프린터 제조업체 및 모델 선택</translation>
 <translation id="6042308850641462728">더보기</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">일반 새로고침</translation>
 <translation id="6059652578941944813">인증서 계층</translation>
 <translation id="6059925163896151826">USB 기기</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" />이(가) 다운되었습니다.</translation>
 <translation id="6064217302520318294">화면 잠금</translation>
 <translation id="6065289257230303064">인증서 대상 디렉토리 속성</translation>
 <translation id="6068338049763724728">원격 등록 사용</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">화면 해상도를 조정할 수 있습니다.</translation>
 <translation id="6238923052227198598">잠금 화면에 최근 메모 보관</translation>
 <translation id="6239558157302047471">프레임 새로고침(&amp;F)</translation>
-<translation id="624022915548992686">페이지 나가기</translation>
 <translation id="6241530762627360640">시스템과 페어링된 블루투스 기기 관련 정보에 액세스하고 근처의 블루투스 기기를 검색합니다.</translation>
 <translation id="6243774244933267674">서버를 사용할 수 없음</translation>
 <translation id="6246413617632217567">관리 대상 사용자를 가져오지 못했습니다. 하드 드라이브 공간 및 권한을 확인한 후 다시 시도해 주세요.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">알려지지 않은 네트워크 오류</translation>
 <translation id="6313641880021325787">VR 종료</translation>
 <translation id="6314819609899340042">이 <ph name="IDS_SHORT_PRODUCT_NAME" /> 기기에서 디버깅 기능을 사용 설정했습니다.</translation>
-<translation id="6315343732431721770">시작 페이지가 <ph name="URL" />을(를) 포함하도록 변경되었습니다. 시작 페이지를 변경하는 확장 프로그램을 사용하지 않으려면 복원을 클릭하세요.</translation>
 <translation id="6315493146179903667">앞으로 모두 가져오기</translation>
 <translation id="6316806695097060329"><ph name="SHORT_PRODUCT_NAME" /> 기기는 최상의 웹 환경을 제공하도록 설계되었습니다.</translation>
 <translation id="6317318380444133405">프린터가 더 이상 지원되지 않습니다.</translation>
 <translation id="6317369057005134371">애플리케이션 창을 기다리는 중...</translation>
 <translation id="6318407754858604988">다운로드가 시작되었습니다</translation>
-<translation id="6322279351188361895">비공개 키를 읽지 못했습니다.</translation>
 <translation id="6325191661371220117">자동 실행 사용 안함</translation>
 <translation id="6326175484149238433">Chrome에서 삭제</translation>
 <translation id="6326855256003666642">프로그램 사용자 수</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">동기화할 대상 선택</translation>
 <translation id="6333064448949140209">디버깅을 위해 파일이 Google로 전송됩니다.</translation>
 <translation id="6333834492048057036">검색을 위해 주소 표시줄로 이동</translation>
-<translation id="6336907568130557310">내보낸 파일을 볼 수 있는 모든 사용자에게 비밀번호가 표시됩니다. 다른 사람과 파일을 공유하지 말고 가져온 후에는 삭제하세요.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" />의 새 프로필을 만드세요.</translation>
 <translation id="6340017061976355871">서버에 연결할 수 없습니다. 네트워크 연결을 확인하고 다시 시도해 주세요. 문제가 지속되면 Chromebook을 다시 시작하세요.</translation>
 <translation id="6340071272923955280">인터넷 인쇄 프로토콜(IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">사이트에서 쿠키 데이터를 저장하고 읽을 수 있음</translation>
 <translation id="6388771388956873507">기기에서 지문 센서를 찾아 손가락으로 터치합니다.</translation>
 <translation id="6390799748543157332">이 창에서 보는 페이지는 브라우저 기록에 나타나지 않으며 열려 있는 모든 손님 창을 닫은 후에도 컴퓨터에 쿠키와 같은 다른 흔적을 남기지 않습니다. 하지만 다운로드한 파일은 모두 저장됩니다.</translation>
-<translation id="6391538222494443604">입력 디렉토리가 있어야 합니다.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />시스템 정보<ph name="END_LINK1" /> 및 <ph name="BEGIN_LINK2" />통계<ph name="END_LINK2" /> 전송</translation>
 <translation id="6397363302884558537">말하기 중지</translation>
 <translation id="6397592254427394018">모든 북마크를 시크릿 창에서 열기(&amp;I)</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">자바스크립트 차단 관리...</translation>
 <translation id="6459488832681039634">선택 부분으로 찾기</translation>
 <translation id="6460601847208524483">다음 찾기</translation>
-<translation id="6462080265650314920">앱은 '<ph name="CONTENT_TYPE" />' 콘텐츠 유형으로 제공되어야 합니다.</translation>
 <translation id="6462082050341971451">아직 온라인이세요?</translation>
 <translation id="6463795194797719782">편집(&amp;E)</translation>
 <translation id="6466988389784393586">모든 북마크 열기(&amp;O)</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" />(USB)</translation>
 <translation id="667517062706956822">Google에서 이 페이지를 <ph name="SOURCE_LANGUAGE" />에서 <ph name="TARGET_LANGUAGE" />로 번역할까요?</translation>
 <translation id="6675665718701918026">포인팅 기기 연결됨</translation>
-<translation id="6677037229676347494">ID로 '<ph name="EXPECTED_ID" />'을(를) 예상했으나 '<ph name="NEW_ID" />'이(가) 표시되었습니다.</translation>
 <translation id="6678717876183468697">쿼리 URL</translation>
 <translation id="6680028776254050810">사용자 전환</translation>
 <translation id="6680442031740878064">사용 가능한 저장용량: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625"><ph name="BEGIN_LINK" />설정<ph name="END_LINK" />에서 언제든지 Google에서 수집하는 정보를 맞춤설정할 수 있습니다.</translation>
 <translation id="6904344821472985372">파일 액세스 취소</translation>
 <translation id="6904655473976120856">앱 버튼을 눌러 종료하세요.</translation>
-<translation id="6904713658985136356"><ph name="HOST" />에서 화면을 공유하려고 합니다.</translation>
-<translation id="6909461304779452601">이 웹사이트에서 앱, 확장 프로그램, 사용자 스크립트 등을 추가할 수 없습니다.</translation>
 <translation id="6910211073230771657">삭제됨</translation>
 <translation id="691024665142758461">여러 파일 다운로드</translation>
 <translation id="6911324888870229398">네트워크 연결이 끊어졌습니다. 연결을 확인하거나 다른 Wi-Fi 네트워크를 사용해 보세요.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">오류: 확장 프로그램을 디코딩할 수 없음</translation>
 <translation id="7473891865547856676">건너뛰기</translation>
 <translation id="747459581954555080">모두 복원</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" />에 오류가 발생했습니다.</translation>
 <translation id="7475671414023905704">Netscape Lost Password URL</translation>
 <translation id="7476454130948140105">배터린 잔량이 부족하여(<ph name="BATTERY_PERCENT" />%) 업데이트할 수 없음</translation>
 <translation id="7477347901712410606">암호가 생각나지 않으면 <ph name="BEGIN_LINK" />Google 대시보드<ph name="END_LINK" />를 통해 동기화를 중지하고 재설정합니다.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">상태 응답자 인증서</translation>
 <translation id="7508545000531937079">슬라이드쇼</translation>
 <translation id="7513029293694390567">저장된 사용자 인증 정보를 사용하여 자동으로 웹사이트에 로그인합니다. 이 기능이 꺼져 있는 경우에는 웹사이트에 로그인할 때마다 확인 요청 메시지가 표시됩니다.</translation>
-<translation id="7515670329462166359">보호된 콘텐츠를 재생하려면 <ph name="URL" />에서 기기를 고유하게 식별해야 합니다.</translation>
 <translation id="7517569744831774757">설정이 기본값으로 복원됩니다.</translation>
 <translation id="7517786267097410259">비밀번호 만들기 -</translation>
 <translation id="7518150891539970662">WebRTC 로그(<ph name="WEBRTC_LOG_COUNT" />개)</translation>
@@ -4172,7 +4115,6 @@
     관리 대상 사용자를 다시 만들어볼 수 있습니다.</translation>
 <translation id="756445078718366910">브라우저 창 열기</translation>
 <translation id="7564847347806291057">프로세스 종료</translation>
-<translation id="7565291891798266313">검색 엔진이 <ph name="URL" />(으)로 변경되었습니다. 검색 엔진을 변경하는 확장 프로그램을 사용하지 않으려면 복원을 클릭하세요.</translation>
 <translation id="7566118625369982896">Play 앱 링크 관리</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome 데이터 삭제됨</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">배터리 충전</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">한 부씩 인쇄</translation>
-<translation id="7577815336900970562">Wi-Fi 또는 모바일 네트워크를 사용하여 위치 파악</translation>
 <translation id="7579149537961810247">사이트 음소거</translation>
 <translation id="7580671184200851182">모든 스피커에서 동일한 오디오 실행(모노 오디오)</translation>
 <translation id="7581462281756524039">정리도구</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">세션 저장소</translation>
 <translation id="7781335840981796660">모든 사용자 계정과 로컬 데이터가 삭제됩니다.</translation>
 <translation id="7782102568078991263">Google의 추천 단어 없음</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" />을 로드하지 못함</translation>
 <translation id="7784067724422331729">컴퓨터의 보안 설정에 의해 파일이 차단되었습니다.</translation>
 <translation id="7786207843293321886">게스트 세션 종료</translation>
 <translation id="7786889348652477777">앱 새로고침(&amp;R)</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">사이트에서 비밀번호를 도용했을 수 있음</translation>
 <translation id="8004582292198964060">브라우저</translation>
 <translation id="8008356846765065031">인터넷 연결이 끊겼습니다. 인터넷 연결을 확인하세요.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" />을(를) 로드할 수 없습니다.</translation>
 <translation id="8008818777654712271">위험한 앱과 사이트를 감지할 수 있도록 일부 시스템 정보와 페이지 콘텐츠를 Google로 자동 전송</translation>
 <translation id="8012382203418782830">페이지가 번역되었습니다.</translation>
 <translation id="8014154204619229810">업데이터가 현재 실행 중입니다. 잠시 후에 새로고침하여 다시 확인해 주세요.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">앱, 확장 프로그램 및 테마 관리</translation>
 <translation id="8191453843330043793">V8 프록시 리졸버</translation>
 <translation id="8195027750202970175">디스크 크기</translation>
-<translation id="8195739004487400241">홈페이지가 <ph name="URL" />(으)로 변경되었습니다. 홈페이지를 변경하는 확장 프로그램을 사용하지 않으려면 복원을 클릭하세요.</translation>
 <translation id="8199300056570174101">네트워크(서비스) 및 기기 속성</translation>
 <translation id="8200772114523450471">다시 시작</translation>
 <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> 프로필을 업데이트하려면 비밀번호 다시 입력</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">이 확장 프로그램은 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />에 표시되지 않으며 사용자 모르게 추가되었을 수 있습니다.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" />에 계정 추가</translation>
 <translation id="8261506727792406068">삭제</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" />은(는) 이 빌드에 구현되어 있지 않습니다.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />에서 마우스 커서를 사용 중지했습니다.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" />에서 전체 화면을 실행합니다.</translation>
 <translation id="8270242299912238708">PDF 문서</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">또는 새로운 네트워크 선택</translation>
 <translation id="845627346958584683">만료 시간</translation>
 <translation id="8456681095658380701">잘못된 이름입니다.</translation>
+<translation id="8457451314607652708">북마크 가져오기</translation>
 <translation id="8460336040822756677"><ph name="DEVICE_TYPE" />용 Smart Lock을 사용 중지하면 휴대전화를 사용하여 Chrome 기기를 잠금 해제할 수 없으며 비밀번호를 입력해야 합니다.</translation>
 <translation id="8461329675984532579">홈 공급자 이름</translation>
 <translation id="84613761564611563">네트워크 구성 UI를 요청했습니다. 잠시만 기다려 주세요.</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">유해한 소프트웨어가 발견되지 않음</translation>
 <translation id="8512476990829870887">프로세스 종료</translation>
 <translation id="851263357009351303"><ph name="HOST" />에서 이미지 표시 항상 허용</translation>
-<translation id="8513191386157529469">'<ph name="CLIENT_NAME" />'에서 이 브라우저를 디버깅하는 중입니다.</translation>
 <translation id="8521475323816527629">앱으로 빠르게 이동</translation>
 <translation id="8523493869875972733">변경사항 유지</translation>
 <translation id="8523849605371521713">정책에 의해 추가</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">네트워크 연결 구성</translation>
 <translation id="8620790565535071193">검색 실패</translation>
 <translation id="8622877356447980900">이 페이지를 번역하시겠습니까?</translation>
-<translation id="8623004009673949077">'kiosk_only' 매니페스트 속성을 사용하는 앱은 Chrome OS 키오스크 모드에 설치되어야 합니다.</translation>
 <translation id="8624205858755890468">어시스턴트를 사용 설정하여 관련된 정보, 앱, 작업을 표시합니다.</translation>
 <translation id="862542460444371744">확장 프로그램(&amp;E)</translation>
 <translation id="8627151598708688654">소스 선택</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">펌웨어를 업데이트하여 보안 강화</translation>
 <translation id="8823514049557262177">링크 텍스트 복사(&amp;X)</translation>
 <translation id="8824701697284169214">페이지 추가(&amp;G)...</translation>
-<translation id="8827850355924932817">Wi-Fi 네트워크를 사용하여 위치 파악</translation>
 <translation id="8828933418460119530">DNS 이름</translation>
 <translation id="8830796635868321089">현재 프록시 설정을 사용하여 업데이트를 확인하지 못했습니다. <ph name="PROXY_SETTINGS_LINK_START" />프록시 설정<ph name="PROXY_SETTINGS_LINK_END" />을 조정하세요.</translation>
 <translation id="8834039744648160717">네트워크 구성은 <ph name="USER_EMAIL" />님이 관리합니다.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">탭으로 표시(&amp;S)</translation>
 <translation id="8884961208881553398">새로운 서비스 추가</translation>
 <translation id="8885197664446363138">Smart Lock을 사용할 수 없음</translation>
-<translation id="8885905466771744233">지정한 확장 프로그램에 대한 비공개 키가 이미 있습니다. 해당 키를 다시 사용하거나 먼저 삭제하세요.</translation>
 <translation id="8888432776533519951">색상:</translation>
-<translation id="8892992092192084762">테마('<ph name="THEME_NAME" />')를 설치했습니다.</translation>
 <translation id="8893928184421379330">죄송합니다. 기기(<ph name="DEVICE_LABEL" />)를 인식하지 못했습니다.</translation>
 <translation id="8895454554629927345">북마크 목록</translation>
 <translation id="88986195241502842">페이지 아래로</translation>
@@ -4991,13 +4926,12 @@
 <translation id="8899285681604219177">지원되지 않는 확장 프로그램이 사용 중지됨</translation>
 <translation id="8899551033019439140">프린터 검색 중...</translation>
 <translation id="8899851313684471736">새 창에서 링크 열기(&amp;W)</translation>
-<translation id="8902667442496790482">음성 안내 설정 열기</translation>
+<translation id="8902667442496790482">텍스트 읽어주기 설정 열기</translation>
 <translation id="8903921497873541725">확대</translation>
 <translation id="8904976895050290827">크롬 동기화</translation>
 <translation id="8908902564709148335">경고: 이 컴퓨터에 확장 프로그램 기능을 제한하는 --scripts-require-action 플래그를 사용하도록 설정했습니다. 하지만 다른 기기에서 이 플래그를 지원하지 않거나 사용하도록 설정하지 않았을 수도 있습니다. 이러한 기기에서 이 확장 프로그램이 수행할 수 있는 작업은 다음과 같습니다.</translation>
 <translation id="8910146161325739742">화면 공유하기</translation>
 <translation id="8910222113987937043">북마크, 방문 기록, 비밀번호 및 기타 설정을 변경하면 더 이상 Google 계정에 동기화되지 않습니다. 하지만 기존 데이터는 Google 계정에 계속 저장되며 <ph name="BEGIN_LINK" />Google 대시보드<ph name="END_LINK" />에서 관리할 수 있습니다.</translation>
-<translation id="8911079125461595075">Google에서 <ph name="EXTENSION_NAME" />을(를) 악성 프로그램으로 분류했으며 설치가 금지되었습니다.</translation>
 <translation id="8912793549644936705">늘이기</translation>
 <translation id="8915370057835397490">추천 단어 로드 중...</translation>
 <translation id="8916476537757519021">시크릿 모드 서브프레임: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">블루투스</translation>
 <translation id="9074836595010225693">USB 마우스 연결됨</translation>
 <translation id="9076523132036239772">이메일이나 비밀번호를 확인할 수 없습니다. 먼저 네트워크에 연결해 주세요.</translation>
-<translation id="907841381057066561">압축하는 동안 임시 zip 파일을 만들지 못했습니다.</translation>
 <translation id="9084064520949870008">창으로 열기</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" />이(가) 기업 정책에 의해 차단되었습니다.</translation>
 <translation id="9088917181875854783">다음 패스키가 '<ph name="DEVICE_NAME" />'에 표시되는지 확인하세요.</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">암호 입력</translation>
 <translation id="939736085109172342">새 폴더</translation>
-<translation id="941543339607623937">비공개 키가 잘못되었습니다.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" />에서 Chrome 탭과 오디오를 공유 중입니다.</translation>
 <translation id="942954117721265519">이 디렉토리에 이미지가 없습니다.</translation>
 <translation id="945522503751344254">의견 보내기</translation>
-<translation id="951981865514037445"><ph name="URL" />에서 내 기기의 위치에 액세스하려고 합니다.</translation>
 <translation id="952992212772159698">활성화되지 않음</translation>
 <translation id="9580706199804957">Google 서비스에 연결할 수 없음</translation>
 <translation id="958515377357646513">앞으로 이동하려면 터치하세요.</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 14cbc7d..ec6b730 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Tik šifruoti</translation>
 <translation id="1039337018183941703">Netinkamas arba sugadintas failas</translation>
 <translation id="1042174272890264476">Jūsų kompiuteryje taip pat įdiegta „<ph name="SHORT_PRODUCT_NAME" />“ RLZ biblioteka. RLZ priskiria neunikalią, asmens neidentifikuojančią žymą, kad įvertintų tam tikros reklamos kampanijos paieškas ir „<ph name="SHORT_PRODUCT_NAME" />“ naudojimą. Šios etiketės kartais rodomos „Google“ paieškos užklausose „<ph name="PRODUCT_NAME" />“.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> pageidaujama visam laikui išsaugoti daug duomenų įrenginyje.</translation>
 <translation id="1046059554679513793">Oi! Šis vardas jau naudojamas!</translation>
 <translation id="1047431265488717055">Kopijuoti nuorodos teks&amp;tą</translation>
 <translation id="1047726139967079566">Įtraukti šį puslapį į žymes...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Atkurti numatytąjį paieškos variklį?</translation>
 <translation id="1177863135347784049">Priskirtas</translation>
 <translation id="1178581264944972037">Pristabdyti</translation>
-<translation id="1179803038870941185"><ph name="URL" /> nori visiškai valdyti MIDI įrenginius.</translation>
 <translation id="1181037720776840403">Pašalinti</translation>
 <translation id="1183237619868651138">Nepavyko įdiegti „<ph name="EXTERNAL_CRX_FILE" />“ vietinėje talpykloje.</translation>
 <translation id="1185924365081634987">Taip pat galite bandyti <ph name="GUEST_SIGNIN_LINK_START" />naršyti kaip svečias<ph name="GUEST_SIGNIN_LINK_END" />, kad išspręstumėte šią tinklo klaidą.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Suteikta prieiga prie kompiuteryje saugomo failo}one{Suteikta prieiga prie # kompiuteryje saugomo failo}few{Suteikta prieiga prie # kompiuteryje saugomų failų}many{Suteikta prieiga prie # kompiuteryje saugomo failo}other{Suteikta prieiga prie # kompiuteryje saugomų failų}}</translation>
 <translation id="1195076408729068893">Jei norite paleisti funkciją „Smart Lock“, įveskite slaptažodį. Kitą kartą galėsite telefonu atrakinti savo „<ph name="DEVICE_TYPE" />“.</translation>
 <translation id="1195447618553298278">Nežinoma klaida.</translation>
-<translation id="1196338895211115272">Nepavyko eksportuoti privačiojo rakto.</translation>
 <translation id="119738088725604856">Ekrano kopijos langas</translation>
 <translation id="1197979282329025000">Nuskaitant „<ph name="PRINTER_NAME" />“ spausdintuvo charakteristikas įvyko klaida. Šio spausdintuvo nepavyko užregistruoti „<ph name="CLOUD_PRINT_NAME" />“.</translation>
 <translation id="1198271701881992799">Pradėkime</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administratorius rekomenduoja naudoti konkrečią šio nustatymo vertę.</translation>
 <translation id="1225177025209879837">Užklausa apdorojama…</translation>
 <translation id="1225211345201532184">5 lentynos elementas</translation>
-<translation id="1225404570112441414">Pridėkite šią svetainę prie lentynos, kad galėtumėte bet kada naudoti.</translation>
 <translation id="1227507814927581609">Autentifikuojant tuo metu, kai buvo prisijungiant prie „<ph name="DEVICE_NAME" />“, įvyko klaida.</translation>
 <translation id="1230807973377071856">sistemos meniu</translation>
 <translation id="1232569758102978740">Be pavadinimo</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Žymių HTML failas</translation>
 <translation id="1303671224831497365">Nerasta jokių „Bluetooth“ įrenginių</translation>
 <translation id="1306606229401759371">Keisti nustatymus</translation>
-<translation id="1307398858972670978">Pasiekite savo slaptažodžius naudodami bet kurį įrenginį adresu <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Oi, sistemai nepavyko išsaugoti šio įrenginio ilgalaikio API prieigos kodo.</translation>
 <translation id="1313405956111467313">Automatinė tarpinio serverio konfigūracija</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Ieškoti</translation>
 <translation id="1386387014181100145">Sveiki!</translation>
 <translation id="138784436342154190">Atkurti numatytąjį paleidimo puslapį?</translation>
-<translation id="1389297115360905376">Tai galima pridėti tik iš „<ph name="CHROME_WEB_STORE" />“.</translation>
 <translation id="1390548061267426325">Atidaryti kaip įprastą skirtuką</translation>
-<translation id="1391807639023934267">Spartesnis puslapio įkėlimas.</translation>
 <translation id="1393283411312835250">Saulė ir debesys</translation>
 <translation id="1395262318152388157">Paieškos šliaužiklis</translation>
 <translation id="1395730723686586365">Atnaujinimo priemonė paleista</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Atnaujinate į nestabilią „<ph name="PRODUCT_NAME" />“ versiją, kuri apima vis dar kuriamas funkcijas. Bus strigčių ir netikėtų trikčių. Būkite atsargūs.</translation>
 <translation id="1415990189994829608">„<ph name="EXTENSION_NAME" />“ (plėtinio ID „<ph name="EXTENSION_ID" />“) neleidžiamas vykstant šio tipo seansui.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Oi! Nepavyko sukurti atsitiktinio RSA privačiojo rakto.</translation>
 <translation id="1420834118113404499">Medijos licencijos</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, kad leistumėte susieti</translation>
 <translation id="1426410128494586442">Taip</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opijuoti garso įrašo adresą</translation>
 <translation id="1465827627707997754">Picos gabalėlis</translation>
 <translation id="1467432559032391204">Kairė</translation>
-<translation id="1467999917853307373"><ph name="URL" /> pageidaujama visą laiką saugoti duomenis jūsų įrenginyje.</translation>
-<translation id="1470719357688513792">Nauji slapukų nustatymai pradės galioti iš naujo įkėlus puslapį.</translation>
 <translation id="1470811252759861213">Kad pasiektumėte plėtinius visuose įrenginiuose, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Failas „<ph name="FILENAME" />“ neįkeltas. „Google“ diske nepakanka vietos.</translation>
 <translation id="1475502736924165259">Turite pateiktų sertifikatų, kurie neatitinka jokių kitų kategorijų</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Didelis pelės žymeklis</translation>
 <translation id="1543284117603151572">Importuota iš „Edge“</translation>
 <translation id="1545177026077493356">Automatinis viešojo terminalo režimas</translation>
+<translation id="1545775234664667895">Įdiegta „<ph name="THEME_NAME" />“ tema</translation>
 <translation id="1545786162090505744">URL su %s užklausos viet.</translation>
 <translation id="1546280085599573572">Šis plėtinys pakeitė puslapį, kuris rodomas spustelėjus pagrindinio puslapio mygtuką.</translation>
 <translation id="1547572086206517271">Būtina atnaujinti</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />peržiūrėti<ph name="END_BOLD" /> svetaines, kuriose lankėsi prižiūrimas naudotojas, ir
     <ph name="BEGIN_BOLD" />valdyti<ph name="END_BOLD" /> kitus nustatymus.</translation>
 <translation id="1648943974594387137">Išsami prisijungimo informacija pasenusi</translation>
-<translation id="1649641629389702691">&lt;Nerodoma eilučių: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Rodyti įvesties parinktis</translation>
 <translation id="1650709179466243265">Pridėti www. ir .com ir atidaryti adresą</translation>
 <translation id="1651008383952180276">Reikia dukart įvesti tą pačią slaptafrazę</translation>
-<translation id="1652972346408808053">Slaptažodis išsaugotas. Pasiekite savo slaptažodžius naudodami bet kurį įrenginį adresu <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Pridėkite spausdintuvą prie „Google“ spausdinimo iš debesies, kad galėtumėte spausdinti iš bet kurios vietos.}one{Pridėkite # spausdintuvą prie „Google“ spausdinimo iš debesies, kad galėtumėte spausdinti iš bet kurios vietos.}few{Pridėkite # spausdintuvus prie „Google“ spausdinimo iš debesies, kad galėtumėte spausdinti iš bet kurios vietos.}many{Pridėkite # spausdintuvo prie „Google“ spausdinimo iš debesies, kad galėtumėte spausdinti iš bet kurios vietos.}other{Pridėkite # spausdintuvų prie „Google“ spausdinimo iš debesies, kad galėtumėte spausdinti iš bet kurios vietos.}}</translation>
 <translation id="1657406563541664238">Padėkite tobulinti „<ph name="PRODUCT_NAME" />“ automatiškai siųsdami „Google“ naudojimo statistiką ir trikčių ataskaitas</translation>
 <translation id="1658424621194652532">Šis puslapis pasiekia jūsų mikrofoną.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Tęsti slapukų blokavimą</translation>
 <translation id="204622017488417136">Įrenginyje bus grąžinta anksčiau įdiegta „Chrome“ versija. Visos naudotojų paskyros ir vietiniai duomenys bus pašalinti. Šio veiksmo anuliuoti negalėsite.</translation>
 <translation id="2048182445208425546">Pasiekti tinklo srautą</translation>
-<translation id="2049137146490122801">Administratorius neleidžia prieigos prie vietinių failų įrenginyje.</translation>
 <translation id="204914487372604757">Kurti spartųjį klavišą</translation>
 <translation id="2050339315714019657">Stačias</translation>
 <translation id="2053312383184521053">Neveikos būsenos duomenys</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Dar neįkelta</translation>
 <translation id="2107494551712864447">Kontrolinio kodo pridėjimas</translation>
-<translation id="2111843886872897694">Programos turi būti teikiamos iš prieglobos, kurią jos veikia.</translation>
 <translation id="2112877397266219826">Įjunkite jutiklinį valdiklį, kad nustatytumėte</translation>
 <translation id="21133533946938348">Pažymėti skirtuką</translation>
 <translation id="2113479184312716848">Atidaryti &amp;failą...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Aprašykite problemą</translation>
 <translation id="2229161054156947610">Liko daugiau nei 1 val.</translation>
 <translation id="222931766245975952">Failas sutrumpintas</translation>
-<translation id="222949136907494149"><ph name="URL" /> norima naudoti kompiuterio vietą.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Nepavyko sukurti aplanko „<ph name="FOLDER_NAME" />“. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Spustelėkite ir peržiūrėkite šiandienos papuoštą logotipą</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Visada blokuoti prieigą prie mikrofono</translation>
 <translation id="2367972762794486313">Rodyti programas</translation>
 <translation id="2371076942591664043">Baigus &amp;atidaryti</translation>
-<translation id="237336063998926520">Naudoti IP adresą vietai nustatyti</translation>
 <translation id="2377319039870049694">Perjungti į sąrašo rodinį</translation>
 <translation id="2377667304966270281">Sunkūs gedimai</translation>
 <translation id="2378075407703503998">Pasirinkta failų: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">„<ph name="APP_NAME" />“ nori kopijuoti failus iš „<ph name="VOLUME_NAME" />“.</translation>
 <translation id="2462724976360937186">Sertifikavimo institucijos rakto ID</translation>
 <translation id="2462752602710430187">Pridėtas „<ph name="PRINTER_NAME" />“</translation>
-<translation id="246335896104539386">Importuoti žymes</translation>
 <translation id="2464089476039395325">HTTP tarpinis serveris</translation>
 <translation id="2468902267404883140">Nepavyko prisijungti prie telefono. Įsitikinkite, kad naudojate suderinamą „Android“ telefoną, kuris įjungtas ir yra netoliese. &lt;a&gt;Sužinokite daugiau&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Nepalaikomi plėtiniai išjungti</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Pašalinti</translation>
 <translation id="2487067538648443797">Pridėti naują žymą</translation>
 <translation id="248861575772995840">Nepavyksta rasti jūsų telefono. Įsitikinkite, kad „<ph name="DEVICE_TYPE" />“ įrenginyje įjungtas „Bluetooth“. &lt;a&gt;Sužinokite daugiau&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Papildinys („<ph name="PLUGIN_NAME" />“) neatsako.</translation>
 <translation id="2489428929217601177">pastarosios dienos</translation>
 <translation id="2489918096470125693">Pridėti &amp;aplanką...</translation>
 <translation id="249113932447298600">Apgailestaujame, tačiau įrenginys <ph name="DEVICE_LABEL" /> šiuo metu nepalaikomas.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Sveikiname! Jūsų „<ph name="NAME" />“ duomenų paslauga buvo suaktyvinta ir yra paruošta naudoti.</translation>
 <translation id="2566124945717127842">Atlikite „Powewash“, kad „<ph name="IDS_SHORT_PRODUCT_NAME" />“ įrenginys būtų nustatytas tarsi naujas.</translation>
 <translation id="2568774940984945469">Informacinės juostos sudėtinis rodinys</translation>
-<translation id="2570000010887652771">Išsaugoti duomenys.</translation>
 <translation id="257088987046510401">Temos</translation>
 <translation id="2572032849266859634">„<ph name="VOLUME_NAME" />“ suteiktas leidimas tik skaityti.</translation>
 <translation id="2573269395582837871">Pasirinkti paveikslėlį ir pavadinimą</translation>
 <translation id="2575247648642144396">Ši piktograma bus matoma, kai plėtinys galės veikti dabartiniame puslapyje. Naudokite šį plėtinį spustelėję piktogramą arba paspaudę <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Nepavyksta rasti jūsų telefono. Įsitikinkite, kad „<ph name="DEVICE_TYPE" />“ prijungtas prie „Wi-Fi“ arba mobiliojo ryšio tinklo. &lt;a&gt;Sužinokite daugiau&lt;/a&gt;</translation>
-<translation id="2576842806987913196">CRX failas tokiu pavadinimu jau yra.</translation>
 <translation id="257779572837908839">Nustatyti kaip „Chromebox“ susitikimams</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Negalima pašalinti tomo<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Jei ištrinsite sertifikavimo instituciją (angl. „Certification Authority“, CA), naršyklėje nebebus pasitikima jokiais tos CA išduotais sertifikatais.</translation>
 <translation id="2653659639078652383">Pateikti</translation>
 <translation id="265390580714150011">Lauko vertė</translation>
-<translation id="2654286334048437383">Eksportuoti žymas</translation>
 <translation id="2655386581175833247">Naudotojo sertifikatas:</translation>
 <translation id="2660779039299703961">Įvykis</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Pridėti medijos galeriją pagal katalogą</translation>
 <translation id="2908789530129661844">Tolinti ekraną</translation>
 <translation id="2910318910161511225">Prisijunkite prie tinklo ir bandykite dar kartą</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> nori naudoti jūsų mikrofoną.</translation>
 <translation id="2913331724188855103">Leisti svetainėms išsaugoti ir nuskaityti slapukų duomenis (rekomenduojama)</translation>
 <translation id="2916073183900451334">Paspaudus tinklalapio skirtuką paryškinamos nuorodos ir formos laukai</translation>
 <translation id="2916745397441987255">Ieškoti plėtinių</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Klausoma…</translation>
 <translation id="3141917231319778873">Nurodyta užklausa nepalaikoma įrenginyje „<ph name="DEVICE_NAME" />“.</translation>
 <translation id="3144126448740580210">ATLIKTA</translation>
-<translation id="3144135466825225871">Nepavyko pakeisti CRX failo. Patikrinkite, ar failas naudojamas.</translation>
 <translation id="3144647712221361880">Atidaryti nuorodą kaip</translation>
 <translation id="3149510190863420837">„Chrome“ programos</translation>
 <translation id="3150927491400159470">Priverstinis įkėlimas iš naujo</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Visada vykdyti visose svetainėse</translation>
 <translation id="3312424061798279731">Įgalintos kalbos</translation>
 <translation id="3312903956926554846">Įdiegti darbalaukyje</translation>
-<translation id="3313473140726597081">Paleidimo puslapis pakeistas į <ph name="URL" />. Kad išjungtumėte plėtinius, kurie pakeičia paleidimo puslapį, spustelėkite „Atkurti“.</translation>
 <translation id="3313590242757056087">Jei norite nustatyti, kurias svetaines galės matyti prižiūrimas naudotojas, galite konfigūruoti apribojimus
     ir nustatymus apsilankę adresu <ph name="MANAGEMENT_URL" />.
     Jei nepakeisite numatytųjų nustatymų, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Programos informacija</translation>
 <translation id="3335947283844343239">Iš naujo atidarykite uždarytą skirtuką</translation>
-<translation id="3337069537196930048">„<ph name="PLUGIN_NAME" />“ užblokuotas, nes pasenęs.</translation>
 <translation id="3340978935015468852">nustatymų</translation>
 <translation id="3341703758641437857">Leisti pasiekti failo URL</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />“ norėtų pašalinti šį plėtinį.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Žymė pridėta</translation>
 <translation id="3389312115541230716">Dešiniuoju pelės klavišu spustelėkite piktogramą <ph name="SMALL_PRODUCT_LOGO" /> užduočių juostoje</translation>
 <translation id="3391716558283801616">7 skirtukas</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> nori naudoti jūsų kamerą ir mikrofoną.</translation>
 <translation id="3396331542604645348">Pasirinktas spausdintuvas nepasiekiamas arba netinkamai įdiegtas. Patikrinkite spausdintuvą arba pabandykite pasirinkti kitą spausdintuvą.</translation>
 <translation id="3399432415385675819">Pranešimai bus išjungti</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">„Chrome“ atnaujinama automatiškai, todėl visada turite naujausią versiją</translation>
 <translation id="3551320343578183772">Uždaryti skirtuką</translation>
 <translation id="3552780134252864554">Išvalyti išeinant</translation>
-<translation id="355298399003313926"><ph name="URL" /> nori reaguoti į pritaikymo neįgaliesiems įvykius.</translation>
 <translation id="3555812735919707620">Pašalinti plėtinį</translation>
 <translation id="3556000484321257665">Paieškos variklis pakeistas į <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Privačiojo rakto įvesties vertė turi būti galiojantis kelias.</translation>
 <translation id="3563432852173030730">Nepavyko atsisiųsti viešojo terminalo programos.</translation>
 <translation id="3564334271939054422">Naudojant šį „Wi-Fi“ tinklą (<ph name="NETWORK_ID" />) gali būti prašoma apsilankyti prisijungimo puslapyje.</translation>
 <translation id="3564708465992574908">Mastelio keitimo lygiai</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Sertifikato pavadinimo apribojimai</translation>
 <translation id="3596235046596950091">Įgalinti debesies paslaugas</translation>
 <translation id="3599863153486145794">Išvaloma visų įrenginių, prie kurių prisijungta, istorija. „Google“ paskyroje gali būti kito tipo naršymo istorijos, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Administratorius išjungė prieigą prie vietinių failų įrenginyje.</translation>
 <translation id="3600792891314830896">Nutildyti svetaines, kurios leidžia garsą</translation>
 <translation id="3603177256297531067">Nepavyko išversti šio puslapio</translation>
 <translation id="3603533104205588786">Galite spustelėti žvaigždutę, kad pažymėtumėte puslapį</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Ekrano kopijos išjungtos</translation>
 <translation id="3625870480639975468">Iš naujo nustatyti mastelį</translation>
 <translation id="3626281679859535460">Šviesumas</translation>
-<translation id="3627052133907344175">Norint naudoti plėtinį reikalinga bent <ph name="IMPORT_VERSION" /> versijos „<ph name="IMPORT_NAME" />“, bet įdiegta tik <ph name="INSTALLED_VERSION" /> versija.</translation>
 <translation id="3627320433825461852">Liko mažiau nei 1 min.</translation>
 <translation id="3627588569887975815">Atidaryti nuorodą inco&amp;gnito lange</translation>
 <translation id="3627671146180677314">„Netscape“ sertifikato atnaujinimo laikas</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Kalbos nustatymai</translation>
 <translation id="3668823961463113931">Apdorojimo programos</translation>
 <translation id="3670229581627177274">Įjungti „Bluetooth“</translation>
-<translation id="3672159315667503033"><ph name="URL" /> pageidaujama visam laikui išsaugoti daug duomenų jūsų vietiniame kompiuteryje.</translation>
 <translation id="3672681487849735243">Aptikta gamyklos klaida</translation>
 <translation id="367645871420407123">Jei norite nustatyti numatytojo bandomojo vaizdo vertės pagrindinį slaptažodį, palikite lauką tuščią.</translation>
 <translation id="3678156199662914018">Plėtinys: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Esate neprisijungę</translation>
 <translation id="3788401245189148511">Prašoma leidimo:</translation>
 <translation id="3789841737615482174">Įdiegti</translation>
-<translation id="3790146417033334899">„<ph name="PLUGIN_NAME" />“ veikia tik darbalaukyje.</translation>
 <translation id="379082410132524484">Kortelės galiojimo laikas baigėsi</translation>
 <translation id="3792890930871100565">Atjungti spausdintuvus</translation>
 <translation id="379422718204375917">Naudoti „Smart Lock“, norint prisijungti prie paskyros</translation>
-<translation id="3794595850995182458">Išeiti iš puslapio</translation>
 <translation id="3796648294839530037">Mėgstamiausi tinklai:</translation>
 <translation id="3797900183766075808">&amp;Ieškoti pagal užklausą „<ph name="SEARCH_TERMS" />“ naudojant „<ph name="SEARCH_ENGINE" />“</translation>
 <translation id="3798325802885154040">Suteikia galimybę įgalinti funkciją „Paliesti ir spustelėti“</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Įgalinti <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Įvestas neteisingas išsaugojimo tipas.</translation>
 <translation id="3983586614702900908">nežinomų tiekėjų įrenginiai</translation>
-<translation id="3984413272403535372">Pasirašant plėtinį įvyko klaida.</translation>
 <translation id="3987938432087324095">Deja, suprasti nepavyko.</translation>
 <translation id="3988996860813292272">Pasirinkite laiko juostą</translation>
 <translation id="3989635538409502728">Atsijungti</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Diekite programas ir žaidimus iš „Google Play“ savo „Chromebook“ įrenginyje. &lt;a target="_blank" href="<ph name="URL" />"&gt;Sužinokite daugiau&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Priimti grupės kvietimą</translation>
 <translation id="4090103403438682346">Įgalinti patvirtintą prieigą</translation>
-<translation id="4090404313667273475">Norint pateikti kelis elementus šiame puslapyje reikalingas papildinys „<ph name="PLUGIN_NAME" />“.</translation>
 <translation id="4090535558450035482">(Šis plėtinys tvarkomas ir jo negalima pašalinti.)</translation>
 <translation id="4091434297613116013">popieriaus lapai</translation>
 <translation id="4093955363990068916">Vietinis failas:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">„<ph name="PRODUCT_NAME" />“ dabar gali sinchronizuoti slaptažodžius.</translation>
 <translation id="4715553623069266137">labai trumpa (0,8 sek.)</translation>
 <translation id="4716483597559580346">Atlikite veiksmą „Powerwash“, kad užtikrintumėte geresnę saugą</translation>
-<translation id="471800408830181311">Privačiojo rakto išvestis nepavyko.</translation>
 <translation id="4720113199587244118">Pridėti įrenginių</translation>
 <translation id="4720185134442950733">Mobiliojo ryšio duomenų tinklas</translation>
 <translation id="4722920479021006856">„<ph name="APP_NAME" />“ bendrina jūsų ekraną.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Stiprus</translation>
 <translation id="4918021164741308375">„<ph name="ORIGIN" />“ nori užmegzti ryšį su plėtiniu „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="4918086044614829423">Priimti</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> nori naudoti jūsų fotoaparatą.</translation>
 <translation id="4920887663447894854">Šios svetainės buvo užblokuotos, kad nebūtų galima šiame puslapyje stebėti jūsų vietovės:</translation>
 <translation id="492299503953721473">Pašalinti „Android“ programas</translation>
 <translation id="4923279099980110923">Taip, noriu padėti</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Šiame plėtinyje yra kenkėjiškų programų.</translation>
 <translation id="498294082491145744">Pakeisti nustatymus, pagal kuriuos tvarkoma svetainių prieiga prie funkcijų, pvz., slapukų, „JavaScript“, papildinių, geografinės vietovės, mikrofono, fotoaparato ir kt.</translation>
 <translation id="4988526792673242964">Psl.</translation>
-<translation id="4988792151665380515">Nepavyko eksportuoti viešojo rakto.</translation>
 <translation id="49896407730300355">Sukti prieš l&amp;aikrodžio rodyklę</translation>
 <translation id="4989966318180235467">Tikrinti fono puslapį</translation>
 <translation id="4990343175649730969">Atsisiųsti „Chrome“ valymo įrankį</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Daugiau nerodyti</translation>
 <translation id="5027550639139316293">El. pašto sertifikatas</translation>
 <translation id="5027562294707732951">Pridėti plėtinį</translation>
-<translation id="5028012205542821824">Diegimas neįgalintas.</translation>
 <translation id="5029568752722684782">Išvalyti kopiją</translation>
 <translation id="5030338702439866405">Išdavė</translation>
 <translation id="5036662165765606524">Neleisti jokiai svetainei automatiškai atsisiųsti kelis failus</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Įvyko klaida.</translation>
 <translation id="5094721898978802975">Sąveikauti su atitinkamomis vietinėmis programomis</translation>
 <translation id="5097002363526479830">Nepavyko prisijungti prie tinklo „<ph name="NAME" />“: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nepavyksta rasti tikrojo kelio į katalogą, kad būtų galima sukurti paketą.</translation>
 <translation id="5099354524039520280">aukštyn</translation>
 <translation id="5100114659116077956">Kad galėtumėte naudotis naujausiomis funkcijomis, „Chromebox“ reikia atnaujinti.</translation>
 <translation id="5101042277149003567">Atidaryti visas žymas</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Rodyti aplanke</translation>
 <translation id="5171045022955879922">Ieškokite ar įveskite URL</translation>
 <translation id="5171343362375269016">Sukeista atmintis</translation>
-<translation id="5175870427301879686"><ph name="URL" /> pageidaujama visam laikui išsaugoti duomenis jūsų vietiniame kompiuteryje.</translation>
 <translation id="5177479852722101802">Toliau blokuoti prieigą prie fotoaparato ir mikrofono</translation>
 <translation id="5177526793333269655">Miniatiūros rodinys</translation>
 <translation id="5177549709747445269">Naudojate mobiliuosius duomenis</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatuoti šį įrenginį</translation>
 <translation id="5293170712604732402">Atkurti pradinius numatytuosius nustatymus</translation>
 <translation id="5298219193514155779">Temą sukūrė</translation>
-<translation id="5298363578196989456">Nepavyko importuoti plėtinio „<ph name="IMPORT_NAME" />“, nes tai nėra bendrinamas modulis.</translation>
 <translation id="5299109548848736476">Nestebėti</translation>
 <translation id="5299682071747318445">Visi duomenys užšifruoti naudojant sinchronizavimo slaptafrazę</translation>
 <translation id="5300589172476337783">Rodyti</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">Plėtinys „<ph name="CHROME_EXTENSION_NAME" />“ nori būti susietas</translation>
 <translation id="5332624210073556029">Laiko juosta:</translation>
 <translation id="5334142896108694079">Scenarijų talpykla</translation>
-<translation id="533433379391851622">Versija turėjo būti <ph name="EXPECTED_VERSION" />, o buvo pateikta <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Žiūrėti šaltinį</translation>
 <translation id="5335458522276292100">Kuriama <ph name="FILE_COUNT" /> atsarginė kopija <ph name="BEGIN_LINK" />„Google“ diske<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Įdiegė trečioji šalis.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Leisti svetainėms leisti garsą</translation>
 <translation id="5390284375844109566">Indeksuoti duomenys</translation>
 <translation id="5390743329570580756">Siųsti</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> esantis papildinys „<ph name="PEPPER_PLUGIN_NAME" />“ nori pasiekti jūsų kompiuterį.</translation>
 <translation id="5397794290049113714">Jūs</translation>
 <translation id="5398572795982417028">Puslapio už diapazono ribų nuoroda (apribojimas :<ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Skelbimai užblokuoti</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Atkurti visus skirtukus</translation>
 <translation id="5486261815000869482">Patvirtinti slaptažodį</translation>
 <translation id="5486275809415469523">„<ph name="APP_NAME" />“ bendrina jūsų ekraną su „<ph name="TAB_NAME" />“.</translation>
-<translation id="5486326529110362464">Turi būti privačiojo rakto įvesties vertė.</translation>
 <translation id="5486561344817861625">Imituoti naršyklės paleidimą iš naujo</translation>
 <translation id="5487521232677179737">Išvalyti duomenis</translation>
 <translation id="5488093641312826914">Elementas „<ph name="COPIED_ITEM_NAME" />“ nukopijuotas</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Naujinys bus atsisiųstas naudojant <ph name="UPDATE_SIZE_MB" /> MB mobiliojo ryšio duomenų. Ar norite tęsti?</translation>
 <translation id="5601503069213153581">PIN kodas</translation>
 <translation id="5605623530403479164">Kiti paieškos varikliai</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> esantis papildinys „<ph name="PEPPER_PLUGIN_NAME" />“ nori pasiekti jūsų įrenginį.</translation>
 <translation id="5608580678041221894">Palieskite toliau nurodytus klavišus, kad koreguotumėte ar perkeltumėte apkarpomą sritį</translation>
 <translation id="5609231933459083978">Panašu, kad ši programa yra netinkama.</translation>
 <translation id="5610038042047936818">Perjungti į fotoaparato režimą</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Išversta</translation>
 <translation id="5991049340509704927">Didinti</translation>
 <translation id="5993332328670040093">Duomenų naudojimas nebebus vertinamas.</translation>
-<translation id="6003177993629630467">„<ph name="PRODUCT_NAME" />“ gali nesugebėti atsinaujinti.</translation>
 <translation id="600424552813877586">Netinkama programa.</translation>
 <translation id="6005695835120147974">Medijos maršruto parinktuvas</translation>
 <translation id="6006484371116297560">Klasikinė</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Atsarginis kopijavimas debesyje</translation>
 <translation id="6040143037577758943">Uždaryti</translation>
 <translation id="6040852767465482106">Anoniminė tapatybė</translation>
+<translation id="6041155700700864984">Išjungti viso ekrano režimą</translation>
 <translation id="604124094241169006">Automatinis</translation>
 <translation id="6042169520002885235">Spausdintuvo gamintojo ir modelio pasirinkimas</translation>
 <translation id="6042308850641462728">Daugiau</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Įprastas įkėlimas iš naujo</translation>
 <translation id="6059652578941944813">Sertifikatų hierarchija</translation>
 <translation id="6059925163896151826">USB įrenginiai</translation>
-<translation id="6060435378291459521">Papildinys „<ph name="PLUGIN_NAME" />“ užstrigo.</translation>
 <translation id="6064217302520318294">Ekrano užraktas</translation>
 <translation id="6065289257230303064">Sertifikato subjekto katalogo atributai</translation>
 <translation id="6068338049763724728">Įgalinti nuotolinę registraciją</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Leidžiama koreguoti ekrano skyrą</translation>
 <translation id="6238923052227198598">Palikti naujausią pastabą užrakinimo ekrane</translation>
 <translation id="6239558157302047471">Įkelti &amp;rėmelį iš naujo</translation>
-<translation id="624022915548992686">Išeiti iš puslapio</translation>
 <translation id="6241530762627360640">Pasiekti informaciją apie „Bluetooth“ įrenginius, susietus su sistema, ir aptikti netoliese esančius „Bluetooth“ įrenginius.</translation>
 <translation id="6243774244933267674">Serveris negalimas</translation>
 <translation id="6246413617632217567">Nepavyko importuoti prižiūrimo naudotojo. Patikrinkite, ar standžiajame diske yra vietos, bei leidimus ir bandykite dar kartą.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Nežinoma tinklo klaida</translation>
 <translation id="6313641880021325787">IŠEITI IŠ VR</translation>
 <translation id="6314819609899340042">Sėkmingai įgalinote derinimo funkcijas šiame „<ph name="IDS_SHORT_PRODUCT_NAME" />“ įrenginyje.</translation>
-<translation id="6315343732431721770">Paleidimo puslapiai pakeisti į <ph name="URL" />. Kad išjungtumėte plėtinius, kurie pakeičia paleidimo puslapį, spustelėkite „Atkurti“.</translation>
 <translation id="6315493146179903667">Viską iškelti į priekį</translation>
 <translation id="6316806695097060329">Šis „<ph name="SHORT_PRODUCT_NAME" />“ įrenginys sukurtas siekiant teikti jums geriausią žiniatinklio naršymo patirtį.</translation>
 <translation id="6317318380444133405">Nebepalaikoma.</translation>
 <translation id="6317369057005134371">Laukiama programos lango...</translation>
 <translation id="6318407754858604988">Atsisiuntimo procesas pradėtas</translation>
-<translation id="6322279351188361895">Nepavyko nuskaityti privačiojo rakto.</translation>
 <translation id="6325191661371220117">Neleisti automatinio paleidimo</translation>
 <translation id="6326175484149238433">Pašalinti iš „Chrome“</translation>
 <translation id="6326855256003666642">Aktyvumą palaikančių elementų skaičius</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Pasirinkite, ką sinchronizuoti</translation>
 <translation id="6333064448949140209">Failas bus išsiųstas į sistemą „Google“ atlikti derinimą</translation>
 <translation id="6333834492048057036">Aktyvinti adreso juostą ir ieškoti</translation>
-<translation id="6336907568130557310">Slaptažodžiai bus matomi visiems, kas gali peržiūrėti eksportuotą failą. Nebendrinkite failo su niekuo ir importavę ištrinkite.</translation>
 <translation id="6339668969738228384">Kurti naują <ph name="USER_EMAIL_ADDRESS" /> profilį</translation>
 <translation id="6340017061976355871">Nepavyko užmegzti ryšio su serveriu. Patikrinkite tinklo ryšį ir bandykite dar kartą. Jei problema išlieka, paleiskite „Chromebook“ iš naujo.</translation>
 <translation id="6340071272923955280">Spausdinimo internetu protokolas (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Svetainės gali išsaugoti ir skaityti slapukų duomenis</translation>
 <translation id="6388771388956873507">Raskite įrenginio kontrolinio kodo jutiklį ir palieskite jį pirštu</translation>
 <translation id="6390799748543157332">Puslapiai, kuriuos peržiūrite šiame lange, nerodomi naršyklės istorijoje. Kai uždarysite visus svečio langus, kompiuteryje neliks ir kitų jų pėdsakų, pvz., slapukų, tačiau atsisiųsti failai bus išsaugoti.</translation>
-<translation id="6391538222494443604">Turi būti įvesties katalogas.</translation>
 <translation id="6395423953133416962">Siųsti <ph name="BEGIN_LINK1" />sistemos informaciją<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />metriką<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Baigti kalbėti</translation>
 <translation id="6397592254427394018">Atidaryti visas žymes &amp;inkognito lange</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Valdyti „JavaScript“ blokavimą...</translation>
 <translation id="6459488832681039634">Paieškai naudoti pasirinkimą</translation>
 <translation id="6460601847208524483">Rasti kitą</translation>
-<translation id="6462080265650314920">Teikiamų programų turinys turi būti „<ph name="CONTENT_TYPE" />“ tipo.</translation>
 <translation id="6462082050341971451">Ar jūs vis dar čia?</translation>
 <translation id="6463795194797719782">&amp;Redaguoti</translation>
 <translation id="6466988389784393586">&amp;Atidaryti visas žymes</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Ar norite, kad „Google“ išverstų puslapį iš <ph name="SOURCE_LANGUAGE" /> į <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Manipuliatorius prijungtas</translation>
-<translation id="6677037229676347494">ID turėjo būti <ph name="EXPECTED_ID" />, o buvo pateiktas – <ph name="NEW_ID" />.</translation>
 <translation id="6678717876183468697">Užklausos URL</translation>
 <translation id="6680028776254050810">Perjungti naudotojus</translation>
 <translation id="6680442031740878064">Pasiekiama: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Bet kuriuo metu galite tinkinti, kokią informaciją „Google“ renka, nuėję į skiltį <ph name="BEGIN_LINK" />„Nustatymai“<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Anuliuoti prieigą prie failo</translation>
 <translation id="6904655473976120856">Jei norite išeiti, paspauskite mygtuką „Programa“</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> nori bendrinti jūsų ekrano vaizdą.</translation>
-<translation id="6909461304779452601">Negalima pridėti programų, plėtinių ir naudotojo scenarijų iš šios svetainės.</translation>
 <translation id="6910211073230771657">Ištrintas</translation>
 <translation id="691024665142758461">Atsisiųsti kelis failus</translation>
 <translation id="6911324888870229398">Nutrūko tinklo ryšys. Patikrinkite ryšį arba pabandykite naudoti kitą „Wi-Fi“ tinklą.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Klaida: neįmanoma iššifruoti plėtinio</translation>
 <translation id="7473891865547856676">Ne, ačiū</translation>
 <translation id="747459581954555080">Atkurti viską</translation>
-<translation id="7475034671245341386">Įvyko plėtinio „<ph name="PLUGIN_NAME" />“ klaida.</translation>
 <translation id="7475671414023905704">„Netscape“ prarasto slaptažodžio URL</translation>
 <translation id="7476454130948140105">Akumuliatorius per daug išsikrovęs, kad būtų galima atnaujinti (<ph name="BATTERY_PERCENT" /> proc.)</translation>
 <translation id="7477347901712410606">Jei pamiršote slaptafrazę, iš naujo nustatykite sinchronizavimą naudodami <ph name="BEGIN_LINK" />„Google“ informacijos suvestinę<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Būsenos atsakiklio sertifikatas</translation>
 <translation id="7508545000531937079">Skaidrių demonstracija</translation>
 <translation id="7513029293694390567">Automatiškai prisijungti prie svetainių naudojant išsaugotus prisijungimo duomenis. Kai funkcija išjungta, kaskart prisijungiant prie svetainės bus prašoma patvirtinti.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> nori unikaliai identifikuoti jūsų įrenginį, kad galėtumėte leisti saugomą turinį.</translation>
 <translation id="7517569744831774757">Atkurti nustatymus į pirminius numatytuosius.</translation>
 <translation id="7517786267097410259">Sukurti slaptažodį –</translation>
 <translation id="7518150891539970662">„WebRTC“ žurnalai (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     sukurti prižiūrimą naudotoją.</translation>
 <translation id="756445078718366910">Atidaryti naršyklės langą</translation>
 <translation id="7564847347806291057">Baigti procesą</translation>
-<translation id="7565291891798266313">Paieškos variklis pakeistas į <ph name="URL" />. Kad išjungtumėte plėtinius, kurie pakeičia paieškos variklį, spustelėkite „Atkurti“.</translation>
 <translation id="7566118625369982896">„Play“ programų nuorodų tvarkymas</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Išvalyti „Chrome“ duomenys</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Akumuliatoriaus įkrovimas</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Gretinti</translation>
-<translation id="7577815336900970562">Vieta nustatoma naudojant „Wi-Fi“ arba mobiliojo ryšio tinklą</translation>
 <translation id="7579149537961810247">Nutildyti svetaines</translation>
 <translation id="7580671184200851182">Paleisti tą patį garso įrašą visuose garsiakalbiuose (monofoninio garso įrašas)</translation>
 <translation id="7581462281756524039">Valymo įrankis</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Sesijų atmintinė</translation>
 <translation id="7781335840981796660">Bus pašalintos visos naudotojo paskyros ir vietiniai duomenys.</translation>
 <translation id="7782102568078991263">Daugiau „Google“ pasiūlymų nėra</translation>
+<translation id="778330624322499012">Nepavyko įkelti „<ph name="PLUGIN_NAME" />“</translation>
 <translation id="7784067724422331729">Kompiuterio saugos nustatymai užblokavo šį failą.</translation>
 <translation id="7786207843293321886">Išeiti iš svečio režimo</translation>
 <translation id="7786889348652477777">&amp;Įkelti programą iš naujo</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Gali būti, kad svetainė pavogė jūsų slaptažodį</translation>
 <translation id="8004582292198964060">Naršyklė</translation>
 <translation id="8008356846765065031">Internetas atjungtas. Patikrinkite interneto ryšį.</translation>
-<translation id="8008765610824028412">Nepavyko įkelti papildinio „<ph name="PLUGIN_NAME" />“.</translation>
 <translation id="8008818777654712271">Automatiškai „Google“ siųsti tam tikrą sistemos informaciją ir puslapio turinį, norint padėti aptikti pavojingas programas ir svetaines</translation>
 <translation id="8012382203418782830">Šis puslapis buvo išverstas.</translation>
 <translation id="8014154204619229810">Atnaujinimo programa šiuo metu paleista. Netrukus atnaujinkite ir vėl patikrinkite.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Valdyti programas, plėtinius ir temas</translation>
 <translation id="8191453843330043793">V8 tarpinio serverio vardų vertimo programa</translation>
 <translation id="8195027750202970175">Diske užimama vieta</translation>
-<translation id="8195739004487400241">Pagrindinis puslapis pakeistas į <ph name="URL" />. Kad išjungtumėte plėtinius, kurie pakeičia pagrindinį puslapį, spustelėkite „Atkurti“.</translation>
 <translation id="8199300056570174101">Tinklo (paslaugos) ir įrenginio nuosavybės</translation>
 <translation id="8200772114523450471">Atnaujinti</translation>
 <translation id="8202160505685531999">Iš naujo įveskite slaptažodį, kad galėtumėte atnaujinti „<ph name="DEVICE_TYPE" />“ profilį.</translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080">Šio plėtinio nėra „<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />“ sąraše. Jis galėjo būti pridėtas be jūsų žinios.</translation>
 <translation id="8261387128019234107">Pridėti profiliui „<ph name="PROFILE_NAME" />“ skirtą paskyrą</translation>
 <translation id="8261506727792406068">Ištrinti</translation>
-<translation id="826246685091802258">„<ph name="BAD_FLAG" />“ neįdiegta šioje versijoje.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> neleidžia pelės žymeklio.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />“ suaktyvintas viso ekrano režimu.</translation>
 <translation id="8270242299912238708">PDF dokumentai</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Arba pasirinkite naują tinklą:</translation>
 <translation id="845627346958584683">Galiojimo laikas</translation>
 <translation id="8456681095658380701">Netinkamas pavadinimas</translation>
+<translation id="8457451314607652708">Importuoti žymes</translation>
 <translation id="8460336040822756677">Jei išjungsite „Smart Lock“, skirtą „<ph name="DEVICE_TYPE" />“, negalėsite atrakinti „Chrome“ įrenginių naudodami telefoną. Turėsite įvesti slaptažodį.</translation>
 <translation id="8461329675984532579">Namų paslaugos teikėjo pavadinimas</translation>
 <translation id="84613761564611563">Pateikta tinklo konfigūravimo NS užklausa, palaukite...</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Neaptikta kenkėjiškos programinės įrangos</translation>
 <translation id="8512476990829870887">Baigti procesą</translation>
 <translation id="851263357009351303">Visada leisti <ph name="HOST" /> rodyti vaizdus</translation>
-<translation id="8513191386157529469">„<ph name="CLIENT_NAME" />“ derina šią naršyklę.</translation>
 <translation id="8521475323816527629">Greitai gaukite programas</translation>
 <translation id="8523493869875972733">Palikti pakeitimus</translation>
 <translation id="8523849605371521713">Pridėta pagal politiką</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Konfigūruoti tinklo ryšius</translation>
 <translation id="8620790565535071193">Nuskaityti nepavyko</translation>
 <translation id="8622877356447980900">Ar norite išversti šį puslapį?</translation>
-<translation id="8623004009673949077">Programa su „kiosk_only“ deklaracijos atributu turi būti įdiegta „Chrome“ OS viešojo terminalo režimu.</translation>
 <translation id="8624205858755890468">Padėjėjui leidžiama rodyti susijusią informaciją, programas ir veiksmus.</translation>
 <translation id="862542460444371744">&amp;Plėtiniai</translation>
 <translation id="8627151598708688654">Šaltinio pasirinkimas</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Atnaujinti programinę aparatinę įrangą, norint užtikrinti geresnę apsaugą.</translation>
 <translation id="8823514049557262177">Kopijuoti nuorodos teks&amp;tą</translation>
 <translation id="8824701697284169214">Pridėti pu&amp;slapį...</translation>
-<translation id="8827850355924932817">Vieta nustatoma naudojant „Wi-Fi“ tinklą</translation>
 <translation id="8828933418460119530">DNS pavadinimas</translation>
 <translation id="8830796635868321089">Tikrinant, ar yra naujinių, įvyko klaida. Koreguokite <ph name="PROXY_SETTINGS_LINK_START" />tarpinio serverio<ph name="PROXY_SETTINGS_LINK_END" /> nustatymus.</translation>
 <translation id="8834039744648160717">Tinklo konfigūravimą valdo <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Rodyti kaip skirtuką</translation>
 <translation id="8884961208881553398">Pridėti naujų paslaugų</translation>
 <translation id="8885197664446363138">„Smart Lock“ nepasiekiama</translation>
-<translation id="8885905466771744233">Privatusis nurodyto plėtinio raktas jau yra. Naudokite šį raktą iš naujo arba pirmiausia jį ištrinkite.</translation>
 <translation id="8888432776533519951">Spalva:</translation>
-<translation id="8892992092192084762">Įdiegta tema „<ph name="THEME_NAME" />“.</translation>
 <translation id="8893928184421379330">Apgailestaujame, tačiau įrenginys <ph name="DEVICE_LABEL" /> neatpažįstamas.</translation>
 <translation id="8895454554629927345">Žymių sąrašas</translation>
 <translation id="88986195241502842">Puslapiu žemyn</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Įspėjimas: šiame kompiuteryje įgalinote bandymą „--scripts-require-action“, kuris apriboja šio plėtinio galimybes. Tačiau kiti įrenginiai gali nepalaikyti šio bandymo arba jis juose gali nebūti įgalintas. Tokiuose įrenginiuose šis plėtinys taip pat gali:</translation>
 <translation id="8910146161325739742">Ekrano vaizdo bendrinimas</translation>
 <translation id="8910222113987937043">Žymių, istorijos, slaptažodžių ir kitų nustatymų pakeitimai nebebus sinchronizuojami su „Google“ paskyra. Tačiau esami duomenys toliau bus saugomi „Google“ paskyroje ir juos bus galima tvarkyti <ph name="BEGIN_LINK" />„Google“ informacijos suvestinėje<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">„Google“ pažymėjo „<ph name="EXTENSION_NAME" />“ kaip kenkėjišką plėtinį ir neleido jo įdiegti.</translation>
 <translation id="8912793549644936705">Ištemptas</translation>
 <translation id="8915370057835397490">Įkeliamas pasiūlymas</translation>
 <translation id="8916476537757519021">Inkognito antrinis kadras: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB pelė prijungta</translation>
 <translation id="9076523132036239772">Apgailestaujame, nepavyko patvirtinti jūsų el. pašto ir slaptažodžio. Pabandykite pirmiausia prisijungti prie tinklo.</translation>
-<translation id="907841381057066561">Pakuojant nepavyko sukurti laikino talpiojo („zip“) failo.</translation>
 <translation id="9084064520949870008">Atidaryti kaip langą</translation>
 <translation id="9088234649737575428">„<ph name="PLUGIN_NAME" />“ užblokuotas taikant įmonės politiką</translation>
 <translation id="9088917181875854783">Patvirtinkite, kad šis prieigos raktas rodomas „<ph name="DEVICE_NAME" />“.</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Įvesti slaptafrazę</translation>
 <translation id="939736085109172342">Naujas aplankas</translation>
-<translation id="941543339607623937">Negaliojantis privatus raktas.</translation>
 <translation id="942532530371314860">„<ph name="APP_NAME" />“ bendrina „Chrome“ skirtuką ir garsą.</translation>
 <translation id="942954117721265519">Šiame kataloge nėra vaizdų.</translation>
 <translation id="945522503751344254">Siųsti atsiliepimą</translation>
-<translation id="951981865514037445"><ph name="URL" /> norima naudoti įrenginio vietą.</translation>
 <translation id="952992212772159698">Nesuaktyvinta</translation>
 <translation id="9580706199804957">Nepavyko prisijungti prie „Google“ paslaugų</translation>
 <translation id="958515377357646513">Palieskite, kad eitumėte pirmyn.</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 53ce262..14fd6cf 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Tikai šifrēt</translation>
 <translation id="1039337018183941703">Nederīgs vai bojāts fails</translation>
 <translation id="1042174272890264476">Jūsu datorā ir iebūvēta arī pārlūka <ph name="SHORT_PRODUCT_NAME" /> RLZ bibliotēka. RLZ piešķir neunikālu, personu neidentificējošu atzīmi, lai novērtētu noteiktas reklāmas kampaņas ietvaros ievadītos meklēšanas vienumus un pārlūka <ph name="SHORT_PRODUCT_NAME" /> lietojumu. Šīs atzīmes pārlūkā <ph name="PRODUCT_NAME" /> dažkārt tiek rādītas Google meklēšanas vaicājumos.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> vēlas jūsu ierīcē neatgriezeniski glabāt lielu datu apjomu.</translation>
 <translation id="1046059554679513793">Vai! Šis nosaukums jau tiek izmantots.</translation>
 <translation id="1047431265488717055">Saites te&amp;ksta kopēšana</translation>
 <translation id="1047726139967079566">Saglabāt šo lapu kā grāmatzīmi...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Vai atjaunot noklusējuma meklētājprogrammu?</translation>
 <translation id="1177863135347784049">Pielāgota</translation>
 <translation id="1178581264944972037">Pauzēt</translation>
-<translation id="1179803038870941185"><ph name="URL" /> vēlas iegūt MIDI ierīču pilnīgu pārvaldību.</translation>
 <translation id="1181037720776840403">Noņemt</translation>
 <translation id="1183237619868651138">Failu “<ph name="EXTERNAL_CRX_FILE" />” nevar instalēt lokālajā kešatmiņā.</translation>
 <translation id="1185924365081634987">Varat arī mēģināt <ph name="GUEST_SIGNIN_LINK_START" />pārlūkot kā viesis<ph name="GUEST_SIGNIN_LINK_END" />, lai novērstu šo tīkla kļūdu.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Piekļuve vienam datorā saglabātajam failam}zero{Piekļuve # datorā saglabātajiem failiem}one{Piekļuve # datorā saglabātajam failam}other{Piekļuve # datorā saglabātajiem failiem}}</translation>
 <translation id="1195076408729068893">Lai aktivizētu Smart Lock, ievadiet paroli. Nākamajā reizē varēsiet izmantot tālruni, lai atbloķētu savu ierīci (<ph name="DEVICE_TYPE" />).</translation>
 <translation id="1195447618553298278">Nezināma kļūda.</translation>
-<translation id="1196338895211115272">Neizdevās eksportēt privāto atslēgu.</translation>
 <translation id="119738088725604856">Ekrānuzņēmuma logs</translation>
 <translation id="1197979282329025000">Izgūstot printera <ph name="PRINTER_NAME" /> iespējas, radās kļūda. Šo printeri nevarēja reģistrēt pakalpojumā <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Sākam darbu!</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Jūsu administrators šim iestatījumam iesaka konkrētu vērtību.</translation>
 <translation id="1225177025209879837">Notiek pieprasījuma apstrāde...</translation>
 <translation id="1225211345201532184">5. plaukta vienums</translation>
-<translation id="1225404570112441414">Pievienojiet šo vietni savam plauktam, lai varētu to izmantot jebkurā laikā</translation>
 <translation id="1227507814927581609">Veidojot savienojumu ar ierīci <ph name="DEVICE_NAME" />, radās autentifikācijas kļūda.</translation>
 <translation id="1230807973377071856">sistēmas izvēlne</translation>
 <translation id="1232569758102978740">Bez nosaukuma</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Grāmatzīmju HTML fails</translation>
 <translation id="1303671224831497365">Netika atrasta neviena Bluetooth ierīce.</translation>
 <translation id="1306606229401759371">Mainīt iestatījumus</translation>
-<translation id="1307398858972670978">Savām parolēm varat piekļūt vietnē <ph name="SAVED_PASSWORDS_LINK" />, izmantojot jebkuru ierīci</translation>
 <translation id="1307559529304613120">Hmm... Sistēmai neizdevās saglabāt šīs ierīces ilgtermiņa API piekļuves pilnvaru.</translation>
 <translation id="1313405956111467313">Automātiska starpniekservera konfigurācija</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Meklēt</translation>
 <translation id="1386387014181100145">Sveicināti!</translation>
 <translation id="138784436342154190">Vai atjaunot noklusējuma sākumlapu?</translation>
-<translation id="1389297115360905376">To var pievienot tikai no <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Atvērt kā parastu cilni</translation>
-<translation id="1391807639023934267">Ir ielādēta ātrākā lapa.</translation>
 <translation id="1393283411312835250">Saule un mākoņi</translation>
 <translation id="1395262318152388157">Meklēšanas slīdnis</translation>
 <translation id="1395730723686586365">Startēts atjauninātājs</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Jūs atjaunināt uz nestabilu <ph name="PRODUCT_NAME" /> versiju, kurā ietvertas funkcijas, kas vēl tiek izstrādātas. Radīsies avārijas un neparedzētas kļūdas. Rīkojieties apdomīgi!</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (paplašinājuma ID “<ph name="EXTENSION_ID" />”) nav atļauts šāda veida sesijā.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Vai! Neizdevās ģenerēt nejauši izvēlētu RSA privāto atslēgu.</translation>
 <translation id="1420834118113404499">Multivides licences</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, lai atļautu savienošanu pārī</translation>
 <translation id="1426410128494586442">Jā</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Kopēt audio adresi</translation>
 <translation id="1465827627707997754">Picas šķēle</translation>
 <translation id="1467432559032391204">Pa kreisi</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vēlas pastāvīgi glabāt datus jūsu ierīcē.</translation>
-<translation id="1470719357688513792">Jaunie sīkfailu iestatījumi stāsies spēkā pēc šīs lapas atkārtotas ielādes.</translation>
 <translation id="1470811252759861213">Lai paplašinājumi būtu pieejami visos datoros, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Fails “<ph name="FILENAME" />” netika augšupielādēts. Jūsu Google diskā nepietiek vietas.</translation>
 <translation id="1475502736924165259">Sistēmā ir sertifikāti, kas neiederas nevienā no citām kategorijām</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Liels peles kursors</translation>
 <translation id="1543284117603151572">Importētas no pārlūkprogrammas Edge</translation>
 <translation id="1545177026077493356">Automātiskais kioska režīms</translation>
+<translation id="1545775234664667895">Instalēts motīvs “<ph name="THEME_NAME" />”</translation>
 <translation id="1545786162090505744">URL ar zīmēm % vaicājuma vietā</translation>
 <translation id="1546280085599573572">Šis paplašinājums mainīja iestatījumu, kura lapa tiek parādīta, noklikšķinot uz pogas Sākums.</translation>
 <translation id="1547572086206517271">Nepieciešama atsvaidzināšana</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />pārskatīt<ph name="END_BOLD" /> vietnes, kuras apmeklējis uzraudzītais lietotājs;
     <ph name="BEGIN_BOLD" />pārvaldīt<ph name="END_BOLD" /> citus iestatījumus.</translation>
 <translation id="1648943974594387137">Pierakstīšanās informācija ir novecojusi.</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> rindas nav redzamas&gt;</translation>
 <translation id="1650371550981945235">Rādīt ievades iespējas</translation>
 <translation id="1650709179466243265">Pievienot www. un .com un atvērt adresi</translation>
 <translation id="1651008383952180276">Jums divreiz jāievada viena un tā pati ieejas frāze.</translation>
-<translation id="1652972346408808053">Parole saglabāta. Savām parolēm varat piekļūt vietnē <ph name="SAVED_PASSWORDS_LINK" />, izmantojot jebkuru ierīci.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Pievienojiet printeri pakalpojumam Google mākoņdruka, lai varētu drukāt, atrodoties jebkurā vietā.}zero{Pievienojiet # printerus pakalpojumam Google mākoņdruka, lai varētu drukāt, atrodoties jebkurā vietā.}one{Pievienojiet # printeri pakalpojumam Google mākoņdruka, lai varētu drukāt, atrodoties jebkurā vietā.}other{Pievienojiet # printerus pakalpojumam Google mākoņdruka, lai varētu drukāt, atrodoties jebkurā vietā.}}</translation>
 <translation id="1657406563541664238">Palīdziet uzlabot programmu <ph name="PRODUCT_NAME" />, automātiski nosūtot lietošanas statistiku un avārijas pārskatus uzņēmumam Google</translation>
 <translation id="1658424621194652532">Šī lapa piekļūst jūsu mikrofonam.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Turpināt bloķēt sīkfailus</translation>
 <translation id="204622017488417136">Ierīcē tiks atjaunota iepriekš instalētā Chrome versija. Visi lietotāju konti un ierīcē glabātie dati tiks noņemti. Šo darbību nevar atsaukt.</translation>
 <translation id="2048182445208425546">Piekļūt jūsu tīkla datplūsmai</translation>
-<translation id="2049137146490122801">Administrators ir atspējojis piekļuvi lokāliem failiem jūsu ierīcē.</translation>
 <translation id="204914487372604757">Izveidot saīsni</translation>
 <translation id="2050339315714019657">Portrets</translation>
 <translation id="2053312383184521053">Dati par neaktīvu stāvokli</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Vēl nav ielādēts</translation>
 <translation id="2107494551712864447">Pirksta nospieduma pievienošana</translation>
-<translation id="2111843886872897694">Lietotnēm ir jābūt no tā paša saimniekdatora, kuru tās ietekmē.</translation>
 <translation id="2112877397266219826">Ieslēdziet skārienjutīgo vadāmierīci, lai varētu iestatīt šo sistēmu</translation>
 <translation id="21133533946938348">Piespraust cilni</translation>
 <translation id="2113479184312716848">Atvērt failu...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Aprakstiet problēmu.</translation>
 <translation id="2229161054156947610">Atlikusi vairāk nekā 1 stunda</translation>
 <translation id="222931766245975952">Fails ir saīsināts</translation>
-<translation id="222949136907494149"><ph name="URL" /> vēlas izmantot jūsu datora atrašanās vietu.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Mapi “<ph name="FOLDER_NAME" />” nevar izveidot. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Noklikšķiniet, lai skatītu šodienas svētku logotipu.</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Vienmēr bloķēt piekļuvi mikrofonam</translation>
 <translation id="2367972762794486313">Rādīt lietotnes</translation>
 <translation id="2371076942591664043">Atvērt, kad esat beidzis</translation>
-<translation id="237336063998926520">Izmantot jūsu IP adresi, lai noteiktu atrašanās vietu</translation>
 <translation id="2377319039870049694">Pāriet uz saraksta skatījumu</translation>
 <translation id="2377667304966270281">Nopietnas kļūdas</translation>
 <translation id="2378075407703503998">Atlasīti <ph name="SELCTED_FILE_COUNT" /> faili.</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> vēlas kopēt failus no krātuves <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Sertifikāta izdevējiestādes atslēgas ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> pievienots</translation>
-<translation id="246335896104539386">Importēt grāmatzīmes</translation>
 <translation id="2464089476039395325">HTTP starpniekserveris</translation>
 <translation id="2468902267404883140">Nevar izveidot savienojumu ar tālruni. Jums ir jāizmanto saderīgs Android tālrunis, kurš ir ieslēgts un atrodas rokas stiepiena attālumā. &lt;a&gt;Uzziniet vairāk&lt;/a&gt;.</translation>
 <translation id="2470702053775288986">Tika atspējoti neatbalstīti paplašinājumi</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Atinstalēt</translation>
 <translation id="2487067538648443797">Pievienot jaunu grāmatzīmi</translation>
 <translation id="248861575772995840">Nevar atrast tālruni. Jūsu ierīcē (<ph name="DEVICE_TYPE" />) jābūt iespējotam Bluetooth savienojumam. &lt;a&gt;Uzziniet vairāk&lt;/a&gt;.</translation>
-<translation id="2489316678672211764">Spraudnis (<ph name="PLUGIN_NAME" />) neatbild.</translation>
 <translation id="2489428929217601177">iepriekšējās dienas</translation>
 <translation id="2489918096470125693">Pievienot &amp;mapi...</translation>
 <translation id="249113932447298600">Diemžēl ierīce <ph name="DEVICE_LABEL" /> šobrīd netiek atbalstīta.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Jūsu “<ph name="NAME" />” datu pakalpojums ir veiksmīgi aktivizēts, un to var izmantot.</translation>
 <translation id="2566124945717127842">Izmantojiet funkciju Powerwash un atiestatiet savā <ph name="IDS_SHORT_PRODUCT_NAME" /> ierīcē sākotnējos rūpnīcas iestatījumus.</translation>
 <translation id="2568774940984945469">Informācijas joslas konteiners</translation>
-<translation id="2570000010887652771">Dati ir saglabāti.</translation>
 <translation id="257088987046510401">Motīvi</translation>
 <translation id="2572032849266859634">Tika piešķirta tikai lasīšanas piekļuve krātuvei <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Izvēlieties attēlu un vārdu</translation>
 <translation id="2575247648642144396">Šī ikona ir redzama, ja pašlaik atvērtajā lapā var lietot paplašinājumu. Lai lietotu šo paplašinājumu, noklikšķiniet uz ikonas vai nospiediet taustiņu kombināciju <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Nevar atrast tālruni. Jūsu ierīcē (<ph name="DEVICE_TYPE" />) jābūt izveidotam savienojumam ar Wi-Fi vai mobilo tīklu. &lt;a&gt;Uzziniet vairāk&lt;/a&gt;.</translation>
-<translation id="2576842806987913196">CRX fails ar šādu nosaukumu jau pastāv.</translation>
 <translation id="257779572837908839">Iestatīt kā sistēmu “Chromebox sapulcēm”</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nevar atvienot sējumu<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Ja dzēsīsiet sertifikāta izdevējiestādes (SI) sertifikātu, pārlūkprogramma vairs nevarēs uzticēties nevienam šīs SI izsniegtajam sertifikātam.</translation>
 <translation id="2653659639078652383">Iesniegt</translation>
 <translation id="265390580714150011">Lauka vērtība</translation>
-<translation id="2654286334048437383">Eksportēt grāmatzīmes</translation>
 <translation id="2655386581175833247">Lietotāja sertifikāts:</translation>
 <translation id="2660779039299703961">Notikums</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Multivides galerijas pievienošana pēc direktorija</translation>
 <translation id="2908789530129661844">Tālināt ekrānu</translation>
 <translation id="2910318910161511225">Izveidojiet savienojumu ar tīklu un mēģiniet vēlreiz.</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> vēlas lietot jūsu mikrofonu.</translation>
 <translation id="2913331724188855103">Atļaut vietnēm saglabāt un lasīt sīkfailu datus (ieteicams)</translation>
 <translation id="2916073183900451334">Tabulēšanas taustiņa piespiešana tīmekļa lapā izgaismo saites, kā arī veidlapu laukus</translation>
 <translation id="2916745397441987255">Meklēt paplašinājumus</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Notiek klausīšanās…</translation>
 <translation id="3141917231319778873">Attiecīgais pieprasījums netiek atbalstīts šajā ierīcē: “<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3144126448740580210">GATAVS</translation>
-<translation id="3144135466825225871">Neizdevās aizstāt crx failu. Pārbaudiet, vai fails tiek izmantots.</translation>
 <translation id="3144647712221361880">Atvērt saiti kā</translation>
 <translation id="3149510190863420837">Chrome lietotnes</translation>
 <translation id="3150927491400159470">Veikt stingro atkārtoto ielādi</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Vienmēr palaist visās vietnēs</translation>
 <translation id="3312424061798279731">Iespējotās valodas</translation>
 <translation id="3312903956926554846">Instalēt darbvirsmā</translation>
-<translation id="3313473140726597081">Jūsu sākumlapa tika mainīta uz: <ph name="URL" />. Lai atspējotu paplašinājumus, kas maina sākumlapu, noklikšķiniet uz Atjaunot.</translation>
 <translation id="3313590242757056087">Lai iestatītu, kuras vietnes var skatīt uzraudzītais lietotājs, konfigurējiet ierobežojumus
     un iestatījumus, apmeklējot vietni <ph name="MANAGEMENT_URL" />.
     Ja nemainīsiet noklusējuma iestatījumus, lietotājs <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informācija par lietotni</translation>
 <translation id="3335947283844343239">Vēlreiz atvērt aizvērto cilni</translation>
-<translation id="3337069537196930048">Spraudnis <ph name="PLUGIN_NAME" /> tika bloķēts, jo tas ir novecojis.</translation>
 <translation id="3340978935015468852">Iestatījumi</translation>
 <translation id="3341703758641437857">Atļaut piekļuvi faila vietrāžiem URL</translation>
 <translation id="3342361181740736773">“<ph name="TRIGGERING_EXTENSION_NAME" />” vēlas noņemt šo paplašinājumu.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Grāmatzīme pievienota</translation>
 <translation id="3389312115541230716">Uzdevumjoslā ar peles labo pogu noklikšķiniet uz ikonas <ph name="SMALL_PRODUCT_LOGO" />.</translation>
 <translation id="3391716558283801616">7. cilne</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> vēlas lietot jūsu kameru un mikrofonu.</translation>
 <translation id="3396331542604645348">Atlasītais printeris nav pieejams vai nav instalēts pareizi. Pārbaudiet savu printeri vai pamēģiniet atlasīt citu printeri.</translation>
 <translation id="3399432415385675819">Paziņojumi tiks atspējoti</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Pārlūks Chrome tiek automātiski atjaunināts, tādēļ jums vienmēr būs pieejama visjaunākā versija.</translation>
 <translation id="3551320343578183772">Aizvērt cilni</translation>
 <translation id="3552780134252864554">Izdzēst aizverot</translation>
-<translation id="355298399003313926"><ph name="URL" /> vēlas atbildēt uz pieejamības notikumiem.</translation>
 <translation id="3555812735919707620">Noņemt paplašinājumu</translation>
 <translation id="3556000484321257665">Jūsu meklētājprogramma tika mainīta uz: <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Privātās atslēgas ievades vērtībai jābūt derīgam ceļam.</translation>
 <translation id="3563432852173030730">Kioska lietojumprogrammu nevarēja lejupielādēt.</translation>
 <translation id="3564334271939054422">Iespējams, izmantotajā Wi-Fi tīklā (<ph name="NETWORK_ID" />) tiks prasīts apmeklēt pieteikšanās lapu.</translation>
 <translation id="3564708465992574908">Tālummaiņas līmeņi</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Sertifikāta nosaukuma ierobežojumi</translation>
 <translation id="3596235046596950091">Iespējot mākoņa pakalpojumus</translation>
 <translation id="3599863153486145794">Notīra vēsturi no visām ierīcēm, kurās esat pierakstījies. Jūsu Google kontam vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> var būt citu veidu pārlūkošanas vēstures dati.</translation>
-<translation id="3600456501114769456">Administrators ir atspējojis piekļuvi lokāliem failiem jūsu ierīcē.</translation>
 <translation id="3600792891314830896">Izslēgt skaņu vietnēm, kurās tiek atskaņota skaņa</translation>
 <translation id="3603177256297531067">Šo lapu nevarēja pārtulkot</translation>
 <translation id="3603533104205588786">Varat noklikšķināt uz zvaigznītes, lai saglabātu lapu kā grāmatzīmi</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Ekrānuzņēmumi atspējoti</translation>
 <translation id="3625870480639975468">Atiestatīt tālummaiņu</translation>
 <translation id="3626281679859535460">Spilgtums</translation>
-<translation id="3627052133907344175">Paplašinājumam ir nepieciešama “<ph name="IMPORT_NAME" />” versija <ph name="IMPORT_VERSION" />, taču ir instalēta tikai versija <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Atlikusi mazāk nekā 1 minūte</translation>
 <translation id="3627588569887975815">Atvērt saiti inkognito logā</translation>
 <translation id="3627671146180677314">Netscape sertifikāta atjaunošanas laiks</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Valodas iestatījumi</translation>
 <translation id="3668823961463113931">Apdarinātāji</translation>
 <translation id="3670229581627177274">Ieslēgt Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vēlas pastāvīgi uzglabāt lielu datu apjomu jūsu lokālajā datorā.</translation>
 <translation id="3672681487849735243">Konstatēta rūpnīcas kļūda</translation>
 <translation id="367645871420407123">Atstājiet tukšu, ja vēlaties iestatīt saknes paroli kā noklusējuma testa attēla vērtību.</translation>
 <translation id="3678156199662914018">Paplašinājums: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Esat bezsaistē</translation>
 <translation id="3788401245189148511">Varētu:</translation>
 <translation id="3789841737615482174">Instalēt</translation>
-<translation id="3790146417033334899">Spraudnis <ph name="PLUGIN_NAME" /> darbojas tikai darbvirsmas režīmā.</translation>
 <translation id="379082410132524484">Kartes derīguma termiņš ir beidzies</translation>
 <translation id="3792890930871100565">Atvienot printerus</translation>
 <translation id="379422718204375917">Izmantot Smart Lock, lai pierakstītos kontā</translation>
-<translation id="3794595850995182458">Izejas lapa</translation>
 <translation id="3796648294839530037">Izlases tīkli:</translation>
 <translation id="3797900183766075808">&amp;Meklēt “<ph name="SEARCH_TERMS" />” meklētājprogrammā <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Ļauj iespējot vai atspējot funkciju “Pieskarties, lai noklikšķinātu”.</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Iespējot <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Ievadīts nederīgs saglabāšanas tips.</translation>
 <translation id="3983586614702900908">ierīces, ko piedāvā nezināms ražotājs</translation>
-<translation id="3984413272403535372">Kļūda paplašinājuma parakstīšanas laikā.</translation>
 <translation id="3987938432087324095">Diemžēl nav saprotams.</translation>
 <translation id="3988996860813292272">Laika joslas atlasīšana</translation>
 <translation id="3989635538409502728">Izrakstīties</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Instalējiet lietotnes un spēles no pakalpojuma Google Play savā Chromebook datorā. &lt;a target="_blank" href="<ph name="URL" />"&gt;Uzziniet vairāk&lt;/a&gt;.</translation>
 <translation id="4088095054444612037">Pieņemt grupai</translation>
 <translation id="4090103403438682346">Iespējot verificētu piekļuvi</translation>
-<translation id="4090404313667273475">Dažu šīs lapas elementu attēlošanai ir nepieciešams spraudnis <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Šis paplašinājums tiek pārvaldīts, un to nevar noņemt.)</translation>
 <translation id="4091434297613116013">papīra lapas</translation>
 <translation id="4093955363990068916">Lokālais fails:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> tagad var sinhronizēt jūsu paroles.</translation>
 <translation id="4715553623069266137">ļoti īsa (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash, lai uzlabotu drošību</translation>
-<translation id="471800408830181311">Neizdevās izvadīt privāto atslēgu.</translation>
 <translation id="4720113199587244118">Pievienot ierīces</translation>
 <translation id="4720185134442950733">Mobilo datu tīkls</translation>
 <translation id="4722920479021006856">Lietotnē <ph name="APP_NAME" /> tiek kopīgots jūsu ekrāns.</translation>
@@ -2508,7 +2473,6 @@
 <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>
 <translation id="4918086044614829423">Pieņemt</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> vēlas lietot jūsu kameru.</translation>
 <translation id="4920887663447894854">Šīs vietnes ir bloķētas un nevar izsekot jūsu atrašanās vietu šajā lapā:</translation>
 <translation id="492299503953721473">Noņemt Android lietotnes</translation>
 <translation id="4923279099980110923">Jā, es vēlos palīdzēt</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Šis paplašinājums satur ļaunprātīgu programmatūru.</translation>
 <translation id="498294082491145744">mainīt iestatījumus, ar kuriem tiek pārvaldīta vietņu piekļuve funkcijām, piemēram, sīkfailiem, JavaScript, spraudņiem, ģeogrāfiskajai atrašanās vietai, mikrofonam, kamerai u.c.</translation>
 <translation id="4988526792673242964">Lapas</translation>
-<translation id="4988792151665380515">Neizdevās eksportēt publisko atslēgu.</translation>
 <translation id="49896407730300355">Pagriezt &amp;pretēji pulksteņrādītāju kustības virzienam</translation>
 <translation id="4989966318180235467">Pārbaudīt &amp;fona lapu</translation>
 <translation id="4990343175649730969">Lejupielādēt Chrome tīrīšanas rīku</translation>
@@ -2578,7 +2541,6 @@
 <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>
-<translation id="5028012205542821824">Instalēšana nav iespējota.</translation>
 <translation id="5029568752722684782">Dzēst kopiju</translation>
 <translation id="5030338702439866405">Izsniedzis</translation>
 <translation id="5036662165765606524">Neļaut nevienai vietnei automātiski lejupielādēt vairākus failus</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Radās kļūda.</translation>
 <translation id="5094721898978802975">Sazināties ar iebūvētām lietojumprogrammām, kas sadarbojas</translation>
 <translation id="5097002363526479830">Neizdevās izveidot savienojumu ar tīklu <ph name="NAME" />: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nevar atrast ceļu uz direktoriju, lai to atpakotu.</translation>
 <translation id="5099354524039520280">uz augšu</translation>
 <translation id="5100114659116077956">Lai varētu izmantot jaunākās funkcijas, atjauniniet savu Chromebox datoru.</translation>
 <translation id="5101042277149003567">Atvērt visas grāmatzīmes</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Rādīt mapē</translation>
 <translation id="5171045022955879922">Meklējiet vai ievadiet URL.</translation>
 <translation id="5171343362375269016">Apmainītā atmiņa</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vēlas pastāvīgi glabāt datus lokālajā datorā.</translation>
 <translation id="5177479852722101802">Turpināt piekļuves bloķēšanu kamerai un mikrofonam</translation>
 <translation id="5177526793333269655">Sīktēlu skatījums</translation>
 <translation id="5177549709747445269">Jūs izmantojat mobilos datus</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatēt šo ierīci</translation>
 <translation id="5293170712604732402">Atjaunot iestatījumus uz sākotnējiem noklusējuma iestatījumiem</translation>
 <translation id="5298219193514155779">Tematu izveidoja</translation>
-<translation id="5298363578196989456">Nevar importēt paplašinājumu “<ph name="IMPORT_NAME" />”, jo tas nav koplietots modulis.</translation>
 <translation id="5299109548848736476">Nesekot</translation>
 <translation id="5299682071747318445">Visi dati ir šifrēti, izmantojot sinhronizācijas ieejas frāzi</translation>
 <translation id="5300589172476337783">Rādīt</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> vēlas savienot pārī</translation>
 <translation id="5332624210073556029">Laika josla:</translation>
 <translation id="5334142896108694079">Skriptu kešatmiņa</translation>
-<translation id="533433379391851622">Paredzētā versija bija <ph name="EXPECTED_VERSION" />, bet faktiskā versija ir <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Skatīt avotu</translation>
 <translation id="5335458522276292100">Dublēšana <ph name="BEGIN_LINK" />Google diskā<ph name="END_LINK" />: <ph name="FILE_COUNT" /></translation>
 <translation id="5337771866151525739">Instalēts, izmantojot trešās puses lietotni.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Atļaut vietnēm atskaņot skaņu</translation>
 <translation id="5390284375844109566">Rādītājā iekļautā datu bāze</translation>
 <translation id="5390743329570580756">Sūtīt šim:</translation>
-<translation id="5396126354477659676">Spraudnim <ph name="PEPPER_PLUGIN_NAME" /> domēnā <ph name="PEPPER_PLUGIN_DOMAIN" /> ir nepieciešama piekļuve jūsu datoram.</translation>
 <translation id="5397794290049113714">Jūs</translation>
 <translation id="5398572795982417028">Lapas atsauce ārpus diapazona, ierobežojums: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklāmu rādīšana bloķēta</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Atjaunot visas cilnes</translation>
 <translation id="5486261815000869482">Apstipriniet paroli</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> koplieto jūsu ekrānu ar cilni <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Privātās atslēgas ievades vērtībai jābūt.</translation>
 <translation id="5486561344817861625">Imitēt pārlūkprogrammas restartēšanu</translation>
 <translation id="5487521232677179737">Notīrīt datus</translation>
 <translation id="5488093641312826914">Vienums “<ph name="COPIED_ITEM_NAME" />” ir nokopēts</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Atjauninājuma lejupielādei tiks izmantoti <ph name="UPDATE_SIZE_MB" /> MB mobilo datu. Vai vēlaties turpināt?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Citas meklētājprogrammas</translation>
-<translation id="5606674617204776232">Spraudnis <ph name="PEPPER_PLUGIN_NAME" /> vietnē <ph name="PEPPER_PLUGIN_DOMAIN" /> vēlas piekļūt jūsu ierīcei.</translation>
 <translation id="5608580678041221894">Pieskarieties tālāk norādītajiem taustiņiem, lai pielāgotu vai pārvietotu apgriešanas apgabalu.</translation>
 <translation id="5609231933459083978">Šķiet, ka lietojumprogramma nav derīga.</translation>
 <translation id="5610038042047936818">Pārslēgt uz kameras režīmu</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Tulkojums</translation>
 <translation id="5991049340509704927">Palielināt</translation>
 <translation id="5993332328670040093">Jūsu datu lietojums vairs netiks mērīts.</translation>
-<translation id="6003177993629630467">Pārlūkprogrammas <ph name="PRODUCT_NAME" /> automātiskā atjaunināšana, iespējams, nebūs pieejama.</translation>
 <translation id="600424552813877586">Nederīga lietojumprogramma.</translation>
 <translation id="6005695835120147974">Multivides maršrutētājs</translation>
 <translation id="6006484371116297560">Klasiskais motīvs</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Dublēšana mākonī</translation>
 <translation id="6040143037577758943">Aizvērt</translation>
 <translation id="6040852767465482106">Anonīma identitāte</translation>
+<translation id="6041155700700864984">Aizvērt pilnekrāna režīmu</translation>
 <translation id="604124094241169006">Automātiski</translation>
 <translation id="6042169520002885235">Printera ražotāja un modeļa atlase</translation>
 <translation id="6042308850641462728">Vairāk</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Veikt normālo atkārtoto ielādi</translation>
 <translation id="6059652578941944813">Sertifikātu hierarhija</translation>
 <translation id="6059925163896151826">USB ierīces</translation>
-<translation id="6060435378291459521">Spraudnis <ph name="PLUGIN_NAME" /> avarēja.</translation>
 <translation id="6064217302520318294">Ekrāna bloķēšana</translation>
 <translation id="6065289257230303064">Sertifikāta subjekta kataloga atribūti</translation>
 <translation id="6068338049763724728">Iespējot attālu reģistrāciju</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Ļauj pielāgot ekrāna izšķirtspēju.</translation>
 <translation id="6238923052227198598">Paturēt pēdējo piezīmi bloķēšanas ekrānā</translation>
 <translation id="6239558157302047471">Atkārtoti ielādēt &amp;ietvaru</translation>
-<translation id="624022915548992686">Izejas lapa</translation>
 <translation id="6241530762627360640">Piekļūt informācijai par Bluetooth ierīcēm, kuras savienotas pārī ar jūsu sistēmu, un atrast tuvumā esošas Bluetooth ierīces.</translation>
 <translation id="6243774244933267674">Serveris nav pieejams.</translation>
 <translation id="6246413617632217567">Nevarēja importēt uzraudzīto lietotāju. Lūdzu, pārbaudiet vietu cietajā diskā un atļaujas un mēģiniet vēlreiz.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Nezināma tīkla kļūda</translation>
 <translation id="6313641880021325787">IZIET NO VR</translation>
 <translation id="6314819609899340042">Atkļūdošanas funkcijas šajā <ph name="IDS_SHORT_PRODUCT_NAME" /> ierīcē ir veiksmīgi iespējotas.</translation>
-<translation id="6315343732431721770">Jūsu sākumlapas tika mainītas, lai ietvertu: <ph name="URL" />. Lai atspējotu paplašinājumus, kas maina sākumlapu, noklikšķiniet uz Atjaunot.</translation>
 <translation id="6315493146179903667">Parādīt visus</translation>
 <translation id="6316806695097060329">Šī <ph name="SHORT_PRODUCT_NAME" /> ierīce tika izstrādāta, lai nodrošinātu jums vislabākās tīmekļa izmantošanas iespējas.</translation>
 <translation id="6317318380444133405">Vairs netiek atbalstīts.</translation>
 <translation id="6317369057005134371">Notiek lietojumprogrammas loga gaidīšana...</translation>
 <translation id="6318407754858604988">Lejupielāde ir sākta</translation>
-<translation id="6322279351188361895">Neizdevās nolasīt privāto atslēgu.</translation>
 <translation id="6325191661371220117">Atspējot automātisko palaišanu</translation>
 <translation id="6326175484149238433">Noņemt no pārlūka Chrome</translation>
 <translation id="6326855256003666642">Aktīvo darbību skaits</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Izvēlēties, kas jāsinhronizē</translation>
 <translation id="6333064448949140209">Fails tiks nosūtīts Google serveriem atkļūdošanai</translation>
 <translation id="6333834492048057036">Iezīmē adreses joslu meklēšanai</translation>
-<translation id="6336907568130557310">Jūsu paroles būs redzamas ikvienam, kas var skatīt eksportēto failu. Nekopīgojiet šo failu ne ar vienu un pēc importēšanas dzēsiet to.</translation>
 <translation id="6339668969738228384">Izveidot profilu kontam <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Nevarēja izveidot savienojumu ar serveri. Pārbaudiet tīkla savienojumu un mēģiniet vēlreiz. Ja problēma joprojām pastāv, restartējiet Chromebook datoru.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Vietnes var saglabāt un lasīt sīkfailu datus</translation>
 <translation id="6388771388956873507">Ar pirkstu pieskarieties savas ierīces pirkstu nospiedumu sensoram.</translation>
 <translation id="6390799748543157332">Lapas, ko skatāt šajā logā, nebūs redzamas pārlūka vēsturē, un, kad aizvērsiet visus viesa režīmā atvērtos logus, datorā nepaliks nekādi vienumi, piemēram, sīkfaili. Tomēr visi lejupielādētie faili tiks saglabāti.</translation>
-<translation id="6391538222494443604">Ievades katalogam jābūt.</translation>
 <translation id="6395423953133416962">Sūtīt <ph name="BEGIN_LINK1" />sistēmas informāciju<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />datus<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Pārtraukt runāt</translation>
 <translation id="6397592254427394018">Atvērt visas grāmatzīmes &amp;inkognito režīma logā</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Pārvaldīt JavaScript bloķēšanas iestatījumus...</translation>
 <translation id="6459488832681039634">Izmantot atlasīto meklēšanai</translation>
 <translation id="6460601847208524483">Atrast nākamo</translation>
-<translation id="6462080265650314920">Instalētajām lietotnēm ir jābūt ar šāda veida saturu: <ph name="CONTENT_TYPE" />.</translation>
 <translation id="6462082050341971451">Vai joprojām esat šeit?</translation>
 <translation id="6463795194797719782">Rediģēt</translation>
 <translation id="6466988389784393586">&amp;Atvērt visas grāmatzīmes</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Vai vēlaties, lai Google tulkotu šo lapu šādā valodu kombinācijā: <ph name="SOURCE_LANGUAGE" />–<ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Rādītājierīce ir pievienota.</translation>
-<translation id="6677037229676347494">Paredzētais ID bija <ph name="EXPECTED_ID" />, bet faktiskais ID ir <ph name="NEW_ID" />.</translation>
 <translation id="6678717876183468697">Vaicājuma URL</translation>
 <translation id="6680028776254050810">Pārslēgt lietotājus</translation>
 <translation id="6680442031740878064">Pieejamā vieta: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Jebkurā brīdī sadaļā <ph name="BEGIN_LINK" />Iestatījumi<ph name="END_LINK" /> varat pielāgot, kādu informāciju Google apkopo.</translation>
 <translation id="6904344821472985372">Atsaukt piekļuvi failiem</translation>
 <translation id="6904655473976120856">Lai izietu, nospiediet lietotņu pogu</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> vēlas kopīgot jūsu ekrānu.</translation>
-<translation id="6909461304779452601">No šīs vietnes nevar pievienot lietotnes, paplašinājumus un lietotāja skriptus.</translation>
 <translation id="6910211073230771657">Dzēsts</translation>
 <translation id="691024665142758461">lejupielādēt vairākus failus</translation>
 <translation id="6911324888870229398">Tīkla savienojums tika zaudēts. Pārbaudiet savienojumu vai izmēģiniet citu Wi-Fi tīklu.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Kļūda: nespēj dekodēt paplašinājumu</translation>
 <translation id="7473891865547856676">Nē, paldies!</translation>
 <translation id="747459581954555080">Atjaunot visu</translation>
-<translation id="7475034671245341386">Spraudnī <ph name="PLUGIN_NAME" /> radās kļūda.</translation>
 <translation id="7475671414023905704">Netscape pazaudētās paroles URL</translation>
 <translation id="7476454130948140105">Nevar veikt atjaunināšanu, jo akumulatora uzlādes līmenis ir pārāk zems (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Ja esat aizmirsis savu ieejas frāzi, apturiet un atiestatiet sinhronizāciju, izmantojot <ph name="BEGIN_LINK" />Google vadības paneli<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Statusa atbildētāja sertifikāts</translation>
 <translation id="7508545000531937079">Slaidrāde</translation>
 <translation id="7513029293694390567">Automātiski pierakstieties vietnēs, izmantojot saglabātos akreditācijas datus. Ja funkcija ir atspējota, apstiprināšana būs jāveic ikreiz, kad pierakstīsieties vietnē.</translation>
-<translation id="7515670329462166359">Lai varētu atskaņot aizsargātu saturu, <ph name="URL" /> ir unikāli jāidentificē jūsu ierīce.</translation>
 <translation id="7517569744831774757">Atjaunot iestatījumus uz sākotnējiem noklusējuma iestatījumiem</translation>
 <translation id="7517786267097410259">Paroles izveide —</translation>
 <translation id="7518150891539970662">WebRTC žurnāli (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     mēģināt atkārtoti izveidot uzraudzītu lietotāju.</translation>
 <translation id="756445078718366910">Atvērt pārlūkprogrammas logu</translation>
 <translation id="7564847347806291057">Pārtraukt procesu</translation>
-<translation id="7565291891798266313">Jūsu meklētājprogramma tika mainīta uz: <ph name="URL" />. Lai mainītu paplašinājumus, kas maina meklētājprogrammu, noklikšķiniet uz Atjaunot.</translation>
 <translation id="7566118625369982896">Pārvaldīt Play lietotņu saites</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome dati tika notīrīti</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Akumulatora uzlāde</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Kārtot</translation>
-<translation id="7577815336900970562">Izmantot Wi-Fi vai mobilo tīklu, lai noteiktu atrašanās vietu</translation>
 <translation id="7579149537961810247">Nerādīt vietnes</translation>
 <translation id="7580671184200851182">Atskaņot to pašu audio saturu visos skaļruņos (mono audio)</translation>
 <translation id="7581462281756524039">Tīrīšanas rīks</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Sesijas saglabāšana</translation>
 <translation id="7781335840981796660">Visi lietotāju konti un vietējie dati tiks dzēsti.</translation>
 <translation id="7782102568078991263">Vairāk ieteikumu no Google nav pieejams</translation>
+<translation id="778330624322499012">Nevarēja ielādēt <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Šis fails tika bloķēts datora drošības iestatījumu dēļ.</translation>
 <translation id="7786207843293321886">Aizvērt viesa sesiju</translation>
 <translation id="7786889348652477777">&amp;Atkārtoti ielādēt lietotni</translation>
@@ -4449,7 +4391,6 @@
 <translation id="8001504501378762252">Iespējams, kādā vietnē tika nozagta jūsu parole</translation>
 <translation id="8004582292198964060">Pārlūkprogramma</translation>
 <translation id="8008356846765065031">Internets atvienots. Pārbaudiet interneta savienojumu.</translation>
-<translation id="8008765610824028412">Nevarēja ielādēt spraudni <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Automātiski sūtīt noteiktu sistēmas informāciju un lapas saturu Google serveriem, lai palīdzētu noteikt bīstamas lietotnes un vietnes</translation>
 <translation id="8012382203418782830">Šī lapa ir tulkota.</translation>
 <translation id="8014154204619229810">Pašlaik darbojas atjauninātājs. Pēc brīža atsvaidziniet, lai pārbaudītu vēlreiz.</translation>
@@ -4566,7 +4507,6 @@
 <translation id="8191230140820435481">Pārvaldīt jūsu lietotnes, paplašinājumus un motīvus</translation>
 <translation id="8191453843330043793">V8 starpniekservera atrisinātājs</translation>
 <translation id="8195027750202970175">Lielums diskā</translation>
-<translation id="8195739004487400241">Jūsu sākumlapa tika mainīta uz: <ph name="URL" />. Lai atspējotu paplašinājumus, kas maina sākumlapu, noklikšķiniet uz Atjaunot.</translation>
 <translation id="8199300056570174101">Tīklu (pakalpojumu) un ierīču rekvizīti</translation>
 <translation id="8200772114523450471">Kopsavilkums</translation>
 <translation id="8202160505685531999">Lai atjauninātu savu <ph name="DEVICE_TYPE" /> profilu, lūdzu, atkārtoti ievadiet paroli.</translation>
@@ -4610,7 +4550,6 @@
 <translation id="8261378640211443080">Šis paplašinājums nav norādīts vietnē <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> un, iespējams, tika pievienots, jums nezinot.</translation>
 <translation id="8261387128019234107">Pievienot kontu šim lietotājam: <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Dzēst</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> šajā versijā nav iekļauts.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ir atspējojis jūsu peles kursoru.</translation>
 <translation id="8264718194193514834">Paplašinājums <ph name="EXTENSION_NAME" /> aktivizēja pilnekrāna režīmu.</translation>
 <translation id="8270242299912238708">PDF dokumenti</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Vai atlasiet jaunu tīklu:</translation>
 <translation id="845627346958584683">Termiņa beigu laiks</translation>
 <translation id="8456681095658380701">Nederīgs nosaukums</translation>
+<translation id="8457451314607652708">Importēt grāmatzīmes</translation>
 <translation id="8460336040822756677">Ja izslēgsiet sistēmu Smart Lock ierīcei <ph name="DEVICE_TYPE" />, nevarēsiet atbloķēt savas Chrome ierīces, izmantojot tālruni. Jums būs jāievada parole.</translation>
 <translation id="8461329675984532579">Mājas pakalpojumu sniedzēja nosaukums</translation>
 <translation id="84613761564611563">Tika pieprasīta tīkla konfigurēšanas lietotāja saskarne. Lūdzu, uzgaidiet...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Netika atrasta neviena kaitīga programmatūra.</translation>
 <translation id="8512476990829870887">Pārtraukt procesu</translation>
 <translation id="851263357009351303">Vienmēr atļaut vietnei <ph name="HOST" /> rādīt attēlus</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> atkļūdo šo pārlūku.</translation>
 <translation id="8521475323816527629">Ātri piekļūstiet savām lietotnēm</translation>
 <translation id="8523493869875972733">Saglabāt izmaiņas</translation>
 <translation id="8523849605371521713">Pievienots, jo iestatīts politikā</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Konfigurēt tīkla savienojumus</translation>
 <translation id="8620790565535071193">Meklēšana neizdevās</translation>
 <translation id="8622877356447980900">Vai vēlaties tulkot šo lapu?</translation>
-<translation id="8623004009673949077">Lai instalētu lietotni ar manifesta atribūtu “kiosk_only”, ir jāizmanto Chrome OS kioska režīms.</translation>
 <translation id="8624205858755890468">Ļauj Asistentam rādīt saistītu informāciju, lietotnes un darbības.</translation>
 <translation id="862542460444371744">Paplašināju&amp;mi</translation>
 <translation id="8627151598708688654">Avota atlasīšana</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Atjaunināt aparātprogrammatūru, lai uzlabotu drošību.</translation>
 <translation id="8823514049557262177">Kopēt saites te&amp;kstu</translation>
 <translation id="8824701697284169214">Pievienot &amp;lapu...</translation>
-<translation id="8827850355924932817">Izmantot Wi-Fi tīklu, lai noteiktu atrašanās vietu</translation>
 <translation id="8828933418460119530">DNS nosaukums</translation>
 <translation id="8830796635868321089">Atjauninājumu pārbaude, izmantojot esošos starpniekservera iestatījumus, neizdevās. Lūdzu, pielāgojiet <ph name="PROXY_SETTINGS_LINK_START" />starpniekservera iestatījumus<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Tīkla konfigurāciju kontrolē <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">Rādīt kā &amp;cilni</translation>
 <translation id="8884961208881553398">Pievienot jaunus pakalpojumus</translation>
 <translation id="8885197664446363138">Smart Lock nav pieejams</translation>
-<translation id="8885905466771744233">Norādītajam paplašinājumam jau eksistē privāta atslēga. Atkārtoti izmantojiet šo atslēgu vai vispirms to izdzēsiet.</translation>
 <translation id="8888432776533519951">Krāsa:</translation>
-<translation id="8892992092192084762">Instalēts motīvs <ph name="THEME_NAME" />.</translation>
 <translation id="8893928184421379330">Diemžēl ierīci <ph name="DEVICE_LABEL" /> nevarēja atpazīt.</translation>
 <translation id="8895454554629927345">Grāmatzīmju saraksts</translation>
 <translation id="88986195241502842">Lejup</translation>
@@ -4997,7 +4932,6 @@
 <translation id="8908902564709148335">Brīdinājums. Šajā datorā esat iespējojis karodziņu “--scripts-require-action”, kas ierobežo šī paplašinājuma iespējas. Tomēr iespējams, ka citās ierīcēs šis karodziņš netiek atbalstīts vai nav iespējots. Šajās ierīcēs šis paplašinājums var arī:</translation>
 <translation id="8910146161325739742">Ekrāna kopīgošana</translation>
 <translation id="8910222113987937043">Jūsu grāmatzīmju, vēstures, paroļu un citu iestatījumu dati vairs netiks sinhronizēti jūsu Google kontā. Tomēr jūsu esošie 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="8911079125461595075">Google ir atzīmējis paplašinājumu <ph name="EXTENSION_NAME" /> kā ļaunprātīgu, un instalācija nav notikusi.</translation>
 <translation id="8912793549644936705">Izstiept</translation>
 <translation id="8915370057835397490">Notiek ieteikumu ielāde...</translation>
 <translation id="8916476537757519021">Inkognito apakšrāmis: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB pele ir pievienota.</translation>
 <translation id="9076523132036239772">Diemžēl jūsu e-pasta adresi vai paroli nevarēja verificēt. Vispirms mēģiniet izveidot savienojumu ar tīklu.</translation>
-<translation id="907841381057066561">Pakošanas laikā neizdevās izveidot pagaidu zip failu.</translation>
 <translation id="9084064520949870008">Atvērt kā logu</translation>
 <translation id="9088234649737575428">Spraudnis <ph name="PLUGIN_NAME" /> tika bloķēts saskaņā ar uzņēmuma politiku</translation>
 <translation id="9088917181875854783">Pārbaudiet, vai ieejas atslēga ir redzama ierīcē <ph name="DEVICE_NAME" />:</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ievadiet ieejas frāzi</translation>
 <translation id="939736085109172342">Jauna mape</translation>
-<translation id="941543339607623937">Nederīga privātā atslēga.</translation>
 <translation id="942532530371314860">Lietotne <ph name="APP_NAME" /> koplieto Chrome cilni un audio.</translation>
 <translation id="942954117721265519">Šajā katalogā nav neviena attēla.</translation>
 <translation id="945522503751344254">Sūtīt atsauksmes</translation>
-<translation id="951981865514037445"><ph name="URL" /> vēlas izmantot jūsu ierīces atrašanās vietu.</translation>
 <translation id="952992212772159698">Neaktivizēts</translation>
 <translation id="9580706199804957">Nevarēja izveidot savienojumu ar Google pakalpojumiem.</translation>
 <translation id="958515377357646513">Pieskarieties, lai pārietu uz priekšu.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index f9f5861..48cf6e7 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">എന്‍‌സിഫര്‍‌ മാത്രം</translation>
 <translation id="1039337018183941703">ഫയൽ അസാധുവോ കേടായതോവാണ്</translation>
 <translation id="1042174272890264476">നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ <ph name="SHORT_PRODUCT_NAME" /> എന്നതിന്റെ RLZ ലൈബ്രറി അന്തർനിർമ്മിതവുമാണ്. RLZ, ഒരു നിർദ്ദിഷ്‌ട പ്രമോഷണൽ കാമ്പെയ്‌നിലൂടെ ലഭിക്കുന്ന തിരയലുകളും <ph name="SHORT_PRODUCT_NAME" /> ഉപയോഗവും കണക്കാക്കുന്നതിന് അദ്വിതീയമല്ലാത്തതും വ്യക്തിപരമായി തിരിച്ചറിയാനാകാത്തതുമായ ഒരു ടാഗ് നിയുക്തമാക്കുന്നു. ഈ ലേബലുകൾ ചിലസമയത്ത് <ph name="PRODUCT_NAME" /> എന്നതിലെ Google തിരയലിൽ ദൃശ്യമാകുന്നു.</translation>
-<translation id="1042574203789536285"><ph name="URL" />, നിങ്ങളുടെ ഉപകരണത്തിൽ ശാശ്വതമായി വലിയ അളവിൽ ഡാറ്റ സംഭരിക്കാന്‍ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="1046059554679513793">കഷ്ടം, ഈ നാമം ഇതിനകം തന്നെ ഉപയോഗത്തിലുണ്ട്!</translation>
 <translation id="1047431265488717055">ലിങ്ക് ടെക്‌&amp;സ്റ്റ് പകർത്തുക</translation>
 <translation id="1047726139967079566">ഈ പേജ് ബുക്ക്‌മാര്‍ക്ക് ചെയ്യുക...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">ഡിഫോൾട്ട് തിരയൽ എഞ്ചിൻ പുനഃസ്ഥാപിക്കണോ?</translation>
 <translation id="1177863135347784049">ഇഷ്ടാനുസൃതം</translation>
 <translation id="1178581264944972037">അല്പംനിര്‍ത്തൂ</translation>
-<translation id="1179803038870941185"><ph name="URL" />-ന് നിങ്ങളുടെ MIDI ഉപകരണങ്ങളുടെ പൂർണ്ണമായ നിയന്ത്രണം ആവശ്യമുണ്ട്.</translation>
 <translation id="1181037720776840403">നീക്കംചെയ്യൂ</translation>
 <translation id="1183237619868651138">പ്രാദേശിക കാഷെയിൽ <ph name="EXTERNAL_CRX_FILE" /> ഇൻസ്റ്റാളുചെയ്യാനാവില്ല.</translation>
 <translation id="1185924365081634987">ഈ നെറ്റ്‌വർക്ക് പിശക് പരിഹരിക്കാൻ നിങ്ങൾക്ക് <ph name="GUEST_SIGNIN_LINK_START" />അതിഥിയായി ബ്രൗസുചെയ്യുന്നതിന്<ph name="GUEST_SIGNIN_LINK_END" /> പരീക്ഷിക്കാം.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ സംഭരിച്ചിരിക്കുന്ന ഒരു ഫയൽ ആക്‌സസ് ചെയ്യുക}other{നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ സംഭരിച്ചിരിക്കുന്ന # ഫയലുകൾ ആക്‌സസ് ചെയ്യുക}}</translation>
 <translation id="1195076408729068893">Smart Lock ആരംഭിക്കുന്നതിന്, നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക. അടുത്ത തവണ, <ph name="DEVICE_TYPE" /> എന്നത് അൺലോക്കുചെയ്യാൻ നിങ്ങളുടെ ഫോൺ ഉപയോഗിക്കാനാകും.</translation>
 <translation id="1195447618553298278">അജ്ഞാത പിശക്.</translation>
-<translation id="1196338895211115272">സ്വകാര്യ കീ കയറ്റുമതി ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="119738088725604856">സ്‌ക്രീൻഷോട്ട് വിൻഡോ</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> പ്രിന്‍ററിനായുള്ള പ്രിന്‍റര്‍ കാര്യക്ഷമതകള്‍ വീണ്ടെടുക്കുമ്പോള്‍ ഒരു പിശക് സംഭവിച്ചു. ഈ പ്രിന്‍റര്‍ <ph name="CLOUD_PRINT_NAME" /> ഉപയോഗിച്ച് രജിസ്റ്റര്‍ ചെയ്യാന്‍ കഴിയില്ല.</translation>
 <translation id="1198271701881992799">നമുക്ക് ആരംഭിക്കാം</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">നിങ്ങളുടെ അഡ്‌മിനിസ്‌ട്രേറ്റർ ഈ ക്രമീകരണത്തിനായി ഒരു നിർദ്ദിഷ്ട മൂല്യം ശുപാർശ ചെയ്യുന്നു.</translation>
 <translation id="1225177025209879837">അഭ്യർത്ഥന പ്രോസസ്സുചെയ്യുന്നു...</translation>
 <translation id="1225211345201532184">ഷെൽഫ് ഇനം 5</translation>
-<translation id="1225404570112441414">ഈ സൈറ്റ് എപ്പോൾ വേണമെങ്കിലും ഉപയോഗിക്കാൻ അതിനെ നിങ്ങളുടെ ഷെൽഫിൽ ചേർക്കുക.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" എന്നതിലേക്ക് കണക്റ്റുചെയ്യുമ്പോൾ പ്രാമാണീകരണം പരാജയപ്പെട്ടു.</translation>
 <translation id="1230807973377071856">സിസ്‌റ്റം മെനു</translation>
 <translation id="1232569758102978740">ശീര്‍ഷകമില്ലാത്ത</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">ബുക്ക്‌മാർക്കുകളുടെ HTML ഫയൽ</translation>
 <translation id="1303671224831497365">Bluetooth ഉപകരണങ്ങളൊന്നും കണ്ടില്ല</translation>
 <translation id="1306606229401759371">ക്രമീകരണങ്ങൾ മാറ്റുക</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> എന്ന ലിങ്കിലൂടെ ഏത് ഉപകരണത്തിൽ നിന്നും നിങ്ങളുടെ പാസ്‌വേഡുകൾ ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="1307559529304613120">ക്ഷമിക്കണം!  ഈ ഉപകരണത്തിനായി ദീർഘകാല API ആക്‌സസ്സ് ടോക്കൺ സംഭരിക്കുന്നതിൽ സിസ്റ്റം പരാജയപ്പെട്ടു.</translation>
 <translation id="1313405956111467313">സ്വപ്രേരിത പ്രോക്സി ക്രമീകരണം</translation>
 <translation id="131364520783682672">ക്യാപ്സ് ലോക്ക്</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">തിരയൂ</translation>
 <translation id="1386387014181100145">ഹലോ.</translation>
 <translation id="138784436342154190">ഡിഫോൾട്ട് ആരംഭ പേജ് പുനഃസ്ഥാപിക്കണോ?</translation>
-<translation id="1389297115360905376"><ph name="CHROME_WEB_STORE" /> എന്നതില്‍ നിന്നുമാത്രമേ ഇത് ചേർക്കാൻ കഴിയൂ.</translation>
 <translation id="1390548061267426325">പതിവ് ടാബായി തുറക്കുക</translation>
-<translation id="1391807639023934267">പേജ് വേഗത്തിൽ ലോഡുചെയ്‌തു.</translation>
 <translation id="1393283411312835250">സൂര്യനും മേഘങ്ങളും</translation>
 <translation id="1395262318152388157">സീക്ക് സ്ലൈഡർ</translation>
 <translation id="1395730723686586365">അപ്‌ഡേറ്റർ ആരംഭിച്ചു</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">നിങ്ങൾ പുരോഗതിയിലുള്ള സവിശേഷതകൾ അടങ്ങിയ <ph name="PRODUCT_NAME" />-ന്റെ അസ്ഥിരമായ ഒരു പതിപ്പിലേക്ക് അപ്‌ഡേറ്റുചെയ്യുന്നു. ക്രാഷുകളും അപ്രതീക്ഷിത ബഗ്‌ഗുകളും ഉണ്ടാകും. കരുതലോടെ മുന്നോട്ടുപോകുക.</translation>
 <translation id="1415990189994829608">ഇത്തരം സെഷനിൽ <ph name="EXTENSION_NAME" /> (വിപുലീകരണ ഐഡി "<ph name="EXTENSION_ID" />") അനുവദനീയമല്ല.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">അയ്യോ! ക്രമരഹിത RSA സ്വകാര്യ കീ ജനറേറ്റ് ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു. </translation>
 <translation id="1420834118113404499">മീഡിയ ലൈസൻസുകൾ</translation>
 <translation id="1420920093772172268">ജോടിയാക്കുന്നതിന്, <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">അതെ</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ഓഡിയോ വിലാസം പകർത്തുക</translation>
 <translation id="1465827627707997754">പിസ്സാ സ്‌ലൈസ്</translation>
 <translation id="1467432559032391204">ഇടത്</translation>
-<translation id="1467999917853307373"><ph name="URL" />, നിങ്ങളുടെ ഉപകരണത്തിൽ ശാശ്വതമായി ഡാറ്റ സംഭരിക്കാന്‍ താൽപ്പര്യപ്പെടുന്നു.</translation>
-<translation id="1470719357688513792">പേജ് റീലോഡ് ചെയ്തതിനുശേഷം പുതിയ കുക്കി ക്രമീകരണങ്ങള്‍ പ്രാബല്യത്തില്‍ വരും.</translation>
 <translation id="1470811252759861213">നിങ്ങളുടെ എല്ലാ കമ്പ്യൂട്ടറുകളിലും വിപുലീകരണങ്ങൾ ലഭിക്കാൻ, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" അപ്‌ലോഡുചെയ്‌തില്ല. നിങ്ങളുടെ Google ഡ്രൈവിൽ മതിയായ ഇടമില്ല.</translation>
 <translation id="1475502736924165259">മറ്റ് വിഭാഗങ്ങളിലൊന്നും യോജിക്കാത്ത സര്‍‌ട്ടിഫിക്കറ്റുകള്‍‌ നിങ്ങളുടെ ഫയലിലുണ്ട്</translation>
@@ -365,6 +355,7 @@
 <translation id="15373452373711364">വലിയ മൗസ് കഴ്‌സർ</translation>
 <translation id="1543284117603151572">Edge-ൽ നിന്നും ഇമ്പോർട്ടുചെയ്‌തത്</translation>
 <translation id="1545177026077493356">യാന്ത്രിക കിയോസ്‌ക് മോഡ്</translation>
+<translation id="1545775234664667895">"<ph name="THEME_NAME" />" തീം ഇന്‍‌സ്റ്റാള്‍ ചെയ്‌തു</translation>
 <translation id="1545786162090505744">ചോദ്യ സ്ഥലത്തെ %s ഉള്ള URL</translation>
 <translation id="1546280085599573572">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
 <translation id="1547572086206517271">പുതുക്കിയെടുക്കേണ്ടതുണ്ട്</translation>
@@ -441,11 +432,9 @@
     സൂപ്പർവൈസുചെയ്‌ത ഉപയോക്താവ് സന്ദർശിച്ച വെബ്‌സൈറ്റുകൾ <ph name="BEGIN_BOLD" />അവലോകനം<ph name="END_BOLD" /> ചെയ്യാനോ, മറ്റ് ക്രമീകരണങ്ങൾ
     <ph name="BEGIN_BOLD" />നിയന്ത്രിക്കാനോ<ph name="END_BOLD" /> കഴിയും.</translation>
 <translation id="1648943974594387137">സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടു</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> വരികൾ കാണുന്നില്ല&gt;</translation>
 <translation id="1650371550981945235">ഇൻപുട്ട് ഓപ്‌ഷനുകൾ കാണിക്കുക</translation>
 <translation id="1650709179466243265">www., .com എന്നിവ ചേര്‍ത്ത് വിലാസം തുറക്കുക</translation>
 <translation id="1651008383952180276">ഒരേ പാസ്ഫ്രെയ്‌സ് തന്നെ നിങ്ങള്‍ രണ്ടുതവണ നല്‍കേണ്ടതുണ്ട്</translation>
-<translation id="1652972346408808053">പാസ്‌വേഡ് സംരക്ഷിച്ചു. <ph name="SAVED_PASSWORDS_LINK" /> എന്ന ലിങ്കിലൂടെ ഏത് ഉപകരണത്തിൽ നിന്നും നിങ്ങളുടെ പാസ്‌വേഡുകൾ ആക്‌സസ് ചെയ്യുക</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{പ്രിന്റർ Google ക്ലൗഡ് പ്രിന്റിൽ ചേർക്കുന്നതിനാൽ നിങ്ങൾക്ക് എവിടെനിന്നും പ്രിന്റുചെയ്യാനാകും.}other{# പ്രിന്ററുകൾ Google ക്ലൗഡ് പ്രിന്റിൽ ചേർക്കുന്നതിനാൽ നിങ്ങൾക്ക് എവിടെനിന്നും പ്രിന്റുചെയ്യാനാകും.}}</translation>
 <translation id="1657406563541664238">Google ലേക്ക് ഉപയോഗ സ്ഥിതിവിവരകണക്കുകളും ക്രാഷ് റിപ്പോര്‍ട്ടുകളും സ്വപ്രേരിതമായി അയച്ചുകൊണ്ട് <ph name="PRODUCT_NAME" /> മെച്ചപ്പെട്ട രീതിയില്‍ നിര്‍മ്മിക്കാന്‍ സഹായിക്കുക</translation>
 <translation id="1658424621194652532">ഈ പേജ് നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ്സുചെയ്യുന്നു.</translation>
@@ -672,7 +661,6 @@
 <translation id="2045969484888636535">കുക്കികളെ തടയുന്നത് തുടരുക</translation>
 <translation id="204622017488417136">നിങ്ങളുടെ ഉപകരണം Chrome-ന്റെ മുമ്പ് ഇൻസ്‌റ്റാളുചെയ്‌ത പതിപ്പിലേക്ക് മടങ്ങും. എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രാദേശിക ഡാറ്റയും നീക്കംചെയ്യും. ഇത് പഴയപടിയാക്കാനാകില്ല.</translation>
 <translation id="2048182445208425546">നിങ്ങളുടെ നെറ്റ്‌വർക്ക് ട്രാഫിക്ക് ആക്‌സസ്സുചെയ്യുക</translation>
-<translation id="2049137146490122801">നിങ്ങളുടെ ഓതന്റിക്കേറ്റർ നിങ്ങളുടെ മെഷീനിലുള്ള ലോക്കല്‍ ഫയലുകളിലേക്കുള്ള ആക്സസ്സ് അപ്രാപ്തമാക്കി.</translation>
 <translation id="204914487372604757">കുറുക്കുവഴി സൃഷ്ടിക്കുക </translation>
 <translation id="2050339315714019657">ഛായാചിത്രം</translation>
 <translation id="2053312383184521053">നിഷക്രിയ നില ഡാറ്റ</translation>
@@ -706,7 +694,6 @@
 <translation id="2101797668776986011">പെപ്പർ 3D</translation>
 <translation id="2105006017282194539">ഇതുവരെയും ലോഡുചെയ്തില്ല</translation>
 <translation id="2107494551712864447">ഒരു വിരലടയാളം ചേർത്തു</translation>
-<translation id="2111843886872897694">അപ്ലിക്കേഷനുകൾ അത് ബാധിക്കുന്ന ഹോസ്റ്റിൽ നിന്നും നൽകേണ്ടതുണ്ട്.</translation>
 <translation id="2112877397266219826">എന്നെ സജ്ജീകരിക്കുന്നതിന് നിങ്ങളുടെ ടച്ച് കൺട്രോളർ ഓണാക്കുക</translation>
 <translation id="21133533946938348">പിന്‍ ടാബ്</translation>
 <translation id="2113479184312716848">&amp;സ്ഥാനം തുറക്കുക...</translation>
@@ -793,7 +780,6 @@
 <translation id="2226720438730111184">എന്താണ് സംഭവിക്കുന്നതെന്ന് ഞങ്ങളെ അറിയിക്കുക</translation>
 <translation id="2229161054156947610">1 മണിക്കൂറിൽ കൂടുതൽ ശേഷിക്കുന്നു</translation>
 <translation id="222931766245975952">ഫയലിന് ആവശ്യത്തിന് വലുപ്പമില്ല</translation>
-<translation id="222949136907494149"><ph name="URL" /> നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ ലൊക്കേഷൻ ഉപയോഗിക്കാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" ഫോൾഡർ സൃഷ്‌ടിക്കാനാവില്ല. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">ഇന്നത്തെ ഡൂഡിൽ കാണാൻ ക്ലിക്ക് ചെയ്യുക</translation>
@@ -881,7 +867,6 @@
 <translation id="236141728043665931">എല്ലായ്‌പ്പോഴും മൈക്രോഫോൺ ആക്‌സസ്സ് തടയുക</translation>
 <translation id="2367972762794486313">അപ്ലിക്കേഷനുകൾ കാണിക്കുക</translation>
 <translation id="2371076942591664043">ചെയ്തുകഴിയുമ്പോള്‍ &amp;തുറക്കുക</translation>
-<translation id="237336063998926520">ലൊക്കേഷൻ നിർണ്ണയിക്കാൻ നിങ്ങളുടെ IP വിലാസം ഉപയോഗിക്കുക</translation>
 <translation id="2377319039870049694">ലിസ്റ്റ് കാഴ്‌ചയിലേക്ക് മാറുക</translation>
 <translation id="2377667304966270281">ഹാർഡ് ഫോൾട്ടുകൾ</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ഫയലുകൾ തിരഞ്ഞെടുത്തു</translation>
@@ -928,7 +913,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" />-ൽ നിന്ന് ഫയലുകൾ പകർത്താൻ താൽപ്പര്യപ്പെടുന്നു</translation>
 <translation id="2462724976360937186">സാക്‍ഷ്യപത്ര അതോറിറ്റി കീ ഐഡി</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ചേർത്തു</translation>
-<translation id="246335896104539386">ബുക്ക്‌മാര്‍‌ക്കുകള്‍‌ ഇമ്പോർട്ടുചെയ്യുക</translation>
 <translation id="2464089476039395325">HTTP പ്രോക്‌സി</translation>
 <translation id="2468902267404883140">നിങ്ങളുടെ ഫോൺ കണക്‌റ്റുചെയ്യാനാകുന്നില്ല. അനുയോജ്യമായ Android ഫോൺ ആണ് ഉപയോഗിക്കുന്നതെന്നും അത് ഓണാണെന്നും കൈയ്യിലുണ്ടെന്നും ഉറപ്പുവരുത്തുക. &lt;a&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
 <translation id="2470702053775288986">പിന്തുണയ്ക്കാത്ത വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമായി</translation>
@@ -944,7 +928,6 @@
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
 <translation id="2487067538648443797">പുതിയ ബുക്ക്‌മാർക്ക് ചേർക്കുക</translation>
 <translation id="248861575772995840">നിങ്ങളുടെ ഫോൺ കണ്ടെത്താനായില്ല. <ph name="DEVICE_TYPE" /> ഉപകരണത്തിന്റെ Bluetooth ഓണാണെന്ന് ഉറപ്പുവരുത്തുക. &lt;a&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
-<translation id="2489316678672211764">ഒരു (<ph name="PLUGIN_NAME" />) പ്ലഗിൻ പ്രതികരിക്കുന്നില്ല.</translation>
 <translation id="2489428929217601177">കഴിഞ്ഞ ദിവസം</translation>
 <translation id="2489918096470125693">&amp;ഫോൾഡർ ചേർക്കുക...</translation>
 <translation id="249113932447298600">ക്ഷമിക്കണം, <ph name="DEVICE_LABEL" /> എന്ന ഉപകരണത്തെ ഇപ്പോൾ പിന്തുണയ്ക്കുന്നില്ല.</translation>
@@ -998,13 +981,11 @@
 <translation id="2563856802393254086">അഭിനന്ദനങ്ങൾ! നിങ്ങളുടെ '<ph name="NAME" />' ഡാറ്റ സേവനം സജീവമായി, ഇത് പ്രവർത്തിക്കാൻ തയ്യാറാണ്.</translation>
 <translation id="2566124945717127842">നിങ്ങളുടെ <ph name="IDS_SHORT_PRODUCT_NAME" /> ഉപകരണം പുതിയതുപോലാക്കാൻ പുനഃസജ്ജമാക്കുന്നതിന് പവർവാഷുചെയ്യുക.</translation>
 <translation id="2568774940984945469">വിവരബാര്‍ കണ്ടെയ്നര്‍</translation>
-<translation id="2570000010887652771">ഡാറ്റ സംരക്ഷിച്ചു.</translation>
 <translation id="257088987046510401">തീമുകള്‍‌</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> എന്നതിലേക്ക് റീഡ് ഒൺലി ആക്‌സസ്സ് അനുവദിച്ചു.</translation>
 <translation id="2573269395582837871">ഒരു ചിത്രവും പേരും തിരഞ്ഞെടുക്കുക</translation>
 <translation id="2575247648642144396">വിപുലീകരണത്തിന് നിലവിലെ പേജിൽ പ്രവർത്തിക്കാൻ കഴിയുമ്പോൾ ഈ ഐക്കൺ ദൃശ്യമാകും. ഐക്കണിൽ ക്ലിക്കുചെയ്‌തുകൊണ്ടോ <ph name="EXTENSION_SHORTCUT" /> അമർത്തിക്കൊണ്ടോ ഈ വിപുലീകരണം ഉപയോഗിക്കുക</translation>
 <translation id="2575268751393592580">നിങ്ങളുടെ ഫോൺ കണ്ടെത്താനാകുന്നില്ല. നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> വൈഫൈയിലേക്കോ മൊബൈൽ നെറ്റ്‌വര്‍ക്കിലേക്കോ കണക്‌റ്റുചെയ്‌തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. &lt;a&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
-<translation id="2576842806987913196">ഇതേ പേരിൽ ഇതിനകം ഒരു CRX ഫയൽ നിലവിലുണ്ട്.</translation>
 <translation id="257779572837908839">മീറ്റിംഗിനുള്ള Chromebox സജ്ജമാക്കുക</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />വോളിയം അൺമൗണ്ട് ചെയ്യാനാകില്ല<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1066,7 +1047,6 @@
 <translation id="2653266418988778031">നിങ്ങളൊരു സര്‍ട്ടിഫിക്കേഷന്‍ അതോറിറ്റി (CA) ഇല്ലാതാക്കുകയാണെങ്കില്‍, നിങ്ങളുടെ ബ്രൌസര്‍ ഇനിമുതല്‍ ആ CA നല്‍കുന്ന സാക്‍ഷ്യപത്രങ്ങളെയൊന്നും വിശ്വസിക്കില്ല.</translation>
 <translation id="2653659639078652383">സമര്‍പ്പിക്കൂ</translation>
 <translation id="265390580714150011">ഫീല്‍‌ഡ് മൂല്യം</translation>
-<translation id="2654286334048437383">ബുക്ക്‌മാർക്കുകൾ എക്‌സ്‌പോർട്ട് ചെയ്യുക</translation>
 <translation id="2655386581175833247">ഉപയോക്തൃ സര്‍ട്ടിഫിക്കറ്റ്:</translation>
 <translation id="2660779039299703961">ഇവന്റ്</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1260,7 +1240,6 @@
 <translation id="2908162660801918428">ഡയറക്‌ടറി പ്രകാരം മീഡിയ ഗാലറി ചേർക്കുക</translation>
 <translation id="2908789530129661844">സ്‌ക്രീൻ സൂം ഔട്ട് ചെയ്യുക</translation>
 <translation id="2910318910161511225">ഒരു നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്‌ത ശേഷം വീണ്ടും ശ്രമിക്കുക</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> എന്നതിന് ഒരു മൈക്രോഫോൺ ഉപയോഗിക്കണം.</translation>
 <translation id="2913331724188855103">കുക്കി ഡാറ്റ സംരക്ഷിക്കുന്നതിനും വായിക്കുന്നതിനും സൈറ്റുകളെ അനുവദിക്കുക (ശുപാർശചെയ്‌തത്)</translation>
 <translation id="2916073183900451334">വെബ്‌പേജിലെ ടാബില്‍‌ അമര്‍‌ത്തുന്നത് ലിങ്കുകളെയും ഫോം ഫീല്‍‌ഡുകളെയും പ്രമുഖമാക്കി കാണിക്കുന്നു</translation>
 <translation id="2916745397441987255">വിപുലീകരണങ്ങൾ തിരയുക</translation>
@@ -1358,7 +1337,7 @@
 <translation id="3051523411789012618">വിൻഡോ മുകളിലേക്ക്</translation>
 <translation id="3053013834507634016">സര്‍‌ട്ടിഫിക്കറ്റ് കീ ഉപയോഗം</translation>
 <translation id="3057861065630527966">നിങ്ങളുടെ ഫോട്ടോകളും വീഡിയോകളും ബാക്കപ്പുചെയ്യുക</translation>
-<translation id="3060379269883947824">'സംസാരിക്കാൻ തിരഞ്ഞെടുക്കുക' പ്രവർത്തനക്ഷമമാക്കുക</translation>
+<translation id="3060379269883947824">'വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക' പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="3061707000357573562">പാച്ച് സേവനം</translation>
 <translation id="3064410671692449875">ഡാറ്റ അപര്യാപ്‌തമാണ്</translation>
 <translation id="3065041951436100775">ടാബ് പ്രവർത്തനരഹിതമായതിനെക്കുറിച്ചുള്ള ഫീഡ്‌ബാക്ക്.</translation>
@@ -1413,7 +1392,6 @@
 <translation id="3141318088920353606">കേൾക്കുന്നു...</translation>
 <translation id="3141917231319778873">ഇനി പറയുന്നതിൽ നൽകിയിരിക്കുന്ന അഭ്യർത്ഥന പിന്തുണയ്‌ക്കുന്നില്ല: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">പൂർത്തിയായി</translation>
-<translation id="3144135466825225871">crx ഫയലിലേക്കുള്ള പുനഃസ്ഥാപനം പരാജയപ്പെട്ടു. ഈ ഫയൽ ഉപയോഗത്തിലാണോ എന്ന് പരിശോധിച്ച് നോക്കുക.</translation>
 <translation id="3144647712221361880">ലിങ്ക് ഇനിപ്പറയുന്നതായി തുറക്കുക</translation>
 <translation id="3149510190863420837">Chrome അപ്ലിക്കേഷനുകൾ</translation>
 <translation id="3150927491400159470">വേഗത്തിലുള്ള വീണ്ടും ലോഡുചെയ്യൽ</translation>
@@ -1523,7 +1501,6 @@
 <translation id="3309747692199697901">എല്ലായ്‌പ്പോഴും എല്ലാ സൈറ്റുകളിലും റൺ ചെയ്യുക</translation>
 <translation id="3312424061798279731">പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്ന ഭാഷകൾ</translation>
 <translation id="3312903956926554846">ഡെസ്‌ക്‌ടോപ്പിൽ ഇൻസ്‌റ്റാൾ ചെയ്യുക</translation>
-<translation id="3313473140726597081">നിങ്ങളുടെ ആരംഭ പേജ് <ph name="URL" /> എന്നതിലേക്ക് മാറ്റിയിരിക്കുന്നു. ആരംഭ പേജിൽ മാറ്റം വരുത്തുന്ന വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കാൻ, 'പുനഃസ്ഥാപിക്കുക' ക്ലിക്കുചെയ്യുക.</translation>
 <translation id="3313590242757056087">സൂപ്പർവൈസ് ചെയ്‌ത ഉപയോക്താവിന് കാണാനാകുന്ന വെബ്‌സൈറ്റുകൾ സജ്ജമാക്കുന്നതിന്, <ph name="MANAGEMENT_URL" /> സന്ദർശിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് 
     നിയന്ത്രണങ്ങളും ക്രമീകരണങ്ങളും കോൺഫിഗർ ചെയ്യാനാകും.
     നിങ്ങൾ സ്ഥിര ക്രമീകരണങ്ങൾ മാറ്റുന്നില്ലെങ്കിൽ, <ph name="USER_DISPLAY_NAME" /> എന്നയാൾക്ക്
@@ -1539,7 +1516,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">അപ്ലിക്കേഷൻ വിവരം</translation>
 <translation id="3335947283844343239">അടച്ച ടാബ് വീണ്ടും തുറക്കുക</translation>
-<translation id="3337069537196930048">കാലഹരണപ്പെട്ടതിനാൽ <ph name="PLUGIN_NAME" /> എന്നതിനെ തടഞ്ഞു.</translation>
 <translation id="3340978935015468852">ക്രമീകരണങ്ങൾ</translation>
 <translation id="3341703758641437857">URL കള്‍‌ ഫയല്‍‌ ചെയ്യുന്നതിന് ആക്‍സസ്സ് അനുവദിക്കുക</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ഈ വിപുലീകരണം നീക്കം ചെയ്യാൻ ആഗ്രഹിക്കുന്നു.</translation>
@@ -1574,7 +1550,6 @@
 <translation id="3386219708421216619">ബുക്ക്‌മാർക്ക് ചേർത്തു</translation>
 <translation id="3389312115541230716">ടാസ്‌ക്‌‌ബാറിലെ <ph name="SMALL_PRODUCT_LOGO" /> ഐക്കണിൽ വലത് ക്ലിക്കുചെയ്യുക</translation>
 <translation id="3391716558283801616">ടാബ് 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="3396331542604645348">തിരഞ്ഞെടുത്ത പ്രിന്റർ ലഭ്യമല്ല അല്ലെങ്കിൽ ശരിയായി ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല.  നിങ്ങളുടെ പ്രിന്റർ പരിശോധിക്കുകയോ മറ്റൊരു പ്രിന്റർ തിരഞ്ഞെടുക്കാൻ ശ്രമിക്കുകയോ ചെയ്യുക</translation>
 <translation id="3399432415385675819">അറിയിപ്പുകൾ പ്രവർത്തനരഹിതമാകും</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1686,10 +1661,8 @@
 <translation id="3550915441744863158">സ്വയമേവ Chrome  അപ്‌ഡേറ്റുചെയ്യുന്നതിനാൽ നിങ്ങളുടേത് എപ്പോഴും പുതുമയുള്ള പതിപ്പായിരിക്കും.</translation>
 <translation id="3551320343578183772">ടാബ് അടയ്‌ക്കുക</translation>
 <translation id="3552780134252864554">പുറത്തുകടക്കുമ്പോൾ മായ്‌ക്കും</translation>
-<translation id="355298399003313926"><ph name="URL" /> ഉപയോഗസഹായി ഇവന്‍റുകളോട് പ്രതികരിക്കാൻ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="3555812735919707620">വിപുലീകരണം നീക്കംചെയ്യുക</translation>
 <translation id="3556000484321257665">നിങ്ങളുടെ തിരയൽ എഞ്ചിൻ <ph name="URL" /> എന്നതിലേക്ക് മാറ്റി.</translation>
-<translation id="3561217442734750519">സ്വകാര്യ കീയ്‌ക്കായുള്ള ഇന്‍‌പുട്ട് മൂല്യം ഒരു സാധുവായ പാതയായിരിക്കണം.</translation>
 <translation id="3563432852173030730">കിയോസ്‌ക് അപ്ലിക്കേഷൻ ഡൗൺലോഡുചെയ്യാനായില്ല.</translation>
 <translation id="3564334271939054422">നിങ്ങൾ ഉപയോഗിക്കുന്ന Wi-Fi (<ph name="NETWORK_ID" />) അതിന്റെ ലോഗിൻ പേജ് സന്ദർശിക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടാം.</translation>
 <translation id="3564708465992574908">സൂം ലെവലുകൾ</translation>
@@ -1711,7 +1684,6 @@
 <translation id="3593965109698325041">സര്‍‌ട്ടിഫിക്കറ്റ് നാമ നിയന്ത്രണങ്ങള്‍‌</translation>
 <translation id="3596235046596950091">ക്ലൗഡ് സേവനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="3599863153486145794">സൈൻ ഇൻ ചെയ്‌ത എല്ലാ ഉപകരണങ്ങളിൽ നിന്നും ചരിത്രം മായ്ക്കുന്നു. നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രങ്ങളുണ്ടായിരിക്കാം.</translation>
-<translation id="3600456501114769456">നിങ്ങളുടെ ഉപകരണത്തിലെ പ്രാദേശിക ഫയലുകളിലേക്കുള്ള ആക്‌സസ്സ് അഡ്‌മിനിസ്‌ട്രേറ്റർ പ്രവർത്തനരഹിതമാക്കി.</translation>
 <translation id="3600792891314830896">ശബ്‌ദം പ്ലേ ചെയ്യുന്ന സൈറ്റുകളെ മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="3603177256297531067">ഈ പേജ് വിവർത്തനം ചെയ്യാനായില്ല</translation>
 <translation id="3603533104205588786">ഒരു പേജ് ബുക്ക്‌മാർക്ക് ചെയ്യാൻ നക്ഷത്ര ചിഹ്നത്തിൽ ക്ലിക്കുചെയ്യുക</translation>
@@ -1736,7 +1708,6 @@
 <translation id="3625258641415618104">സ്‌ക്രീൻഷോട്ടുകൾ പ്രവർത്തനരഹിതമാക്കി</translation>
 <translation id="3625870480639975468">സൂം പുനഃസജ്ജമാക്കുക</translation>
 <translation id="3626281679859535460">മിഴിവ്</translation>
-<translation id="3627052133907344175">വിപുലീകരണത്തിന് "<ph name="IMPORT_VERSION" />" എന്ന പതിപ്പെങ്കിലുമുള്ള "<ph name="IMPORT_NAME" />" ആവശ്യമാണെങ്കിലും "<ph name="INSTALLED_VERSION" />" പതിപ്പ് മാത്രം ഇൻസ്‌റ്റാളുചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="3627320433825461852">1 മിനിറ്റിൽ താഴെ ശേഷിക്കുന്നു</translation>
 <translation id="3627588569887975815">അദൃ&amp;ശ്യ വിന്‍ഡോയിലെ ലിങ്ക് തുറക്കുക</translation>
 <translation id="3627671146180677314">നെറ്റ്‌സ്‌കേപ്പ് സര്‍‌ട്ടിഫിക്കറ്റ് പുതുക്കല്‍‌ സമയം</translation>
@@ -1766,7 +1737,6 @@
 <translation id="3668570675727296296">ഭാഷാ ക്രമീകരണങ്ങൾ</translation>
 <translation id="3668823961463113931">ഹാന്‍ഡ്‌ലറുകള്‍</translation>
 <translation id="3670229581627177274">Bluetooth ഓണാക്കുക</translation>
-<translation id="3672159315667503033">നിങ്ങളുടെ പ്രാദേശിക കമ്പ്യൂട്ടറില്‍ <ph name="URL" /> എന്നത് സ്ഥിരമായി വലിയ ഡാറ്റ സംഭരിക്കാന്‍ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="3672681487849735243">ഒരു ഫാക്‌ടറി പിശക് കണ്ടെത്തി</translation>
 <translation id="367645871420407123">സ്ഥിരം പരീക്ഷണ ചിത്ര മൂല്യത്തിലേക്ക് റൂട്ട് പാസ്‌വേഡ് സജ്ജീകരിക്കണമെങ്കിൽ ശൂന്യമായിടുക</translation>
 <translation id="3678156199662914018">വിപുലീകരണം: <ph name="EXTENSION_NAME" /></translation>
@@ -1844,11 +1814,9 @@
 <translation id="3786301125658655746">നിങ്ങൾ ഓഫ്‌ലൈനിലാണ്</translation>
 <translation id="3788401245189148511">ഇത് ആക്‌സ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നത്:</translation>
 <translation id="3789841737615482174">ഇന്‍സ്റ്റാളുചെയ്യുക</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> ഡെസ്‌ക്‌ടോപ്പിൽ മാത്രം പ്രവർത്തിക്കുന്നു.</translation>
 <translation id="379082410132524484">നിങ്ങളുടെ കാർഡ്‌ കാലഹരണപ്പെട്ടു</translation>
 <translation id="3792890930871100565">പ്രിന്ററുകൾ വിച്ഛേദിക്കുക</translation>
 <translation id="379422718204375917">നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യാൻ Smart Lock ഉപയോഗിക്കുക</translation>
-<translation id="3794595850995182458">പേജിൽ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="3796648294839530037">പ്രിയപ്പെട്ട നെറ്റ്‌വർക്കുകൾ:</translation>
 <translation id="3797900183766075808">&amp;'<ph name="SEARCH_TERMS" />' എന്നതിനായി <ph name="SEARCH_ENGINE" />-ൽ തിരയുക</translation>
 <translation id="3798325802885154040">ക്ലിക്കുചെയ്യാൻ ടാപ്പുചെയ്യുക പ്രവർത്തനക്ഷമമാക്കാൻ/പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു</translation>
@@ -1978,7 +1946,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> പ്രാപ്‌തമാക്കുക </translation>
 <translation id="3981760180856053153">അസാധുവായ സംരക്ഷിക്കല്‍ തരം നല്‍കി.</translation>
 <translation id="3983586614702900908">അജ്ഞാത വെണ്ടറിൽ നിന്നുള്ള ഉപകരണങ്ങൾ</translation>
-<translation id="3984413272403535372">വിപുലീകരണം സൈന്‍‌ ചെയ്യുന്നസമയത്ത് പിശക്.</translation>
 <translation id="3987938432087324095">ക്ഷമിക്കണം, അത് മനസ്സിലായില്ല.</translation>
 <translation id="3988996860813292272">സമയ മേഖല തിരഞ്ഞെടുക്കുക</translation>
 <translation id="3989635538409502728">പുറത്തുകടക്കുക</translation>
@@ -2034,7 +2001,6 @@
 <translation id="4087470595660267445">നിങ്ങളുടെ Chromebook-ൽ Google Play-യിൽ നിന്ന് ഗെയിമുകളും ആപ്പുകളും ഇൻസ്‌റ്റാൾ ചെയ്യുക. &lt;a target="_blank" href="<ph name="URL" />"&gt;കൂടുതലറിയുക&lt;/a&gt;</translation>
 <translation id="4088095054444612037">ഗ്രൂപ്പിനായി അംഗീകരിക്കുക</translation>
 <translation id="4090103403438682346">പരിശോധിച്ചുറപ്പിച്ച ആക്‌സസ്സ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
-<translation id="4090404313667273475">ഈ പേജിൽ ചില ഘടകങ്ങൾ ദൃശ്യമാക്കുന്നതിന് <ph name="PLUGIN_NAME" /> ആവശ്യമാണ്.</translation>
 <translation id="4090535558450035482">(ഈ വിപുലീകരണം നിയന്ത്രിച്ചിരിക്കുന്നതിനാൽ നീക്കംചെയ്യാനാവില്ല.)</translation>
 <translation id="4091434297613116013">പേപ്പര്‍ പാളികള്‍</translation>
 <translation id="4093955363990068916">പ്രാദേശിക ഫയൽ:</translation>
@@ -2368,7 +2334,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> എന്നതിന് ഇപ്പോള്‍ നിങ്ങളുടെ പാസ്‌വേഡുകള്‍ സമന്വയിപ്പിക്കാന്‍ കഴിയും. </translation>
 <translation id="4715553623069266137">വളരെ ചെറുത് (0.8 സെക്കൻഡ്‌)</translation>
 <translation id="4716483597559580346">അധിക സുരക്ഷയ്‌ക്ക് വേണ്ടി Powerwash</translation>
-<translation id="471800408830181311">സ്വകാര്യ കീ ഔട്ട്‌പുട്ട് ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="4720113199587244118">ഉപകരണങ്ങൾ ചേർക്കുക</translation>
 <translation id="4720185134442950733">മൊബൈൽ ഡാറ്റ നെറ്റ്‌വർക്ക്</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> എന്നത് നിങ്ങളുടെ സ്‌ക്രീൻ പങ്കിടുന്നു.</translation>
@@ -2505,7 +2470,6 @@
 <translation id="4917385247580444890">ശക്തം</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> എന്നതിന് വിപുലീകരണ "<ph name="EXTENSION_NAME" />" ഉപയോഗിച്ച് ആശയവിനിമയം നടത്തേണ്ടതുണ്ട്</translation>
 <translation id="4918086044614829423">സ്വീകരിക്കുക</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> നിങ്ങളുടെ ക്യാമറ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="4920887663447894854">ഈ പേജിലെ നിങ്ങളുടെ സ്ഥാനം ട്രാക്കുചെയ്യുന്നതില്‍‌ നിന്നും ഇനിപ്പറയുന്ന സൈറ്റുകളെ തടഞ്ഞു:</translation>
 <translation id="492299503953721473">Android ആപ്‌സ് നീക്കംചെയ്യുക</translation>
 <translation id="4923279099980110923">അതെ, ഞാൻ സഹായിക്കാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
@@ -2546,7 +2510,6 @@
 <translation id="4980805016576257426">ഈ വിപുലീകരണത്തിൽ മാൽവേർ അടങ്ങിയിരിക്കുന്നു.</translation>
 <translation id="498294082491145744">കുക്കികൾ, JavaScript, പ്ലഗിന്നുകൾ, ജിയോലൊക്കേഷൻ, മൈക്രോഫോൺ, ക്യാമറ എന്നിവപോലുള്ള ഫീച്ചറുകളിലേക്കുള്ള വെബ്‌സൈറ്റിന്റെ ആക്‌സസ്സ് നിയന്ത്രിക്കാൻ നിങ്ങളുടെ ക്രമീകരണം മാറ്റുക.</translation>
 <translation id="4988526792673242964">പേജുകള്‍</translation>
-<translation id="4988792151665380515">പൊതു കീ കയറ്റുമതി ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="49896407730300355">എ&amp;തിർ ഘടികാരദിശയിൽ തിരിക്കുക</translation>
 <translation id="4989966318180235467">&amp;പശ്ചാത്തല പേജ് പരിശോധിക്കുക</translation>
 <translation id="4990343175649730969">Chrome ക്ലീനർ ഡൗൺലോഡുചെയ്യുക</translation>
@@ -2575,7 +2538,6 @@
 <translation id="5026874946691314267">ഇത് വീണ്ടും ദൃശ്യമാക്കരുത്</translation>
 <translation id="5027550639139316293">ഇമെയില്‍‌ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="5027562294707732951">വിപുലീകരണം ചേർക്കുക</translation>
-<translation id="5028012205542821824">ഇൻസ്റ്റാളേഷൻ പ്രാപ്‌തമാക്കിയില്ല.</translation>
 <translation id="5029568752722684782">പകർപ്പ് മായ്‌ക്കുക</translation>
 <translation id="5030338702439866405">ഇനിപ്പറയുന്നത് നല്‍‌കിയത്</translation>
 <translation id="5036662165765606524">ഒന്നിലധികം ഫയലുകൾ സ്വയമേവ ഡൗൺലോഡുചെയ്യുന്നതിന് ഒരു സൈറ്റിനെയും അനുവദിക്കരുത്</translation>
@@ -2611,7 +2573,6 @@
 <translation id="509429900233858213">ഒരു പിശക് സംഭവിച്ചു.</translation>
 <translation id="5094721898978802975">സഹകരിക്കുന്ന നേറ്റീവ് അപ്ലിക്കേഷനുകളുമായി ആശയവിനിമയം നടത്തുക</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' നെറ്റ്‌വര്‍‌ക്കിലേക്ക് ബന്ധിപ്പിക്കുന്നതിൽ പരാജയപ്പെട്ടു: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">പാക്കിലേക്കുള്ള ഡയറക്ടറിയുടെ കൃത്യമായ പാത്ത് കണ്ടെത്താന്‍ കഴിയുന്നില്ല.</translation>
 <translation id="5099354524039520280">മുകളിലേക്ക്</translation>
 <translation id="5100114659116077956">നിങ്ങൾക്ക് ഏറ്റവും പുതിയ സവിശേഷതകൾ ലഭ്യമാക്കുന്നതിന്, നിങ്ങളുടെ Chromebox അപ്ഡേറ്റുചെയ്യേണ്ടതുണ്ട്.</translation>
 <translation id="5101042277149003567">എല്ലാ ബുക്‌മാര്‍ക്കുകളും തുറക്കുക</translation>
@@ -2660,7 +2621,6 @@
 <translation id="5170568018924773124">ഫോള്‍ഡറില്‍ കാണിക്കുക</translation>
 <translation id="5171045022955879922">തിരയുക അല്ലെങ്കിൽ URL ടൈപ്പുചെയ്യുക</translation>
 <translation id="5171343362375269016">സ്വാപ്പുചെയ്‌ത മെമ്മറി</translation>
-<translation id="5175870427301879686">നിങ്ങളുടെ പ്രാദേശിക കമ്പ്യൂട്ടറില്‍ <ph name="URL" /> എന്നത് സ്ഥിരമായി ഡാറ്റ സംഭരിക്കാന്‍ ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="5177479852722101802">ക്യാമറ, മൈക്രോഫോൺ എന്നിവയുടെ ആക്‌സസ്സ് തടയുന്നത് തുടരുക</translation>
 <translation id="5177526793333269655">ലഘുചിത്ര കാഴ്‌ച</translation>
 <translation id="5177549709747445269">നിങ്ങൾ മൊബൈൽ വിവരമണ് ഉപയോഗിക്കുന്നത്</translation>
@@ -2739,7 +2699,6 @@
 <translation id="529175790091471945">ഈ ഉപകരണം ഫോർമാറ്റുചെയ്യുക</translation>
 <translation id="5293170712604732402">ക്രമീകരണത്തെ അവയുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കുക</translation>
 <translation id="5298219193514155779">തീം സൃഷ്‌ടിച്ചത്</translation>
-<translation id="5298363578196989456">"<ph name="IMPORT_NAME" />", ഒരു പങ്കിട്ട മൊഡ്യൂൾ അല്ലാത്തതിനാൽ അത് ഇമ്പോർട്ടുചെയ്യാനാവില്ല.</translation>
 <translation id="5299109548848736476">ട്രാക്കുചെയ്യരുത്</translation>
 <translation id="5299682071747318445">നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രെയ്‌സ് ഉപയോഗിച്ച് എല്ലാ ഡാറ്റയും എൻക്രിപ്റ്റുചെയ്‌തു.</translation>
 <translation id="5300589172476337783">കാണിക്കുക</translation>
@@ -2767,7 +2726,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" ജോടിയാക്കാൻ താൽപ്പര്യപ്പെടുന്നു</translation>
 <translation id="5332624210073556029">സമയ മേഖല :</translation>
 <translation id="5334142896108694079">സ്‌ക്രിപ്റ്റ് കാഷെ</translation>
-<translation id="533433379391851622">പ്രതീക്ഷിച്ച പതിപ്പ് "<ph name="EXPECTED_VERSION" />" ആണ്, എന്നാൽ ലഭിച്ച പതിപ്പ് "<ph name="NEW_ID" />" ആണ്.</translation>
 <translation id="5334844597069022743">ഉറവിടം കാണുക</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google ഡ്രൈവിലേക്ക്<ph name="END_LINK" /> <ph name="FILE_COUNT" /> ബാക്കപ്പ് ചെയ്യുന്നു</translation>
 <translation id="5337771866151525739">ഒരു മൂന്നാം കക്ഷി ഇൻസ്റ്റാളുചെയ്‌തത്.</translation>
@@ -2805,7 +2763,6 @@
 <translation id="5390100381392048184">ശബ്‌ദം പ്ലേ ചെയ്യാൻ സൈറ്റുകളെ അനുവദിക്കുക</translation>
 <translation id="5390284375844109566">ഇൻഡെക്‌സ് ചെയ്‌ത ഡാറ്റാബേസ്</translation>
 <translation id="5390743329570580756">ഇതിനുവേണ്ടി അയയ്‌ക്കുക</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> എന്നതിലെ <ph name="PEPPER_PLUGIN_NAME" /> നിങ്ങളുടെ കമ്പ്യൂട്ടർ ആക്‌സസ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="5397794290049113714">നിങ്ങള്‍</translation>
 <translation id="5398572795982417028">പേജ് റഫറൻസ് പരിധി കവിഞ്ഞു, <ph name="MAXIMUM_PAGE" /> പേജാണ് വേണ്ട പരിധി</translation>
 <translation id="5398772614898833570">പരസ്യങ്ങൾ ബ്ലോക്കുചെയ്‌തു</translation>
@@ -2867,7 +2824,6 @@
 <translation id="5485754497697573575">എല്ലാ ടാബുകളും പുനസ്ഥാപിക്കുക</translation>
 <translation id="5486261815000869482">പാസ്‌വേഡ് സ്ഥിരീകരിക്കുക</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />,<ph name="TAB_NAME" /> എന്നതുമായി നിങ്ങളുടെ സ്ക്രീൻ പങ്കിടുന്നു.</translation>
-<translation id="5486326529110362464">സ്വകാര്യ കീയുടെ ഇന്‍‌പുട്ട് മൂല്യം നിലവിലുണ്ടായിരിക്കണം.</translation>
 <translation id="5486561344817861625">ബ്രൗസർ പുനരാരംഭിക്കൽ പരീക്ഷിച്ചുനോക്കുക</translation>
 <translation id="5487521232677179737">ഡാറ്റ മായ്‌ക്കുക</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' പകർത്തി</translation>
@@ -2950,7 +2906,6 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB മൊബൈല്‍ ഡാറ്റ ഉപയോഗിച്ച് അപ്‌ഡേറ്റ് ഡൗൺലോഡുചെയ്യും. തുടരാൻ താൽപ്പര്യമുണ്ടോ?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">മറ്റ് സെര്‍ച് എഞ്ചിനുകള്‍</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> എന്നതിലെ <ph name="PEPPER_PLUGIN_NAME" /> നിങ്ങളുടെ ഉപകരണം ആക്‌സസ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="5608580678041221894">വലുപ്പം മാറ്റുന്നയിടം ക്രമീകരിക്കാനും നീക്കാനും ചുവടെയുള്ള കീകൾ ടാപ്പുചെയ്യുക</translation>
 <translation id="5609231933459083978">അപ്ലിക്കേഷൻ അസാധുവായി തോന്നുന്നു.</translation>
 <translation id="5610038042047936818">ക്യാമറ മോഡിലേക്ക് മാറുക</translation>
@@ -3193,7 +3148,6 @@
 <translation id="5990386583461751448">വിവർത്തനം ചെയ്‌തു</translation>
 <translation id="5991049340509704927">മാഗ്‌നിഫൈ ചെയ്യുക</translation>
 <translation id="5993332328670040093">നിങ്ങളുടെ ഡാറ്റ ഉപയോഗം ഇനി കണക്കാക്കുന്നതല്ല.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> ന് ഒരുപക്ഷേ തന്നത്താനേ അപ്ഡേറ്റ് ചെയ്യാന്‍ സാധിക്കുന്നില്ലായിരിക്കാം.</translation>
 <translation id="600424552813877586">അപ്ലിക്കേഷൻ അസാധുവാണ്.</translation>
 <translation id="6005695835120147974">മീഡിയ റൂട്ടർ</translation>
 <translation id="6006484371116297560">ക്ലാസിക്</translation>
@@ -3218,6 +3172,7 @@
 <translation id="604001903249547235">ക്ലൗഡ് ബാക്കപ്പ്</translation>
 <translation id="6040143037577758943">അടയ്ക്കുക</translation>
 <translation id="6040852767465482106">അജ്ഞാത ഐഡന്‍റിറ്റി</translation>
+<translation id="6041155700700864984">മുഴുവൻസ്‌ക്രീനിൽ നിന്നും നിർഗമിക്കുക</translation>
 <translation id="604124094241169006">സ്വപ്രേരിതം</translation>
 <translation id="6042169520002885235">പ്രിന്റർ നിർമ്മാതാവ്,  മോഡൽ എന്നിവ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="6042308850641462728">കൂടുതൽ</translation>
@@ -3234,7 +3189,6 @@
 <translation id="6056710589053485679">സാധാരണ രീതിയിലുള്ള വീണ്ടും ലോഡുചെയ്യൽ</translation>
 <translation id="6059652578941944813">സര്‍‌ട്ടിഫിക്കറ്റ് ശ്രേണി</translation>
 <translation id="6059925163896151826">USB ഉപകരണങ്ങൾ</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ക്രാഷ് ചെയ്തിരിക്കുന്നു.</translation>
 <translation id="6064217302520318294">സ്ക്രീൻ ലോക്ക്</translation>
 <translation id="6065289257230303064">സര്‍‌ട്ടിഫിക്കറ്റ് സബ്‌ജക്റ്റ് ഡയറക്‌ടറി ഗുണവിശേഷതകള്‍‌</translation>
 <translation id="6068338049763724728">വിദൂര എൻറോൾമെന്റ് പ്രവർത്തനക്ഷമമാക്കുക</translation>
@@ -3343,7 +3297,6 @@
 <translation id="6237816943013845465">സ്‌ക്രീൻ റെസല്യൂഷൻ ക്രമീകരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു</translation>
 <translation id="6238923052227198598">ലോക്ക് സ്‌ക്രീനിൽ ഏറ്റവും പുതിയ കുറിപ്പ് സൂക്ഷിക്കുക</translation>
 <translation id="6239558157302047471">റീലോഡും ഫ്രെയിമും</translation>
-<translation id="624022915548992686">പേജിൽ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="6241530762627360640">നിങ്ങളുടെ സിസ്റ്റവുമായി ജോടിയാക്കിയ Bluetooth ഉപകരണങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ആക്‌സസ്സുചെയ്ത് സമീപമുള്ള Bluetooth ഉപകരണങ്ങൾ കണ്ടെത്തുക.</translation>
 <translation id="6243774244933267674">സെർവർ ലഭ്യമല്ല</translation>
 <translation id="6246413617632217567">സൂപ്പർവൈസുചെയ്‌ത ഉപയോക്താവിനെ ഇമ്പോർട്ടുചെയ്യാനായില്ല. നിങ്ങളുടെ ഹാർഡ് ഡ്രൈവിലെ ഇടവും അനുമതികളും പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
@@ -3392,13 +3345,11 @@
 <translation id="6312403991423642364">അറിയാത്ത നെറ്റ്‌വര്‍ക്ക് പിശക്</translation>
 <translation id="6313641880021325787">VR-ൽ നിന്ന് പുറത്തുകടക്കുക</translation>
 <translation id="6314819609899340042">നിങ്ങൾ ഈ <ph name="IDS_SHORT_PRODUCT_NAME" /> ഉപകരണത്തിലെ ഡീബഗ്ഗിംഗ് ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കി.</translation>
-<translation id="6315343732431721770"><ph name="URL" /> ഉൾപ്പെടുത്താൻ നിങ്ങളുടെ ആരംഭ പേജുകളെ മാറ്റിയിരിക്കുന്നു. ആരംഭ പേജിൽ മാറ്റം വരുത്തുന്ന വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കാൻ, 'പുനഃസ്ഥാപിക്കുക' ക്ലിക്കുചെയ്യുക.</translation>
 <translation id="6315493146179903667">എല്ലാം മുന്നിലേക്ക് കൊണ്ടുവരുക</translation>
 <translation id="6316806695097060329">വെബിന്റെ മികച്ച അനുഭവം നിങ്ങൾക്ക് നൽകാനാണ് ഈ <ph name="SHORT_PRODUCT_NAME" /> ഉപകരണം രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്നത്.</translation>
 <translation id="6317318380444133405">ഇനിയങ്ങോട്ട് പിന്തുണയില്ല.</translation>
 <translation id="6317369057005134371">അപ്ലിക്കേഷൻ വിൻഡോയ്‌ക്കായി കാത്തിരിക്കുന്നു...</translation>
 <translation id="6318407754858604988">ഡൗൺലോഡ് ആരംഭിച്ചു</translation>
-<translation id="6322279351188361895">സ്വകാര്യ കീ റീഡുചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="6325191661371220117">യാന്ത്രിക സമാരംഭിക്കൽ പ്രവർത്തനരഹിതമാക്കുക</translation>
 <translation id="6326175484149238433">Chrome-ൽ നിന്ന് നീക്കം ചെയ്യുക</translation>
 <translation id="6326855256003666642">കണക്ഷൻ നിലനിർത്താനുള്ള ആക്‌റ്റിവിറ്റികളുടെ എണ്ണം</translation>
@@ -3407,7 +3358,6 @@
 <translation id="6333049849394141510">എന്താണ് സമന്വയിപ്പിക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കുക</translation>
 <translation id="6333064448949140209">ഡീബഗ്ഗുചെയ്യലിനായി ഫയൽ Google-ന് അയയ്‌ക്കും</translation>
 <translation id="6333834492048057036">തിരയലിനുള്ള വിലാസ ബാർ ഫോക്കസുചെയ്യുക</translation>
-<translation id="6336907568130557310">എക്‌സ്പോർട്ട് ചെയ്ത ഫയൽ കാണാൻ കഴിയുന്ന ഏതൊരാൾക്കും നിങ്ങളുടെ പാസ്‌വേഡുകൾ കാണാൻ കഴിയും. ഫയൽ ആരുമായും പങ്കിടരുത്, ഇമ്പോർട്ട് ചെയ്ത ശേഷം അത് ഇല്ലാതാക്കുക.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> എന്നയാൾക്ക് വേണ്ടി പുതിയ പ്രൊഫൈൽ സൃഷ്‌ടിക്കുക</translation>
 <translation id="6340017061976355871">സെര്‍വറുമായി കണക്റ്റ് ചെയ്യാനായില്ല. നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക. തുടർന്നും പ്രശ്‌നം നിലനിൽക്കുകയാണെങ്കിൽ, Chromebook റീസ്‌റ്റാർട്ടുചെയ്യുക.</translation>
 <translation id="6340071272923955280">ഇന്റർനെറ്റ് പ്രിന്റിംഗ് പ്രോട്ടോക്കോൾ (IPPS)</translation>
@@ -3436,7 +3386,6 @@
 <translation id="6385543213911723544">സൈറ്റുകൾക്ക് കുക്കി വിവരം സംരക്ഷിക്കാനും വായിക്കാനുമാകും</translation>
 <translation id="6388771388956873507">നിങ്ങളുടെ ഉപകരണത്തിലെ വിരലടയാള സെൻസർ കണ്ടെത്തി, അത് വിരൽ കൊണ്ട് സ്‌പർശിക്കുക</translation>
 <translation id="6390799748543157332">തുറന്നിരിക്കുന്ന എല്ലാ അതിഥി വിൻഡോകളും അടച്ചുകഴിഞ്ഞാൽ, ഈ വിൻഡോയിൽ നിങ്ങൾ കാണുന്ന പേജുകൾ നിങ്ങളുടെ ബ്രൗസർ ചരിത്രത്തിൽ ദൃശ്യമാകില്ല, അവ കുക്കികൾ പോലുള്ള മറ്റ് തെളിവുകൾ നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ അവശേഷിപ്പിക്കുകയുമില്ല. എന്നിരുന്നാലും, നിങ്ങൾ ഡൗൺലോഡുചെയ്യുന്ന എല്ലാ ഫയലുകളും സൂക്ഷിക്കും.</translation>
-<translation id="6391538222494443604">ഇന്‍‌പുട്ട് ഡയറക്‌ടറി നിലവിലുണ്ടായിരിക്കണം.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />സിസ്റ്റം വിവരങ്ങളും<ph name="END_LINK1" /> <ph name="BEGIN_LINK2" />മെട്രിക്‌സും<ph name="END_LINK2" /> അയയ്‌ക്കുക</translation>
 <translation id="6397363302884558537">സംഭാഷണം നിർത്തുക</translation>
 <translation id="6397592254427394018">&amp;വേഷ പ്രച്ഛന്ന വിന്‍ഡോയിലെ എല്ലാ ബുക്ക്മാര്‍ക്കുകളും തുറക്കുക</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">JavaScript തടയുന്നത് മാനേജുചെയ്യുക...</translation>
 <translation id="6459488832681039634">കണ്ടെത്തുന്നതിനായി തിരഞ്ഞെടുപ്പ് ഉപയോഗിക്കുക</translation>
 <translation id="6460601847208524483">അടുത്തത് കണ്ടെത്തുക</translation>
-<translation id="6462080265650314920">അപ്ലിക്കേഷനുകൾ "<ph name="CONTENT_TYPE" />" എന്ന ഉള്ളടക്ക തരത്തിനൊപ്പം നൽകേണ്ടതുണ്ട്.</translation>
 <translation id="6462082050341971451">നിങ്ങൾ ഇപ്പോഴും അവിടെയുണ്ടോ?</translation>
 <translation id="6463795194797719782">&amp;എഡിറ്റ്‌ചെയ്യൂ</translation>
 <translation id="6466988389784393586">&amp;എല്ലാ ബുക്ക്‍മാര്‍ക്കുകളും തുറക്കുക</translation>
@@ -3625,7 +3573,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Google ഈ പേജ്, <ph name="SOURCE_LANGUAGE" /> ഭാഷയിൽ നിന്ന് <ph name="TARGET_LANGUAGE" /> ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യണോ?</translation>
 <translation id="6675665718701918026">പോയിന്റുചെയ്യുന്ന ഉപകരണം കണക്റ്റുചെയ്‌തു</translation>
-<translation id="6677037229676347494">പ്രതീക്ഷിച്ച ID "<ph name="EXPECTED_ID" />" ആണ്, എന്നാൽ ലഭിച്ച ID "<ph name="NEW_ID" />" ആണ്.</translation>
 <translation id="6678717876183468697">ചോദ്യ URL</translation>
 <translation id="6680028776254050810">ഉപയോക്താക്കളെ സ്വിച്ചുചെയ്യുക</translation>
 <translation id="6680442031740878064">ലഭ്യമായ ഇടം: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3765,8 +3712,6 @@
 <translation id="6903534926908201625">Google ശേഖരിക്കുന്ന വിവരങ്ങൾ ഏത് സമയത്തും <ph name="BEGIN_LINK" />ക്രമീകരണത്തിൽ<ph name="END_LINK" /> ഇഷ്‌ടാനുസൃതമാക്കാനാകും.</translation>
 <translation id="6904344821472985372">ഫയൽ ആക്‌സസ്സ് റദ്ദാക്കുക</translation>
 <translation id="6904655473976120856">പുറത്തുകടക്കുന്നതിന് ആപ്പ് ബട്ടൺ അമർത്തുക</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> നിങ്ങളുടെ സ്‌ക്രീൻ പങ്കിടാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
-<translation id="6909461304779452601">ഈ വെബ്‌സൈറ്റിൽ നിന്നും അപ്ലിക്കേഷനുകൾ, വിപുലീകരണങ്ങൾ, ഉപയോക്തൃ സ്‌ക്രിപ്റ്റുകൾ എന്നിവ ചേർക്കാൻ കഴിയില്ല.</translation>
 <translation id="6910211073230771657">ഇല്ലാതാക്കി</translation>
 <translation id="691024665142758461">ഒന്നിലധികം ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുക</translation>
 <translation id="6911324888870229398">നെറ്റ്‌വർക്ക് കണക്ഷൻ പോയി. നിങ്ങളുടെ കണക്ഷൻ പരിശോധിക്കുക അല്ലെങ്കിൽ മറ്റൊരു വൈഫൈ നെറ്റ്‌വർക്ക് ഉപയോഗിച്ച് ശ്രമിക്കുക.</translation>
@@ -4103,7 +4048,6 @@
 <translation id="747114903913869239">പിശക്: വിപുലീകരണം ഡീകോഡ് ചെയ്യാനാവില്ല</translation>
 <translation id="7473891865547856676">വേണ്ട, നന്ദി</translation>
 <translation id="747459581954555080">എല്ലാം പുനഃസ്ഥാപിക്കുക</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" />-ന് ഒരു പിശക് നേരിട്ടു.</translation>
 <translation id="7475671414023905704">നെറ്റ്‌സ്‌കേപ്പ് നഷ്‌ടമായ പാസ്‌വേഡ് URL</translation>
 <translation id="7476454130948140105">ബാറ്ററി ചാർജ്, സിസ്‌റ്റം അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാവശ്യമായതിലും വളരെ കുറവാണ് (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">നിങ്ങളുടെ പാസ്‌ഫ്രേസ് മറന്നുപോയെങ്കിൽ, നിർത്തുക, തുടർന്ന് <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> മുഖേനെ സമന്വയം പുനഃസജ്ജമാക്കുക.</translation>
@@ -4140,7 +4084,6 @@
 <translation id="7507930499305566459">സ്റ്റാറ്റസ് റെസ്‌പോണ്ടര്‍‌ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="7508545000531937079">സ്ലൈഡ്‌ഷോ</translation>
 <translation id="7513029293694390567">സംരക്ഷിച്ച ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് വെബ്‌സൈറ്റുകളിലേക്ക് സ്വയം സൈൻ ഇൻ ചെയ്യുക. പ്രവർത്തനരഹിതമാണെങ്കിൽ, ഒരു വെബ്‌സൈറ്റിലേക്ക് സൈൻ ഇൻ ചെയ്യുന്നതിന് മുമ്പ് ഓരോ തവണയും നിങ്ങളോട് സ്ഥിരീകരിക്കാൻ ആവശ്യപ്പെടും.</translation>
-<translation id="7515670329462166359">പരിരക്ഷിക്കപ്പെട്ടിരിക്കുന്ന ഉള്ളടക്കം പ്ലേ ചെയ്യുന്നതിന് നിങ്ങളുടെ ഉപകരണം പ്രത്യേകം തിരിച്ചറിയാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു.</translation>
 <translation id="7517569744831774757">ക്രമീകരണങ്ങളെ അവയുടെ യഥാർത്ഥ സ്ഥിര ക്രമീകരണങ്ങളിലേക്ക് പുനഃസ്ഥാപിക്കുക.</translation>
 <translation id="7517786267097410259">ഒരു പാസ്‌വേഡ് സൃഷ്‌ടിക്കുക -</translation>
 <translation id="7518150891539970662">WebRTC ലോഗുകൾ (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4170,7 +4113,6 @@
     സൃഷ്‌ടിക്കുന്നത് പരീക്ഷിക്കാനാകും.</translation>
 <translation id="756445078718366910">ബ്രൌസര്‍‌ വിന്‍‌ഡോ തുറക്കുക</translation>
 <translation id="7564847347806291057">പ്രക്രിയയുടെ അവസാനം</translation>
-<translation id="7565291891798266313">നിങ്ങളുടെ തിരയൽ എഞ്ചിൻ <ph name="URL" /> എന്നതിലേക്ക് മാറ്റിയിരിക്കുന്നു. തിരയൽ എഞ്ചിനിൽ മാറ്റം വരുത്തുന്ന വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കാൻ, 'പുനഃസ്ഥാപിക്കുക' ക്ലിക്കുചെയ്യുക.</translation>
 <translation id="7566118625369982896">Play ആപ്പ് ലിങ്കുകൾ നിയന്ത്രിക്കുക</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome ഡാറ്റ മായ്‌ച്ചു</translation>
@@ -4179,7 +4121,6 @@
 <translation id="7573172247376861652">ബാറ്ററി ചാർജ്ജ്</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">ഒത്തുനോക്കുക</translation>
-<translation id="7577815336900970562">ലൊക്കേഷൻ നിർണ്ണയിക്കാൻ വൈഫൈ അല്ലെങ്കിൽ സെല്ലുലാർ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കുക</translation>
 <translation id="7579149537961810247">സൈറ്റുകൾ മ്യൂട്ട് ചെയ്യുക</translation>
 <translation id="7580671184200851182">എല്ലാ സ്‌പീക്കറുകളിലൂടെയും സമാനമായ ഓഡിയോ പ്ലേ ചെയ്യുക (മോണോ ഓഡിയോ)</translation>
 <translation id="7581462281756524039">ഒരു ക്ലീൻഅപ്പ് ഉപകരണം</translation>
@@ -4286,6 +4227,7 @@
 <translation id="7773726648746946405">സെഷന്‍ സംഭരണം</translation>
 <translation id="7781335840981796660">എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രദേശിക ഡാറ്റയും നീക്കംചെയ്യും.</translation>
 <translation id="7782102568078991263">Google-ൽ നിന്നും കൂടുതൽ നിർദ്ദേശങ്ങൾ ഒന്നുമില്ല</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> ലോഡുചെയ്യാൻ കഴിഞ്ഞില്ല</translation>
 <translation id="7784067724422331729">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ സുരക്ഷ ക്രമീകരണങ്ങൾ ഈ ഫയലിനെ തടഞ്ഞു.</translation>
 <translation id="7786207843293321886">അതിഥി സെഷനിൽ നിന്നും പുറത്തുകടക്കുക</translation>
 <translation id="7786889348652477777">അപ്ലിക്കേഷൻ &amp;വീണ്ടും ലോഡുചെയ്യുക</translation>
@@ -4448,7 +4390,6 @@
 <translation id="8001504501378762252">നിങ്ങളുടെ പാസ്‍വേഡ് ഒരു സൈറ്റ് മോഷ്‌ടിച്ചിരിക്കാം</translation>
 <translation id="8004582292198964060">ബ്രൌസര്‍</translation>
 <translation id="8008356846765065031">ഇന്റർനെറ്റ് വിച്ഛേദിച്ചു. നിങ്ങളുടെ ഇന്റർനെറ്റ് കണക്ഷൻ പരിശോധിക്കുക.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> ലോഡ് ചെയ്യാനായില്ല.</translation>
 <translation id="8008818777654712271">അപകടകരമായ ആപ്‌സുകളും സൈറ്റുകളും കണ്ടെത്താൻ സഹായിക്കാൻ ചില സിസ്‌റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും സ്വയമേവ Google-ന് അയയ്‌ക്കുക</translation>
 <translation id="8012382203418782830">ഈ പേജ് വിവർത്തനം ചെയ്‌തു.</translation>
 <translation id="8014154204619229810">അപ്‌ഡേറ്റർ നിലവിൽ പ്രവർത്തിക്കുന്നു. വീണ്ടും പരിശോധിക്കാൻ ഒരു മിനിറ്റിനുള്ളിൽ പുതുക്കുക.</translation>
@@ -4565,7 +4506,6 @@
 <translation id="8191230140820435481">നിങ്ങളുടെ അപ്ലിക്കേഷനുകൾ, വിപുലീകരണങ്ങൾ, തീമുകൾ എന്നിവ നിയന്ത്രിക്കുക</translation>
 <translation id="8191453843330043793">V8 പ്രോക്‌സി റിസോൾവർ</translation>
 <translation id="8195027750202970175">ഡിസ്‌കിലെ വലുപ്പം</translation>
-<translation id="8195739004487400241">നിങ്ങളുടെ ഹോം പേജ് <ph name="URL" /> എന്നതിലേക്ക് മാറ്റിയിരിക്കുന്നു. ഹോം പേജിൽ മാറ്റം വരുത്തുന്ന വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കാൻ, 'പുനഃസ്ഥാപിക്കുക' ക്ലിക്കുചെയ്യുക.</translation>
 <translation id="8199300056570174101">നെറ്റ്‌വർക്കും (സേവനം) ഉപകരണ പ്രോപ്പർട്ടികളും</translation>
 <translation id="8200772114523450471">തുടരൂ</translation>
 <translation id="8202160505685531999">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> പ്രൊഫൈൽ അപ്‌ഡേറ്റുചെയ്യാൻ പാസ്‌വേഡ് വീണ്ടും നൽകുക.</translation>
@@ -4609,7 +4549,6 @@
 <translation id="8261378640211443080">ഈ വിപുലീകരണം <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> എന്നതിൽ ലിസ്റ്റുചെയ്‌തിട്ടില്ല, ഇത് നിങ്ങളുടെ അറിവില്ലാതെ ചേർത്തിരിക്കാനിടയുണ്ട്.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> എന്നയാൾക്കായി അക്കൗണ്ട് ചേർക്കുക</translation>
 <translation id="8261506727792406068">ഇല്ലാതാക്കുക</translation>
-<translation id="826246685091802258">ഈ ബിൽഡിൽ <ph name="BAD_FLAG" /> നടപ്പിലാക്കിയിട്ടില്ല</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> നിങ്ങളുടെ മൗസ് കഴ്‌സർ അപ്രാപ്‌തമാക്കി.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" പൂർണ്ണ സ്‌ക്രീനിൽ പ്രവർത്തനക്ഷമമാക്കി.</translation>
 <translation id="8270242299912238708">PDF ഡോക്യുമെന്റുകൾ</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">അല്ലെങ്കിൽ, ഒരു പുതിയ നെറ്റ്‌വർക്ക് തിരഞ്ഞെടുക്കുക:</translation>
 <translation id="845627346958584683">കാലഹരണപ്പെടല്‍ സമയം</translation>
 <translation id="8456681095658380701">അസാധുവായ പേര്</translation>
+<translation id="8457451314607652708">ബുക്ക്‌മാർക്കുകൾ ഇമ്പോർട്ടുചെയ്യുക</translation>
 <translation id="8460336040822756677"><ph name="DEVICE_TYPE" />-നുള്ള Smart Lock ഓഫാക്കിയെങ്കിൽ, ഫോൺ ഉപയോഗിച്ച് നിങ്ങളുടെ Chrome ഉപകരണങ്ങൾ അൺലോക്കുചെയ്യാനാവില്ല. പാസ്‌വേഡ് നൽകേണ്ടതുണ്ട്.</translation>
 <translation id="8461329675984532579">ഹോം പ്രൊവൈഡറിന്റെ പേര്</translation>
 <translation id="84613761564611563">നെറ്റ്‌വർക്ക് കോൺഫിഗർ ചെയ്യാനുള്ള UI അഭ്യർത്ഥിച്ചു, കാത്തിരിക്കൂ...</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">ദോഷകരമായ സോഫ്‌റ്റ്‌വെയറൊന്നും കണ്ടെത്തിയില്ല</translation>
 <translation id="8512476990829870887">പ്രോസസ്സ് അവസാനിപ്പിക്കുക</translation>
 <translation id="851263357009351303">ചിത്രങ്ങൾ‌ കാണിക്കുന്നതിന്<ph name="HOST" /> നെ എല്ലായ്‌പ്പോഴും അനുവദിക്കുക</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" ഈ ബ്രൗസറിനെ ഡീബഗുചെയ്യുന്നു.</translation>
 <translation id="8521475323816527629">നിങ്ങളുടെ ആപ്പുകൾ വേഗത്തിൽ സ്വന്തമാക്കുക</translation>
 <translation id="8523493869875972733">മാറ്റങ്ങൾ നിലനിർത്തുക</translation>
 <translation id="8523849605371521713">നയം ചേർത്തത്</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ കോൺഫിഗർ ചെയ്യുക</translation>
 <translation id="8620790565535071193">സ്‌കാനിംഗ് പരാജയപ്പെട്ടു</translation>
 <translation id="8622877356447980900">നിങ്ങൾക്ക് ഈ പേജ് വിവർത്തനം ചെയ്യണോ?</translation>
-<translation id="8623004009673949077">'kiosk_only' മാനിഫെസ്റ്റ് ആട്രിബ്യൂട്ട് ഉള്ള അപ്ലിക്കേഷൻ, Chrome OS കിയോസ്‌ക് മോഡിൽ ഇൻസ്റ്റാളുചെയ്യണം.</translation>
 <translation id="8624205858755890468">ബന്ധപ്പെട്ട വിവരങ്ങളും ആപ്പുകളും പ്രവർത്തനങ്ങളും നിങ്ങളെ കാണിക്കാൻ സഹായിയെ പ്രവർത്തനക്ഷമമാക്കുന്നു.</translation>
 <translation id="862542460444371744">&amp;വിപുലീകരണങ്ങള്‍</translation>
 <translation id="8627151598708688654">ഉറവിടം തിരഞ്ഞെടുക്കുക</translation>
@@ -4945,7 +4883,6 @@
 <translation id="882204272221080310">അധിക സുരക്ഷയ്ക്കായി ഫേംവെയര്‍ അപ്‌ഡേറ്റുചെയ്യുക.</translation>
 <translation id="8823514049557262177">ലിങ്ക് ടെ&amp;ക്‌സ്റ്റ് പകർത്തുക</translation>
 <translation id="8824701697284169214">പേ&amp;ജ് ചേർക്കുക...</translation>
-<translation id="8827850355924932817">ലൊക്കേഷൻ നിർണ്ണയിക്കാൻ വൈഫൈ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കുക</translation>
 <translation id="8828933418460119530">DNS നാമം</translation>
 <translation id="8830796635868321089">നിലവിലെ പ്രോക്‌സി ക്രമീകരണങ്ങൾ ഉപയോഗിച്ചുള്ള അപ്‌ഡേറ്റ് പരിശോധന പരാജയപ്പെട്ടു. നിങ്ങളുടെ <ph name="PROXY_SETTINGS_LINK_START" />പ്രോക്‌സി ക്രമീകരണങ്ങൾ<ph name="PROXY_SETTINGS_LINK_END" /> ക്രമീകരിക്കുക.</translation>
 <translation id="8834039744648160717">നെറ്റ്‌വർക്ക് കോൺഫിഗറേഷൻ നിയന്ത്രിക്കുന്നത് <ph name="USER_EMAIL" /> ആണ്.</translation>
@@ -4977,9 +4914,7 @@
 <translation id="8879284080359814990">&amp;ടാബായി കാണിക്കുക</translation>
 <translation id="8884961208881553398">പുതിയ സേവനങ്ങൾ ചേർക്കുക</translation>
 <translation id="8885197664446363138">Smart Lock ലഭ്യമല്ല</translation>
-<translation id="8885905466771744233">പ്രത്യേക വിപുലീകരണത്തിനുള്ള ഒരു സ്വകാര്യ കീ ഇതിനകം നിലവിലുണ്ട്. ആ കീ പുനരുപയോഗിക്കുക അല്ലെങ്കില്‍ ആദ്യം അത് ഇല്ലാതാക്കുക.</translation>
 <translation id="8888432776533519951">വർണ്ണം:</translation>
-<translation id="8892992092192084762">"<ph name="THEME_NAME" />" തീം ഇൻസ്റ്റാൾ ചെയ്തു.</translation>
 <translation id="8893928184421379330">ക്ഷമിക്കണം, <ph name="DEVICE_LABEL" /> എന്ന ഉപകരണം അംഗീകരിക്കാൻ കഴിഞ്ഞില്ല.</translation>
 <translation id="8895454554629927345">ലിസ്‌റ്റ് ബുക്ക്‌മാർക്ക് ചെയ്യുക</translation>
 <translation id="88986195241502842">Page down</translation>
@@ -4988,13 +4923,12 @@
 <translation id="8899285681604219177">പിന്തുണയ്ക്കാത്ത വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കി</translation>
 <translation id="8899551033019439140">പ്രിന്റർ തിരയുന്നു...</translation>
 <translation id="8899851313684471736">പുതിയ &amp;വിന്‍ഡോയിലെ ലിങ്ക് തുറക്കുക</translation>
-<translation id="8902667442496790482">'സംസാരിക്കാൻ തിരഞ്ഞെടുക്കുക' ക്രമീകരണം തുറക്കുക</translation>
+<translation id="8902667442496790482">'വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക' ക്രമീകരണം തുറക്കുക</translation>
 <translation id="8903921497873541725">സൂം ഇന്‍</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">മുന്നറിയിപ്പ്: ഈ കമ്പ്യൂട്ടറിൽ നിങ്ങൾ ഈ വിപുലീകരണത്തിന്റെ കഴിവുകൾ പരിമിതപ്പെടുത്തുന്ന 'സ്ക്രിപ്‌റ്റുകൾ ആവശ്യമായ പ്രവർത്തന ഫ്ലാഗ്' പ്രവർത്തനക്ഷമമാക്കി. എങ്കിലും, മറ്റ് ഉപകരണങ്ങൾ ഈ ഫ്ലാഗിനെ പിന്തുണയ്‌ക്കുകയോ പ്രവർത്തനക്ഷമമാക്കുകയോ ചെയ്യില്ല. ഈ ഉപകരണങ്ങളിൽ ഈ വിപുലീകരണത്തിന് ഇവയും ചെയ്യാനാവും:</translation>
 <translation id="8910146161325739742">നിങ്ങളുടെ സ്‌ക്രീൻ പങ്കിടുക</translation>
 <translation id="8910222113987937043">ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, പാസ്‌വേഡുകൾ, മറ്റ് ക്രമീകരണം എന്നിവയിലുള്ള മാറ്റങ്ങളെ ഇനി നിങ്ങളുടെ Google അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കില്ല. എന്നിരുന്നാലും, നിലവിലുള്ള വിവരങ്ങളെ Google അക്കൗണ്ടിൽ തുടർന്നും സൂക്ഷിക്കും, അവ <ph name="BEGIN_LINK" />Google ഡാഷ്‌ബോർഡിൽ<ph name="END_LINK" /> മാനേജുചെയ്യാം.</translation>
-<translation id="8911079125461595075">"<ph name="EXTENSION_NAME" />" എന്നതിനെ Google ക്ഷുദ്രകരമെന്ന് ഫ്ലാഗുചെയ്‌തതിനാൽ ഇൻസ്റ്റാളേഷൻ തടഞ്ഞു.</translation>
 <translation id="8912793549644936705">വലിച്ചുനീട്ടുക</translation>
 <translation id="8915370057835397490">നിർദ്ദേശം ലോഡുചെയ്യുന്നു</translation>
 <translation id="8916476537757519021">ആൾമാറാട്ട സബ്‌ഫ്രെയിം: <ph name="SUBFRAME_SITE" /></translation>
@@ -5100,7 +5034,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB മൗസ് കണക്‌റ്റുചെയ്‌തു</translation>
 <translation id="9076523132036239772">ക്ഷമിക്കൂ, നിങ്ങളുടെ ഇമെയിലോ പാസ്‌വേഡോ സ്ഥിരീകരിക്കാന്‍ കഴിഞ്ഞില്ല. ആദ്യം ഒരു നെറ്റ്‍വര്‍ക്കിലേക്ക് ബന്ധിപ്പിച്ചുകൊണ്ട് ശ്രമിക്കുക.</translation>
-<translation id="907841381057066561">പാക്കേജിംഗ് സമയത്ത് താല്‍‌ക്കാലിക zip ഫയല്‍‌ സൃഷ്‌ടിക്കുന്നതിന് പരാജയപ്പെട്ടു. </translation>
 <translation id="9084064520949870008">വിന്‍ഡോ ആയി തുറക്കുക</translation>
 <translation id="9088234649737575428">എന്റർപ്രൈസ് നയം <ph name="PLUGIN_NAME" /> എന്നതിനെ ബ്ലോക്കുചെയ്‌തു</translation>
 <translation id="9088917181875854783">ഈ പാസ്‌കീ "<ph name="DEVICE_NAME" />" എന്നതിൽ കാണിച്ചിരിക്കുന്നുവെന്ന് സ്ഥിരീകരിക്കുക:</translation>
@@ -5191,11 +5124,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">പാസ്ഫ്രെയ്സ് നല്‍കുക</translation>
 <translation id="939736085109172342">പുതിയ ഫോള്‍ഡര്‍</translation>
-<translation id="941543339607623937">സ്വകാര്യ കീ അസാധുവാണ്.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> ഒരു Chrome ടാബും ഓഡിയോയും പങ്കിടുന്നു.</translation>
 <translation id="942954117721265519">ഈ ഡയറക്‌ടറിയിൽ ചിത്രങ്ങളൊന്നുമില്ല.</translation>
 <translation id="945522503751344254">ഫീഡ്ബാക്ക് അയയ്ക്കുക</translation>
-<translation id="951981865514037445"><ph name="URL" /> നിങ്ങളുടെ ഉപകരണത്തിന്റെ ലൊക്കേഷൻ ഉപയോഗിക്കാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
 <translation id="952992212772159698">സജീവമാക്കിയില്ല</translation>
 <translation id="9580706199804957">Google സേവനങ്ങളിലേക്ക് കണക്റ്റ് ചെയ്യാനായില്ല</translation>
 <translation id="958515377357646513">മുന്നോട്ട് പോകാൻ സ്‌പർശിക്കുക.</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 4d05fb8e..4ab549b 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">केवळ एनसिफर</translation>
 <translation id="1039337018183941703">अवैध किंवा दूषित फाइल</translation>
 <translation id="1042174272890264476">आपला संगणक देखील <ph name="SHORT_PRODUCT_NAME" />च्या RLZ वाचनालयासह अंगभूत आला आहे. एका विशिष्ट जाहिरात मोहीमेद्वारे चालविलेला शोध आणि <ph name="SHORT_PRODUCT_NAME" /> वापर मोजण्यासाठी RLZ एक अद्वितीय-नसलेला, वैयक्तिकरित्या-ओळखता न येणारा टॅग नियुक्त करते. <ph name="PRODUCT_NAME" /> मधील Google शोध क्वेरींमध्ये ही लेबल काहीवेळा दिसतात.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> आपल्या डिव्हाइसवर मोठ्या प्रमाणावर डेटा कायमचा संचयित करू इच्छित आहे.</translation>
 <translation id="1046059554679513793">अरेरे, हे नाव आधीच वापरात आहे!</translation>
 <translation id="1047431265488717055">दुवा मजकूर कॉपी करा</translation>
 <translation id="1047726139967079566">हे पृष्ठ बुकमार्क करा...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">डीफॉल्ट शोध इंजिन रिस्टोअर करायचे का?</translation>
 <translation id="1177863135347784049">सानुकूल</translation>
 <translation id="1178581264944972037">विराम द्या</translation>
-<translation id="1179803038870941185"><ph name="URL" /> आपल्या MIDI डिव्हाइसचे पूर्ण नियंत्रण मिळवू इच्छिते.</translation>
 <translation id="1181037720776840403">काढा</translation>
 <translation id="1183237619868651138">स्थानिक कॅशेमध्ये <ph name="EXTERNAL_CRX_FILE" /> इंस्टॉल करू शकत नाही.</translation>
 <translation id="1185924365081634987">आपण या नेटवर्क त्रुटीचे निराकरण करण्यासाठी <ph name="GUEST_SIGNIN_LINK_START" />अतिथी म्हणून ब्राउझ<ph name="GUEST_SIGNIN_LINK_END" /> देखील करू शकता.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{आपल्या संगणकावर संचयित केलेल्या फाईलवर प्रवेश करा}one{आपल्या संगणकावर संचयित केलेल्या # फाईलवर प्रवेश करा}other{आपल्या संगणकावर संचयित केलेल्या # फायलींवर प्रवेश करा}}</translation>
 <translation id="1195076408729068893">Smart Lock चालू करण्यासाठी तुमचा पासवर्ड टाका. पुढच्या वेळी तुमचे <ph name="DEVICE_TYPE" /> अनलॉक करण्यासाठी तुम्ही तुमचा फोन वापरू शकता.</translation>
 <translation id="1195447618553298278">अज्ञात एरर.</translation>
-<translation id="1196338895211115272">खासगी की निर्यात करण्यात अयशस्वी.</translation>
 <translation id="119738088725604856">स्क्रीनशॉट विंडो</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> प्रिंटरसाठी प्रिंटर क्षमता पुनर्प्राप्त करताना एरर आली. हा प्रिंटर <ph name="CLOUD_PRINT_NAME" /> सह नोंदणीकृत असू शकत नाही.</translation>
 <translation id="1198271701881992799">आता प्रारंभ करा</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">या सेटिंगसाठी आपला प्रशासक विशिष्‍ट मूल्याची शिफारस करतो.</translation>
 <translation id="1225177025209879837">विनंतीवर प्रक्रिया करत आहे...</translation>
 <translation id="1225211345201532184">शेल्फ आयटम 5</translation>
-<translation id="1225404570112441414">कधीही वापरण्‍यासाठी ही साइट आपल्‍या शेल्‍फमध्‍ये जोडा.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" शी कनेक्ट करताना प्रमाणीकरण अयशस्वी झाले.</translation>
 <translation id="1230807973377071856">सिस्टम मेनू</translation>
 <translation id="1232569758102978740">अशीर्षकांकित</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML फाईल बुकमार्क करते</translation>
 <translation id="1303671224831497365">Bluetooth डिव्हाइसेस सापडली नाहीत</translation>
 <translation id="1306606229401759371">सेटिंग्ज बदला</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> वर आपल्या संकेतशब्दांमध्‍ये कोणत्याही डिव्हाइस वरून प्रवेश करा</translation>
 <translation id="1307559529304613120">अरेरे! या डिव्हाइससाठी दीर्घ-मुदतीचे API प्रवेश टोकन संचयित करण्यात सिस्टम अयशस्वी झाली.</translation>
 <translation id="1313405956111467313">स्वयंचलित प्रॉक्सी कॉन्फिगरेशन</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">शोधा</translation>
 <translation id="1386387014181100145">कसे काय.</translation>
 <translation id="138784436342154190">डीफॉल्ट प्रारंभ पृष्‍ठ पुनर्संचयित करायचे?</translation>
-<translation id="1389297115360905376">हे केवळ <ph name="CHROME_WEB_STORE" /> वरून जोडले जाऊ शकते.</translation>
 <translation id="1390548061267426325">नियमित टॅब म्हणून उघडा</translation>
-<translation id="1391807639023934267">अधिक जलद पृष्‍ठ लोड केले.</translation>
 <translation id="1393283411312835250">सूर्य आणि ढग</translation>
 <translation id="1395262318152388157">स्लायाडर शोधा</translation>
 <translation id="1395730723686586365">अद्यतनकर्ता प्रारंभ</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">आपण <ph name="PRODUCT_NAME" /> च्या अस्थिर आवृत्तीवर अपडेट करत आहात ज्यात प्रगतीपथावर असलेली वैशिष्ट्ये आहेत. क्रॅश आणि अनपेक्षित दोष आढळतील. कृपया सावधगिरीसह पुढे जा.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> ("<ph name="EXTENSION_ID" />" विस्तार आयडी) या प्रकारच्या सत्रामध्ये अनुमत नाही.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">अरेरे! यादृच्छिक RSA खासगी की व्युत्पन्न करण्यात अयशस्वी.</translation>
 <translation id="1420834118113404499">मीडिया परवाने</translation>
 <translation id="1420920093772172268">जोडणीस अनुमती देण्‍यासाठी <ph name="TURN_ON_BLUETOOTH_LINK" /> चालू करा</translation>
 <translation id="1426410128494586442">होय</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ऑडिओ पत्ता कॉपी करा</translation>
 <translation id="1465827627707997754">पिझ्झा स्लाइस</translation>
 <translation id="1467432559032391204">डावे</translation>
-<translation id="1467999917853307373"><ph name="URL" /> आपल्या डिव्हाइसवर डेटा कायमचा संचयित करू इच्छित आहे.</translation>
-<translation id="1470719357688513792">नवीन कुकी सेटिंग्ज हे पृष्ठ रीलोड केल्यानंतर प्रभावी होतील.</translation>
 <translation id="1470811252759861213">आपल्या सर्व संगणकांवर आपले विस्तार प्राप्त करण्यासाठी, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" अपलोड केली नाही. आपल्या Google ड्राइव्हमध्ये पर्याप्त स्थान नाही.</translation>
 <translation id="1475502736924165259">आपल्याकडे फाईलवर प्रमाणपत्रे आहेत जी अन्य कोणत्याही श्रेणींसाठी योग्य नाहीत</translation>
@@ -367,9 +357,10 @@
 <translation id="15373452373711364">मोठा माउस कर्सर</translation>
 <translation id="1543284117603151572">Edge वरून आयात केले</translation>
 <translation id="1545177026077493356">स्वयंचलित कियोस्क मोड</translation>
+<translation id="1545775234664667895">"<ph name="THEME_NAME" />" थीम इंस्टॉल केली</translation>
 <translation id="1545786162090505744">क्वेरीच्या जागेवर % सह URL</translation>
 <translation id="1546280085599573572">आपण होम बटण क्लिक करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे या विस्ताराने बदलले आहे.</translation>
-<translation id="1547572086206517271">रीफ्रेश करण्याची आवश्यकता आहे</translation>
+<translation id="1547572086206517271">रिफ्रेश करण्याची आवश्यकता आहे</translation>
 <translation id="1548132948283577726">ज्या साइट पासवर्ड जतन करत नाहीत त्या येथे दिसून येतील.</translation>
 <translation id="1549045574060481141">डाउनलोडची पुष्टी करा</translation>
 <translation id="1549078091075571455">Google ने हे पृष्ठ <ph name="SOURCE_LANGUAGE" /> मधून <ph name="TARGET_LANGUAGE" /> मध्ये भाषांतरित करावे असे आपण इच्छिता?</translation>
@@ -442,11 +433,9 @@
     पर्यवेक्षी वापरकर्त्याने भेट दिलेल्या वेबसाइटचे <ph name="BEGIN_BOLD" />पुनरावलोकन<ph name="END_BOLD" /> करू शकता आणि अन्य सेटिंग्ज
     <ph name="BEGIN_BOLD" />व्यवस्थापित<ph name="END_BOLD" /> करू शकता.</translation>
 <translation id="1648943974594387137">साइन-इन तपशील कालबाह्य झाले</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> रेखा दाखवलेल्या नाहीत&gt;</translation>
 <translation id="1650371550981945235">इनपुट पर्याय दर्शवा</translation>
 <translation id="1650709179466243265">www. आणि .com जोडा आणि पत्ता उघडा</translation>
 <translation id="1651008383952180276">आपण समान सांकेतिक वाक्यांश दोनदा एंटर करणे आवश्यक आहे</translation>
-<translation id="1652972346408808053">पासवर्ड जतन केला. <ph name="SAVED_PASSWORDS_LINK" /> वर आपल्या पासवर्डांमध्‍ये कोणत्याही डिव्हाइसवरून प्रवेश करा</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google क्लाउड प्रिंट वर प्रिंटर जोडा जेणेकरून आपण कुठूनही प्रिंट करू शकता.}one{Google क्लाउड प्रिंट वर # प्रिंटर जोडा जेणेकरून आपण कुठूनही प्रिंट करू शकता.}other{Google क्लाउड प्रिंट वर # प्रिंटर जोडा जेणेकरून आपण कुठूनही प्रिंट करू शकता.}}</translation>
 <translation id="1657406563541664238">वापर आकडेवारी आणि क्रॅश अहवाल स्वयंचलितपणे Google कडे पाठवून <ph name="PRODUCT_NAME" /> ला अधिक चांगले करण्यास मदत करा</translation>
 <translation id="1658424621194652532">हे पृष्ठ आपल्या मायक्रोफोनवर प्रवेश करत आहे.</translation>
@@ -673,7 +662,6 @@
 <translation id="2045969484888636535">कुकी अवरोधित करणे सुरू ठेवा</translation>
 <translation id="204622017488417136">आपले डिव्हाइस Chrome च्या मागील इंस्टॉल केलेल्या आवृत्तीवर परत जाईल. सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल. हे पूर्ववत केले जाऊ शकत नाही.</translation>
 <translation id="2048182445208425546">आपल्या नेटवर्क रहदारीवर प्रवेश करा</translation>
-<translation id="2049137146490122801">आपल्या मशीनवर इंस्टॉल फायलींमध्ये प्रशासकाद्वारे प्रवेश अक्षम केला गेला आहे.</translation>
 <translation id="204914487372604757">शॉर्टकट तयार करा </translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
 <translation id="2053312383184521053">निष्क्रिय स्थिती डेटा</translation>
@@ -707,7 +695,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">अद्याप लोड केलेले नाही</translation>
 <translation id="2107494551712864447">एक फिंगरप्रिंट जोडा</translation>
-<translation id="2111843886872897694">अॅप्लिकेशन ते प्रभाव करणार्‍या होस्टवरून दिले जाणे आवश्यक आहे.</translation>
 <translation id="2112877397266219826">मला सेट करण्यासाठी आपला स्पर्श नियंत्रक चालू करा</translation>
 <translation id="21133533946938348">टॅब पिन करा</translation>
 <translation id="2113479184312716848">&amp;फाइल उघडा...</translation>
@@ -794,7 +781,6 @@
 <translation id="2226720438730111184">काय होत आहे ते आम्हाला सांगा</translation>
 <translation id="2229161054156947610">1 तासापेक्षा जास्त बाकी</translation>
 <translation id="222931766245975952">फाईल कापली गेली</translation>
-<translation id="222949136907494149"><ph name="URL" /> आपल्या संगणकाचे स्थान वापरू इच्छिते.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">फोल्डर "<ph name="FOLDER_NAME" />" तयार करण्‍यात अक्षम. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">आजचे डुडल पाहण्यासाठी क्लिक करा</translation>
@@ -808,7 +794,7 @@
 <translation id="2245240762616536227">तुमचा ब्राउझिंग इतिहास शोध, जाहिराती आणि इतर Google सेवांना कसा पर्सनलाइझ करतो यावर नियंत्रण ठेवा</translation>
 <translation id="2249605167705922988">उदा. 1-5, 8, 11-13</translation>
 <translation id="2251218783371366160">सिस्टम दर्शकासह उघडा</translation>
-<translation id="225163402930830576">नेटवर्क रीफ्रेश करा</translation>
+<translation id="225163402930830576">नेटवर्क रिफ्रेश करा</translation>
 <translation id="225240747099314620">संरक्षित सामग्रीसाठी अभिज्ञापकांना अनुमती द्या (संगणक रीस्टार्ट करणे आवश्यक असू शकते)</translation>
 <translation id="2254681226363050822">सहमत आहे</translation>
 <translation id="2255317897038918278">Microsoft Time Stamping</translation>
@@ -882,7 +868,6 @@
 <translation id="236141728043665931">मायक्रोफोन प्रवेश नेहमी अवरोधित करा</translation>
 <translation id="2367972762794486313">अ‍ॅप्स दर्शवा</translation>
 <translation id="2371076942591664043">&amp;पूर्ण झाल्यानंतर उघडा</translation>
-<translation id="237336063998926520">स्थान निर्धारित करण्यासाठी तुमचा आयपी अॅड्रेस वापरा</translation>
 <translation id="2377319039870049694">सूची व्‍ह्यूवर स्विच करा</translation>
 <translation id="2377667304966270281">हार्ड फॉल्ट</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> फायली निवडल्या</translation>
@@ -908,7 +893,7 @@
 <translation id="2425665904502185219">एकूण फाइल आकार</translation>
 <translation id="2428510569851653187">टॅब क्रॅश झाला तेव्हा तुम्ही नेमके काय करत होता ते सांगा</translation>
 <translation id="2431027948063157455">Google Assistant लोड होऊ शकले नाही, कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation>
-<translation id="2433452467737464329">पृष्ठ स्वयं-रीफ्रेश करण्यासाठी URL मध्ये क्वेरी परम जोडा: chrome://network/?refresh=&lt;sec&gt;</translation>
+<translation id="2433452467737464329">पृष्ठ स्वयं-रिफ्रेश करण्यासाठी URL मध्ये क्वेरी परम जोडा: chrome://network/?refresh=&lt;sec&gt;</translation>
 <translation id="2433507940547922241">स्वरूप</translation>
 <translation id="2435248616906486374">नेटवर्क डिस्कनेक्ट झाले</translation>
 <translation id="2435457462613246316">पासवर्ड दर्शवा</translation>
@@ -929,7 +914,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> वरून कॉपी करू इच्छित आहे.</translation>
 <translation id="2462724976360937186">प्रमाणन अधिकृतता की आयडी</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> जोडले</translation>
-<translation id="246335896104539386">बुकमार्क आयात करा</translation>
 <translation id="2464089476039395325">HTTP प्रॉक्सी</translation>
 <translation id="2468902267404883140">तुमच्या फोनशी कनेक्ट होऊ शकत नाही. तुम्ही चालू असलेला आणि सोयीस्कर असलेला सुसंगत Android फोन वापरत असल्याची खात्री करा. &lt;a&gt;आणखी जाणून घ्या&lt;/a&gt;</translation>
 <translation id="2470702053775288986">असमर्थित विस्तार अक्षम</translation>
@@ -945,7 +929,6 @@
 <translation id="2485422356828889247">अनइन्स्टॉल करणे</translation>
 <translation id="2487067538648443797">नवीन बुकमार्क जोडा</translation>
 <translation id="248861575772995840">तुमचा फोन आढळला नाही. तुमच्या <ph name="DEVICE_TYPE" /> चे ब्लुटूथ चालू असल्याची खात्री करा. &lt;a&gt;आणखी जाणून घ्या&lt;/a&gt;</translation>
-<translation id="2489316678672211764">एक (<ph name="PLUGIN_NAME" />) प्लगिन प्रतिसाद देत नाहीये.</translation>
 <translation id="2489428929217601177">काल</translation>
 <translation id="2489918096470125693">&amp;फोल्डर जोडा...</translation>
 <translation id="249113932447298600">क्षमस्व, <ph name="DEVICE_LABEL" /> डिव्हाइस आत्ता समर्थित नाही.</translation>
@@ -999,13 +982,11 @@
 <translation id="2563856802393254086">अभिनंदन! आपली '<ph name="NAME" />' डेटा सेवा सक्रिय केली गेली आहे आणि वापरण्यास  तयार आहे.</translation>
 <translation id="2566124945717127842">आपला <ph name="IDS_SHORT_PRODUCT_NAME" /> डिव्हाइस अगदी नवीन सारखे रीसेट करण्यासाठी Powerwash करा.</translation>
 <translation id="2568774940984945469">इंफोबार कंटेनर</translation>
-<translation id="2570000010887652771">डेटा वापरात बचत झाली.</translation>
 <translation id="257088987046510401">थीम</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> साठी केवळ-वाचनीय प्रवेश मंजूर केला गेला आहे.</translation>
 <translation id="2573269395582837871">एक चित्र आणि नाव निवडा</translation>
 <translation id="2575247648642144396">विस्तार वर्तमान पृष्‍ठावर क्रिया करु शकत असेल तेव्हा हे चिन्ह दृश्यमान होईल. चिन्हावर क्लिक करुन किंवा <ph name="EXTENSION_SHORTCUT" /> दाबून हा विस्तार वापरा.</translation>
 <translation id="2575268751393592580">तुमचा फोन आढळला नाही. तुमचे <ph name="DEVICE_TYPE" /> वाय-फाय किंवा मोबाइल नेटवर्कशी कनेक्ट असल्याची खात्री करा. &lt;a&gt;आणखी जाणून घ्या&lt;/a&gt;</translation>
-<translation id="2576842806987913196">या नावाने आधीपासूनच CRX फाइल उपस्थित आहे.</translation>
 <translation id="257779572837908839">मीटिंगसाठी Chromebox म्हणून सेट अप करा</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />व्हॉल्यूम अनमाउंट करू शकत नाही<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1067,7 +1048,6 @@
 <translation id="2653266418988778031">आपण एक प्रमाणन अधिकृतता (CA) प्रमाणपत्र हटविल्यास, आपला ब्राउझर त्या CA द्वारे जारी केलेल्या कोणत्याही प्रमाणपत्रावर यापुढे विश्वास ठेवणार नाही.</translation>
 <translation id="2653659639078652383">सबमिट करा</translation>
 <translation id="265390580714150011">फील्ड मूल्य</translation>
-<translation id="2654286334048437383">बुकमार्क निर्यात करा</translation>
 <translation id="2655386581175833247">वापरकर्ता प्रमाणपत्र:</translation>
 <translation id="2660779039299703961">इव्‍हेंट</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1261,7 +1241,6 @@
 <translation id="2908162660801918428">निर्देशिकेनुसार माध्यम गॅलरी जोडा</translation>
 <translation id="2908789530129661844">स्क्रीनची झूम कमी करा</translation>
 <translation id="2910318910161511225">नेटवर्कशी कनेक्ट करा आणि पुन्हा प्रयत्न करा</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> आपला मायक्रोफोन वापरु इच्छितो.</translation>
 <translation id="2913331724188855103">कुकी डेटा जतन करणे आणि वाचण्यासाठी साइटना अनुमती द्या (शिफारस केलेले)</translation>
 <translation id="2916073183900451334">वेबपृष्ठावर टॅब दाबल्याने दुवे हायलाइट होतात, तसेच फील्ड तयार होतात</translation>
 <translation id="2916745397441987255">शोध विस्तार</translation>
@@ -1410,7 +1389,6 @@
 <translation id="3141318088920353606">ऐकत आहे…</translation>
 <translation id="3141917231319778873">दिलेली विनंती यावर समर्थित नाही: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">पूर्ण झाले</translation>
-<translation id="3144135466825225871">crx फाइल पुनर्स्थित करण्यात अयशस्वी. फाइल वापरात आहे किंवा नाही हे पाहण्यासाठी तपासा.</translation>
 <translation id="3144647712221361880">हे म्हणून दुवा उघडा</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150927491400159470">कठीण रीलोड</translation>
@@ -1520,7 +1498,6 @@
 <translation id="3309747692199697901">नेहमी सर्व साइटवर चालवा</translation>
 <translation id="3312424061798279731">सक्षम केलेल्या भाषा</translation>
 <translation id="3312903956926554846">डेस्कटॉपवर इंस्टॉल करा</translation>
-<translation id="3313473140726597081">आपले प्रारंभ पृष्ठ <ph name="URL" /> मध्‍ये बदलले. आपले प्रारंभ पृष्‍ठ बदलणारे विस्तार अक्षम करण्‍यासाठी, पुनर्संचयित करा क्लिक करा.</translation>
 <translation id="3313590242757056087">पर्यवेक्षी वापरकर्ता कोणत्या वेबसाइट पाहू शकतो हे सेट करण्यासाठी, आपण
     <ph name="MANAGEMENT_URL" /> ला भेट देऊन प्रतिबंध आणि सेटिंग्ज कॉन्फिगर करू शकता.
     आपण डीफॉल्ट सेटिंग्ज बदलत नसल्यास, 
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">अॅप माहिती</translation>
 <translation id="3335947283844343239">बंद केलेले टॅब पुन्हा उघडा</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> अवरोधित करण्यात आले कारण ते कालबाह्य आहे.</translation>
 <translation id="3340978935015468852">सेटिंग्ज</translation>
 <translation id="3341703758641437857">फाइल URL मध्ये प्रवेशास अनुमती द्या</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ला हे एक्स्टेंशन काढायचे आहे.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">बुकमार्क जोडला</translation>
 <translation id="3389312115541230716">टास्कबार मधील <ph name="SMALL_PRODUCT_LOGO" /> चिन्हावर उजवे क्लिक करा</translation>
 <translation id="3391716558283801616">टॅब 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> आपला कॅमेरा आणि मायक्रोफोन वापरु इच्छिते.</translation>
 <translation id="3396331542604645348">निवडलेले प्रिंटर उपलब्ध नाही किंवा योग्यरितीने इंस्टॉल केले नाही. आपला प्रिंटर तपासा किंवा दुसरा प्रिंटर निवडून पहा.</translation>
 <translation id="3399432415385675819">सूचना बंद केल्या जातील</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी नवीन आवृत्ती असते</translation>
 <translation id="3551320343578183772">टॅब बंद करा</translation>
 <translation id="3552780134252864554">बाहेर पडताना साफ केले</translation>
-<translation id="355298399003313926"><ph name="URL" /> प्रवेशयोग्यता कार्यक्रमांवर प्रतिसाद देऊ इच्छित आहे.</translation>
 <translation id="3555812735919707620">विस्तार काढा</translation>
 <translation id="3556000484321257665">आपले शोध इंजिन <ph name="URL" /> मध्‍ये बदलले.</translation>
-<translation id="3561217442734750519">खासगी की साठी इनपुट मूल्य वैध पथ असावा.</translation>
 <translation id="3563432852173030730">कियोस्क अॅप्लिकेशन डाउनलोड केला जाऊ शकला नाही.</translation>
 <translation id="3564334271939054422">आपण वापरत असलेल्या (<ph name="NETWORK_ID" />) Wi-Fi नेटवर्कला आपण त्याच्या लॉग इन पृष्ठास भेट देणे आवश्यक असू शकते.</translation>
 <translation id="3564708465992574908">झूम स्तर</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">प्रमाणपत्र नाव प्रतिबंध</translation>
 <translation id="3596235046596950091">क्लाउड सेवा सक्षम करा</translation>
 <translation id="3599863153486145794">साइन-इन केलेल्या सर्व डिव्हाइसमधून इतिहास साफ करते. तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर कदाचित ब्राउझिंगचे इतर फॉर्म असतील.</translation>
-<translation id="3600456501114769456">आपल्‍या प्रशासकाद्वारे आपल्‍या डिव्‍हाइसवरील स्‍थानिक फायलींवर प्रवेश अक्षम केला आहे.</translation>
 <translation id="3600792891314830896">ध्वनी प्ले करणाऱ्या साइट म्युट करा</translation>
 <translation id="3603177256297531067">या पेजचे भाषांतर करता आले नाही</translation>
 <translation id="3603533104205588786">तुम्ही पेज बुकमार्क करण्यासाठी तारावर क्लिक करू शकता</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">स्क्रीनशॉट अक्षम केले</translation>
 <translation id="3625870480639975468">झूम रीसेट करा</translation>
 <translation id="3626281679859535460">ब्राइटनेस</translation>
-<translation id="3627052133907344175">"<ph name="IMPORT_VERSION" />" किमान आवृत्तीसह विस्तारास "<ph name="IMPORT_NAME" />" आवश्यक आहे, परंतु केवळ "<ph name="INSTALLED_VERSION" />" आवृत्ती इंस्टॉल केली आहे.</translation>
 <translation id="3627320433825461852">1 मिनिटापेक्षा कमी बाकी</translation>
 <translation id="3627588569887975815">गु&amp;प्त विंडोमध्ये दुवा उघडा</translation>
 <translation id="3627671146180677314">Netscape प्रमाणपत्र नूतनीकरण वेळ</translation>
@@ -1763,7 +1734,6 @@
 <translation id="3668570675727296296">भाषा सेटिंग्ज</translation>
 <translation id="3668823961463113931">हँडलर</translation>
 <translation id="3670229581627177274">Bluetooth चालू करा</translation>
-<translation id="3672159315667503033"><ph name="URL" /> आपल्या स्थानिक संगणकावर मोठ्या प्रमाणावर डेटा कायमचा संचयित करू इच्छित आहे.</translation>
 <translation id="3672681487849735243">एक फॅक्टरी एरर शोधली गेली</translation>
 <translation id="367645871420407123">आपण डीफॉल्ट चाचणी प्रतिमा मूल्यामध्ये मूळ पासवर्ड सेट करू इच्छित असल्यास रिक्त सोडा</translation>
 <translation id="3678156199662914018">विस्तारः <ph name="EXTENSION_NAME" /></translation>
@@ -1841,11 +1811,9 @@
 <translation id="3786301125658655746">आपण ऑफलाइन आहात</translation>
 <translation id="3788401245189148511">ते करू शकले असते:</translation>
 <translation id="3789841737615482174">स्थापना करा</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> केवळ डेस्कटॉपवर कार्य करते.</translation>
 <translation id="379082410132524484">तुमचे कार्ड एक्सपायर झालेले आहे</translation>
 <translation id="3792890930871100565">प्रिंटर डिस्कनेक्ट करा</translation>
 <translation id="379422718204375917">तुमच्या खात्यामध्ये साइन इन करण्यासाठी Smart Lock वापरा</translation>
-<translation id="3794595850995182458">पेजमधून बाहेर या</translation>
 <translation id="3796648294839530037">आवडीचे नेटवर्क:</translation>
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” साठी <ph name="SEARCH_ENGINE" /> &amp;शोधा</translation>
 <translation id="3798325802885154040">क्लिक करण्यासाठी टॅप करा सक्षम/अक्षम करण्याची आपल्याला अनुमती देते</translation>
@@ -1976,7 +1944,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> सक्षम करा</translation>
 <translation id="3981760180856053153">अवैध जतन प्रकार एंटर केले.</translation>
 <translation id="3983586614702900908">अज्ञात विक्रेत्याकडील डिव्हाइसेस</translation>
-<translation id="3984413272403535372">विस्तारात साइन करताना एरर.</translation>
 <translation id="3987938432087324095">क्षमस्व, ते समजले नाही.</translation>
 <translation id="3988996860813292272">टाइम झोन निवडा</translation>
 <translation id="3989635538409502728">साइन आउट</translation>
@@ -2031,7 +1998,6 @@
 <translation id="4087470595660267445">तुमच्या Chromebook वर Google Play मधून अॅप आणि गेम इंस्टॉल करा. &lt;a target="_blank" href="<ph name="URL" />"&gt;अधिक जाणून घ्या&lt;/a&gt;</translation>
 <translation id="4088095054444612037">गटासाठी स्वीकारा</translation>
 <translation id="4090103403438682346">सत्यापित केलेला प्रवेश सक्षम करा</translation>
-<translation id="4090404313667273475">या पृष्‍ठावरील काही घटक प्रदर्शित करण्यासाठी <ph name="PLUGIN_NAME" /> आवश्‍यक आहे.</translation>
 <translation id="4090535558450035482">(हा विस्तार व्यवस्थापित केलेला आहे आणि तो काढला जाऊ शकत नाही.)</translation>
 <translation id="4091434297613116013">कागदी पत्रके</translation>
 <translation id="4093955363990068916">स्थानिक फाईल:</translation>
@@ -2365,7 +2331,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> आता आपले पासवर्ड संंकालित करू शकतो.</translation>
 <translation id="4715553623069266137">खूप कमी (0.8s)</translation>
 <translation id="4716483597559580346">अतिरिक्त सुरक्षिततेसाठी पॉवरवॉश</translation>
-<translation id="471800408830181311">खासगी की आउटपुट करण्यात अयशस्वी.</translation>
 <translation id="4720113199587244118">डिव्हाइसेस जोडा</translation>
 <translation id="4720185134442950733">मोबाइल डेटा नेटवर्क</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> आपली स्क्रीन सामायिक करत आहे.</translation>
@@ -2502,7 +2467,6 @@
 <translation id="4917385247580444890">मजबूत</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" विस्ताराशी संवाद प्रस्थापित करू इच्छित आहे</translation>
 <translation id="4918086044614829423">स्वीकारा</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> आपला कॅमेरा वापरु इच्छिते.</translation>
 <translation id="4920887663447894854">या पृष्ठावर आपले स्थान ट्रॅक करण्यापासून खालील साइट अवरोधित केल्या गेल्या आहेत:</translation>
 <translation id="492299503953721473">Android अॅप्स काढा</translation>
 <translation id="4923279099980110923">होय, मी मदत घेऊ इच्छितो</translation>
@@ -2543,7 +2507,6 @@
 <translation id="4980805016576257426">या विस्तारामध्ये मालवेयर आहे.</translation>
 <translation id="498294082491145744">कुकीज, JavaScript, प्लगिन, भौगोलिक स्थान, मायक्रोफोन, कॅमेरा इ. सारख्या वैशिष्ट्यांवरील वेबसाइटचे प्रवेश नियंत्रित करणार्‍या आपल्या सेटिंग्ज बदला.</translation>
 <translation id="4988526792673242964">पृष्ठे</translation>
-<translation id="4988792151665380515">सार्वजनिक की निर्यात करण्यात अयशस्वी.</translation>
 <translation id="49896407730300355">घड्याळाच्या वि&amp;रूद्ध दिशेने फिरवा</translation>
 <translation id="4989966318180235467">&amp;पार्श्वभूमी पृष्ठाचे निरीक्षण करा</translation>
 <translation id="4990343175649730969">Chrome क्लीनअप साधन डाउनलोड करा</translation>
@@ -2573,7 +2536,6 @@
 <translation id="5026874946691314267">हे पुन्हा दर्शवू नका</translation>
 <translation id="5027550639139316293">ईमेल प्रमाणपत्र</translation>
 <translation id="5027562294707732951">विस्तार जोडा</translation>
-<translation id="5028012205542821824">स्थापना सक्षम केली नाही.</translation>
 <translation id="5029568752722684782">कॉपी साफ करा</translation>
 <translation id="5030338702439866405">द्वारा जारी</translation>
 <translation id="5036662165765606524">एकाधिक फायली स्वयंचलितपणे डाउनलोड करण्यासाठी कोणत्याही साइटला अनुमती देऊ नका</translation>
@@ -2609,7 +2571,6 @@
 <translation id="509429900233858213">एक एरर आली आहे.</translation>
 <translation id="5094721898978802975">मूळ अनुप्रयोगांना सहकार्य करून संवाद प्रस्थापित करा</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />': नेटवर्कशी कनेक्ट करण्यात अयशस्वी. <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">पॅक करण्यासाठी असलेल्या निर्देशिकेचा अचूक पथ शोधणे शक्य नाही.</translation>
 <translation id="5099354524039520280">वर</translation>
 <translation id="5100114659116077956">तुमच्यासाठी नवीनतम वैशिष्ट्ये आणण्यासाठी, आपला Chromebox अपडेट करण्‍याची आवश्यकता आहे.</translation>
 <translation id="5101042277149003567">सर्व बुकमार्क उघडा</translation>
@@ -2658,7 +2619,6 @@
 <translation id="5170568018924773124">फोल्डरमध्ये दर्शवा</translation>
 <translation id="5171045022955879922">URL शोधा किंवा टाइप करा</translation>
 <translation id="5171343362375269016">स्वॅप केलेली मेमरी</translation>
-<translation id="5175870427301879686"><ph name="URL" /> आपल्या स्थानिक संगणकावर डेटा कायमचा संचयित करू इच्छित आहे.</translation>
 <translation id="5177479852722101802">कॅमेरा अवरोधित करणे आणि मायक्रोफोनवर प्रवेश करणे सुरू ठेवा</translation>
 <translation id="5177526793333269655">लघुप्रतिमा दृश्य</translation>
 <translation id="5177549709747445269">आपण मोबाईल डेटा वापरत आहात</translation>
@@ -2720,7 +2680,7 @@
 <translation id="5266113311903163739">प्रमाणन अधिकृतता आयात एरर</translation>
 <translation id="5269977353971873915">प्रिंट अयशस्वी</translation>
 <translation id="5271549068863921519">पासवर्ड सेव्ह करा</translation>
-<translation id="5275194674756975076">ठीक आहे, रीफ्रेश करा</translation>
+<translation id="5275194674756975076">ठीक आहे, रिफ्रेश करा</translation>
 <translation id="5275352920323889391">कुत्रा</translation>
 <translation id="5275973617553375938">Google ड्राइव्ह वरून पुनर्प्राप्त केलेल्‍या फायली</translation>
 <translation id="527605719918376753">टॅब नि:शब्द करा</translation>
@@ -2737,7 +2697,6 @@
 <translation id="529175790091471945">हे डीव्हाइस स्वरूपित करा</translation>
 <translation id="5293170712604732402">सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर पुनर्संचयित करा</translation>
 <translation id="5298219193514155779">द्वारा निर्मित थीम</translation>
-<translation id="5298363578196989456">"<ph name="IMPORT_NAME" />" विस्तार सामायिक केलेले मोड्यूल नसल्यामुळे तो आयात करण्यात अक्षम आहे.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">आपल्या संंकालित वाक्यांशासह सर्व डेटा कूटबद्ध केला आहे</translation>
 <translation id="5300589172476337783">दर्शवा</translation>
@@ -2765,7 +2724,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" जोडू इच्छिते</translation>
 <translation id="5332624210073556029">टाइम झोन:</translation>
 <translation id="5334142896108694079">स्क्रिप्ट कॅश  </translation>
-<translation id="533433379391851622">अपेक्षित आवृत्ती "<ph name="EXPECTED_VERSION" />", परंतु आवृत्ती "<ph name="NEW_ID" />" होती.</translation>
 <translation id="5334844597069022743">स्त्रोत पहा</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> चा <ph name="BEGIN_LINK" />Google ड्राइव्ह<ph name="END_LINK" /> वर बॅकअप घेत आहे</translation>
 <translation id="5337771866151525739">एका तृतीय पक्षाद्वारे इंस्टॉल.</translation>
@@ -2803,7 +2761,6 @@
 <translation id="5390100381392048184">साइटना ध्वनी प्ले करण्याची परवानगी द्या</translation>
 <translation id="5390284375844109566">अनुक्रमित डेटाबेस</translation>
 <translation id="5390743329570580756">यासाठी पाठवा</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> वरील <ph name="PEPPER_PLUGIN_NAME" />आपल्या संगणकावर प्रवेश करू इच्छिते.</translation>
 <translation id="5397794290049113714">आपण</translation>
 <translation id="5398572795982417028">निषिद्ध पृष्ठ संदर्भ, मर्यादा <ph name="MAXIMUM_PAGE" /> आहे</translation>
 <translation id="5398772614898833570">जाहिराती ब्लॉक केल्या</translation>
@@ -2865,7 +2822,6 @@
 <translation id="5485754497697573575">सर्व टॅब पुनर्संचयित करा</translation>
 <translation id="5486261815000869482">संकेतशब्दाची पुष्टी करा</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> आपली स्क्रीन <ph name="TAB_NAME" /> सह सामायिक करत आहे.</translation>
-<translation id="5486326529110362464">खासगी की साठी इनपुट मूल्य विद्यमान असणे आवश्यक आहे.</translation>
 <translation id="5486561344817861625">ब्राउझर रीस्टार्ट प्रतिकृती करा</translation>
 <translation id="5487521232677179737">डेटा साफ करा</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' कॉपी केला</translation>
@@ -2948,7 +2904,6 @@
 <translation id="5600706100022181951">अपडेट <ph name="UPDATE_SIZE_MB" /> MB मोबाइल डेटा वापरून डाउनलोड केले जाईल. आपल्याला सुरू ठेवायचे आहे का?</translation>
 <translation id="5601503069213153581">पिन</translation>
 <translation id="5605623530403479164">इतर शोध इंजिने</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> वरील <ph name="PEPPER_PLUGIN_NAME" /> आपल्या डिव्हाइसवर प्रवेश करू इच्छिते.</translation>
 <translation id="5608580678041221894">क्रॉप करण्‍याचे क्षेत्र समायोजित करण्‍यासाठी किंवा हलविण्‍यासाठी खालील की टॅप करा</translation>
 <translation id="5609231933459083978">अॅप्लिकेशन अवैध असल्याचे दिसते.</translation>
 <translation id="5610038042047936818">कॅमेरा मोडवर स्विच करा</translation>
@@ -3191,7 +3146,6 @@
 <translation id="5990386583461751448">भाषांतर केले</translation>
 <translation id="5991049340509704927">विशालित करा</translation>
 <translation id="5993332328670040093">आपला डेटा वापर यापुढे मोजला जाणार नाही.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> कदाचित त्यास अपडेट ठेवण्यास सक्षम नाही. </translation>
 <translation id="600424552813877586">अवैध अॅप्लिकेशन.</translation>
 <translation id="6005695835120147974">मीडिया राउटर</translation>
 <translation id="6006484371116297560">क्लासिक</translation>
@@ -3216,6 +3170,7 @@
 <translation id="604001903249547235">क्लाउड बॅकअप</translation>
 <translation id="6040143037577758943">बंद करा</translation>
 <translation id="6040852767465482106">निनावी ओळख</translation>
+<translation id="6041155700700864984">पूर्णस्क्रीनमधून बाहेर पडा</translation>
 <translation id="604124094241169006">स्वयंचलित</translation>
 <translation id="6042169520002885235">प्रिंटरच्या उत्पादनकर्त्याचे नाव आणि मॉडेल</translation>
 <translation id="6042308850641462728">अधिक</translation>
@@ -3232,7 +3187,6 @@
 <translation id="6056710589053485679">सामान्‍य रीलोड</translation>
 <translation id="6059652578941944813">प्रमाणपत्र पदानुक्रम</translation>
 <translation id="6059925163896151826">USB डिव्हाइसेस</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> क्रॅश झाला आहे.</translation>
 <translation id="6064217302520318294">स्क्रीन लॉक</translation>
 <translation id="6065289257230303064">प्रमाणपत्र विषय निर्देशिका विशेषता</translation>
 <translation id="6068338049763724728">रीमोट नोंदणी चालू करा</translation>
@@ -3335,13 +3289,12 @@
 <translation id="6227235786875481728">ही फाइल प्ले केली जाणे शक्य झाले नाही.</translation>
 <translation id="6228691855869374890">या साइटवर MIDI डिव्हाइसचे पूर्ण नियंत्रण आहे.</translation>
 <translation id="6229890768313448549">Google Play सेवा अटी लोड केल्या जाऊ शकत नाहीत. कृपया पुन्हा प्रयत्न करा.</translation>
-<translation id="6231881193380278751">पृष्ठ स्वयं-रीफ्रेश करण्यासाठी एक क्वेरी परम जोडा: chrome://device-log/?refresh=&lt;sec&gt;</translation>
+<translation id="6231881193380278751">पृष्ठ स्वयं-रिफ्रेश करण्यासाठी एक क्वेरी परम जोडा: chrome://device-log/?refresh=&lt;sec&gt;</translation>
 <translation id="6232017090690406397">बॅटरी</translation>
 <translation id="6232116551750539448"><ph name="NAME" /> वरील कनेक्शन गमावले गेले आहे</translation>
 <translation id="6237816943013845465">आपले स्क्रीन रिझोल्यूशन समायोजित करण्याची आपल्याला अनुमती देते</translation>
 <translation id="6238923052227198598">लॉक स्क्रीनवर नवीनतम टीप ठेवा</translation>
 <translation id="6239558157302047471">रीलोड आणि फ्रेम करा</translation>
-<translation id="624022915548992686">पेजमधून बाहेर या</translation>
 <translation id="6241530762627360640">आपल्या सिस्टीमशी जोडलेल्या Bluetooth डिव्हाइसविषयीच्या माहितीवर प्रवेश करा आणि जवळपासचे Bluetooth डिव्हाइसेस शोधा.</translation>
 <translation id="6243774244933267674">सर्व्हर अनुपलब्ध</translation>
 <translation id="6246413617632217567">पर्यवेक्षी वापरकर्ता आयात केला जाऊ शकला नाही. कृपया आपली हार्ड ड्राइव्ह जागा आणि परवानग्या तपासा आणि पुन्हा प्रयत्न करा.</translation>
@@ -3390,13 +3343,11 @@
 <translation id="6312403991423642364">अज्ञात नेटवर्क एरर</translation>
 <translation id="6313641880021325787">VRमधून बाहेर पडा</translation>
 <translation id="6314819609899340042">आपण या <ph name="IDS_SHORT_PRODUCT_NAME" /> डिव्‍हाइसवर यशस्‍वीरित्या डीबग वैशिष्‍ट्ये सक्षम केली आहेत.</translation>
-<translation id="6315343732431721770"><ph name="URL" /> समाविष्ट करण्‍यासाठी आपली प्रारंभ पृष्‍ठे बदलली. आपले प्रारंभ पृष्‍ठ बदलणारे विस्तार अक्षम करण्‍यासाठी, पुनर्संचयित करा क्लिक करा.</translation>
 <translation id="6315493146179903667">सर्व समोर आणा</translation>
 <translation id="6316806695097060329">हा <ph name="SHORT_PRODUCT_NAME" /> डिव्हाइस आपल्याला वेबवरील सर्वोत्तम अनुभव वितरीत करण्यासाठी डीझाइन केला होता.</translation>
 <translation id="6317318380444133405">आता सपोर्ट करत नाही.</translation>
 <translation id="6317369057005134371">अॅप्लिकेशन विंडोसाठी प्रतीक्षा करत आहे...</translation>
 <translation id="6318407754858604988">डाउनलोड सुरू झाले</translation>
-<translation id="6322279351188361895">खासगी की वाचण्यात अयशस्वी.</translation>
 <translation id="6325191661371220117">स्वयं-लाँच अक्षम करा</translation>
 <translation id="6326175484149238433">Chrome मधून काढा</translation>
 <translation id="6326855256003666642">Keepalive गणना</translation>
@@ -3405,7 +3356,6 @@
 <translation id="6333049849394141510">काय संंकालित करायचे ते निवडा</translation>
 <translation id="6333064448949140209">फाईल डीबग करण्यासाठी Google कडे पाठविली जाईल</translation>
 <translation id="6333834492048057036">शोधासाठी अ‍ॅड्रेस बार वर फोकस करा</translation>
-<translation id="6336907568130557310">निर्यात केलेली फाइल पाहू शकणार्‍या कुणालाही तुमचे पासवर्ड दिसतील. कुणाशीही फाइल शेअर करू नका आणि ती आयात केल्‍यानंतर हटवा.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> साठी एक नवीन प्रोफाइल तयार करा</translation>
 <translation id="6340017061976355871">सर्व्हरशी कनेक्ट करता आले नाही. कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा. समस्या तशीच राहिल्यास, तुमचे Chromebook रीस्टार्ट करा.</translation>
 <translation id="6340071272923955280">इंटरनेट प्रिंट प्रोटोकॉल (IPPS)</translation>
@@ -3434,7 +3384,6 @@
 <translation id="6385543213911723544">साइट कुकी डेटा जतन करू आणि वाचू शकतात</translation>
 <translation id="6388771388956873507">आपल्या डिव्हाइस वरील फिंगरप्रिंट सेन्सर शोधा आणि आपल्या बोटाने त्यास स्पर्श करा</translation>
 <translation id="6390799748543157332">या विंडोमध्ये आपण पाहत असलेली पृष्ठे ब्राउझर इतिहासात दिसणार नाहीत आणि आपण सर्व उघड्या अतिथी विंडो बंद केल्यानंतर संगणकावरील, कुकीज सारखे, अन्य ट्रेस ते सोडणार नाहीत. असे असले तरीही, आपण डाउनलोड करता त्या कोणत्याही फायली संरक्षित केल्या जातील.</translation>
-<translation id="6391538222494443604">इनपुट निर्देशिका विद्यमान असणे आवश्यक आहे.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />सिस्टम माहिती<ph name="END_LINK1" /> आणि <ph name="BEGIN_LINK2" />मेट्रिक्स<ph name="END_LINK2" /> पाठवा</translation>
 <translation id="6397363302884558537">बोलणे थांबवा</translation>
 <translation id="6397592254427394018">सर्व बुकमार्क्स &amp;गुप्त विंडो मध्ये उघडा</translation>
@@ -3493,7 +3442,6 @@
 <translation id="6458308652667395253">JavaScript अवरोधित करणे व्यवस्थापित करा...</translation>
 <translation id="6459488832681039634">शोधण्यासाठी निवड वापरा</translation>
 <translation id="6460601847208524483">पुढील शोधा</translation>
-<translation id="6462080265650314920">"<ph name="CONTENT_TYPE" />" सामग्री-प्रकारासह अॅप्लिकेशन दिले जाणे आवश्यक आहे.</translation>
 <translation id="6462082050341971451">आपण अद्याप तिथे आहात?</translation>
 <translation id="6463795194797719782">&amp;संपादन</translation>
 <translation id="6466988389784393586">सर्व बुकमार्क &amp;उघडा</translation>
@@ -3623,7 +3571,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Google ने हे पृष्ठ <ph name="SOURCE_LANGUAGE" /> मधून <ph name="TARGET_LANGUAGE" /> मध्ये भाषांतरित करावे असे आपण इच्छिता?</translation>
 <translation id="6675665718701918026">निर्देशित करणारे डिव्हाइस कनेक्‍ट केले</translation>
-<translation id="6677037229676347494">अपेक्षित आयडी "<ph name="EXPECTED_ID" />",परंतु आयडी "<ph name="NEW_ID" />" होता.</translation>
 <translation id="6678717876183468697">क्वेरी URL</translation>
 <translation id="6680028776254050810">वापरकर्ते स्‍वीच करा</translation>
 <translation id="6680442031740878064">उपलब्ध: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3763,8 +3710,6 @@
 <translation id="6903534926908201625">Google गोळा करत असलेली माहिती तुम्‍ही <ph name="BEGIN_LINK" />सेटिंग्ज<ph name="END_LINK" /> मध्ये जाऊन कधीही कस्‍टमाइझ करू शकता.</translation>
 <translation id="6904344821472985372">फाईल प्रवेश मागे घ्या</translation>
 <translation id="6904655473976120856">बाहेर पडण्यासाठी अ‍ॅप बटण दाबा</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> आपली स्क्रीन सामायिक करू इच्छितो.</translation>
-<translation id="6909461304779452601">या वेबसाइटवरून अ‍ॅप्स, विस्तार आणि वापरकर्ता स्क्रिप्ट जोडले जाऊ शकत नाहीत.</translation>
 <translation id="6910211073230771657">हटविला</translation>
 <translation id="691024665142758461">एकाधिक फायली डाउनलोड करा</translation>
 <translation id="6911324888870229398">नेटवर्क कनेक्शन गमावले होते. कृपया तुमचे कनेक्शन तपासा किंवा दुसरे वाय-फाय नेटवर्क वापरून पहा.</translation>
@@ -3829,7 +3774,7 @@
 <translation id="7006634003215061422">तळाचा समास</translation>
 <translation id="7006844981395428048">$1 ऑडिओ</translation>
 <translation id="7007648447224463482">सर्व नवीन विंडोमध्ये उघडा</translation>
-<translation id="7008270479623533562">हा विस्तार चालविण्यासाठी, आपण पृष्ठ रीफ्रेश करणे आवश्यक आहे. आपण विस्तार चिन्हावर उजवे-क्लिक करून या साइटवर स्वयंचलितपणे हा विस्तार चालवू शकता.</translation>
+<translation id="7008270479623533562">हा विस्तार चालविण्यासाठी, आपण पृष्ठ रिफ्रेश करणे आवश्यक आहे. आपण विस्तार चिन्हावर उजवे-क्लिक करून या साइटवर स्वयंचलितपणे हा विस्तार चालवू शकता.</translation>
 <translation id="701080569351381435">स्त्रोत पहा</translation>
 <translation id="7012372675181957985">आपल्या Google खात्यात <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> वर ब्राउझिंग इतिहासाची अन्य स्वरूपे असू शकतात</translation>
 <translation id="7013485839273047434">अधिक विस्तार मिळवा</translation>
@@ -3933,7 +3878,7 @@
 <translation id="7173917244679555">आपण त्या नावाने आधीपासून एका वापरकर्त्यास व्यवस्थापित करत असल्याचे दिसते. आपल्याला या डिव्हाइसवर <ph name="BEGIN_LINK" />आयात <ph name="PROFILE_NAME" /><ph name="END_LINK" /> करावयाचे होते?</translation>
 <translation id="7175037578838465313"><ph name="NAME" /> कॉन्फिगर करा</translation>
 <translation id="7175353351958621980">येथून लोड केले:</translation>
-<translation id="7180611975245234373">रीफ्रेश करा</translation>
+<translation id="7180611975245234373">रिफ्रेश करा</translation>
 <translation id="7180865173735832675">सानुकूल करा</translation>
 <translation id="7186088072322679094">टूलबारमध्ये ठेवा</translation>
 <translation id="7187428571767585875">काढून टाकण्‍यासाठी किंवा बदलण्‍यासाठी रजिस्‍ट्री प्रविष्ट्या:</translation>
@@ -4101,7 +4046,6 @@
 <translation id="747114903913869239">एरर:  विस्तार डीकोड करण्यात अक्षम</translation>
 <translation id="7473891865547856676">नाही, नको</translation>
 <translation id="747459581954555080">सर्व पुनर्संचयित करा</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> ला एरर आला.</translation>
 <translation id="7475671414023905704">Netscape पासवर्ड URL गमावली</translation>
 <translation id="7476454130948140105">अपडेटसाठी बॅटरी खूप कमी (<ph name="BATTERY_PERCENT" />%) आहे</translation>
 <translation id="7477347901712410606">आपण आपला सांकेतिक वाक्यांश विसरला असल्यास, थांबा आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> द्वारे समक्रमण रीसेट करा.</translation>
@@ -4138,7 +4082,6 @@
 <translation id="7507930499305566459">स्थिती प्रतिसादकर्ता प्रमाणपत्र</translation>
 <translation id="7508545000531937079">स्लाइडशो</translation>
 <translation id="7513029293694390567">संचयित क्रेडेन्शियल वापरून वेबसाइटवर स्वयंचलितपणे साइन इन करा. अक्षम केले असल्यास, वेबसाइटवर साइन इन करण्यापूर्वी प्रत्येकवेळी आपल्याला पुष्टीकरणासाठी विचारले जाईल.</translation>
-<translation id="7515670329462166359">संरक्षित आशय प्ले करण्यासाठी <ph name="URL" /> ला तुमचे डिव्हाइस विशिष्टपणे ओळखू इच्छिते.</translation>
 <translation id="7517569744831774757">सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर पुनर्संचयित करा.</translation>
 <translation id="7517786267097410259">एक पासवर्ड तयार करा -</translation>
 <translation id="7518150891539970662">WebRTC लॉग (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4168,7 +4111,6 @@
     आणि पुन्हा एक पर्यवेक्षी वापरकर्ता तयार करण्याचा प्रयत्न करू शकता.</translation>
 <translation id="756445078718366910">ब्राउझर विंडो उघडा</translation>
 <translation id="7564847347806291057">प्रक्रिया समाप्त करा</translation>
-<translation id="7565291891798266313">आपले शोध इंजिन <ph name="URL" /> वर बदलले. आपले शोध इंजिन बदलणारे विस्तार अक्षम करण्‍यासाठी, पुनर्संचयित करा क्लिक करा.</translation>
 <translation id="7566118625369982896">Play अॅप लिंक व्‍यवस्‍थापित करा</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome डेटा साफ केला</translation>
@@ -4177,7 +4119,6 @@
 <translation id="7573172247376861652">बॅटरी चार्ज</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">तुलनात्मक</translation>
-<translation id="7577815336900970562">स्‍थान निर्धारित करण्‍यासाठी वायफाय किंवा सेल्‍युलर नेटवर्क वापरा</translation>
 <translation id="7579149537961810247">साइट निःशब्द करा</translation>
 <translation id="7580671184200851182">सर्व स्पीकर मधून समान ऑडिओ प्ले करा (मोनो ऑडिओ)</translation>
 <translation id="7581462281756524039">एक क्लीनअप साधन</translation>
@@ -4284,6 +4225,7 @@
 <translation id="7773726648746946405">सत्र संचयन</translation>
 <translation id="7781335840981796660">सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल.</translation>
 <translation id="7782102568078991263">Google कडून कोणत्याही आणखी सूचना नाहीत</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> लोड करणे शक्य झाले नाही</translation>
 <translation id="7784067724422331729">आपल्या संगणकावरील सुरक्षितता सेटिंग्जने ही फाईल अवरोधित केली.</translation>
 <translation id="7786207843293321886">अतिथी निर्गमन</translation>
 <translation id="7786889348652477777">&amp;अ‍ॅप रीलोड करा</translation>
@@ -4444,10 +4386,9 @@
 <translation id="8001504501378762252">एका साइटने कदाचित तुमचा पासवर्ड चोरला असेल</translation>
 <translation id="8004582292198964060">ब्राउझर</translation>
 <translation id="8008356846765065031">इंटरनेट डिस्कनेक्ट झाले. कृपया आपले इंटरनेट कनेक्शन तपासा.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> लोड करणे शक्य झाले नाही.</translation>
 <translation id="8008818777654712271">धोकादायक अ‍ॅप्स आणि साइट शोधण्यात मदत करण्यासाठी Google ला काही सिस्टम माहिती आणि पृष्ठ सामग्री स्वयंचलितपणे पाठवा.</translation>
 <translation id="8012382203418782830">हे पृष्ठ भाषांतरित केले गेले आहे.</translation>
-<translation id="8014154204619229810">अद्यतनकर्ता सध्या चालू आहे. पुन्हा तपासण्यासाठी एक मिनिटात रीफ्रेश करा.</translation>
+<translation id="8014154204619229810">अद्यतनकर्ता सध्या चालू आहे. पुन्हा तपासण्यासाठी एक मिनिटात रिफ्रेश करा.</translation>
 <translation id="8014206674403687691"><ph name="IDS_SHORT_PRODUCT_NAME" /> पूर्वी इंस्टॉल केलेल्या आवृत्तीवर परत करण्यात अक्षम आहे. कृपया आपले डिव्हाइस Powerwash करण्यासाठी पुन्हा प्रयत्न करा.</translation>
 <translation id="8016266267177410919">तात्पुरता संचय</translation>
 <translation id="8017335670460187064"><ph name="LABEL" /></translation>
@@ -4561,7 +4502,6 @@
 <translation id="8191230140820435481">आपले अॅप्लिकेशन, विस्तार आणि थीम व्यवस्थापित करा</translation>
 <translation id="8191453843330043793">V8 प्रॉक्सी निराकरणकर्ता</translation>
 <translation id="8195027750202970175">डिस्क वरील आकार</translation>
-<translation id="8195739004487400241">आपले मुख्यपृष्ठ <ph name="URL" /> मध्‍ये बदलले. आपले मुख्यपृष्ठ बदलणारे विस्तार अक्षम करण्‍यासाठी, पुनर्संचयित करा क्लिक करा.</translation>
 <translation id="8199300056570174101">नेटवर्क (सेवा) आणि डिव्हाइसचे गुणधर्म</translation>
 <translation id="8200772114523450471">रेझ्युमे</translation>
 <translation id="8202160505685531999">कृपया आपले <ph name="DEVICE_TYPE" /> प्रोफाईल अपडेट करण्‍यासाठी आपला पासवर्ड पु्न्हा-प्रविष्‍ट करा.</translation>
@@ -4605,7 +4545,6 @@
 <translation id="8261378640211443080"><ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्ये हा विस्तार सूचीबद्ध केला नाही आणि कदाचित आपल्या माहिती शिवाय जोडला गेला आहे.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> साठी खाते जोडा</translation>
 <translation id="8261506727792406068">हटवा</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ची या बिल्डमध्ये अंमलबजावणी केली नाही.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> नी आपला माउस कर्सर अक्षम केला आहे.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" प्रवर्तित पूर्णस्क्रीन.</translation>
 <translation id="8270242299912238708">PDF दस्तऐवज</translation>
@@ -4664,7 +4603,7 @@
 <translation id="8381179624334829711">कॅमेरा सेटिंग्ज व्यवस्थापित करा...</translation>
 <translation id="8382913212082956454">&amp;ईमेल पत्ता कॉपी करा</translation>
 <translation id="8386903983509584791">स्कॅन पूर्ण झाले</translation>
-<translation id="8390029840652165810">कृपया आपले नेटवर्क कनेक्शन कार्यरत असल्याचे सुनिश्चित करा आणि समस्या कायम राहिल्यास, कृपया साइन आउट करा आणि आपली क्रेडेन्शियल रीफ्रेश करण्यासाठी पुन्हा साइन इन करा.</translation>
+<translation id="8390029840652165810">कृपया आपले नेटवर्क कनेक्शन कार्यरत असल्याचे सुनिश्चित करा आणि समस्या कायम राहिल्यास, कृपया साइन आउट करा आणि आपली क्रेडेन्शियल रिफ्रेश करण्यासाठी पुन्हा साइन इन करा.</translation>
 <translation id="8390449457866780408">सर्व्हर अनुपलब्ध.</translation>
 <translation id="8392234662362215700">कीबोर्ड लेआउट वरून स्विच करण्यासाठी Control-Shift-Space दाबा.</translation>
 <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> साठी पर्याय मेनू</translation>
@@ -4706,6 +4645,7 @@
 <translation id="8454288007744638700">किंवा, एक नवीन नेटवर्क निवडा:</translation>
 <translation id="845627346958584683">कालावधी समाप्ती वेळ</translation>
 <translation id="8456681095658380701">अवैध नाव</translation>
+<translation id="8457451314607652708">बुकमार्क आयात करा</translation>
 <translation id="8460336040822756677">आपण <ph name="DEVICE_TYPE" /> साठी Smart Lock बंद केल्यास, आपण आपला फोन वापरून आपले Chrome डिव्हाइसेस अनलॉक करण्यात सक्षम असणार नाही. आपल्याला आपला पासवर्ड टाइप करणे आवश्यक आहे.</translation>
 <translation id="8461329675984532579">मुख्यपृष्ठ प्रदाता नाव</translation>
 <translation id="84613761564611563">नेटवर्क कॉन्फिगर UI ची विनंती केली, कृपया प्रतीक्षा करा...</translation>
@@ -4737,7 +4677,6 @@
 <translation id="850875081535031620">कोणतेही हानिकारक सॉफ्टवेअर आढळले नाही</translation>
 <translation id="8512476990829870887">प्रक्रिया समाप्त करा</translation>
 <translation id="851263357009351303"> <ph name="HOST" />  ना प्रतिमा दर्शविण्यासाठी नेहमी परवानगी द्या </translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" हा ब्राउझर डीबग करीत आहे.</translation>
 <translation id="8521475323816527629">तुमच्या अ‍ॅप्सवर पटकन जा</translation>
 <translation id="8523493869875972733">बदल राहू द्या</translation>
 <translation id="8523849605371521713">धोरणाने जोडले</translation>
@@ -4793,7 +4732,6 @@
 <translation id="8620765578342452535">नेटवर्क कनेक्‍शन कॉन्फिगर करा</translation>
 <translation id="8620790565535071193">स्‍कॅनिंग अयशस्‍वी झाले</translation>
 <translation id="8622877356447980900">आपण हे पृष्ठ भाषांतरित करू इच्छिता का?</translation>
-<translation id="8623004009673949077">'kiosk_only' मॅनिफेस्ट विशेषता असलेला अ‍ॅप Chrome OS कियोस्क मोडमध्ये इंस्टॉल करणे आवश्यक आहे.</translation>
 <translation id="8624205858755890468">Assistant ला तुम्हाला संबंधित माहिती, अ‍ॅप्स आणि क्रिया दाखवू देते.</translation>
 <translation id="862542460444371744">&amp;विस्तार</translation>
 <translation id="8627151598708688654">स्त्रोत निवडा</translation>
@@ -4942,7 +4880,6 @@
 <translation id="882204272221080310">अतिरिक्त सुरक्षिततेसाठी फर्मवेअर अपडेट करा.</translation>
 <translation id="8823514049557262177">दुवा मजकूर कॉपी करा</translation>
 <translation id="8824701697284169214">पृ&amp;ष्ठ जोडा...</translation>
-<translation id="8827850355924932817">स्‍थान निर्धारित करण्‍यासाठी वायफाय नेटवर्क वापरा</translation>
 <translation id="8828933418460119530">DNS नाव</translation>
 <translation id="8830796635868321089">वर्तमान प्रॉक्सी सेटिंग्ज वापरून अपडेट तपासणी अयशस्वी झाली. कृपया आपल्या <ph name="PROXY_SETTINGS_LINK_START" />प्रॉक्सी 
 सेटिंग्ज<ph name="PROXY_SETTINGS_LINK_END" /> समायोजित करा.</translation>
@@ -4975,9 +4912,7 @@
 <translation id="8879284080359814990">टॅब म्हणून &amp;दर्शवा</translation>
 <translation id="8884961208881553398">नवीन सेवा जोडा</translation>
 <translation id="8885197664446363138">Smart Lock अनुपलब्ध आहे</translation>
-<translation id="8885905466771744233">निर्दिष्ट विस्तारासाठी खासगी की यापूर्वीच विद्यमान आहे. ती की पुन्हा वापरा किंवा प्रथम ती हटवा.</translation>
 <translation id="8888432776533519951">रंग:</translation>
-<translation id="8892992092192084762">इंस्टॉल केलेली थीम "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">क्षमस्व, <ph name="DEVICE_LABEL" /> डीव्हाइस ओळखले जाऊ शकले नाही.</translation>
 <translation id="8895454554629927345">बुकमार्क सूची</translation>
 <translation id="88986195241502842">पृष्ठ खाली</translation>
@@ -4992,7 +4927,6 @@
 <translation id="8908902564709148335">चेतावणी: आपण या संगणकावर --स्क्रिप्‍ट-आवश्‍यक-क्रिया ध्वज सक्षम केला आहे, जो या विस्‍ताराच्या क्षमता मर्यादित करतो. तथापि, अन्य डिव्‍हाइसेस कदाचित या ध्वजास समर्थन देत नाही किंवा त्यांच्यावर तो सक्षम केलेला नसेल. या डिव्‍हाइसेसवर, हा विस्तार हे देखील करू शकतो:</translation>
 <translation id="8910146161325739742">आपली स्क्रीन शेअर करा</translation>
 <translation id="8910222113987937043">आपल्या बुकमार्क, इतिहास आणि अन्य सेटिंग्जसाठी बदल यापुढे आपल्या Google खात्यासह संकालित केले जाणार नाहीत. तथापि, आपला विद्यमान डेटा आपल्या Google खात्यामध्ये संग्रहित केलेला असेल आणि <ph name="BEGIN_LINK" />Google डॅशबोर्ड<ph name="END_LINK" /> वर व्यवस्थापित केला जाऊ शकतो.</translation>
-<translation id="8911079125461595075">Google ने "<ph name="EXTENSION_NAME" />" दुर्भावनापूर्ण म्हणून ध्वजां‍कित केले आणि स्थापनेस प्रतिबंध केला गेला आहे.</translation>
 <translation id="8912793549644936705">पसरवा</translation>
 <translation id="8915370057835397490">सूचना लोड करीत आहे</translation>
 <translation id="8916476537757519021">गुप्त सबफ्रेम: <ph name="SUBFRAME_SITE" /></translation>
@@ -5098,7 +5032,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB माउस कनेक्ट केला</translation>
 <translation id="9076523132036239772">क्षमस्व, आपले ईमेल किंवा पासवर्ड सत्यापित करणे शक्य नाही. प्रथम एखाद्या नेटवर्कशी कनेक्ट करण्याचा प्रयत्न करा.</translation>
-<translation id="907841381057066561">पॅकेजिंग दरम्यान तात्पुरती zip फाइल तयार करण्यात अयशस्वी.</translation>
 <translation id="9084064520949870008">विंडो म्हणून उघडा</translation>
 <translation id="9088234649737575428">संस्‍थेच्या धोरणाद्वारे <ph name="PLUGIN_NAME" /> अवरोधित केले आहे</translation>
 <translation id="9088917181875854783">कृपया ही पासकी "<ph name="DEVICE_NAME" />" वर दर्शविल्याची पुष्टी करा:</translation>
@@ -5189,11 +5122,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">सांकेतिक वाक्यांश एंटर करा</translation>
 <translation id="939736085109172342">नवीन फोल्‍डर</translation>
-<translation id="941543339607623937">अवैध खासगी की.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> Chrome टॅब आणि ऑडिओ सामायिक करीत आहे.</translation>
 <translation id="942954117721265519">या निर्देशिकेमध्ये कोणत्याही प्रतिमा नाहीत.</translation>
 <translation id="945522503751344254">अभिप्राय पाठवा</translation>
-<translation id="951981865514037445"><ph name="URL" /> आपल्या डिव्हाइसचे स्थान वापरू इच्छिते.</translation>
 <translation id="952992212772159698">सक्रिय नाही</translation>
 <translation id="9580706199804957">Google सेवांशी कनेक्ट करता आले नाही</translation>
 <translation id="958515377357646513">पुढे जाण्यासाठी स्पर्श करा.</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 1d5cf5f..76eb32e 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Encipher Sahaja</translation>
 <translation id="1039337018183941703">Fail tidak sah atau rosak</translation>
 <translation id="1042174272890264476">Komputer anda juga disertakan dengan pustaka RLZ <ph name="SHORT_PRODUCT_NAME" /> terbina dalam. RLZ memperuntukkan tanda nama tidak unik yang tidak boleh mengenal pasti secara peribadi untuk mengukur carian dan penggunaan <ph name="SHORT_PRODUCT_NAME" /> yang didorong oleh kempen galakan tertentu. Label ini kadangkala dipaparkan dalam pertanyaan Carian Google dalam <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> mahu menyimpan data yang besar pada peranti anda secara kekal.</translation>
 <translation id="1046059554679513793">Opp, nama ini sudah digunakan!</translation>
 <translation id="1047431265488717055">Salin Te&amp;ks Pautan</translation>
 <translation id="1047726139967079566">Tanda Halaman Ini...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Pulihkan Enjin Carian Lalai?</translation>
 <translation id="1177863135347784049">Tersuai</translation>
 <translation id="1178581264944972037">Jeda</translation>
-<translation id="1179803038870941185"><ph name="URL" /> mahu mendapatkan kawalan penuh ke atas peranti MIDI anda.</translation>
 <translation id="1181037720776840403">Alih keluar</translation>
 <translation id="1183237619868651138">Tidak boleh memasang <ph name="EXTERNAL_CRX_FILE" /> dalam cache tempatan.</translation>
 <translation id="1185924365081634987">Anda boleh cuba <ph name="GUEST_SIGNIN_LINK_START" />semak imbas sebagai tetamu<ph name="GUEST_SIGNIN_LINK_END" /> untuk membetulkan ralat rangkaian ini juga.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Akses fail yang disimpan pada komputer anda}other{Akses # fail yang disimpan pada komputer anda}}</translation>
 <translation id="1195076408729068893">Untuk memulakan Smart Lock, masukkan kata laluan anda. Selepas ini anda boleh menggunakan telefon untuk membuka kunci <ph name="DEVICE_TYPE" /> anda.</translation>
 <translation id="1195447618553298278">Ralat tidak diketahui.</translation>
-<translation id="1196338895211115272">Gagal untuk mengeksport kunci persendirian.</translation>
 <translation id="119738088725604856">Tetingkap tangkapan skrin</translation>
 <translation id="1197979282329025000">Ralat berlaku semasa mendapatkan semula keupayaan pencetak untuk pencetak <ph name="PRINTER_NAME" />. Pencetak ini tidak boleh didaftarkan dengan <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Mari bermula</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Pentadbir anda mencadangkan nilai khusus untuk tetapan ini.</translation>
 <translation id="1225177025209879837">Memproses permintaan...</translation>
 <translation id="1225211345201532184">Item rak 5</translation>
-<translation id="1225404570112441414">Tambahkan tapak ini kepada rak anda untuk digunakan pada bila-bila masa.</translation>
 <translation id="1227507814927581609">Pengesahan gagal semasa menyambung ke "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu sistem</translation>
 <translation id="1232569758102978740">Tidak Bertajuk</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Menandakan Fail HTML</translation>
 <translation id="1303671224831497365">Peranti Bluetooth tidak ditemui</translation>
 <translation id="1306606229401759371">Tukar tetapan</translation>
-<translation id="1307398858972670978">Akses kata laluan anda daripada sebarang peranti di <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Op!  Sistem gagal menyimpan token akses API jangka panjang untuk peranti ini.</translation>
 <translation id="1313405956111467313">Konfigurasi proksi automatik</translation>
 <translation id="131364520783682672">Kunci Huruf Besar</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Carian</translation>
 <translation id="1386387014181100145">Helo.</translation>
 <translation id="138784436342154190">Pulihkan halaman permulaan lalai?</translation>
-<translation id="1389297115360905376">Item ini hanya boleh ditambah dari <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Buka sebagai Tab Biasa</translation>
-<translation id="1391807639023934267">Halaman dimuatkan lebih cepat.</translation>
 <translation id="1393283411312835250">Matahari dan awan</translation>
 <translation id="1395262318152388157">Peluncur cari</translation>
 <translation id="1395730723686586365">Pengemaskinian bermula</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Anda sedang mengemas kini kepada versi <ph name="PRODUCT_NAME" /> tidak stabil yang mengandungi ciri yang masih diproses. Keranapan dan pepijat yang tidak dijangka akan berlaku. Sila teruskan dengan berhati-hati.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID sambungan "<ph name="EXTENSION_ID" />") tidak dibenarkan dalam jenis sesi ini.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Yikes! Gagal untuk menjanakan kunci persendirian RSA rawak.</translation>
 <translation id="1420834118113404499">Lesen media</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> untuk membolehkan penggandingan</translation>
 <translation id="1426410128494586442">Ya</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">S&amp;alin Alamat Audio</translation>
 <translation id="1465827627707997754">Potongan piza</translation>
 <translation id="1467432559032391204">Kiri</translation>
-<translation id="1467999917853307373"><ph name="URL" /> mahu menyimpan data pada peranti anda secara kekal.</translation>
-<translation id="1470719357688513792">Tetapan kuki baharu akan berkesan selepas memuatkan semula halaman.</translation>
 <translation id="1470811252759861213">Untuk mendapatkan sambungan pada semua komputer anda, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" tidak dimuat naik. Ruang kosong tidak mencukupi dalam Google Drive anda.</translation>
 <translation id="1475502736924165259">Anda mempunyai sijil pada fail yang tidak sepadan dengan mana-mana kategori lain</translation>
@@ -443,11 +433,9 @@
     <ph name="BEGIN_BOLD" />semak<ph name="END_BOLD" /> tapak web yang telah dilawati pengguna diselia, dan
     <ph name="BEGIN_BOLD" />urus<ph name="END_BOLD" /> tetapan lain.</translation>
 <translation id="1648943974594387137">Butiran log masuk sudah lapuk</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> garisan tidak ditunjukkan&gt;</translation>
 <translation id="1650371550981945235">Tunjukkan pilihan input</translation>
 <translation id="1650709179466243265">Tambah www. dan .com dan buka alamat</translation>
 <translation id="1651008383952180276">Anda mesti memasukkan ungkapan laluan yang sama dua kali</translation>
-<translation id="1652972346408808053">Kata laluan disimpan. Akses kata laluan anda daripada sebarang peranti di <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Tambahkan pencetak kepada Pencetak Awan Google supaya anda dapat mencetak dari mana-mana sahaja.}other{Tambahkan # pencetak kepada Pencetak Awan Google supaya anda dapat mencetak dari mana-mana sahaja.}}</translation>
 <translation id="1657406563541664238">Bantu jadikan <ph name="PRODUCT_NAME" /> lebih baik dengan menghantar statistik dan laporan nahas secara automatik kepada Google</translation>
 <translation id="1658424621194652532">Halaman ini mengakses mikrofon anda.</translation>
@@ -674,7 +662,6 @@
 <translation id="2045969484888636535">Terus menyekat kuki</translation>
 <translation id="204622017488417136">Peranti anda akan kembali ke versi Chrome yang dipasang sebelum ini. Semua akaun pengguna dan data setempat akan dialih keluar. Proses ini tidak boleh dibuat asal.</translation>
 <translation id="2048182445208425546">Akses trafik rangkaian anda</translation>
-<translation id="2049137146490122801">Akses kepada fail setempat pada mesin anda dilumpuhkan oleh pentadbir anda.</translation>
 <translation id="204914487372604757">Cipta pintasan</translation>
 <translation id="2050339315714019657">Potret</translation>
 <translation id="2053312383184521053">Data Keadaan Melahu</translation>
@@ -708,7 +695,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Masih tidak dimuatkan</translation>
 <translation id="2107494551712864447">Tambahkan cap jari</translation>
-<translation id="2111843886872897694">Apl mesti disampaikan dari hos yang dipengaruhinya.</translation>
 <translation id="2112877397266219826">Hidupkan pengawal sentuhan anda untuk menyediakan saya</translation>
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2113479184312716848">Buka &amp;Fail...</translation>
@@ -795,7 +781,6 @@
 <translation id="2226720438730111184">Beritahu Kami Perkara Yang Berlaku</translation>
 <translation id="2229161054156947610">Tinggal lebih 1 jam</translation>
 <translation id="222931766245975952">Fail dipangkas</translation>
-<translation id="222949136907494149"><ph name="URL" /> mahu menggunakan lokasi komputer anda.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Tidak dapat membuat folder "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klik untuk melihat coretan hari ini</translation>
@@ -883,7 +868,6 @@
 <translation id="236141728043665931">Sentiasa sekat akses mikrofon</translation>
 <translation id="2367972762794486313">Paparkan apl</translation>
 <translation id="2371076942591664043">Buka apabila &amp;selesai</translation>
-<translation id="237336063998926520">Gunakan alamat IP anda untuk menentukan lokasi</translation>
 <translation id="2377319039870049694">Tukar kepada paparan senarai</translation>
 <translation id="2377667304966270281">Kesalahan Keras</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> fail dipilih</translation>
@@ -930,7 +914,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ingin menyalin fail daripada <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID Kekunci Pihak Berkuasa Pensijilan</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> ditambahkan</translation>
-<translation id="246335896104539386">Import Penanda Halaman</translation>
 <translation id="2464089476039395325">Proksi HTTP</translation>
 <translation id="2468902267404883140">Tidak dapat menyambung ke telefon anda. Pastikan anda menggunakan telefon Android yang serasi, telah dihidupkan dan ada bersama anda. &lt;a&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Pelanjutan yang tidak disokong dilumpuhkan</translation>
@@ -946,7 +929,6 @@
 <translation id="2485422356828889247">Nyahpasang</translation>
 <translation id="2487067538648443797">Tambahkan penanda halaman baharu</translation>
 <translation id="248861575772995840">Tidak dapat mencari telefon anda. Pastikan Bluetooth <ph name="DEVICE_TYPE" /> anda dihidupkan. &lt;a&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Pemalam (<ph name="PLUGIN_NAME" />) tidak bertindak balas.</translation>
 <translation id="2489428929217601177">hari yang lalu</translation>
 <translation id="2489918096470125693">Tambah &amp;Folder...</translation>
 <translation id="249113932447298600">Maaf, peranti <ph name="DEVICE_LABEL" /> tidak disokong pada masa ini.</translation>
@@ -1000,13 +982,11 @@
 <translation id="2563856802393254086">Tahniah! Perkhidmatan data '<ph name="NAME" />' anda telah diaktifkan dan sedia untuk digunakan.</translation>
 <translation id="2566124945717127842">Powerwash untuk menetapkan semula peranti <ph name="IDS_SHORT_PRODUCT_NAME" /> anda supaya seperti baharu.</translation>
 <translation id="2568774940984945469">Bekas Bar Maklumat</translation>
-<translation id="2570000010887652771">Data disimpan.</translation>
 <translation id="257088987046510401">Tema</translation>
 <translation id="2572032849266859634">Akses baca sahaja kepada <ph name="VOLUME_NAME" /> telah diberikan.</translation>
 <translation id="2573269395582837871">Pilih gambar dan nama</translation>
 <translation id="2575247648642144396">Ikon ini akan dapat dilihat apabila perlanjutan boleh bertindak ke atas halaman semasa. Gunakan sambungan ini dengan mengklik pada ikon atau dengan menekan <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Tidak dapat mencari telefon anda. Pastikan <ph name="DEVICE_TYPE" /> anda disambungkan kepada Wi-Fi atau rangkaian mudah alih. &lt;a&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Fail CRX dengan nama ini telah wujud.</translation>
 <translation id="257779572837908839">Sediakan Chromebox untuk mesyuarat</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Tidak dapat menyahlekap jilid<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1049,6 @@
 <translation id="2653266418988778031">Jika anda memadamkan sijil Pihak Berkuasa Pensijilan (CA), penyemak imbas anda tidak akan lagi mempercayai mana-mana sijil yang dikeluarkan oleh CA tersebut.</translation>
 <translation id="2653659639078652383">Serah</translation>
 <translation id="265390580714150011">Nilai Medan</translation>
-<translation id="2654286334048437383">Eksport Penanda Halaman</translation>
 <translation id="2655386581175833247">Sijil pengguna:</translation>
 <translation id="2660779039299703961">Acara</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1242,6 @@
 <translation id="2908162660801918428">Tambah Galeri Media mengikut Direktori</translation>
 <translation id="2908789530129661844">Zum keluar skrin</translation>
 <translation id="2910318910161511225">Sambung ke rangkaian dan cuba lagi</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ingin menggunakan mikrofon anda.</translation>
 <translation id="2913331724188855103">Benarkan tapak untuk menyimpan dan membaca data kuki (disyorkan)</translation>
 <translation id="2916073183900451334">Menekan Tab pada pautan serlahan halaman web, dan juga medan borang</translation>
 <translation id="2916745397441987255">Cari sambungan</translation>
@@ -1416,7 +1394,6 @@
 <translation id="3141318088920353606">Mendengar...</translation>
 <translation id="3141917231319778873">Permintaan yang dinyatakan tidak disokong pada: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">SELESAI</translation>
-<translation id="3144135466825225871">Gagal untuk menggantikan fail crx. Periksa untuk melihat jika fail sedang digunakan.</translation>
 <translation id="3144647712221361880">Buka pautan sebagai</translation>
 <translation id="3149510190863420837">Chrome Apps</translation>
 <translation id="3150927491400159470">Muat Semula Keras</translation>
@@ -1526,7 +1503,6 @@
 <translation id="3309747692199697901">Sentiasa Jalankan pada Semua Tapak</translation>
 <translation id="3312424061798279731">Bahasa yang didayakan</translation>
 <translation id="3312903956926554846">Pasang pada desktop</translation>
-<translation id="3313473140726597081">Halaman permulaan anda telah diubah kepada <ph name="URL" />. Untuk melumpuhkan sambungan yang menukar halaman permulaan anda, klik Pulihkan.</translation>
 <translation id="3313590242757056087">Untuk menetapkan tapak web yang boleh dilihat oleh pengguna diselia,
     anda boleh mengkonfigurasi sekatan dan tetapan dengan melawati <ph name="MANAGEMENT_URL" />.
     Jika anda tidak mengubah tetapan lalai, <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Maklumat apl</translation>
 <translation id="3335947283844343239">Buka Semula Tab Yang Ditutup</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> telah disekat kerana telah lapuk.</translation>
 <translation id="3340978935015468852">tetapan</translation>
 <translation id="3341703758641437857">Membenarkan akses ke URL fail</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ingin mengalih keluar sambungan ini.</translation>
@@ -1577,7 +1552,6 @@
 <translation id="3386219708421216619">Penanda Halaman Ditambahkan</translation>
 <translation id="3389312115541230716">Klik kanan ikon <ph name="SMALL_PRODUCT_LOGO" /> dalam bar tugas</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> mahu menggunakan kamera dan mikrofon anda.</translation>
 <translation id="3396331542604645348">Pencetak yang dipilih tidak tersedia atau tidak dipasang dengan betul. Periksa pencetak anda atau cuba pilih pencetak lain.</translation>
 <translation id="3399432415385675819">Pemberitahuan akan dilumpuhkan</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang baharu</translation>
 <translation id="3551320343578183772">Tutup Tab</translation>
 <translation id="3552780134252864554">Dikosongkan semasa Keluar</translation>
-<translation id="355298399003313926"><ph name="URL" /> ingin menjawab acara kebolehaksesan.</translation>
 <translation id="3555812735919707620">Alih keluar pelanjutan</translation>
 <translation id="3556000484321257665">Enjin carian anda telah ditukar kepada <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Nilai input untuk kunci persendirian mestilah laluan yang sah.</translation>
 <translation id="3563432852173030730">Aplikasi kios tidak dapat dimuat turun.</translation>
 <translation id="3564334271939054422">Rangkaian Wi-Fi yang anda gunakan (<ph name="NETWORK_ID" />) mungkin menghendaki anda melawati halaman log masuknya.</translation>
 <translation id="3564708465992574908">Tahap Zum</translation>
@@ -1714,7 +1686,6 @@
 <translation id="3593965109698325041">Kekangan Nama Sijil</translation>
 <translation id="3596235046596950091">Dayakan perkhidmatan awan</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="3600456501114769456">Akses kepada fail setempat pada peranti anda dilumpuhkan oleh pentadbir anda.</translation>
 <translation id="3600792891314830896">Redam tapak yang memainkan bunyi</translation>
 <translation id="3603177256297531067">Halaman Ini Tidak Dapat Diterjemahkan</translation>
 <translation id="3603533104205588786">Anda boleh mengklik bintang untuk menandai halaman</translation>
@@ -1739,7 +1710,6 @@
 <translation id="3625258641415618104">Tangkapan skrin dilumpuhkan</translation>
 <translation id="3625870480639975468">Tetapkan semula zum</translation>
 <translation id="3626281679859535460">Kecerahan</translation>
-<translation id="3627052133907344175">Sambungan memerlukan "<ph name="IMPORT_NAME" />" dengan versi minimum "<ph name="IMPORT_VERSION" />", tetapi hanya versi "<ph name="INSTALLED_VERSION" />" yang ada dipasang.</translation>
 <translation id="3627320433825461852">Tinggal kurang 1 minit</translation>
 <translation id="3627588569887975815">Buka pautan dalam tetingkap inko&amp;gnito</translation>
 <translation id="3627671146180677314">Masa Pembaharuan Sijil Netscape</translation>
@@ -1769,7 +1739,6 @@
 <translation id="3668570675727296296">Tetapan bahasa</translation>
 <translation id="3668823961463113931">Pengendali</translation>
 <translation id="3670229581627177274">Hidupkan Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> mahu menyimpan data besar pada komputer setempat anda secara kekal.</translation>
 <translation id="3672681487849735243">Ralat kilang telah dikesan</translation>
 <translation id="367645871420407123">biarkan kosong jika anda ingin menetapkan kata laluan akar kepada nilai imej ujian lalai</translation>
 <translation id="3678156199662914018">Sambungan: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1816,9 @@
 <translation id="3786301125658655746">Anda di luar talian</translation>
 <translation id="3788401245189148511">Item boleh:</translation>
 <translation id="3789841737615482174">Pasang</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> hanya berfungsi pada desktop.</translation>
 <translation id="379082410132524484">Kad anda telah tamat tempoh</translation>
 <translation id="3792890930871100565">Putuskan sambungan pencetak</translation>
 <translation id="379422718204375917">Gunakan Smart Lock untuk mengelog masuk ke akaun anda</translation>
-<translation id="3794595850995182458">Keluar daripada halaman</translation>
 <translation id="3796648294839530037">Rangkaian Kegemaran:</translation>
 <translation id="3797900183766075808">&amp;Cari “<ph name="SEARCH_TERMS" />” di <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Membolehkan anda mendayakan/melumpuhkan ketik-untuk-klik</translation>
@@ -1982,7 +1949,6 @@
 <translation id="3979748722126423326">Dayakan <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Jenis menyimpan yang dimasukkan tidak sah.</translation>
 <translation id="3983586614702900908">peranti daripada vendor yang tidak diketahui</translation>
-<translation id="3984413272403535372">Ralat semasa menandatangani sambungan.</translation>
 <translation id="3987938432087324095">Maaf, kurang jelas.</translation>
 <translation id="3988996860813292272">Pilih zon waktu</translation>
 <translation id="3989635538409502728">Log Keluar</translation>
@@ -2038,7 +2004,6 @@
 <translation id="4087470595660267445">Pasang apl dan permainan daripada Google Play pada Chromebook anda. &lt;a target="_blank" href="<ph name="URL" />"&gt;Ketahui lebih lanjut&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Terima untuk kumpulan</translation>
 <translation id="4090103403438682346">Dayakan Akses Disahkan</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> diperlukan untuk memaparkan beberapa unsur pada halaman ini.</translation>
 <translation id="4090535558450035482">(Sambungan ini diurus dan tidak boleh dialih keluar.)</translation>
 <translation id="4091434297613116013">helai kertas</translation>
 <translation id="4093955363990068916">Fail setempat:</translation>
@@ -2372,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kini boleh menyegerakkan kata laluan anda.</translation>
 <translation id="4715553623069266137">sangat pendek (0.8s)</translation>
 <translation id="4716483597559580346">Powerwash untuk keselamatan tambahan</translation>
-<translation id="471800408830181311">Gagal untuk output kunci persendirian.</translation>
 <translation id="4720113199587244118">Tambah Peranti</translation>
 <translation id="4720185134442950733">Rangkaian data mudah alih</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> berkongsi skrin anda.</translation>
@@ -2509,7 +2473,6 @@
 <translation id="4917385247580444890">Kuat</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ingin berkomunikasi dengan sambungan "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Terima</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> mahu menggunakan kamera anda.</translation>
 <translation id="4920887663447894854">Tapak berikut telah disekat daripada menjejaki lokasi anda pada halaman ini:</translation>
 <translation id="492299503953721473">Alih keluar apl Android</translation>
 <translation id="4923279099980110923">Ya, saya ingin membantu</translation>
@@ -2550,7 +2513,6 @@
 <translation id="4980805016576257426">Sambungan ini mengandungi perisian hasad.</translation>
 <translation id="498294082491145744">Ubah tetapan anda yang mengawal akses tapak web kepada ciri seperti kuki, JavaScript, pemalam, geolokasi, mikrofon, kamera, dsb.</translation>
 <translation id="4988526792673242964">Halaman</translation>
-<translation id="4988792151665380515">Gagal intuk mengeksport kunci awam.</translation>
 <translation id="49896407730300355">Putar m&amp;elawan arah jam</translation>
 <translation id="4989966318180235467">Halaman periksa &amp;latar belakang</translation>
 <translation id="4990343175649730969">Muat Turun Pembersih Chrome</translation>
@@ -2579,7 +2541,6 @@
 <translation id="5026874946691314267">Jangan tunjukkannya lagi</translation>
 <translation id="5027550639139316293">Sijil E-mel</translation>
 <translation id="5027562294707732951">Tambahkan sambungan</translation>
-<translation id="5028012205542821824">Pemasangan tidak didayakan.</translation>
 <translation id="5029568752722684782">Hapuskan salinan</translation>
 <translation id="5030338702439866405">Dikeluarkan Oleh</translation>
 <translation id="5036662165765606524">Jangan benarkan mana-mana tapak memuat turun berbilang fail secara automatik</translation>
@@ -2615,7 +2576,6 @@
 <translation id="509429900233858213">Ralat telah berlaku.</translation>
 <translation id="5094721898978802975">Berkomunikasi dengan aplikasi asli yang bekerjasama</translation>
 <translation id="5097002363526479830">Gagal untuk bersambung ke rangkaian '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Tidak dapat mencari laluan mutlak ke direktori ke pek.</translation>
 <translation id="5099354524039520280">ke atas</translation>
 <translation id="5100114659116077956">Demi membawakan ciri-ciri terkini kepada anda, Chromebox anda perlu mengemas kini.</translation>
 <translation id="5101042277149003567">Buka semua penanda halaman</translation>
@@ -2664,7 +2624,6 @@
 <translation id="5170568018924773124">Paparkan dalam folder</translation>
 <translation id="5171045022955879922">Buat carian atau taipkan URL</translation>
 <translation id="5171343362375269016">Memori Ditukar</translation>
-<translation id="5175870427301879686"><ph name="URL" /> mahu menyimpan data anda secara kekal pada komputer setempat anda.</translation>
 <translation id="5177479852722101802">Teruskan menyekat akses kamera dan mikrofon</translation>
 <translation id="5177526793333269655">Paparan lakaran kenit</translation>
 <translation id="5177549709747445269">Anda menggunakan data mudah alih</translation>
@@ -2743,7 +2702,6 @@
 <translation id="529175790091471945">Formatkan peranti ini</translation>
 <translation id="5293170712604732402">Pulihkan tetapan kepada lalai asal.</translation>
 <translation id="5298219193514155779">Tema dicipta oleh</translation>
-<translation id="5298363578196989456">Tidak dapat mengimport sambungan "<ph name="IMPORT_NAME" />" kerana bukan modul kongsi.</translation>
 <translation id="5299109548848736476">Jangan Kesan</translation>
 <translation id="5299682071747318445">Semua data disulitkan dengan frasa laluan segerak anda</translation>
 <translation id="5300589172476337783">Paparkan</translation>
@@ -2771,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" mahu digandingkan</translation>
 <translation id="5332624210073556029">Zon waktu:</translation>
 <translation id="5334142896108694079">Cache Skrip</translation>
-<translation id="533433379391851622">Versi yang dijangkakan "<ph name="EXPECTED_VERSION" />", tetapi versi sebenar ialah "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Paparkan sumber</translation>
 <translation id="5335458522276292100">Menyandarkan <ph name="FILE_COUNT" /> ke <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Dipasang oleh pihak ketiga.</translation>
@@ -2809,7 +2766,6 @@
 <translation id="5390100381392048184">Benarkan tapak untuk memainkan bunyi</translation>
 <translation id="5390284375844109566">Pangkalan data berindeks</translation>
 <translation id="5390743329570580756">Hantar untuk</translation>
-<translation id="5396126354477659676">Pemalam <ph name="PEPPER_PLUGIN_NAME" /> di <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses komputer anda.</translation>
 <translation id="5397794290049113714">Anda</translation>
 <translation id="5398572795982417028">Rujukan halaman di luar batasan, hadnya ialah <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Iklan disekat</translation>
@@ -2871,7 +2827,6 @@
 <translation id="5485754497697573575">Pulihkan Semua Tab</translation>
 <translation id="5486261815000869482">Sahkan kata laluan</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> mengongsi skrin anda dengan <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Nilai input untuk kekunci peribadi  mesti wujud.</translation>
 <translation id="5486561344817861625">Rangsang Mula Semula Penyemak Imbas</translation>
 <translation id="5487521232677179737">Kosongkan data</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' disalin</translation>
@@ -2954,7 +2909,6 @@
 <translation id="5600706100022181951">Kemas kini akan dimuat turun menggunakan <ph name="UPDATE_SIZE_MB" /> MB data mudah alih. Adakah anda ingin meneruskan?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Enjin carian lain</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> di <ph name="PEPPER_PLUGIN_DOMAIN" /> ingin mengakses peranti anda.</translation>
 <translation id="5608580678041221894">Ketik kekunci berikut untuk melaras atau mengalihkan kawasan pemangkasan</translation>
 <translation id="5609231933459083978">Apl kelihatan tidak sah.</translation>
 <translation id="5610038042047936818">Beralih ke mod kamera</translation>
@@ -3197,7 +3151,6 @@
 <translation id="5990386583461751448">Diterjemahkan</translation>
 <translation id="5991049340509704927">Membesarkan</translation>
 <translation id="5993332328670040093">Penggunaan data anda tidak lagi akan diukur.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> mungkin tidak dapat memastikannya terkini.</translation>
 <translation id="600424552813877586">Aplikasi yang tidak sah.</translation>
 <translation id="6005695835120147974">Penghala Media</translation>
 <translation id="6006484371116297560">Klasik</translation>
@@ -3222,6 +3175,7 @@
 <translation id="604001903249547235">Sandaran awan</translation>
 <translation id="6040143037577758943">Tutup</translation>
 <translation id="6040852767465482106">Identiti Tanpa Nama</translation>
+<translation id="6041155700700864984">Keluar Daripada Skrin Penuh</translation>
 <translation id="604124094241169006">Automatik</translation>
 <translation id="6042169520002885235">Pilih pengeluar dan model pencetak</translation>
 <translation id="6042308850641462728">Lagi</translation>
@@ -3238,7 +3192,6 @@
 <translation id="6056710589053485679">Muat Semula Biasa</translation>
 <translation id="6059652578941944813">Hierarki Sijil</translation>
 <translation id="6059925163896151826">Peranti USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> telah ranap.</translation>
 <translation id="6064217302520318294">Kunci skrin</translation>
 <translation id="6065289257230303064">Atribut Direktori Subjek Sijil</translation>
 <translation id="6068338049763724728">Dayakan pendaftaran jauh</translation>
@@ -3347,7 +3300,6 @@
 <translation id="6237816943013845465">Membolehkan anda melaraskan peleraian skrin anda</translation>
 <translation id="6238923052227198598">Simpan nota terkini pada skrin kunci</translation>
 <translation id="6239558157302047471">Muat semula &amp;bingkai</translation>
-<translation id="624022915548992686">Keluar daripada Halaman</translation>
 <translation id="6241530762627360640">Akses maklumat mengenai peranti Bluetooth yang dipasangkan dengan sistem anda dan temui peranti Bluetooth berhampiran.</translation>
 <translation id="6243774244933267674">Pelayan tidak tersedia</translation>
 <translation id="6246413617632217567">Pengguna di bawah seliaan tidak dapat diimport. Sila semak ruang pemacu keras dan kebenaran anda, kemudian cuba lagi.</translation>
@@ -3396,13 +3348,11 @@
 <translation id="6312403991423642364">Ralat rangkaian tidak diketahui</translation>
 <translation id="6313641880021325787">KELUAR DARIPADA VR</translation>
 <translation id="6314819609899340042">Anda telah berjaya mendayakan ciri penyahpepijatan pada <ph name="IDS_SHORT_PRODUCT_NAME" /> peranti ini.</translation>
-<translation id="6315343732431721770">Halaman permulaan anda telah diubah untuk menyertakan <ph name="URL" />. Untuk melumpuhkan sambungan yang menukar halaman permulaan anda, klik Pulihkan.</translation>
 <translation id="6315493146179903667">Bring All to Front</translation>
 <translation id="6316806695097060329">Peranti <ph name="SHORT_PRODUCT_NAME" /> ini telah direka untuk menyampaikan pengalaman terbaik web kepada anda.</translation>
 <translation id="6317318380444133405">Tidak disokong lagi.</translation>
 <translation id="6317369057005134371">Menunggu tetingkap aplikasi...</translation>
 <translation id="6318407754858604988">Muat turun dimulakan</translation>
-<translation id="6322279351188361895">Gagal untuk membaca kunci persendirian.</translation>
 <translation id="6325191661371220117">Lumpuhkan autolancar</translation>
 <translation id="6326175484149238433">Alih keluar dari Chrome</translation>
 <translation id="6326855256003666642">Kiraan Pengekal</translation>
@@ -3411,7 +3361,6 @@
 <translation id="6333049849394141510">Pilih yang hendak disegerakkan</translation>
 <translation id="6333064448949140209">Fail akan dihantar kepada Google untuk dinyahpepijat</translation>
 <translation id="6333834492048057036">Fokus bar alamat untuk carian</translation>
-<translation id="6336907568130557310">Kata laluan anda akan dapat dilihat oleh sesiapa sahaja yang dapat melihat fail yang dieksport. Jangan kongsi fail dengan sesiapa dan padamkan fail tersebut selepas diimport.</translation>
 <translation id="6339668969738228384">Buat profil baharu untuk <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Tidak dapat menyambung ke pelayan. Sila semak sambungan rangkaian anda dan cuba lagi. Sekiranya masalah ini berterusan, mulakan semula Chromebook anda.</translation>
 <translation id="6340071272923955280">Protokol Cetakan Internet (IPPS)</translation>
@@ -3440,7 +3389,6 @@
 <translation id="6385543213911723544">Tapak boleh menyimpan dan membaca data kuki</translation>
 <translation id="6388771388956873507">Cari penderia cap jari pada peranti anda dan sentuh penderia itu menggunakan jari anda</translation>
 <translation id="6390799748543157332">Halaman yang anda lihat dalam tetingkap ini tidak akan dipaparkan dalam sejarah penyemak imbas dan halaman ini tidak akan meninggalkan kesan lain, seperti kuki, pada komputer selepas anda menutup semua tetingkap Tetamu yang terbuka. Walau bagaimanapun, sebarang fail yang anda muat turun akan disimpan.</translation>
-<translation id="6391538222494443604">Direktori input mesti wujud.</translation>
 <translation id="6395423953133416962">Hantar <ph name="BEGIN_LINK1" />maklumat sistem<ph name="END_LINK1" /> dan <ph name="BEGIN_LINK2" />metrik<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Berhenti Bercakap</translation>
 <translation id="6397592254427394018">Buka semua penanda halaman dalam tetingkap &amp;inkognito</translation>
@@ -3498,7 +3446,6 @@
 <translation id="6458308652667395253">Uruskan sekatan JavaScript...</translation>
 <translation id="6459488832681039634">Use Selection for Find</translation>
 <translation id="6460601847208524483">Cari Seterusnya</translation>
-<translation id="6462080265650314920">Apl mesti disampaikan dengan jenis kandungan "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Anda masih ada?</translation>
 <translation id="6463795194797719782">&amp;Edit</translation>
 <translation id="6466988389784393586">&amp;Buka Semua Penanda Halaman</translation>
@@ -3628,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Adakah anda mahu Google menterjemahkan halaman ini daripada <ph name="SOURCE_LANGUAGE" /> kepada <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Peranti penuding disambung</translation>
-<translation id="6677037229676347494">ID dijangkakan "<ph name="EXPECTED_ID" />", tetapi ID sebenar ialah "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL Pertanyaan</translation>
 <translation id="6680028776254050810">Tukar Pengguna</translation>
 <translation id="6680442031740878064">Tersedia: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3714,6 @@
 <translation id="6903534926908201625">Anda boleh menyesuaikan maklumat yang dikumpul oleh Google dalam <ph name="BEGIN_LINK" />Tetapan<ph name="END_LINK" /> pada bila-bila masa.</translation>
 <translation id="6904344821472985372">Batalkan Akses Fail</translation>
 <translation id="6904655473976120856">Tekan butang Apl untuk keluar</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> ingin berkongsi skrin anda.</translation>
-<translation id="6909461304779452601">Apl, sambungan dan skrip pengguna tidak boleh ditambah dari laman web ini.</translation>
 <translation id="6910211073230771657">Dipadamkan</translation>
 <translation id="691024665142758461">Muat turun berbilang fail</translation>
 <translation id="6911324888870229398">Sambungan rangkaian terputus. Sila semak sambungan anda atau cuba rangkaian Wi-Fi lain.</translation>
@@ -4105,7 +4049,6 @@
 <translation id="747114903913869239">Ralat: Tidak dapat menyahkod sambungan</translation>
 <translation id="7473891865547856676">Tidak, Terima Kasih</translation>
 <translation id="747459581954555080">Pulihkan semua</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> telah mengalami ralat.</translation>
 <translation id="7475671414023905704">URL Kata Laluan Hilang Netscape</translation>
 <translation id="7476454130948140105">Bateri terlalu lemah untuk mengemas kini (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Jika anda terlupa frasa laluan anda, berhenti dan tetapkan semula Segerak melalui <ph name="BEGIN_LINK" />Papan Pemuka Google<ph name="END_LINK" />.</translation>
@@ -4142,7 +4085,6 @@
 <translation id="7507930499305566459">Status Pembalas Sijil</translation>
 <translation id="7508545000531937079">Tayangan slaid</translation>
 <translation id="7513029293694390567">Log masuk secara automatik ke tapak web menggunakan bukti kelayakan yang disimpan. Jika dilumpuhkan, anda akan diminta memberikan pengesahan setiap kali sebelum mengelog masuk ke tapak web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> mahu mengenal pasti peranti anda secara unik untuk memainkan kandungan yang dilindungi.</translation>
 <translation id="7517569744831774757">Memulihkan tetapan kepada tetapan lalainya yang asal.</translation>
 <translation id="7517786267097410259">Buat kata laluan -</translation>
 <translation id="7518150891539970662">Log WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4114,6 @@
     cuba hasilkan pengguna diselia sekali lagi.</translation>
 <translation id="756445078718366910">Buka Tetingkap Penyemak Imbas</translation>
 <translation id="7564847347806291057">Tamatkan proses</translation>
-<translation id="7565291891798266313">Enjin carian anda telah ditukar kepada <ph name="URL" />. Untuk melumpuhkan sambungan yang menukar enjin carian anda, klik Pulihkan.</translation>
 <translation id="7566118625369982896">Urus pautan apl Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Data Chrome dikosongkan</translation>
@@ -4181,7 +4122,6 @@
 <translation id="7573172247376861652">Cas Bateri</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Kumpul semak</translation>
-<translation id="7577815336900970562">Gunakan Wi-Fi atau rangkaian selular untuk menentukan lokasi</translation>
 <translation id="7579149537961810247">Redam Tapak</translation>
 <translation id="7580671184200851182">Mainkan audio yang sama melalui semua pembesar suara (audio mono)</translation>
 <translation id="7581462281756524039">Pembersih</translation>
@@ -4288,6 +4228,7 @@
 <translation id="7773726648746946405">Storan sesi</translation>
 <translation id="7781335840981796660">Semua akaun pengguna dan data setempat akan dialih keluar.</translation>
 <translation id="7782102568078991263">Tiada lagi cadangan daripada Google</translation>
+<translation id="778330624322499012">Tidak dapat memuatkan <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Tetapan keselamatan pada komputer anda telah menyekat fail ini.</translation>
 <translation id="7786207843293321886">Keluar dari Tetamu</translation>
 <translation id="7786889348652477777">&amp;Muat Semula Apl</translation>
@@ -4450,7 +4391,6 @@
 <translation id="8001504501378762252">Tapak mungkin telah mencuri kata laluan anda</translation>
 <translation id="8004582292198964060">Penyemak Imbas</translation>
 <translation id="8008356846765065031">Internet terputus sambungan. Sila periksa sambungan internet anda.</translation>
-<translation id="8008765610824028412">Tidak dapat memuatkan <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Hantar secara automatik beberapa maklumat sistem dan kandungan halaman kepada Google untuk membantu mengesan apl dan tapak yang berbahaya</translation>
 <translation id="8012382203418782830">Halaman ini telah diterjemahkan.</translation>
 <translation id="8014154204619229810">Pengemaskinian sedang dijalankan. Muatkan semula dalam satu minit untuk memeriksa lagi.</translation>
@@ -4567,7 +4507,6 @@
 <translation id="8191230140820435481">Uruskan apl, sambungan dan tema anda</translation>
 <translation id="8191453843330043793">Pelerai Proksi V8</translation>
 <translation id="8195027750202970175">Saiz pada cakera</translation>
-<translation id="8195739004487400241">Halaman utama anda telah diubah kepada <ph name="URL" />. Untuk melumpuhkan sambungan yang menukar halaman utama anda, klik Pulihkan.</translation>
 <translation id="8199300056570174101">Sifat Rangkaian (Perkhidmatan) dan Peranti</translation>
 <translation id="8200772114523450471">Sambung semula</translation>
 <translation id="8202160505685531999">Sila masukkan semula kata laluan untuk mengemaskinikan profil <ph name="DEVICE_TYPE" /> anda.</translation>
@@ -4611,7 +4550,6 @@
 <translation id="8261378640211443080">Sambungan ini tidak disenaraikan dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa pengetahuan anda.</translation>
 <translation id="8261387128019234107">Tambah akaun untuk <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Padam</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> tidak dilaksanakan dalam binaan ini.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> telah melumpuhkan kursor tetikus anda.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" mencetuskan skrin penuh.</translation>
 <translation id="8270242299912238708">Dokumen PDF</translation>
@@ -4713,6 +4651,7 @@
 <translation id="8454288007744638700">Selain itu, pilih rangkaian baharu:</translation>
 <translation id="845627346958584683">Masa Tamat Tempoh</translation>
 <translation id="8456681095658380701">Nama tidak sah</translation>
+<translation id="8457451314607652708">Import penanda halaman</translation>
 <translation id="8460336040822756677">Jika anda mematikan Smart Lock untuk <ph name="DEVICE_TYPE" />, anda tidak akan dapat membuka kunci peranti Chrome anda menggunakan telefon. Anda perlu menaip kata laluan.</translation>
 <translation id="8461329675984532579">Nama pembekal tempatan</translation>
 <translation id="84613761564611563">UI yang dikonfigurasi rangkaian diminta, sila tunggu...</translation>
@@ -4744,7 +4683,6 @@
 <translation id="850875081535031620">Tiada perisian berbahaya ditemui</translation>
 <translation id="8512476990829870887">Tamatkan Proses</translation>
 <translation id="851263357009351303">Sentiasa benarkan <ph name="HOST" /> untuk memaparkan imej</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" sedang menyahpepijat penyemak imbas ini.</translation>
 <translation id="8521475323816527629">Pergi ke apl anda dengan cepat</translation>
 <translation id="8523493869875972733">Simpan Perubahan</translation>
 <translation id="8523849605371521713">Ditambahkan oleh dasar</translation>
@@ -4800,7 +4738,6 @@
 <translation id="8620765578342452535">Konfigurasikan sambungan rangkaian</translation>
 <translation id="8620790565535071193">Pengimbasan gagal</translation>
 <translation id="8622877356447980900">Adakah anda ingin menterjemahkan halaman ini?</translation>
-<translation id="8623004009673949077">Apl dengan atribut manifes 'kiosk_only' mesti dipasang dalam mod kios Chrome OS.</translation>
 <translation id="8624205858755890468">Mendayakan Pembantu untuk menunjukkan maklumat, apl dan tindakan yang berkaitan kepada anda.</translation>
 <translation id="862542460444371744">&amp;Sambungan</translation>
 <translation id="8627151598708688654">Pilih sumber</translation>
@@ -4949,7 +4886,6 @@
 <translation id="882204272221080310">Kemas kini perisian tegar untuk keselamatan tambahan.</translation>
 <translation id="8823514049557262177">Salin te&amp;ks pautan</translation>
 <translation id="8824701697284169214">Tambah Ha&amp;laman...</translation>
-<translation id="8827850355924932817">Gunakan rangkaian Wi-Fi untuk menentukan lokasi</translation>
 <translation id="8828933418460119530">Nama DNS</translation>
 <translation id="8830796635868321089">Semakan kemas kini yang menggunakan tetapan proksi semasa gagal. Sila laraskan <ph name="PROXY_SETTINGS_LINK_START" />tetapan proksi<ph name="PROXY_SETTINGS_LINK_END" /> anda.</translation>
 <translation id="8834039744648160717">Konfigurasi rangkaian dikawal oleh <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Paparkan Sebagai Tab</translation>
 <translation id="8884961208881553398">Tambahkan perkhidmatan baharu</translation>
 <translation id="8885197664446363138">Smart Lock tidak tersedia</translation>
-<translation id="8885905466771744233">Kunci persendirian untuk sambungan yang dinyatakan telah wujud. Gunakan semula kunci tersebut atau padamkannya dahulu.</translation>
 <translation id="8888432776533519951">Warna:</translation>
-<translation id="8892992092192084762">Tema yang dipasang "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Maaf, peranti <ph name="DEVICE_LABEL" /> tidak dapat dikenali.</translation>
 <translation id="8895454554629927345">Senarai penanda halaman</translation>
 <translation id="88986195241502842">Halaman bawah</translation>
@@ -4998,7 +4932,6 @@
 <translation id="8908902564709148335">Amaran: Anda telah mendayakan bendera --skrip memerlukan tindakan pada komputer ini yang mengehadkan keupayaan sambungan ini. Walau bagaimanapun, peranti lain mungkin tidak menyokong bendera ini atau mendayakannya. Pada peranti ini, sambungan ini turut boleh:</translation>
 <translation id="8910146161325739742">Kongsi skrin anda</translation>
 <translation id="8910222113987937043">Perubahan kepada penanda halaman, sejarah, kata laluan dan tetapan anda yang lain tidak akan disegerakkan ke Akaun Google anda lagi. Namun begitu, data anda yang sedia ada 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="8911079125461595075">Google telah membenderakan <ph name="EXTENSION_NAME" /> sebagai berniat jahat dan pemasangan telah dihalang.</translation>
 <translation id="8912793549644936705">Regang</translation>
 <translation id="8915370057835397490">Memuatkan cadangan</translation>
 <translation id="8916476537757519021">Subbingkai Inkognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Tetikus USB disambungkan</translation>
 <translation id="9076523132036239772">Maaf, e-mel atau kata laluan anda tidak dapat disahkan. Cuba menyambung ke rangkaian dahulu.</translation>
-<translation id="907841381057066561">Gagal untuk mencipta fail zip sementara semasa pembungkusan.</translation>
 <translation id="9084064520949870008">Buka sebagai Tetingkap</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> disekat oleh dasar perusahaan</translation>
 <translation id="9088917181875854783">Sila sahkan bahawa kekunci laluan ini dipaparkan pada "<ph name="DEVICE_NAME" />":</translation>
@@ -5195,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Masukkan frasa laluan</translation>
 <translation id="939736085109172342">Folder baharu</translation>
-<translation id="941543339607623937">Kunci persendirian tidak sah.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> berkongsi tab dan audio Chrome.</translation>
 <translation id="942954117721265519">Tiada imej dalam direktori ini.</translation>
 <translation id="945522503751344254">Hantar maklum balas</translation>
-<translation id="951981865514037445"><ph name="URL" /> mahu menggunakan lokasi peranti anda.</translation>
 <translation id="952992212772159698">Tidak diaktifkan</translation>
 <translation id="9580706199804957">Tidak dapat menyambung ke perkhidmatan Google</translation>
 <translation id="958515377357646513">Sentuh untuk ke hadapan.</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 37a20a2..bcde4b8 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Alleen coderen</translation>
 <translation id="1039337018183941703">Ongeldig of beschadigd bestand</translation>
 <translation id="1042174272890264476">Je computer is ook uitgerust met de RLZ-bibliotheek van <ph name="SHORT_PRODUCT_NAME" />. RLZ wijst een niet-unieke, niet-persoonlijke tag toe om de zoekopdrachten en het gebruik van <ph name="SHORT_PRODUCT_NAME" /> te meten als gevolg van een bepaalde promotiecampagne. Deze labels worden soms weergegeven in Google-zoekopdrachten in <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> wil grote gegevens permanent op je apparaat opslaan.</translation>
 <translation id="1046059554679513793">Deze naam wordt al gebruikt.</translation>
 <translation id="1047431265488717055">Lin&amp;ktekst kopiëren</translation>
 <translation id="1047726139967079566">Bladwijzer instellen voor deze pagina...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Standaardzoekmachine herstellen?</translation>
 <translation id="1177863135347784049">Aangepast</translation>
 <translation id="1178581264944972037">Onderbreken</translation>
-<translation id="1179803038870941185"><ph name="URL" /> wil volledig beheer van je MIDI-apparaten hebben.</translation>
 <translation id="1181037720776840403">Verwijderen</translation>
 <translation id="1183237619868651138">Kan <ph name="EXTERNAL_CRX_FILE" /> niet in lokale cache installeren.</translation>
 <translation id="1185924365081634987">Je kunt ook proberen te <ph name="GUEST_SIGNIN_LINK_START" />browsen als gast<ph name="GUEST_SIGNIN_LINK_END" /> om deze netwerkfout op te lossen.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Toegang tot een bestand dat op je computer is opgeslagen}other{Toegang tot # bestanden die op je computer zijn opgeslagen}}</translation>
 <translation id="1195076408729068893">Als je Smart Lock wilt starten, geef je je wachtwoord op. De volgende keer kun je je <ph name="DEVICE_TYPE" /> ontgrendelen met je telefoon.</translation>
 <translation id="1195447618553298278">Onbekende fout</translation>
-<translation id="1196338895211115272">Exporteren van persoonlijke sleutel is mislukt.</translation>
 <translation id="119738088725604856">Screenshot van venster</translation>
 <translation id="1197979282329025000">Er is een fout opgetreden tijdens het ophalen van de printermogelijkheden voor de printer <ph name="PRINTER_NAME" />. Deze printer kan niet worden geregistreerd met <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Aan de slag</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Je beheerder raadt een specifieke waarde aan voor deze instelling.</translation>
 <translation id="1225177025209879837">Je verzoek wordt verwerkt...</translation>
 <translation id="1225211345201532184">Plankartikel 5</translation>
-<translation id="1225404570112441414">Voeg deze site aan je plank toe om hem altijd te kunnen gebruiken.</translation>
 <translation id="1227507814927581609">Verificatie mislukt tijdens verbinden met '<ph name="DEVICE_NAME" />'.</translation>
 <translation id="1230807973377071856">systeemmenu</translation>
 <translation id="1232569758102978740">Naamloos</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML-bestand met bladwijzers</translation>
 <translation id="1303671224831497365">Geen Bluetooth-apparaten gevonden</translation>
 <translation id="1306606229401759371">Instellingen wijzigen</translation>
-<translation id="1307398858972670978">Je hebt toegang tot je wachtwoorden op elk apparaat via <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Het opslaan van de langdurige API-toegangstoken voor dit apparaat is mislukt.</translation>
 <translation id="1313405956111467313">Automatische proxyconfiguratie</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Zoeken</translation>
 <translation id="1386387014181100145">Hallo.</translation>
 <translation id="138784436342154190">Standaardstartpagina herstellen?</translation>
-<translation id="1389297115360905376">Dit pakket kan alleen worden toegevoegd via de <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Openen als normaal tabblad</translation>
-<translation id="1391807639023934267">Pagina sneller geladen.</translation>
 <translation id="1393283411312835250">Zon en wolken</translation>
 <translation id="1395262318152388157">Zoekbalk</translation>
 <translation id="1395730723686586365">Updater gestart</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Je voert een upgrade uit naar een instabiele versie van <ph name="PRODUCT_NAME" />, die opties bevat die nog in ontwikkeling zijn. Crashes en onverwachte fouten zullen optreden. Ga voorzichtig te werk.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (extensie-ID '<ph name="EXTENSION_ID" />') is niet toegestaan in dit type sessie.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">O nee! Kan geen willekeurige persoonlijke RSA-sleutel genereren.</translation>
 <translation id="1420834118113404499">Medialicenties</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> om te koppelen</translation>
 <translation id="1426410128494586442">Ja</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Adres van audio k&amp;opiëren</translation>
 <translation id="1465827627707997754">Pizzapunt</translation>
 <translation id="1467432559032391204">Links</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vraagt toestemming om gegevens permanent op je apparaat op te slaan.</translation>
-<translation id="1470719357688513792">De nieuwe cookie-instellingen worden van kracht nadat de pagina opnieuw is geladen.</translation>
 <translation id="1470811252759861213">Als je je extensies wilt gebruiken op al je computers, moet je <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">'<ph name="FILENAME" />' is niet geüpload. Er is onvoldoende ruimte beschikbaar in je Google Drive.</translation>
 <translation id="1475502736924165259">Je hebt certificaten die niet in een van de andere categorieën vallen</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Grote muisaanwijzer</translation>
 <translation id="1543284117603151572">Geïmporteerd uit Edge</translation>
 <translation id="1545177026077493356">Automatische kioskmodus</translation>
+<translation id="1545775234664667895">Geïnstalleerd thema: '<ph name="THEME_NAME" />'</translation>
 <translation id="1545786162090505744">URL met %s ipv. zoekterm</translation>
 <translation id="1546280085599573572">Deze extensie heeft gewijzigd welke pagina wordt weergegeven wanneer je op de knop 'Homepage' klikt.</translation>
 <translation id="1547572086206517271">Vernieuwen vereist</translation>
@@ -443,11 +434,9 @@
     websites <ph name="BEGIN_BOLD" />bekijken<ph name="END_BOLD" /> die een gebruiker met beperkte rechten heeft bezocht en
     andere instellingen <ph name="BEGIN_BOLD" />beheren<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">De inloggegevens zijn verouderd</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> regels niet weergegeven&gt;</translation>
 <translation id="1650371550981945235">Invoeropties weergeven</translation>
 <translation id="1650709179466243265">Voeg www. en .com toe en open de pagina</translation>
 <translation id="1651008383952180276">Je moet twee keer dezelfde wachtwoordzin opgeven</translation>
-<translation id="1652972346408808053">Wachtwoord opgeslagen. Je hebt toegang tot je wachtwoorden op elk apparaat via <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Voeg de printer toe aan Google Cloudprinter zodat je overal kunt afdrukken.}other{Voeg # printers toe aan Google Cloudprinter zodat je overal kunt afdrukken.}}</translation>
 <translation id="1657406563541664238">Help <ph name="PRODUCT_NAME" /> beter te maken door automatisch gebruiksstatistieken en crashmeldingen naar Google te verzenden</translation>
 <translation id="1658424621194652532">Deze pagina heeft toegang tot je microfoon.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Cookies blijven blokkeren</translation>
 <translation id="204622017488417136">Je apparaat wordt hersteld naar de vorige geïnstalleerde versie van Chrome. Alle gebruikersaccounts en lokale gegevens worden verwijderd. Dit kan niet ongedaan worden gemaakt.</translation>
 <translation id="2048182445208425546">Toegang tot je netwerkverkeer</translation>
-<translation id="2049137146490122801">Toegang tot lokale bestanden op je computer is door je beheerder uitgeschakeld.</translation>
 <translation id="204914487372604757">Snelle link maken</translation>
 <translation id="2050339315714019657">Staand</translation>
 <translation id="2053312383184521053">Gegevens van inactieve status</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Nog niet geladen</translation>
 <translation id="2107494551712864447">Een vingerafdruk toevoegen</translation>
-<translation id="2111843886872897694">Apps moeten worden weergegeven vanaf de host waarop ze betrekking hebben.</translation>
 <translation id="2112877397266219826">Schakel je touch-controller in om mij in te stellen</translation>
 <translation id="21133533946938348">Tabblad vastzetten</translation>
 <translation id="2113479184312716848">Bestand &amp;openen...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Vertel ons wat er aan de hand is</translation>
 <translation id="2229161054156947610">Meer dan 1 uur resterend</translation>
 <translation id="222931766245975952">Bestand afgekapt</translation>
-<translation id="222949136907494149"><ph name="URL" /> wil de locatie van je computer gebruiken.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Kan map '<ph name="FOLDER_NAME" />' niet maken. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klik om de doodle van vandaag te bekijken</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Microfoontoegang altijd blokkeren</translation>
 <translation id="2367972762794486313">Apps weergeven</translation>
 <translation id="2371076942591664043">Openen wanneer geree&amp;d</translation>
-<translation id="237336063998926520">Je IP-adres gebruiken om je locatie te bepalen</translation>
 <translation id="2377319039870049694">Overschakelen naar lijstweergave</translation>
 <translation id="2377667304966270281">Harde fouten</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> bestanden geselecteerd</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> wil bestanden van <ph name="VOLUME_NAME" /> kopiëren.</translation>
 <translation id="2462724976360937186">Sleutel-ID van certificeringsinstantie</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> toegevoegd</translation>
-<translation id="246335896104539386">Bladwijzers importeren</translation>
 <translation id="2464089476039395325">HTTP-proxy</translation>
 <translation id="2468902267404883140">Kan geen verbinding maken met je telefoon. Zorg ervoor dat je een geschikte Android-telefoon gebruikt die is ingeschakeld en zich in de buurt bevindt. &lt;a&gt;Meer informatie&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Niet-ondersteunde extensies uitgeschakeld</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
 <translation id="2487067538648443797">Nieuwe bladwijzer toevoegen</translation>
 <translation id="248861575772995840">Kan je telefoon niet vinden. Zorg ervoor dat Bluetooth is ingeschakeld op je <ph name="DEVICE_TYPE" />. &lt;a&gt;Meer informatie&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Een plug-in (<ph name="PLUGIN_NAME" />) reageert niet.</translation>
 <translation id="2489428929217601177">de afgelopen dag</translation>
 <translation id="2489918096470125693">&amp;Map toevoegen...</translation>
 <translation id="249113932447298600">Het apparaat <ph name="DEVICE_LABEL" /> wordt momenteel niet ondersteund.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Gefeliciteerd! Je gegevensservice '<ph name="NAME" />' is geactiveerd en kan worden gebruikt.</translation>
 <translation id="2566124945717127842">Voer de Powerwash-functie uit om je <ph name="IDS_SHORT_PRODUCT_NAME" />-apparaat opnieuw in te stellen.</translation>
 <translation id="2568774940984945469">Container voor infobalk</translation>
-<translation id="2570000010887652771">Mobiel dataverbruik bespaard</translation>
 <translation id="257088987046510401">Thema's</translation>
 <translation id="2572032849266859634">Alleen-lezen-toegang tot <ph name="VOLUME_NAME" /> is toegekend.</translation>
 <translation id="2573269395582837871">Kies een foto en een naam</translation>
 <translation id="2575247648642144396">Dit pictogram is zichtbaar wanneer de extensie acties kan uitvoeren op de huidige pagina. Gebruik deze extensie door op het pictogram te klikken of op <ph name="EXTENSION_SHORTCUT" /> te drukken.</translation>
 <translation id="2575268751393592580">Kan je telefoon niet vinden. Zorg ervoor dat je <ph name="DEVICE_TYPE" /> is verbonden met wifi of een mobiel netwerk. &lt;a&gt;Meer informatie&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Er is al een CRX-bestand aanwezig met deze naam.</translation>
 <translation id="257779572837908839">Instellen als Chromebox for meetings</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Kan volume niet deactiveren<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Als je een certificaat van een certificeringsinstantie verwijdert, vertrouwt je browser geen certificaten meer die door die certificeringsinstantie zijn verleend.</translation>
 <translation id="2653659639078652383">Verzenden</translation>
 <translation id="265390580714150011">Veldwaarde</translation>
-<translation id="2654286334048437383">Bladwijzers exporteren</translation>
 <translation id="2655386581175833247">Gebruikerscertificaat:</translation>
 <translation id="2660779039299703961">Gebeurtenis</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Mediagalerij toevoegen op directory</translation>
 <translation id="2908789530129661844">Scherm uitzoomen</translation>
 <translation id="2910318910161511225">Maak verbinding met een netwerk en probeer het opnieuw</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> wil gebruikmaken van je microfoon.</translation>
 <translation id="2913331724188855103">Sites toestaan cookiegegevens op te slaan en te lezen (aanbevolen)</translation>
 <translation id="2916073183900451334">Als je op een webpagina op Tab drukt, worden links en velden in formulieren gemarkeerd</translation>
 <translation id="2916745397441987255">Extensies zoeken</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Luisteren...</translation>
 <translation id="3141917231319778873">Het opgegeven verzoek wordt niet ondersteund voor: <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">GEREED</translation>
-<translation id="3144135466825225871">Vervangen van crx-bestand is mislukt. Controleer of het bestand wordt gebruikt.</translation>
 <translation id="3144647712221361880">Link openen als</translation>
 <translation id="3149510190863420837">Chrome-apps</translation>
 <translation id="3150927491400159470">Geforceerd opnieuw laden</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Altijd uitvoeren voor alle sites</translation>
 <translation id="3312424061798279731">Ingeschakelde talen</translation>
 <translation id="3312903956926554846">Installeren op bureaublad</translation>
-<translation id="3313473140726597081">Je startpagina is gewijzigd in <ph name="URL" />. Als je extensies wilt uitschakelen die je startpagina wijzigen, klik je op Herstellen.</translation>
 <translation id="3313590242757056087">Als je wilt instellen welke websites de gebruiker met beperkte rechten kan weergeven, kun je beperkingen en instellingen
     configureren op <ph name="MANAGEMENT_URL" />.
     Als je de standaardinstellingen niet wilt wijzigen, kan <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">App-informatie</translation>
 <translation id="3335947283844343239">Open gesloten tabblad opnieuw</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> is geblokkeerd omdat deze is verouderd.</translation>
 <translation id="3340978935015468852">instellingen</translation>
 <translation id="3341703758641437857">Toegang tot bestand-URL's toestaan</translation>
 <translation id="3342361181740736773">'<ph name="TRIGGERING_EXTENSION_NAME" />' wil deze extensie verwijderen.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Bladwijzer toegevoegd</translation>
 <translation id="3389312115541230716">Klik met de rechtermuisknop op het pictogram <ph name="SMALL_PRODUCT_LOGO" /> in de taakbalk</translation>
 <translation id="3391716558283801616">Tabblad 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> wil gebruikmaken van je camera en microfoon.</translation>
 <translation id="3396331542604645348">De geselecteerde printer is niet beschikbaar of niet correct geïnstalleerd. Controleer de printer of probeer een andere printer te selecteren.</translation>
 <translation id="3399432415385675819">Meldingen worden uitgeschakeld</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome wordt automatisch bijgewerkt, zodat je altijd beschikt over de nieuwste versie</translation>
 <translation id="3551320343578183772">Tabblad sluiten</translation>
 <translation id="3552780134252864554">Gewist bij afsluiten</translation>
-<translation id="355298399003313926"><ph name="URL" /> wil reageren op toegankelijkheidsgebeurtenissen.</translation>
 <translation id="3555812735919707620">Extensie verwijderen</translation>
 <translation id="3556000484321257665">Je zoekmachine is gewijzigd in <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Invoerwaarde voor persoonlijke sleutel moet een geldig pad zijn.</translation>
 <translation id="3563432852173030730">Kiosk-app kan niet worden gedownload.</translation>
 <translation id="3564334271939054422">Het is mogelijk dat je de inlogpagina moet bezoeken van het wifi-netwerk dat je gebruikt (<ph name="NETWORK_ID" />).</translation>
 <translation id="3564708465992574908">Zoomniveaus</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Naambeperkingen voor certificaten</translation>
 <translation id="3596235046596950091">Cloudservices inschakelen</translation>
 <translation id="3599863153486145794">Hiermee wordt de geschiedenis van alle ingelogde apparaten gewist. Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Toegang tot lokale bestanden op je apparaat is door je beheerder uitgeschakeld.</translation>
 <translation id="3600792891314830896">Sites dempen die geluid afspelen</translation>
 <translation id="3603177256297531067">Deze pagina kan niet worden vertaald</translation>
 <translation id="3603533104205588786">Je kunt op de ster klikken om een bladwijzer voor een pagina in te stellen</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Screenshots uitgeschakeld</translation>
 <translation id="3625870480639975468">Zoom opnieuw instellen</translation>
 <translation id="3626281679859535460">Helderheid</translation>
-<translation id="3627052133907344175">Voor deze extensie is minimaal versie '<ph name="IMPORT_VERSION" />' van '<ph name="IMPORT_NAME" />' vereist, maar alleen versie '<ph name="INSTALLED_VERSION" />' is geïnstalleerd.</translation>
 <translation id="3627320433825461852">Minder dan 1 minuut resterend</translation>
 <translation id="3627588569887975815">Link openen in inco&amp;gnitovenster</translation>
 <translation id="3627671146180677314">Vernieuwingsmoment voor Netscape-certificaat</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Taalinstellingen</translation>
 <translation id="3668823961463113931">Handlers</translation>
 <translation id="3670229581627177274">Bluetooth inschakelen</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vraagt toestemming om permanent veel gegevens op je lokale computer op te slaan.</translation>
 <translation id="3672681487849735243">Er is een fabrieksfout gedetecteerd</translation>
 <translation id="367645871420407123">laat dit leeg als je het rootwachtwoord wilt instellen op de waarde van de standaard testimage</translation>
 <translation id="3678156199662914018">Extensie: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Je bent offline</translation>
 <translation id="3788401245189148511">De apps/extensies zouden nu het volgende kunnen doen:</translation>
 <translation id="3789841737615482174">Installeren</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> werkt alleen op het bureaublad.</translation>
 <translation id="379082410132524484">Je kaart is verlopen</translation>
 <translation id="3792890930871100565">Printers ontkoppelen</translation>
 <translation id="379422718204375917">Gebruik Smart Lock om in te loggen op je account</translation>
-<translation id="3794595850995182458">Pagina afsluiten</translation>
 <translation id="3796648294839530037">Favoriete netwerken:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> door&amp;zoeken op '<ph name="SEARCH_TERMS" />'</translation>
 <translation id="3798325802885154040">Hiermee kun je tikken-om-te-klikken in- en uitschakelen</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> inschakelen</translation>
 <translation id="3981760180856053153">Ongeldig opslagtype opgegeven.</translation>
 <translation id="3983586614702900908">apparaten van een onbekende leverancier</translation>
-<translation id="3984413272403535372">Fout bij ondertekenen van extensie.</translation>
 <translation id="3987938432087324095">Sorry, dat heb ik niet verstaan.</translation>
 <translation id="3988996860813292272">Tijdzone selecteren</translation>
 <translation id="3989635538409502728">Afmelden</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Apps en games van Google Play installeren op je Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Meer informatie&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Accepteren voor groep</translation>
 <translation id="4090103403438682346">Verified Access inschakelen</translation>
-<translation id="4090404313667273475">Voor de weergave van sommige elementen op deze pagina is <ph name="PLUGIN_NAME" /> vereist.</translation>
 <translation id="4090535558450035482">(Deze extensie wordt beheerd en kan niet worden verwijderd.)</translation>
 <translation id="4091434297613116013">vellen papier</translation>
 <translation id="4093955363990068916">Lokaal bestand:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kan nu je wachtwoorden synchroniseren.</translation>
 <translation id="4715553623069266137">zeer kort (0,8 sec.)</translation>
 <translation id="4716483597559580346">Powerwash voor extra beveiliging</translation>
-<translation id="471800408830181311">Uitvoer van persoonlijke sleutel is mislukt.</translation>
 <translation id="4720113199587244118">Apparaten toevoegen</translation>
 <translation id="4720185134442950733">Mobiel datanetwerk</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> deelt je scherm.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> wil communiceren met de extensie '<ph name="EXTENSION_NAME" />'</translation>
 <translation id="4918086044614829423">Accepteren</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> wil gebruikmaken van je camera.</translation>
 <translation id="4920887663447894854">De volgende sites kunnen je locatie op deze pagina niet bijhouden:</translation>
 <translation id="492299503953721473">Android-apps verwijderen</translation>
 <translation id="4923279099980110923">Ja, ik wil helpen</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Deze extensie bevat malware.</translation>
 <translation id="498294082491145744">Je instellingen wijzigen die de toegang van websites bepalen tot functies zoals cookies, JavaScript, plug-ins, geografische locatie, microfoon, camera, enzovoort</translation>
 <translation id="4988526792673242964">Pagina's</translation>
-<translation id="4988792151665380515">Exporteren van openbare sleutel is mislukt.</translation>
 <translation id="49896407730300355">Linksom &amp;draaien</translation>
 <translation id="4989966318180235467">&amp;Achtergrondpagina controleren</translation>
 <translation id="4990343175649730969">Chrome Cleanup Tool downloaden</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Dit bericht niet meer weergeven</translation>
 <translation id="5027550639139316293">Certificaat voor e-mail</translation>
 <translation id="5027562294707732951">Extensie toevoegen</translation>
-<translation id="5028012205542821824">Installatie is niet ingeschakeld.</translation>
 <translation id="5029568752722684782">Kopie wissen</translation>
 <translation id="5030338702439866405">Verleend door</translation>
 <translation id="5036662165765606524">Sites niet toestaan automatisch meerdere bestanden te downloaden</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Er is een fout opgetreden.</translation>
 <translation id="5094721898978802975">Communiceren met samenwerkende legitieme apps</translation>
 <translation id="5097002363526479830">Kan geen verbinding maken met het netwerk '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Kan het absolute pad naar de in te pakken directory niet vinden.</translation>
 <translation id="5099354524039520280">omhoog</translation>
 <translation id="5100114659116077956">Je Chromebox moet worden bijgewerkt als je de nieuwste functies wilt gebruiken.</translation>
 <translation id="5101042277149003567">Alle bladwijzers openen</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">Weergeven in map</translation>
 <translation id="5171045022955879922">Zoek of typ een URL</translation>
 <translation id="5171343362375269016">Wisselgeheugen</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vraagt toestemming om permanent gegevens op je lokale computer op te slaan.</translation>
 <translation id="5177479852722101802">Toegang tot de camera en microfoon blijven blokkeren</translation>
 <translation id="5177526793333269655">Miniatuurweergave</translation>
 <translation id="5177549709747445269">Je gebruikt mobiele data</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Dit apparaat formatteren</translation>
 <translation id="5293170712604732402">Instellingen terugzetten naar de oorspronkelijke standaardwaarden</translation>
 <translation id="5298219193514155779">Thema gemaakt door</translation>
-<translation id="5298363578196989456">Kan '<ph name="IMPORT_NAME" />' niet importeren, omdat dit geen gedeelde module is.</translation>
 <translation id="5299109548848736476">Niet bijhouden</translation>
 <translation id="5299682071747318445">Alle gegevens zijn geëncrypt met je wachtwoordzin voor synchronisatie</translation>
 <translation id="5300589172476337783">Weergeven</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> wil koppelen</translation>
 <translation id="5332624210073556029">Tijdzone:</translation>
 <translation id="5334142896108694079">Script in cache</translation>
-<translation id="533433379391851622">Verwachte versie '<ph name="EXPECTED_VERSION" />', maar versie is '<ph name="NEW_ID" />'.</translation>
 <translation id="5334844597069022743">Bron weergeven</translation>
 <translation id="5335458522276292100">Back-up van <ph name="FILE_COUNT" /> maken op <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Geïnstalleerd door derden.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">Toestaan dat sites geluid afspelen</translation>
 <translation id="5390284375844109566">Geïndexeerde database</translation>
 <translation id="5390743329570580756">Verzenden voor</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> op <ph name="PEPPER_PLUGIN_DOMAIN" /> vraagt om toegang tot je computer.</translation>
 <translation id="5397794290049113714">Jij</translation>
 <translation id="5398572795982417028">Paginaverwijzing valt buiten bereik, limiet is <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Advertenties geblokkeerd</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Herstel alle tabbladen</translation>
 <translation id="5486261815000869482">Wachtwoord bevestigen</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> deelt je scherm met <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Invoerwaarde voor persoonlijke sleutel moet aanwezig zijn.</translation>
 <translation id="5486561344817861625">Opnieuw starten van browser simuleren</translation>
 <translation id="5487521232677179737">Gegevens wissen</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' gekopieerd</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">De update wordt gedownload met <ph name="UPDATE_SIZE_MB" /> MB mobiele data. Wil je doorgaan?</translation>
 <translation id="5601503069213153581">Pincode</translation>
 <translation id="5605623530403479164">Andere zoekmachines</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> op <ph name="PEPPER_PLUGIN_DOMAIN" /> vraagt toegang tot je apparaat.</translation>
 <translation id="5608580678041221894">Tik op de volgende toetsen om het bijsnijdgebied aan te passen of te verplaatsen</translation>
 <translation id="5609231933459083978">De app blijkt ongeldig te zijn.</translation>
 <translation id="5610038042047936818">Overschakelen naar cameramodus</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Vertaald</translation>
 <translation id="5991049340509704927">Vergroten</translation>
 <translation id="5993332328670040093">Je dataverbruik wordt niet langer bijgehouden.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> kan zichzelf mogelijk niet bijgewerkt houden.</translation>
 <translation id="600424552813877586">Ongeldige app.</translation>
 <translation id="6005695835120147974">Mediarouter</translation>
 <translation id="6006484371116297560">Klassiek</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Cloudback-up</translation>
 <translation id="6040143037577758943">Sluiten</translation>
 <translation id="6040852767465482106">Anonieme identiteit</translation>
+<translation id="6041155700700864984">Volledig scherm sluiten</translation>
 <translation id="604124094241169006">Automatisch</translation>
 <translation id="6042169520002885235">Selecteer een printerfabrikant en -model</translation>
 <translation id="6042308850641462728">Meer</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Normaal opnieuw laden</translation>
 <translation id="6059652578941944813">Certificaathiërarchie</translation>
 <translation id="6059925163896151826">USB-apparaten</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> is gecrasht.</translation>
 <translation id="6064217302520318294">Schermvergrendeling</translation>
 <translation id="6065289257230303064">Directorykenmerken van certificaatonderwerp</translation>
 <translation id="6068338049763724728">Externe aanmelding inschakelen</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Hiermee kun je de schermresolutie aanpassen</translation>
 <translation id="6238923052227198598">Laatste notitie op vergrendelingsscherm laten staan</translation>
 <translation id="6239558157302047471">&amp;Frame opnieuw laden</translation>
-<translation id="624022915548992686">Pagina afsluiten</translation>
 <translation id="6241530762627360640">Toegang krijgen tot informatie over Bluetooth-apparaten die zijn gekoppeld met je systeem en Bluetooth-apparaten in de buurt detecteren.</translation>
 <translation id="6243774244933267674">Server is niet beschikbaar</translation>
 <translation id="6246413617632217567">De gebruiker met beperkte rechten kan niet worden geïmporteerd. Controleer de ruimte op je harde schijf en je rechten, en probeer het opnieuw.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Onbekende netwerkfout</translation>
 <translation id="6313641880021325787">VR AFSLUITEN</translation>
 <translation id="6314819609899340042">Je hebt foutopsporingsfuncties ingeschakeld voor dit <ph name="IDS_SHORT_PRODUCT_NAME" />-apparaat.</translation>
-<translation id="6315343732431721770">Je startpagina is gewijzigd en bevat nu ook <ph name="URL" />. Als je extensies wilt uitschakelen die je startpagina wijzigen, klik je op Herstellen.</translation>
 <translation id="6315493146179903667">Alles op voorgrond</translation>
 <translation id="6316806695097060329">Dit <ph name="SHORT_PRODUCT_NAME" />-apparaat is speciaal ontworpen om je de beste webervaring te bieden.</translation>
 <translation id="6317318380444133405">Niet meer ondersteund.</translation>
 <translation id="6317369057005134371">Wachten op appvenster...</translation>
 <translation id="6318407754858604988">Download gestart</translation>
-<translation id="6322279351188361895">Lezen van persoonlijke sleutel is mislukt.</translation>
 <translation id="6325191661371220117">Automatisch starten uitschakelen</translation>
 <translation id="6326175484149238433">Verwijderen uit Chrome</translation>
 <translation id="6326855256003666642">Aantal keepalive-activiteiten</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Kies wat je wilt synchroniseren</translation>
 <translation id="6333064448949140209">Bestanden worden naar Google gestuurd voor foutopsporing</translation>
 <translation id="6333834492048057036">Focus op adresbalk voor zoeken</translation>
-<translation id="6336907568130557310">Je wachtwoorden zijn zichtbaar voor iedereen die het geëxporteerde bestand kan bekijken. Deel het bestand niet en verwijder het nadat je het hebt geïmporteerd.</translation>
 <translation id="6339668969738228384">Een nieuw profiel maken voor <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Kan geen verbinding maken met de server. Controleer de netwerkverbinding en probeer het opnieuw. Als het probleem blijft optreden, start je de Chromebook opnieuw op.</translation>
 <translation id="6340071272923955280">Internetafdrukprotocol (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Sites kunnen cookiegegevens opslaan en lezen</translation>
 <translation id="6388771388956873507">Zoek de vingerafdruksensor op je apparaat en raak deze aan met je vinger</translation>
 <translation id="6390799748543157332">De pagina's die je in dit venster bekijkt, worden niet in de browsergeschiedenis weergegeven en laten geen sporen op de computer achter (zoals cookies) nadat je alle geopende gastvensters hebt gesloten. Bestanden die je downloadt, blijven echter wel behouden.</translation>
-<translation id="6391538222494443604">Er moet een invoerdirectory zijn.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Systeeminformatie<ph name="END_LINK1" /> en <ph name="BEGIN_LINK2" />statistische gegevens<ph name="END_LINK2" /> verzenden</translation>
 <translation id="6397363302884558537">Inspreken stoppen</translation>
 <translation id="6397592254427394018">Alle bladwijzers openen in &amp;incognitovenster</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Blokkeren van JavaScript beheren...</translation>
 <translation id="6459488832681039634">Gebruik selectie voor zoekactie</translation>
 <translation id="6460601847208524483">Zoek volgende</translation>
-<translation id="6462080265650314920">Apps moeten worden weergegeven met inhoudstype '<ph name="CONTENT_TYPE" />'.</translation>
 <translation id="6462082050341971451">Ben je er nog?</translation>
 <translation id="6463795194797719782">B&amp;ewerken</translation>
 <translation id="6466988389784393586">Alle bladwijzers &amp;openen</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Wil je dat Google deze pagina vertaalt van het <ph name="SOURCE_LANGUAGE" /> naar het <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Aanwijsapparaat verbonden</translation>
-<translation id="6677037229676347494">Verwachte ID '<ph name="EXPECTED_ID" />', maar ID is '<ph name="NEW_ID" />'.</translation>
 <translation id="6678717876183468697">Query-URL</translation>
 <translation id="6680028776254050810">Gebruiker wijzigen</translation>
 <translation id="6680442031740878064">Beschikbaar: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Via <ph name="BEGIN_LINK" />Instellingen<ph name="END_LINK" /> kun je op elk gewenst moment aanpassen welke informatie Google verzamelt.</translation>
 <translation id="6904344821472985372">Toegang tot bestand intrekken</translation>
 <translation id="6904655473976120856">Druk op de app-knop om af te sluiten</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> wil toegang tot je scherm.</translation>
-<translation id="6909461304779452601">Apps, extensies en gebruikersscripts kunnen niet worden toegevoegd vanaf deze website.</translation>
 <translation id="6910211073230771657">Verwijderd</translation>
 <translation id="691024665142758461">Meerdere bestanden downloaden</translation>
 <translation id="6911324888870229398">De netwerkverbinding is verbroken. Controleer de verbinding of probeer een ander wifi-netwerk.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Fout: kan extensie niet decoderen</translation>
 <translation id="7473891865547856676">Nee, bedankt</translation>
 <translation id="747459581954555080">Alles herstellen</translation>
-<translation id="7475034671245341386">Er is een fout opgetreden in <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">URL van verloren Netscape-wachtwoord</translation>
 <translation id="7476454130948140105">Batterij niet voldoende opgeladen voor update (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Als je je wachtwoordzin bent vergeten, stop je Synchroniseren en stel je de functie opnieuw in via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Certificaat voor statusbeantwoorder</translation>
 <translation id="7508545000531937079">Diavoorstelling</translation>
 <translation id="7513029293694390567">Automatisch inloggen bij websites met de opgeslagen gegevens. Als de functie is uitgeschakeld, wordt elke keer om bevestiging gevraagd voordat je inlogt bij een website.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> wil een unieke identificatie van je apparaat hebben om Play Protect-content te kunnen afspelen.</translation>
 <translation id="7517569744831774757">Instellingen terugzetten naar de oorspronkelijke standaardwaarden.</translation>
 <translation id="7517786267097410259">Een wachtwoord maken –</translation>
 <translation id="7518150891539970662">WebRTC-logboeken (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     en opnieuw proberen een gebruiker met beperkte rechten te maken.</translation>
 <translation id="756445078718366910">Browservenster openen</translation>
 <translation id="7564847347806291057">Proces beëindigen</translation>
-<translation id="7565291891798266313">Je zoekmachine is gewijzigd in <ph name="URL" />. Als je de extensies wilt uitschakelen die je zoekmachine wijzigen, klik je op Herstellen.</translation>
 <translation id="7566118625369982896">Play-app-links beheren</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome-gegevens gewist</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Acculading</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Sorteren</translation>
-<translation id="7577815336900970562">Wifi of mobiel netwerk gebruiken om locatie te bepalen</translation>
 <translation id="7579149537961810247">Geluid van sites dempen</translation>
 <translation id="7580671184200851182">Dezelfde audio afspelen via alle speakers (mono-audio)</translation>
 <translation id="7581462281756524039">Een cleanup-tool</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Sessie-opslag</translation>
 <translation id="7781335840981796660">Alle gebruikersaccounts en lokale gegevens worden verwijderd.</translation>
 <translation id="7782102568078991263">Geen verdere suggesties van Google</translation>
+<translation id="778330624322499012">Kan <ph name="PLUGIN_NAME" /> niet laden</translation>
 <translation id="7784067724422331729">Beveiligingsinstellingen op je computer hebben dit bestand geblokkeerd.</translation>
 <translation id="7786207843293321886">Gastsessie sluiten</translation>
 <translation id="7786889348652477777">App opnieuw &amp;laden</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Een site heeft je wachtwoord mogelijk gestolen</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Verbinding met internet verbroken. Controleer je internetverbinding.</translation>
-<translation id="8008765610824028412">Kan <ph name="PLUGIN_NAME" /> niet laden.</translation>
 <translation id="8008818777654712271">Bepaalde systeeminformatie en paginacontent automatisch verzenden naar Google om te helpen bij de detectie van gevaarlijke apps en sites</translation>
 <translation id="8012382203418782830">Deze pagina is vertaald.</translation>
 <translation id="8014154204619229810">De updater wordt momenteel uitgevoerd. Klik op Vernieuwen om opnieuw te controleren.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Je apps, extensies en thema's beheren</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Grootte op schijf</translation>
-<translation id="8195739004487400241">Je homepage is gewijzigd in <ph name="URL" />. Als je de extensies wilt uitschakelen die je homepage wijzigen, klik je op Herstellen.</translation>
 <translation id="8199300056570174101">Eigenschappen van netwerk (service) en apparaat</translation>
 <translation id="8200772114523450471">Hervatten</translation>
 <translation id="8202160505685531999">Geef je wachtwoord opnieuw op om je <ph name="DEVICE_TYPE" />-profiel te updaten.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Deze extensie wordt niet vermeld in de <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> en is mogelijk zonder je medeweten toegevoegd.</translation>
 <translation id="8261387128019234107">Account toevoegen voor <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Verwijderen</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> is niet geïmplementeerd in deze build.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> heeft je muisaanwijzer uitgeschakeld.</translation>
 <translation id="8264718194193514834">'<ph name="EXTENSION_NAME" />' heeft het volledige scherm geactiveerd.</translation>
 <translation id="8270242299912238708">Pdf-documenten</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Of selecteer een nieuw netwerk:</translation>
 <translation id="845627346958584683">Vervaltijd</translation>
 <translation id="8456681095658380701">Ongeldige naam</translation>
+<translation id="8457451314607652708">Bladwijzers importeren</translation>
 <translation id="8460336040822756677">Als je Smart Lock voor <ph name="DEVICE_TYPE" /> uitschakelt, kun je je Chrome-apparaten niet meer ontgrendelen met je telefoon. Je moet je wachtwoord typen.</translation>
 <translation id="8461329675984532579">Naam thuisprovider</translation>
 <translation id="84613761564611563">Gebruikersinterface voor netwerkconfiguratie aangevraagd. Een ogenblik geduld...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Er is geen schadelijke software gevonden</translation>
 <translation id="8512476990829870887">Proces beëindigen</translation>
 <translation id="851263357009351303"><ph name="HOST" /> altijd toestaan afbeeldingen weer te geven</translation>
-<translation id="8513191386157529469">'<ph name="CLIENT_NAME" />' voert foutopsporing uit in deze browser.</translation>
 <translation id="8521475323816527629">Snel naar je apps gaan</translation>
 <translation id="8523493869875972733">Wijzigingen behouden</translation>
 <translation id="8523849605371521713">Toegevoegd door beleid</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Netwerkverbindingen configureren</translation>
 <translation id="8620790565535071193">Scannen mislukt</translation>
 <translation id="8622877356447980900">Wil je deze pagina vertalen?</translation>
-<translation id="8623004009673949077">App met het manifestkenmerk 'kiosk_only' moet worden geïnstalleerd in de Chrome OS-kioskmodus.</translation>
 <translation id="8624205858755890468">Hiermee kan de Assistent je gerelateerde informatie, apps en acties laten zien.</translation>
 <translation id="862542460444371744">&amp;Extensies</translation>
 <translation id="8627151598708688654">Bron selecteren</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Firmware updaten voor extra beveiliging</translation>
 <translation id="8823514049557262177">Lin&amp;ktekst kopiëren</translation>
 <translation id="8824701697284169214">Pa&amp;gina toevoegen...</translation>
-<translation id="8827850355924932817">Wifi-netwerk gebruiken om locatie te bepalen</translation>
 <translation id="8828933418460119530">DNS-naam</translation>
 <translation id="8830796635868321089">Het controleren op updates met de huidige proxyinstellingen is mislukt. Pas je <ph name="PROXY_SETTINGS_LINK_START" />proxyinstellingen<ph name="PROXY_SETTINGS_LINK_END" /> aan.</translation>
 <translation id="8834039744648160717">Netwerkconfiguratie wordt beheerd door <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">Weergeven al&amp;s tabblad</translation>
 <translation id="8884961208881553398">Nieuwe services toevoegen</translation>
 <translation id="8885197664446363138">Smart Lock is niet beschikbaar</translation>
-<translation id="8885905466771744233">Er bestaat al een persoonlijke sleutel voor de opgegeven extensie. Gebruik die sleutel opnieuw of verwijder deze eerst.</translation>
 <translation id="8888432776533519951">Kleur:</translation>
-<translation id="8892992092192084762">Thema '<ph name="THEME_NAME" />' geïnstalleerd.</translation>
 <translation id="8893928184421379330">Het apparaat <ph name="DEVICE_LABEL" /> kan niet worden herkend.</translation>
 <translation id="8895454554629927345">Bladwijzerlijst</translation>
 <translation id="88986195241502842">Page Down</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Waarschuwing: je hebt de vlag 'scripts vereisen actie' op deze computer ingeschakeld, waardoor de mogelijkheden van deze extensie beperkt worden. Andere apparaten ondersteunen deze vlag mogelijk niet, of hebben deze ingeschakeld. Deze extensie kan op die apparaten ook:</translation>
 <translation id="8910146161325739742">Je scherm delen</translation>
 <translation id="8910222113987937043">Wijzigingen in je bladwijzers, geschiedenis, wachtwoorden en andere instellingen worden niet meer gesynchroniseerd met je Google-account. Je bestaande gegevens blijven echter opgeslagen in je Google-account en kunnen worden beheerd via <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google heeft '<ph name="EXTENSION_NAME" />' als schadelijk gemarkeerd en de installatie is geblokkeerd.</translation>
 <translation id="8912793549644936705">Uitrekken</translation>
 <translation id="8915370057835397490">Suggestie wordt geladen</translation>
 <translation id="8916476537757519021">Incognito-subframe: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-muis aangesloten</translation>
 <translation id="9076523132036239772">Je e-mailadres of wachtwoord kan niet worden geverifieerd. Probeer eerst verbinding met een netwerk te maken.</translation>
-<translation id="907841381057066561">Geen tijdelijk zipbestand gemaakt tijdens inpakken.</translation>
 <translation id="9084064520949870008">Openen als venster</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> is geblokkeerd op basis van bedrijfsbeleid</translation>
 <translation id="9088917181875854783">Bevestigen dat deze toegangscode wordt weergegeven op '<ph name="DEVICE_NAME" />':</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Wachtwoordzin opgeven</translation>
 <translation id="939736085109172342">Nieuwe map</translation>
-<translation id="941543339607623937">Ongeldige persoonlijke sleutel.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> deelt een Chrome-tabblad en audio.</translation>
 <translation id="942954117721265519">Geen afbeeldingen in deze directory.</translation>
 <translation id="945522503751344254">Feedback verzenden</translation>
-<translation id="951981865514037445"><ph name="URL" /> wil de locatie van je apparaat gebruiken.</translation>
 <translation id="952992212772159698">Niet geactiveerd</translation>
 <translation id="9580706199804957">Kan geen verbinding maken met Google-services</translation>
 <translation id="958515377357646513">Tik hierop om vooruit te gaan.</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 4378dfc..b0286a2 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Kun chiffrering</translation>
 <translation id="1039337018183941703">Ugyldig eller skadet fil.</translation>
 <translation id="1042174272890264476">Datamaskinen din har <ph name="SHORT_PRODUCT_NAME" />s RLZ-bibliotek innebygget. RLZ tildeler en ikke-unik, ikke-personlig tagg for å måle søk og <ph name="SHORT_PRODUCT_NAME" />-bruk drevet av en bestemt markedsføringskampanje. Disse etikettene vises noen ganger i Google-søk i <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> ønsker å lagre store datamengder på enheten din permanent.</translation>
 <translation id="1046059554679513793">Dette navnet er allerede i bruk!</translation>
 <translation id="1047431265488717055">Kopiér linkte&amp;kst</translation>
 <translation id="1047726139967079566">Legg til bokmerke for denne siden...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Vil du gjenopprette standardsøkemotoren?</translation>
 <translation id="1177863135347784049">Tilpasset</translation>
 <translation id="1178581264944972037">Stans midlertidig</translation>
-<translation id="1179803038870941185"><ph name="URL" /> ønsker full kontroll over MIDI-enhetene dine.</translation>
 <translation id="1181037720776840403">Fjern</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> kan ikke installeres i lokalbufferen.</translation>
 <translation id="1185924365081634987">Du kan også prøve å <ph name="GUEST_SIGNIN_LINK_START" />surfe som gjest<ph name="GUEST_SIGNIN_LINK_END" /> for å løse denne nettverksfeilen.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Tilgang til en fil som er lagret på datamaskinen din}other{Tilgang til # filer som er lagret på datamaskinen din}}</translation>
 <translation id="1195076408729068893">For å starte Smart Lock, skriv inn passordet ditt. Neste gang kan du bruke telefonen til å låse opp <ph name="DEVICE_TYPE" />-enheten.</translation>
 <translation id="1195447618553298278">Ukjent feil.</translation>
-<translation id="1196338895211115272">Kan ikke eksportere privatnøkkelen.</translation>
 <translation id="119738088725604856">Ta en skjermdump av vinduet</translation>
 <translation id="1197979282329025000">Det oppstod en feil under henting av utskriftfunksjonaliteter for skriveren <ph name="PRINTER_NAME" />. Denne skriveren kunne ikke registreres for <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">La oss komme i gang</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administratoren din anbefaler en spesifikk verdi for denne innstillingen.</translation>
 <translation id="1225177025209879837">Forespørselen behandles...</translation>
 <translation id="1225211345201532184">Hylleelement 5</translation>
-<translation id="1225404570112441414">Legg til dette nettstedet på hyllen din, slik at det kan brukes når som helst.</translation>
 <translation id="1227507814927581609">Autentiseringen mislyktes under tilkoblingen til <ph name="DEVICE_NAME" />.</translation>
 <translation id="1230807973377071856">systemmeny</translation>
 <translation id="1232569758102978740">Uten tittel</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML-fil med bokmerker</translation>
 <translation id="1303671224831497365">Fant ingen Bluetooth-enheter</translation>
 <translation id="1306606229401759371">Endre innstillingene</translation>
-<translation id="1307398858972670978">Du kan finne passordene dine fra alle enheter på <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Beklager. Systemet kunne ikke lagre noe langvarig API-tilgangstoken for denne enheten.</translation>
 <translation id="1313405956111467313">Automatisk konfigurasjon av mellomtjener</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Søk</translation>
 <translation id="1386387014181100145">Heisann.</translation>
 <translation id="138784436342154190">Vil du gjenopprette standardverdien for oppstartssiden?</translation>
-<translation id="1389297115360905376">Dette kan bare legges til fra <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Åpne som vanlig fane</translation>
-<translation id="1391807639023934267">Raskere side lastet inn.</translation>
 <translation id="1393283411312835250">Sol og skyer</translation>
 <translation id="1395262318152388157">Fremdriftsbryter</translation>
 <translation id="1395730723686586365">Oppdatereringsprogrammet er startet</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Du er i ferd med å oppdatere en ustabil versjon av <ph name="PRODUCT_NAME" />, som inneholder funksjoner som er under utvikling. Kræsjing og uventede feil kan oppstå. Fortsett med forsiktighet.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (utvidelses-ID «<ph name="EXTENSION_ID" />») tillates ikke i denne typen økt.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Beklager. Forsøket på å opprette tilfeldig RSA-privatnøkkel mislyktes.</translation>
 <translation id="1420834118113404499">Medielisenser</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> for å tillate sammenkobling.</translation>
 <translation id="1426410128494586442">Ja</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opiér lydadressen</translation>
 <translation id="1465827627707997754">Pizzastykke</translation>
 <translation id="1467432559032391204">Venstre</translation>
-<translation id="1467999917853307373"><ph name="URL" /> ønsker å lagre data på enheten din permanent.</translation>
-<translation id="1470719357688513792">Nye innstillinger for informasjonskapsler trer i kraft etter siden er lastet inn på nytt.</translation>
 <translation id="1470811252759861213">For å få utvidelsene dine på alle datamaskinene du bruker, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">«<ph name="FILENAME" />» ble ikke lastet opp. Det er ikke nok ledig plass på Google Disk.</translation>
 <translation id="1475502736924165259">Du har en fil med sertifikater som ikke passer inn i noen av de andre kategoriene</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">Stor markør</translation>
 <translation id="1543284117603151572">Importert fra Edge</translation>
 <translation id="1545177026077493356">Automatisk kioskmodus</translation>
+<translation id="1545775234664667895">Temaet <ph name="THEME_NAME" /> er installert</translation>
 <translation id="1545786162090505744">Nettadresse, med %s for søk</translation>
 <translation id="1546280085599573572">Denne utvidelsen har endret hvilken side som vises når du klikker på Startside-knappen.</translation>
 <translation id="1547572086206517271">Siden må lastes inn på nytt</translation>
@@ -440,11 +431,9 @@
     <ph name="BEGIN_BOLD" />gjennomgå<ph name="END_BOLD" /> nettsteder den administrerte brukeren har besøkt og
     <ph name="BEGIN_BOLD" />administrere<ph name="END_BOLD" /> andre innstillinger.</translation>
 <translation id="1648943974594387137">Påloggingsdetaljene er utdatert.</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> linjer vises ikke&gt;</translation>
 <translation id="1650371550981945235">Vis inndataalternativer</translation>
 <translation id="1650709179466243265">Legg til www og .com og åpne adressen</translation>
 <translation id="1651008383952180276">Du må skrive inn den samme passordfrasen to ganger</translation>
-<translation id="1652972346408808053">Passordet er lagret. Du kan finne passordene dine fra alle enheter på <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Legg til skriveren i Google Cloud Print, slik at du kan skrive ut fra hvor som helst.}other{Legg til # skrivere i Google Cloud Print, slik at du kan skrive ut fra hvor som helst.}}</translation>
 <translation id="1657406563541664238">Bidra til å gjøre <ph name="PRODUCT_NAME" /> bedre ved å sende brukerstatistikk og programstopprapporter til Google automatisk</translation>
 <translation id="1658424621194652532">Denne siden bruker mikrofonen din.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Fortsett blokkering av informasjonskapsler</translation>
 <translation id="204622017488417136">Enheten blir tilbakestilt til den tidligere installerte versjonen av Chrome. Alle brukerkontoer og lokale data fjernes. Dette kan ikke gjøres om.</translation>
 <translation id="2048182445208425546">Få tilgang til nettverkstrafikken din</translation>
-<translation id="2049137146490122801">Tilgang til lokale filer på maskinen er deaktivert av administratoren.</translation>
 <translation id="204914487372604757">Opprett snarvei</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2053312383184521053">Data om hviletilstand</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ikke innlastet</translation>
 <translation id="2107494551712864447">Legg til et fingeravtrykk</translation>
-<translation id="2111843886872897694">Programmer må leveres fra verten de påvirker.</translation>
 <translation id="2112877397266219826">Slå på berøringskontrolleren din for å konfigurere meg</translation>
 <translation id="21133533946938348">Fest fanen</translation>
 <translation id="2113479184312716848">Åpne &amp;fil ...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Fortell oss hva som skjer</translation>
 <translation id="2229161054156947610">Mer enn én time igjen</translation>
 <translation id="222931766245975952">Filen er komprimert</translation>
-<translation id="222949136907494149"><ph name="URL" /> ønsker å bruke posisjonen til enheten din.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Kunne ikke opprette mappen «<ph name="FOLDER_NAME" />». <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klikk for å se dagens doodle</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Blokkér alltid bruk av mikrofonen</translation>
 <translation id="2367972762794486313">Vis apper</translation>
 <translation id="2371076942591664043">Åpne når ne&amp;dlastingen er ferdig</translation>
-<translation id="237336063998926520">Bruk IP-adressen din for å fastslå posisjonen</translation>
 <translation id="2377319039870049694">Bytt til listevisning</translation>
 <translation id="2377667304966270281">Harde feil</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> filer valgt</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> vil kopiere filer fra <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Nøkkel-ID for sertifiseringsinstans</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> er lagt til</translation>
-<translation id="246335896104539386">Importér bokmerker</translation>
 <translation id="2464089476039395325">HTTP-proxy-tjener</translation>
 <translation id="2468902267404883140">Kan ikke koble til telefonen. Sørg for at du bruker en kompatibel Android-telefon som er slått på og i nærheten. &lt;a&gt;Finn ut mer&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Ustøttede utvidelser slått av</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Avinstaller</translation>
 <translation id="2487067538648443797">Legg til nytt bokmerke</translation>
 <translation id="248861575772995840">Finner ikke telefonen. Sørg for at Bluetooth er aktivert på <ph name="DEVICE_TYPE" />-enheten. &lt;a&gt;Finn ut mer&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Et programtillegg (<ph name="PLUGIN_NAME" />) svarer ikke.</translation>
 <translation id="2489428929217601177">det siste døgnet</translation>
 <translation id="2489918096470125693">Legg til &amp;mappe</translation>
 <translation id="249113932447298600">Beklager, men enheten <ph name="DEVICE_LABEL" /> støttes foreløpig ikke.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Gratulerer! <ph name="NAME" />-datatjenesten din er aktivert og klar til bruk.</translation>
 <translation id="2566124945717127842">Kjør Powerwash for å tilbakestille <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten så den blir som ny.</translation>
 <translation id="2568774940984945469">Beholder for inforad</translation>
-<translation id="2570000010887652771">Lagrede data.</translation>
 <translation id="257088987046510401">Temaer</translation>
 <translation id="2572032849266859634">Skrivebeskyttet tilgang til <ph name="VOLUME_NAME" /> er innvilget.</translation>
 <translation id="2573269395582837871">Velg bilde og navn</translation>
 <translation id="2575247648642144396">Dette ikonet vises når utvidelsen kan brukes på den gjeldende siden. Aktivér utvidelsen ved å klikke på ikonet eller trykke på <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Finner ikke telefonen. Sørg for at <ph name="DEVICE_TYPE" />-enheten er koblet til et Wi-Fi- eller mobilnettverk. &lt;a&gt;Finn ut mer&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Det fins allerede en .crx-fil med dette navnet.</translation>
 <translation id="257779572837908839">Konfigurer som en Chromebox for møter</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Kan ikke ta ut volumet<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">Hvis du sletter et CA-sertifikat (sertifiseringsinstans), vil nettleseren ikke lenger stole på noen sertifikater som er utstedt av denne sertifiseringsinstansen.</translation>
 <translation id="2653659639078652383">Send</translation>
 <translation id="265390580714150011">Feltverdi</translation>
-<translation id="2654286334048437383">Eksportér bokmerker</translation>
 <translation id="2655386581175833247">Brukersertifikat:</translation>
 <translation id="2660779039299703961">Aktivitet</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">Legg til mediegalleri etter katalog</translation>
 <translation id="2908789530129661844">Zoom skjermen ut</translation>
 <translation id="2910318910161511225">Koble til et nettverk og prøv igjen</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ønsker å bruke mikrofonen din.</translation>
 <translation id="2913331724188855103">Tillat at nettsteder lagrer og leser data i informasjonskapsler (anbefales).</translation>
 <translation id="2916073183900451334">Trykk på Tab på en nettside for å utheve linker og skjemafelter</translation>
 <translation id="2916745397441987255">Søk i utvidelser</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">Lytter …</translation>
 <translation id="3141917231319778873">Den angitte forespørselen støttes ikke til: «<ph name="DEVICE_NAME" />».</translation>
 <translation id="3144126448740580210">FERDIG</translation>
-<translation id="3144135466825225871">Kunne ikke erstatte .crx-fil. Kontrollér om filen er i bruk.</translation>
 <translation id="3144647712221361880">Åpne linken som</translation>
 <translation id="3149510190863420837">Chrome-apper</translation>
 <translation id="3150927491400159470">Hard innlasting på nytt</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">Kjør alltid på alle nettsteder</translation>
 <translation id="3312424061798279731">Språk som er slått på</translation>
 <translation id="3312903956926554846">Installer på skrivebordet</translation>
-<translation id="3313473140726597081">Oppstartssiden er endret til <ph name="URL" />. Du kan slå av utvidelser som endrer oppstartssiden, ved å klikke på Gjenopprett.</translation>
 <translation id="3313590242757056087">For å angi hvilke nettsteder den administrerte brukeren kan bruke, kan du konfigurere begrensninger og innstillinger ved å gå til <ph name="MANAGEMENT_URL" />.
     Hvis du ikke endrer standardinnstillingene, kan <ph name="USER_DISPLAY_NAME" />
     surfe på hele nettet.</translation>
@@ -1536,7 +1513,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Appinformasjon</translation>
 <translation id="3335947283844343239">Åpne lukkede faner igjen</translation>
-<translation id="3337069537196930048">Programtillegget <ph name="PLUGIN_NAME" /> ble blokkert fordi det er utdatert.</translation>
 <translation id="3340978935015468852">innstillinger</translation>
 <translation id="3341703758641437857">Tillat tilgang til filnettadresser</translation>
 <translation id="3342361181740736773">«<ph name="TRIGGERING_EXTENSION_NAME" />» vil fjerne denne utvidelsen.</translation>
@@ -1571,7 +1547,6 @@
 <translation id="3386219708421216619">Bokmerket er lagt til</translation>
 <translation id="3389312115541230716">Høyreklikk på <ph name="SMALL_PRODUCT_LOGO" />-ikonet på oppgavelinjen</translation>
 <translation id="3391716558283801616">Fane 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> ønsker å bruke kameraet og mikrofonen din.</translation>
 <translation id="3396331542604645348">Den valgte skriveren er ikke tilgjengelig, eller har ikke blitt installert på riktig måte. Kontrollér skriveren din, eller prøv å velge en annen skriver.</translation>
 <translation id="3399432415385675819">Varsler slås av</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1683,10 +1658,8 @@
 <translation id="3550915441744863158">Chrome oppdateres automatisk slik at du alltid har den nyeste versjonen</translation>
 <translation id="3551320343578183772">Lukk fanen</translation>
 <translation id="3552780134252864554">Fjernes ved avslutning</translation>
-<translation id="355298399003313926"><ph name="URL" /> vil svare på tilgjengelighetshendelser.</translation>
 <translation id="3555812735919707620">Fjern utvidelsen</translation>
 <translation id="3556000484321257665">Søkemotoren er endret til <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Inndataverdien for privatnøkkelen må være en gyldig bane.</translation>
 <translation id="3563432852173030730">Kiosk-appen kunne ikke lastes ned.</translation>
 <translation id="3564334271939054422">Det kan hende at Wi-Fi-nettverket du bruker (<ph name="NETWORK_ID" />), krever at du besøker en påloggingsside.</translation>
 <translation id="3564708465992574908">Zoomnivåer</translation>
@@ -1708,7 +1681,6 @@
 <translation id="3593965109698325041">Begrensninger for sertifikatnavn</translation>
 <translation id="3596235046596950091">Slå på skytjenester</translation>
 <translation id="3599863153486145794">Tømmer loggen på alle påloggede enheter. Det kan hende Google-kontoen din har andre typer nettlesingslogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Administratoren din har deaktivert tilgang til lokale filer på enheten din.</translation>
 <translation id="3600792891314830896">Kutt lyden for nettsteder som spiller av lyd</translation>
 <translation id="3603177256297531067">Siden kunne ikke oversettes</translation>
 <translation id="3603533104205588786">Du kan klikke på stjernen for å sette en side som bokmerke</translation>
@@ -1733,7 +1705,6 @@
 <translation id="3625258641415618104">Skjermdumper er deaktivert</translation>
 <translation id="3625870480639975468">Tilbakestill zoom</translation>
 <translation id="3626281679859535460">Lysstyrke</translation>
-<translation id="3627052133907344175">Utvidelsen krever «<ph name="IMPORT_NAME" />» med «<ph name="IMPORT_VERSION" />» som minimumsversjon, men bare versjon «<ph name="INSTALLED_VERSION" />» er installert for øyeblikket.</translation>
 <translation id="3627320433825461852">Mindre enn ett minutt igjen</translation>
 <translation id="3627588569887975815">Åpne linken i inko&amp;gnitovindu</translation>
 <translation id="3627671146180677314">Tid for fornying av Netscape-sertifikat</translation>
@@ -1763,7 +1734,6 @@
 <translation id="3668570675727296296">Språkinnstillinger</translation>
 <translation id="3668823961463113931">Behandlere</translation>
 <translation id="3670229581627177274">Slå på Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> ønsker permanent å lagre data lokalt på datamaskinen din.</translation>
 <translation id="3672681487849735243">En fabrikkfeil har blitt oppdaget</translation>
 <translation id="367645871420407123">la stå tomt hvis du ønsker å sette rot-passordet til standard testbildeverdi</translation>
 <translation id="3678156199662914018">Utvidelse: <ph name="EXTENSION_NAME" /></translation>
@@ -1841,11 +1811,9 @@
 <translation id="3786301125658655746">Du er ikke tilkoblet Internett</translation>
 <translation id="3788401245189148511">Den får følgende tilgang:</translation>
 <translation id="3789841737615482174">Installer</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> fungerer bare på skrivebordet.</translation>
 <translation id="379082410132524484">Kortet ditt er utløpt</translation>
 <translation id="3792890930871100565">Koble fra skrivere</translation>
 <translation id="379422718204375917">Bruk Smart Lock til å logge på kontoen din</translation>
-<translation id="3794595850995182458">Lukk siden</translation>
 <translation id="3796648294839530037">Favorittnettverk:</translation>
 <translation id="3797900183766075808">&amp;Søk etter «<ph name="SEARCH_TERMS" />» på <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Lar deg slå på og av berøringsklikk</translation>
@@ -1974,7 +1942,6 @@
 <translation id="3979748722126423326">Slå på <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Ugyldig lagringstype angitt.</translation>
 <translation id="3983586614702900908">enheter fra en ukjent leverandør</translation>
-<translation id="3984413272403535372">Det oppstod en feil under signeringen av utvidelsen.</translation>
 <translation id="3987938432087324095">Det fikk jeg ikke med meg.</translation>
 <translation id="3988996860813292272">Velg tidssone</translation>
 <translation id="3989635538409502728">Logg av</translation>
@@ -2030,7 +1997,6 @@
 <translation id="4087470595660267445">Installer apper og spill fra Google Play på Chromebooken din. &lt;a target="_blank" href="<ph name="URL" />"&gt;Finn ut mer&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Godta for gruppen</translation>
 <translation id="4090103403438682346">Aktiver Bekreftet tilgang</translation>
-<translation id="4090404313667273475">Du må ha installert <ph name="PLUGIN_NAME" /> for å se noen av elementene på denne nettsiden.</translation>
 <translation id="4090535558450035482">(Denne utvidelsen er administrert og kan ikke fjernes.)</translation>
 <translation id="4091434297613116013">ark</translation>
 <translation id="4093955363990068916">Lokal fil:</translation>
@@ -2364,7 +2330,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kan nå synkronisere passordene dine.</translation>
 <translation id="4715553623069266137">svært kort (0,8 s)</translation>
 <translation id="4716483597559580346">Powerwash for økt sikkerhet</translation>
-<translation id="471800408830181311">Kan ikke mate ut privatnøkkelen.</translation>
 <translation id="4720113199587244118">Legg til enheter</translation>
 <translation id="4720185134442950733">Mobildatanettverk</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> deler skjermen din.</translation>
@@ -2501,7 +2466,6 @@
 <translation id="4917385247580444890">Sterk</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ønsker å kommunisere med «<ph name="EXTENSION_NAME" />»-utvidelsen</translation>
 <translation id="4918086044614829423">Godta</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ønsker å bruke kameraet ditt.</translation>
 <translation id="4920887663447894854">Følgende nettsteder har blitt nektet tillatelse til å spore posisjonen din på siden:</translation>
 <translation id="492299503953721473">Fjern Android-appene</translation>
 <translation id="4923279099980110923">Ja, jeg ønsker å hjelpe</translation>
@@ -2542,7 +2506,6 @@
 <translation id="4980805016576257426">Denne utvidelsen inneholder skadelig programvare.</translation>
 <translation id="498294082491145744">endre innstillingene som kontrollerer nettsteders tilgang til elementer som informasjonskapsler, JavaScript, programtillegg, geografisk posisjon, mikrofon, kamera osv.</translation>
 <translation id="4988526792673242964">Sider</translation>
-<translation id="4988792151665380515">Kan ikke eksportere den offentlige nøkkelen.</translation>
 <translation id="49896407730300355">Rotér m&amp;ot klokken</translation>
 <translation id="4989966318180235467">Inspeksjons- og bakgrunnsside</translation>
 <translation id="4990343175649730969">Last ned opprydningsverktøyet for Chrome</translation>
@@ -2570,7 +2533,6 @@
 <translation id="5026874946691314267">Ikke vis dette igjen.</translation>
 <translation id="5027550639139316293">E-postsertifikat</translation>
 <translation id="5027562294707732951">Legg til utvidelsen</translation>
-<translation id="5028012205542821824">Installasjon er ikke aktivert.</translation>
 <translation id="5029568752722684782">Slett kopi</translation>
 <translation id="5030338702439866405">Utstedt av</translation>
 <translation id="5036662165765606524">Ikke tillat at nettsteder laster ned flere filer automatisk</translation>
@@ -2606,7 +2568,6 @@
 <translation id="509429900233858213">Det oppsto en feil.</translation>
 <translation id="5094721898978802975">kommunisere med samarbeidende integrerte apper</translation>
 <translation id="5097002363526479830">Kunne ikke koble til nettverket «<ph name="NAME" />»: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Finner ikke den absolutte banen til katalogen som skal pakkes.</translation>
 <translation id="5099354524039520280">opp</translation>
 <translation id="5100114659116077956">Chromebox må oppdateres for å gi deg tilgang til de nyeste funksjonene.</translation>
 <translation id="5101042277149003567">Åpne alle bokmerker</translation>
@@ -2655,7 +2616,6 @@
 <translation id="5170568018924773124">Vis i mappen</translation>
 <translation id="5171045022955879922">Søk, eller skriv inn en nettadresse</translation>
 <translation id="5171343362375269016">Virtuelt minne</translation>
-<translation id="5175870427301879686"><ph name="URL" /> ønsker permanent å lagre data lokalt på din datamaskin.</translation>
 <translation id="5177479852722101802">Fortsett blokkering av kamera- og mikrofontilgang</translation>
 <translation id="5177526793333269655">Miniatyrbildevisning</translation>
 <translation id="5177549709747445269">Du bruker mobildata</translation>
@@ -2734,7 +2694,6 @@
 <translation id="529175790091471945">Formatér denne enheten</translation>
 <translation id="5293170712604732402">Tilbakestill innstillingene til standardverdiene</translation>
 <translation id="5298219193514155779">Tema opprettet av</translation>
-<translation id="5298363578196989456">Kan ikke importere utvidelsen «<ph name="IMPORT_NAME" />» fordi den ikke er en delt modul.</translation>
 <translation id="5299109548848736476">Ingen sporing</translation>
 <translation id="5299682071747318445">Alle dataene er kryptert med passordfrasen din</translation>
 <translation id="5300589172476337783">Vis</translation>
@@ -2762,7 +2721,6 @@
 <translation id="5331425616433531170">«<ph name="CHROME_EXTENSION_NAME" />» vil koble til</translation>
 <translation id="5332624210073556029">Tidssone:</translation>
 <translation id="5334142896108694079">Skriptbuffer</translation>
-<translation id="533433379391851622">Den forventede versjonen var «<ph name="EXPECTED_VERSION" />», men den faktiske versjonen var «<ph name="NEW_ID" />».</translation>
 <translation id="5334844597069022743">Se kilden</translation>
 <translation id="5335458522276292100">Sikkerhetskopierer <ph name="FILE_COUNT" /> til <ph name="BEGIN_LINK" />Google Disk<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Installert av en tredjepart.</translation>
@@ -2800,7 +2758,6 @@
 <translation id="5390100381392048184">Tillat nettsteder å spille av lyd</translation>
 <translation id="5390284375844109566">Indeksert database</translation>
 <translation id="5390743329570580756">Send for</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> ber om tilgang til datamaskinen din.</translation>
 <translation id="5397794290049113714">Deg</translation>
 <translation id="5398572795982417028">Sidereferansen ligger utenfor det gyldige området. Grensen er <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Annonser er blokkert</translation>
@@ -2862,7 +2819,6 @@
 <translation id="5485754497697573575">Gjenopprett alle faner</translation>
 <translation id="5486261815000869482">Bekreft passordet</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> deler skjermen din med <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Inndataverdien for privatnøkkelen må eksistere.</translation>
 <translation id="5486561344817861625">Simuler omstart av nettleseren</translation>
 <translation id="5487521232677179737">Slett data</translation>
 <translation id="5488093641312826914">«<ph name="COPIED_ITEM_NAME" />» er kopiert</translation>
@@ -2945,7 +2901,6 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB mobildata blir brukt under nedlastingen av oppdateringen. Vil du fortsette?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Andre søkemotorer</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> ber om tilgang til enheten din.</translation>
 <translation id="5608580678041221894">Trykk på de følgende tastene for å justere eller flytte beskjæringsområdet</translation>
 <translation id="5609231933459083978">Appen ser ut til å være ugyldig.</translation>
 <translation id="5610038042047936818">Bytt til kameramodus</translation>
@@ -3188,7 +3143,6 @@
 <translation id="5990386583461751448">Oversatt</translation>
 <translation id="5991049340509704927">Forstørr</translation>
 <translation id="5993332328670040093">Databruken din blir ikke lenger målt.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> oppdateres muligens ikke automatisk.</translation>
 <translation id="600424552813877586">Ugyldig app.</translation>
 <translation id="6005695835120147974">Medieruter</translation>
 <translation id="6006484371116297560">Klassisk</translation>
@@ -3213,6 +3167,7 @@
 <translation id="604001903249547235">Skybasert sikkerhetskopiering</translation>
 <translation id="6040143037577758943">Lukk</translation>
 <translation id="6040852767465482106">Anonym identitet</translation>
+<translation id="6041155700700864984">Avslutt fullskjermmodus</translation>
 <translation id="604124094241169006">Automatisk</translation>
 <translation id="6042169520002885235">Velg en skriverprodusent og -modell</translation>
 <translation id="6042308850641462728">Mer</translation>
@@ -3229,7 +3184,6 @@
 <translation id="6056710589053485679">Normal innlasting på nytt</translation>
 <translation id="6059652578941944813">Sertifikathierarki</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> har kræsjet.</translation>
 <translation id="6064217302520318294">Skjermlås</translation>
 <translation id="6065289257230303064">Katalogattributter for sertifikatemne</translation>
 <translation id="6068338049763724728">Slå på ekstern registrering</translation>
@@ -3338,7 +3292,6 @@
 <translation id="6237816943013845465">Lar deg justere skjermoppløsningen</translation>
 <translation id="6238923052227198598">Hold det siste notatet på låseskjermen</translation>
 <translation id="6239558157302047471">Last inn &amp;rammen på nytt</translation>
-<translation id="624022915548992686">Lukk siden</translation>
 <translation id="6241530762627360640">bruke informasjon om Bluetooth-enheter tilkoblet systemet ditt og oppdage Bluetooth-enheter i nærheten.</translation>
 <translation id="6243774244933267674">Tjeneren er ikke tilgjengelig</translation>
 <translation id="6246413617632217567">Den administrerte brukeren kunne ikke importeres. Sjekk hvor mye plass du har på harddisken, og hvilke tillatelser som er aktive, og prøv på nytt.</translation>
@@ -3387,13 +3340,11 @@
 <translation id="6312403991423642364">Ukjent nettverksfeil</translation>
 <translation id="6313641880021325787">AVSLUTT VR</translation>
 <translation id="6314819609899340042">Nå har du slått på feilsøkingsfunksjoner på denne <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten.</translation>
-<translation id="6315343732431721770">Oppstartssidene er endret til å inkludere <ph name="URL" />. Du kan slå av utvidelser som endrer oppstartssiden, ved å klikke på Gjenopprett.</translation>
 <translation id="6315493146179903667">Legg alle i forgrunnen</translation>
 <translation id="6316806695097060329">Denne <ph name="SHORT_PRODUCT_NAME" />-enheten er utviklet for å gi deg den beste nettopplevelsen.</translation>
 <translation id="6317318380444133405">Støttes ikke lenger.</translation>
 <translation id="6317369057005134371">Venter på appvinduet …</translation>
 <translation id="6318407754858604988">Nedlastingen er startet</translation>
-<translation id="6322279351188361895">Kan ikke lese privatnøkkelen.</translation>
 <translation id="6325191661371220117">Deaktiver automatisk oppstart</translation>
 <translation id="6326175484149238433">Fjern fra Chrome</translation>
 <translation id="6326855256003666642">Keepalive-teller</translation>
@@ -3402,7 +3353,6 @@
 <translation id="6333049849394141510">Velg hva som skal synkroniseres</translation>
 <translation id="6333064448949140209">Filen sendes til Google for feilsøking</translation>
 <translation id="6333834492048057036">Fokusér på adressefeltet for søk</translation>
-<translation id="6336907568130557310">Passordene dine blir synlige for alle som kan se den eksporterte filen. Ikke del filen med noen, og slett den etter du har importert den.</translation>
 <translation id="6339668969738228384">Opprett en ny profil for <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Kunne ikke koble til tjeneren. Kontrollér nettverkstilkoblingen din, og prøv igjen. Start Chromebooken på nytt hvis problemet vedvarer.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3431,7 +3381,6 @@
 <translation id="6385543213911723544">Nettsteder kan lagre og lese data fra informasjonskapsler</translation>
 <translation id="6388771388956873507">Finn frem til fingeravtrykkssensoren på enheten din, og legg en finger på den</translation>
 <translation id="6390799748543157332">Sider du åpner i dette vinduet, vises ikke i nettloggen og de etterlater ingen andre spor (f.eks. informasjonskapsler) på datamaskinen etter at du har lukket alle åpne gjestevinduer. Filer du laster ned, blir imidlertid lagret.</translation>
-<translation id="6391538222494443604">Inndatakatalogen må eksistere.</translation>
 <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />systeminformasjon<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />-målinger<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stopp å snakke</translation>
 <translation id="6397592254427394018">Åpne alle bokmerker i &amp;inkognitovindu</translation>
@@ -3488,7 +3437,6 @@
 <translation id="6458308652667395253">Administrer blokkering av JavaScript</translation>
 <translation id="6459488832681039634">Bruk markering for Finn</translation>
 <translation id="6460601847208524483">Finn neste</translation>
-<translation id="6462080265650314920">Programmer må leveres med innholdstypen «<ph name="CONTENT_TYPE" />».</translation>
 <translation id="6462082050341971451">Er du fortsatt der?</translation>
 <translation id="6463795194797719782">R&amp;ediger</translation>
 <translation id="6466988389784393586">&amp;Åpne alle bokmerker</translation>
@@ -3618,7 +3566,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Vil du at Google skal oversette denne siden fra <ph name="SOURCE_LANGUAGE" /> til <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">En pekeenhet er koblet til</translation>
-<translation id="6677037229676347494">Den forventede ID-en var «<ph name="EXPECTED_ID" />», men den faktiske ID-en var «<ph name="NEW_ID" />».</translation>
 <translation id="6678717876183468697">Nettadresse for søk</translation>
 <translation id="6680028776254050810">Bytt bruker</translation>
 <translation id="6680442031740878064">Tilgjengelig: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3758,8 +3705,6 @@
 <translation id="6903534926908201625">Du kan når som helst tilpasse hvilken informasjon Google samler inn, i <ph name="BEGIN_LINK" />innstillingene<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Opphev filtilgangen</translation>
 <translation id="6904655473976120856">Trykk på appknappen for å avslutte</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> vil dele skjermen din.</translation>
-<translation id="6909461304779452601">Programmer, utvidelser og brukerskript kan ikke legges til fra dette nettstedet.</translation>
 <translation id="6910211073230771657">Slettet</translation>
 <translation id="691024665142758461">Last ned flere filer.</translation>
 <translation id="6911324888870229398">Nettverkstilkoblingen gikk tapt. Kontrollér tilkoblingen din, eller prøv et annet Wi-Fi-nettverk.</translation>
@@ -4090,7 +4035,6 @@
 <translation id="747114903913869239">Feil: Kan ikke avkode etternavnet</translation>
 <translation id="7473891865547856676">Nei takk</translation>
 <translation id="747459581954555080">Gjenopprett alt</translation>
-<translation id="7475034671245341386">Det oppsto en feil med <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">Nettadresse for mistet passord – Netscape</translation>
 <translation id="7476454130948140105">Det er for lite batteri igjen til å starte oppdateringen (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Hvis du har glemt passordet ditt, stopper og tilbakestiller du synkroniseringen via <ph name="BEGIN_LINK" />Google Oversikt<ph name="END_LINK" />.</translation>
@@ -4127,7 +4071,6 @@
 <translation id="7507930499305566459">Sertifikat for statussvar</translation>
 <translation id="7508545000531937079">Lysbildefremvisning</translation>
 <translation id="7513029293694390567">Bruk lagret legitimasjon til å logge på nettsteder automatisk. Hvis dette er slått av, blir du bedt om bekreftelse hver gang du logger på et nettsted.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> ber om å identifisere enheten din unikt for å spille av beskyttet innhold.</translation>
 <translation id="7517569744831774757">Tilbakestill innstillingene til originalinnstillingene.</translation>
 <translation id="7517786267097410259">Lag et passord –</translation>
 <translation id="7518150891539970662">WebRTC-logger (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4155,7 +4098,6 @@
 <translation id="7563991800558061108">For å rette opp i denne feilen må du logge på Google-kontoen din fra påloggingssiden. Deretter kan du logge av Google-kontoen, og prøve å opprette en administrert bruker på nytt.</translation>
 <translation id="756445078718366910">Åpne nettleservindu</translation>
 <translation id="7564847347806291057">Avslutt prosessen</translation>
-<translation id="7565291891798266313">Søkemotoren er endret til <ph name="URL" />. Du kan slå av utvidelser som endrer søkemotoren, ved å klikke på Gjenopprett.</translation>
 <translation id="7566118625369982896">Administrer Play-applinker</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome-dataene er slettet</translation>
@@ -4164,7 +4106,6 @@
 <translation id="7573172247376861652">Batterilading</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">I rekkefølge</translation>
-<translation id="7577815336900970562">Bruk Wi-Fi eller mobilnettverk til å fastslå posisjonen</translation>
 <translation id="7579149537961810247">Kutt lyden for nettsteder</translation>
 <translation id="7580671184200851182">Spill den samme lyden på alle høyttalere (monolyd)</translation>
 <translation id="7581462281756524039">Et opprydningsverktøy</translation>
@@ -4271,6 +4212,7 @@
 <translation id="7773726648746946405">Øktlagring</translation>
 <translation id="7781335840981796660">Alle brukerkontoer og lokale data fjernes.</translation>
 <translation id="7782102568078991263">Google har ikke flere forslag</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> kunne ikke lastes inn</translation>
 <translation id="7784067724422331729">Sikkerhetsinnstillingene på datamaskinen din blokkerte denne filen.</translation>
 <translation id="7786207843293321886">Avslutt gjesteøkten</translation>
 <translation id="7786889348652477777">&amp;Last inn appen på nytt</translation>
@@ -4433,7 +4375,6 @@
 <translation id="8001504501378762252">Et nettsted kan ha stjålet passordet ditt</translation>
 <translation id="8004582292198964060">Nettleser</translation>
 <translation id="8008356846765065031">Internett er frakoblet. Sjekk Internett-forbindelsen din .</translation>
-<translation id="8008765610824028412">Kunne ikke laste inn <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Send automatisk noe systeminformasjon og sideinnhold til Google for å bidra til å oppdage farlige apper og nettsteder.</translation>
 <translation id="8012382203418782830">Denne siden er oversatt.</translation>
 <translation id="8014154204619229810">Oppdateringsprogrammet kjører. Last inn siden på nytt om en liten stund for å sjekke igjen.</translation>
@@ -4550,7 +4491,6 @@
 <translation id="8191230140820435481">Administrering av programmer, utvidelser og temaer</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Lagringsstørrelse</translation>
-<translation id="8195739004487400241">Startsiden er endret til <ph name="URL" />. Du kan slå av utvidelser som endrer startsiden, ved å klikke på Gjenopprett.</translation>
 <translation id="8199300056570174101">Egenskaper for nettverk (tjeneste) og enhet</translation>
 <translation id="8200772114523450471">Fortsett</translation>
 <translation id="8202160505685531999">Legg inn passordet på nytt for å oppdatere <ph name="DEVICE_TYPE" />-profilen din.</translation>
@@ -4594,7 +4534,6 @@
 <translation id="8261378640211443080">Denne utvidelsen er ikke oppført i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, og kan ha blitt lagt uten at du har vært klar over det.</translation>
 <translation id="8261387128019234107">Legg til konto for <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Slett</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> er ikke implementert i denne delversjonen.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har deaktivert markøren din.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> utløste full skjerm.</translation>
 <translation id="8270242299912238708">PDF-dokumenter</translation>
@@ -4695,6 +4634,7 @@
 <translation id="8454288007744638700">Eller velg et nytt nettverk:</translation>
 <translation id="845627346958584683">Utløpstid</translation>
 <translation id="8456681095658380701">Ugyldig navn</translation>
+<translation id="8457451314607652708">Importér bokmerker</translation>
 <translation id="8460336040822756677">Hvis du slår av Smart Lock for <ph name="DEVICE_TYPE" />, kan du ikke låse opp Chrome-enhetene dine ved hjelp av telefonen. Du må skrive inn passordet.</translation>
 <translation id="8461329675984532579">Navn på leverandøren for hjemmeenheten</translation>
 <translation id="84613761564611563">UI for nettverkskonfigurasjon er forespurt. Vent litt …</translation>
@@ -4726,7 +4666,6 @@
 <translation id="850875081535031620">Fant ingen skadelig programvare</translation>
 <translation id="8512476990829870887">Avslutt prosessen</translation>
 <translation id="851263357009351303">Tillat alltid <ph name="HOST" /> å vise bilder</translation>
-<translation id="8513191386157529469">«<ph name="CLIENT_NAME" />» feilsøker denne nettleseren.</translation>
 <translation id="8521475323816527629">Finn appene dine raskt</translation>
 <translation id="8523493869875972733">Behold endringene</translation>
 <translation id="8523849605371521713">Lagt til som følge av retningslinjer</translation>
@@ -4782,7 +4721,6 @@
 <translation id="8620765578342452535">Konfigurering av nettverkstilkoblinger</translation>
 <translation id="8620790565535071193">Skanningen mislyktes</translation>
 <translation id="8622877356447980900">Vil du oversette denne siden?</translation>
-<translation id="8623004009673949077">Apper med manifest-attributtet «kiosk_only» må være installert i Chrome OS-kioskmodus.</translation>
 <translation id="8624205858755890468">Gjør at assistenten kan vise deg relatert informasjon og relaterte apper og handlinger.</translation>
 <translation id="862542460444371744">&amp;Utvidelser</translation>
 <translation id="8627151598708688654">Velg kilde</translation>
@@ -4903,7 +4841,7 @@
 <translation id="8784626084144195648">Gjennomsnitt av grupperte data</translation>
 <translation id="8785622406424941542">Pekepenn</translation>
 <translation id="8787254343425541995">Gi tillatelse til mellomtjenere for delte nettverk</translation>
-<translation id="8791260615011736453">Elementer som ikke er oppført her, kan også fjernes, hvis det er nødvendig. Finn ut mer om &lt;a href="<ph name="URL" />"&gt;beskyttelse mot uønsket programvare&lt;/a&gt; i Chromes åpne infodokument («white paper») om personvern.</translation>
+<translation id="8791260615011736453">Elementer som ikke er oppført her, kan også fjernes, hvis det er nødvendig. Finn ut mer om &lt;a href="<ph name="URL" />"&gt;beskyttelse mot uønsket programvare&lt;/a&gt; i Teknisk dokument om personvern i Google Chrome.</translation>
 <translation id="8791534160414513928">Send en «Ingen sporing»-forespørsel med nettrafikken din</translation>
 <translation id="8792609692701651064">Det aktive vinduet er flyttet til venstre skjerm</translation>
 <translation id="8794025342371547160">Begrenset IP</translation>
@@ -4931,7 +4869,6 @@
 <translation id="882204272221080310">Oppdater fastvaren for å øke sikkerheten.</translation>
 <translation id="8823514049557262177">Kopiér linkte&amp;kst</translation>
 <translation id="8824701697284169214">Legg til si&amp;de</translation>
-<translation id="8827850355924932817">Bruk Wi-Fi-nettverk til å fastslå posisjonen</translation>
 <translation id="8828933418460119530">DNS-navn</translation>
 <translation id="8830796635868321089">Oppdateringssjekken mislyktes med de gjeldende mellomtjenerinnstillingene. Du må endre <ph name="PROXY_SETTINGS_LINK_START" />mellomtjenerinnstillingene<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Nettverkskonfigurasjonen kontrolleres av <ph name="USER_EMAIL" />.</translation>
@@ -4963,9 +4900,7 @@
 <translation id="8879284080359814990">Vi&amp;s som fane</translation>
 <translation id="8884961208881553398">Legg til nye tjenester</translation>
 <translation id="8885197664446363138">Smart Lock er utilgjengelig</translation>
-<translation id="8885905466771744233">Det finnes allerede en privatnøkkel for det angitte etternavnet. Bruk denne nøkkelen eller slett den.</translation>
 <translation id="8888432776533519951">Farge:</translation>
-<translation id="8892992092192084762">Temaet «<ph name="THEME_NAME" />» er installert.</translation>
 <translation id="8893928184421379330">Beklager, men enheten <ph name="DEVICE_LABEL" /> ble ikke gjenkjent.</translation>
 <translation id="8895454554629927345">Liste over bokmerker</translation>
 <translation id="88986195241502842">Ned én side</translation>
@@ -4980,7 +4915,6 @@
 <translation id="8908902564709148335">Advarsel: Du har aktivert --scripts-require-action-flagget på denne datamaskinen. Dette begrenser funksjonaliteten til denne utvidelsen. Andre enheter støtter kanskje ikke dette flagget, eventuelt er det ikke aktivert på dem. På disse enhetene kan denne utvidelsen også:</translation>
 <translation id="8910146161325739742">Del skjermen</translation>
 <translation id="8910222113987937043">Endringer i bokmerkene, loggen, passordene og andre innstillinger du har, blir ikke lenger synkronisert med Google-kontoen din. Data som allerede er 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="8911079125461595075">Google har rapportert <ph name="EXTENSION_NAME" /> som skadelig og installasjonen har blitt avbrutt.</translation>
 <translation id="8912793549644936705">Strekk ut</translation>
 <translation id="8915370057835397490">Laster inn forslag …</translation>
 <translation id="8916476537757519021">Inkognito-underramme: <ph name="SUBFRAME_SITE" /></translation>
@@ -5086,7 +5020,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-mus er tilkoblet</translation>
 <translation id="9076523132036239772">Beklager, men angitt e-postadresse eller passord kunne ikke bekreftes. Prøv å koble deg til et nettverk først.</translation>
-<translation id="907841381057066561">Oppretting av midlertidig komprimert fil under pakkingen mislyktes.</translation>
 <translation id="9084064520949870008">Åpne som vindu</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> er blokkert av bedriftens retningslinjer</translation>
 <translation id="9088917181875854783">Bekreft at dette passordet vises på «<ph name="DEVICE_NAME" />»:</translation>
@@ -5177,11 +5110,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Angi en passordfrase</translation>
 <translation id="939736085109172342">Ny mappe</translation>
-<translation id="941543339607623937">Ugyldig privatnøkkel </translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> deler lyd og en fane fra Chrome.</translation>
 <translation id="942954117721265519">Det fins ingen bilder i denne katalogen.</translation>
 <translation id="945522503751344254">Gi tilbakemelding</translation>
-<translation id="951981865514037445"><ph name="URL" /> ønsker å bruke posisjonen til enheten din.</translation>
 <translation id="952992212772159698">Ikke aktivert</translation>
 <translation id="9580706199804957">Kunne ikke koble til Google-tjenester</translation>
 <translation id="958515377357646513">Trykk for å gå fremover.</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index 464154c..9bc88ed 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Tylko szyfrowanie</translation>
 <translation id="1039337018183941703">Nieprawidłowy lub uszkodzony plik</translation>
 <translation id="1042174272890264476">Twój komputer zawiera również wbudowaną bibliotekę RLZ <ph name="SHORT_PRODUCT_NAME" />. Przypisuje ona powtarzalny, nieumożliwiający identyfikacji użytkownika tag służący do monitorowania wyszukiwań i używania <ph name="SHORT_PRODUCT_NAME" /> w ramach określonej kampanii promocyjnej. Etykiety te czasami pojawiają się w zapytaniach wyszukiwarki Google w <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Witryna <ph name="URL" /> chce na stałe przechowywać dużą ilość danych na Twoim urządzeniu.</translation>
 <translation id="1046059554679513793">Niestety, ta nazwa jest już używana.</translation>
 <translation id="1047431265488717055">Kopiuj te&amp;kst linku</translation>
 <translation id="1047726139967079566">Dodaj stronę do zakładek...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Przywrócić domyślną wyszukiwarkę?</translation>
 <translation id="1177863135347784049">Niestandardowe</translation>
 <translation id="1178581264944972037">Wstrzymaj</translation>
-<translation id="1179803038870941185"><ph name="URL" /> chce mieć pełny dostęp do sterowania urządzeniami MIDI.</translation>
 <translation id="1181037720776840403">Usuń</translation>
 <translation id="1183237619868651138">Nie można zainstalować pliku <ph name="EXTERNAL_CRX_FILE" /> w lokalnej pamięci podręcznej.</translation>
 <translation id="1185924365081634987">Aby spróbować usunąć ten błąd sieci, możesz też użyć trybu <ph name="GUEST_SIGNIN_LINK_START" />przeglądania jako gość<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Dostęp do pliku zapisanego na Twoim komputerze}few{Dostęp do # plików zapisanych na Twoim komputerze}many{Dostęp do # plików zapisanych na Twoim komputerze}other{Dostęp do # pliku zapisanego na Twoim komputerze}}</translation>
 <translation id="1195076408729068893">Wpisz hasło, by aktywować Smart Lock. Następnym razem urządzenie <ph name="DEVICE_TYPE" /> będzie można odblokować przy użyciu telefonu.</translation>
 <translation id="1195447618553298278">Nieznany błąd.</translation>
-<translation id="1196338895211115272">Nie można wyeksportować klucza prywatnego.</translation>
 <translation id="119738088725604856">Okno zrzutu ekranu</translation>
 <translation id="1197979282329025000">Podczas pobierania informacji o możliwościach drukarki <ph name="PRINTER_NAME" /> wystąpił błąd. Nie można zarejestrować tej drukarki w usłudze <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Zaczynamy</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administrator zaleca konkretną wartość dla tego ustawienia.</translation>
 <translation id="1225177025209879837">Przetwarzam żądanie...</translation>
 <translation id="1225211345201532184">5 element na półce</translation>
-<translation id="1225404570112441414">Dodaj tę witrynę do półki, by używać jej w dowolnym czasie.</translation>
 <translation id="1227507814927581609">Podczas łączenia się z urządzeniem „<ph name="DEVICE_NAME" />” nie powiodło się uwierzytelnianie.</translation>
 <translation id="1230807973377071856">menu systemowe</translation>
 <translation id="1232569758102978740">Bez tytułu</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Plik HTML z zakładkami</translation>
 <translation id="1303671224831497365">Nie znaleziono urządzeń Bluetooth</translation>
 <translation id="1306606229401759371">Zmień ustawienia</translation>
-<translation id="1307398858972670978">Odczytuj swoje hasła na dowolnym urządzeniu na <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ups. System nie może zapisać długoterminowego tokena dostępu API dla tego urządzenia.</translation>
 <translation id="1313405956111467313">Automatyczna konfiguracja serwera proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Szukaj</translation>
 <translation id="1386387014181100145">Cześć.</translation>
 <translation id="138784436342154190">Przywrócić domyślną stronę początkową?</translation>
-<translation id="1389297115360905376">Możesz to pobrać tylko z <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Otwórz jako zwykłą kartę</translation>
-<translation id="1391807639023934267">Wczytano szybszą stronę.</translation>
 <translation id="1393283411312835250">Słońce i chmury</translation>
 <translation id="1395262318152388157">Suwak wyszukiwania</translation>
 <translation id="1395730723686586365">Aktualizator został uruchomiony</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Aktualizujesz <ph name="PRODUCT_NAME" /> do niestabilnej wersji zawierającej funkcje, nad którymi wciąż pracujemy. Będą występować awarie i nieoczekiwane błędy. Zachowaj ostrożność.</translation>
 <translation id="1415990189994829608">Rozszerzenie <ph name="EXTENSION_NAME" /> (identyfikator rozszerzenia „<ph name="EXTENSION_ID" />”) jest niedozwolone w tym typie sesji.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Ojej! Nie można wygenerować losowego klucza prywatnego RSA.</translation>
 <translation id="1420834118113404499">Licencje multimediów</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, by umożliwić sparowanie</translation>
 <translation id="1426410128494586442">Tak</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opiuj adres audio</translation>
 <translation id="1465827627707997754">Kawałek pizzy</translation>
 <translation id="1467432559032391204">W lewo</translation>
-<translation id="1467999917853307373">Witryna <ph name="URL" /> chce na stałe przechowywać dane na Twoim urządzeniu.</translation>
-<translation id="1470719357688513792">Nowe ustawienia plików cookie zostaną zastosowane po ponownym załadowaniu strony.</translation>
 <translation id="1470811252759861213">Aby korzystać z rozszerzeń na wszystkich swoich komputerach, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Plik „<ph name="FILENAME" />” nie został przesłany. Za mało wolnego miejsca na Dysku Google.</translation>
 <translation id="1475502736924165259">Masz zapisane certyfikaty, które nie pasują do żadnej z pozostałych kategorii</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Duży kursor myszy</translation>
 <translation id="1543284117603151572">Zaimportowane z Edge</translation>
 <translation id="1545177026077493356">Automatyczny tryb kiosku</translation>
+<translation id="1545775234664667895">Zainstalowano motyw „<ph name="THEME_NAME" />”</translation>
 <translation id="1545786162090505744">URL z parametrem %s (zapytanie)</translation>
 <translation id="1546280085599573572">To rozszerzenie ustawiło inną stronę wyświetlaną po kliknięciu przycisku strony startowej.</translation>
 <translation id="1547572086206517271">Wymagane jest odświeżenie</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />sprawdzać<ph name="END_BOLD" />, na jakie strony wszedł użytkownik nadzorowany, oraz
     <ph name="BEGIN_BOLD" />zarządzać<ph name="END_BOLD" /> innymi ustawieniami.</translation>
 <translation id="1648943974594387137">Dane logowania są nieaktualne</translation>
-<translation id="1649641629389702691">&lt;Niewyświetlane linie kodu: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Pokaż opcje wprowadzania tekstu</translation>
 <translation id="1650709179466243265">Dodaj www. i .com, po czym otwórz adres</translation>
 <translation id="1651008383952180276">Musisz dwukrotnie wpisać to samo hasło</translation>
-<translation id="1652972346408808053">Hasło zostało zapisane. Dostęp do swoich haseł z dowolnego urządzenia masz na <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Dodaj drukarkę do Google Cloud Print, by móc drukować z dowolnego miejsca.}few{Dodaj # drukarki do Google Cloud Print, by móc drukować z dowolnego miejsca.}many{Dodaj # drukarek do Google Cloud Print, by móc drukować z dowolnego miejsca.}other{Dodaj # drukarki do Google Cloud Print, by móc drukować z dowolnego miejsca.}}</translation>
 <translation id="1657406563541664238">Pomóż ulepszyć <ph name="PRODUCT_NAME" />, przesyłając do Google statystyki użytkowania i raporty o awariach</translation>
 <translation id="1658424621194652532">Ta strona ma dostęp do mikrofonu.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Nadal blokuj pliki cookie</translation>
 <translation id="204622017488417136">Na Twoim urządzeniu zostanie przywrócona poprzednia wersja Chrome. Wszystkie zapisane lokalnie konta użytkowników i dane zostaną usunięte. Tej czynności nie można cofnąć.</translation>
 <translation id="2048182445208425546">Dostęp do ruchu sieciowego</translation>
-<translation id="2049137146490122801">Dostęp do plików lokalnych na tym komputerze został wyłączony przez administratora.</translation>
 <translation id="204914487372604757">Utwórz skrót</translation>
 <translation id="2050339315714019657">Pionowo</translation>
 <translation id="2053312383184521053">Dane o stanie bezczynności</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Niezaładowany</translation>
 <translation id="2107494551712864447">Dodaj odcisk palca</translation>
-<translation id="2111843886872897694">Aplikacje muszą być udostępniane z hosta, którego dotyczą.</translation>
 <translation id="2112877397266219826">Włącz kontroler dotykowy, by skonfigurować urządzenie</translation>
 <translation id="21133533946938348">Przypnij kartę</translation>
 <translation id="2113479184312716848">&amp;Otwórz plik</translation>
@@ -762,7 +749,7 @@
 <translation id="2178614541317717477">Naruszenie bezpieczeństwa urzędu certyfikacji</translation>
 <translation id="218070003709087997">Wpisz wartość numeryczną, by określić liczbę kopii do wydrukowania (od 1 do 999).</translation>
 <translation id="2187895286714876935">Błąd importowania certyfikatu serwera</translation>
-<translation id="2187906491731510095">Rozszerzenia zostały zaktualizowane</translation>
+<translation id="2187906491731510095">Rozszerzenia zaktualizowane</translation>
 <translation id="2188881192257509750">Otwórz <ph name="APPLICATION" /></translation>
 <translation id="2190069059097339078">Program do pobierania danych logowania do Wi-Fi</translation>
 <translation id="219008588003277019">Moduł klienta natywnego: <ph name="NEXE_NAME" /></translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Powiedz nam, co się dzieje</translation>
 <translation id="2229161054156947610">Została ponad 1 godzina</translation>
 <translation id="222931766245975952">Plik obcięty</translation>
-<translation id="222949136907494149"><ph name="URL" /> chce użyć lokalizacji Twojego komputera.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Nie można utworzyć folderu „<ph name="FOLDER_NAME" />”. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kliknij, by zobaczyć doodle dnia</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Zawsze blokuj dostęp do mikrofonu</translation>
 <translation id="2367972762794486313">Pokaż aplikacje</translation>
 <translation id="2371076942591664043">Otwórz po &amp;zakończeniu</translation>
-<translation id="237336063998926520">Użyj swojego adresu IP, by określić lokalizację</translation>
 <translation id="2377319039870049694">Przełącz na widok listy</translation>
 <translation id="2377667304966270281">Poważne błędy</translation>
 <translation id="2378075407703503998">Wybrano <ph name="SELCTED_FILE_COUNT" /> pliki(ów)</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> chce skopiować pliki z dysku <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Identyfikator klucza urzędu certyfikacji</translation>
 <translation id="2462752602710430187">Dodano: <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importuj zakładki</translation>
 <translation id="2464089476039395325">Serwer proxy HTTP</translation>
 <translation id="2468902267404883140">Nie można połączyć się z telefonem. Upewnij się, że używasz zgodnego telefonu z Androidem oraz że jest on włączony i znajduje się w zasięgu ręki. &lt;a&gt;Więcej informacji&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Wyłączono nieobsługiwane rozszerzenia</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Odinstaluj</translation>
 <translation id="2487067538648443797">Dodaj nową zakładkę</translation>
 <translation id="248861575772995840">Nie można znaleźć telefonu. Upewnij się, że <ph name="DEVICE_TYPE" /> ma włączony Bluetooth. &lt;a&gt;Więcej informacji&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Wtyczka (<ph name="PLUGIN_NAME" />) nie odpowiada.</translation>
 <translation id="2489428929217601177">ostatni dzień</translation>
 <translation id="2489918096470125693">Dodaj &amp;folder</translation>
 <translation id="249113932447298600">Niestety, urządzenie <ph name="DEVICE_LABEL" /> nie jest obecnie obsługiwane.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Gratulacje! Usługa transmisji danych „<ph name="NAME" />” została aktywowana i można z niej korzystać.</translation>
 <translation id="2566124945717127842">Wykonaj Powerwash, by zresetować urządzenie z <ph name="IDS_SHORT_PRODUCT_NAME" /> do ustawień fabrycznych.</translation>
 <translation id="2568774940984945469">Kontener paska informacji</translation>
-<translation id="2570000010887652771">Zmniejszono zużycie danych.</translation>
 <translation id="257088987046510401">Motywy</translation>
 <translation id="2572032849266859634">Uprawnienia tylko do odczytu dysku <ph name="VOLUME_NAME" /> zostały przyznane.</translation>
 <translation id="2573269395582837871">Wybierz obraz i nazwę</translation>
 <translation id="2575247648642144396">Ta ikona będzie widoczna, gdy rozszerzenie będzie mogło działać na bieżącej stronie. Użyj tego rozszerzenia, klikając ikonę lub naciskając <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Nie można znaleźć telefonu. Upewnij się, że <ph name="DEVICE_TYPE" /> ma połączenie z Wi-Fi lub siecią komórkową. &lt;a&gt;Więcej informacji&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Plik CRX o tej nazwie już istnieje.</translation>
 <translation id="257779572837908839">Skonfiguruj jako Chromeboxa wideokonferencje</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nie można odłączyć woluminu<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Jeśli usuniesz certyfikat urzędu certyfikacji, Twoja przeglądarka nie będzie już ufać żadnym certyfikatom wydanym przez ten urząd certyfikacji.</translation>
 <translation id="2653659639078652383">Prześlij</translation>
 <translation id="265390580714150011">Wartość pola</translation>
-<translation id="2654286334048437383">Eksportuj zakładki</translation>
 <translation id="2655386581175833247">Certyfikat użytkownika:</translation>
 <translation id="2660779039299703961">Wydarzenie</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Dodaj galerię multimediów na podstawie katalogu</translation>
 <translation id="2908789530129661844">Pomniejsz ekran</translation>
 <translation id="2910318910161511225">Połącz się z siecią i spróbuj ponownie</translation>
-<translation id="2912905526406334195">Strona <ph name="HOST" /> chce użyć mikrofonu.</translation>
 <translation id="2913331724188855103">Zezwalaj witrynom na zapisywanie danych w plikach cookie i ich odczytywanie (zalecane)</translation>
 <translation id="2916073183900451334">Naciśnięcie klawisza Tab na stronie internetowej powoduje podświetlenie linków, a także pól formularza</translation>
 <translation id="2916745397441987255">Szukaj w rozszerzeniach</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Słucham…</translation>
 <translation id="3141917231319778873">Brak obsługi tego żądania do: „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3144126448740580210">GOTOWE</translation>
-<translation id="3144135466825225871">Nie można zastąpić pliku crx. Sprawdź, czy nie jest on używany.</translation>
 <translation id="3144647712221361880">Otwórz link jako</translation>
 <translation id="3149510190863420837">Aplikacje Chrome</translation>
 <translation id="3150927491400159470">Wymuś ponowne załadowanie</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Zawsze uruchamiaj na wszystkich stronach</translation>
 <translation id="3312424061798279731">Włączone języki</translation>
 <translation id="3312903956926554846">Zainstaluj na pulpicie</translation>
-<translation id="3313473140726597081">Strona początkowa została zmieniona na <ph name="URL" />. Aby wyłączyć rozszerzenia, które zmieniają stronę początkową, kliknij Przywróć.</translation>
 <translation id="3313590242757056087">Aby określić, jakie strony będzie mógł przeglądać użytkownik nadzorowany,
     skonfiguruj ograniczenia i ustawienia na <ph name="MANAGEMENT_URL" />.
     Jeśli nie zmienisz ustawień domyślnych, użytkownik <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informacje o aplikacji</translation>
 <translation id="3335947283844343239">Otwórz ponownie zamkniętą kartę</translation>
-<translation id="3337069537196930048">Wtyczka <ph name="PLUGIN_NAME" /> została zablokowana, ponieważ jest nieaktualna.</translation>
 <translation id="3340978935015468852">ustawienia</translation>
 <translation id="3341703758641437857">Zezwalaj na dostęp do adresów URL plików</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />” chce usunąć to rozszerzenie.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Dodano zakładkę</translation>
 <translation id="3389312115541230716">Kliknij prawym przyciskiem myszy ikonę <ph name="SMALL_PRODUCT_LOGO" /> na pasku zadań</translation>
 <translation id="3391716558283801616">Karta 7</translation>
-<translation id="3394150261239285340">Strona <ph name="HOST" /> chce korzystać z kamery i mikrofonu.</translation>
 <translation id="3396331542604645348">Wybrana drukarka jest niedostępna lub nieprawidłowo zainstalowana. Sprawdź ją lub wybierz inną.</translation>
 <translation id="3399432415385675819">Powiadomienia zostaną wyłączone</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1594,7 +1569,7 @@
 <translation id="3423858849633684918">Ponownie uruchom przeglądarkę <ph name="PRODUCT_NAME" /></translation>
 <translation id="3424969259347320884">Opisz, co robiłeś, gdy wystąpiła awaria karty</translation>
 <translation id="3427092606871434483">Zezwalaj (domyślnie)</translation>
-<translation id="3428419049384081277">Jesteś teraz zalogowany!</translation>
+<translation id="3428419049384081277">Jesteś zalogowany</translation>
 <translation id="3429275422858276529">Dodaj tę stronę do zakładek, by później łatwo ją znaleźć</translation>
 <translation id="3429599832623003132">Elementy: $1</translation>
 <translation id="3432227430032737297">Usuń wszystkie wyświetlone</translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome aktualizuje się automatycznie, więc zawsze masz najnowszą wersję</translation>
 <translation id="3551320343578183772">Zamknij kartę</translation>
 <translation id="3552780134252864554">Usuń po zamknięciu</translation>
-<translation id="355298399003313926">Strona <ph name="URL" /> chce odpowiadać na zdarzenia dotyczące ułatwień dostępu.</translation>
 <translation id="3555812735919707620">Usuń rozszerzenie</translation>
 <translation id="3556000484321257665">Wyszukiwarka została zmieniona na <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Wartość wejściowa klucza prywatnego musi być prawidłową ścieżką.</translation>
 <translation id="3563432852173030730">Nie można pobrać aplikacji kiosku.</translation>
 <translation id="3564334271939054422">Sieć Wi-Fi (<ph name="NETWORK_ID" />), której używasz, może wymagać wejścia na stronę logowania.</translation>
 <translation id="3564708465992574908">Poziomy powiększenia</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Ograniczenia nazwy certyfikatu</translation>
 <translation id="3596235046596950091">Włącz usługi w chmurze</translation>
 <translation id="3599863153486145794">Usuwa historię ze wszystkich urządzeń, na których jesteś zalogowany. Inne rodzaje historii przeglądania mogą być nadal dostępne na Twoim koncie Google na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Dostęp do plików lokalnych na Twoim urządzeniu został wyłączony przez administratora.</translation>
 <translation id="3600792891314830896">Wycisz strony, które odtwarzają dźwięk</translation>
 <translation id="3603177256297531067">Nie udało się przetłumaczyć tej strony</translation>
 <translation id="3603533104205588786">Aby dodać stronę do zakładek, możesz kliknąć gwiazdkę</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Zrzuty ekranu wyłączone</translation>
 <translation id="3625870480639975468">Resetuj powiększenie</translation>
 <translation id="3626281679859535460">Jasność</translation>
-<translation id="3627052133907344175">Rozszerzenie wymaga „<ph name="IMPORT_NAME" />” – minimalnie wersji „<ph name="IMPORT_VERSION" />”, ale zainstalowana jest tylko wersja „<ph name="INSTALLED_VERSION" />”.</translation>
 <translation id="3627320433825461852">Została mniej niż 1 minuta</translation>
 <translation id="3627588569887975815">Otwórz link w oknie inco&amp;gnito</translation>
 <translation id="3627671146180677314">Czas odnowienia certyfikatu firmy Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Ustawienia języka</translation>
 <translation id="3668823961463113931">Moduły obsługi</translation>
 <translation id="3670229581627177274">Włącz Bluetooth</translation>
-<translation id="3672159315667503033">Witryna <ph name="URL" /> chce na stałe przechowywać dużą ilość danych lokalnych na Twoim komputerze.</translation>
 <translation id="3672681487849735243">Wykryto błąd fabryczny</translation>
 <translation id="367645871420407123">pozostaw puste, jeśli chcesz ustawić hasło główne na domyślną wartość obrazu testowego</translation>
 <translation id="3678156199662914018">Rozszerzenie: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Jesteś offline</translation>
 <translation id="3788401245189148511">Będzie mógł:</translation>
 <translation id="3789841737615482174">Zainstaluj</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> działa tylko na pulpicie.</translation>
 <translation id="379082410132524484">Twoja karta straciła ważność</translation>
 <translation id="3792890930871100565">Odłącz drukarki</translation>
 <translation id="379422718204375917">Używaj funkcji Smart Lock, by logować się na konto</translation>
-<translation id="3794595850995182458">Zamknij stronę</translation>
 <translation id="3796648294839530037">Ulubione sieci:</translation>
 <translation id="3797900183766075808">Wy&amp;szukaj „<ph name="SEARCH_TERMS" />” w <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Pozwala włączyć lub wyłączyć kliknięcie przez dotknięcie</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Włącz: <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Wprowadzono nieprawidłowy typ zapisu.</translation>
 <translation id="3983586614702900908">urządzenia od nieznanego dostawcy</translation>
-<translation id="3984413272403535372">Błąd podczas podpisywania rozszerzenia.</translation>
 <translation id="3987938432087324095">Nie rozumiem.</translation>
 <translation id="3988996860813292272">Wybierz strefę czasową</translation>
 <translation id="3989635538409502728">Wyloguj się</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Instaluj aplikacje i gry z Google Play na Chromebooku. &lt;a target="_blank" href="<ph name="URL" />"&gt;Więcej informacji&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Zaakceptuj dla grupy</translation>
 <translation id="4090103403438682346">Włącz weryfikację dostępu</translation>
-<translation id="4090404313667273475">Wyświetlenie pewnych elementów na tej stronie wymaga wtyczki <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(To rozszerzenie jest zarządzane i nie można go usunąć).</translation>
 <translation id="4091434297613116013">kartki</translation>
 <translation id="4093955363990068916">Plik lokalny:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">Przeglądarka <ph name="PRODUCT_NAME" /> może teraz synchronizować Twoje hasła.</translation>
 <translation id="4715553623069266137">bardzo krótkie (0,8 s)</translation>
 <translation id="4716483597559580346">Wykonaj Powerwash, by zwiększyć bezpieczeństwo</translation>
-<translation id="471800408830181311">Nie można przekazać klucza prywatnego.</translation>
 <translation id="4720113199587244118">Dodaj urządzenia</translation>
 <translation id="4720185134442950733">Sieć mobilnej transmisji danych</translation>
 <translation id="4722920479021006856">Aplikacja <ph name="APP_NAME" /> udostępnia Twój ekran.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Silny</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> chce nawiązać połączenie z rozszerzeniem „<ph name="EXTENSION_NAME" />”</translation>
 <translation id="4918086044614829423">Akceptuj</translation>
-<translation id="4919810557098212913">Strona <ph name="HOST" /> chce korzystać z aparatu.</translation>
 <translation id="4920887663447894854">Następującym witrynom zablokowano możliwość śledzenia Twojej lokalizacji na tej stronie:</translation>
 <translation id="492299503953721473">Usuń aplikacje na Androida</translation>
 <translation id="4923279099980110923">Tak, chcę pomóc</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">To rozszerzenie zawiera złośliwe oprogramowanie.</translation>
 <translation id="498294082491145744">Zmiana ustawień kontrolujących dostęp stron internetowych do takich funkcji jak pliki cookie, JavaScript, wtyczki, geolokalizacja, mikrofon, kamera itp.</translation>
 <translation id="4988526792673242964">Strony</translation>
-<translation id="4988792151665380515">Nie można wyeksportować klucza publicznego.</translation>
 <translation id="49896407730300355">&amp;Obróć w lewo</translation>
 <translation id="4989966318180235467">Sprawdź &amp;stronę tła</translation>
 <translation id="4990343175649730969">Pobierz Narzędzie do czyszczenia Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Nie pokazuj więcej tego komunikatu</translation>
 <translation id="5027550639139316293">Certyfikat poczty e-mail</translation>
 <translation id="5027562294707732951">Dodaj rozszerzenie</translation>
-<translation id="5028012205542821824">Instalacja nie jest włączona.</translation>
 <translation id="5029568752722684782">Usuń kopię</translation>
 <translation id="5030338702439866405">Wystawiony przez</translation>
 <translation id="5036662165765606524">Nie zezwalaj żadnym witrynom na automatyczne pobieranie wielu plików</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Wystąpił błąd.</translation>
 <translation id="5094721898978802975">Komunikowanie się ze współpracującymi aplikacjami natywnymi</translation>
 <translation id="5097002363526479830">Nie udało się połączyć z siecią „<ph name="NAME" />”: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nie można określić ścieżki bezwzględnej pakowanego katalogu.</translation>
 <translation id="5099354524039520280">w górę</translation>
 <translation id="5100114659116077956">Aby udostępnić najnowsze funkcje, Chromebox musi się zaktualizować.</translation>
 <translation id="5101042277149003567">Otwórz wszystkie zakładki</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Pokaż w folderze</translation>
 <translation id="5171045022955879922">Wyszukaj lub wpisz URL</translation>
 <translation id="5171343362375269016">Zamieniona pamięć</translation>
-<translation id="5175870427301879686">Witryna <ph name="URL" /> chce na stałe przechowywać dane lokalne na Twoim komputerze.</translation>
 <translation id="5177479852722101802">Nadal blokuj dostęp do kamery i mikrofonu</translation>
 <translation id="5177526793333269655">Widok miniatur</translation>
 <translation id="5177549709747445269">Korzystasz z komórkowej transmisji danych</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Sformatuj urządzenie</translation>
 <translation id="5293170712604732402">Przywróć ustawienia do wartości domyślnych</translation>
 <translation id="5298219193514155779">Motyw utworzony przez</translation>
-<translation id="5298363578196989456">Nie można zaimportować rozszerzenia „<ph name="IMPORT_NAME" />”, ponieważ nie jest to moduł udostępniany.</translation>
 <translation id="5299109548848736476">Bez śledzenia</translation>
 <translation id="5299682071747318445">Wszystkie dane są szyfrowane z użyciem Twojego hasła</translation>
 <translation id="5300589172476337783">Pokaż</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">„<ph name="CHROME_EXTENSION_NAME" />” chce się sparować</translation>
 <translation id="5332624210073556029">Strefa czasowa</translation>
 <translation id="5334142896108694079">Pamięć podręczna skryptów</translation>
-<translation id="533433379391851622">Oczekiwano wersji „<ph name="EXPECTED_VERSION" />”, wersja: „<ph name="NEW_ID" />”.</translation>
 <translation id="5334844597069022743">Wyświetl źródło</translation>
 <translation id="5335458522276292100">Tworzą kopię zapasową (<ph name="FILE_COUNT" />) na <ph name="BEGIN_LINK" />Dysku Google<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Zainstalowane przez inną firmę.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Zezwalaj na odtwarzanie dźwięku na stronach internetowych</translation>
 <translation id="5390284375844109566">Zindeksowana baza danych</translation>
 <translation id="5390743329570580756">Wyślij do:</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> na <ph name="PEPPER_PLUGIN_DOMAIN" /> chce mieć dostęp do Twojego komputera.</translation>
 <translation id="5397794290049113714">Ty</translation>
 <translation id="5398572795982417028">Odwołanie do strony spoza zakresu, limit to <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamy zostały zablokowane</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Przywróć wszystkie karty</translation>
 <translation id="5486261815000869482">Potwierdź hasło</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> udostępnia Twój ekran karcie <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Wartość wejściowa klucza prywatnego musi istnieć.</translation>
 <translation id="5486561344817861625">Symuluj ponowne uruchomienie przeglądarki</translation>
 <translation id="5487521232677179737">Wyczyść dane</translation>
 <translation id="5488093641312826914">Skopiowano: „<ph name="COPIED_ITEM_NAME" />”</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Pobranie aktualizacji wykorzysta <ph name="UPDATE_SIZE_MB" /> MB mobilnej transmisji danych. Czy chcesz kontynuować?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Inne wyszukiwarki</translation>
-<translation id="5606674617204776232">Wtyczka <ph name="PEPPER_PLUGIN_NAME" /> na <ph name="PEPPER_PLUGIN_DOMAIN" /> chce mieć dostęp do Twojego urządzenia.</translation>
 <translation id="5608580678041221894">Kliknij te przyciski, by zmienić lub przesunąć obszar przycinania</translation>
 <translation id="5609231933459083978">Wygląda na to, że aplikacja jest nieprawidłowa.</translation>
 <translation id="5610038042047936818">Przełącz na tryb aparatu</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Przetłumaczona</translation>
 <translation id="5991049340509704927">Powiększ</translation>
 <translation id="5993332328670040093">Pomiar użycia danych został zakończony.</translation>
-<translation id="6003177993629630467">Program <ph name="PRODUCT_NAME" /> może nie móc sam się aktualizować.</translation>
 <translation id="600424552813877586">Nieprawidłowa aplikacja.</translation>
 <translation id="6005695835120147974">Router multimediów</translation>
 <translation id="6006484371116297560">Klasyczny</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Kopia zapasowa w chmurze</translation>
 <translation id="6040143037577758943">Zamknij</translation>
 <translation id="6040852767465482106">Tożsamość anonimowa</translation>
+<translation id="6041155700700864984">Zamknij pełny ekran</translation>
 <translation id="604124094241169006">Automatyczne</translation>
 <translation id="6042169520002885235">Wybierz model i producenta drukarki</translation>
 <translation id="6042308850641462728">Więcej</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Załaduj ponownie (normalnie)</translation>
 <translation id="6059652578941944813">Hierarchia certyfikatów</translation>
 <translation id="6059925163896151826">Urządzenia USB</translation>
-<translation id="6060435378291459521">We wtyczce <ph name="PLUGIN_NAME" /> wystąpił poważny błąd.</translation>
 <translation id="6064217302520318294">Blokada ekranu</translation>
 <translation id="6065289257230303064">Atrybuty katalogu podmiotu certyfikatu</translation>
 <translation id="6068338049763724728">Włącz rejestrację zdalną</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Pozwala zmienić rozdzielczość ekranu</translation>
 <translation id="6238923052227198598">Wyświetlaj najnowszą notatkę na ekranie blokady</translation>
 <translation id="6239558157302047471">Załaduj ponownie &amp;ramkę</translation>
-<translation id="624022915548992686">Zamknij stronę</translation>
 <translation id="6241530762627360640">Dostęp do informacji o urządzeniach Bluetooth sparowanych z systemem oraz wykrywanie urządzeń Bluetooth w pobliżu</translation>
 <translation id="6243774244933267674">Serwer niedostępny</translation>
 <translation id="6246413617632217567">Nie udało się zaimportować nadzorowanego użytkownika. Sprawdź miejsce na dysku twardym i uprawnienia, a potem spróbuj ponownie.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Nieznany błąd sieci</translation>
 <translation id="6313641880021325787">WYŁĄCZ TRYB VR</translation>
 <translation id="6314819609899340042">Funkcje debugowania zostały włączone na urządzeniu <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Strony początkowe zostały zmienione i zawierają <ph name="URL" />. Aby wyłączyć rozszerzenia, które zmieniają stronę początkową, kliknij Przywróć.</translation>
 <translation id="6315493146179903667">Przenieś wszystko na wierzch</translation>
 <translation id="6316806695097060329">To urządzenie <ph name="SHORT_PRODUCT_NAME" /> zostało zaprojektowane, by umożliwić Ci jak najwygodniejsze korzystanie z internetu.</translation>
 <translation id="6317318380444133405">Nie jest już obsługiwana.</translation>
 <translation id="6317369057005134371">Czekam na okno aplikacji...</translation>
 <translation id="6318407754858604988">Rozpoczęto pobieranie</translation>
-<translation id="6322279351188361895">Nie można odczytać klucza prywatnego.</translation>
 <translation id="6325191661371220117">Wyłącz automatyczne uruchamianie</translation>
 <translation id="6326175484149238433">Usuń z Chrome</translation>
 <translation id="6326855256003666642">Liczba elementów wymuszających aktywność</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Wybierz elementy do synchronizacji</translation>
 <translation id="6333064448949140209">Plik zostanie wysłany do Google w celu debugowania</translation>
 <translation id="6333834492048057036">Zaznacz pasek adresu, by przeprowadzić wyszukiwanie</translation>
-<translation id="6336907568130557310">Twoje hasła będą widoczne dla każdego, kto może zobaczyć wyeksportowany plik. Nie udostępniaj nikomu pliku i usuń go po zaimportowaniu.</translation>
 <translation id="6339668969738228384">Utwórz nowy profil dla adresu <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Nie udało połączyć się z serwerem. Sprawdź połączenie sieciowe i spróbuj ponownie. Jeśli problem nie zniknie, uruchom ponownie Chromebooka.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Strony mogą zapisywać dane w plikach cookie i je odczytywać</translation>
 <translation id="6388771388956873507">Znajdź na urządzeniu czytnik linii papilarnych i dotknij go palcem</translation>
 <translation id="6390799748543157332">Strony wyświetlane w tym oknie nie pojawią się w historii przeglądarki. Po zamknięciu wszystkich okien otwartych w trybie gościa nie zostanie po nich na komputerze żaden ślad (np. w postaci plików cookie). Pobrane pliki zostaną jednak zachowane.</translation>
-<translation id="6391538222494443604">Katalog wejściowy musi istnieć.</translation>
 <translation id="6395423953133416962">Przesyłaj <ph name="BEGIN_LINK1" />informacje o systemie<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />dane<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Przestań mówić</translation>
 <translation id="6397592254427394018">Otwórz wszystkie zakładki w oknie &amp;incognito</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Zarządzaj blokowaniem kodu JavaScript...</translation>
 <translation id="6459488832681039634">Użyj zaznaczenia do funkcji Znajdź</translation>
 <translation id="6460601847208524483">Znajdź następne</translation>
-<translation id="6462080265650314920">Aplikacje muszą być udostępniane z parametrem content-type „<ph name="CONTENT_TYPE" />”.</translation>
 <translation id="6462082050341971451">Jesteś tam jeszcze?</translation>
 <translation id="6463795194797719782">&amp;Edycja</translation>
 <translation id="6466988389784393586">&amp;Otwórz wszystkie zakładki</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Chcesz zobaczyć tłumaczenie Google tej strony z języka <ph name="SOURCE_LANGUAGE" /> na <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Podłączono urządzenie wskazujące</translation>
-<translation id="6677037229676347494">Oczekiwano identyfikatora „<ph name="EXPECTED_ID" />”, identyfikator: „<ph name="NEW_ID" />”.</translation>
 <translation id="6678717876183468697">URL zapytania</translation>
 <translation id="6680028776254050810">Przełącz użytkowników</translation>
 <translation id="6680442031740878064">Dostępne: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">W <ph name="BEGIN_LINK" />Ustawieniach<ph name="END_LINK" /> możesz w dowolnym momencie określić, jakie informacje będzie zbierać Google.</translation>
 <translation id="6904344821472985372">Odwołaj dostęp do plików</translation>
 <translation id="6904655473976120856">Naciśnij przycisk aplikacji, by wyjść</translation>
-<translation id="6904713658985136356">Strona <ph name="HOST" /> chce udostępnić Twój ekran.</translation>
-<translation id="6909461304779452601">Nie można dodawać aplikacji, rozszerzeń i skryptów użytkownika pochodzących z tej witryny.</translation>
 <translation id="6910211073230771657">Usunięto</translation>
 <translation id="691024665142758461">pobrać wiele plików</translation>
 <translation id="6911324888870229398">Połączenie sieciowe zostało utracone. Sprawdź połączenie lub połącz się z inną siecią Wi-Fi.</translation>
@@ -4098,7 +4043,6 @@
 <translation id="747114903913869239">Błąd: nie można zdekodować rozszerzenia</translation>
 <translation id="7473891865547856676">Nie, dziękuję</translation>
 <translation id="747459581954555080">Przywróć wszystkie</translation>
-<translation id="7475034671245341386">We wtyczce <ph name="PLUGIN_NAME" /> wystąpił błąd.</translation>
 <translation id="7475671414023905704">Adres URL utraconego hasła firmy Netscape</translation>
 <translation id="7476454130948140105">Poziom naładowania baterii (<ph name="BATTERY_PERCENT" />%) jest za niski, by zainstalować aktualizację</translation>
 <translation id="7477347901712410606">Jeśli nie pamiętasz hasła, zatrzymaj i zresetuj synchronizację przy użyciu <ph name="BEGIN_LINK" />Panelu Google<ph name="END_LINK" />.</translation>
@@ -4135,7 +4079,6 @@
 <translation id="7507930499305566459">Certyfikat obiektu odpowiadającego w zakresie stanu</translation>
 <translation id="7508545000531937079">Pokaz slajdów</translation>
 <translation id="7513029293694390567">Automatycznie loguj się na stronach, używając zapisanych danych logowania. Jeśli ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o potwierdzenie.</translation>
-<translation id="7515670329462166359">Aby odtwarzać treści chronione, adres <ph name="URL" /> wymaga jednoznacznej identyfikacji Twojego urządzenia.</translation>
 <translation id="7517569744831774757">Przywróć ustawienia do wartości domyślnych.</translation>
 <translation id="7517786267097410259">Utwórz hasło –</translation>
 <translation id="7518150891539970662">Dzienniki WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4165,7 +4108,6 @@
     i spróbuj ponownie utworzyć użytkownika nadzorowanego.</translation>
 <translation id="756445078718366910">Otwórz okno przeglądarki</translation>
 <translation id="7564847347806291057">Zakończ proces</translation>
-<translation id="7565291891798266313">Wyszukiwarka została zmieniona na <ph name="URL" />. Aby wyłączyć rozszerzenia, które zmieniają wyszukiwarkę, kliknij Przywróć.</translation>
 <translation id="7566118625369982896">Zarządzaj linkami aplikacji Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Wyczyszczono dane Chrome</translation>
@@ -4174,7 +4116,6 @@
 <translation id="7573172247376861652">Poziom naładowania akumulatora</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Sortuj</translation>
-<translation id="7577815336900970562">Użyj Wi-Fi lub sieci komórkowej, by określić lokalizację</translation>
 <translation id="7579149537961810247">Wycisz strony</translation>
 <translation id="7580671184200851182">Odtwarzaj ten sam dźwięk na wszystkich głośnikach (dźwięk mono)</translation>
 <translation id="7581462281756524039">Narzędzie do czyszczenia</translation>
@@ -4281,6 +4222,7 @@
 <translation id="7773726648746946405">Przechowywanie sesji</translation>
 <translation id="7781335840981796660">Wszystkie konta użytkowników i dane lokalne zostaną usunięte.</translation>
 <translation id="7782102568078991263">Nie pokazuj sugestii od Google</translation>
+<translation id="778330624322499012">Nie można załadować wtyczki <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Ustawienia zabezpieczeń na komputerze zablokowały ten plik.</translation>
 <translation id="7786207843293321886">Zakończ sesję gościa</translation>
 <translation id="7786889348652477777">P&amp;rzeładuj aplikację</translation>
@@ -4443,7 +4385,6 @@
 <translation id="8001504501378762252">Możliwe, że jakaś strona wykradła Twoje hasło</translation>
 <translation id="8004582292198964060">Przeglądarka</translation>
 <translation id="8008356846765065031">Brak łączności z internetem. Sprawdź połączenie.</translation>
-<translation id="8008765610824028412">Nie można załadować wtyczki <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Automatycznie wysyłaj do Google pewne informacje o systemie i część zawartości stron, by pomóc w wykrywaniu niebezpiecznych aplikacji i witryn</translation>
 <translation id="8012382203418782830">Ta strona została przetłumaczona.</translation>
 <translation id="8014154204619229810">Obecnie działa aktualizator. Odśwież za minutę, by sprawdzić ponownie.</translation>
@@ -4560,7 +4501,6 @@
 <translation id="8191230140820435481">Zarządzanie Twoimi aplikacjami, rozszerzeniami i motywami</translation>
 <translation id="8191453843330043793">Program do rozpoznawania serwera proxy V8</translation>
 <translation id="8195027750202970175">Rozmiar na dysku</translation>
-<translation id="8195739004487400241">Strona główna została zmieniona na <ph name="URL" />. Aby wyłączyć rozszerzenia, które zmieniają stronę główną, kliknij Przywróć.</translation>
 <translation id="8199300056570174101">Właściwości sieci (usługi) i urządzenia</translation>
 <translation id="8200772114523450471">Wznów</translation>
 <translation id="8202160505685531999">Wpisz hasło ponownie, by zaktualizować swój profil na urządzeniu <ph name="DEVICE_TYPE" />.</translation>
@@ -4604,7 +4544,6 @@
 <translation id="8261378640211443080">To rozszerzenie nie jest oferowane w <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i mogło zostać dodane bez Twojej wiedzy.</translation>
 <translation id="8261387128019234107">Dodaj konto dla <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Usuń</translation>
-<translation id="826246685091802258">Flagi <ph name="BAD_FLAG" /> nie ma w tej kompilacji.</translation>
 <translation id="8263744495942430914">Witryna <ph name="FULLSCREEN_ORIGIN" /> wyłączyła kursor myszy.</translation>
 <translation id="8264718194193514834">Rozszerzenie <ph name="EXTENSION_NAME" /> uruchomiło tryb pełnoekranowy.</translation>
 <translation id="8270242299912238708">Dokumenty PDF</translation>
@@ -4706,6 +4645,7 @@
 <translation id="8454288007744638700">Lub wybierz nową sieć:</translation>
 <translation id="845627346958584683">Data ważności</translation>
 <translation id="8456681095658380701">Nieprawidłowa nazwa</translation>
+<translation id="8457451314607652708">Importuj zakładki</translation>
 <translation id="8460336040822756677">Jeśli wyłączysz Smart Lock na urządzenie <ph name="DEVICE_TYPE" />, nie odblokujesz urządzenia z Chrome przy użyciu telefonu. Trzeba będzie wpisać hasło.</translation>
 <translation id="8461329675984532579">Nazwa operatora macierzystego</translation>
 <translation id="84613761564611563">Wywołano interfejs użytkownika do konfigurowania sieci. Zaczekaj...</translation>
@@ -4737,7 +4677,6 @@
 <translation id="850875081535031620">Nie znaleziono szkodliwego oprogramowania</translation>
 <translation id="8512476990829870887">Zakończ proces</translation>
 <translation id="851263357009351303">Zawsze zezwalaj na pokazywanie grafik w witrynie <ph name="HOST" /></translation>
-<translation id="8513191386157529469">„<ph name="CLIENT_NAME" />” debuguje tę przeglądarkę.</translation>
 <translation id="8521475323816527629">Szybkie otwieranie aplikacji</translation>
 <translation id="8523493869875972733">Zachowaj zmiany</translation>
 <translation id="8523849605371521713">Dodane przez zasady</translation>
@@ -4793,7 +4732,6 @@
 <translation id="8620765578342452535">Konfigurowanie połączenia sieciowego</translation>
 <translation id="8620790565535071193">Skanowanie się nie udało</translation>
 <translation id="8622877356447980900">Przetłumaczyć tę stronę?</translation>
-<translation id="8623004009673949077">Aplikacja z atrybutem „kiosk_only” w pliku manifestu musi być zainstalowana w trybie kiosku Chrome OS.</translation>
 <translation id="8624205858755890468">Umożliwia Asystentowi wyświetlanie powiązanych informacji, aplikacji i działań.</translation>
 <translation id="862542460444371744">&amp;Rozszerzenia</translation>
 <translation id="8627151598708688654">Wybierz źródło</translation>
@@ -4942,7 +4880,6 @@
 <translation id="882204272221080310">Zaktualizuj oprogramowanie, by zwiększyć bezpieczeństwo.</translation>
 <translation id="8823514049557262177">Kopiuj te&amp;kst linku</translation>
 <translation id="8824701697284169214">Dodaj &amp;stronę</translation>
-<translation id="8827850355924932817">Użyj sieci Wi-Fi, by określić lokalizację</translation>
 <translation id="8828933418460119530">Nazwa DNS</translation>
 <translation id="8830796635868321089">Sprawdzenie aktualizacji przy użyciu obecnych ustawień serwera proxy nie powiodło się. Popraw <ph name="PROXY_SETTINGS_LINK_START" />ustawienia serwera proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Konfiguracją sieci zarządza <ph name="USER_EMAIL" />.</translation>
@@ -4974,9 +4911,7 @@
 <translation id="8879284080359814990">&amp;Pokaż jako kartę</translation>
 <translation id="8884961208881553398">Dodaj nowe usługi</translation>
 <translation id="8885197664446363138">Smart Lock jest niedostępny</translation>
-<translation id="8885905466771744233">Klucz prywatny dla określonego rozszerzenia już istnieje. Użyj ponownie tego klucza lub najpierw go usuń.</translation>
 <translation id="8888432776533519951">Kolor:</translation>
-<translation id="8892992092192084762">Zainstalowano motyw „<ph name="THEME_NAME" />”.</translation>
 <translation id="8893928184421379330">Niestety, nie można rozpoznać urządzenia <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Lista zakładek</translation>
 <translation id="88986195241502842">Strona w dół</translation>
@@ -4991,7 +4926,6 @@
 <translation id="8908902564709148335">Ostrzeżenie: na komputerze została włączona flaga --scripts-require-action, która ogranicza możliwości tego rozszerzenia. Na innych urządzeniach może ona jednak nie być obsługiwana lub włączona. Na tych urządzeniach rozszerzenie może też:</translation>
 <translation id="8910146161325739742">Udostępnianie ekranu</translation>
 <translation id="8910222113987937043">Twoje zakładki, historia, hasła i inne ustawienia nie będą już synchronizowane z kontem Google. Wcześniejsze 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="8911079125461595075">Google uznaje rozszerzenie „<ph name="EXTENSION_NAME" />” za złośliwe, dlatego jego instalacja została powstrzymana.</translation>
 <translation id="8912793549644936705">Rozciągnij</translation>
 <translation id="8915370057835397490">Ładuję sugestie</translation>
 <translation id="8916476537757519021">Ramka podrzędna incognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5097,7 +5031,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Podłączono mysz USB</translation>
 <translation id="9076523132036239772">Niestety, nie udało się zweryfikować Twojego adresu e-mail lub hasła. Najpierw nawiąż połączenie z siecią.</translation>
-<translation id="907841381057066561">Nie można utworzyć tymczasowego pliku zip podczas pakowania.</translation>
 <translation id="9084064520949870008">Otwórz jako okno</translation>
 <translation id="9088234649737575428">Wtyczka <ph name="PLUGIN_NAME" /> została zablokowana przez zasady przedsiębiorstwa</translation>
 <translation id="9088917181875854783">Potwierdź klucz widoczny na urządzeniu „<ph name="DEVICE_NAME" />”:</translation>
@@ -5188,11 +5121,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Wpisz hasło</translation>
 <translation id="939736085109172342">Nowy folder</translation>
-<translation id="941543339607623937">Nieprawidłowy klucz prywatny.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> udostępnia kartę i dźwięk z Chrome.</translation>
 <translation id="942954117721265519">Brak zdjęć w tym katalogu.</translation>
 <translation id="945522503751344254">Wyślij zgłoszenie</translation>
-<translation id="951981865514037445"><ph name="URL" /> chce użyć lokalizacji Twojego urządzenia.</translation>
 <translation id="952992212772159698">Nie aktywowano</translation>
 <translation id="9580706199804957">Nie udało się połączyć z usługami Google</translation>
 <translation id="958515377357646513">Kliknij, by przejść dalej.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index 1fe3298..f664927 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Somente codificar</translation>
 <translation id="1039337018183941703">Arquivo inválido ou corrompido</translation>
 <translation id="1042174272890264476">Seu computador já vem com a biblioteca RLZ do <ph name="SHORT_PRODUCT_NAME" /> integrada. O RLZ atribui uma tag não exclusiva e sem identificação pessoal para medir as pesquisas e o uso do <ph name="SHORT_PRODUCT_NAME" /> gerados por uma campanha promocional específica. Esses marcadores às vezes aparecem em consultas da Pesquisa Google no <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> deseja armazenar permanentemente um grande volume de dados em seu dispositivo.</translation>
 <translation id="1046059554679513793">Ops. Este nome já está em uso.</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto do link</translation>
 <translation id="1047726139967079566">Adicionar esta página aos favoritos...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Restaurar mecanismo de pesquisa padrão?</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1178581264944972037">Pausar</translation>
-<translation id="1179803038870941185"><ph name="URL" /> deseja obter controle total de seus dispositivos MIDI.</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1183237619868651138">Não foi possível instalar o arquivo <ph name="EXTERNAL_CRX_FILE" /> no cache local.</translation>
 <translation id="1185924365081634987">Tente <ph name="GUEST_SIGNIN_LINK_START" />navegar como convidado<ph name="GUEST_SIGNIN_LINK_END" /> para corrigir este erro da rede.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Acessar um arquivo armazenado no seu computador}one{Acessar # arquivos armazenados no seu computador.}other{Acessar # arquivos armazenados no seu computador}}</translation>
 <translation id="1195076408729068893">Para iniciar o Smart Lock, digite sua senha. Na próxima vez, você poderá usar seu smartphone para desbloquear o <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Erro desconhecido.</translation>
-<translation id="1196338895211115272">Falha ao exportar chave privada.</translation>
 <translation id="119738088725604856">Janela de captura de tela</translation>
 <translation id="1197979282329025000">Ocorreu um erro durante a recuperação dos recursos da impressora <ph name="PRINTER_NAME" />. Essa impressora não pôde ser registrada com <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Começando...</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Seu administrador recomenda um valor específico para esta configuração.</translation>
 <translation id="1225177025209879837">Processando solicitação...</translation>
 <translation id="1225211345201532184">Item 5 da estante</translation>
-<translation id="1225404570112441414">Adicione este site à sua estante para usá-lo a qualquer momento.</translation>
 <translation id="1227507814927581609">Falha na autenticação ao conectar-se com "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu do sistema</translation>
 <translation id="1232569758102978740">Sem título</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Arquivo HTML com favoritos</translation>
 <translation id="1303671224831497365">Nenhum dispositivo Bluetooth encontrado</translation>
 <translation id="1306606229401759371">Alterar configurações</translation>
-<translation id="1307398858972670978">Acesse suas senhas a partir de qualquer dispositivo em <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1307559529304613120">Ops. O sistema encontrou uma falha ao armazenar um token de acesso de longo prazo à API para este dispositivo.</translation>
 <translation id="1313405956111467313">Configuração automática de proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Pesquisar</translation>
 <translation id="1386387014181100145">Como vai?</translation>
 <translation id="138784436342154190">Restaurar página de inicialização padrão?</translation>
-<translation id="1389297115360905376">Você pode acrescentá-lo somente a partir da <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Abrir como guia normal</translation>
-<translation id="1391807639023934267">Página carregada mais rapidamente.</translation>
 <translation id="1393283411312835250">Sol e nuvens</translation>
 <translation id="1395262318152388157">Controle deslizante de busca</translation>
 <translation id="1395730723686586365">Atualizador iniciado</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Você está atualizando para uma versão instável do <ph name="PRODUCT_NAME" /> que contém recursos que estão em fase de teste. Falhas e erros inesperados ocorrerão. Continue com cautela.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID de extensão "<ph name="EXTENSION_ID" />") não é permitido neste tipo de sessão.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Ops! Falha ao gerar a chave privada RSA aleatória.</translation>
 <translation id="1420834118113404499">Licenças de mídia</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> para permitir o pareamento</translation>
 <translation id="1426410128494586442">Sim</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opiar endereço do áudio</translation>
 <translation id="1465827627707997754">Fatia de pizza</translation>
 <translation id="1467432559032391204">Para a esquerda</translation>
-<translation id="1467999917853307373"><ph name="URL" /> deseja armazenar permanentemente os dados em seu dispositivo.</translation>
-<translation id="1470719357688513792">Novas configurações de cookies entrarão em vigor depois que a página for atualizada.</translation>
 <translation id="1470811252759861213">Para ter suas extensões em todos os computadores, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Não foi feito o upload de "<ph name="FILENAME" />". Não há espaço livre suficiente no seu Google Drive.</translation>
 <translation id="1475502736924165259">Você tem certificados no arquivo que não correspondem a nenhuma das outras categorias</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Cursor grande do mouse</translation>
 <translation id="1543284117603151572">Importados do Edge</translation>
 <translation id="1545177026077493356">Modo de quiosque automático</translation>
+<translation id="1545775234664667895">Tema "<ph name="THEME_NAME" />" instalado</translation>
 <translation id="1545786162090505744">URL com %s no lugar da consulta</translation>
 <translation id="1546280085599573572">Esta extensão alterou a página que é exibida quando você clica no botão "Página inicial".</translation>
 <translation id="1547572086206517271">Atualização necessária</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />rever<ph name="END_BOLD" /> websites que o usuário supervisionado visitou e
     <ph name="BEGIN_BOLD" />gerenciar<ph name="END_BOLD" /> outras configurações.</translation>
 <translation id="1648943974594387137">Os detalhes de login estão desatualizados</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> linhas não exibidas&gt;</translation>
 <translation id="1650371550981945235">Mostrar opções de entrada</translation>
 <translation id="1650709179466243265">Adicionar www. e .com e abrir um endereço</translation>
 <translation id="1651008383952180276">Informe a mesma senha longa duas vezes</translation>
-<translation id="1652972346408808053">Senha salva. Acesse suas senhas em qualquer dispositivo em <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Adicionar a impressora ao Google Cloud Print para poder imprimir de qualquer lugar.}one{Adicionar # impressoras ao Google Cloud Print para poder imprimir de qualquer lugar.}other{Adicionar # impressoras ao Google Cloud Print para poder imprimir de qualquer lugar.}}</translation>
 <translation id="1657406563541664238">Ajudar a tornar o <ph name="PRODUCT_NAME" /> melhor enviando automaticamente estatísticas de uso e relatórios de problemas ao Google.</translation>
 <translation id="1658424621194652532">Esta página está acessando seu microfone.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continuar bloqueando cookies</translation>
 <translation id="204622017488417136">Seu dispositivo voltará à versão do Google Chrome instalada anteriormente. Todas as contas de usuário e dados locais serão removidos. Esta ação não pode ser desfeita.</translation>
 <translation id="2048182445208425546">Acesse seu tráfego de rede</translation>
-<translation id="2049137146490122801">O acesso a arquivos locais no seu computador está desativado pelo administrador.</translation>
 <translation id="204914487372604757">Criar atalho</translation>
 <translation id="2050339315714019657">Retrato</translation>
 <translation id="2053312383184521053">Dados em estado de inatividade</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ainda não foi carregado</translation>
 <translation id="2107494551712864447">Adicionar uma impressão digital</translation>
-<translation id="2111843886872897694">Os aplicativos devem ser servidos a partir do host que afetam.</translation>
 <translation id="2112877397266219826">Ativar controle por toque para configurar</translation>
 <translation id="21133533946938348">Fixar guia</translation>
 <translation id="2113479184312716848">Abrir &amp;arquivo...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Conte-nos o que está acontecendo</translation>
 <translation id="2229161054156947610">Mais de 1 hora restante</translation>
 <translation id="222931766245975952">Arquivo truncado</translation>
-<translation id="222949136907494149"><ph name="URL" /> quer usar a localização de seu computador.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Não é possível criar a pasta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Clique para visualizar o doodle de hoje</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Sempre bloquear o acesso ao microfone</translation>
 <translation id="2367972762794486313">Mostrar aplicativos</translation>
 <translation id="2371076942591664043">Abrir quando estiver &amp;concluído</translation>
-<translation id="237336063998926520">Usar seu endereço IP para determinar o local</translation>
 <translation id="2377319039870049694">Alternar para a visualização de lista</translation>
 <translation id="2377667304966270281">Falhas graves</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> arquivos selecionados</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> deseja copiar arquivos de <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID da chave da autoridade de certificação</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> adicionada</translation>
-<translation id="246335896104539386">Importar favoritos</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Não foi possível conectar-se ao seu smartphone. Certifique-se de estar usando um smartphone compatível com Android que esteja ativado e acessível. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensões incompatíveis desativadas</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2487067538648443797">Adicionar novo favorito</translation>
 <translation id="248861575772995840">Não foi possível localizar seu smartphone. Certifique-se de que o Bluetooth do <ph name="DEVICE_TYPE" /> esteja ativado. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Um plug-in (<ph name="PLUGIN_NAME" />) não está respondendo.</translation>
 <translation id="2489428929217601177">o dia anterior</translation>
 <translation id="2489918096470125693">Adicionar &amp;pasta...</translation>
 <translation id="249113932447298600">O dispositivo <ph name="DEVICE_LABEL" /> não é atualmente suportado.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Parabéns! Seu serviço de dados "<ph name="NAME" />" foi ativado e está pronto para ser usado.</translation>
 <translation id="2566124945717127842">Use a função "Powerwash" para redefinir seu dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /> para as condições de fábrica.</translation>
 <translation id="2568774940984945469">Recipiente da barra de informações</translation>
-<translation id="2570000010887652771">Economia de dados.</translation>
 <translation id="257088987046510401">Temas</translation>
 <translation id="2572032849266859634">Foi concedido acesso apenas de leitura a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Escolha uma imagem e um nome</translation>
 <translation id="2575247648642144396">Este ícone ficará visível quando a extensão puder agir na página atual. Para usar essa extensão, clique no ícone ou pressione <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Não foi possível localizar seu smartphone. Certifique-se de que seu <ph name="DEVICE_TYPE" /> esteja conectado ao Wi-Fi ou a uma rede móvel. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Já existe um arquivo CRX com este nome.</translation>
 <translation id="257779572837908839">Configurar como Chromebox para reuniões</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Não é possível desconectar o volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Se você excluir o certificado de uma CA (Autoridade de certificação), seu navegador não confiará mais nos certificados emitidos por essa CA.</translation>
 <translation id="2653659639078652383">Enviar</translation>
 <translation id="265390580714150011">Valor do campo</translation>
-<translation id="2654286334048437383">Exportar favoritos</translation>
 <translation id="2655386581175833247">Certificado do usuário:</translation>
 <translation id="2660779039299703961">Evento</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Adicionar galeria de mídias por diretório</translation>
 <translation id="2908789530129661844">Diminuir o zoom da tela</translation>
 <translation id="2910318910161511225">Conecte-se a uma rede e tente novamente</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> deseja utilizar seu microfone.</translation>
 <translation id="2913331724188855103">Permitir que os sites salvem e leiam os dados de arquivos "cookies" - que armazenam temporariamente o que você visitou na rede. (Recomendado)</translation>
 <translation id="2916073183900451334">Ao pressionar Tab em uma página da Web, os links e os campos de formulário são destacados</translation>
 <translation id="2916745397441987255">Pesquisar extensões</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Ouvindo...</translation>
 <translation id="3141917231319778873">Essa solicitação não é compatível com "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">CONCLUÍDO</translation>
-<translation id="3144135466825225871">Falha ao substituir arquivo crx. Verifique se o arquivo está em uso.</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
 <translation id="3149510190863420837">Aplicativos do Google Chrome</translation>
 <translation id="3150927491400159470">Recarregamento forçado</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Sempre executar em todos os sites</translation>
 <translation id="3312424061798279731">Idiomas ativados</translation>
 <translation id="3312903956926554846">Instalar na área de trabalho</translation>
-<translation id="3313473140726597081">Sua página de inicialização foi alterada para <ph name="URL" />. Para desativar extensões que alteram sua página de inicialização, clique em Restaurar.</translation>
 <translation id="3313590242757056087">Para definir quais websites o usuário supervisionado pode visualizar, configure restrições
     e configurações acessando <ph name="MANAGEMENT_URL" />.
     Se você não alterar as configurações padrão, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informações sobre o aplicativo</translation>
 <translation id="3335947283844343239">Reabrir guia fechada</translation>
-<translation id="3337069537196930048">O <ph name="PLUGIN_NAME" /> foi bloqueado porque está desatualizado.</translation>
 <translation id="3340978935015468852">configurações</translation>
 <translation id="3341703758641437857">Permitir acesso aos URLs do arquivo</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" gostaria de remover essa extensão.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Página adicionada como favorito</translation>
 <translation id="3389312115541230716">Clique com o botão direito do mouse no ícone <ph name="SMALL_PRODUCT_LOGO" /> na barra de tarefas</translation>
 <translation id="3391716558283801616">Aba 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> deseja utilizar sua câmera e microfone.</translation>
 <translation id="3396331542604645348">A impressora selecionada não está disponível ou não foi instalada corretamente. Verifique sua impressora ou selecione outra.</translation>
 <translation id="3399432415385675819">As notificações serão desativadas</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">O Google Chrome é atualizado automaticamente para que você tenha sempre a versão mais recente.</translation>
 <translation id="3551320343578183772">Fechar guia</translation>
 <translation id="3552780134252864554">Limpar ao sair</translation>
-<translation id="355298399003313926"><ph name="URL" /> quer responder a eventos de acessibilidade.</translation>
 <translation id="3555812735919707620">Remover extensão</translation>
 <translation id="3556000484321257665">Seu mecanismo de pesquisa foi alterado para <ph name="URL" />.</translation>
-<translation id="3561217442734750519">O valor inserido para a chave privada deve ser um caminho válido.</translation>
 <translation id="3563432852173030730">Não foi possível fazer o download do aplicativo Kiosk.</translation>
 <translation id="3564334271939054422">A rede Wi-Fi que você está usando (<ph name="NETWORK_ID" />) pode exigir que você visite sua página de login.</translation>
 <translation id="3564708465992574908">Níveis de zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Restrições de nome do certificado</translation>
 <translation id="3596235046596950091">Ativar serviços em nuvem</translation>
 <translation id="3599863153486145794">Limpa o histórico de todos os dispositivos conectados. Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">O acesso aos arquivos locais de seu dispositivo foi desativado pelo administrador.</translation>
 <translation id="3600792891314830896">Silenciar sites que reproduzem sons</translation>
 <translation id="3603177256297531067">Não foi possível traduzir esta página</translation>
 <translation id="3603533104205588786">Você pode clicar no ícone da estrela para adicionar uma página aos favoritos</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Capturas de tela desativadas</translation>
 <translation id="3625870480639975468">Redefinir o zoom</translation>
 <translation id="3626281679859535460">Brilho</translation>
-<translation id="3627052133907344175">A extensão requer "<ph name="IMPORT_NAME" />" com a versão mínima "<ph name="IMPORT_VERSION" />", mas apenas a versão "<ph name="INSTALLED_VERSION" />" está instalada.</translation>
 <translation id="3627320433825461852">Menos de 1 minuto restante</translation>
 <translation id="3627588569887975815">Abrir link em janela &amp;anônima</translation>
 <translation id="3627671146180677314">Hora de renovação do certificado do Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Configurações de idioma</translation>
 <translation id="3668823961463113931">Manipuladores</translation>
 <translation id="3670229581627177274">Ativar Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> quer armazenar permanentemente dados grandes no computador local.</translation>
 <translation id="3672681487849735243">Foi detectado um erro de fábrica</translation>
 <translation id="367645871420407123">deixe em branco se você deseja definir a senha raiz como o valor da imagem de teste padrão</translation>
 <translation id="3678156199662914018">Extensão: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Você está off-line</translation>
 <translation id="3788401245189148511">Ele poderia:</translation>
 <translation id="3789841737615482174">Instalar</translation>
-<translation id="3790146417033334899">O plug-in <ph name="PLUGIN_NAME" /> só funciona na área de trabalho.</translation>
 <translation id="379082410132524484">Seu cartão expirou</translation>
 <translation id="3792890930871100565">Desconectar impressoras</translation>
 <translation id="379422718204375917">Use o Smart Lock para fazer login na sua conta</translation>
-<translation id="3794595850995182458">Sair da página</translation>
 <translation id="3796648294839530037">Redes favoritas:</translation>
 <translation id="3797900183766075808">&amp;Pesquisar “<ph name="SEARCH_TERMS" />” no <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Permite ativar/desativar o recurso "Tocar para clicar"</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Ativar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Tipo de salvamento inválido digitado.</translation>
 <translation id="3983586614702900908">dispositivos de um fornecedor desconhecido</translation>
-<translation id="3984413272403535372">Erro ao assinar a extensão.</translation>
 <translation id="3987938432087324095">Não entendi.</translation>
 <translation id="3988996860813292272">Selecionar fuso horário</translation>
 <translation id="3989635538409502728">Sair</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Instalar apps e jogos do Google Play no Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Saber mais&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Aceitar fazer parte do grupo</translation>
 <translation id="4090103403438682346">Ativa o acesso verificado</translation>
-<translation id="4090404313667273475">O <ph name="PLUGIN_NAME" /> é necessário para a exibição de alguns elementos desta página.</translation>
 <translation id="4090535558450035482">Esta extensão é gerenciada e não pode ser removida.</translation>
 <translation id="4091434297613116013">folhas de papel</translation>
 <translation id="4093955363990068916">Arquivo local:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">O <ph name="PRODUCT_NAME" /> agora pode sincronizar suas senhas.</translation>
 <translation id="4715553623069266137">muito curto (0,8 seg)</translation>
 <translation id="4716483597559580346">Executar Powerwash para maior segurança</translation>
-<translation id="471800408830181311">Falha ao emitir a chave privada.</translation>
 <translation id="4720113199587244118">Adicionar dispositivos</translation>
 <translation id="4720185134442950733">Rede de dados móveis</translation>
 <translation id="4722920479021006856">O <ph name="APP_NAME" /> está compartilhando sua tela.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> deseja se comunicar com a extensão "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Aceitar</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> deseja utilizar sua câmera.</translation>
 <translation id="4920887663447894854">Os seguintes sites foram impedidos de rastrear o seu local nesta página:</translation>
 <translation id="492299503953721473">Remover apps Android</translation>
 <translation id="4923279099980110923">Sim, eu quero ajudar</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Esta extensão contém malware.</translation>
 <translation id="498294082491145744">Alterar configurações que controlam o acesso dos websites a recursos como cookies, JavaScript, plug-ins, geolocalização, microfone, câmera etc.</translation>
 <translation id="4988526792673242964">Páginas</translation>
-<translation id="4988792151665380515">Falha ao exportar chave pública.</translation>
 <translation id="49896407730300355">Girar no s&amp;entido anti-horário</translation>
 <translation id="4989966318180235467">Inspecionar página de &amp;fundo</translation>
 <translation id="4990343175649730969">Fazer o download da Ferramenta de limpeza do Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Não mostrar isto novamente</translation>
 <translation id="5027550639139316293">Certificado de e-mail</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
-<translation id="5028012205542821824">A instalação não está ativada.</translation>
 <translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="5036662165765606524">Não permitir que nenhum site faça download de vários arquivos automaticamente</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Ocorreu um erro.</translation>
 <translation id="5094721898978802975">Comunicar-se com aplicativos nativos de colaboração</translation>
 <translation id="5097002363526479830">Falha na conexão à rede "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Não é possível encontrar o caminho absoluto para o diretório do pacote.</translation>
 <translation id="5099354524039520280">para cima</translation>
 <translation id="5100114659116077956">Para oferecer os recursos mais recentes, seu Chromebox precisa ser atualizado.</translation>
 <translation id="5101042277149003567">Abrir todos os favoritos</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Mostrar na pasta</translation>
 <translation id="5171045022955879922">Pesquisar ou digitar URL</translation>
 <translation id="5171343362375269016">Memória trocada</translation>
-<translation id="5175870427301879686"><ph name="URL" /> quer armazenar permanentemente os dados no computador local.</translation>
 <translation id="5177479852722101802">Continuar bloqueando acesso à câmera e ao microfone</translation>
 <translation id="5177526793333269655">Visualização em miniatura</translation>
 <translation id="5177549709747445269">Você está usando dados móveis</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatar este dispositivo</translation>
 <translation id="5293170712604732402">Restaurar configurações para os padrões originais</translation>
 <translation id="5298219193514155779">Tema criado por</translation>
-<translation id="5298363578196989456">Não foi possível importar a extensão "<ph name="IMPORT_NAME" />", porque ela não é um módulo compartilhado.</translation>
 <translation id="5299109548848736476">Não rastrear</translation>
 <translation id="5299682071747318445">Todos os dados são criptografados com sua senha de sincronização</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" deseja parear com</translation>
 <translation id="5332624210073556029">Fuso horário:</translation>
 <translation id="5334142896108694079">Cache de script</translation>
-<translation id="533433379391851622">Versão esperada "<ph name="EXPECTED_VERSION" />", mas era "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Exibir código fonte</translation>
 <translation id="5335458522276292100">Fazendo backup de <ph name="FILE_COUNT" /> arquivo(s) para o <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instalada por terceiro.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Permitir que os sites reproduzam sons</translation>
 <translation id="5390284375844109566">Banco de dados indexado</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5396126354477659676">O plug-in <ph name="PEPPER_PLUGIN_NAME" /> do domínio <ph name="PEPPER_PLUGIN_DOMAIN" /> deseja acessar seu computador.</translation>
 <translation id="5397794290049113714">Você</translation>
 <translation id="5398572795982417028">Referência de página fora do limite, que é <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anúncios bloqueados</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Restaurar todas as guias</translation>
 <translation id="5486261815000869482">Confirmar senha</translation>
 <translation id="5486275809415469523">O <ph name="APP_NAME" /> está compartilhando sua tela com <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">O valor inserido para a chave privada deve existir.</translation>
 <translation id="5486561344817861625">Simular reinicialização do navegador</translation>
 <translation id="5487521232677179737">Limpar dados</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" copiado</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">O download da atualização será feito com <ph name="UPDATE_SIZE_MB" /> MB de dados móveis. Quer continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Outros mecanismos de pesquisa</translation>
-<translation id="5606674617204776232">O plug-in <ph name="PEPPER_PLUGIN_NAME" /> do domínio <ph name="PEPPER_PLUGIN_DOMAIN" /> deseja acessar seu dispositivo.</translation>
 <translation id="5608580678041221894">Toque nas teclas a seguir para ajustar ou mover a área de corte</translation>
 <translation id="5609231933459083978">Este aplicativo parece ser inválido.</translation>
 <translation id="5610038042047936818">Alternar para o modo de câmera</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Traduzida</translation>
 <translation id="5991049340509704927">Ampliar</translation>
 <translation id="5993332328670040093">Seu uso de dados não será mais medido.</translation>
-<translation id="6003177993629630467">Talvez o <ph name="PRODUCT_NAME" /> não consiga se manter atualizado.</translation>
 <translation id="600424552813877586">Aplicativo inválido.</translation>
 <translation id="6005695835120147974">Roteador de mídia</translation>
 <translation id="6006484371116297560">Clássico</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Backup em nuvem</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6040852767465482106">Identidade anônima</translation>
+<translation id="6041155700700864984">Sair da Tela inteira</translation>
 <translation id="604124094241169006">Automático</translation>
 <translation id="6042169520002885235">Selecionar um fabricante e um modelo de impressora</translation>
 <translation id="6042308850641462728">Mais</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Recarregamento normal</translation>
 <translation id="6059652578941944813">Hierarquia de certificados</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
-<translation id="6060435378291459521">O plug-in <ph name="PLUGIN_NAME" /> falhou.</translation>
 <translation id="6064217302520318294">Bloqueio de tela</translation>
 <translation id="6065289257230303064">Atributos do diretório do requerente do certificado</translation>
 <translation id="6068338049763724728">Ativar registro remoto</translation>
@@ -3348,7 +3302,6 @@
 <translation id="6237816943013845465">Permite ajustar a resolução da tela</translation>
 <translation id="6238923052227198598">Manter a anotação mais recente na tela de bloqueio</translation>
 <translation id="6239558157302047471">Atualizar &amp;frame</translation>
-<translation id="624022915548992686">Sair da página</translation>
 <translation id="6241530762627360640">Acessar informações sobre dispositivos Bluetooth pareados com seu sistema e descobrir dispositivos Bluetooth nas proximidades.</translation>
 <translation id="6243774244933267674">Servidor não disponível</translation>
 <translation id="6246413617632217567">Não foi possível importar o usuário supervisionado. Verifique o espaço no disco rígido e as permissões e tente novamente.</translation>
@@ -3397,13 +3350,11 @@
 <translation id="6312403991423642364">Erro de rede desconhecido</translation>
 <translation id="6313641880021325787">SAIR DE RV</translation>
 <translation id="6314819609899340042">Você ativou os recursos de depuração neste dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Sua página de inicialização foi alterada para incluir <ph name="URL" />. Para desativar extensões que alteram sua página de inicialização, clique em Restaurar.</translation>
 <translation id="6315493146179903667">Trazer todas para frente</translation>
 <translation id="6316806695097060329">Este dispositivo <ph name="SHORT_PRODUCT_NAME" /> foi desenvolvido para oferecer a melhor experiência da Web para você.</translation>
 <translation id="6317318380444133405">Não é mais compatível.</translation>
 <translation id="6317369057005134371">Aguardando janela do aplicativo...</translation>
 <translation id="6318407754858604988">Download iniciado</translation>
-<translation id="6322279351188361895">Falha ao ler a chave privada.</translation>
 <translation id="6325191661371220117">Desativar inicialização automática</translation>
 <translation id="6326175484149238433">Remover do Google Chrome</translation>
 <translation id="6326855256003666642">Contagem de manutenção de atividade</translation>
@@ -3412,7 +3363,6 @@
 <translation id="6333049849394141510">Escolher o que sincronizar</translation>
 <translation id="6333064448949140209">O arquivo será enviado ao Google para depuração</translation>
 <translation id="6333834492048057036">Foco na barra de endereço p/ pesquisa</translation>
-<translation id="6336907568130557310">Suas senhas ficarão visíveis para qualquer pessoa que tiver acesso ao arquivo exportado. Não compartilhe o arquivo com ninguém e exclua-o após a importação.</translation>
 <translation id="6339668969738228384">Criar um novo perfil para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Não foi possível conectar-se ao servidor. Verifique a conexão de rede e tente novamente. Se o problema persistir, reinicie o Chromebook.</translation>
 <translation id="6340071272923955280">Protocolo de impressão via Internet (IPPS)</translation>
@@ -3441,7 +3391,6 @@
 <translation id="6385543213911723544">Os sites podem salvar e ler os dados dos cookies</translation>
 <translation id="6388771388956873507">Encontre o sensor de impressão digital no dispositivo e toque nele com seu dedo</translation>
 <translation id="6390799748543157332">As páginas que você visualiza nesta janela não aparecem no histórico do navegador e não deixam outros rastros, como cookies, no computador depois que todas as janelas abertas no modo de visitante são fechadas. No entanto, todos os arquivos baixados serão preservados.</translation>
-<translation id="6391538222494443604">O diretório de entrada deve existir.</translation>
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />informações<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />métricas do sistema<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Pare de falar</translation>
 <translation id="6397592254427394018">Abrir todos os favoritos em &amp;janela  anônima</translation>
@@ -3499,7 +3448,6 @@
 <translation id="6458308652667395253">Gerenciar o bloqueio de JavaScript...</translation>
 <translation id="6459488832681039634">Usar seleção para buscar</translation>
 <translation id="6460601847208524483">Localizar próximo</translation>
-<translation id="6462080265650314920">Os aplicativos devem ser servidos com o tipo de conteúdo "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Você ainda está aí?</translation>
 <translation id="6463795194797719782">&amp;Editar</translation>
 <translation id="6466988389784393586">&amp;Abrir todos os favoritos</translation>
@@ -3629,7 +3577,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Quer que o Google traduza esta página de <ph name="SOURCE_LANGUAGE" /> para <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispositivo apontador conectado</translation>
-<translation id="6677037229676347494">ID esperado "<ph name="EXPECTED_ID" />", mas era "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL de consulta</translation>
 <translation id="6680028776254050810">Trocar usuários</translation>
 <translation id="6680442031740878064">Disponível: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3769,8 +3716,6 @@
 <translation id="6903534926908201625">Você pode personalizar a qualquer momento nas <ph name="BEGIN_LINK" />Configurações<ph name="END_LINK" /> quais informações o Google coleta.</translation>
 <translation id="6904344821472985372">Revogar acesso a arquivos</translation>
 <translation id="6904655473976120856">Pressione o botão App para sair</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> deseja compartilhar sua tela.</translation>
-<translation id="6909461304779452601">Aplicativos, extensões e scripts de usuário não podem ser adicionados a partir deste site.</translation>
 <translation id="6910211073230771657">Excluído</translation>
 <translation id="691024665142758461">Fazer o download de vários arquivos</translation>
 <translation id="6911324888870229398">A conexão de rede foi perdida. Verifique a conexão ou tente outra rede Wi-Fi.</translation>
@@ -4108,7 +4053,6 @@
 <translation id="747114903913869239">Erro: Não foi possível decodificar a extensão</translation>
 <translation id="7473891865547856676">Não, obrigado</translation>
 <translation id="747459581954555080">Restaurar todas</translation>
-<translation id="7475034671245341386">O plug-in <ph name="PLUGIN_NAME" /> encontrou um erro.</translation>
 <translation id="7475671414023905704">URL da senha perdida do Netscape</translation>
 <translation id="7476454130948140105">Bateria muito fraca para atualizar (<ph name="BATTERY_PERCENT" />%</translation>
 <translation id="7477347901712410606">Caso tenha esquecido sua senha, pare e reinicie a sincronização através do <ph name="BEGIN_LINK" />Painel do Google<ph name="END_LINK" />.</translation>
@@ -4145,7 +4089,6 @@
 <translation id="7507930499305566459">Certificado do respondente de status</translation>
 <translation id="7508545000531937079">Apresentação de slides</translation>
 <translation id="7513029293694390567">Faça login automaticamente nos websites que usam credenciais armazenadas. Quando o recurso estiver desativado, será necessário fornecer uma confirmação todas as vezes antes de fazer login em um website.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> deseja identificar seu dispositivo de forma exclusiva para reproduzir conteúdo protegido.</translation>
 <translation id="7517569744831774757">Restaurar configurações aos padrões originais.</translation>
 <translation id="7517786267097410259">Criar uma senha:</translation>
 <translation id="7518150891539970662">Registros WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4175,7 +4118,6 @@
     tentar criar um usuário supervisionado novamente.</translation>
 <translation id="756445078718366910">Abrir janela do navegador</translation>
 <translation id="7564847347806291057">Encerrar processo</translation>
-<translation id="7565291891798266313">Seu mecanismo de pesquisa foi alterado para <ph name="URL" />. Para desativar extensões que alteram seu mecanismo de pesquisa, clique em Restaurar.</translation>
 <translation id="7566118625369982896">Gerenciar links do app do Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Dados do Chrome apagados</translation>
@@ -4184,7 +4126,6 @@
 <translation id="7573172247376861652">Carga da bateria</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Agrupar</translation>
-<translation id="7577815336900970562">Usar Wi-Fi ou rede celular para determinar o local</translation>
 <translation id="7579149537961810247">Ignorar sites</translation>
 <translation id="7580671184200851182">Reproduzir o mesmo áudio pelos alto-falantes (áudio mono)</translation>
 <translation id="7581462281756524039">Uma ferramenta de limpeza</translation>
@@ -4291,6 +4232,7 @@
 <translation id="7773726648746946405">Armazenamento da sessão</translation>
 <translation id="7781335840981796660">Todas as contas de usuário e os dados locais serão removidos.</translation>
 <translation id="7782102568078991263">Não há mais sugestões do Google</translation>
+<translation id="778330624322499012">Não foi possível carregar <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">As configurações de segurança em seu computador bloquearam este arquivo.</translation>
 <translation id="7786207843293321886">Sair da sessão de visitante</translation>
 <translation id="7786889348652477777">&amp;Recarregar aplicativo</translation>
@@ -4453,7 +4395,6 @@
 <translation id="8001504501378762252">Um site pode ter roubado sua senha</translation>
 <translation id="8004582292198964060">Navegador</translation>
 <translation id="8008356846765065031">Internet desconectada. Verifique sua conexão com a Internet.</translation>
-<translation id="8008765610824028412">Não foi possível carregar <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Enviar automaticamente informações do sistema e conteúdo da página ao Google para ajudar a detectar apps e sites perigosos</translation>
 <translation id="8012382203418782830">Esta página foi traduzida.</translation>
 <translation id="8014154204619229810">O atualizador está sendo executado no momento. Aguarde um minuto e atualize para verificar novamente.</translation>
@@ -4570,7 +4511,6 @@
 <translation id="8191230140820435481">Gerenciar seus aplicativos, extensões e temas</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Tamanho em disco</translation>
-<translation id="8195739004487400241">Sua página inicial foi alterada para <ph name="URL" />. Para desativar extensões que alteram sua página inicial, clique em Restaurar.</translation>
 <translation id="8199300056570174101">Propriedades da rede (serviço) e do dispositivo</translation>
 <translation id="8200772114523450471">Retomar</translation>
 <translation id="8202160505685531999">Digite sua senha novamente para atualizar o perfil do <ph name="DEVICE_TYPE" />.</translation>
@@ -4614,7 +4554,6 @@
 <translation id="8261378640211443080">Esta extensão não está listada na <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e pode ter sido adicionada sem seu conhecimento.</translation>
 <translation id="8261387128019234107">Adicionar conta para <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Excluir</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> não está implementada nesta versão.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> desativou o cursor do mouse.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ativou a tela cheia.</translation>
 <translation id="8270242299912238708">Documentos em PDF</translation>
@@ -4716,6 +4655,7 @@
 <translation id="8454288007744638700">Ou selecione uma nova rede:</translation>
 <translation id="845627346958584683">Tempo de vencimento</translation>
 <translation id="8456681095658380701">Nome inválido</translation>
+<translation id="8457451314607652708">Importar favoritos</translation>
 <translation id="8460336040822756677">Se você desativar o Smart Lock para <ph name="DEVICE_TYPE" />, não poderá desbloquear dispositivos Chrome usando seu smartphone. Será necessário digitar uma senha.</translation>
 <translation id="8461329675984532579">Nome do provedor doméstico</translation>
 <translation id="84613761564611563">Interface de usuário de configuração de rede solicitada. Aguarde...</translation>
@@ -4747,7 +4687,6 @@
 <translation id="850875081535031620">Nenhum software perigoso encontrado</translation>
 <translation id="8512476990829870887">Encerrar processo</translation>
 <translation id="851263357009351303">Sempre permitir que <ph name="HOST" /> mostre imagens</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" está fazendo a depuração desse navegador.</translation>
 <translation id="8521475323816527629">Acessar seus apps rapidamente</translation>
 <translation id="8523493869875972733">Manter alterações</translation>
 <translation id="8523849605371521713">Adicionada por uma política</translation>
@@ -4803,7 +4742,6 @@
 <translation id="8620765578342452535">Configurar conexões de rede</translation>
 <translation id="8620790565535071193">Falha na verificação</translation>
 <translation id="8622877356447980900">Quer traduzir esta página?</translation>
-<translation id="8623004009673949077">O aplicativo com o atributo de manifesto 'kiosk_only' precisa ser instalado no modo quiosque do Chrome OS.</translation>
 <translation id="8624205858755890468">Permite que o Assistente mostre informações, ações e apps relacionados para você.</translation>
 <translation id="862542460444371744">&amp;Extensões</translation>
 <translation id="8627151598708688654">Selecionar fonte</translation>
@@ -4952,7 +4890,6 @@
 <translation id="882204272221080310">Atualizar firmware para maior segurança.</translation>
 <translation id="8823514049557262177">Copiar texto do link</translation>
 <translation id="8824701697284169214">Adicionar Pá&amp;gina...</translation>
-<translation id="8827850355924932817">Usar a rede Wi-Fi para determinar o local</translation>
 <translation id="8828933418460119530">Nome DNS</translation>
 <translation id="8830796635868321089">A verificação de atualização não pode usar as configurações de proxy atuais. Ajuste suas <ph name="PROXY_SETTINGS_LINK_START" />configurações de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">A configuração de rede é controlada por <ph name="USER_EMAIL" />.</translation>
@@ -4984,9 +4921,7 @@
 <translation id="8879284080359814990">&amp;Mostrar como guia</translation>
 <translation id="8884961208881553398">Adicionar novos serviços</translation>
 <translation id="8885197664446363138">O Smart Lock não está disponível</translation>
-<translation id="8885905466771744233">Já existe uma chave privada para a extensão especificada. Reutilize essa chave ou exclua-a primeiro.</translation>
 <translation id="8888432776533519951">Cor:</translation>
-<translation id="8892992092192084762">Tema "<ph name="THEME_NAME" />" instalado</translation>
 <translation id="8893928184421379330">O dispositivo <ph name="DEVICE_LABEL" /> não foi reconhecido.</translation>
 <translation id="8895454554629927345">Lista de favoritos</translation>
 <translation id="88986195241502842">Página para baixo</translation>
@@ -5001,7 +4936,6 @@
 <translation id="8908902564709148335">Atenção: você ativou a sinalização scripts-exigem-ação neste computador, o que limita as capacidades desta extensão. No entanto, outros dispositivos podem não suportar essa sinalização ou a ativação dela. Nesses dispositivos, esta extensão também pode:</translation>
 <translation id="8910146161325739742">Compartilhar sua tela</translation>
 <translation id="8910222113987937043">As alterações feitas nos seus favoritos, histórico, senhas e outras configurações não serão mais sincronizadas com sua Conta do Google. No entanto, os dados já existentes permanecerão armazenados na sua conta e será possível gerenciá-los no <ph name="BEGIN_LINK" />Painel do Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">O Google sinalizou a extensão <ph name="EXTENSION_NAME" /> como maliciosa e impediu a instalação.</translation>
 <translation id="8912793549644936705">Esticar</translation>
 <translation id="8915370057835397490">Carregando sugestão</translation>
 <translation id="8916476537757519021">Subquadro anônimo: <ph name="SUBFRAME_SITE" /></translation>
@@ -5107,7 +5041,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Mouse USB conectado</translation>
 <translation id="9076523132036239772">Seu e-mail ou sua senha não pode ser verificado. Tente conectar-se a uma rede.</translation>
-<translation id="907841381057066561">Falha ao criar arquivo zip temporário durante a compactação.</translation>
 <translation id="9084064520949870008">Abrir como janela</translation>
 <translation id="9088234649737575428">O <ph name="PLUGIN_NAME" /> está bloqueado pela política da empresa</translation>
 <translation id="9088917181875854783">Confirme se esta senha está sendo mostrada em "<ph name="DEVICE_NAME" />":</translation>
@@ -5198,11 +5131,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Inserir senha</translation>
 <translation id="939736085109172342">Nova pasta</translation>
-<translation id="941543339607623937">Chave privada inválida.</translation>
 <translation id="942532530371314860">O app <ph name="APP_NAME" /> está compartilhando áudio e uma guia do Chrome.</translation>
 <translation id="942954117721265519">Não há imagens neste diretório.</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
-<translation id="951981865514037445"><ph name="URL" /> quer usar a localização de seu dispositivo.</translation>
 <translation id="952992212772159698">Desativado</translation>
 <translation id="9580706199804957">Não foi possível conectar-se aos serviços do Google</translation>
 <translation id="958515377357646513">Toque para avançar.</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 9884d7b..bfd2802a 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Cifrar apenas</translation>
 <translation id="1039337018183941703">Ficheiro inválido ou danificado</translation>
 <translation id="1042174272890264476">O seu computador também tem a biblioteca RLZ de <ph name="SHORT_PRODUCT_NAME" /> incorporada. A RLZ atribui uma etiqueta não exclusiva e não identificável a nível pessoal para medir as pesquisas e a utilização de <ph name="SHORT_PRODUCT_NAME" /> impulsionada por uma campanha promocional específica. Estas etiquetas por vezes aparecem em consultas da Pesquisa Google em <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> pretende armazenar definitivamente dados de grandes dimensões no seu dispositivo.</translation>
 <translation id="1046059554679513793">Ups, esse nome já está a ser utilizado!</translation>
 <translation id="1047431265488717055">Copiar te&amp;xto do link</translation>
 <translation id="1047726139967079566">Marcar esta página...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Pretende restaurar o motor de pesquisa predefinido?</translation>
 <translation id="1177863135347784049">Personalizado</translation>
 <translation id="1178581264944972037">Pausa</translation>
-<translation id="1179803038870941185"><ph name="URL" /> pretende obter o controlo total sobre os seus dispositivos MIDI.</translation>
 <translation id="1181037720776840403">Remover</translation>
 <translation id="1183237619868651138">Não é possível instalar <ph name="EXTERNAL_CRX_FILE" /> na cache local.</translation>
 <translation id="1185924365081634987">Também pode experimentar <ph name="GUEST_SIGNIN_LINK_START" />navegar como convidado<ph name="GUEST_SIGNIN_LINK_END" /> para corrigir este erro de rede.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Acesso a um ficheiro armazenado no computador}other{Acesso a # ficheiros armazenados no computador}}</translation>
 <translation id="1195076408729068893">Para iniciar o Smart Lock, introduza a sua palavra-passe. Da próxima vez, pode utilizar o telemóvel para desbloquear o <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Erro desconhecido.</translation>
-<translation id="1196338895211115272">Falha ao exportar chave privada.</translation>
 <translation id="119738088725604856">Janela de captura de ecrã</translation>
 <translation id="1197979282329025000">Ocorreu um erro ao obter as capacidades da impressora <ph name="PRINTER_NAME" />. Não foi possível registar esta impressora em <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Vamos começar</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">O gestor recomenda um valor específico para esta definição.</translation>
 <translation id="1225177025209879837">A processar o pedido...</translation>
 <translation id="1225211345201532184">Artigo de prateleira 5</translation>
-<translation id="1225404570112441414">Adicione este site à prateleira para o utilizar a qualquer momento.</translation>
 <translation id="1227507814927581609">A autenticação falhou ao ligar a "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu do sistema</translation>
 <translation id="1232569758102978740">Sem nome</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Ficheiro HTML de marcadores</translation>
 <translation id="1303671224831497365">Não foram encontrados dispositivos Bluetooth</translation>
 <translation id="1306606229401759371">Alterar definições</translation>
-<translation id="1307398858972670978">Aceda às suas palavras-passe a partir de qualquer dispositivo em <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ups! O sistema não conseguiu guardar a chave de acesso da API de longo prazo para este dispositivo.</translation>
 <translation id="1313405956111467313">Configuração automática do proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Pesquisar</translation>
 <translation id="1386387014181100145">Olá.</translation>
 <translation id="138784436342154190">Pretende restaurar a página inicial predefinida?</translation>
-<translation id="1389297115360905376">Só é possível adicionar a partir da <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Abrir como Separador Normal</translation>
-<translation id="1391807639023934267">Página carregada mais rapidamente.</translation>
 <translation id="1393283411312835250">Sol e nuvens</translation>
 <translation id="1395262318152388157">Controlo de deslize da procura</translation>
 <translation id="1395730723686586365">Atualizador iniciado</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Está a atualizar para uma versão instável do <ph name="PRODUCT_NAME" /> que contém funcionalidades que estão em curso. Ocorrerão falhas e erros inesperados. Prossiga com cuidado.</translation>
 <translation id="1415990189994829608">A extensão <ph name="EXTENSION_NAME" /> (ID da extensão "<ph name="EXTENSION_ID" />") não é permitida neste tipo de sessão.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Ora bolas! Falha ao gerar chave privada RSA aleatória.</translation>
 <translation id="1420834118113404499">Licenças de multimédia</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> para permitir a sincronização</translation>
 <translation id="1426410128494586442">Sim</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opiar Endereço do áudio</translation>
 <translation id="1465827627707997754">Fatia de piza</translation>
 <translation id="1467432559032391204">Esquerda</translation>
-<translation id="1467999917853307373"><ph name="URL" /> pretende armazenar definitivamente dados no seu dispositivo móvel.</translation>
-<translation id="1470719357688513792">As novas definições de cookies terão efeito depois de recarregar a página.</translation>
 <translation id="1470811252759861213">Para obter as suas extensões em todos os computadores, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" não foi carregado. Não existe espaço livre suficiente no seu Google Drive.</translation>
 <translation id="1475502736924165259">Tem certificados em arquivo que não encaixam em nenhuma das restantes categorias</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Cursor do rato grande</translation>
 <translation id="1543284117603151572">Importado do Edge</translation>
 <translation id="1545177026077493356">Modo quiosque automático</translation>
+<translation id="1545775234664667895">Tema instalado "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL com %s em vez da consulta</translation>
 <translation id="1546280085599573572">Esta extensão alterou a página apresentada quando clica no botão Página inicial.</translation>
 <translation id="1547572086206517271">Atualização necessária</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />analisar<ph name="END_BOLD" /> os Sites que o utilizador supervisionado tenha visitado e
     <ph name="BEGIN_BOLD" />gerir<ph name="END_BOLD" /> outras definições.</translation>
 <translation id="1648943974594387137">Os detalhes de início de sessão estão desatualizados</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> linhas não apresentadas.&gt;</translation>
 <translation id="1650371550981945235">Mostrar opções de introdução</translation>
 <translation id="1650709179466243265">Adicionar www. e .com e abrir endereço</translation>
 <translation id="1651008383952180276">Tem de introduzir a mesma frase de acesso duas vezes</translation>
-<translation id="1652972346408808053">Palavra-passe guardada. Aceda às suas palavras-passe a partir de qualquer dispositivo em <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Adicione a impressora ao Google Cloud Print para poder imprimir em qualquer local.}other{Adicione # impressoras ao Google Cloud Print para poder imprimir em qualquer local.}}</translation>
 <translation id="1657406563541664238">Ajude a melhorar o <ph name="PRODUCT_NAME" /> enviando automaticamente estatísticas de utilização e relatórios de falhas para a Google</translation>
 <translation id="1658424621194652532">Esta página está a aceder ao seu microfone.</translation>
@@ -655,7 +644,7 @@
 <translation id="1999115740519098545">No arranque</translation>
 <translation id="2006638907958895361">Abrir link na aplicação <ph name="APP" /></translation>
 <translation id="2007404777272201486">Comunicar um problema...</translation>
-<translation id="2015632741368427174">Redirecionamento bloqueado para o site:</translation>
+<translation id="2015632741368427174">Redirecionamento bloqueado para o seguinte site:</translation>
 <translation id="2016430552235416146">Tradicional</translation>
 <translation id="2017334798163366053">Desativar a recolha de dados de desempenho</translation>
 <translation id="2017836877785168846">Limpa o histórico e os preenchimentos automáticos da barra de endereço.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Continuar a bloquear cookies</translation>
 <translation id="204622017488417136">O dispositivo regressa à versão do Chrome instalada anteriormente. Todos os dados locais e as contas de utilizador são removidos. Não é possível anular esta ação.</translation>
 <translation id="2048182445208425546">Aceder ao tráfego da sua rede</translation>
-<translation id="2049137146490122801">O acesso a ficheiros guardados no seu computador foi desativado pelo seu gestor.</translation>
 <translation id="204914487372604757">Criar atalho</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2053312383184521053">Dados do estado inativo</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ainda não carregado</translation>
 <translation id="2107494551712864447">Adicionar uma impressão digital</translation>
-<translation id="2111843886872897694">As aplicações têm de ser publicadas a partir do anfitrião que afetam.</translation>
 <translation id="2112877397266219826">Ligar o controlador de toque para configurar</translation>
 <translation id="21133533946938348">Fixar Separador</translation>
 <translation id="2113479184312716848">Abrir &amp;Ficheiro...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Indique-nos o que está a acontecer</translation>
 <translation id="2229161054156947610">Falta mais de 1 hora</translation>
 <translation id="222931766245975952">Ficheiro truncado</translation>
-<translation id="222949136907494149"><ph name="URL" /> pretende utilizar a localização do seu computador.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Não é possível criar a pasta "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Clique para ver o doodle de hoje</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Bloquear sempre o acesso ao microfone</translation>
 <translation id="2367972762794486313">Mostrar aplicações</translation>
 <translation id="2371076942591664043">Abrir quando estiver concluí&amp;do</translation>
-<translation id="237336063998926520">Utilizar o seu endereço IP para determinar a localização</translation>
 <translation id="2377319039870049694">Mudar para a vista de lista</translation>
 <translation id="2377667304966270281">Falhas de hardware</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ficheiros selecionados</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> pretende copiar ficheiros de <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID da chave da autoridade de certificação</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> adicionada</translation>
-<translation id="246335896104539386">Importar marcadores</translation>
 <translation id="2464089476039395325">Proxy de HTTP</translation>
 <translation id="2468902267404883140">Não é possível estabelecer ligação ao telemóvel. Certifique-se de que está a utilizar um telemóvel Android compatível que está ligado e próximo. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensões não suportadas desativadas</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Desinstalar</translation>
 <translation id="2487067538648443797">Adicionar novo marcador</translation>
 <translation id="248861575772995840">Não é possível localizar o telemóvel. Certifique-se de que o Bluetooth de <ph name="DEVICE_TYPE" /> está ativado. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Um plug-in (<ph name="PLUGIN_NAME" />) não está a responder.</translation>
 <translation id="2489428929217601177">dia anterior</translation>
 <translation id="2489918096470125693">Adicionar &amp;Pasta...</translation>
 <translation id="249113932447298600">Lamentamos, mas de momento o aparelho <ph name="DEVICE_LABEL" /> não é suportado.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Parabéns! O serviço de dados "<ph name="NAME" />" foi ativado e está pronto a funcionar.</translation>
 <translation id="2566124945717127842">Efetue um Powerwash para repor o dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" /> e deixá-lo como novo.</translation>
 <translation id="2568774940984945469">Contentor da Barra de informações</translation>
-<translation id="2570000010887652771">Poupou dados.</translation>
 <translation id="257088987046510401">Temas</translation>
 <translation id="2572032849266859634">Autorizações só de leitura concedidas a <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Escolha uma fotografia e um nome</translation>
 <translation id="2575247648642144396">Este ícone estará visível quando a extensão puder agir na página atual. Clique no ícone ou prima <ph name="EXTENSION_SHORTCUT" /> para utilizar esta extensão.</translation>
 <translation id="2575268751393592580">Não é possível localizar o telemóvel. Certifique-se de que o <ph name="DEVICE_TYPE" /> está ligado ao Wi-Fi ou a uma rede móvel. &lt;a&gt;Saiba mais&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Já existe um ficheiro CRX com este nome.</translation>
 <translation id="257779572837908839">Configurar como Chromebox para reuniões</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Não é possível desmontar o volume<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Se eliminar um certificado de uma autoridade de certificação (AC), o navegador deixará de confiar nos certificados emitidos por essa autoridade.</translation>
 <translation id="2653659639078652383">Submeter</translation>
 <translation id="265390580714150011">Campo Valor</translation>
-<translation id="2654286334048437383">Exportar marcadores</translation>
 <translation id="2655386581175833247">Certificado de utilizador:</translation>
 <translation id="2660779039299703961">Evento</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Adicionar Galeria Multimédia por Diretório</translation>
 <translation id="2908789530129661844">Reduzir o ecrã</translation>
 <translation id="2910318910161511225">Estabeleça ligação a uma rede e tente novamente.</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> pretende utilizar o seu microfone.</translation>
 <translation id="2913331724188855103">Permitir que os sites guardem e leiam dados de cookies (recomendado)</translation>
 <translation id="2916073183900451334">Premir Separador numa página Web realça links e campos de formulários</translation>
 <translation id="2916745397441987255">Pesquisar extensões</translation>
@@ -1362,7 +1341,7 @@
 <translation id="3051523411789012618">Mover a janela para cima</translation>
 <translation id="3053013834507634016">Utilização de chave de certificado</translation>
 <translation id="3057861065630527966">Fazer uma cópia de segurança de fotografias e vídeos</translation>
-<translation id="3060379269883947824">Ativar Selecionar para falar</translation>
+<translation id="3060379269883947824">Ativar Selecionar para ativar voz</translation>
 <translation id="3061707000357573562">Serviço de patch</translation>
 <translation id="3064410671692449875">Dados insuficientes</translation>
 <translation id="3065041951436100775">Comentários acerca de separador desativado.</translation>
@@ -1417,7 +1396,6 @@
 <translation id="3141318088920353606">A ouvir…</translation>
 <translation id="3141917231319778873">O pedido indicado não é suportado para: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">CONCLUÍDO</translation>
-<translation id="3144135466825225871">Falha ao substituir o ficheiro crx. Verifique se o ficheiro está a ser utilizado.</translation>
 <translation id="3144647712221361880">Abrir link como</translation>
 <translation id="3149510190863420837">Aplicações do Chrome</translation>
 <translation id="3150927491400159470">Atualização Pesada</translation>
@@ -1527,7 +1505,6 @@
 <translation id="3309747692199697901">Executar sempre em todos os sites</translation>
 <translation id="3312424061798279731">Idiomas ativados</translation>
 <translation id="3312903956926554846">Instalar no ambiente de trabalho</translation>
-<translation id="3313473140726597081">A sua página inicial foi alterada para <ph name="URL" />. Para desativar as extensões que alteram a sua página inicial, clique em Restaurar.</translation>
 <translation id="3313590242757056087">Para definir que Sites o utilizador supervisionado pode ver, pode configurar restrições
     e definições em <ph name="MANAGEMENT_URL" />.
     Se não alterar as predefinições, <ph name="USER_DISPLAY_NAME" />
@@ -1543,7 +1520,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informações da aplicação</translation>
 <translation id="3335947283844343239">Reabrir separador fechado</translation>
-<translation id="3337069537196930048">O <ph name="PLUGIN_NAME" /> foi bloqueado porque está desatualizado.</translation>
 <translation id="3340978935015468852">definições</translation>
 <translation id="3341703758641437857">Permitir acesso a URLs de ficheiro</translation>
 <translation id="3342361181740736773">A extensão "<ph name="TRIGGERING_EXTENSION_NAME" />" pretende remover esta extensão.</translation>
@@ -1578,7 +1554,6 @@
 <translation id="3386219708421216619">Marcador adicionado</translation>
 <translation id="3389312115541230716">Clique com o botão direito no símbolo <ph name="SMALL_PRODUCT_LOGO" /> na barra de tarefas.</translation>
 <translation id="3391716558283801616">Separador 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> pretende utilizar a câmara e o microfone.</translation>
 <translation id="3396331542604645348">A impressora selecionada não está disponível ou não está instalada corretamente. Verifique a impressora ou tente selecionar outra impressora.</translation>
 <translation id="3399432415385675819">As notificações serão desativadas</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1690,10 +1665,8 @@
 <translation id="3550915441744863158">O Chrome é atualizado automaticamente para que tenha sempre a versão mais recente</translation>
 <translation id="3551320343578183772">Fechar Separador</translation>
 <translation id="3552780134252864554">Apagar à saída</translation>
-<translation id="355298399003313926"><ph name="URL" /> pretende responder a eventos de acessibilidade.</translation>
 <translation id="3555812735919707620">Remover extensão</translation>
 <translation id="3556000484321257665">O seu motor de pesquisa foi alterado para <ph name="URL" />.</translation>
-<translation id="3561217442734750519">O valor de entrada para uma chave privada tem de ser um caminho válido.</translation>
 <translation id="3563432852173030730">Não foi possível transferir a aplicação de quiosque.</translation>
 <translation id="3564334271939054422">A rede Wi-Fi que está a utilizar (<ph name="NETWORK_ID" />) pode exigir que aceda à respetiva página de início de sessão.</translation>
 <translation id="3564708465992574908">Níveis de zoom</translation>
@@ -1715,7 +1688,6 @@
 <translation id="3593965109698325041">Restrições de nome do certificado</translation>
 <translation id="3596235046596950091">Ativar serviços na nuvem</translation>
 <translation id="3599863153486145794">Limpa o histórico de todos os dispositivos com sessão iniciada. A sua Conta Google pode ter outras formas do histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">O acesso a ficheiros locais no seu dispositivo móvel foi desativado pelo seu gestor.</translation>
 <translation id="3600792891314830896">Desativar o som dos sites que reproduzem som</translation>
 <translation id="3603177256297531067">Não foi possível traduzir esta página</translation>
 <translation id="3603533104205588786">Pode clicar na estrela para adicionar uma página aos marcadores</translation>
@@ -1740,7 +1712,6 @@
 <translation id="3625258641415618104">Capturas de ecrã desativadas</translation>
 <translation id="3625870480639975468">Repor zoom</translation>
 <translation id="3626281679859535460">Brilho</translation>
-<translation id="3627052133907344175">A extensão requer "<ph name="IMPORT_NAME" />" com a versão mínima "<ph name="IMPORT_VERSION" />", mas apenas está instalada a versão "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Falta menos de 1 minuto</translation>
 <translation id="3627588569887975815">Abrir link numa janela sem re&amp;gisto</translation>
 <translation id="3627671146180677314">Período de renovação do certificado Netscape</translation>
@@ -1770,7 +1741,6 @@
 <translation id="3668570675727296296">Definições de idioma</translation>
 <translation id="3668823961463113931">Processadores</translation>
 <translation id="3670229581627177274">Ativar o Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> pretende armazenar permanentemente dados de grandes dimensões no seu computador local.</translation>
 <translation id="3672681487849735243">Foi detetado um erro de fábrica</translation>
 <translation id="367645871420407123">deixe em branco se pretender definir a palavra-passe de raiz como o valor da imagem de teste predefinido.</translation>
 <translation id="3678156199662914018">Extensão: <ph name="EXTENSION_NAME" /></translation>
@@ -1848,11 +1818,9 @@
 <translation id="3786301125658655746">Está offline</translation>
 <translation id="3788401245189148511">Esta poderia:</translation>
 <translation id="3789841737615482174">Instalar</translation>
-<translation id="3790146417033334899">O <ph name="PLUGIN_NAME" /> só funciona no computador.</translation>
 <translation id="379082410132524484">O seu cartão de crédito expirou</translation>
 <translation id="3792890930871100565">Desligar impressoras</translation>
 <translation id="379422718204375917">Utilizar o Smart Lock para iniciar sessão na sua conta</translation>
-<translation id="3794595850995182458">Página de saída</translation>
 <translation id="3796648294839530037">Redes favoritas:</translation>
 <translation id="3797900183766075808">Pe&amp;squisar no <ph name="SEARCH_ENGINE" /> por "<ph name="SEARCH_TERMS" />"</translation>
 <translation id="3798325802885154040">Permite-lhe ativar/desativar a funcionalidade tocar para clicar</translation>
@@ -1983,7 +1951,6 @@
 <translation id="3979748722126423326">Ativar <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Introduzido tipo de gravação inválido.</translation>
 <translation id="3983586614702900908">dispositivos de um fornecedor desconhecido</translation>
-<translation id="3984413272403535372">Erro durante a assinatura da extensão.</translation>
 <translation id="3987938432087324095">Lamento, mas não compreendi.</translation>
 <translation id="3988996860813292272">Selecionar fuso horário</translation>
 <translation id="3989635538409502728">Terminar sessão</translation>
@@ -2039,7 +2006,6 @@
 <translation id="4087470595660267445">Instale aplicações e jogos do Google Play no Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Saiba mais&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Aceitar para o grupo</translation>
 <translation id="4090103403438682346">Ativar acesso confirmado</translation>
-<translation id="4090404313667273475">É necessário o <ph name="PLUGIN_NAME" /> para apresentar alguns elementos nesta página.</translation>
 <translation id="4090535558450035482">(Esta extensão é gerida e não é possível removê-la.)</translation>
 <translation id="4091434297613116013">folhas de papel</translation>
 <translation id="4093955363990068916">Ficheiro local:</translation>
@@ -2373,7 +2339,6 @@
 <translation id="4714531393479055912">O <ph name="PRODUCT_NAME" /> pode agora sincronizar as palavras-passe.</translation>
 <translation id="4715553623069266137">muito curto (0,8 seg)</translation>
 <translation id="4716483597559580346">Efetuar Powerwash para maior segurança</translation>
-<translation id="471800408830181311">Falha ao obter resultado de chave privada.</translation>
 <translation id="4720113199587244118">Adicionar dispositivos</translation>
 <translation id="4720185134442950733">Rede de dados móveis</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> está a partilhar o seu ecrã.</translation>
@@ -2510,7 +2475,6 @@
 <translation id="4917385247580444890">Forte</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> pretende comunicar com a extensão "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Aceitar</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> pretende utilizar a câmara.</translation>
 <translation id="4920887663447894854">Os sites seguintes foram bloqueados de monitorizar a sua localização nesta página:</translation>
 <translation id="492299503953721473">Remover aplicações Android</translation>
 <translation id="4923279099980110923">Sim, quero ajudar</translation>
@@ -2551,7 +2515,6 @@
 <translation id="4980805016576257426">Esta extensão contém um software malicioso.</translation>
 <translation id="498294082491145744">Altere as definições que controlam o acesso dos Sites a funcionalidades como cookies, JavaScript, plug-ins, geolocalização, microfone, câmara, etc.</translation>
 <translation id="4988526792673242964">Páginas </translation>
-<translation id="4988792151665380515">Falha ao exportar chave pública.</translation>
 <translation id="49896407730300355">Rodar para a &amp;esquerda</translation>
 <translation id="4989966318180235467">Inspecionar página de fundo</translation>
 <translation id="4990343175649730969">Transferir a Ferramenta de limpeza do Chrome</translation>
@@ -2580,7 +2543,6 @@
 <translation id="5026874946691314267">Não voltar a mostrar</translation>
 <translation id="5027550639139316293">Certificado de email</translation>
 <translation id="5027562294707732951">Adicionar extensão</translation>
-<translation id="5028012205542821824">A instalação não está ativada.</translation>
 <translation id="5029568752722684782">Limpar cópia</translation>
 <translation id="5030338702439866405">Emitido por</translation>
 <translation id="5036662165765606524">Não permitir que os sites transfiram vários ficheiros automaticamente</translation>
@@ -2616,7 +2578,6 @@
 <translation id="509429900233858213">Ocorreu um erro.</translation>
 <translation id="5094721898978802975">Comunicar com aplicações nativas cooperantes</translation>
 <translation id="5097002363526479830">Falha ao ligar à rede "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Não foi possível encontrar o caminho absoluto para o directório a empacotar.</translation>
 <translation id="5099354524039520280">para cima</translation>
 <translation id="5100114659116077956">Para lhe oferecer as funcionalidades mais recentes, é necessário atualizar o seu Chromebox.</translation>
 <translation id="5101042277149003567">Abrir todos os marcadores</translation>
@@ -2665,7 +2626,6 @@
 <translation id="5170568018924773124">Mostrar numa pasta</translation>
 <translation id="5171045022955879922">Pesquisar ou escrever URL</translation>
 <translation id="5171343362375269016">Memória trocada</translation>
-<translation id="5175870427301879686"><ph name="URL" /> quer armazenar permanentemente os dados no seu computador local.</translation>
 <translation id="5177479852722101802">Continuar a bloquear o acesso à câmara e ao microfone</translation>
 <translation id="5177526793333269655">Vista de miniatura</translation>
 <translation id="5177549709747445269">Está a utilizar dados móveis</translation>
@@ -2744,7 +2704,6 @@
 <translation id="529175790091471945">Formatar este dispositivo</translation>
 <translation id="5293170712604732402">Repor as predefinições originais das definições</translation>
 <translation id="5298219193514155779">Tema criado por</translation>
-<translation id="5298363578196989456">Não é possível importar a extensão "<ph name="IMPORT_NAME" />", porque não é um módulo partilhado.</translation>
 <translation id="5299109548848736476">Não monitorizar</translation>
 <translation id="5299682071747318445">Todos os dados são encriptados com a sua frase de acesso de sincronização</translation>
 <translation id="5300589172476337783">Mostrar</translation>
@@ -2772,7 +2731,6 @@
 <translation id="5331425616433531170">O "<ph name="CHROME_EXTENSION_NAME" />" pretende sincronizar</translation>
 <translation id="5332624210073556029">Fuso horário:</translation>
 <translation id="5334142896108694079">Cache de Script</translation>
-<translation id="533433379391851622">A versão esperada era "<ph name="EXPECTED_VERSION" />", mas a versão foi "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Ver fonte</translation>
 <translation id="5335458522276292100">A fazer uma cópia de segurança de <ph name="FILE_COUNT" /> para o <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />...</translation>
 <translation id="5337771866151525739">Instalada por terceiros.</translation>
@@ -2810,7 +2768,6 @@
 <translation id="5390100381392048184">Permitir que os sites reproduzam som</translation>
 <translation id="5390284375844109566">Base de dados indexada</translation>
 <translation id="5390743329570580756">Enviar para</translation>
-<translation id="5396126354477659676">O <ph name="PEPPER_PLUGIN_NAME" /> em <ph name="PEPPER_PLUGIN_DOMAIN" /> pretende aceder ao seu computador.</translation>
 <translation id="5397794290049113714">Utilizador</translation>
 <translation id="5398572795982417028">A referência da página está fora dos limites; o limite é <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Anúncios bloqueados</translation>
@@ -2872,7 +2829,6 @@
 <translation id="5485754497697573575">Restaurar todos os separadores</translation>
 <translation id="5486261815000869482">Confirmar palavra-passe</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> está a partilhar o seu ecrã com <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">O valor de entrada para uma chave privada tem de existir.</translation>
 <translation id="5486561344817861625">Simular Reinício do Navegador</translation>
 <translation id="5487521232677179737">Limpar dados</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" copiado</translation>
@@ -2955,7 +2911,6 @@
 <translation id="5600706100022181951">A atualização será transferida e irá utilizar <ph name="UPDATE_SIZE_MB" /> MB de dados móveis. Pretende continuar?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Outros motores de pesquisa</translation>
-<translation id="5606674617204776232">O <ph name="PEPPER_PLUGIN_NAME" /> em <ph name="PEPPER_PLUGIN_DOMAIN" /> pretende aceder ao seu dispositivo móvel.</translation>
 <translation id="5608580678041221894">Toque nas teclas seguintes para ajustar ou mover a área de recorte</translation>
 <translation id="5609231933459083978">A aplicação parece ser inválida.</translation>
 <translation id="5610038042047936818">Mudar para modo de câmara</translation>
@@ -3199,7 +3154,6 @@
 <translation id="5990386583461751448">Tradução</translation>
 <translation id="5991049340509704927">Ampliar</translation>
 <translation id="5993332328670040093">A utilização de dados já não será medida.</translation>
-<translation id="6003177993629630467">O <ph name="PRODUCT_NAME" /> pode não conseguir manter-se atualizado.</translation>
 <translation id="600424552813877586">Aplicação inválida.</translation>
 <translation id="6005695835120147974">Media Router</translation>
 <translation id="6006484371116297560">Clássico</translation>
@@ -3224,6 +3178,7 @@
 <translation id="604001903249547235">Cópia de segurança na nuvem</translation>
 <translation id="6040143037577758943">Fechar</translation>
 <translation id="6040852767465482106">Identidade anónima</translation>
+<translation id="6041155700700864984">Sair do ecrã inteiro</translation>
 <translation id="604124094241169006">Automático</translation>
 <translation id="6042169520002885235">Selecionar um modelo e um fabricante da impressora</translation>
 <translation id="6042308850641462728">Mais</translation>
@@ -3240,7 +3195,6 @@
 <translation id="6056710589053485679">Atualização Normal</translation>
 <translation id="6059652578941944813">Hierarquia de certificados</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
-<translation id="6060435378291459521">O plug-in <ph name="PLUGIN_NAME" /> falhou.</translation>
 <translation id="6064217302520318294">Bloqueio de ecrã</translation>
 <translation id="6065289257230303064">Atributos de directório do requerente do certificado</translation>
 <translation id="6068338049763724728">Ativar inscrição remota</translation>
@@ -3349,7 +3303,6 @@
 <translation id="6237816943013845465">Permite-lhe ajustar a resolução do ecrã</translation>
 <translation id="6238923052227198598">Manter a nota mais recente no ecrã de bloqueio</translation>
 <translation id="6239558157302047471">Atualizar &amp;frame</translation>
-<translation id="624022915548992686">Página de saída</translation>
 <translation id="6241530762627360640">Aceder às informações acerca dos dispositivos Bluetooth sincronizados com o seu sistema e descobrir dispositivos Bluetooth nas proximidades.</translation>
 <translation id="6243774244933267674">Servidor indisponível</translation>
 <translation id="6246413617632217567">Não foi possível importar o utilizador supervisionado. Verifique o espaço disponível no disco rígido e as autorizações e tente novamente.</translation>
@@ -3398,13 +3351,11 @@
 <translation id="6312403991423642364">Erro de rede desconhecido</translation>
 <translation id="6313641880021325787">SAIR DA RV</translation>
 <translation id="6314819609899340042">Ativou com êxito as funcionalidades de depuração neste dispositivo <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">As suas páginas iniciais foram alteradas para incluir <ph name="URL" />. Para desativar as extensões que alteram a sua página inicial, clique em Restaurar.</translation>
 <translation id="6315493146179903667">Trazer tudo para a frente</translation>
 <translation id="6316806695097060329">Este dispositivo <ph name="SHORT_PRODUCT_NAME" /> foi concebido para lhe proporcionar a melhor experiência Web.</translation>
 <translation id="6317318380444133405">Já não é suportada.</translation>
 <translation id="6317369057005134371">A aguardar janela da aplicação...</translation>
 <translation id="6318407754858604988">A transferência foi iniciada.</translation>
-<translation id="6322279351188361895">Falha ao ler a chave privada.</translation>
 <translation id="6325191661371220117">Desativar a iniciação automática</translation>
 <translation id="6326175484149238433">Remover do Chrome</translation>
 <translation id="6326855256003666642">Contagem keepalive</translation>
@@ -3413,7 +3364,6 @@
 <translation id="6333049849394141510">Escolher o que pretende sincronizar</translation>
 <translation id="6333064448949140209">O ficheiro será enviado para a Google para depuração</translation>
 <translation id="6333834492048057036">Focar barra de endereço para pesquisa</translation>
-<translation id="6336907568130557310">As suas palavras-passe serão visíveis para todas as pessoas que consigam ver o ficheiro exportado. Não partilhe o ficheiro com ninguém e elimine-o após a importação.</translation>
 <translation id="6339668969738228384">Criar um novo perfil para <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Não foi possível estabelecer ligação ao servidor. Verifique a sua ligação de rede e tente novamente. Se o problema persistir, reinicie o Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3442,7 +3392,6 @@
 <translation id="6385543213911723544">Os sites podem guardar e ler os dados de cookies</translation>
 <translation id="6388771388956873507">Localize o sensor de impressões digitais no dispositivo e toque nele com o dedo</translation>
 <translation id="6390799748543157332">As páginas visualizadas nesta janela não serão apresentadas no histórico do navegador e não deixarão outros vestígios, como cookies, no computador depois de fechar todas as janelas de Convidado abertas. No entanto, todos os ficheiros transferidos serão preservados.</translation>
-<translation id="6391538222494443604">O directório de entrada tem de existir.</translation>
 <translation id="6395423953133416962">Enviar <ph name="BEGIN_LINK1" />informações do sistema<ph name="END_LINK1" /> e <ph name="BEGIN_LINK2" />métricas<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Pare de Falar</translation>
 <translation id="6397592254427394018">Abrir todos os marcadores na janela de &amp;navegação anónima</translation>
@@ -3500,7 +3449,6 @@
 <translation id="6458308652667395253">Gerir bloqueio de JavaScript...</translation>
 <translation id="6459488832681039634">Utilizar selecção para localizar</translation>
 <translation id="6460601847208524483">Localizar seguinte</translation>
-<translation id="6462080265650314920">As aplicações têm de ser publicadas com o tipo de conteúdo "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Ainda está aí?</translation>
 <translation id="6463795194797719782">&amp;Editar</translation>
 <translation id="6466988389784393586">&amp;Abrir Todos os Marcadores</translation>
@@ -3570,7 +3518,7 @@
 <translation id="656293578423618167">O caminho ou nome do ficheiro é demasiado longo. Guarde com um nome mais curto ou noutra localização.</translation>
 <translation id="656398493051028875">A eliminar "<ph name="FILENAME" />"...</translation>
 <translation id="6565108107088666812">Esta ação limpa os dados sincronizados de todos os dispositivos.</translation>
-<translation id="6567688344210276845">Não foi possível carregar o ícone "<ph name="ICON" />" para a acção da página.</translation>
+<translation id="6567688344210276845">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação da página.</translation>
 <translation id="657402800789773160">&amp;Recarregar esta página</translation>
 <translation id="6578664922716508575">Encriptar as palavras-passe sincronizadas com o seu nome de utilizador e palavra-passe Google</translation>
 <translation id="6580151766480067746">Versão do ARC</translation>
@@ -3630,7 +3578,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Pretende que o Google traduza esta página de <ph name="SOURCE_LANGUAGE" /> para <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispositivo apontador ligado</translation>
-<translation id="6677037229676347494">O ID esperado era "<ph name="EXPECTED_ID" />", mas o ID foi "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL de consulta</translation>
 <translation id="6680028776254050810">Mudar Utilizadores</translation>
 <translation id="6680442031740878064">Disponível: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3770,8 +3717,6 @@
 <translation id="6903534926908201625">Pode personalizar a qualquer momento as informações que a Google recolhe nas <ph name="BEGIN_LINK" />Definições<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Revogar acesso a ficheiros</translation>
 <translation id="6904655473976120856">Premir o botão Aplicação para sair</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> pretende partilhar o seu ecrã.</translation>
-<translation id="6909461304779452601">Não é possível adicionar aplicações, extensões e scripts de utilizador a partir deste Website.</translation>
 <translation id="6910211073230771657">Eliminado</translation>
 <translation id="691024665142758461">Transferir vários ficheiros</translation>
 <translation id="6911324888870229398">A ligação à rede falhou. Verifique a sua ligação ou experimente outra rede Wi-Fi.</translation>
@@ -4108,7 +4053,6 @@
 <translation id="747114903913869239">Erro: não foi possível descodificar a extensão</translation>
 <translation id="7473891865547856676">Não, obrigado</translation>
 <translation id="747459581954555080">Restaurar tudo</translation>
-<translation id="7475034671245341386">O plug-in <ph name="PLUGIN_NAME" /> encontrou um erro.</translation>
 <translation id="7475671414023905704">URL de palavra-passe perdida Netscape</translation>
 <translation id="7476454130948140105">Bateria demasiado fraca para atualizar (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Se se esqueceu da sua frase de acesso, pare e reinicie a Sincronização através do <ph name="BEGIN_LINK" />Painel de Controlo do Google<ph name="END_LINK" />.</translation>
@@ -4138,14 +4082,13 @@
 <translation id="7497215489070763236">Certificado da AC do servidor</translation>
 <translation id="7502658306369382406">Endereço IPv6</translation>
 <translation id="7503191893372251637">Tipo de certificado Netscape</translation>
-<translation id="7503821294401948377">Não foi possível carregar o ícone "<ph name="ICON" />" para a acção do navegador.</translation>
+<translation id="7503821294401948377">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação do navegador.</translation>
 <translation id="750509436279396091">Abrir a pasta de transferências</translation>
 <translation id="7505167922889582512">Mostrar ficheiros ocultos</translation>
 <translation id="7506541170099744506">O seu <ph name="DEVICE_TYPE" /> foi inscrito com êxito para gestão empresarial.</translation>
 <translation id="7507930499305566459">Certificado do dispositivo de resposta do estado</translation>
 <translation id="7508545000531937079">Apresentação de diapositivos</translation>
 <translation id="7513029293694390567">Inicie sessão automaticamente nos Sites com as credenciais armazenadas. Se esta funcionalidade estiver desativada, é-lhe pedida sempre uma confirmação antes de iniciar sessão num Website.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> pretende identificar de forma única o seu dispositivo para reproduzir conteúdo protegido.</translation>
 <translation id="7517569744831774757">Repor as predefinições originais das definições.</translation>
 <translation id="7517786267097410259">Criar palavra-passe –</translation>
 <translation id="7518150891539970662">Registos de WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4175,7 +4118,6 @@
     e tentar criar novamente um utilizador supervisionado.</translation>
 <translation id="756445078718366910">Abrir janela do navegador</translation>
 <translation id="7564847347806291057">Concluir processo</translation>
-<translation id="7565291891798266313">O seu motor de pesquisa foi alterado para <ph name="URL" />. Para desativar as extensões que alteram o seu motor de pesquisa, clique em Restaurar.</translation>
 <translation id="7566118625369982896">Gerir links para aplicações do Google Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Dados do Chrome limpos</translation>
@@ -4184,7 +4126,6 @@
 <translation id="7573172247376861652">Carga da bateria</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Agrupar</translation>
-<translation id="7577815336900970562">Utilize a rede Wi-Fi ou móvel para determinar a localização.</translation>
 <translation id="7579149537961810247">Desativar som dos sites</translation>
 <translation id="7580671184200851182">Reproduzir o mesmo áudio em todas as colunas (áudio mono)</translation>
 <translation id="7581462281756524039">Uma ferramenta de limpeza</translation>
@@ -4291,6 +4232,7 @@
 <translation id="7773726648746946405">Armazenamento da sessão</translation>
 <translation id="7781335840981796660">Serão removidas todas as contas de utilizador e dados locais.</translation>
 <translation id="7782102568078991263">Não há mais sugestões do Google</translation>
+<translation id="778330624322499012">Não foi possível carregar <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">As definições de segurança do computador bloquearam este ficheiro.</translation>
 <translation id="7786207843293321886">Sair da Sessão de Convidado</translation>
 <translation id="7786889348652477777">&amp;Recarregar aplicação</translation>
@@ -4453,7 +4395,6 @@
 <translation id="8001504501378762252">Um site pode ter roubado a sua palavra-passe</translation>
 <translation id="8004582292198964060">Navegador</translation>
 <translation id="8008356846765065031">A Internet está desligada. Verifique a ligação à Internet.</translation>
-<translation id="8008765610824028412">Não foi possível carregar o plug-in <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Enviar automaticamente algumas informações do sistema e conteúdo de páginas para a Google para ajudar a detetar aplicações e sites perigosos</translation>
 <translation id="8012382203418782830">Esta página foi traduzida.</translation>
 <translation id="8014154204619229810">O atualizador está em execução atualmente. Atualize dentro de um minuto para verificar novamente.</translation>
@@ -4570,7 +4511,6 @@
 <translation id="8191230140820435481">Gerir as suas aplicações, extensões e temas</translation>
 <translation id="8191453843330043793">Resolução de proxy V8</translation>
 <translation id="8195027750202970175">Tamanho em disco</translation>
-<translation id="8195739004487400241">A sua página inicial foi alterada para <ph name="URL" />. Para desativar as extensões que alteram a sua página inicial, clique em Restaurar.</translation>
 <translation id="8199300056570174101">Propriedades da rede (serviço) e do dispositivo</translation>
 <translation id="8200772114523450471">Continuar</translation>
 <translation id="8202160505685531999">Introduza a sua palavra-passe novamente para atualizar o perfil do <ph name="DEVICE_TYPE" />.</translation>
@@ -4614,7 +4554,6 @@
 <translation id="8261378640211443080">Esta extensão não está listada no <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e é possível que tenha sido adicionada sem o seu conhecimento.</translation>
 <translation id="8261387128019234107">Adicionar conta para <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Eliminar</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> não está implementado nesta compilação.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> desativou o cursor do rato.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ativou o ecrã inteiro.</translation>
 <translation id="8270242299912238708">Documentos PDF</translation>
@@ -4715,6 +4654,7 @@
 <translation id="8454288007744638700">Em alternativa, selecione uma nova rede:</translation>
 <translation id="845627346958584683">Prazo de validade</translation>
 <translation id="8456681095658380701">Nome inválido</translation>
+<translation id="8457451314607652708">Importar marcadores</translation>
 <translation id="8460336040822756677">Se desativar o Smart Lock para <ph name="DEVICE_TYPE" />, não pode utilizar o telemóvel para desbloquear os dispositivos Chrome. Tem de introduzir a palavra-passe.</translation>
 <translation id="8461329675984532579">Nome do fornecedor base</translation>
 <translation id="84613761564611563">IU de configuração da rede solicitada. Por favor, aguarde...</translation>
@@ -4746,7 +4686,6 @@
 <translation id="850875081535031620">Não foi encontrado software prejudicial.</translation>
 <translation id="8512476990829870887">Terminar Processo</translation>
 <translation id="851263357009351303">Permitir sempre que o site <ph name="HOST" /> mostre imagens</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" está a depurar este navegador.</translation>
 <translation id="8521475323816527629">Aceder rapidamente às suas aplicações</translation>
 <translation id="8523493869875972733">Manter alterações</translation>
 <translation id="8523849605371521713">Adicionada pela política</translation>
@@ -4802,7 +4741,6 @@
 <translation id="8620765578342452535">Configurar ligações de rede</translation>
 <translation id="8620790565535071193">Falha ao analisar</translation>
 <translation id="8622877356447980900">Pretende traduzir esta página?</translation>
-<translation id="8623004009673949077">É necessário instalar a aplicação com o atributo de manifesto "kiosk_only" no modo quiosque do Chrome OS.</translation>
 <translation id="8624205858755890468">Ativa o Assistente para lhe mostrar informações relacionadas, aplicações e ações.</translation>
 <translation id="862542460444371744">&amp;Extensões</translation>
 <translation id="8627151598708688654">Selecionar fonte</translation>
@@ -4951,7 +4889,6 @@
 <translation id="882204272221080310">Atualize o firmware para maior segurança.</translation>
 <translation id="8823514049557262177">Copiar te&amp;xto do link</translation>
 <translation id="8824701697284169214">Adicionar Pá&amp;gina...</translation>
-<translation id="8827850355924932817">Utilize a rede Wi-Fi para determinar a localização.</translation>
 <translation id="8828933418460119530">Nome de DNS</translation>
 <translation id="8830796635868321089">A verificação de atualizações falhou utilizando as definições de proxy atuais. Ajuste as <ph name="PROXY_SETTINGS_LINK_START" />definições de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">A configuração da rede é controlada por <ph name="USER_EMAIL" />.</translation>
@@ -4983,9 +4920,7 @@
 <translation id="8879284080359814990">Mo&amp;strar Como Separador</translation>
 <translation id="8884961208881553398">Adicionar novos serviços</translation>
 <translation id="8885197664446363138">Smart Lock não disponível</translation>
-<translation id="8885905466771744233">Já existe uma chave privada para a extensão especificada. Volte a utilizar essa chave ou elimine-a primeiro.</translation>
 <translation id="8888432776533519951">Cor:</translation>
-<translation id="8892992092192084762">Tema instalado "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Lamentamos, não foi possível reconhecer o aparelho <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Lista de marcadores</translation>
 <translation id="88986195241502842">Página para baixo</translation>
@@ -4994,13 +4929,12 @@
 <translation id="8899285681604219177">Extensões não suportadas desativadas</translation>
 <translation id="8899551033019439140">A procurar impressora…</translation>
 <translation id="8899851313684471736">Abrir link numa nova &amp;janela</translation>
-<translation id="8902667442496790482">Abrir as definições de Selecionar para falar</translation>
+<translation id="8902667442496790482">Abrir as definições de Selecionar para ativar voz</translation>
 <translation id="8903921497873541725">Ampliar</translation>
 <translation id="8904976895050290827">Sincronização do Google Chrome</translation>
 <translation id="8908902564709148335">Aviso: Ativou o sinalizador --scripts-require-action neste computador, o que limita as capacidades desta extensão. Contudo, outros dispositivos poderão não suportar este sinalizador ou tê-lo ativado. Nesses dispositivos, esta extensão também pode:</translation>
 <translation id="8910146161325739742">Partilhar o ecrã</translation>
 <translation id="8910222113987937043">As alterações aos seus marcadores, histórico, palavras-passe e outras definições já não serão sincronizadas com a sua Conta Google. No entanto, os dados existentes continuarão armazenados na Conta Google e podem ser geridos no <ph name="BEGIN_LINK" />Painel de Controlo Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">A Google sinalizou <ph name="EXTENSION_NAME" /> como sendo malicioso(a) e a instalação foi impedida.</translation>
 <translation id="8912793549644936705">Esticar</translation>
 <translation id="8915370057835397490">A carregar sugestão</translation>
 <translation id="8916476537757519021">Subestrutura da navegação anónima: <ph name="SUBFRAME_SITE" /></translation>
@@ -5106,7 +5040,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Rato USB ligado</translation>
 <translation id="9076523132036239772">Não foi possível confirmar o seu email ou a sua palavra-passe. Tente ligar primeiro a uma rede.</translation>
-<translation id="907841381057066561">Falha ao criar ficheiro zip temporário durante o empacotamento.</translation>
 <translation id="9084064520949870008">Abrir como Janela</translation>
 <translation id="9088234649737575428">O <ph name="PLUGIN_NAME" /> está bloqueado pela política da empresa</translation>
 <translation id="9088917181875854783">Confirme se esta chave de acesso aparece no "<ph name="DEVICE_NAME" />":</translation>
@@ -5197,11 +5130,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Introduzir frase de acesso</translation>
 <translation id="939736085109172342">Nova pasta</translation>
-<translation id="941543339607623937">Chave privada inválida.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> está a partilhar um separador do Chrome e o áudio.</translation>
 <translation id="942954117721265519">Não existem imagens neste diretório.</translation>
 <translation id="945522503751344254">Enviar comentários</translation>
-<translation id="951981865514037445"><ph name="URL" /> pretende utilizar a localização do seu dispositivo.</translation>
 <translation id="952992212772159698">Não activado</translation>
 <translation id="9580706199804957">Não foi possível estabelecer ligação aos serviços Google.</translation>
 <translation id="958515377357646513">Toque para avançar.</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index 2a3cde9..b03c428f 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Numai cifrare</translation>
 <translation id="1039337018183941703">Fișier nevalid sau deteriorat</translation>
 <translation id="1042174272890264476">Computerul este dotat, de asemenea, cu o bibliotecă RLZ încorporată, oferită de <ph name="SHORT_PRODUCT_NAME" />. Biblioteca RLZ atribuie o etichetă non-unică și care nu vă identifică în mod personal, pentru a măsura căutările și modul în care este utilizat <ph name="SHORT_PRODUCT_NAME" /> în funcție de o anumită campanie promoțională. Aceste etichete pot apărea uneori în interogările Căutării Google din <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> dorește să stocheze permanent cantități mari de date pe dispozitivul dvs.</translation>
 <translation id="1046059554679513793">Hopa, acest nume este deja utilizat!</translation>
 <translation id="1047431265488717055">Copiază te&amp;xtul linkului</translation>
 <translation id="1047726139967079566">Marcați această pagină...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Restabilești motorul de căutare prestabilit?</translation>
 <translation id="1177863135347784049">Personalizează</translation>
 <translation id="1178581264944972037">Întrerupe</translation>
-<translation id="1179803038870941185">Adresa <ph name="URL" /> dorește să preia controlul complet asupra dispozitivelor MIDI.</translation>
 <translation id="1181037720776840403">Elimină</translation>
 <translation id="1183237619868651138">Nu se poate instala <ph name="EXTERNAL_CRX_FILE" /> în memoria cache locală.</translation>
 <translation id="1185924365081634987">Pentru a remedia eroarea de rețea, puteți încerca și să <ph name="GUEST_SIGNIN_LINK_START" />navigați ca invitat<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Accesează un fișier stocat pe computer}few{Accesează # fișiere stocate pe computer}other{Accesează # de fișiere stocate pe computer}}</translation>
 <translation id="1195076408729068893">Pentru a porni Smart Lock, introdu parola. Data viitoare, poți folosi telefonul pentru a debloca dispozitivul <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Eroare necunoscută.</translation>
-<translation id="1196338895211115272">Cheia privată nu a putut fi exportată.</translation>
 <translation id="119738088725604856">Face o captură de ecran a ferestrei</translation>
 <translation id="1197979282329025000">A apărut o eroare la preluarea caracteristicilor imprimantei <ph name="PRINTER_NAME" />. Această imprimantă nu a putut fi înregistrată la <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Să începem</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administratorul dvs. recomandă o valoare specifică pentru această setare.</translation>
 <translation id="1225177025209879837">Se procesează solicitarea...</translation>
 <translation id="1225211345201532184">Elementul 5 din raft</translation>
-<translation id="1225404570112441414">Adaugă acest site pe raft pentru a-l folosi oricând.</translation>
 <translation id="1227507814927581609">Autentificarea nu a reușit în timpul conectării la „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="1230807973377071856">meniul sistem</translation>
 <translation id="1232569758102978740">Fără titlu</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Fișier HTML cu marcaje</translation>
 <translation id="1303671224831497365">Nu s-a găsit niciun dispozitiv Bluetooth</translation>
 <translation id="1306606229401759371">Modificați setările</translation>
-<translation id="1307398858972670978">Accesează-ți parolele de pe orice dispozitiv la <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Hopa! Sistemul nu a putut stoca indicativul de acces pe termen lung la API pentru acest dispozitiv.</translation>
 <translation id="1313405956111467313">Configurare automată pentru proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Caută</translation>
 <translation id="1386387014181100145">Bună ziua.</translation>
 <translation id="138784436342154190">Restabilești pagina de pornire prestabilită?</translation>
-<translation id="1389297115360905376">Aceasta poate fi adăugată numai din <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Deschideți ca filă obișnuită</translation>
-<translation id="1391807639023934267">Pagina s-a încărcat mai rapid.</translation>
 <translation id="1393283411312835250">Soare și nori</translation>
 <translation id="1395262318152388157">Glisor pentru căutare</translation>
 <translation id="1395730723686586365">Utilitarul de actualizare a pornit</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Faceți actualizarea la o versiune <ph name="PRODUCT_NAME" /> instabilă. Aceasta conține funcții nefinalizate. Vor apărea blocări și erori neașteptate. Continuați cu atenție.</translation>
 <translation id="1415990189994829608">Extensia <ph name="EXTENSION_NAME" /> (cu ID-ul „<ph name="EXTENSION_ID" />”) nu este permisă în acest tip de sesiune.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Hopa! Generarea cheii private RSA aleatorii nu a reușit.</translation>
 <translation id="1420834118113404499">Licențe media</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> pentru a permite asocierea</translation>
 <translation id="1426410128494586442">Da</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">C&amp;opiază adresa conținutului audio</translation>
 <translation id="1465827627707997754">Felie de pizza</translation>
 <translation id="1467432559032391204">Stânga</translation>
-<translation id="1467999917853307373"><ph name="URL" /> dorește să stocheze permanent date pe dispozitivul dvs.</translation>
-<translation id="1470719357688513792">Noile setări pentru cookie-uri se vor aplica după reîncărcarea paginii.</translation>
 <translation id="1470811252759861213">Pentru a accesa extensiile pe toate computerele tale, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">„<ph name="FILENAME" />” nu s-a încărcat. Nu există spațiu liber suficient în Google Drive.</translation>
 <translation id="1475502736924165259">Ai stocate certificate care nu se încadrează în niciuna dintre celelalte categorii</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Cursor de mouse mare</translation>
 <translation id="1543284117603151572">Importate din Edge</translation>
 <translation id="1545177026077493356">Mod chioșc automat</translation>
+<translation id="1545775234664667895">S-a instalat tema „<ph name="THEME_NAME" />”</translation>
 <translation id="1545786162090505744">Adresă URL cu %s în loc de interogare</translation>
 <translation id="1546280085599573572">Această extensie a modificat ce pagină se afișează când dai clic pe butonul Pagină de pornire.</translation>
 <translation id="1547572086206517271">Este necesară actualizarea</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />să examinați<ph name="END_BOLD" /> site-urile accesate de utilizatorul monitorizat;
     <ph name="BEGIN_BOLD" />să gestionați<ph name="END_BOLD" /> alte setări.</translation>
 <translation id="1648943974594387137">Detaliile de conectare au expirat</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> linii nu sunt afișate&gt;</translation>
 <translation id="1650371550981945235">Afișează opțiunile de introducere a textului</translation>
 <translation id="1650709179466243265">Adaugă www. și .com și deschide adresa</translation>
 <translation id="1651008383952180276">Trebuie să introduci aceeași expresie de acces de două ori</translation>
-<translation id="1652972346408808053">Parola a fost salvată. Accesează-ți parolele de pe orice dispozitiv la <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Pentru a putea printa de oriunde, adaugă imprimanta în Google Cloud Print.}few{Pentru a putea printa de oriunde, adaugă cele # imprimante în Google Cloud Print.}other{Pentru a putea printa de oriunde, adaugă cele # de imprimante în Google Cloud Print.}}</translation>
 <translation id="1657406563541664238">Trimite automat statistici de utilizare și rapoarte de blocare la Google pentru a contribui la îmbunătățirea <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1658424621194652532">Această pagină vă accesează microfonul.</translation>
@@ -654,7 +643,7 @@
 <translation id="1999115740519098545">La pornire</translation>
 <translation id="2006638907958895361">Deschide linkul în <ph name="APP" /></translation>
 <translation id="2007404777272201486">Raportează o problemă...</translation>
-<translation id="2015632741368427174">Redirecționarea a fost blocată pentru site-ul:</translation>
+<translation id="2015632741368427174">S-a blocat redirecționarea către site-ul:</translation>
 <translation id="2016430552235416146">Tradițională</translation>
 <translation id="2017334798163366053">Dezactivați culegerea datelor privind performanța</translation>
 <translation id="2017836877785168846">Șterge istoricul și completările automate din bara de adrese.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Continuă blocarea cookie-urilor</translation>
 <translation id="204622017488417136">Dispozitivul va reveni la versiunea Chrome instalată anterior. Toate conturile de utilizator și datele locale vor fi eliminate. Această operațiune nu poate fi anulată.</translation>
 <translation id="2048182445208425546">Accesează traficul de rețea</translation>
-<translation id="2049137146490122801">Accesul la fișierele locale de pe computer este dezactivat de administrator.</translation>
 <translation id="204914487372604757">Creează o comandă rapidă</translation>
 <translation id="2050339315714019657">Portret</translation>
 <translation id="2053312383184521053">Date pentru starea inactivă</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Nu s-a încărcat încă</translation>
 <translation id="2107494551712864447">Adaugă o amprentă</translation>
-<translation id="2111843886872897694">Aplicațiile trebuie să fie difuzate de gazda pe care o afectează.</translation>
 <translation id="2112877397266219826">Activează controlerul tactil pentru a mă configura</translation>
 <translation id="21133533946938348">Fixează fila</translation>
 <translation id="2113479184312716848">Deschide &amp;fișierul...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Spune-ne ce se întâmplă</translation>
 <translation id="2229161054156947610">A mai rămas mai mult de 1 oră</translation>
 <translation id="222931766245975952">Fișier trunchiat</translation>
-<translation id="222949136907494149"><ph name="URL" /> dorește să utilizeze locația computerului dvs.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Nu s-a putut crea dosarul „<ph name="FOLDER_NAME" />”. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Dă clic pentru a vedea doodle-ul de astăzi</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Blocați întotdeauna accesul la microfon</translation>
 <translation id="2367972762794486313">Afișați aplicații</translation>
 <translation id="2371076942591664043">Deschide când s-a &amp;descărcat</translation>
-<translation id="237336063998926520">Folosește adresa IP pentru a detecta locația</translation>
 <translation id="2377319039870049694">Comută la afișarea listă</translation>
 <translation id="2377667304966270281">Erori de hardware</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> fișiere selectate</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> dorește să copieze fișiere din <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID-ul cheii autorității de certificare</translation>
 <translation id="2462752602710430187">S-a adăugat <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importă marcajele</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Nu se poate conecta la telefon. Asigură-te că folosești un telefon Android compatibil care este pornit și la îndemână.&lt;a&gt;Află mai multe&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Extensiile necompatibile au fost dezactivate</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Dezinstalează</translation>
 <translation id="2487067538648443797">Adaugă un marcaj nou</translation>
 <translation id="248861575772995840">Telefonul nu poate fi găsit. Asigură-te că dispozitivul <ph name="DEVICE_TYPE" /> are conexiunea Bluetooth activată. &lt;a&gt;Află mai multe&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Un plugin (<ph name="PLUGIN_NAME" />) nu răspunde.</translation>
 <translation id="2489428929217601177">ultima zi</translation>
 <translation id="2489918096470125693">Adăugați un &amp;dosar...</translation>
 <translation id="249113932447298600">Ne pare rău, dispozitivul <ph name="DEVICE_LABEL" /> nu este acceptat în prezent.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Felicitări! Serviciul de date „<ph name="NAME" />” a fost activat și este gata de utilizare.</translation>
 <translation id="2566124945717127842">Folosiți Powerwash pentru a reseta dispozitivul <ph name="IDS_SHORT_PRODUCT_NAME" /> la configurația din fabrică.</translation>
 <translation id="2568774940984945469">Container bară de informații</translation>
-<translation id="2570000010887652771">Date salvate.</translation>
 <translation id="257088987046510401">Teme</translation>
 <translation id="2572032849266859634">A fost acordat accesul numai în citire la <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Alegeți o imagine și un nume</translation>
 <translation id="2575247648642144396">Această pictogramă va fi vizibilă atunci când extensia poate acționa pe pagina actuală. Utilizați această extensie dând clic pe pictogramă sau apăsând pe <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Telefonul nu poate fi găsit. Asigură-te că dispozitivul <ph name="DEVICE_TYPE" /> este conectat la Wi-Fi sau la o rețea mobilă. &lt;a&gt;Află mai multe&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Există deja un fișier CRX cu acest nume.</translation>
 <translation id="257779572837908839">Configurează ca Chromebox pentru videoconferințe</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nu se poate deconecta volumul<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Dacă ștergi un certificat al unei autorități de certificare (CA), browserul nu va mai avea încredere în niciun certificat emis de acea CA.</translation>
 <translation id="2653659639078652383">Trimite</translation>
 <translation id="265390580714150011">Valoarea câmpului</translation>
-<translation id="2654286334048437383">Exportă marcajele</translation>
 <translation id="2655386581175833247">Certificat de utilizator:</translation>
 <translation id="2660779039299703961">Eveniment</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Adăugați galeria media după directoare</translation>
 <translation id="2908789530129661844">Micșorează ecranul</translation>
 <translation id="2910318910161511225">Conectează-te la o rețea și încearcă din nou</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> dorește să utilizeze microfonul.</translation>
 <translation id="2913331724188855103">Permite site-urilor să salveze și să citească datele asociate cookie-urilor (recomandat)</translation>
 <translation id="2916073183900451334">Dacă apeși Tab când ești pe o pagină, se evidențiază linkurile și câmpurile formularelor</translation>
 <translation id="2916745397441987255">Caută extensii</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">Mută fereastra în sus</translation>
 <translation id="3053013834507634016">Folosirea cheii de certificat</translation>
 <translation id="3057861065630527966">Fă backup pentru fotografii și videoclipuri</translation>
-<translation id="3060379269883947824">Activează Selectează pentru a se rosti</translation>
+<translation id="3060379269883947824">Activează „Selectează și ascultă”</translation>
 <translation id="3061707000357573562">Serviciu de corecție</translation>
 <translation id="3064410671692449875">Date insuficiente</translation>
 <translation id="3065041951436100775">Feedback despre fila eliminată.</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Se ascultă...</translation>
 <translation id="3141917231319778873">Solicitarea specificată nu este acceptată pe: „<ph name="DEVICE_NAME" />”.</translation>
 <translation id="3144126448740580210">TERMINAT</translation>
-<translation id="3144135466825225871">Înlocuirea fișierului crx a eșuat. Verificați dacă fișierul este în uz.</translation>
 <translation id="3144647712221361880">Deschide linkul ca</translation>
 <translation id="3149510190863420837">Aplicații Chrome</translation>
 <translation id="3150927491400159470">Reîncărcați forțat</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Rulează întotdeauna pe toate site-urile</translation>
 <translation id="3312424061798279731">Limbi activate</translation>
 <translation id="3312903956926554846">Instalează pe computer</translation>
-<translation id="3313473140726597081">Pagina de pornire a fost înlocuită cu <ph name="URL" />. Pentru a dezactiva extensiile care îți modifică pagina de pornire, dă clic pe Restabilește.</translation>
 <translation id="3313590242757056087">Pentru a configura site-urile web pe care le poate accesa utilizatorul monitorizat, puteți aplica restricții
     și setări accesând <ph name="MANAGEMENT_URL" />.
     Dacă nu modificați setările implicite, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informații despre aplicație</translation>
 <translation id="3335947283844343239">Redeschide fila închisă</translation>
-<translation id="3337069537196930048">Pluginul <ph name="PLUGIN_NAME" /> a fost blocat deoarece este învechit.</translation>
 <translation id="3340978935015468852">setări</translation>
 <translation id="3341703758641437857">Permite accesul la adresele URL de fișiere</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />” dorește să elimine această extensie.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Marcajul a fost adăugat</translation>
 <translation id="3389312115541230716">Dă clic dreapta pe pictograma <ph name="SMALL_PRODUCT_LOGO" /> din bara de activități</translation>
 <translation id="3391716558283801616">Fila 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> dorește să utilizeze camera foto și microfonul.</translation>
 <translation id="3396331542604645348">Imprimanta selectată nu este disponibilă sau nu este instalată corect. Verificați imprimanta sau încercați să selectați altă imprimantă.</translation>
 <translation id="3399432415385675819">Notificările vor fi dezactivate</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1657,7 +1632,7 @@
 <translation id="3504135463003295723">Numele grupului:</translation>
 <translation id="3505030558724226696">Revocă accesul la dispozitiv</translation>
 <translation id="3507421388498836150">Permisiuni actuale pentru „<ph name="EXTENSION_NAME" />”</translation>
-<translation id="3507888235492474624">Scanează din nou dispozitivele Bluetooth</translation>
+<translation id="3507888235492474624">Caută din nou dispozitive Bluetooth</translation>
 <translation id="3508920295779105875">Alegeți alt dosar...</translation>
 <translation id="3510797500218907545">WiMAX</translation>
 <translation id="3511200754045804813">Rescanează</translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome se actualizează automat, astfel încât să aveți întotdeauna cea mai recentă versiune</translation>
 <translation id="3551320343578183772">Închide fila</translation>
 <translation id="3552780134252864554">Șters la ieșire</translation>
-<translation id="355298399003313926"><ph name="URL" /> dorește să răspundă evenimentelor de accesibilitate.</translation>
 <translation id="3555812735919707620">Eliminați extensia</translation>
 <translation id="3556000484321257665">Motorul de căutare a fost înlocuit cu <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Valoarea introdusă pentru cheia privată trebuie să fie o cale validă.</translation>
 <translation id="3563432852173030730">Aplicația de tip chioșc nu a putut fi descărcată.</translation>
 <translation id="3564334271939054422">Rețeaua Wi-Fi pe care o folosești (<ph name="NETWORK_ID" />) poate solicita accesarea paginii de conectare.</translation>
 <translation id="3564708465992574908">Niveluri de zoom</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Limitări privind numele certificatului</translation>
 <translation id="3596235046596950091">Activează serviciile cloud</translation>
 <translation id="3599863153486145794">Șterge istoricul de pe toate dispozitivele conectate. Contul Google poate să ofere alte forme ale istoricului de navigare la <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Accesul la fișierele locale de pe dispozitiv este dezactivat de administrator.</translation>
 <translation id="3600792891314830896">Dezactivează sunetul pentru site-urile care îl redau</translation>
 <translation id="3603177256297531067">Pagina nu a putut fi tradusă</translation>
 <translation id="3603533104205588786">Poți da clic pe pictograma stea pentru a marca o pagină</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Capturile de ecran sunt dezactivate</translation>
 <translation id="3625870480639975468">Resetează zoomul</translation>
 <translation id="3626281679859535460">Luminozitate</translation>
-<translation id="3627052133907344175">Extensia necesită „<ph name="IMPORT_NAME" />” cu versiunea minimă „<ph name="IMPORT_VERSION" />”, dar numai versiunea „<ph name="INSTALLED_VERSION" />” este instalată.</translation>
 <translation id="3627320433825461852">A mai rămas mai puțin de 1 minut</translation>
 <translation id="3627588569887975815">Deschide linkul într-o fereastră inco&amp;gnito</translation>
 <translation id="3627671146180677314">Interval de reînnoire a certificatului Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Setări de limbă</translation>
 <translation id="3668823961463113931">Handlere</translation>
 <translation id="3670229581627177274">Activează Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> dorește să stocheze definitiv cantități mari de date pe computer.</translation>
 <translation id="3672681487849735243">A fost detectată o eroare de fabricație</translation>
 <translation id="367645871420407123">nu completa dacă dorești să setezi parola directorului rădăcină la valoarea prestabilită a imaginii de test</translation>
 <translation id="3678156199662914018">Extensie: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Ești offline</translation>
 <translation id="3788401245189148511">Aceasta ar putea să:</translation>
 <translation id="3789841737615482174">Instalează</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> funcționează doar pe desktop.</translation>
 <translation id="379082410132524484">Cardul a expirat</translation>
 <translation id="3792890930871100565">Deconectați imprimantele</translation>
 <translation id="379422718204375917">Folosește Smart Lock pentru a te conecta la cont</translation>
-<translation id="3794595850995182458">Închide pagina</translation>
 <translation id="3796648294839530037">Rețele preferate:</translation>
 <translation id="3797900183766075808">&amp;Caută „<ph name="SEARCH_TERMS" />” pe <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Cu ajutorul acestor setări, poți să activezi/dezactivezi funcția „Atinge pentru clic”</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Activează <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">A fost introdus un tip de salvare nevalid.</translation>
 <translation id="3983586614702900908">dispozitive de la producător necunoscut</translation>
-<translation id="3984413272403535372">Eroare la semnarea extensiei.</translation>
 <translation id="3987938432087324095">Scuze, nu am înțeles.</translation>
 <translation id="3988996860813292272">Selectează fusul orar</translation>
 <translation id="3989635538409502728">Deconectați-vă</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Instalează aplicații și jocuri din Google Play pe Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Află mai multe&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Acceptă pentru grup</translation>
 <translation id="4090103403438682346">Activați Acces verificat</translation>
-<translation id="4090404313667273475">Pentru a afișa unele elemente din această pagină este necesar pluginul <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Această extensie este gestionată și nu poate fi eliminată.)</translation>
 <translation id="4091434297613116013">foi de hârtie</translation>
 <translation id="4093955363990068916">Fișier local:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> îți poate sincroniza parolele acum.</translation>
 <translation id="4715553623069266137">foarte scurtă (0,8 sec.)</translation>
 <translation id="4716483597559580346">Powerwash pentru securitate suplimentară</translation>
-<translation id="471800408830181311">Cheia privată nu poate fi generată.</translation>
 <translation id="4720113199587244118">Adăugați dispozitive</translation>
 <translation id="4720185134442950733">Rețea de date mobile</translation>
 <translation id="4722920479021006856">Aplicația <ph name="APP_NAME" /> are acces la ecran.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Puternic</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> dorește să comunice cu extensia „<ph name="EXTENSION_NAME" />”</translation>
 <translation id="4918086044614829423">Accept</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> dorește să utilizeze camera foto.</translation>
 <translation id="4920887663447894854">Urmărirea locației pe această pagină a fost blocată pentru următoarele site-uri:</translation>
 <translation id="492299503953721473">Elimină aplicațiile Android</translation>
 <translation id="4923279099980110923">Da, doresc să ajut</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Această extensie conține programe malware.</translation>
 <translation id="498294082491145744">Modifică setările care controlează accesul site-ului la funcții cum ar fi cookie-urile, JavaScript, pluginurile, localizarea geografică, microfonul, camera foto etc.</translation>
 <translation id="4988526792673242964">Pagini</translation>
-<translation id="4988792151665380515">Exportul cheii publice nu a reușit.</translation>
 <translation id="49896407730300355">Rotiți în sens &amp;invers acelor de ceasornic</translation>
 <translation id="4989966318180235467">Inspectați pagina de fun&amp;dal</translation>
 <translation id="4990343175649730969">Descarcă Chrome Cleanup Tool</translation>
@@ -2573,12 +2536,11 @@
 <translation id="5015762597229892204">Selectează o aplicație pentru driverele de imprimantă</translation>
 <translation id="5017508259293544172">LEAP</translation>
 <translation id="5017633213534173756">Reține</translation>
-<translation id="5018207570537526145">Deschide site-ul pentru extensii</translation>
+<translation id="5018207570537526145">Deschide site-ul extensiei</translation>
 <translation id="5024856940085636730">O operațiune durează mai mult decât ar trebui. Dorești să o anulezi?</translation>
 <translation id="5026874946691314267">Nu mai afișați acest mesaj din nou</translation>
 <translation id="5027550639139316293">Certificat pentru e-mail</translation>
 <translation id="5027562294707732951">Adaugă extensia</translation>
-<translation id="5028012205542821824">Instalarea nu este activată.</translation>
 <translation id="5029568752722684782">Șterge copia</translation>
 <translation id="5030338702439866405">Emis de</translation>
 <translation id="5036662165765606524">Nu permiteți niciunui site să descarce automat mai multe fișiere</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">A apărut o eroare.</translation>
 <translation id="5094721898978802975">Comunicarea cu aplicațiile native cooperante</translation>
 <translation id="5097002363526479830">A eșuat conectarea la rețeaua „<ph name="NAME" />”: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Nu se poate găsi calea completă către directorul de împachetat.</translation>
 <translation id="5099354524039520280">sus</translation>
 <translation id="5100114659116077956">Pentru a vă oferi cele mai recente funcții, Chromebox trebuie actualizat.</translation>
 <translation id="5101042277149003567">Deschide toate marcajele</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Afișează în dosar</translation>
 <translation id="5171045022955879922">Caută sau introdu adresa URL</translation>
 <translation id="5171343362375269016">Dimensiunea memoriei de swap</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vrea să stocheze permanent date pe computerul tău local.</translation>
 <translation id="5177479852722101802">Blocați în continuare accesul la cameră și microfon</translation>
 <translation id="5177526793333269655">Vizualizare cu miniaturi</translation>
 <translation id="5177549709747445269">Folosești date mobile</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formatează acest dispozitiv</translation>
 <translation id="5293170712604732402">Restabilește setările la valorile inițiale</translation>
 <translation id="5298219193514155779">Temă creată de</translation>
-<translation id="5298363578196989456">Nu se poate importa extensia „<ph name="IMPORT_NAME" />”, deoarece nu este un modul folosit în comun.</translation>
 <translation id="5299109548848736476">Nu urmăriți</translation>
 <translation id="5299682071747318445">Toate datele sunt criptate cu parola dvs. de acces pentru sincronizare</translation>
 <translation id="5300589172476337783">Afișează</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">„<ph name="CHROME_EXTENSION_NAME" />” dorește să se asocieze</translation>
 <translation id="5332624210073556029">Fus orar:</translation>
 <translation id="5334142896108694079">Memorie cache de scripturi</translation>
-<translation id="533433379391851622">Versiunea așteptată era „<ph name="EXPECTED_VERSION" />”, dar versiunea a fost „<ph name="NEW_ID" />”.</translation>
 <translation id="5334844597069022743">Afișează sursa</translation>
 <translation id="5335458522276292100">Se face backup pentru <ph name="FILE_COUNT" /> în <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Instalată de o terță parte.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Permite site-urilor să redea sunet</translation>
 <translation id="5390284375844109566">Bază de date indexată</translation>
 <translation id="5390743329570580756">Trimis pentru</translation>
-<translation id="5396126354477659676">Pluginul <ph name="PEPPER_PLUGIN_NAME" /> de pe <ph name="PEPPER_PLUGIN_DOMAIN" /> dorește să vă acceseze computerul.</translation>
 <translation id="5397794290049113714">Dvs.</translation>
 <translation id="5398572795982417028">Referința privind pagina este în afara limitelor (limita este <ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Anunțurile au fost blocate</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Restabilește toate filele</translation>
 <translation id="5486261815000869482">Confirmați parola</translation>
 <translation id="5486275809415469523">Aplicația <ph name="APP_NAME" /> trimite conținutul de pe ecran către <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Trebuie să existe o valoarea introdusă pentru cheia privată.</translation>
 <translation id="5486561344817861625">Simulați repornirea browserului</translation>
 <translation id="5487521232677179737">Șterge datele</translation>
 <translation id="5488093641312826914">Elementul „<ph name="COPIED_ITEM_NAME" />” a fost copiat</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Actualizarea va fi descărcată folosind <ph name="UPDATE_SIZE_MB" /> MB de date mobile Vrei să continui?</translation>
 <translation id="5601503069213153581">Cod PIN</translation>
 <translation id="5605623530403479164">Alte motoare de căutare</translation>
-<translation id="5606674617204776232">Pluginul <ph name="PEPPER_PLUGIN_NAME" /> de pe <ph name="PEPPER_PLUGIN_DOMAIN" /> dorește să vă acceseze dispozitivul.</translation>
 <translation id="5608580678041221894">Atinge următoarele taste ca să ajustezi sau să muți zona de decupare</translation>
 <translation id="5609231933459083978">Aplicația pare să nu fie validă.</translation>
 <translation id="5610038042047936818">Comută la modul Cameră foto</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Tradusă</translation>
 <translation id="5991049340509704927">Mărește</translation>
 <translation id="5993332328670040093">Utilizarea datelor nu va mai fi măsurată.</translation>
-<translation id="6003177993629630467">Este posibil ca <ph name="PRODUCT_NAME" /> să nu se poată menține la zi.</translation>
 <translation id="600424552813877586">Aplicație nevalidă.</translation>
 <translation id="6005695835120147974">Router media</translation>
 <translation id="6006484371116297560">Tema clasică</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Backup în cloud</translation>
 <translation id="6040143037577758943">Închide</translation>
 <translation id="6040852767465482106">Identitate anonimă</translation>
+<translation id="6041155700700864984">Ieși din ecranul complet</translation>
 <translation id="604124094241169006">Automat</translation>
 <translation id="6042169520002885235">Selectează o marcă și un model de imprimantă</translation>
 <translation id="6042308850641462728">Mai multe</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Reîncărcați normal</translation>
 <translation id="6059652578941944813">Ierarhie de certificate</translation>
 <translation id="6059925163896151826">Dispozitive USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> s-a blocat.</translation>
 <translation id="6064217302520318294">Blocarea ecranului</translation>
 <translation id="6065289257230303064">Atribute director pentru subiectul certificatului</translation>
 <translation id="6068338049763724728">Activează înscrierea la distanță</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Cu ajutorul acestei setări, poți să ajustezi rezoluția ecranului</translation>
 <translation id="6238923052227198598">Păstrează cea mai recentă notă pe ecranul de blocare</translation>
 <translation id="6239558157302047471">Reîncarcă &amp;cadrul</translation>
-<translation id="624022915548992686">Închide pagina</translation>
 <translation id="6241530762627360640">Accesează informațiile despre dispozitivele Bluetooth conectate cu sistemul dvs. și descoperă dispozitivele Bluetooth din apropiere.</translation>
 <translation id="6243774244933267674">Server indisponibil</translation>
 <translation id="6246413617632217567">Utilizatorul monitorizat nu a putut fi importat. Verifică spațiul de pe hard disk și permisiunile, apoi încearcă din nou.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Eroare de rețea necunoscută</translation>
 <translation id="6313641880021325787">IEȘI DIN RV</translation>
 <translation id="6314819609899340042">Ai activat funcțiile de remediere a erorilor pe acest dispozitiv <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Paginile de pornire au fost modificate pentru a include <ph name="URL" />. Pentru a dezactiva extensiile care îți modifică pagina de pornire, dă clic pe Restabilește.</translation>
 <translation id="6315493146179903667">Toate în față</translation>
 <translation id="6316806695097060329">Acest dispozitiv <ph name="SHORT_PRODUCT_NAME" /> a fost creat pentru a vă oferi cea mai bună experiență pe web.</translation>
 <translation id="6317318380444133405">Nu mai este acceptată.</translation>
 <translation id="6317369057005134371">Se așteaptă fereastra aplicației...</translation>
 <translation id="6318407754858604988">A început descărcarea</translation>
-<translation id="6322279351188361895">Cheia privată nu a fost citită.</translation>
 <translation id="6325191661371220117">Dezactivați lansarea automată</translation>
 <translation id="6326175484149238433">Eliminați din Chrome</translation>
 <translation id="6326855256003666642">Număr necesar pentru stare activă</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Alege elementele de sincronizat</translation>
 <translation id="6333064448949140209">Fișierul va fi trimis la Google pentru remedierea erorilor</translation>
 <translation id="6333834492048057036">Focalizează pe bara de adrese pentru căutare</translation>
-<translation id="6336907568130557310">Parolele vor fi vizibile pentru toți cei care pot vedea fișierul exportat. Nu permite nimănui accesul la fișier și șterge-l după ce l-ai importat.</translation>
 <translation id="6339668969738228384">Creează un profil nou pentru <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Nu s-a putut conecta la server. Verifică conexiunea la rețea și încearcă din nou. Dacă problema persistă, repornește Chromebookul.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Site-urile pot să salveze și să citească date despre cookie-uri</translation>
 <translation id="6388771388956873507">Găsește senzorul de amprentă de pe dispozitiv și atinge-l cu degetul</translation>
 <translation id="6390799748543157332">Paginile pe care le accesați în această fereastră nu vor apărea în istoricul browserului și nu vor lăsa alte urme pe computer (de ex., cookie-uri) după ce închideți toate ferestrele deschise în modul Invitat. Cu toate acestea, fișierele pe care le descărcați vor fi păstrate.</translation>
-<translation id="6391538222494443604">Directorul de intrare trebuie să existe.</translation>
 <translation id="6395423953133416962">Trimiteți <ph name="BEGIN_LINK2" />valori<ph name="END_LINK2" /> și <ph name="BEGIN_LINK1" />informații de sistem<ph name="END_LINK1" /></translation>
 <translation id="6397363302884558537">Opriți-vă din vorbit</translation>
 <translation id="6397592254427394018">Deschideți toate marcajele într-o &amp;fereastră incognito</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Gestionează blocarea JavaScript...</translation>
 <translation id="6459488832681039634">Folosește selecția pentru a găsi</translation>
 <translation id="6460601847208524483">Următorul</translation>
-<translation id="6462080265650314920">Aplicațiile trebuie să fie difuzate utilizând antetul content-type „<ph name="CONTENT_TYPE" />”.</translation>
 <translation id="6462082050341971451">Mai sunteți aici?</translation>
 <translation id="6463795194797719782">&amp;Editează</translation>
 <translation id="6466988389784393586">&amp;Deschideți toate marcajele</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Dorești ca Google să traducă această pagină din <ph name="SOURCE_LANGUAGE" /> în <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Dispozitivul de indicat este conectat</translation>
-<translation id="6677037229676347494">ID-ul așteptat era „<ph name="EXPECTED_ID" />”, dar ID-ul a fost „<ph name="NEW_ID" />”.</translation>
 <translation id="6678717876183468697">Adresa URL a interogării</translation>
 <translation id="6680028776254050810">Comutați la alt utilizator</translation>
 <translation id="6680442031740878064">Spațiu disponibil: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Poți personaliza oricând informațiile colectate de Google în <ph name="BEGIN_LINK" />Setări<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Revocați accesul la fișiere</translation>
 <translation id="6904655473976120856">Apasă pe butonul Aplicație pentru ieșire</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> dorește să acceseze ecranul.</translation>
-<translation id="6909461304779452601">Nu puteți adăuga aplicații, extensii și scripturi de utilizator de pe acest site web.</translation>
 <translation id="6910211073230771657">Șters</translation>
 <translation id="691024665142758461">să descarce mai multe fișiere</translation>
 <translation id="6911324888870229398">S-a pierdut conexiunea la rețea. Verifică conexiunea sau încearcă o altă rețea Wi-Fi.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Eroare: extensia nu poate fi decodificată</translation>
 <translation id="7473891865547856676">Nu, mulțumesc</translation>
 <translation id="747459581954555080">Restabilește-le pe toate</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> a întâmpinat o eroare.</translation>
 <translation id="7475671414023905704">Adresă URL pentru parolă pierdută Netscape</translation>
 <translation id="7476454130948140105">Bateria este prea descărcată pentru actualizare (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Dacă ai uitat expresia de acces, oprește și resetează sincronizarea utilizând <ph name="BEGIN_LINK" />Tabloul de bord Google<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Certificat de respondent de stare</translation>
 <translation id="7508545000531937079">Slideshow</translation>
 <translation id="7513029293694390567">Te conectezi automat la site-uri folosind datele de conectare stocate. Dacă funcția este dezactivată, ți se va solicita confirmarea de fiecare dată înainte de a te conecta la un site.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> dorește să identifice în mod unic dispozitivul pentru a reda conținutul protejat.</translation>
 <translation id="7517569744831774757">Restabilește setările la valorile inițiale.</translation>
 <translation id="7517786267097410259">Creați o parolă –</translation>
 <translation id="7518150891539970662">Jurnale WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     să încercați din nou să creați un utilizator monitorizat.</translation>
 <translation id="756445078718366910">Deschide fereastra de browser</translation>
 <translation id="7564847347806291057">Oprește procesul</translation>
-<translation id="7565291891798266313">Motorul de căutare a fost înlocuit cu <ph name="URL" />. Pentru a dezactiva extensiile care îți modifică motorul de căutare, dă clic pe Restabilește.</translation>
 <translation id="7566118625369982896">Gestionează linkurile aplicației Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Datele Chrome au fost șterse</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Încărcarea bateriei</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Colaționează</translation>
-<translation id="7577815336900970562">Folosește Wi-Fi sau rețelele mobile pentru determinarea locației</translation>
 <translation id="7579149537961810247">Dezactivează sunetul pentru site-uri</translation>
 <translation id="7580671184200851182">Redă același conținut audio în toate difuzoarele (audio mono)</translation>
 <translation id="7581462281756524039">Un instrument de curățare</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Stocare sesiune</translation>
 <translation id="7781335840981796660">Toate conturile de utilizator și datele locale vor fi eliminate.</translation>
 <translation id="7782102568078991263">Nu mai există sugestii de la Google</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> nu s-a putut încărca</translation>
 <translation id="7784067724422331729">Setările de securitate de pe computer au blocat acest fișier.</translation>
 <translation id="7786207843293321886">Ieșiți din modul pentru invitați</translation>
 <translation id="7786889348652477777">&amp;Reîncarcă aplicația</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Este posibil ca un site să fi furat parola</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8008356846765065031">Internet deconectat. Verificați conexiunea la internet.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> nu s-a putut încărca.</translation>
 <translation id="8008818777654712271">Trimite automat anumite informații despre sistem și conținutul paginii la Google pentru a detecta aplicațiile și site-urile periculoase</translation>
 <translation id="8012382203418782830">Pagina a fost tradusă.</translation>
 <translation id="8014154204619229810">Momentan, rulează instrumentul pentru actualizare. Actualizează într-un minut și verifică din nou.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Gestionează aplicațiile, extensiile și temele dvs.</translation>
 <translation id="8191453843330043793">Rezolvitorul proxy-ului V8</translation>
 <translation id="8195027750202970175">Dimensiune pe disc</translation>
-<translation id="8195739004487400241">Pagina principală a fost înlocuită cu <ph name="URL" />. Pentru a dezactiva extensiile care îți modifică pagina principală, dă clic pe Restabilește.</translation>
 <translation id="8199300056570174101">Proprietăți pentru dispozitiv și rețea (serviciu)</translation>
 <translation id="8200772114523450471">Reia</translation>
 <translation id="8202160505685531999">Reintrodu parola pentru a actualiza profilul <ph name="DEVICE_TYPE" />.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Această extensie nu este inclusă în <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> și este posibil să fi fost adăugată fără știrea dvs.</translation>
 <translation id="8261387128019234107">Adăugați un cont pentru <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Șterge</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> nu este implementat în această versiune.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> a dezactivat cursorul mouse-ului.</translation>
 <translation id="8264718194193514834">„<ph name="EXTENSION_NAME" />” a activat modul Ecran complet.</translation>
 <translation id="8270242299912238708">Documente PDF</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Sau selectează o rețea nouă:</translation>
 <translation id="845627346958584683">Ora expirării</translation>
 <translation id="8456681095658380701">Nume nevalid</translation>
+<translation id="8457451314607652708">Importă marcajele</translation>
 <translation id="8460336040822756677">Dacă dezactivezi Smart Lock pentru <ph name="DEVICE_TYPE" />, nu vei putea debloca dispozitivele Chrome folosind telefonul. Va fi necesar să introduci parola.</translation>
 <translation id="8461329675984532579">Numele furnizorului local</translation>
 <translation id="84613761564611563">S-a solicitat interfața de utilizare pentru configurarea rețelei, așteaptă...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Nu s-a găsit software dăunător</translation>
 <translation id="8512476990829870887">Opriți procesul</translation>
 <translation id="851263357009351303">Permite întotdeauna afișarea de imagini de la <ph name="HOST" /></translation>
-<translation id="8513191386157529469">„<ph name="CLIENT_NAME" />” remediază erorile din acest browser.</translation>
 <translation id="8521475323816527629">Accesează rapid aplicațiile</translation>
 <translation id="8523493869875972733">Păstrează modificările</translation>
 <translation id="8523849605371521713">Adăugată de politică</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Configurează conexiunile la rețea</translation>
 <translation id="8620790565535071193">Scanarea nu a reușit</translation>
 <translation id="8622877356447980900">Dorești ca această pagină să fie tradusă?</translation>
-<translation id="8623004009673949077">Aplicația cu atributul „kiosk_only” din manifest trebuie să fie instalată în modul chioșc pentru sistemul de operare Chrome.</translation>
 <translation id="8624205858755890468">Permite Asistentului să afișeze informații, aplicații și acțiuni conexe.</translation>
 <translation id="862542460444371744">&amp;Extensii</translation>
 <translation id="8627151598708688654">Selectează sursa</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Actualizează firmware-ul pentru securitate suplimentară.</translation>
 <translation id="8823514049557262177">Copiază te&amp;xtul linkului</translation>
 <translation id="8824701697284169214">Adăugați pa&amp;gina...</translation>
-<translation id="8827850355924932817">Folosește rețeaua Wi-Fi pentru a stabili locația</translation>
 <translation id="8828933418460119530">Nume DNS</translation>
 <translation id="8830796635868321089">Căutarea actualizărilor utilizând setările de proxy actuale nu a reușit. Ajustați <ph name="PROXY_SETTINGS_LINK_START" />setările de proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Configurarea rețelei este controlată de <ph name="USER_EMAIL" />.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Afișează ca filă</translation>
 <translation id="8884961208881553398">Adaugă servicii noi</translation>
 <translation id="8885197664446363138">Funcția Smart Lock nu este disponibilă</translation>
-<translation id="8885905466771744233">Există deja o cheie privată pentru extensia specificată. Reutilizeaz-o sau șterge-o mai întâi.</translation>
 <translation id="8888432776533519951">Culoare:</translation>
-<translation id="8892992092192084762">Tema „<ph name="THEME_NAME" />” a fost instalată.</translation>
 <translation id="8893928184421379330">Ne pare rău, dispozitivul <ph name="DEVICE_LABEL" /> nu a putut fi recunoscut.</translation>
 <translation id="8895454554629927345">Lista de marcaje</translation>
 <translation id="88986195241502842">O pagină mai jos</translation>
@@ -4991,13 +4926,12 @@
 <translation id="8899285681604219177">Extensiile necompatibile au fost dezactivate</translation>
 <translation id="8899551033019439140">Se caută o imprimantă…</translation>
 <translation id="8899851313684471736">Deschide linkul într-o &amp;fereastră nouă</translation>
-<translation id="8902667442496790482">Deschide setările Selectează pentru a se rosti</translation>
+<translation id="8902667442496790482">Deschide setările „Selectează și ascultă”</translation>
 <translation id="8903921497873541725">Mărește</translation>
 <translation id="8904976895050290827">Chrome Sync</translation>
 <translation id="8908902564709148335">Avertisment: ai activat marcajul scripts-require-action pe acest computer, care limitează capacitățile acestei extensii. Totuși, este posibil ca alte dispozitive să nu accepte acest marcaj sau să îl aibă activat. Pe aceste dispozitive, această extensie poate să:</translation>
 <translation id="8910146161325739742">Permite accesul la ecran</translation>
 <translation id="8910222113987937043">Modificările marcajelor, istoricului, parolelor sau ale altor setări nu vor mai fi sincronizate cu Contul Google. Totuși, datele existente vor rămâne stocate în Contul Google și pot fi gestionate din <ph name="BEGIN_LINK" />Tabloul de bord Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google a semnalat „<ph name="EXTENSION_NAME" />” ca extensie rău intenționată și instalarea nu a fost permisă.</translation>
 <translation id="8912793549644936705">Extins</translation>
 <translation id="8915370057835397490">Se încarcă sugestiile</translation>
 <translation id="8916476537757519021">Subcadru incognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Mouse USB conectat</translation>
 <translation id="9076523132036239772">Din păcate, adresa de e-mail sau parola nu a putut fi verificată. Încearcă să te conectezi mai întâi la o rețea.</translation>
-<translation id="907841381057066561">Crearea fișierului zip temporar în timpul împachetării nu a reușit.</translation>
 <translation id="9084064520949870008">Deschideți ca fereastră</translation>
 <translation id="9088234649737575428">Pluginul <ph name="PLUGIN_NAME" /> este blocat conform politicii companiei</translation>
 <translation id="9088917181875854783">Confirmați că această cheie de acces este afișată pe „<ph name="DEVICE_NAME" />”:</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Introdu expresia de acces</translation>
 <translation id="939736085109172342">Dosar nou</translation>
-<translation id="941543339607623937">Cheie privată nevalidă.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> trimite conținutul unei file Chrome și conținutul audio.</translation>
 <translation id="942954117721265519">Nu există imagini în acest director.</translation>
 <translation id="945522503751344254">Trimite feedback</translation>
-<translation id="951981865514037445"><ph name="URL" /> dorește să utilizeze locația dispozitivului dvs.</translation>
 <translation id="952992212772159698">Neactivat</translation>
 <translation id="9580706199804957">Nu s-a putut conecta la serviciile Google</translation>
 <translation id="958515377357646513">Atinge pentru a naviga înainte.</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 6b4bbd0b..e9cf0e1 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Только расшифровка</translation>
 <translation id="1039337018183941703">Файл поврежден или недействителен</translation>
 <translation id="1042174272890264476">В ваш компьютер встроена библиотека RLZ <ph name="SHORT_PRODUCT_NAME" />. RLZ присваивает компьютеру неуникальную и не позволяющую идентифицировать пользователя метку, с помощью которой мы можем оценить количество запросов и статистику использования этого продукта (<ph name="SHORT_PRODUCT_NAME" />) по результатам рекламных кампаний. Иногда метки могут включаться в поисковые запросы, сделанные в этом продукте (<ph name="PRODUCT_NAME" />).</translation>
-<translation id="1042574203789536285">От <ph name="URL" /> поступил запрос на постоянное хранение большого объема данных на вашем мобильном устройстве.</translation>
 <translation id="1046059554679513793">Ошибка! Это название уже используется.</translation>
 <translation id="1047431265488717055">Скопировать &amp;текст ссылки</translation>
 <translation id="1047726139967079566">Добавить страницу в закладки…</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Восстановить поисковую систему по умолчанию?</translation>
 <translation id="1177863135347784049">Персонализированные</translation>
 <translation id="1178581264944972037">Пауза</translation>
-<translation id="1179803038870941185"><ph name="URL" /> запрашивает полный контроль над устройствами MIDI.</translation>
 <translation id="1181037720776840403">Удалить</translation>
 <translation id="1183237619868651138">Не удается установить файл <ph name="EXTERNAL_CRX_FILE" /> в локальный кеш.</translation>
 <translation id="1185924365081634987">Чтобы исправить данную сетевую ошибку, попробуйте <ph name="GUEST_SIGNIN_LINK_START" />войти в гостевом режиме<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Доступен 1 файл на компьютере}one{Доступен # файл на компьютере}few{Доступно # файла на компьютере}many{Доступно # файлов на компьютере}other{Доступно # файла на компьютере}}</translation>
 <translation id="1195076408729068893">Чтобы включить Smart Lock, введите пароль. После этого вы сможете снимать блокировку устройства <ph name="DEVICE_TYPE" /> с помощью телефона.</translation>
 <translation id="1195447618553298278">Неизвестная ошибка.</translation>
-<translation id="1196338895211115272">Не удалось экспортировать закрытый ключ.</translation>
 <translation id="119738088725604856">Скриншот окна</translation>
 <translation id="1197979282329025000">При получении данных о свойствах принтера <ph name="PRINTER_NAME" /> произошла ошибка. Не удалось зарегистрировать принтер при помощи <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Приступим!</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Администратор рекомендует выбрать определенное значение для этого параметра.</translation>
 <translation id="1225177025209879837">Обработка запроса...</translation>
 <translation id="1225211345201532184">5-й объект на панели запуска</translation>
-<translation id="1225404570112441414">Добавьте этот сайт на панель запуска, чтобы он всегда был у вас под рукой.</translation>
 <translation id="1227507814927581609">При подключении к "<ph name="DEVICE_NAME" />" произошла ошибка аутентификации.</translation>
 <translation id="1230807973377071856">Системное меню</translation>
 <translation id="1232569758102978740">Без имени</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML-файл с закладками</translation>
 <translation id="1303671224831497365">Устройства Bluetooth не найдены</translation>
 <translation id="1306606229401759371">Изменить настройки</translation>
-<translation id="1307398858972670978">Получить доступ к своим паролям с любого устройства можно по ссылке <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Системе не удалось сохранить токен доступа для API на этом устройстве.</translation>
 <translation id="1313405956111467313">Автоматическая настройка прокси-сервера</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Поиск</translation>
 <translation id="1386387014181100145">Привет!</translation>
 <translation id="138784436342154190">Восстановить настройки стартовой страницы по умолчанию?</translation>
-<translation id="1389297115360905376">Это приложение или расширение можно установить только из сервиса "<ph name="CHROME_WEB_STORE" />".</translation>
 <translation id="1390548061267426325">Открыть в обычной вкладке</translation>
-<translation id="1391807639023934267">Загружена версия страницы для предпросмотра.</translation>
 <translation id="1393283411312835250">Солнце и облака</translation>
 <translation id="1395262318152388157">Ползунок воспроизведения</translation>
 <translation id="1395730723686586365">Программа обновлений запущена</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Вы устанавливаете нестабильную версию <ph name="PRODUCT_NAME" />, которая содержит разрабатываемые в настоящий момент функции. Будьте осторожны: возможны сбои и неизвестные ошибки.</translation>
 <translation id="1415990189994829608">Расширение "<ph name="EXTENSION_NAME" />" (ID <ph name="EXTENSION_ID" />) запрещено использовать в ходе сеанса этого типа</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Не удалось создать случайный закрытый ключ RSA.</translation>
 <translation id="1420834118113404499">Медиалицензии</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, чтобы разрешить соединение</translation>
 <translation id="1426410128494586442">Да</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">&amp;Копировать URL аудио</translation>
 <translation id="1465827627707997754">Кусок пиццы</translation>
 <translation id="1467432559032391204">Слева</translation>
-<translation id="1467999917853307373">От <ph name="URL" /> поступил запрос на постоянное хранение данных на вашем мобильном устройстве.</translation>
-<translation id="1470719357688513792">Новые настройки файлов cookie вступят в силу после обновления страницы.</translation>
 <translation id="1470811252759861213">Чтобы получить доступ к расширениям на всех ваших устройствах, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Не удалось загрузить <ph name="FILENAME" />. Не хватает пространства на Google Диске.</translation>
 <translation id="1475502736924165259">У вас имеются сертификаты, которые не попадают ни в одну из других категорий</translation>
@@ -366,6 +356,7 @@
 <translation id="15373452373711364">Большой курсор мыши</translation>
 <translation id="1543284117603151572">Импортированные из Microsoft Edge</translation>
 <translation id="1545177026077493356">Автоматическое включение режима киоска</translation>
+<translation id="1545775234664667895">Установлена тема "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">Ссылка с параметром %s вместо запроса</translation>
 <translation id="1546280085599573572">Расширение изменило страницу, которая открывается при нажатии кнопки "Главная страница".</translation>
 <translation id="1547572086206517271">Обновите страницу</translation>
@@ -442,11 +433,9 @@
     <ph name="BEGIN_BOLD" />просматривать<ph name="END_BOLD" /> список сайтов, которые посещал пользователь;
     <ph name="BEGIN_BOLD" />изменять<ph name="END_BOLD" /> другие настройки.</translation>
 <translation id="1648943974594387137">Данные для входа в аккаунт устарели</translation>
-<translation id="1649641629389702691">&lt;Скрыто строк: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Показывать параметры ввода</translation>
 <translation id="1650709179466243265">Добавить www. и .com и перейти по ссылке</translation>
 <translation id="1651008383952180276">Необходимо дважды ввести одну кодовую фразу</translation>
-<translation id="1652972346408808053">Пароль сохранен. Список паролей доступен на странице <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Добавьте принтер в приложение "Google Виртуальный принтер" и печатайте документы с любого устройства.}one{Добавьте # принтер в приложение "Google Виртуальный принтер" и печатайте документы с любого устройства.}few{Добавьте # принтера в приложение "Google Виртуальный принтер" и печатайте документы с любого устройства.}many{Добавьте # принтеров в приложение "Google Виртуальный принтер" и печатайте документы с любого устройства.}other{Добавьте # принтера в приложение "Google Виртуальный принтер" и печатайте документы с любого устройства.}}</translation>
 <translation id="1657406563541664238">Автоматическая отправка в Google статистики использования и отчетов о сбоях с целью улучшения <ph name="PRODUCT_NAME" /></translation>
 <translation id="1658424621194652532">Этой странице разрешен доступ к вашему микрофону</translation>
@@ -673,7 +662,6 @@
 <translation id="2045969484888636535">Всегда блокировать сохранение cookie</translation>
 <translation id="204622017488417136">Устройство вернется к предыдущей версии Chrome. Локальные данные и аккаунты пользователей будут удалены. Это действие нельзя отменить.</translation>
 <translation id="2048182445208425546">Доступ к сетевому трафику</translation>
-<translation id="2049137146490122801">Доступ к локальным файлам на вашем компьютере отключен администратором.</translation>
 <translation id="204914487372604757">Создать ярлык</translation>
 <translation id="2050339315714019657">Книжная</translation>
 <translation id="2053312383184521053">Данные о состоянии бездействия</translation>
@@ -707,7 +695,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Еще не загружен</translation>
 <translation id="2107494551712864447">Добавление отпечатка пальца</translation>
-<translation id="2111843886872897694">Приложения должны загружаться с того сайта, с которым они работают.</translation>
 <translation id="2112877397266219826">Для установки включите сенсорный контроллер</translation>
 <translation id="21133533946938348">Закрепить вкладку</translation>
 <translation id="2113479184312716848">Открыть &amp;файл...</translation>
@@ -794,7 +781,6 @@
 <translation id="2226720438730111184">Описание проблемы</translation>
 <translation id="2229161054156947610">Осталось больше часа</translation>
 <translation id="222931766245975952">Файл поврежден</translation>
-<translation id="222949136907494149"><ph name="URL" /> запрашивает данные о местоположении вашего компьютера.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Не удалось создать папку "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Нажмите, чтобы посмотреть сегодняшний дудл</translation>
@@ -882,7 +868,6 @@
 <translation id="236141728043665931">Всегда блокировать доступ к микрофону</translation>
 <translation id="2367972762794486313">Показать сервисы</translation>
 <translation id="2371076942591664043">Открыть по &amp;завершении</translation>
-<translation id="237336063998926520">Определение местоположения по вашему IP-адресу</translation>
 <translation id="2377319039870049694">Показать в виде списка</translation>
 <translation id="2377667304966270281">Ошибки отсутствия страницы в памяти</translation>
 <translation id="2378075407703503998">Выбрано файлов: <ph name="SELCTED_FILE_COUNT" />.</translation>
@@ -929,7 +914,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> запрашивает разрешение на копирование файлов из тома "<ph name="VOLUME_NAME" />".</translation>
 <translation id="2462724976360937186">Идентификатор ключа ЦС</translation>
 <translation id="2462752602710430187">Добавлен принтер <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Импорт закладок</translation>
 <translation id="2464089476039395325">HTTP-прокси</translation>
 <translation id="2468902267404883140">Не удалось подключиться к телефону. Убедитесь, что вы используете совместимое устройство Android, которое включено и находится поблизости. &lt;a&gt;Подробнее…&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Неподдерживаемые расширения отключены</translation>
@@ -945,7 +929,6 @@
 <translation id="2485422356828889247">Удалить</translation>
 <translation id="2487067538648443797">Новая закладка</translation>
 <translation id="248861575772995840">Телефон не обнаружен. Убедитесь, что на устройстве <ph name="DEVICE_TYPE" /> включен Bluetooth. &lt;a&gt;Подробнее…&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Плагин "<ph name="PLUGIN_NAME" />" не отвечает.</translation>
 <translation id="2489428929217601177">за вчерашний день</translation>
 <translation id="2489918096470125693">Добавить &amp;папку</translation>
 <translation id="249113932447298600">Устройство <ph name="DEVICE_LABEL" /> не поддерживается.</translation>
@@ -999,13 +982,11 @@
 <translation id="2563856802393254086">Поздравляем! Служба передачи данных "<ph name="NAME" />" активирована и готова к работе.</translation>
 <translation id="2566124945717127842">Функция Powerwash восстановит заводские настройки устройства <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2568774940984945469">Контейнер панели информации</translation>
-<translation id="2570000010887652771">Экономия трафика.</translation>
 <translation id="257088987046510401">Темы</translation>
 <translation id="2572032849266859634">Предоставлен доступ к тому <ph name="VOLUME_NAME" /> (только чтение).</translation>
 <translation id="2573269395582837871">Выберите изображение и имя</translation>
 <translation id="2575247648642144396">Значок будет отображаться, если расширение может работать на загруженной странице. Активируйте его, нажав на значок или с помощью комбинации клавиш <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Телефон не обнаружен. Убедитесь, что устройство <ph name="DEVICE_TYPE" /> подключено к Wi-Fi или к мобильной сети. &lt;a&gt;Подробнее…&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Файл CRX с таким именем уже существует.</translation>
 <translation id="257779572837908839">Использовать в качестве Chromebox для видеоконференций</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Не удалось отключить том.<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Если удалить сертификат Центра сертификации, ваш браузер не сможет доверять сертификатам, выпущенным этим Центром сертификации.</translation>
 <translation id="2653659639078652383">Отправить</translation>
 <translation id="265390580714150011">Значение поля</translation>
-<translation id="2654286334048437383">Экспорт закладок</translation>
 <translation id="2655386581175833247">Сертификат пользователя:</translation>
 <translation id="2660779039299703961">Событие</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Добавление галереи мультимедиа из папки</translation>
 <translation id="2908789530129661844">Уменьшить масштаб экрана</translation>
 <translation id="2910318910161511225">Подключитесь к сети и повторите попытку.</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> запрашивает разрешение на использование вашего микрофона.</translation>
 <translation id="2913331724188855103">Разрешить сайтам сохранять и читать файлы cookie (рекомендуется)</translation>
 <translation id="2916073183900451334">Нажатие клавиши Tab на веб-странице приводит к выделению ссылок, а также полей формы</translation>
 <translation id="2916745397441987255">Поиск по расширениям</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Говорите</translation>
 <translation id="3141917231319778873">Запрос не поддерживается на устройстве <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">ГОТОВО</translation>
-<translation id="3144135466825225871">Не удалось переместить CRX-файл. Убедитесь, что он не используется.</translation>
 <translation id="3144647712221361880">Открыть ссылку как</translation>
 <translation id="3149510190863420837">Приложения Chrome</translation>
 <translation id="3150927491400159470">Жесткая перезагрузка</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Запускать всегда</translation>
 <translation id="3312424061798279731">Добавленные языки</translation>
 <translation id="3312903956926554846">Установить на компьютер</translation>
-<translation id="3313473140726597081">Стартовая страница изменена на <ph name="URL" />. Чтобы отключить расширения, изменившие эту настройку, нажмите "Восстановить".</translation>
 <translation id="3313590242757056087">Указать список сайтов, которые может посещать контролируемый пользователь, а также задать настройки и
     ограничения можно на странице <ph name="MANAGEMENT_URL" />.
     Если не изменить настройки по умолчанию, пользователь <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">О приложении</translation>
 <translation id="3335947283844343239">Открыть закрытую вкладку</translation>
-<translation id="3337069537196930048">Плагин <ph name="PLUGIN_NAME" /> заблокирован, так как он устарел.</translation>
 <translation id="3340978935015468852">настройках</translation>
 <translation id="3341703758641437857">Разрешить открывать локальные файлы по ссылкам</translation>
 <translation id="3342361181740736773">Программа "<ph name="TRIGGERING_EXTENSION_NAME" />" пытается удалить это расширение.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Закладка добавлена</translation>
 <translation id="3389312115541230716">Правой кнопкой мыши выберите <ph name="SMALL_PRODUCT_LOGO" /> на панели задач</translation>
 <translation id="3391716558283801616">Вкладка 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> запрашивает разрешение на использование камеры и микрофона.</translation>
 <translation id="3396331542604645348">Принтер недоступен или установлен неправильно. Проверьте его или выберите другой.</translation>
 <translation id="3399432415385675819">Уведомления будут отключены</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome обновляется автоматически, поэтому у вас всегда будет установлена последняя версия.</translation>
 <translation id="3551320343578183772">Закрыть вкладку</translation>
 <translation id="3552780134252864554">Удаляется при выходе</translation>
-<translation id="355298399003313926"><ph name="URL" /> запрашивает доступ к специальным возможностям.</translation>
 <translation id="3555812735919707620">Удалить расширение</translation>
 <translation id="3556000484321257665">Поисковая система изменена на <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Входное значение закрытого ключа должно предоставлять собой допустимый путь.</translation>
 <translation id="3563432852173030730">Не удалось скачать киоск-приложение</translation>
 <translation id="3564334271939054422">Возможно, вам нужно перейти на страницу входа сети Wi-Fi (<ph name="NETWORK_ID" />).</translation>
 <translation id="3564708465992574908">Масштабирование</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Ограничения имени сертификата</translation>
 <translation id="3596235046596950091">Включить облачные сервисы</translation>
 <translation id="3599863153486145794">Удаление истории со всех устройств, на которых выполнен вход в аккаунт. Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Доступ к локальным файлам на вашем мобильном устройстве отключен администратором.</translation>
 <translation id="3600792891314830896">Отключить звуки на сайтах</translation>
 <translation id="3603177256297531067">Не удалось перевести страницу</translation>
 <translation id="3603533104205588786">Нажмите на значок звездочки</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Скриншоты отключены</translation>
 <translation id="3625870480639975468">Исходный масштаб</translation>
 <translation id="3626281679859535460">Яркость</translation>
-<translation id="3627052133907344175">Для расширения требуется <ph name="IMPORT_NAME" /> с версией не ниже <ph name="IMPORT_VERSION" />. Сейчас установлена версия <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Осталось меньше минуты</translation>
 <translation id="3627588569887975815">Открыть ссылку в окне в режиме &amp;инкогнито</translation>
 <translation id="3627671146180677314">Время обновления сертификата Netscape</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Настройки языка</translation>
 <translation id="3668823961463113931">Обработчики</translation>
 <translation id="3670229581627177274">Включить Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> запрашивает постоянное хранение данных на вашем компьютере.</translation>
 <translation id="3672681487849735243">Обнаружен производственный брак</translation>
 <translation id="367645871420407123">оставьте пустым, чтобы установить значение тестового изображения по умолчанию в качестве пароля суперпользователя</translation>
 <translation id="3678156199662914018">Расширение: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Вы работаете в автономном режиме.</translation>
 <translation id="3788401245189148511">Разрешения:</translation>
 <translation id="3789841737615482174">Установить</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> не работает в среде Metro в Windows 8.</translation>
 <translation id="379082410132524484">Срок действия карты истек</translation>
 <translation id="3792890930871100565">Удалить принтеры</translation>
 <translation id="379422718204375917">Входить в аккаунт с помощью Smart Lock</translation>
-<translation id="3794595850995182458">Закрыть страницу</translation>
 <translation id="3796648294839530037">Избранные сети:</translation>
 <translation id="3797900183766075808">&amp;Найти "<ph name="SEARCH_TERMS" />" в <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Позволяет включить/отключить функцию "Нажатие прикосновением"</translation>
@@ -1982,7 +1950,6 @@
 <translation id="3979748722126423326">Включить <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Введен недействительный тип сохранения.</translation>
 <translation id="3983586614702900908">устройства от неизвестного поставщика</translation>
-<translation id="3984413272403535372">Ошибка при подписи расширения.</translation>
 <translation id="3987938432087324095">Извините, не слышно.</translation>
 <translation id="3988996860813292272">Выбор часового пояса</translation>
 <translation id="3989635538409502728">Выйти</translation>
@@ -2038,7 +2005,6 @@
 <translation id="4087470595660267445">Устанавливайте приложения и игры из Google Play на устройство Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Подробнее…&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Принять</translation>
 <translation id="4090103403438682346">Включить службу проверенного доступа</translation>
-<translation id="4090404313667273475">Для отображения некоторых элементов на этой странице требуется плагин <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">Это расширение контролируется правилами и не может быть удалено.</translation>
 <translation id="4091434297613116013">лист. бумаги</translation>
 <translation id="4093955363990068916">Локальный файл:</translation>
@@ -2372,7 +2338,6 @@
 <translation id="4714531393479055912">Теперь <ph name="PRODUCT_NAME" /> может синхронизировать ваши пароли.</translation>
 <translation id="4715553623069266137">очень короткая (0,8 с)</translation>
 <translation id="4716483597559580346">Обновите систему безопасности с помощью Powerwash</translation>
-<translation id="471800408830181311">Не удалось выгрузить закрытый ключ.</translation>
 <translation id="4720113199587244118">Добавить устройства</translation>
 <translation id="4720185134442950733">Мобильная сеть</translation>
 <translation id="4722920479021006856">Приложению <ph name="APP_NAME" /> предоставлен доступ к вашему экрану.</translation>
@@ -2509,7 +2474,6 @@
 <translation id="4917385247580444890">Сильный</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> запрашивает доступ к расширению "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Принять</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> запрашивает разрешение на использование вашей камеры.</translation>
 <translation id="4920887663447894854">Вы запретили передачу ваших геоданных следующим сайтам:</translation>
 <translation id="492299503953721473">Удалить приложения для Android</translation>
 <translation id="4923279099980110923">Да, отправить файл на анализ</translation>
@@ -2550,7 +2514,6 @@
 <translation id="4980805016576257426">Это расширение содержит вредоносное ПО.</translation>
 <translation id="498294082491145744">Изменить настройки доступа сайтов к файлам cookie, JavaScript, плагинам, геоданным, микрофону, камере и другим функциям</translation>
 <translation id="4988526792673242964">Страницы</translation>
-<translation id="4988792151665380515">Не удалось экспортировать закрытый ключ.</translation>
 <translation id="49896407730300355">Повернуть п&amp;ротив часовой стрелки</translation>
 <translation id="4989966318180235467">Исследовать &amp;фоновую страницу</translation>
 <translation id="4990343175649730969">Скачать Инструмент очистки Chrome</translation>
@@ -2579,7 +2542,6 @@
 <translation id="5026874946691314267">Больше не показывать это сообщение</translation>
 <translation id="5027550639139316293">Сертификат электронной почты</translation>
 <translation id="5027562294707732951">Установить расширение</translation>
-<translation id="5028012205542821824">Установка не разрешена.</translation>
 <translation id="5029568752722684782">Удалить данные</translation>
 <translation id="5030338702439866405">Выдан:</translation>
 <translation id="5036662165765606524">Запретить сайтам автоматически скачивать более одного файла</translation>
@@ -2615,7 +2577,6 @@
 <translation id="509429900233858213">Произошла ошибка.</translation>
 <translation id="5094721898978802975">Установка соединения со смежными нативными приложениями</translation>
 <translation id="5097002363526479830">Не удалось подключиться к сети <ph name="NAME" />: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Не удается найти абсолютный путь к заданному каталогу.</translation>
 <translation id="5099354524039520280">вверх</translation>
 <translation id="5100114659116077956">Установите последние обновления Chromebox.</translation>
 <translation id="5101042277149003567">Открыть все закладки</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">Показать в папке</translation>
 <translation id="5171045022955879922">Введите запрос или URL</translation>
 <translation id="5171343362375269016">Память подкачки</translation>
-<translation id="5175870427301879686"><ph name="URL" /> запрашивает постоянное хранение данных на вашем компьютере.</translation>
 <translation id="5177479852722101802">Всегда блокировать доступ к веб-камере и микрофону</translation>
 <translation id="5177526793333269655">Уменьшенные изображения</translation>
 <translation id="5177549709747445269">Для передачи данных используется мобильная сеть</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Форматировать устройство</translation>
 <translation id="5293170712604732402">Восстановление настроек по умолчанию</translation>
 <translation id="5298219193514155779">Автор темы:</translation>
-<translation id="5298363578196989456">Не удалось импортировать расширение "<ph name="IMPORT_NAME" />", поскольку это не общий модуль</translation>
 <translation id="5299109548848736476">Запрет отслеживания</translation>
 <translation id="5299682071747318445">Все данные зашифрованы с помощью кодовой фразы</translation>
 <translation id="5300589172476337783">Показать</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">Расширение "<ph name="CHROME_EXTENSION_NAME" />" запрашивает подключение</translation>
 <translation id="5332624210073556029">Часовой пояс:</translation>
 <translation id="5334142896108694079">Кеш скрипта</translation>
-<translation id="533433379391851622">Ожидаемая версия: <ph name="EXPECTED_VERSION" />, полученная версия: <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Смотреть исходный код</translation>
 <translation id="5335458522276292100">Сохранение файлов (<ph name="FILE_COUNT" />) на <ph name="BEGIN_LINK" />Google Диске<ph name="END_LINK" />…</translation>
 <translation id="5337771866151525739">Установлено независимым поставщиком.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">Разрешить сайтам воспроизводить звуки</translation>
 <translation id="5390284375844109566">Индексированная база данных</translation>
 <translation id="5390743329570580756">Отправка</translation>
-<translation id="5396126354477659676">Плагин <ph name="PEPPER_PLUGIN_NAME" /> в домене <ph name="PEPPER_PLUGIN_DOMAIN" /> пытается получить доступ к вашему компьютеру.</translation>
 <translation id="5397794290049113714">Вы</translation>
 <translation id="5398572795982417028">Размер страницы больше максимально допустимого (лимит ‒ <ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">Реклама заблокирована</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Восстановить все вкладки</translation>
 <translation id="5486261815000869482">Подтвердите пароль</translation>
 <translation id="5486275809415469523">Приложение "<ph name="APP_NAME" />" предоставило сайту <ph name="TAB_NAME" /> доступ к вашему экрану.</translation>
-<translation id="5486326529110362464">Должно существовать входное значение для закрытого ключа.</translation>
 <translation id="5486561344817861625">Симулировать перезапуск браузера</translation>
 <translation id="5487521232677179737">Удалить данные</translation>
 <translation id="5488093641312826914">Объект "<ph name="COPIED_ITEM_NAME" />" скопирован</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">Чтобы скачать обновление, потребуется <ph name="UPDATE_SIZE_MB" /> МБ мобильного трафика. Продолжить?</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5605623530403479164">Другие поисковые системы</translation>
-<translation id="5606674617204776232">Плагин <ph name="PEPPER_PLUGIN_NAME" /> в домене <ph name="PEPPER_PLUGIN_DOMAIN" /> пытается получить доступ к вашему мобильному устройству.</translation>
 <translation id="5608580678041221894">Чтобы двигать рамку кадрирования, нажимайте на следующие кнопки</translation>
 <translation id="5609231933459083978">Неизвестное название приложения</translation>
 <translation id="5610038042047936818">Включить режим фото</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Перевод</translation>
 <translation id="5991049340509704927">Увеличение</translation>
 <translation id="5993332328670040093">Расход трафика больше не отслеживается.</translation>
-<translation id="6003177993629630467">Возможно, <ph name="PRODUCT_NAME" /> не сможет обновляться автоматически.</translation>
 <translation id="600424552813877586">Недействительное приложение.</translation>
 <translation id="6005695835120147974">Медиамаршрутизатор</translation>
 <translation id="6006484371116297560">Классическая</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Резервное копирование в облако</translation>
 <translation id="6040143037577758943">Закрыть</translation>
 <translation id="6040852767465482106">Анонимная идентификация</translation>
+<translation id="6041155700700864984">Обычный режим</translation>
 <translation id="604124094241169006">Автоматически</translation>
 <translation id="6042169520002885235">Выберите производителя и модель принтера</translation>
 <translation id="6042308850641462728">Подробнее...</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Обычная перезагрузка</translation>
 <translation id="6059652578941944813">Иерархия сертификатов</translation>
 <translation id="6059925163896151826">USB-устройства</translation>
-<translation id="6060435378291459521">Сбой в плагине "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="6064217302520318294">Блокировка экрана</translation>
 <translation id="6065289257230303064">Атрибуты каталога субъекта сертификата</translation>
 <translation id="6068338049763724728">Разрешить удаленную регистрацию</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Позволяет настроить разрешение экрана</translation>
 <translation id="6238923052227198598">Показывать последнюю заметку на заблокированном экране</translation>
 <translation id="6239558157302047471">Перезагрузить &amp;фрейм</translation>
-<translation id="624022915548992686">Закрыть страницу</translation>
 <translation id="6241530762627360640">Доступ к информации об устройствах Bluetooth, связанных с вашей системой, и обнаружение устройств Bluetooth рядом с вами.</translation>
 <translation id="6243774244933267674">Сервер недоступен</translation>
 <translation id="6246413617632217567">Не удалось импортировать контролируемый профиль. Убедитесь, что у вас есть необходимые разрешения и свободное место на жестком диске, а затем повторите попытку.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Неизвестная ошибка сети</translation>
 <translation id="6313641880021325787">ВЫЙТИ ИЗ VR</translation>
 <translation id="6314819609899340042">Функции отладки на устройстве <ph name="IDS_SHORT_PRODUCT_NAME" /> включены.</translation>
-<translation id="6315343732431721770">Стартовые страницы были изменены и теперь содержат URL <ph name="URL" />. Чтобы отключить расширения, изменившие эту настройку, нажмите "Восстановить".</translation>
 <translation id="6315493146179903667">Переместить все на передний план</translation>
 <translation id="6316806695097060329">При разработке устройства <ph name="SHORT_PRODUCT_NAME" /> особое внимание мы уделили потребностям интернет-пользователей.</translation>
 <translation id="6317318380444133405">Принтер больше не поддерживается.</translation>
 <translation id="6317369057005134371">Запуск приложения…</translation>
 <translation id="6318407754858604988">Скачивание началось</translation>
-<translation id="6322279351188361895">Не удалось прочитать закрытый ключ.</translation>
 <translation id="6325191661371220117">Отключить автозапуск</translation>
 <translation id="6326175484149238433">Удалить</translation>
 <translation id="6326855256003666642">Количество соединений keepalive</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Выбрать объекты для синхронизации</translation>
 <translation id="6333064448949140209">Файл будет отправлен в Google для отладки</translation>
 <translation id="6333834492048057036">Ввод поискового запроса в адресной строке</translation>
-<translation id="6336907568130557310">Просмотреть ваши пароли сможет любой, кому доступен экспортированный файл. Не показывайте этот файл никому и удалите его после импорта.</translation>
 <translation id="6339668969738228384">Создать профиль для <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Не удалось подключиться к серверу. Проверьте подключение к сети и повторите попытку. Если проблема не исчезнет, перезагрузите устройство Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Сайты могут сохранять и считывать файлы cookie</translation>
 <translation id="6388771388956873507">Приложите палец к сканеру отпечатков пальцев на устройстве</translation>
 <translation id="6390799748543157332">Страницы, открытые в гостевом режиме, не сохранятся в истории браузера и не оставят на компьютере следов, таких как файлы cookie. После того как вы их закроете, будут сохранены только скачанные вами файлы.</translation>
-<translation id="6391538222494443604">Каталог входа должен существовать.</translation>
 <translation id="6395423953133416962">Отправлять <ph name="BEGIN_LINK1" />сведения о системе<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />значения показателей<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Прекратить голосовой ввод</translation>
 <translation id="6397592254427394018">Открыть все закладки в режиме &amp;инкогнито</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Настройки блокирования JavaScript…</translation>
 <translation id="6459488832681039634">Найти выделенное</translation>
 <translation id="6460601847208524483">Найти след.</translation>
-<translation id="6462080265650314920">Приложения должны иметь тип контента "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Вы еще здесь?</translation>
 <translation id="6463795194797719782">&amp;Изменить</translation>
 <translation id="6466988389784393586">&amp;Открыть все закладки</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Вы хотите, чтобы Google сделал перевод страницы: <ph name="SOURCE_LANGUAGE" /> &gt;&gt; <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Подключено дополнительное устройство</translation>
-<translation id="6677037229676347494">Ожидаемый идентификатор: "<ph name="EXPECTED_ID" />", полученный идентификатор: "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL запроса</translation>
 <translation id="6680028776254050810">Смена пользователя</translation>
 <translation id="6680442031740878064">Доступно: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Вы можете выбрать, какие данные передавать Google, в <ph name="BEGIN_LINK" />настройках<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Запретить доступ к файлам</translation>
 <translation id="6904655473976120856">Чтобы выйти из полноэкранного режима, нажмите на значок приложения</translation>
-<translation id="6904713658985136356">Сайт <ph name="HOST" /> запрашивает доступ к вашему экрану</translation>
-<translation id="6909461304779452601">Невозможно добавить приложение, расширение или пользовательский скрипт с этого сайта.</translation>
 <translation id="6910211073230771657">Удалено</translation>
 <translation id="691024665142758461">скачивание нескольких файлов</translation>
 <translation id="6911324888870229398">Соединение прервано. Проверьте подключение или используйте другую сеть Wi-Fi.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Ошибка: не удается расшифровать расширение</translation>
 <translation id="7473891865547856676">Пропустить</translation>
 <translation id="747459581954555080">Восстановить все</translation>
-<translation id="7475034671245341386">Ошибка в плагине "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="7475671414023905704">URL потерянных паролей Netscape</translation>
 <translation id="7476454130948140105">Слишком низкий заряд батареи (<ph name="BATTERY_PERCENT" />%). Обновление невозможно.</translation>
 <translation id="7477347901712410606">Если вы забыли кодовую фразу, остановите синхронизацию и сбросьте ее настройки с помощью <ph name="BEGIN_LINK" />Личного кабинета Google<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Сертификат ответчика о состоянии</translation>
 <translation id="7508545000531937079">Слайд-шоу</translation>
 <translation id="7513029293694390567">Автоматически входить на сайты с помощью сохраненного имени пользователя и пароля. Когда функция отключена, эти данные нужно вводить при каждом входе.</translation>
-<translation id="7515670329462166359">Для воспроизведения защищенного контента <ph name="URL" /> запрашивает уникальный код устройства.</translation>
 <translation id="7517569744831774757">Восстановление настроек по умолчанию</translation>
 <translation id="7517786267097410259">Придумайте пароль –</translation>
 <translation id="7518150891539970662">Журналы WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     контролируемый профиль.</translation>
 <translation id="756445078718366910">Открыть окно браузера</translation>
 <translation id="7564847347806291057">Завершить процесс</translation>
-<translation id="7565291891798266313">Поисковая система изменена на <ph name="URL" />. Чтобы отключить расширения, изменившие эту настройку, нажмите "Восстановить".</translation>
 <translation id="7566118625369982896">Управление ссылками на приложение в Google Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Данные Chrome удалены</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Заряд батареи</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Разобрать по копиям</translation>
-<translation id="7577815336900970562">Использовать Wi‑Fi и мобильные сети для определения местоположения</translation>
 <translation id="7579149537961810247">Отключить звук на сайтах</translation>
 <translation id="7580671184200851182">Воспроизводить одно и то же аудио через все динамики (моноаудио)</translation>
 <translation id="7581462281756524039">Инструмент очистки</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Хранение сеансов</translation>
 <translation id="7781335840981796660">Все пользовательские аккаунты и локальные данные будут удалены.</translation>
 <translation id="7782102568078991263">Подсказок от Google больше нет</translation>
+<translation id="778330624322499012">Не удалось загрузить <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Этот файл заблокирован согласно настройкам безопасности компьютера.</translation>
 <translation id="7786207843293321886">Выйти из гостевого режима</translation>
 <translation id="7786889348652477777">Пере&amp;загрузить приложение</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Злоумышленники могли похитить ваш пароль</translation>
 <translation id="8004582292198964060">Браузер</translation>
 <translation id="8008356846765065031">Не удалось установить соединение. Проверьте подключение к Интернету.</translation>
-<translation id="8008765610824028412">Не удалось загрузить плагин "<ph name="PLUGIN_NAME" />"</translation>
 <translation id="8008818777654712271">Автоматически отправлять системную информацию и содержимое страниц в Google, чтобы помочь улучшить распознавание опасных приложений и сайтов</translation>
 <translation id="8012382203418782830">Страница переведена</translation>
 <translation id="8014154204619229810">Работает программа обновлений. Повторите попытку через пару минут.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Управление приложениями, расширениями и темами</translation>
 <translation id="8191453843330043793">Прокси-сервер V8</translation>
 <translation id="8195027750202970175">Объем на диске</translation>
-<translation id="8195739004487400241">Стартовая страница изменена на <ph name="URL" />. Чтобы отключить расширения, изменившие эту настройку, нажмите "Восстановить".</translation>
 <translation id="8199300056570174101">Настройки сети и устройства</translation>
 <translation id="8200772114523450471">Возобновить</translation>
 <translation id="8202160505685531999">Чтобы обновить профиль устройства <ph name="DEVICE_TYPE" />, введите пароль ещё раз</translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080"><ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не содержит сведений об этом расширении, то есть оно могло быть установлено без вашего ведома.</translation>
 <translation id="8261387128019234107">Добавить аккаунт в профиль <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Удалить</translation>
-<translation id="826246685091802258">Флаг командной строки <ph name="BAD_FLAG" /> недоступен в этой сборке.</translation>
 <translation id="8263744495942430914">Сайт <ph name="FULLSCREEN_ORIGIN" /> скрыл курсор.</translation>
 <translation id="8264718194193514834">Расширение "<ph name="EXTENSION_NAME" />" запущено в режиме киоска.</translation>
 <translation id="8270242299912238708">PDF-файлы</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Выберите другую сеть:</translation>
 <translation id="845627346958584683">Время окончания срока действия</translation>
 <translation id="8456681095658380701">Недопустимое название</translation>
+<translation id="8457451314607652708">Импортировать закладки</translation>
 <translation id="8460336040822756677">Если вы отключите Smart Lock для устройства <ph name="DEVICE_TYPE" />, то не сможете разблокировать устройства Chrome с помощью телефона и вам потребуется вводить пароль.</translation>
 <translation id="8461329675984532579">Название провайдера</translation>
 <translation id="84613761564611563">Отправлен запрос на получение интерфейса конфигурации сети. Подождите…</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Вредоносных программ не найдено.</translation>
 <translation id="8512476990829870887">Завершить процесс</translation>
 <translation id="851263357009351303">Всегда показывать изображения с сайта <ph name="HOST" /></translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> отлаживает этот браузер.</translation>
 <translation id="8521475323816527629">Быстрый переход к приложениям</translation>
 <translation id="8523493869875972733">Закрыть</translation>
 <translation id="8523849605371521713">Добавлено по правилу</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Настройка сетевых подключений</translation>
 <translation id="8620790565535071193">Сбой сканирования</translation>
 <translation id="8622877356447980900">Перевести эту страницу?</translation>
-<translation id="8623004009673949077">Приложения, у которых в манифесте есть атрибут kiosk_only, можно устанавливать только в режиме информационного киоска Chrome OS</translation>
 <translation id="8624205858755890468">Разрешить Ассистенту показывать похожую информацию, приложения и действия.</translation>
 <translation id="862542460444371744">Расширения</translation>
 <translation id="8627151598708688654">Выбор источника</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Для дополнительной защиты обновите встроенное ПО.</translation>
 <translation id="8823514049557262177">Скопировать &amp;текст ссылки</translation>
 <translation id="8824701697284169214">Добавить &amp;страницу</translation>
-<translation id="8827850355924932817">Использовать Wi-Fi для определения местоположения</translation>
 <translation id="8828933418460119530">DNS-имя</translation>
 <translation id="8830796635868321089">Не удалось выполнить проверку обновлений. Проверьте <ph name="PROXY_SETTINGS_LINK_START" />настройки прокси-сервера<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Конфигурацию сети контролирует пользователь <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">Показать как вкладку</translation>
 <translation id="8884961208881553398">Добавить сервисы</translation>
 <translation id="8885197664446363138">Функция Smart Lock недоступна</translation>
-<translation id="8885905466771744233">Закрытый ключ для указанного расширения уже существует. Удалите этот ключ или используйте его повторно.</translation>
 <translation id="8888432776533519951">Цвет:</translation>
-<translation id="8892992092192084762">Установлена тема "<ph name="THEME_NAME" />"</translation>
 <translation id="8893928184421379330">Не удалось распознать устройство <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Список закладок</translation>
 <translation id="88986195241502842">На страницу вниз</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Внимание! На компьютере установлен флаг --scripts-require-action, ограничивающий возможности данного расширения. При этом на других устройствах (где он, возможно, установлен либо не поддерживается) расширение может:</translation>
 <translation id="8910146161325739742">Откройте доступ к экрану</translation>
 <translation id="8910222113987937043">Изменения, связанные с закладками, историей, паролями и настройками, больше не будут синхронизироваться с вашим аккаунтом Google. Тем не менее, данные в аккаунте Google сохранятся. Вы можете просмотреть и изменить их в <ph name="BEGIN_LINK" />Личном кабинете Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google заблокировал установку потенциально опасной программы (<ph name="EXTENSION_NAME" />).</translation>
 <translation id="8912793549644936705">Растянуть</translation>
 <translation id="8915370057835397490">Загрузка подсказки</translation>
 <translation id="8916476537757519021">Субфрейм в режиме инкогнито: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-мышь подключена</translation>
 <translation id="9076523132036239772">Не удалось проверить адрес электронной почты или пароль. Подключитесь к сети.</translation>
-<translation id="907841381057066561">Не удалось создать временный zip-файл во время упаковки.</translation>
 <translation id="9084064520949870008">Открыть в отдельном окне</translation>
 <translation id="9088234649737575428">Плагин "<ph name="PLUGIN_NAME" />" заблокирован в соответствии с корпоративной политикой</translation>
 <translation id="9088917181875854783">Подтвердите ключ доступа, отображенный на экране "<ph name="DEVICE_NAME" />":</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Введите кодовую фразу</translation>
 <translation id="939736085109172342">Новая папка</translation>
-<translation id="941543339607623937">Недопустимый открытый ключ.</translation>
 <translation id="942532530371314860">Приложение "<ph name="APP_NAME" />" предоставило доступ к вкладке Chrome и к аудио.</translation>
 <translation id="942954117721265519">В этом каталоге нет изображений.</translation>
 <translation id="945522503751344254">Отправить отзыв</translation>
-<translation id="951981865514037445"><ph name="URL" /> запрашивает данные о местоположении вашего устройства.</translation>
 <translation id="952992212772159698">Не активировано</translation>
 <translation id="9580706199804957">Не удалось подключиться к сервисам Google</translation>
 <translation id="958515377357646513">Нажмите, чтобы перейти вперед</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 78b1ca61..ce058c4 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Len zašifrovanie</translation>
 <translation id="1039337018183941703">Neplatný alebo poškodený súbor</translation>
 <translation id="1042174272890264476">Váš počítač má tiež vstavanú knižnicu RLZ prehliadača <ph name="SHORT_PRODUCT_NAME" />. Knižnica RLZ priradí nejedinečnú značku, pomocou ktorej sa nedá zistiť totožnosť, na meranie výsledkov a použitia prehliadača <ph name="SHORT_PRODUCT_NAME" /> vyplývajúceho z konkrétnej propagačnej kampane. Tieto menovky sa niekedy zobrazujú v dopytoch Vyhľadávania Google v prehliadači <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Stránky <ph name="URL" /> chcú natrvalo ukladať veľké množstvo údajov vo vašom zariadení.</translation>
 <translation id="1046059554679513793">Hops, toto meno sa už používa.</translation>
 <translation id="1047431265488717055">Kopírovať te&amp;xt odkazu</translation>
 <translation id="1047726139967079566">Pridať stránku medzi záložky…</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Obnoviť predvolený vyhľadávač?</translation>
 <translation id="1177863135347784049">Vlastné</translation>
 <translation id="1178581264944972037">Pozastaviť</translation>
-<translation id="1179803038870941185">Stránka <ph name="URL" /> chce získať úplnú kontrolu nad vašimi zariadeniami MIDI.</translation>
 <translation id="1181037720776840403">Odstrániť</translation>
 <translation id="1183237619868651138">Súbor <ph name="EXTERNAL_CRX_FILE" /> nie je možné nainštalovať v miestnej vyrovnávacej pamäti</translation>
 <translation id="1185924365081634987">Ak chcete túto chybu siete odstrániť, môžete tiež skúsiť <ph name="GUEST_SIGNIN_LINK_START" />prehliadanie v režime hosťa<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Pristupujte k súboru uloženému vo vašom počítači}few{Pristupujte k # súborom uloženým vo vašom počítači}many{Pristupujte k # súboru uloženému vo vašom počítači}other{Pristupujte k # súborom uloženým vo vašom počítači}}</translation>
 <translation id="1195076408729068893">Ak chcete spustiť Smart Lock, zadajte heslo. Nabudúce budete môcť svoje zariadenie <ph name="DEVICE_TYPE" /> odomknúť telefónom.</translation>
 <translation id="1195447618553298278">Neznáma chyba.</translation>
-<translation id="1196338895211115272">Exportovanie súkromného kľúča zlyhalo.</translation>
 <translation id="119738088725604856">Okno snímky obrazovky</translation>
 <translation id="1197979282329025000">Pri načítavaní funkcií tlačiarne <ph name="PRINTER_NAME" /> sa vyskytla chyba. Táto tlačiareň nemôže byť zaregistrovaná do služby <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Začnime</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Váš správca odporúča pre toto nastavenie konkrétnu hodnotu.</translation>
 <translation id="1225177025209879837">Prebieha spracovanie žiadosti...</translation>
 <translation id="1225211345201532184">5. položka na poličke</translation>
-<translation id="1225404570112441414">Ak chcete tieto stránky kedykoľvek používať, pridajte si ich na poličku.</translation>
 <translation id="1227507814927581609">Overenie totožnosti počas pripájania k zariadeniu <ph name="DEVICE_NAME" /> zlyhalo.</translation>
 <translation id="1230807973377071856">ponuka systému</translation>
 <translation id="1232569758102978740">Bez názvu</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Súbor HTML so záložkami</translation>
 <translation id="1303671224831497365">Nenašli sa žiadne zariadenia Bluetooth</translation>
 <translation id="1306606229401759371">Zmeniť nastavenia</translation>
-<translation id="1307398858972670978">K heslám môžete pristupovať z ľubovoľného zariadenia na adrese <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ojoj! Systému sa nepodarilo uložiť dlhodobý prístupový token rozhrania API pre toto zariadenie.</translation>
 <translation id="1313405956111467313">Automatická konfigurácia servera proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Vyhľadávanie</translation>
 <translation id="1386387014181100145">Dobrý deň!</translation>
 <translation id="138784436342154190">Obnoviť predvolenú stránku pri spustení?</translation>
-<translation id="1389297115360905376">Dá sa pridať iba zo služby <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Otvoriť ako bežnú kartu</translation>
-<translation id="1391807639023934267">Stránka sa načítala rýchlejšie.</translation>
 <translation id="1393283411312835250">Slnko a mraky</translation>
 <translation id="1395262318152388157">Posúvač hľadania</translation>
 <translation id="1395730723686586365">Služba Updater bola spustená</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Chystáte sa vykonať aktualizáciu na nestabilnú verziu prehliadača <ph name="PRODUCT_NAME" />, ktorá obsahuje funkcie vo vývoji. Bude dochádzať ku zlyhaniam a neočakávaným chybám. Postupujte opatrne.</translation>
 <translation id="1415990189994829608">Rozšírenie <ph name="EXTENSION_NAME" /> (ID rozšírenia <ph name="EXTENSION_ID" />) nie je v tomto type relácie povolené.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Generovanie náhodného súkromného kľúča RSA žiaľ zlyhalo.</translation>
 <translation id="1420834118113404499">Licencie médií</translation>
 <translation id="1420920093772172268">Ak chcete povoliť párovanie, <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">Áno</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opírovať adresu zvuku</translation>
 <translation id="1465827627707997754">Kúsok pizzy</translation>
 <translation id="1467432559032391204">Doľava</translation>
-<translation id="1467999917853307373">Stránky <ph name="URL" /> chcú natrvalo ukladať údaje do vášho zariadenia.</translation>
-<translation id="1470719357688513792">Nové nastavenia súborov cookie sa použijú po obnovení stránky.</translation>
 <translation id="1470811252759861213">Ak chcete získať záložky na všetkých počítačoch, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Súbor <ph name="FILENAME" /> nebol nahraný. Na Disku Google nemáte dostatok voľného miesta.</translation>
 <translation id="1475502736924165259">V súbore máte certifikáty, ktoré sa nedajú zaradiť do žiadnej z iných kategórií:</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Veľký kurzor myši</translation>
 <translation id="1543284117603151572">Importované z prehliadača Edge</translation>
 <translation id="1545177026077493356">Automatický režim verejného terminálu</translation>
+<translation id="1545775234664667895">Nainštalovaný motív „<ph name="THEME_NAME" />“</translation>
 <translation id="1545786162090505744">URL s %s miesto dopytu</translation>
 <translation id="1546280085599573572">Toto rozšírenie zmenilo stránku, ktorá sa zobrazí po kliknutí na tlačidlo Domovská stránka.</translation>
 <translation id="1547572086206517271">Vyžaduje sa obnovenie</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />kontrolovať<ph name="END_BOLD" /> webové stránky, ktoré kontrolovaný používateľ navštívil, a
     <ph name="BEGIN_BOLD" />spravovať<ph name="END_BOLD" /> ďalšie nastavenia.</translation>
 <translation id="1648943974594387137">Prihlasovacie údaje nie sú aktuálne</translation>
-<translation id="1649641629389702691">&lt;Nezobrazuje sa nesledujúci počet riadkov: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Zobraziť možnosti vstupu</translation>
 <translation id="1650709179466243265">Pridajte predponu www. a príponu .com a otvorte adresu</translation>
 <translation id="1651008383952180276">Rovnakú prístupovú frázu musíte zadať dvakrát</translation>
-<translation id="1652972346408808053">Heslo bolo uložené. K heslám môžete pristupovať z ľubovoľného zariadenia na adrese <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Pridajte si tlačiareň do služby Google Cloud Print, aby ste mohli tlačiť odkiaľkoľvek.}few{Pridajte si # tlačiarne do služby Google Cloud Print, aby ste mohli tlačiť odkiaľkoľvek.}many{Pridajte si # tlačiarne do služby Google Cloud Print, aby ste mohli tlačiť odkiaľkoľvek.}other{Pridajte si # tlačiarní do služby Google Cloud Print, aby ste mohli tlačiť odkiaľkoľvek.}}</translation>
 <translation id="1657406563541664238">Pomôžte zlepšiť aplikáciu <ph name="PRODUCT_NAME" /> aktivovaním automatického odosielania štatistických údajov o používaní prehliadača a správ o chybách spoločnosti Google.</translation>
 <translation id="1658424621194652532">Táto stránka má prístup k vášmu mikrofónu.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Pokračovať v blokovaní súborov cookie</translation>
 <translation id="204622017488417136">Na vašom zariadení sa obnoví predchádzajúca nainštalovaná verzia prehliadača Chrome. Všetky používateľské účty a miestne údaje budú odstránené. Túto akciu nie je možné vrátiť späť.</translation>
 <translation id="2048182445208425546">Prístup k sieťovej premávke</translation>
-<translation id="2049137146490122801">Prístup k miestnym súborom vo vašom počítači zakázal správca.</translation>
 <translation id="204914487372604757">Vytvoriť odkaz</translation>
 <translation id="2050339315714019657">Na výšku</translation>
 <translation id="2053312383184521053">Údaje stavu nečinnosti</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ešte nenačítané</translation>
 <translation id="2107494551712864447">Pridanie odtlačku prsta</translation>
-<translation id="2111843886872897694">Aplikácie musia byť poskytované od hostiteľa, ktorého ovplyvňujú.</translation>
 <translation id="2112877397266219826">Zariadenie nastavíte zapnutím nástroja na ovládanie 
 dotyku</translation>
 <translation id="21133533946938348">Pripnúť kartu</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Povedzte nám, čo sa deje</translation>
 <translation id="2229161054156947610">Zostáva viac ako 1 hodina</translation>
 <translation id="222931766245975952">Súbor bol upravený</translation>
-<translation id="222949136907494149">Stránky <ph name="URL" /> chcú použiť polohu vášho počítača.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Priečinok <ph name="FOLDER_NAME" /> sa nepodarilo vytvoriť. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kliknutím zobrazíte dnešný doodle</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Vždy blokovať prístup k mikrofónu</translation>
 <translation id="2367972762794486313">Zobraziť aplikácie</translation>
 <translation id="2371076942591664043">Po stiahnutí otvoriť</translation>
-<translation id="237336063998926520">Na zistenie polohy použiť adresu IP</translation>
 <translation id="2377319039870049694">Prepnúť na zobrazenie zoznamu</translation>
 <translation id="2377667304966270281">Závažné chyby</translation>
 <translation id="2378075407703503998">Počet vybratých súborov: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239">Aplikácia <ph name="APP_NAME" /> chce kopírovať súbory z média <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID kľúča certifikačnej autority</translation>
 <translation id="2462752602710430187">Bolo pridané zariadenie: <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Importovať záložky</translation>
 <translation id="2464089476039395325">HTTP proxy</translation>
 <translation id="2468902267404883140">K telefónu sa nedarí pripojiť. Skontrolujte, či používate kompatibilný telefón s Androidom, ktorý je zapnutý a v dosahu. &lt;a&gt;Ďalšie informácie&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Nepodporovaný typ rozšírenia bol zakázaný</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Odinštalovať</translation>
 <translation id="2487067538648443797">Pridať novú záložku</translation>
 <translation id="248861575772995840">Telefón sa nedarí nájsť. Skontrolujte, či je v zariadení <ph name="DEVICE_TYPE" /> zapnuté rozhranie Bluetooth. &lt;a&gt;Ďalšie informácie&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Doplnok (<ph name="PLUGIN_NAME" />) neodpovedá</translation>
 <translation id="2489428929217601177">posledný deň</translation>
 <translation id="2489918096470125693">Pridať &amp;priečinok...</translation>
 <translation id="249113932447298600">Je nám ľúto, ale zariadenie <ph name="DEVICE_LABEL" /> nie je momentálne podporované.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Gratulujeme! Dátová služba <ph name="NAME" /> sa aktivovala a je pripravená na použitie.</translation>
 <translation id="2566124945717127842">Funkcia PowerWash obnoví zariadenie <ph name="IDS_SHORT_PRODUCT_NAME" /> tak, aby bolo ako nové.</translation>
 <translation id="2568774940984945469">Kontajner informačného panela</translation>
-<translation id="2570000010887652771">Uložené dáta.</translation>
 <translation id="257088987046510401">Motívy</translation>
 <translation id="2572032849266859634">Bol udelený prístup k médiu <ph name="VOLUME_NAME" /> s povolením iba na čítanie.</translation>
 <translation id="2573269395582837871">Vyberte obrázok a meno</translation>
 <translation id="2575247648642144396">Ikona sa zobrazí, keď sa na aktuálnej stránke bude dať použiť rozšírenie. Rozšírenie použijete kliknutím na ikonu alebo stlačením klávesov <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Telefón sa nedarí nájsť. Skontrolujte, či je zariadenie <ph name="DEVICE_TYPE" /> pripojené k Wi‑Fi alebo mobilnej sieti. &lt;a&gt;Ďalšie informácie&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Súbor CRX s týmto názvom už existuje.</translation>
 <translation id="257779572837908839">Nastaviť ako Chromebox pre videokonferencie</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Zväzok sa nedá odpojiť<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Ak odstránite certifikát Certifikačnej autority (CA), váš prehliadač prestane dôverovať akýmkoľvek certifikátom vydaným príslušnou certifikačnou autoritou.</translation>
 <translation id="2653659639078652383">Odoslať</translation>
 <translation id="265390580714150011">Hodnota poľa</translation>
-<translation id="2654286334048437383">Exportovať záložky</translation>
 <translation id="2655386581175833247">Certifikát používateľa:</translation>
 <translation id="2660779039299703961">Udalosť</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Pridať galériu médií podľa adresára</translation>
 <translation id="2908789530129661844">Oddialiť obrazovku</translation>
 <translation id="2910318910161511225">Pripojte sa k sieti a skúste to znova</translation>
-<translation id="2912905526406334195">Stránka <ph name="HOST" /> chce použiť váš mikrofón.</translation>
 <translation id="2913331724188855103">Povoliť stránkam ukladať a čítať údaje súborov cookie (odporučané)</translation>
 <translation id="2916073183900451334">Zvýrazňovať odkazy a polia formulárov na webovej stránke po stlačení klávesu Tab</translation>
 <translation id="2916745397441987255">Hľadať rozšírenia</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Počúvam...</translation>
 <translation id="3141917231319778873">Zadaná žiadosť nie je na zariadení <ph name="DEVICE_NAME" /> podporovaná.</translation>
 <translation id="3144126448740580210">OK</translation>
-<translation id="3144135466825225871">Súbor crx sa nepodarilo nahradiť. Skontrolujte, či je súbor používaný.</translation>
 <translation id="3144647712221361880">Otvoriť odkaz ako</translation>
 <translation id="3149510190863420837">Aplikácie Chrome</translation>
 <translation id="3150927491400159470">Vynútiť opätovné načítanie</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Vždy spustiť na všetkých stránkach</translation>
 <translation id="3312424061798279731">Povolené jazyky</translation>
 <translation id="3312903956926554846">Inštalovať na plochu</translation>
-<translation id="3313473140726597081">Vaša stránka pri spustení bola zmenená na <ph name="URL" />. Ak chcete zakázať rozšírenia, ktoré menia stránku pri spustení, kliknite na možnosť Obnoviť.</translation>
 <translation id="3313590242757056087">Ak chcete nastaviť, ktoré stránky môže kontrolovaný používateľ zobraziť, môžete na stránke <ph name="MANAGEMENT_URL" /> nakonfigurovať
     obmedzenia a nastavenia.
     Ak nezmeníte predvolené nastavenia, používateľ <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Informácie o aplikácii</translation>
 <translation id="3335947283844343239">Znova otvoriť zatvorenú kartu</translation>
-<translation id="3337069537196930048">Doplnok <ph name="PLUGIN_NAME" /> bol zablokovaný, pretože je zastaraný.</translation>
 <translation id="3340978935015468852">nastavenia</translation>
 <translation id="3341703758641437857">Povoliť prístup k webovým adresám súboru</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />“ chce toto rozšírenie odstrániť.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Záložka bola pridaná</translation>
 <translation id="3389312115541230716">Kliknite pravým tlačidlom myši na ikonu <ph name="SMALL_PRODUCT_LOGO" /> na paneli úloh</translation>
 <translation id="3391716558283801616">Karta 7</translation>
-<translation id="3394150261239285340">Stránka <ph name="HOST" /> chce použiť váš fotoaparát a mikrofón.</translation>
 <translation id="3396331542604645348">Vybratá tlačiareň nie je k dispozícii alebo nie je správne nainštalovaná. Skontrolujte ju alebo vyberte inú.</translation>
 <translation id="3399432415385675819">Upozornenia budú zakázané</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Prehliadač Chrome sa automaticky aktualizuje, takže budete mať vždy tú najnovšiu verziu</translation>
 <translation id="3551320343578183772">Zatvoriť kartu</translation>
 <translation id="3552780134252864554">Vymazané pri ukončení</translation>
-<translation id="355298399003313926"><ph name="URL" /> chce reagovať na udalosti dostupnosti.</translation>
 <translation id="3555812735919707620">Odstrániť rozšírenie</translation>
 <translation id="3556000484321257665">Váš vyhľadávač bol zmenený na <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Vstupná hodnota pre súkromný kľúč musí byť platná cesta.</translation>
 <translation id="3563432852173030730">Aplikáciu Kiosk sa nepodarilo stiahnuť</translation>
 <translation id="3564334271939054422">Sieť Wi‑Fi, ktorú používate (<ph name="NETWORK_ID" />), môže vyžadovať, aby ste navštívili jej prihlasovaciu stránku.</translation>
 <translation id="3564708465992574908">Úrovne priblíženia</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Obmedzenia názvu certifikátu</translation>
 <translation id="3596235046596950091">Povoliť cloudové služby</translation>
 <translation id="3599863153486145794">Vymaže históriu zo všetkých prihlásených zariadení. Váš účet Google môže mať ďalšie formy histórie prehliadania na adrese <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Prístup k miestnym súborom vo vašom zariadení zakázal správca.</translation>
 <translation id="3600792891314830896">Vypnutie zvuku webov, ktoré prehrávajú zvuk</translation>
 <translation id="3603177256297531067">Túto stránku sa nepodarilo preložiť</translation>
 <translation id="3603533104205588786">Stránku uložíte ako záložku kliknutím na hviezdičku</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Snímky obrazovky sú zakázané</translation>
 <translation id="3625870480639975468">Obnoviť nastavenie priblíženia</translation>
 <translation id="3626281679859535460">Jas</translation>
-<translation id="3627052133907344175">Rozšírenie vyžaduje rozšírenie <ph name="IMPORT_NAME" /> minimálne vo verzii <ph name="IMPORT_VERSION" />, ale nainštalovaná je iba verzia <ph name="INSTALLED_VERSION" />.</translation>
 <translation id="3627320433825461852">Zostáva menej ako 1 minúta</translation>
 <translation id="3627588569887975815">Otvoriť odkaz v okne inko&amp;gnito</translation>
 <translation id="3627671146180677314">Netscape – čas pre obnovenie certifikátu</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Nastavenia jazyka</translation>
 <translation id="3668823961463113931">Obslužné nástroje</translation>
 <translation id="3670229581627177274">Zapnúť Bluetooth</translation>
-<translation id="3672159315667503033">Stránky <ph name="URL" /> chcú natrvalo ukladať údaje vo vašom počítači.</translation>
 <translation id="3672681487849735243">Zistila sa chyba z výroby</translation>
 <translation id="367645871420407123">Ak chcete heslo používateľa typu root nastaviť na predvolenú hodnotu testovacieho obrazu, ponechajte toto pole prázdne.</translation>
 <translation id="3678156199662914018">Rozšírenie: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Ste offline</translation>
 <translation id="3788401245189148511">Mohli by:</translation>
 <translation id="3789841737615482174">Inštalovať</translation>
-<translation id="3790146417033334899">Doplnok <ph name="PLUGIN_NAME" /> funguje iba v režime plochy.</translation>
 <translation id="379082410132524484">Platnosť vašej karty vypršala</translation>
 <translation id="3792890930871100565">Odpojiť tlačiarne</translation>
 <translation id="379422718204375917">Prihlásiť sa do účtu pomocou funkcie Smart Lock</translation>
-<translation id="3794595850995182458">Ukončiť stránku</translation>
 <translation id="3796648294839530037">Obľúbené siete:</translation>
 <translation id="3797900183766075808">Pomocou &amp;služby <ph name="SEARCH_ENGINE" /> vyhľadať text „<ph name="SEARCH_TERMS" />“</translation>
 <translation id="3798325802885154040">Umožňuje povoliť/zakázať kliknutie klepnutím</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Povoliť <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Zadali ste neplatný typ uloženia.</translation>
 <translation id="3983586614702900908">zariadenia od neznámeho dodávateľa</translation>
-<translation id="3984413272403535372">Pri podpisovaní rozšírenia sa vyskytla chyba.</translation>
 <translation id="3987938432087324095">Je nám to ľúto, ale nebolo vám dobre rozumieť.</translation>
 <translation id="3988996860813292272">Výber časového pásma</translation>
 <translation id="3989635538409502728">Odhlásiť sa</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Nainštalujte si aplikácie a hry zo služby Google Play na Chromebooku. &lt;a target="_blank" href="<ph name="URL" />"&gt;Ďalšie informácie&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Prijať pozvanie pre skupinu</translation>
 <translation id="4090103403438682346">Povolí overený prístup</translation>
-<translation id="4090404313667273475">Na zobrazenie niektorých prvkov na tejto stránke je potrebný doplnok <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Toto rozšírenie je spravované a nedá sa odstrániť.)</translation>
 <translation id="4091434297613116013">listy/listov papiera</translation>
 <translation id="4093955363990068916">Miestny súbor:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912">Prehliadač <ph name="PRODUCT_NAME" /> teraz môže synchronizovať vaše heslá.</translation>
 <translation id="4715553623069266137">veľmi krátke (0,8 s)</translation>
 <translation id="4716483597559580346">Vymazanie Powerwash v rámci zvýšenia zabezpečenia</translation>
-<translation id="471800408830181311">Výstup súkromného kľúča zlyhal.</translation>
 <translation id="4720113199587244118">Pridať zariadenia</translation>
 <translation id="4720185134442950733">Mobilná dátová sieť</translation>
 <translation id="4722920479021006856">Aplikácia <ph name="APP_NAME" /> zdieľa vašu obrazovku.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Silné</translation>
 <translation id="4918021164741308375">Web <ph name="ORIGIN" /> chce komunikovať s rozšírením <ph name="EXTENSION_NAME" /></translation>
 <translation id="4918086044614829423">Prijať</translation>
-<translation id="4919810557098212913">Stránka <ph name="HOST" /> chce použiť váš fotoaparát.</translation>
 <translation id="4920887663447894854">Tieto webové stránky majú zablokované sledovanie vašej polohy na tejto stránke:</translation>
 <translation id="492299503953721473">Odstrániť aplikácie pre Android</translation>
 <translation id="4923279099980110923">Áno, chcem pomôcť</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Toto rozšírenie obsahuje malvér.</translation>
 <translation id="498294082491145744">Meniť nastavenia, ktoré ovládajú prístup webových stránok k funkciám, ako sú súbory cookie, JavaScript, doplnky, geolokácia, mikrofón, fotoaparát atď.</translation>
 <translation id="4988526792673242964">Stránky</translation>
-<translation id="4988792151665380515">Exportovanie verejného kľúča zlyhalo.</translation>
 <translation id="49896407730300355">Otočiť &amp;proti smeru hodinových ručičiek</translation>
 <translation id="4989966318180235467">Skontrolovať &amp;stránku na pozadí</translation>
 <translation id="4990343175649730969">Stiahnuť Chrome Cleanup Tool</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Viac nezobrazovať</translation>
 <translation id="5027550639139316293">E-mailový certifikát</translation>
 <translation id="5027562294707732951">Pridať rozšírenie</translation>
-<translation id="5028012205542821824">Inštalácia nie je povolená.</translation>
 <translation id="5029568752722684782">Vymazať kópiu</translation>
 <translation id="5030338702439866405">Vydavateľ</translation>
 <translation id="5036662165765606524">Nepovoliť žiadnym stránkam automaticky sťahovať viacero súborov súčasne</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Vyskytla sa chyba.</translation>
 <translation id="5094721898978802975">Komunikovať so spolupracujúcimi natívnymi aplikáciami</translation>
 <translation id="5097002363526479830">K sieti „<ph name="NAME" />“ sa nepodarilo pripojiť: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Absolútnu cestu k adresáru na zbalenie nie je možné nájsť.</translation>
 <translation id="5099354524039520280">hore</translation>
 <translation id="5100114659116077956">Ak chcete, aby vám zariadenie Chromebox poskytlo najnovšie funkcie, aktualizujte ho.</translation>
 <translation id="5101042277149003567">Otvoriť všetky záložky</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Zobraziť v priečinku</translation>
 <translation id="5171045022955879922">Vyhľadajte alebo zadajte webovú adresu</translation>
 <translation id="5171343362375269016">Swapovaná pamäť</translation>
-<translation id="5175870427301879686">Stránky <ph name="URL" /> chcú natrvalo ukladať údaje v miestnom počítači.</translation>
 <translation id="5177479852722101802">Aj naďalej blokovať prístup ku kamere a mikrofónu</translation>
 <translation id="5177526793333269655">Zobrazenie miniatúr</translation>
 <translation id="5177549709747445269">Využívate mobilné dáta</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Formátovať toto zariadenie</translation>
 <translation id="5293170712604732402">Obnovenie pôvodných predvolených nastavení</translation>
 <translation id="5298219193514155779">Autor motívu:</translation>
-<translation id="5298363578196989456">Rozšírenie <ph name="IMPORT_NAME" /> sa nepodarilo importovať, pretože nie je zdieľaným modulom.</translation>
 <translation id="5299109548848736476">Nesledovať</translation>
 <translation id="5299682071747318445">Všetky údaje sú šifrované pomocou vlastnej prístupovej frázy pre synchronizáciu</translation>
 <translation id="5300589172476337783">Zobraziť</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">Rozhranie <ph name="CHROME_EXTENSION_NAME" /> žiada o spárovanie</translation>
 <translation id="5332624210073556029">Časová zóna:</translation>
 <translation id="5334142896108694079">Vyrovnávacia pamäť skriptov</translation>
-<translation id="533433379391851622">Očakávaná verzia bola „<ph name="EXPECTED_VERSION" />“. Skutočná verzia bola „<ph name="NEW_ID" />“.</translation>
 <translation id="5334844597069022743">Zobraziť zdrojový kód</translation>
 <translation id="5335458522276292100">Zálohujú sa fotky (<ph name="FILE_COUNT" />) na <ph name="BEGIN_LINK" />Disk Google<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Nainštalované treťou stranou.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Povoliť webom prehrávať zvuk</translation>
 <translation id="5390284375844109566">Indexovaná databáza</translation>
 <translation id="5390743329570580756">Odoslať pre</translation>
-<translation id="5396126354477659676">Doplnok <ph name="PEPPER_PLUGIN_NAME" /> na stránkach <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získať prístup k vášmu počítaču.</translation>
 <translation id="5397794290049113714">Vy</translation>
 <translation id="5398572795982417028">Odkaz na stránku je mimo rozsahu, limit je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamy sú blokované</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Obnoviť všetky karty</translation>
 <translation id="5486261815000869482">Potvrďte heslo</translation>
 <translation id="5486275809415469523">Aplikácia <ph name="APP_NAME" /> zdieľa vašu obrazovku s kartou <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Vstupná hodnota pre súkromný kľúč musí existovať.</translation>
 <translation id="5486561344817861625">Simulovať reštartovanie prehliadača</translation>
 <translation id="5487521232677179737">Vymazať údaje</translation>
 <translation id="5488093641312826914">Položka <ph name="COPIED_ITEM_NAME" /> bola skopírovaná</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Aktualizácia bude stiahnutá použitím <ph name="UPDATE_SIZE_MB" /> MB mobilných dát. Chcete pokračovať?</translation>
 <translation id="5601503069213153581">Kód PIN</translation>
 <translation id="5605623530403479164">Iné vyhľadávače</translation>
-<translation id="5606674617204776232">Doplnok <ph name="PEPPER_PLUGIN_NAME" /> na stránkach <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získať prístup k vášmu zariadeniu.</translation>
 <translation id="5608580678041221894">Oblasť orezania môžete upraviť alebo presunúť klepnutím na nasledujúce klávesy</translation>
 <translation id="5609231933459083978">Aplikácia je pravdepodobne neplatná.</translation>
 <translation id="5610038042047936818">Prepnúť na režimu fotoaparátu</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Preložené</translation>
 <translation id="5991049340509704927">Zväčšenie</translation>
 <translation id="5993332328670040093">Vaše využitie údajov sa už nebude ďalej merať.</translation>
-<translation id="6003177993629630467">Prehliadač <ph name="PRODUCT_NAME" /> sa sám nemusí pravidelne aktualizovať.</translation>
 <translation id="600424552813877586">Neplatná aplikácia.</translation>
 <translation id="6005695835120147974">Smerovač médií</translation>
 <translation id="6006484371116297560">Klasický</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Záloha v cloude</translation>
 <translation id="6040143037577758943">Zavrieť</translation>
 <translation id="6040852767465482106">Anonymná identita</translation>
+<translation id="6041155700700864984">Ukončiť režim celej obrazovky</translation>
 <translation id="604124094241169006">Automatické</translation>
 <translation id="6042169520002885235">Výber výrobcu a modelu tlačiarne</translation>
 <translation id="6042308850641462728">Viac</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Opätovne načítať</translation>
 <translation id="6059652578941944813">Hierarchia certifikátu</translation>
 <translation id="6059925163896151826">Zariadenia USB</translation>
-<translation id="6060435378291459521">Doplnok <ph name="PLUGIN_NAME" /> zlyhal.</translation>
 <translation id="6064217302520318294">Zámka obrazovky</translation>
 <translation id="6065289257230303064">Atribúty adresára subjektu certifikátu</translation>
 <translation id="6068338049763724728">Aktivovať vzdialenú registráciu</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Umožňuje nastaviť rozlíšenie obrazovky</translation>
 <translation id="6238923052227198598">Zobrazovať poslednú poznámku na uzamknutej obrazovke</translation>
 <translation id="6239558157302047471">Znova načítať prvok &amp;frame</translation>
-<translation id="624022915548992686">Ukončiť stránku</translation>
 <translation id="6241530762627360640">Prístup k informáciám o zariadeniach Bluetooth spárovaných s vaším systémom a objavovanie zariadení Bluetooth v blízkosti.</translation>
 <translation id="6243774244933267674">Server je nedostupný</translation>
 <translation id="6246413617632217567">Kontrolovaný používateľ sa nedá importovať. Skontrolujte priestor na pevnom disku a povolenia a skúste to znova.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Neznáma chyba siete</translation>
 <translation id="6313641880021325787">UKONČIŤ VR</translation>
 <translation id="6314819609899340042">Na tomto zariadení <ph name="IDS_SHORT_PRODUCT_NAME" /> ste úspešne aktivovali funkcie ladenia.</translation>
-<translation id="6315343732431721770">Vaše stránky pri spustení boli zmenené tak, aby zahŕňali webovú adresu <ph name="URL" />. Ak chcete zakázať rozšírenia, ktoré menia stránku pri spustení, kliknite na možnosť Obnoviť.</translation>
 <translation id="6315493146179903667">Zobraziť všetko navrchu</translation>
 <translation id="6316806695097060329">Toto zariadenie <ph name="SHORT_PRODUCT_NAME" /> bolo navrhnuté tak, aby vám poskytlo tú najlepšiu skúsenosť pri prehliadaní webu.</translation>
 <translation id="6317318380444133405">Nepodporovaná</translation>
 <translation id="6317369057005134371">Čaká sa na okno aplikácie...</translation>
 <translation id="6318407754858604988">Sťahovanie sa začalo</translation>
-<translation id="6322279351188361895">Prečítanie súkromného kľúča zlyhalo.</translation>
 <translation id="6325191661371220117">Zakázať automatické spúšťanie</translation>
 <translation id="6326175484149238433">Odstrániť z Chromu</translation>
 <translation id="6326855256003666642">Počet akcií zabraňujúcich ukončeniu</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Vyberte, ktoré typy údajov sa majú synchronizovať</translation>
 <translation id="6333064448949140209">Súbor bude odoslaný Googlu na účely ladenia</translation>
 <translation id="6333834492048057036">Zamerať na panel s adresou za účelom vyhľadávania</translation>
-<translation id="6336907568130557310">Vaše heslá sa zobrazia všetkým používateľom, ktorí vidia exportovaný súbor. Nezdieľajte ho preto s nikým a po importovaní ho odstráňte.</translation>
 <translation id="6339668969738228384">Vytvoriť nový profil pre používateľa <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Nepodarilo sa pripojiť k serveru. Skontrolujte sieťové pripojenie a skúste to znova. Ak problém pretrváva, reštartujte Chromebook.</translation>
 <translation id="6340071272923955280">Protokol IPP (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Webové stránky môžu ukladať a čítať údaje súborov cookie</translation>
 <translation id="6388771388956873507">Nájdite senzor odtlačkov prstov na zariadení a dotknite sa ho prstom</translation>
 <translation id="6390799748543157332">Stránky otvorené v tomto okne sa nezobrazia v histórii prehliadača. Po zavretí všetkých otvorených okien režimu hosťa nezanechajú na počítači žiadne ďalšie stopy, ako napríklad súbory cookie. Všetky stiahnuté súbory však zostanú zachované.</translation>
-<translation id="6391538222494443604">Vstupný adresár musí existovať.</translation>
 <translation id="6395423953133416962">Odosielať <ph name="BEGIN_LINK1" />informácie o systéme<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />metriky<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Prestať hovoriť</translation>
 <translation id="6397592254427394018">Otvoriť všetky záložky v &amp;okne inkognito</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Spravovať blokovanie pre JavaScript...</translation>
 <translation id="6459488832681039634">Použiť výber na hľadanie</translation>
 <translation id="6460601847208524483">Nájsť ďalšie</translation>
-<translation id="6462080265650314920">Aplikácie musia byť poskytované s typom obsahu „<ph name="CONTENT_TYPE" />“.</translation>
 <translation id="6462082050341971451">Ste tam ešte?</translation>
 <translation id="6463795194797719782">&amp;Upraviť</translation>
 <translation id="6466988389784393586">&amp;Otvoriť všetky záložky</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Chcete, aby Google preložil túto stránku z jazyka <ph name="SOURCE_LANGUAGE" /> do jazyka <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Bolo pripojené ukazovacie zariadenie</translation>
-<translation id="6677037229676347494">Očakávané ID bolo „<ph name="EXPECTED_ID" />“. Skutočné ID bolo „<ph name="NEW_ID" />“.</translation>
 <translation id="6678717876183468697">Webová adresa dopytu</translation>
 <translation id="6680028776254050810">Prepnutie používateľov</translation>
 <translation id="6680442031740878064">K dispozícii: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3765,8 +3712,6 @@
 <translation id="6903534926908201625">V <ph name="BEGIN_LINK" />Nastaveniach<ph name="END_LINK" /> môžete kedykoľvek prispôsobiť, aké informácie Google zhromažďuje.</translation>
 <translation id="6904344821472985372">Odvolať prístup k súborom</translation>
 <translation id="6904655473976120856">Ukončite pomocou tlačidla Aplikácia</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> chce zdieľať vašu obrazovku.</translation>
-<translation id="6909461304779452601">Aplikácie, rozšírenia a skripty používateľa sa nedajú z týchto webových stránok pridať.</translation>
 <translation id="6910211073230771657">Odstránené</translation>
 <translation id="691024665142758461">Stiahnuť viacero súborov</translation>
 <translation id="6911324888870229398">Sieťové pripojenie bolo prerušené. Skontrolujte pripojenie alebo skúste inú sieť Wi-Fi.</translation>
@@ -4103,7 +4048,6 @@
 <translation id="747114903913869239">Chyba: Nepodarilo sa dekódovať rozšírenie</translation>
 <translation id="7473891865547856676">Nie, ďakujem</translation>
 <translation id="747459581954555080">Obnoviť všetko</translation>
-<translation id="7475034671245341386">V súvislosti s doplnkom <ph name="PLUGIN_NAME" /> sa vyskytla chyba.</translation>
 <translation id="7475671414023905704">Netscape – webová adresa pre zabudnuté heslo</translation>
 <translation id="7476454130948140105">Batéria je príliš slabá na aktualizáciu (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Ak ste zabudli svoju prístupovú frázu, zastavte a obnovte synchronizáciu pomocou služby <ph name="BEGIN_LINK" />Informačný panel Google<ph name="END_LINK" /> .</translation>
@@ -4140,7 +4084,6 @@
 <translation id="7507930499305566459">Certifikát stavového odpovedajúceho zariadenia</translation>
 <translation id="7508545000531937079">Prezentácia</translation>
 <translation id="7513029293694390567">Prihlasovať sa na weboch automaticky pomocou uložených prihlasovacích údajov. Keď je táto funkcia vypnutá, zobrazí sa vám pred každým prihlásením žiadosť o potvrdenie.</translation>
-<translation id="7515670329462166359">Web <ph name="URL" /> musí vaše zariadenie jednoznačne identifikovať, aby sa prehral prémiový obsah.</translation>
 <translation id="7517569744831774757">Obnovenie pôvodných predvolených nastavení.</translation>
 <translation id="7517786267097410259">Vytvorte heslo –</translation>
 <translation id="7518150891539970662">Denníky WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4170,7 +4113,6 @@
     znova skúsiť vytvoriť kontrolovaného používateľa.</translation>
 <translation id="756445078718366910">Otvoriť okno prehliadača</translation>
 <translation id="7564847347806291057">Ukončiť proces</translation>
-<translation id="7565291891798266313">Váš vyhľadávač bol zmenený na <ph name="URL" />. Ak chcete zakázať rozšírenia, ktoré menia vyhľadávač, kliknite na možnosť Obnoviť.</translation>
 <translation id="7566118625369982896">Správa skratiek aplikácie Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Údaje Chromu boli vymazané</translation>
@@ -4179,7 +4121,6 @@
 <translation id="7573172247376861652">Nabíjanie batérie</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Kompletovať</translation>
-<translation id="7577815336900970562">Zisťovať polohu pomocou Wi–Fi alebo mobilnej siete</translation>
 <translation id="7579149537961810247">Vypnúť zvuk webov</translation>
 <translation id="7580671184200851182">Prehrávajte rovnaký zvuk zo všetkých reproduktorov (monofónny zvuk)</translation>
 <translation id="7581462281756524039">Nástroj na čistenie</translation>
@@ -4286,6 +4227,7 @@
 <translation id="7773726648746946405">Ukladací priestor relácie</translation>
 <translation id="7781335840981796660">Všetky používateľské účty a miestne údaje budú odstránené.</translation>
 <translation id="7782102568078991263">Žiadne ďalšie návrhy od spoločnosti Google</translation>
+<translation id="778330624322499012">Doplnok <ph name="PLUGIN_NAME" /> sa nepodarilo načítať</translation>
 <translation id="7784067724422331729">Tento súbor je blokovaný nastaveniami zabezpečenia počítača.</translation>
 <translation id="7786207843293321886">Ukončiť reláciu hosťa</translation>
 <translation id="7786889348652477777">&amp;Znova načítať aplikáciu</translation>
@@ -4448,7 +4390,6 @@
 <translation id="8001504501378762252">Web možno ukradol vaše heslo</translation>
 <translation id="8004582292198964060">Prehliadač</translation>
 <translation id="8008356846765065031">Internet je odpojený. Skontrolujte svoje pripojenie k internetu.</translation>
-<translation id="8008765610824028412">Doplnok <ph name="PLUGIN_NAME" /> sa nepodarilo načítať.</translation>
 <translation id="8008818777654712271">Automaticky odosielať niektoré informácie o systéme a obsah stránok do Googlu s cieľom pomôcť rozpoznávať nebezpečné aplikácie a weby</translation>
 <translation id="8012382203418782830">Táto stránka bola preložená.</translation>
 <translation id="8014154204619229810">Aktualizačný nástroj je práve spustený. Obnovením stránky o minútu to znova skontrolujte.</translation>
@@ -4565,7 +4506,6 @@
 <translation id="8191230140820435481">Spravovať vaše aplikácie, rozšírenia a motívy</translation>
 <translation id="8191453843330043793">V8 Proxy Resolver</translation>
 <translation id="8195027750202970175">Veľkosť na disku</translation>
-<translation id="8195739004487400241">Vaša domovská stránka bola zmenená na <ph name="URL" />. Ak chcete zakázať rozšírenia, ktoré menia domovskú stránku, kliknite na možnosť Obnoviť.</translation>
 <translation id="8199300056570174101">Vlastnosti siete (služba) a zariadenia</translation>
 <translation id="8200772114523450471">Pokračovať</translation>
 <translation id="8202160505685531999">Zadajte znova svoje heslo a aktualizujte tak profil zariadenia <ph name="DEVICE_TYPE" />.</translation>
@@ -4609,7 +4549,6 @@
 <translation id="8261378640211443080">Toto rozšírenie nedodáva <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohlo byť pridané bez vášho vedomia.</translation>
 <translation id="8261387128019234107">Pridať účet k profilu <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Odstrániť</translation>
-<translation id="826246685091802258">Príznak <ph name="BAD_FLAG" /> nie je implementovaný v tejto zostave.</translation>
 <translation id="8263744495942430914">Stránka <ph name="FULLSCREEN_ORIGIN" /> zakázala kurzor myši.</translation>
 <translation id="8264718194193514834">Rozšírenie <ph name="EXTENSION_NAME" /> spustilo režim celej obrazovky.</translation>
 <translation id="8270242299912238708">Dokumenty PDF</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">Prípadne vyberte novú sieť:</translation>
 <translation id="845627346958584683">Čas vypršania platnosti</translation>
 <translation id="8456681095658380701">Neplatný názov</translation>
+<translation id="8457451314607652708">Import záložiek</translation>
 <translation id="8460336040822756677">Ak funkciu Smart Lock pre <ph name="DEVICE_TYPE" /> vypnete, nebudete môcť svoje zariadenia Chrome odomknúť pomocou telefónu. Budete musieť zadať heslo.</translation>
 <translation id="8461329675984532579">Názov poskytovateľa domácej siete</translation>
 <translation id="84613761564611563">Sieťová konfigurácia používateľského rozhrania bola vyžiadaná, čakajte…</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">Nenašiel sa žiadny škodlivý softvér</translation>
 <translation id="8512476990829870887">Ukončiť proces</translation>
 <translation id="851263357009351303">Vždy povoliť stránkam <ph name="HOST" /> zobrazovať obrázky</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> ladí tento prehliadač.</translation>
 <translation id="8521475323816527629">Rýchlo získajte svoje aplikácie</translation>
 <translation id="8523493869875972733">Zachovať zmeny</translation>
 <translation id="8523849605371521713">Pridané pravidlom</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">Konfigurovať sieťové pripojenia</translation>
 <translation id="8620790565535071193">Vyhľadávanie zlyhalo</translation>
 <translation id="8622877356447980900">Chcete túto stránku preložiť?</translation>
-<translation id="8623004009673949077">Aplikácie s atribútom manifestu „kiosk_only“ musia byť nainštalované v režime verejného terminálu systému OS Chrome.</translation>
 <translation id="8624205858755890468">Umožňuje Asistentovi zobraziť vám súvisiace informácie, aplikácie a akcie.</translation>
 <translation id="862542460444371744">&amp;Rozšírenia</translation>
 <translation id="8627151598708688654">Výber zdroja</translation>
@@ -4946,7 +4884,6 @@
 <translation id="882204272221080310">Aktualizovať firmvér v rámci zvýšenia zabezpečenia</translation>
 <translation id="8823514049557262177">Kopírovať te&amp;xt odkazu</translation>
 <translation id="8824701697284169214">Pridať strán&amp;ku...</translation>
-<translation id="8827850355924932817">Určovať polohu pomocou siete Wi–Fi</translation>
 <translation id="8828933418460119530">Názov DNS</translation>
 <translation id="8830796635868321089">Kontrola aktualizácie pomocou aktuálneho nastavenia servera proxy zlyhala. Upravte svoje <ph name="PROXY_SETTINGS_LINK_START" />nastavenia servera proxy<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Konfiguráciu siete spravuje <ph name="USER_EMAIL" />.</translation>
@@ -4978,9 +4915,7 @@
 <translation id="8879284080359814990">&amp;Zobraziť ako kartu</translation>
 <translation id="8884961208881553398">Pridať nové služby</translation>
 <translation id="8885197664446363138">Funkcia Smart Lock nie je k dispozícii</translation>
-<translation id="8885905466771744233">Pre určené rozšírenie už existuje súkromný kľúč. Použite ho znova, alebo ho najprv odstráňte.</translation>
 <translation id="8888432776533519951">Farba:</translation>
-<translation id="8892992092192084762">Bol nainštalovaný motív „<ph name="THEME_NAME" />“</translation>
 <translation id="8893928184421379330">Je nám ľúto, ale zariadenie <ph name="DEVICE_LABEL" /> sa nepodarilo rozpoznať.</translation>
 <translation id="8895454554629927345">Zoznam záložiek</translation>
 <translation id="88986195241502842">Posunúť stránku nadol</translation>
@@ -4995,7 +4930,6 @@
 <translation id="8908902564709148335">Upozornenie: Na tomto počítači ste povolili príznak --scripts-require-action, ktorý obmedzuje možnosti tohto rozšírenia. Iné zariadenia ho však nemusia podporovať alebo ho mať povolený. Na týchto zariadeniach môže toto rozšírenie tiež:</translation>
 <translation id="8910146161325739742">Zdieľanie obrazovky</translation>
 <translation id="8910222113987937043">Záložky, história, heslá a ďalšie nastavenia sa už nebudú ďalej synchronizovať do vášho účtu Google. Vaše existujúce ú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="8911079125461595075">Rozšírenie <ph name="EXTENSION_NAME" /> označila spoločnosť Google ako škodlivé a jeho inštalácia sa zakázala.</translation>
 <translation id="8912793549644936705">Roztiahnuť</translation>
 <translation id="8915370057835397490">Načítavajú sa návrhy</translation>
 <translation id="8916476537757519021">Podrámec inkognito: <ph name="SUBFRAME_SITE" /></translation>
@@ -5101,7 +5035,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Myš s konektorom USB bola pripojená</translation>
 <translation id="9076523132036239772">Je nám ľúto, e-mailovú adresu alebo heslo sa nepodarilo overiť. Skúste sa najprv pripojiť k sieti.</translation>
-<translation id="907841381057066561">Vytvorenie dočasného súboru zip počas balenia zlyhalo.</translation>
 <translation id="9084064520949870008">Otvoriť ako okno</translation>
 <translation id="9088234649737575428">Doplnok <ph name="PLUGIN_NAME" /> je blokovaný podnikovými pravidlami</translation>
 <translation id="9088917181875854783">Potvrďte, že tento prístupový kľúč sa zobrazuje na zariadení „<ph name="DEVICE_NAME" />“:</translation>
@@ -5192,11 +5125,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Zadať prístupovú frázu</translation>
 <translation id="939736085109172342">Nový priečinok</translation>
-<translation id="941543339607623937">Neplatný súkromný kľúč.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> zdieľa kartu a zvuk Chromu.</translation>
 <translation id="942954117721265519">V tomto adresári nie sú žiadne obrázky.</translation>
 <translation id="945522503751344254">Poslať spätnú väzbu</translation>
-<translation id="951981865514037445">Stránky <ph name="URL" /> chcú použiť polohu vášho zariadenia.</translation>
 <translation id="952992212772159698">Neaktivované</translation>
 <translation id="9580706199804957">Nepodarilo sa pripojiť k službám Google</translation>
 <translation id="958515377357646513">Klepnutím prejdete dopredu.</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index 6346def6..23d777d 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Le šifriranje</translation>
 <translation id="1039337018183941703">Neveljavna ali poškodovana datoteka</translation>
 <translation id="1042174272890264476">V vašem računalniku je tudi vgrajena knjižnica RLZ izdelka <ph name="SHORT_PRODUCT_NAME" />. RLZ za merjenje iskanj in uporabe izdelka <ph name="SHORT_PRODUCT_NAME" /> v okviru določene promocijske akcije dodeli neenolično oznako, ki ne omogoča osebne prepoznave. Te oznake so včasih v izdelku <ph name="PRODUCT_NAME" /> prikazane v iskalnih poizvedbah v Googlu.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> želi trajno shranjevati velike količine podatkov v vaši napravi.</translation>
 <translation id="1046059554679513793">Ops, to ime je že v uporabi.</translation>
 <translation id="1047431265488717055">&amp;Kopiraj besedilo povezave</translation>
 <translation id="1047726139967079566">Zaznamek za to stran ...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Želite obnoviti privzeti iskalnik?</translation>
 <translation id="1177863135347784049">Po meri</translation>
 <translation id="1178581264944972037">Prekini</translation>
-<translation id="1179803038870941185"><ph name="URL" /> želi pridobiti popolni nadzor nad vašimi napravami MIDI.</translation>
 <translation id="1181037720776840403">Odstrani</translation>
 <translation id="1183237619868651138">Datoteke <ph name="EXTERNAL_CRX_FILE" /> ni mogoče namestiti v lokalnem predpomnilniku.</translation>
 <translation id="1185924365081634987">Če želite odpraviti to omrežno napako, lahko prav tako poskusite <ph name="GUEST_SIGNIN_LINK_START" />brskati kot gost<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Dostop do datoteke, shranjene v računalniku}one{Dostop do # datoteke, shranjene v računalniku}two{Dostop do # datotek, shranjenih v računalniku}few{Dostop do # datotek, shranjenih v računalniku}other{Dostop do # datotek, shranjenih v računalniku}}</translation>
 <translation id="1195076408729068893">Če želite zagnati Smart Lock, vnesite geslo. Naslednjič lahko za odklepanje naprave <ph name="DEVICE_TYPE" /> uporabite telefon.</translation>
 <translation id="1195447618553298278">Neznana napaka.</translation>
-<translation id="1196338895211115272">Zasebnega ključa ni bilo mogoče izvoziti.</translation>
 <translation id="119738088725604856">Okno posnetka zaslona</translation>
 <translation id="1197979282329025000">Napaka pri prenosu zmožnosti tiskalnika <ph name="PRINTER_NAME" />. Tega tiskalnika ni mogoče registrirati za storitev <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Začnite</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Skrbnik priporoča za to nastavitev posebno vrednost.</translation>
 <translation id="1225177025209879837">Obdelava zahteve ...</translation>
 <translation id="1225211345201532184">Element na polici 5</translation>
-<translation id="1225404570112441414">Dodajte to spletno mesto na polico, da ga lahko kadar koli uporabljate.</translation>
 <translation id="1227507814927581609">Med povezovanjem z napravo »<ph name="DEVICE_NAME" />« ni uspelo preverjanje pristnosti.</translation>
 <translation id="1230807973377071856">sistemski meni</translation>
 <translation id="1232569758102978740">Brez naslova</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Datoteka HTML z zaznamki</translation>
 <translation id="1303671224831497365">Najdena ni bila nobena naprava Bluetooth</translation>
 <translation id="1306606229401759371">Spremeni nastavitve</translation>
-<translation id="1307398858972670978">Dostopajte do gesel v kateri koli napravi na <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Ojoj, sistem za to napravo ni shranil žetona za dolgoročni dostop do API-ja.</translation>
 <translation id="1313405956111467313">Samodejna konfiguracija strežnika proxy</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Išči</translation>
 <translation id="1386387014181100145">Zdravo.</translation>
 <translation id="138784436342154190">Želite obnoviti privzeto začetno stran?</translation>
-<translation id="1389297115360905376">Dodati ga je mogoče samo z mesta <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Odpri v navadnem zavihku</translation>
-<translation id="1391807639023934267">Hitrejše nalaganje strani.</translation>
 <translation id="1393283411312835250">Sonce in oblaki</translation>
 <translation id="1395262318152388157">Drsnik za iskanje</translation>
 <translation id="1395730723686586365">Orodje za posodabljanje je zagnano</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Posodabljate na nestabilno različico <ph name="PRODUCT_NAME" />, ki še niso v celoti razvite. Prišlo bo do zrušitev in nepričakovanih napak. Nadaljujte previdno.</translation>
 <translation id="1415990189994829608">Razširitev <ph name="EXTENSION_NAME" /> (ID razširitve »<ph name="EXTENSION_ID" />«) ni dovoljena v seji te vrste.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Ups! Ni bilo mogoče generirati naključnega zasebnega ključa RSA.</translation>
 <translation id="1420834118113404499">Predstavnostne licence</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, če želite omogočiti seznanjanje</translation>
 <translation id="1426410128494586442">Da</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Kopiraj naslov zvoka</translation>
 <translation id="1465827627707997754">Rezina pice</translation>
 <translation id="1467432559032391204">V levo</translation>
-<translation id="1467999917853307373"><ph name="URL" /> želi trajno shranjevati podatke v vašo napravo.</translation>
-<translation id="1470719357688513792">Nove nastavitve za piškotke bodo začele veljati, ko znova naložite stran.</translation>
 <translation id="1470811252759861213">Če želite dostopati do razširitev v vseh računalnikih, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Datoteka »<ph name="FILENAME" />« ni bila naložena. V Googlu Drive nimate dovolj razpoložljivega prostora.</translation>
 <translation id="1475502736924165259">V dokumentu so potrdila, ki ne sodijo v nobeno od drugih kategorij</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Velik miškin kazalec</translation>
 <translation id="1543284117603151572">Uvoženo iz brskalnika Edge</translation>
 <translation id="1545177026077493356">Samodejni način kiosk</translation>
+<translation id="1545775234664667895">Nameščena tema »<ph name="THEME_NAME" />«</translation>
 <translation id="1545786162090505744">URL z »%s« namesto poizvedbe</translation>
 <translation id="1546280085599573572">Zaradi te razširitve se je spremenila stran, ki je prikazana, ko kliknete gumb za začetno stran.</translation>
 <translation id="1547572086206517271">Potrebna je osvežitev</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />pregled<ph name="END_BOLD" /> spletnih mest, ki jih je obiskal zaščiteni  uporabnik, in
     <ph name="BEGIN_BOLD" />upravljanje<ph name="END_BOLD" /> drugih nastavitev.</translation>
 <translation id="1648943974594387137">Podatki za prijavo so zastareli</translation>
-<translation id="1649641629389702691">&lt;toliko vrstic ni prikazanih: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Pokaži možnosti vnosa</translation>
 <translation id="1650709179466243265">Doda www. in .com in odpre naslov</translation>
 <translation id="1651008383952180276">Dvakrat morate vnesti isto geslo</translation>
-<translation id="1652972346408808053">Geslo je shranjeno. Dostopajte do gesel v kateri koli napravi na <ph name="SAVED_PASSWORDS_LINK" />.</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Dodajte tiskalnik v Google Tiskanje v oblaku, da boste lahko tiskali od koder koli.}one{Dodajte # tiskalnik v Google Tiskanje v oblaku, da boste lahko tiskali od koder koli.}two{Dodajte # tiskalnika v Google Tiskanje v oblaku, da boste lahko tiskali od koder koli.}few{Dodajte # tiskalnike v Google Tiskanje v oblaku, da boste lahko tiskali od koder koli.}other{Dodajte # tiskalnikov v Google Tiskanje v oblaku, da boste lahko tiskali od koder koli.}}</translation>
 <translation id="1657406563541664238">Pomagajte izboljšati <ph name="PRODUCT_NAME" /> s samodejnim pošiljanjem statističnih podatkov o uporabi in poročil o zrušitvah Googlu</translation>
 <translation id="1658424621194652532">Ta stran dostopa do vašega mikrofona.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Še naprej blokiraj piškotke</translation>
 <translation id="204622017488417136">Naprava bo povrnjena na prej nameščeno različico Chroma. Vsi uporabniški računi in lokalni podatki bodo odstranjeni. Tega ni mogoče razveljaviti.</translation>
 <translation id="2048182445208425546">Dostop do vašega omrežnega prometa</translation>
-<translation id="2049137146490122801">Dostop do lokalnih datotek v vašem računalniku je onemogočil skrbnik.</translation>
 <translation id="204914487372604757">Ustvari bližnjico</translation>
 <translation id="2050339315714019657">Pokončno</translation>
 <translation id="2053312383184521053">Podatki o stanju nedejavnosti</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Še ni naložen</translation>
 <translation id="2107494551712864447">Dodajanje prstnega odtisa</translation>
-<translation id="2111843886872897694">Aplikacije morajo biti izvedene pri gostitelju, na katerega vplivajo.</translation>
 <translation id="2112877397266219826">Vklopite krmilnik na dotik, da me nastavite</translation>
 <translation id="21133533946938348">Pripni zavihek</translation>
 <translation id="2113479184312716848">Odpri &amp;datoteko ...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Povejte nam, kaj se dogaja</translation>
 <translation id="2229161054156947610">Še več kot ena ura</translation>
 <translation id="222931766245975952">Datoteka je okrnjena</translation>
-<translation id="222949136907494149"><ph name="URL" /> želi uporabljati lokacijo vašega računalnika.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Ni bilo mogoče ustvariti mape »<ph name="FOLDER_NAME" />«. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Kliknite, če si želite ogledati današnji priložnostni logotip</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Vedno prepreči dostop do mikrofona</translation>
 <translation id="2367972762794486313">Pokaži aplikacije</translation>
 <translation id="2371076942591664043">Odpri, ko je &amp;dokončano</translation>
-<translation id="237336063998926520">Uporaba naslova IP za ugotavljanje lokacije</translation>
 <translation id="2377319039870049694">Preklop na pogled seznama</translation>
 <translation id="2377667304966270281">Težke napake</translation>
 <translation id="2378075407703503998">Št. izbranih datotek: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> želi kopirati datoteke z nosilca <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID ključa overitelja potrdil</translation>
 <translation id="2462752602710430187">Dodano: <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Uvozi zaznamke</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Povezava s telefonom ni mogoča. Uporabiti morate združljiv telefon Android, ki je vklopljen in pri roki. &lt;a&gt;Več o tem&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Nepodprte razširitve onemogočene</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Odstranjevanje</translation>
 <translation id="2487067538648443797">Dodaj nov zaznamek</translation>
 <translation id="248861575772995840">Telefona ni mogoče najti. Bluetooth v napravi <ph name="DEVICE_TYPE" /> mora biti vklopljen. &lt;a&gt;Več o tem&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Vtičnik (<ph name="PLUGIN_NAME" />) se ne odziva.</translation>
 <translation id="2489428929217601177">v preteklem dnevu</translation>
 <translation id="2489918096470125693">Dodaj &amp;mapo ...</translation>
 <translation id="249113932447298600">Oprostite, naprava <ph name="DEVICE_LABEL" /> še ni podprta.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Čestitamo. Podatkovna storitev omrežja »<ph name="NAME" />« je aktivirana in lahko jo začnete uporabljati.</translation>
 <translation id="2566124945717127842">Uporabite Powerwash za ponastavitev naprave <ph name="IDS_SHORT_PRODUCT_NAME" />, da bo kot nova.</translation>
 <translation id="2568774940984945469">Vsebnik informacijske vrstice</translation>
-<translation id="2570000010887652771">Shranjeni podatki.</translation>
 <translation id="257088987046510401">Teme</translation>
 <translation id="2572032849266859634">Odobren je dostop samo za branje za <ph name="VOLUME_NAME" />.</translation>
 <translation id="2573269395582837871">Izberite sliko in ime</translation>
 <translation id="2575247648642144396">Ikona bo vidna, če lahko razširitev deluje na trenutni strani. Razširitev uporabite tako, da kliknete ikono ali pritisnete <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Vašega telefona ni mogoče najti. Naprava <ph name="DEVICE_TYPE" /> mora biti povezana z omrežjem Wi-Fi ali mobilnim omrežjem. &lt;a&gt;Več o tem&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Datoteka CRX s tem imenom že obstaja.</translation>
 <translation id="257779572837908839">Nastavitev kot Chromebox za videokonference</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Nosilca podatkov ni mogoče izpeti.<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Če izbrišete potrdilo overitelja potrdil, brskalnik ne zaupa več potrdilom, ki jih je izdal ta overitelj.</translation>
 <translation id="2653659639078652383">Pošlji</translation>
 <translation id="265390580714150011">Vrednost polja</translation>
-<translation id="2654286334048437383">Izvozi zaznamke</translation>
 <translation id="2655386581175833247">Uporabniško potrdilo:</translation>
 <translation id="2660779039299703961">Dogodek</translation>
 <translation id="2661146741306740526">16 x 9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Dodajanje galerije predstavnosti po imeniku</translation>
 <translation id="2908789530129661844">Pomanjšava zaslona</translation>
 <translation id="2910318910161511225">Vzpostavite povezavo z omrežjem in poskusite znova</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> želi uporabiti vaš ​​mikrofon.</translation>
 <translation id="2913331724188855103">Dovoli spletnim mestom shranjevanje in branje podatkov piškotkov (priporočljivo)</translation>
 <translation id="2916073183900451334">S pritiskom tabulatorke na spletni strani označite povezavo in tudi polja obrazcev</translation>
 <translation id="2916745397441987255">Iskanje razširitev</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">Okno gor</translation>
 <translation id="3053013834507634016">Raba ključa potrdila</translation>
 <translation id="3057861065630527966">Varnostno kopiranje fotografij videoposnetkov</translation>
-<translation id="3060379269883947824">Omogoči izbiro za govor</translation>
+<translation id="3060379269883947824">Omogoči storitev Izberite in poslušajte</translation>
 <translation id="3061707000357573562">Storitev za popravke</translation>
 <translation id="3064410671692449875">Nezadostni podatki</translation>
 <translation id="3065041951436100775">Povratne informacije o zaustavitvi zavihka.</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Poslušanje ...</translation>
 <translation id="3141917231319778873">Dana zahteva ni podprta za to napravo: »<ph name="DEVICE_NAME" />«.</translation>
 <translation id="3144126448740580210">KONČANO</translation>
-<translation id="3144135466825225871">Datoteke .crx ni bilo mogoče zamenjati. Preverite, ali je datoteka v uporabi.</translation>
 <translation id="3144647712221361880">Odpiranje povezave kot</translation>
 <translation id="3149510190863420837">Aplikacije za Chrome</translation>
 <translation id="3150927491400159470">Znova naloži brez predpomnilnika</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Vedno izvajaj na vseh spletnih mestih</translation>
 <translation id="3312424061798279731">Omogočeni jeziki</translation>
 <translation id="3312903956926554846">Namestitev na namizje</translation>
-<translation id="3313473140726597081">Začetna stran je bila spremenjena v <ph name="URL" />. Če želite onemogočiti razširitve, ki spreminjajo začetno stran, kliknite »Obnovi«.</translation>
 <translation id="3313590242757056087">Če želite nastaviti, katera spletna mesta si lahko ogleda zaščiteni uporabnik, lahko na strani <ph name="MANAGEMENT_URL" />
     določite omejitve in nastavitve.
     Če ne spremenite privzetih nastavitev,
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Podatki o aplikaciji</translation>
 <translation id="3335947283844343239">Znova odpri zaprt zavihek</translation>
-<translation id="3337069537196930048">Vtičnik <ph name="PLUGIN_NAME" /> je bil blokiran, ker je zastarel.</translation>
 <translation id="3340978935015468852">nastavitve</translation>
 <translation id="3341703758641437857">Dovoli dostop do URL-jev datoteke</translation>
 <translation id="3342361181740736773">»<ph name="TRIGGERING_EXTENSION_NAME" />« želi odstraniti to razširitev.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Zaznamek dodan</translation>
 <translation id="3389312115541230716">Z desnim miškinim gumbom kliknite ikono za <ph name="SMALL_PRODUCT_LOGO" /> v opravilni vrstici</translation>
 <translation id="3391716558283801616">Zavihek 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> želi uporabiti kamero in mikrofon.</translation>
 <translation id="3396331542604645348">Izbrani tiskalnik ni na voljo ali ni pravilno nameščen. Preverite tiskalnik ali izberite drugega.</translation>
 <translation id="3399432415385675819">Obvestila bodo onemogočena</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome se posodablja samodejno, zato boste vedno imeli najnovejšo različico</translation>
 <translation id="3551320343578183772">Zapri zavihek</translation>
 <translation id="3552780134252864554">Izbris ob izhodu</translation>
-<translation id="355298399003313926"><ph name="URL" /> se želi odzvati na dogodke funkcij za ljudi s posebnimi potrebami.</translation>
 <translation id="3555812735919707620">Odstrani razširitev</translation>
 <translation id="3556000484321257665">Iskalnik je bil spremenjen v <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Vrednost vnosa za zasebni ključ mora biti veljavna pot.</translation>
 <translation id="3563432852173030730">Aplikacije Kiosk ni bilo mogoče prenesti.</translation>
 <translation id="3564334271939054422">Omrežje Wi-Fi, ki ga uporabljate (<ph name="NETWORK_ID" />), bo morda zahtevalo, da obiščete stran za prijavo.</translation>
 <translation id="3564708465992574908">Ravni povečave/pomanjšave</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Omejitve imena potrdila</translation>
 <translation id="3596235046596950091">Omogočanje storitev v oblaku</translation>
 <translation id="3599863153486145794">Izbriše zgodovino iz vseh naprav, v katerih ste prijavljeni. V Google Računu so morda druge vrste zgodovine brskanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Skrbnik je onemogočil dostop do lokalnih datotek v vaši napravi.</translation>
 <translation id="3600792891314830896">Izklop zvoka na spletnih mestih, ki predvajajo zvok</translation>
 <translation id="3603177256297531067">Te strani ni bilo mogoče prevesti</translation>
 <translation id="3603533104205588786">Če želite dodati stran med zaznamke, lahko kliknete zvezdico</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Posnetki zaslona so onemogočeni</translation>
 <translation id="3625870480639975468">Ponastavi povečavo/pomanjšavo</translation>
 <translation id="3626281679859535460">Svetlost</translation>
-<translation id="3627052133907344175">Razširitev zahteva »<ph name="IMPORT_NAME" />« z najmanjšo številko različice »<ph name="IMPORT_VERSION" />«, vendar je nameščena samo različica »<ph name="INSTALLED_VERSION" />«.</translation>
 <translation id="3627320433825461852">Še manj kot minuta</translation>
 <translation id="3627588569887975815">Odpri povezavo v oknu brez bele&amp;ženja zgodovine</translation>
 <translation id="3627671146180677314">Čas podaljšanja Netscapeovega potrdila</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Jezikovne nastavitve</translation>
 <translation id="3668823961463113931">Kontrolniki</translation>
 <translation id="3670229581627177274">Vklop vmesnika Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> želi trajno shraniti velike količine podatkov v vašem računalniku.</translation>
 <translation id="3672681487849735243">Zaznana je tovarniška napaka</translation>
 <translation id="367645871420407123">pustite prazno, če želite korensko geslo nastaviti na privzeto vrednost preskusne slike</translation>
 <translation id="3678156199662914018">Razširitev: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Povezava ni vzpostavljena</translation>
 <translation id="3788401245189148511">Lahko bi:</translation>
 <translation id="3789841737615482174">Namesti</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> deluje samo na namizju.</translation>
 <translation id="379082410132524484">Kartica je potekla</translation>
 <translation id="3792890930871100565">Prekinite povezave s tiskalniki</translation>
 <translation id="379422718204375917">Prijava v račun s funkcijo Smart Lock</translation>
-<translation id="3794595850995182458">Izhodna stran</translation>
 <translation id="3796648294839530037">Priljubljena omrežja:</translation>
 <translation id="3797900183766075808">&amp;V iskalniku <ph name="SEARCH_ENGINE" /> poišči »<ph name="SEARCH_TERMS" />«</translation>
 <translation id="3798325802885154040">Omogoča, da omogočite/onemogočite »dotik za klik«</translation>
@@ -1982,7 +1950,6 @@
 <translation id="3979748722126423326">Omogoči <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Vrsta shranjevanje, ki ste jo vnesli, ni veljavna.</translation>
 <translation id="3983586614702900908">naprave neznanega prodajalca</translation>
-<translation id="3984413272403535372">Med podpisovanjem razširitve je prišlo do napake.</translation>
 <translation id="3987938432087324095">Ni bilo razumljivo.</translation>
 <translation id="3988996860813292272">Izbira časovnega pasu</translation>
 <translation id="3989635538409502728">Odjava</translation>
@@ -2038,7 +2005,6 @@
 <translation id="4087470595660267445">Namestite aplikacije in igre iz Googla Play v Chromebooku. &lt;a target="_blank" href="<ph name="URL" />"&gt;Več o tem&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Sprejmi za skupino</translation>
 <translation id="4090103403438682346">Omogočanje preverjenega dostopa</translation>
-<translation id="4090404313667273475">Za prikaz nekaterih elementov na tej strani je potreben vtičnik <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(To je upravljana razširitev in je ni mogoče odstraniti.)</translation>
 <translation id="4091434297613116013">listi papirja</translation>
 <translation id="4093955363990068916">Lokalna datoteka:</translation>
@@ -2372,7 +2338,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> lahko zdaj sinhronizira vaša gesla.</translation>
 <translation id="4715553623069266137">zelo kratka (0,8 s)</translation>
 <translation id="4716483597559580346">Opravite postopek »Powerwash« zaradi dodane varnosti</translation>
-<translation id="471800408830181311">Zasebnega ključa ni bilo mogoče izdati.</translation>
 <translation id="4720113199587244118">Dodaj naprave</translation>
 <translation id="4720185134442950733">Mobilno podatkovno omrežje</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> souporablja vaš zaslon.</translation>
@@ -2509,7 +2474,6 @@
 <translation id="4917385247580444890">Močan</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> želi vzpostaviti povezavo z razširitvijo »<ph name="EXTENSION_NAME" />«</translation>
 <translation id="4918086044614829423">Sprejmi</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> želi uporabljati kamero.</translation>
 <translation id="4920887663447894854">Zaradi blokade ta spletna mesta ne morejo slediti vaši lokaciji na tej strani:</translation>
 <translation id="492299503953721473">Odstrani aplikacije za Android</translation>
 <translation id="4923279099980110923">Da, želim pomagati</translation>
@@ -2550,7 +2514,6 @@
 <translation id="4980805016576257426">Ta razširitev vsebuje zlonamerno programsko opremo.</translation>
 <translation id="498294082491145744">Spreminjanje nastavitev, ki nadzirajo dostop spletnih mest do funkcij, kot so piškotki, JavaScript, vtičniki, geolokacija, mikrofon, fotoaparat ipd.</translation>
 <translation id="4988526792673242964">Strani</translation>
-<translation id="4988792151665380515">Javnega ključa ni bilo mogoče izvoziti.</translation>
 <translation id="49896407730300355">Zasukaj v o&amp;bratni smeri urinega kazalca</translation>
 <translation id="4989966318180235467">Preglej stran v ozadju</translation>
 <translation id="4990343175649730969">Prenesite Chromovo orodje za čiščenje</translation>
@@ -2579,7 +2542,6 @@
 <translation id="5026874946691314267">Ne prikaži več tega</translation>
 <translation id="5027550639139316293">E-poštno potrdilo</translation>
 <translation id="5027562294707732951">Dodaj razširitev</translation>
-<translation id="5028012205542821824">Namestitev ni omogočena.</translation>
 <translation id="5029568752722684782">Počisti kopijo</translation>
 <translation id="5030338702439866405">Izdajatelj</translation>
 <translation id="5036662165765606524">Nobenemu spletnemu mestu ne dovoli samodejnega prenosa več datotek</translation>
@@ -2615,7 +2577,6 @@
 <translation id="509429900233858213">Napaka.</translation>
 <translation id="5094721898978802975">Komuniciranje s sodelujočimi izvornimi aplikacijami</translation>
 <translation id="5097002363526479830">Povezava z omrežjem »<ph name="NAME" />« ni uspela: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Absolutne poti do mape za pakiranje ni mogoče najti.</translation>
 <translation id="5099354524039520280">gor</translation>
 <translation id="5100114659116077956">Chromebox se mora posodobiti, da bodo na voljo najnovejše funkcije.</translation>
 <translation id="5101042277149003567">Odpri vse zaznamke</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">Prikaži v mapi</translation>
 <translation id="5171045022955879922">Poiščite ali vnesite URL</translation>
 <translation id="5171343362375269016">Zamenjan pomnilnik</translation>
-<translation id="5175870427301879686"><ph name="URL" /> želi trajno shraniti podatke v v lokalnem računalniku.</translation>
 <translation id="5177479852722101802">Še naprej blokiraj dostop do kamere in mikrofona</translation>
 <translation id="5177526793333269655">Pogled sličic</translation>
 <translation id="5177549709747445269">Uporabljate prenos podatkov v mobilnem omrežju</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Formatiraj to napravo</translation>
 <translation id="5293170712604732402">Ponastavitev nastavitev na privzete nastavitve</translation>
 <translation id="5298219193514155779">Avtor teme</translation>
-<translation id="5298363578196989456">Razširitve »<ph name="IMPORT_NAME" />« ni mogoče uvozit, ker ni modul v skupni rabi.</translation>
 <translation id="5299109548848736476">Ne sledi</translation>
 <translation id="5299682071747318445">Vsi podatki so šifrirani z vašim geslom</translation>
 <translation id="5300589172476337783">Pokaži</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">»<ph name="CHROME_EXTENSION_NAME" />« želi izvesti seznanitev</translation>
 <translation id="5332624210073556029">Časovni pas:</translation>
 <translation id="5334142896108694079">Predpomnilnik za skripte</translation>
-<translation id="533433379391851622">Pričakovana različica je »<ph name="EXPECTED_VERSION" />«, toda različica je bila »<ph name="NEW_ID" />«.</translation>
 <translation id="5334844597069022743">Ogled izvorne kode</translation>
 <translation id="5335458522276292100">Varnostno kopiranje v <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />: <ph name="FILE_COUNT" /></translation>
 <translation id="5337771866151525739">Namestil jo je drug ponudnik.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">Dovoli spletnim mestom predvajanje zvoka</translation>
 <translation id="5390284375844109566">Indeksirana zbirka podatkov</translation>
 <translation id="5390743329570580756">Pošlji po</translation>
-<translation id="5396126354477659676">Vtičnik <ph name="PEPPER_PLUGIN_NAME" /> v domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi dostopati do vašega računalnika.</translation>
 <translation id="5397794290049113714">Vi</translation>
 <translation id="5398572795982417028">Sklic na stran zunaj dovoljenega razpona, omejitev je <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Oglasi blokirani</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Obnovi vse zavihke</translation>
 <translation id="5486261815000869482">Potrditev gesla</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> souporablja vaš zaslon s kartico <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Obstajati mora vrednost vnosa za zasebni ključ.</translation>
 <translation id="5486561344817861625">Posnemaj vnovični zagon brskalnika</translation>
 <translation id="5487521232677179737">Izbriši podatke</translation>
 <translation id="5488093641312826914">Element »<ph name="COPIED_ITEM_NAME" />« je kopiran</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">Posodobitev bo prenesena v mobilnem omrežju, pri čimer bo prenesenih toliko podatkov: <ph name="UPDATE_SIZE_MB" /> MB. Ali želite nadaljevati?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Drugi iskalniki</translation>
-<translation id="5606674617204776232">Vtičnik <ph name="PEPPER_PLUGIN_NAME" /> v domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi dostopati do vaše naprave.</translation>
 <translation id="5608580678041221894">Dotaknite se teh tipk, če želite prilagoditi ali premakniti območje za obrezovanje</translation>
 <translation id="5609231933459083978">Videti je, da je aplikacija neveljavna.</translation>
 <translation id="5610038042047936818">Preklopi v osnovni način fotoaparata</translation>
@@ -3198,7 +3153,6 @@
 <translation id="5990386583461751448">Prevedeno</translation>
 <translation id="5991049340509704927">Povečava</translation>
 <translation id="5993332328670040093">Poraba podatkov se ne bo več merila.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> se morda ne bo mogel posodabljati.</translation>
 <translation id="600424552813877586">Neveljavna aplikacija.</translation>
 <translation id="6005695835120147974">Predstavnostni usmerjevalnik</translation>
 <translation id="6006484371116297560">Klasična</translation>
@@ -3223,6 +3177,7 @@
 <translation id="604001903249547235">Varnostno kopiranje v oblak</translation>
 <translation id="6040143037577758943">Zapri</translation>
 <translation id="6040852767465482106">Anonimna identiteta</translation>
+<translation id="6041155700700864984">Zapri celozaslonski način</translation>
 <translation id="604124094241169006">Samodejno</translation>
 <translation id="6042169520002885235">Izbira proizvajalca in modela tiskalnika</translation>
 <translation id="6042308850641462728">Več</translation>
@@ -3239,7 +3194,6 @@
 <translation id="6056710589053485679">Znova naloži z običajnim načinom</translation>
 <translation id="6059652578941944813">Hierarhija potrdil</translation>
 <translation id="6059925163896151826">Naprave USB</translation>
-<translation id="6060435378291459521">Vtičnik <ph name="PLUGIN_NAME" /> se je zrušil.</translation>
 <translation id="6064217302520318294">Zaklepanje zaslona</translation>
 <translation id="6065289257230303064">Atributi imenika subjekta potrdila</translation>
 <translation id="6068338049763724728">Omogoči včlanitev na daljavo</translation>
@@ -3348,7 +3302,6 @@
 <translation id="6237816943013845465">Omogoča prilagajanje ločljivosti zaslona</translation>
 <translation id="6238923052227198598">Najnovejši zapisek naj bo prikazan na zaklenjenem zaslonu</translation>
 <translation id="6239558157302047471">Znova naloži &amp;okvir</translation>
-<translation id="624022915548992686">Izhodna stran</translation>
 <translation id="6241530762627360640">Dostop do podatkov o napravah Bluetooth, ki so seznanjene z vašim sistemom, in odkrivanje naprav Bluetooth v bližini.</translation>
 <translation id="6243774244933267674">Strežnik ni na voljo</translation>
 <translation id="6246413617632217567">Novega uporabnika ni bilo mogoče uvoziti. Preverite prostor na trdem disku in dovoljenja ter poskusite znova.</translation>
@@ -3397,13 +3350,11 @@
 <translation id="6312403991423642364">Neznana napaka v omrežju</translation>
 <translation id="6313641880021325787">ZAPRI NAVIDEZNO RESNIČNOST</translation>
 <translation id="6314819609899340042">V napravi <ph name="IDS_SHORT_PRODUCT_NAME" /> ste uspešno omogočili funkcije za odpravljanje napak.</translation>
-<translation id="6315343732431721770">Začetne strani so bile spremenjene in vsebujejo <ph name="URL" />. Če želite onemogočiti razširitve, ki spreminjajo začetno stran, kliknite »Obnovi«.</translation>
 <translation id="6315493146179903667">Postavi vse v ospredje</translation>
 <translation id="6316806695097060329">Ta naprava <ph name="SHORT_PRODUCT_NAME" /> je bila zasnovana tako, da vam omogoča čim boljšo uporabo spleta.</translation>
 <translation id="6317318380444133405">Ni več podprto.</translation>
 <translation id="6317369057005134371">Čakanje na okno aplikacije …</translation>
 <translation id="6318407754858604988">Prenos se je začel</translation>
-<translation id="6322279351188361895">Zasebnega ključa ni bilo mogoče prebrati.</translation>
 <translation id="6325191661371220117">Onemogoči samodejni zagon</translation>
 <translation id="6326175484149238433">Odstrani iz Chroma</translation>
 <translation id="6326855256003666642">Štetje ohranjanja dejavnosti</translation>
@@ -3412,7 +3363,6 @@
 <translation id="6333049849394141510">Izberite, kaj želite sinhronizirati</translation>
 <translation id="6333064448949140209">Datoteka bo poslana Googlu zaradi odpravljanja napak</translation>
 <translation id="6333834492048057036">Preklop na naslovno vrstico za iskanje</translation>
-<translation id="6336907568130557310">Gesla bodo vidna vsakomur, ki si lahko ogleda izvoženo datoteko. Datoteke ne delite z nikomer in jo po uvozu izbrišite.</translation>
 <translation id="6339668969738228384">Ustvarjanje novega profila za uporabnika <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Ni se bilo mogoče povezati s strežnikom. Preverite omrežno povezavo in poskusite znova. Če težave ne odpravite, znova zaženite Chromebook.</translation>
 <translation id="6340071272923955280">Internet Printing Protocol (IPPS)</translation>
@@ -3441,7 +3391,6 @@
 <translation id="6385543213911723544">Spletna mesta lahko shranjujejo in berejo podatke piškotkov</translation>
 <translation id="6388771388956873507">Poiščite tipalo prstnih odtisov na napravi in se ga dotaknite s prstom</translation>
 <translation id="6390799748543157332">Strani, ki si jih ogledujete v tem oknu, ne bodo prikazane v zgodovini brskalnika in v računalniku ne bodo pustile drugih sledi, na primer piškotkov, ko boste zaprli vsa odprta okna gostujočih sej. Datoteke, ki jih prenesete, se bodo ohranile.</translation>
-<translation id="6391538222494443604">Obstajati mora imenik vnosa.</translation>
 <translation id="6395423953133416962">Pošlji <ph name="BEGIN_LINK1" />podatke o sistemu<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />meritve<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop Speaking</translation>
 <translation id="6397592254427394018">Vse zaznamke odpri v &amp;oknu brez beleženja zgodovine</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Upravljanje blokiranja za JavaScript ...</translation>
 <translation id="6459488832681039634">Uporabi izbor za iskanje</translation>
 <translation id="6460601847208524483">Poišči naslednje</translation>
-<translation id="6462080265650314920">Aplikacije morajo biti opremljene z vrsto vsebine »<ph name="CONTENT_TYPE" />«.</translation>
 <translation id="6462082050341971451">Ste še vedno z nami?</translation>
 <translation id="6463795194797719782">&amp;Urejanje</translation>
 <translation id="6466988389784393586">&amp;Odpri vse zaznamke</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Ali želite, da Google prevede to stran iz jezika <ph name="SOURCE_LANGUAGE" /> v jezik <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Priključena je kazalna naprava</translation>
-<translation id="6677037229676347494">Pričakovani ID je »<ph name="EXPECTED_ID" />«, toda ID je bil »<ph name="NEW_ID" />«.</translation>
 <translation id="6678717876183468697">URL poizvedbe</translation>
 <translation id="6680028776254050810">Preklopi med uporabniki</translation>
 <translation id="6680442031740878064">Na voljo: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">V <ph name="BEGIN_LINK" />nastavitvah<ph name="END_LINK" /> lahko kadar koli prilagodite, katere podatke zbira Google.</translation>
 <translation id="6904344821472985372">Preklic dostopa do datotek</translation>
 <translation id="6904655473976120856">Pritisnite gumb za aplikacije, če želite zapreti</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> želi dostopati do vašega zaslona.</translation>
-<translation id="6909461304779452601">Aplikacij, razširitev in uporabniških skriptov s tega spletnega mesta ni mogoče dodati.</translation>
 <translation id="6910211073230771657">Izbrisano</translation>
 <translation id="691024665142758461">prenesti več datotek.</translation>
 <translation id="6911324888870229398">Omrežna povezava je bila prekinjena. Preverite povezavo ali poskusite drugo omrežje Wi-Fi.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Napaka: Razširitve ni bilo mogoče dekodirati</translation>
 <translation id="7473891865547856676">Ne, hvala</translation>
 <translation id="747459581954555080">Obnovi vse</translation>
-<translation id="7475034671245341386">Pri vtičniku <ph name="PLUGIN_NAME" /> je prišlo do napake.</translation>
 <translation id="7475671414023905704">Spletni naslov izgubljenega Netscapeovega gesla</translation>
 <translation id="7476454130948140105">Akumulator ima premalo energije za posodobitev (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Če ste pozabili geslo, v <ph name="BEGIN_LINK" />Google Nadzorni plošči<ph name="END_LINK" /> ustavite in ponastavite sinhronizacijo.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Potrdilo odzivnika stanja</translation>
 <translation id="7508545000531937079">Diaprojekcija</translation>
 <translation id="7513029293694390567">Samodejna prijava v spletna mesta s shranjenimi poverilnicami. Ko je to onemogočeno, boste morali potrditi pred vsako prijavo v spletno mesto.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> želi enolično določiti vašo napravo za predvajanje zaščitene vsebine.</translation>
 <translation id="7517569744831774757">Ponastavitev nastavitev na privzete nastavitve.</translation>
 <translation id="7517786267097410259">Ustvarjanje gesla –</translation>
 <translation id="7518150891539970662">Preneseni dnevniki za WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     znova poskušate ustvariti zaščitenega uporabnika.</translation>
 <translation id="756445078718366910">Odpri okno brskalnika</translation>
 <translation id="7564847347806291057">Končaj proces</translation>
-<translation id="7565291891798266313">Iskalnik je bil spremenjen v <ph name="URL" />. Če želite onemogočiti razširitve, ki spremenijo iskalnik, kliknite »Obnovi«.</translation>
 <translation id="7566118625369982896">Upravljanje povezav do aplikacij v Googlu Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chromovi podatki so izbrisani.</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Napolnjenost akumulatorja</translation>
 <translation id="7576032389798113292">6 x 4</translation>
 <translation id="7576690715254076113">Zbiranje kopij</translation>
-<translation id="7577815336900970562">Uporaba omrežja Wi-Fi ali mobilnega omrežja za določanje lokacije</translation>
 <translation id="7579149537961810247">Prezrtje spletnih mest</translation>
 <translation id="7580671184200851182">Predvajaj isti zvok prek vseh zvočnikov (mono zvok)</translation>
 <translation id="7581462281756524039">Orodje za čiščenje</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Shramba seje</translation>
 <translation id="7781335840981796660">Odstranjeni bodo vsi uporabniški računi in lokalni podatki.</translation>
 <translation id="7782102568078991263">Nič več Googlovih predlogov</translation>
+<translation id="778330624322499012">Vtičnika <ph name="PLUGIN_NAME" /> ni bilo mogoče naložiti</translation>
 <translation id="7784067724422331729">Varnostne nastavitve v računalniku so blokirale datoteko.</translation>
 <translation id="7786207843293321886">Zapusti sejo gosta</translation>
 <translation id="7786889348652477777">&amp;Znova naloži aplikacijo</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Spletno mesto vam je morda ukradlo geslo</translation>
 <translation id="8004582292198964060">Brskalnik</translation>
 <translation id="8008356846765065031">Internetna povezava je prekinjena. Preverite povezavo.</translation>
-<translation id="8008765610824028412">Vtičnika <ph name="PLUGIN_NAME" /> ni bilo mogoče naložiti.</translation>
 <translation id="8008818777654712271">Samodejno pošlji nekatere informacije o sistemu in vsebino strani Googlu zaradi hitrejšega zaznavanja nevarnih aplikacij in spletnih mest</translation>
 <translation id="8012382203418782830">Ta stran je bila prevedena.</translation>
 <translation id="8014154204619229810">Orodje za posodabljanje se trenutno izvaja. Osvežite čez minuto in preverite znova.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Upravljajte aplikacije, razširitve in teme</translation>
 <translation id="8191453843330043793">Razreševalnik za proxy mehanizma V8</translation>
 <translation id="8195027750202970175">Velikost na disku</translation>
-<translation id="8195739004487400241">Začetna stran je bila spremenjena v <ph name="URL" />. Če želite onemogočiti razširitve, ki spreminjajo začetno stran, kliknite »Obnovi«.</translation>
 <translation id="8199300056570174101">Nastavitve omrežja (storitve) in naprav</translation>
 <translation id="8200772114523450471">Nadaljuj</translation>
 <translation id="8202160505685531999">Znova vnesite geslo, če želite posodobiti profil v napravi <ph name="DEVICE_TYPE" />.</translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080">Ta razširitev ni navedena v storitvi <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> in je bila morda dodana brez vaše vednosti.</translation>
 <translation id="8261387128019234107">Dodaj račun za <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Izbriši</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ni uvedeno v tej delovni različici.</translation>
 <translation id="8263744495942430914">Stran <ph name="FULLSCREEN_ORIGIN" /> je onemogočila miškin kazalec.</translation>
 <translation id="8264718194193514834">Razširitev »<ph name="EXTENSION_NAME" />« je sprožila celozaslonski način.</translation>
 <translation id="8270242299912238708">Dokumenti PDF</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Izberete lahko tudi novo omrežje:</translation>
 <translation id="845627346958584683">Ura poteka</translation>
 <translation id="8456681095658380701">Neveljavno ime</translation>
+<translation id="8457451314607652708">Uvozi zaznamke</translation>
 <translation id="8460336040822756677">Če izklopite Smart Lock za napravo <ph name="DEVICE_TYPE" />, naprav Chrome ne boste mogli odkleniti s telefonom. Vnesti boste morali geslo.</translation>
 <translation id="8461329675984532579">Ime domačega ponudnika</translation>
 <translation id="84613761564611563">Zahtevan je uporabniški vmesnik za konfiguriranje omrežja, počakajte ...</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Najdena ni bila nobena škodljiva programska oprema</translation>
 <translation id="8512476990829870887">Končaj proces</translation>
 <translation id="851263357009351303">Vedno dovoli mestu <ph name="HOST" />, da pokaže slike</translation>
-<translation id="8513191386157529469">»<ph name="CLIENT_NAME" />« odpravlja napake v brskalniku.</translation>
 <translation id="8521475323816527629">Hiter dostop do aplikacij</translation>
 <translation id="8523493869875972733">Ohranitev sprememb</translation>
 <translation id="8523849605371521713">Dodano s pravilnikom</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Konfiguriranje omrežnih povezav</translation>
 <translation id="8620790565535071193">Iskanje ni uspelo</translation>
 <translation id="8622877356447980900">Ali želite prevesti to stran?</translation>
-<translation id="8623004009673949077">Aplikacijo z atributom manifesta »kiosk_only« je treba namestiti v načinu kioska Chrome OS.</translation>
 <translation id="8624205858755890468">Omogoči Pomočniku, da vam prikazuje sorodne informacije, aplikacije in dejanja.</translation>
 <translation id="862542460444371744">&amp;Razširitve</translation>
 <translation id="8627151598708688654">Izbira vira</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Posodobitev vdelane programske opreme zaradi dodatne varnosti.</translation>
 <translation id="8823514049557262177">&amp;Kopiraj besedilo povezave</translation>
 <translation id="8824701697284169214">Dodaj str&amp;an ...</translation>
-<translation id="8827850355924932817">Uporaba omrežja Wi-Fi za določanje lokacije</translation>
 <translation id="8828933418460119530">Ime DNS</translation>
 <translation id="8830796635868321089">Preverjanje posodobitve s trenutnimi nastavitvami za namestniški strežnik ni uspelo. Prilagodite <ph name="PROXY_SETTINGS_LINK_START" />nastavitve namestniškega strežnika<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Konfiguracijo omrežja nadzira <ph name="USER_EMAIL" />.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Pokaži kot zavihek</translation>
 <translation id="8884961208881553398">Dodaj nove storitve</translation>
 <translation id="8885197664446363138">Smart Lock ni na voljo</translation>
-<translation id="8885905466771744233">Zasebni ključ za navedeno razširitev že obstaja. Uporabite ga znova ali pa ga izbrišite.</translation>
 <translation id="8888432776533519951">Barva:</translation>
-<translation id="8892992092192084762">Nameščena je bila tema »<ph name="THEME_NAME" />«.</translation>
 <translation id="8893928184421379330">Naprave <ph name="DEVICE_LABEL" /> ni bilo mogoče prepoznati.</translation>
 <translation id="8895454554629927345">Seznam zaznamkov</translation>
 <translation id="88986195241502842">Page Down</translation>
@@ -4992,13 +4927,12 @@
 <translation id="8899285681604219177">Nepodprte razširitve so onemogočene</translation>
 <translation id="8899551033019439140">Iskanje tiskalnika ...</translation>
 <translation id="8899851313684471736">Odpri povezavo v novem &amp;oknu</translation>
-<translation id="8902667442496790482">Odpri nastavitve za izbiro za govor</translation>
+<translation id="8902667442496790482">Odpri nastavitve storitve Izberite in poslušajte</translation>
 <translation id="8903921497873541725">Povečaj</translation>
 <translation id="8904976895050290827">Sinhronizacija za Chrome</translation>
 <translation id="8908902564709148335">Opozorilo: v tem računalniku ste omogočili zastavico »--scripts-require-action«, ki omejuje zmožnosti te razširitve. Kljub temu pa druge naprave morda ne podpirajo te zastavice ali je nimajo omogočene. V drugih napravah lahko ta razširitev tudi:</translation>
 <translation id="8910146161325739742">Skupna raba zaslona</translation>
 <translation id="8910222113987937043">Spremembe zaznamkov, zgodovine, gesel in drugih nastavitev se ne bodo več sinhronizirale z Google Računom. Vaši obstoječi podatki bodo kljub temu še naprej shranjeni v Google Računu in jih bo mogoče upravljati na <ph name="BEGIN_LINK" />Google Nadzorni plošči<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google je z zastavico označil razširitev »<ph name="EXTENSION_NAME" />« kot zlonamerno in preprečil namestitev.</translation>
 <translation id="8912793549644936705">Raztegni</translation>
 <translation id="8915370057835397490">Nalaganje predloga</translation>
 <translation id="8916476537757519021">Podokvir za način brez beleženja zgodovine: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Miška USB je povezana</translation>
 <translation id="9076523132036239772">E-poštnega naslova ali gesla žal ni bilo mogoče preveriti. Poskusite se najprej povezati z omrežjem.</translation>
-<translation id="907841381057066561">Pri pripravi paketov ni bilo mogoče ustvariti začasne datoteke zip.</translation>
 <translation id="9084064520949870008">Odpri v oknu</translation>
 <translation id="9088234649737575428">Vtičnik <ph name="PLUGIN_NAME" /> blokira pravilnik podjetja</translation>
 <translation id="9088917181875854783">Potrdite, da je geslo prikazano v napravi »<ph name="DEVICE_NAME" />«:</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Vnesite geslo</translation>
 <translation id="939736085109172342">Nova mapa</translation>
-<translation id="941543339607623937">Neveljaven zasebni ključ.</translation>
 <translation id="942532530371314860">Aplikacija <ph name="APP_NAME" /> je v skupno rabo dala zavihek v Chromu in zvok.</translation>
 <translation id="942954117721265519">V tem imeniku ni slik.</translation>
 <translation id="945522503751344254">Pošlji povratne informacije</translation>
-<translation id="951981865514037445"><ph name="URL" /> želi uporabljati lokacijo vaše naprave.</translation>
 <translation id="952992212772159698">Ni aktivirano</translation>
 <translation id="9580706199804957">Ni se bilo mogoče povezati z Googlovimi storitvami</translation>
 <translation id="958515377357646513">Dotaknite se za nadaljevanje.</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 5720133..44bd97c 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Само шифруј</translation>
 <translation id="1039337018183941703">Неважећа или оштећена датотека</translation>
 <translation id="1042174272890264476">Уз рачунар такође добијате уграђену RLZ библиотеку производа <ph name="SHORT_PRODUCT_NAME" />. RLZ додељује нејединствену ознаку помоћу које вас није могуће лично идентификовати да би измерио претраге и коришћење производа <ph name="SHORT_PRODUCT_NAME" /> који су подстакнути одређеном промотивном кампањом. Те ознаке се понекад приказују у упитима Google претраге у производу <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> жели трајно да складишти велике количине података на уређају.</translation>
 <translation id="1046059554679513793">Упс, овај назив се већ користи!</translation>
 <translation id="1047431265488717055">Копирај тек&amp;ст линка</translation>
 <translation id="1047726139967079566">Обележи ову страницу...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Желите да вратите подразумевани претраживач?</translation>
 <translation id="1177863135347784049">Прилагођено</translation>
 <translation id="1178581264944972037">Паузирај</translation>
-<translation id="1179803038870941185"><ph name="URL" /> жели да у потпуности контролише MIDI уређаје.</translation>
 <translation id="1181037720776840403">Уклони</translation>
 <translation id="1183237619868651138">Није успело инсталирање датотеке <ph name="EXTERNAL_CRX_FILE" /> у локалном кешу.</translation>
 <translation id="1185924365081634987">Можете да покушате и да <ph name="GUEST_SIGNIN_LINK_START" />прегледате као гост<ph name="GUEST_SIGNIN_LINK_END" /> да бисте исправили ову грешку на мрежи.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Приступ датотеци сачуваној на рачунару}one{Приступ # датотеци сачуваној на рачунару}few{Приступ за # датотеке сачуване на рачунару}other{Приступ за # датотека сачуваних на рачунару}}</translation>
 <translation id="1195076408729068893">Да бисте покренули Smart Lock, унесите лозинку. Следећи пут можете да откључате <ph name="DEVICE_TYPE" /> помоћу телефона.</translation>
 <translation id="1195447618553298278">Непозната грешка.</translation>
-<translation id="1196338895211115272">Извоз приватног кључа није успео.</translation>
 <translation id="119738088725604856">Прозор снимка екрана</translation>
 <translation id="1197979282329025000">Дошло је до грешке при преузимању могућности за штампач <ph name="PRINTER_NAME" />. Тај штампач није било могуће регистровати помоћу <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Да почнемо</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Администратор препоручује одређену вредност за ово подешавање.</translation>
 <translation id="1225177025209879837">Обрада захтева...</translation>
 <translation id="1225211345201532184">5. ставка на полици</translation>
-<translation id="1225404570112441414">Додајте овај сајт на полицу да бисте га користили у било ком тренутку.</translation>
 <translation id="1227507814927581609">Потврда аутентичности током повезивања са „<ph name="DEVICE_NAME" />“ није успела.</translation>
 <translation id="1230807973377071856">системски мени</translation>
 <translation id="1232569758102978740">Ненасловљено</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML датотека са обележивачима</translation>
 <translation id="1303671224831497365">Није пронађен ниједан Bluetooth уређај</translation>
 <translation id="1306606229401759371">Промени подешавања</translation>
-<translation id="1307398858972670978">Приступајте лозинкама са било ког уређаја на <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Упс! Систем није успео да сачува ознаку дугорочног приступа API-ју за овај уређај.</translation>
 <translation id="1313405956111467313">Аутоматска конфигурација проксија</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Претражи</translation>
 <translation id="1386387014181100145">Здраво.</translation>
 <translation id="138784436342154190">Желите да вратите подразумевану полазну страницу?</translation>
-<translation id="1389297115360905376">Ово може да се дода само из услуге <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Отвори као уобичајену картицу</translation>
-<translation id="1391807639023934267">Брже је учитана страница.</translation>
 <translation id="1393283411312835250">Сунце и облаци</translation>
 <translation id="1395262318152388157">Клизач за тражење</translation>
 <translation id="1395730723686586365">Програм за ажурирање је покренут</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Ажурирате на нестабилну верзију <ph name="PRODUCT_NAME" />-а која садржи функције које су у фази развоја. Доћи ће до отказивања и неочекиваних грешака. Наставите опрезно.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ИД додатка „<ph name="EXTENSION_ID" />“) није дозвољен у овом типу сесије.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Генерисање насумичног RSA приватног кључа није успело.</translation>
 <translation id="1420834118113404499">Лиценце за медије</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> да бисте омогућили упаривање</translation>
 <translation id="1426410128494586442">Да</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">К&amp;опирај адресу аудио садржаја</translation>
 <translation id="1465827627707997754">Парче пице</translation>
 <translation id="1467432559032391204">Улево</translation>
-<translation id="1467999917853307373"><ph name="URL" /> жели да трајно складишти податке на уређају.</translation>
-<translation id="1470719357688513792">Ново подешавање колачића биће примењено након поновног учитавања странице.</translation>
 <translation id="1470811252759861213">Да би вам додаци били доступни на свим рачунарима, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Датотека „<ph name="FILENAME" />“ није отпремљена. Није било довољно слободног места на Google диску.</translation>
 <translation id="1475502736924165259">На датотеци има сертификата који се не уклапају ни у једну другу категорију</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">Велики курсор</translation>
 <translation id="1543284117603151572">Увезени из Edge-а</translation>
 <translation id="1545177026077493356">Аутоматски режим киоска</translation>
+<translation id="1545775234664667895">Инсталирана је тема „<ph name="THEME_NAME" />“</translation>
 <translation id="1545786162090505744">URL са %s уместо упита</translation>
 <translation id="1546280085599573572">Овај додатак је променио страницу која се приказује када кликнете на дугме Почетна.</translation>
 <translation id="1547572086206517271">Треба да освежите</translation>
@@ -440,11 +431,9 @@
     <ph name="BEGIN_BOLD" />да прегледате<ph name="END_BOLD" /> веб-сајтове које је корисник под надзором посетио и
     <ph name="BEGIN_BOLD" />да управљате<ph name="END_BOLD" /> другим подешавањима.</translation>
 <translation id="1648943974594387137">Детаљи за пријављивање су застарели</translation>
-<translation id="1649641629389702691">&lt;Неки редови се не приказују (<ph name="LINE_COUNT" />)&gt;</translation>
 <translation id="1650371550981945235">Приказуј опције уноса</translation>
 <translation id="1650709179466243265">Додавање www. и .com и отварање адресе</translation>
 <translation id="1651008383952180276">Двапут треба да унесете исту приступну фразу</translation>
-<translation id="1652972346408808053">Лозинка је сачувана. Приступајте лозинкама са било ког уређаја на <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Додајте штампач у Google Cloud штампање да бисте могли да штампате било где.}one{Додајте # штампач у Google Cloud штампање да бисте могли да штампате било где.}few{Додајте # штампача у Google Cloud штампање да бисте могли да штампате било где.}other{Додајте # штампача у Google Cloud штампање да бисте могли да штампате било где.}}</translation>
 <translation id="1657406563541664238">Помозите унапређивање <ph name="PRODUCT_NAME" /> прегледача тако што ћете аутоматски слати Google-у статистику коришћења и извештаје о отказивању</translation>
 <translation id="1658424621194652532">Ова страница приступа микрофону.</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">Настави са блокирањем колачића</translation>
 <translation id="204622017488417136">Уређај ће бити враћен на претходно инсталирану верзију Chrome-а. Сви кориснички налози и локални подаци ће бити уклоњени. Ова радња не може да се опозове.</translation>
 <translation id="2048182445208425546">Приступ мрежном саобраћају</translation>
-<translation id="2049137146490122801">Приступ локалним датотекама на вашем уређају је онемогућио администратор.</translation>
 <translation id="204914487372604757">Направи пречицу</translation>
 <translation id="2050339315714019657">Вертикално</translation>
 <translation id="2053312383184521053">Подаци о стању мировања</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Још увек није учитан</translation>
 <translation id="2107494551712864447">Додајте отисак прста</translation>
-<translation id="2111843886872897694">Апликације морају да се приказују са хоста на који утичу.</translation>
 <translation id="2112877397266219826">Укључите додирни контролер да бисте ме подесили</translation>
 <translation id="21133533946938348">Закачи картицу</translation>
 <translation id="2113479184312716848">Open &amp;File... (Отвори датотеку)</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">Реците нам шта се дешава</translation>
 <translation id="2229161054156947610">Остало је више од сат времена</translation>
 <translation id="222931766245975952">Датотека је скраћена</translation>
-<translation id="222949136907494149"><ph name="URL" /> жели да користи локацију рачунара.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Није могуће направити директоријум „<ph name="FOLDER_NAME" />“. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Кликните да бисте видели данашњи дудл логотип</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">Увек блокирај приступ микрофону</translation>
 <translation id="2367972762794486313">Прикажите апликације</translation>
 <translation id="2371076942591664043">Отвори кад буде &amp;довршено</translation>
-<translation id="237336063998926520">Коришћење IP адресе за одређивање локације</translation>
 <translation id="2377319039870049694">Пређи на приказ листе</translation>
 <translation id="2377667304966270281">Грешке у вези са хард-диском</translation>
 <translation id="2378075407703503998">Изабраних датотека: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> жели да копира датотеке са <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ИД кључа ауторитета за издавање сертификата</translation>
 <translation id="2462752602710430187">Додато је: <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Увези обележиваче</translation>
 <translation id="2464089476039395325">HTTP прокси</translation>
 <translation id="2468902267404883140">Не можемо да се повежемо са телефоном. Проверите да ли користите компатибилни и укључени Android телефон који је у близини. &lt;a&gt;Сазнајте више&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Неподржани додаци су онемогућени</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">Деинсталирај</translation>
 <translation id="2487067538648443797">Додај нови обележивач</translation>
 <translation id="248861575772995840">Не можемо да пронађемо телефон. Проверите да ли је на <ph name="DEVICE_TYPE" />-у укључен Bluetooth. &lt;a&gt;Сазнајте више&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Додатна компонента (<ph name="PLUGIN_NAME" />) не реагује.</translation>
 <translation id="2489428929217601177">прошли дан</translation>
 <translation id="2489918096470125693">Додај &amp;директоријум...</translation>
 <translation id="249113932447298600">Жао нам је, уређај <ph name="DEVICE_LABEL" /> тренутно није подржан.</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">Честитамо! Услуга преноса података „<ph name="NAME" />“ је активирана и спремна за коришћење.</translation>
 <translation id="2566124945717127842">Powerwash ресетује <ph name="IDS_SHORT_PRODUCT_NAME" /> уређај да би био као нов.</translation>
 <translation id="2568774940984945469">Контејнер траке са информацијама</translation>
-<translation id="2570000010887652771">Сачувани подаци.</translation>
 <translation id="257088987046510401">Теме</translation>
 <translation id="2572032849266859634">Одобрен је приступ за <ph name="VOLUME_NAME" /> само за читање.</translation>
 <translation id="2573269395582837871">Изаберите слику и име</translation>
 <translation id="2575247648642144396">Ова икона ће бити видљива када додатак буде могао да функционише на тренутној страници. Користите овај додатак кликом на икону или притиском на <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Не можемо да пронађемо телефон. Проверите да ли је <ph name="DEVICE_TYPE" /> повезан са Wi-Fi или мобилном мрежом. &lt;a&gt;Сазнајте више&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Већ постоји CRX датотека са овим називом.</translation>
 <translation id="257779572837908839">Подеси као Chromebox за састанке</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Искључивање додатка за јачину звука није успело<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">Ако избришете сертификат ауторитета за издавање сертификата, прегледач више неће веровати сертификатима које је тај ауторитет издао.</translation>
 <translation id="2653659639078652383">Пошаљи</translation>
 <translation id="265390580714150011">Вредност поља</translation>
-<translation id="2654286334048437383">Извези обележиваче</translation>
 <translation id="2655386581175833247">Сертификат корисника:</translation>
 <translation id="2660779039299703961">Догађај</translation>
 <translation id="2661146741306740526">16×9</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">Додавање галерије медија према директоријуму</translation>
 <translation id="2908789530129661844">Умањивање екрана</translation>
 <translation id="2910318910161511225">Повежите се на мрежу и пробајте поново</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> жели да користи микрофон.</translation>
 <translation id="2913331724188855103">Дозволи сајтовима да чувају и читају податке колачића (препоручује се)</translation>
 <translation id="2916073183900451334">Притиском на Tab на веб страници биће истакнуте везе, као и поља у обрасцу</translation>
 <translation id="2916745397441987255">Претражите додатке</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">Слуша се...</translation>
 <translation id="3141917231319778873">Дати захтев није подржан на: „<ph name="DEVICE_NAME" />“.</translation>
 <translation id="3144126448740580210">ГОТОВО</translation>
-<translation id="3144135466825225871">Замена crx датотеке није успела. Проверите да ли се датотека користи.</translation>
 <translation id="3144647712221361880">Отворите линк као</translation>
 <translation id="3149510190863420837">Chrome апликације</translation>
 <translation id="3150927491400159470">Поново учитај са сервера</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">Увек покрећи на свим сајтовима</translation>
 <translation id="3312424061798279731">Омогућени језици</translation>
 <translation id="3312903956926554846">Инсталирај на радну површину</translation>
-<translation id="3313473140726597081">Полазна страница је промењена у <ph name="URL" />. Да бисте онемогућили додатке који мењају полазну страницу, кликните на Врати.</translation>
 <translation id="3313590242757056087">Да бисте подесили које веб-сајтове може да прегледа корисник под надзором, можете да конфигуришете ограничења
     и подешавања тако што ћете посетити <ph name="MANAGEMENT_URL" />.
     Ако не промените подразумевана подешавања, <ph name="USER_DISPLAY_NAME" />
@@ -1537,7 +1514,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Информације о апликацији</translation>
 <translation id="3335947283844343239">Поново отвори затворену картицу</translation>
-<translation id="3337069537196930048">Додатна компонента <ph name="PLUGIN_NAME" /> је блокирана јер је застарела.</translation>
 <translation id="3340978935015468852">подешавања</translation>
 <translation id="3341703758641437857">Дозволи приступ URL адресама датотека</translation>
 <translation id="3342361181740736773">„<ph name="TRIGGERING_EXTENSION_NAME" />“ жели да уклони овај додатак.</translation>
@@ -1572,7 +1548,6 @@
 <translation id="3386219708421216619">Обележивач је додат</translation>
 <translation id="3389312115541230716">Кликните десним тастером на икону <ph name="SMALL_PRODUCT_LOGO" /> на траци задатака</translation>
 <translation id="3391716558283801616">7. картица</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> жели да користи камеру и микрофон.</translation>
 <translation id="3396331542604645348">Изабрани штампач није доступан или није правилно инсталиран. Проверите штампач или покушајте да изаберете неки други.</translation>
 <translation id="3399432415385675819">Обавештења ће бити онемогућена</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1684,10 +1659,8 @@
 <translation id="3550915441744863158">Chrome се аутоматски ажурира, па увек имате најновију верзију</translation>
 <translation id="3551320343578183772">Затвори картицу</translation>
 <translation id="3552780134252864554">Брише се на излазу</translation>
-<translation id="355298399003313926"><ph name="URL" /> жели да одговара на догађаје приступачности.</translation>
 <translation id="3555812735919707620">Уклони додатак</translation>
 <translation id="3556000484321257665">Претраживач је промењен у <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Улазна вредност приватног кључа мора бити важећа путања.</translation>
 <translation id="3563432852173030730">Није могуће преузети киоск апликацију.</translation>
 <translation id="3564334271939054422">Wi-Fi мрежа коју користите (<ph name="NETWORK_ID" />) ће можда захтевати да посетите страницу за пријављивање.</translation>
 <translation id="3564708465992574908">Нивои зумирања</translation>
@@ -1709,7 +1682,6 @@
 <translation id="3593965109698325041">Ограничења назива сертификата </translation>
 <translation id="3596235046596950091">Омогући клауд услуге</translation>
 <translation id="3599863153486145794">Брише историју са свих уређаја на којима сте пријављени. Google налог може да има друге облике историје прегледања на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Администратор је онемогућио приступ локалним датотекама на уређају.</translation>
 <translation id="3600792891314830896">Искључи звук сајтова који пуштају звук</translation>
 <translation id="3603177256297531067">Превођење ове странице није успело</translation>
 <translation id="3603533104205588786">Можете да обележите страницу кликом на звездицу</translation>
@@ -1734,7 +1706,6 @@
 <translation id="3625258641415618104">Снимци екрана су онемогућени</translation>
 <translation id="3625870480639975468">Враћање зума на почетне вредности</translation>
 <translation id="3626281679859535460">Осветљеност</translation>
-<translation id="3627052133907344175">Додатак захтева „<ph name="IMPORT_NAME" />“ чија је најстарија верзија „<ph name="IMPORT_VERSION" />“, али инсталирана је само верзија „<ph name="INSTALLED_VERSION" />“.</translation>
 <translation id="3627320433825461852">Остало је мање од 1 минута</translation>
 <translation id="3627588569887975815">Отвори везу у прозору без архивирања</translation>
 <translation id="3627671146180677314">Време за обнову Netscape сертификата</translation>
@@ -1764,7 +1735,6 @@
 <translation id="3668570675727296296">Подешавања језика</translation>
 <translation id="3668823961463113931">Обрађивачи</translation>
 <translation id="3670229581627177274">Укључи Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> жели да трајно складишти велику количину података на локалном рачунару.</translation>
 <translation id="3672681487849735243">Откривена је фабричка грешка</translation>
 <translation id="367645871420407123">оставите празно ако желите да подесите основну лозинку на подразумевану вредност слике за тестирање</translation>
 <translation id="3678156199662914018">Додатак: <ph name="EXTENSION_NAME" /></translation>
@@ -1842,11 +1812,9 @@
 <translation id="3786301125658655746">Офлајн сте</translation>
 <translation id="3788401245189148511">Могли би да:</translation>
 <translation id="3789841737615482174">Инсталирај</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> функционише само на рачунару.</translation>
 <translation id="379082410132524484">Картица је истекла</translation>
 <translation id="3792890930871100565">Прекини везу са штампачима</translation>
 <translation id="379422718204375917">Користите Smart Lock да бисте се пријавили на налог</translation>
-<translation id="3794595850995182458">Затвори страницу</translation>
 <translation id="3796648294839530037">Омиљене мреже:</translation>
 <translation id="3797900183766075808">&amp;Претражи „<ph name="SEARCH_TERMS" />“ на претраживачу <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">Омогућавају вам да омогућите/онемогућите функцију Додирни за клик</translation>
@@ -1977,7 +1945,6 @@
 <translation id="3979748722126423326">Омогући <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Унет је неважећи тип за чување.</translation>
 <translation id="3983586614702900908">уређаји непознатог продавца</translation>
-<translation id="3984413272403535372">Дошло је до грешке приликом потписивања додатка.</translation>
 <translation id="3987938432087324095">Жао нам је, нисмо вас чули.</translation>
 <translation id="3988996860813292272">Изаберите временску зону</translation>
 <translation id="3989635538409502728">Одјави ме</translation>
@@ -2033,7 +2000,6 @@
 <translation id="4087470595660267445">Инсталирајте апликације и игре са Google Play-а на Chromebook-у. &lt;a target="_blank" href="<ph name="URL" />"&gt;Сазнајте више&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Прихвати за групу</translation>
 <translation id="4090103403438682346">Омогућите верификовани приступ</translation>
-<translation id="4090404313667273475">Потребна је додатна компонента <ph name="PLUGIN_NAME" /> да би се приказали неки елементи на овој страници.</translation>
 <translation id="4090535558450035482">(Овим додатком неко управља и не можете да га уклоните.)</translation>
 <translation id="4091434297613116013">листови папира</translation>
 <translation id="4093955363990068916">Локална датотека:</translation>
@@ -2367,7 +2333,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> сада може да синхронизује лозинке.</translation>
 <translation id="4715553623069266137">веома кратко (0,8 с)</translation>
 <translation id="4716483597559580346">Powerwash ради веће безбедности</translation>
-<translation id="471800408830181311">Формирање излазних резултата приватног кључа није успело.</translation>
 <translation id="4720113199587244118">Додај уређаје</translation>
 <translation id="4720185134442950733">Мобилна мрежа за пренос података</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> дели екран.</translation>
@@ -2504,7 +2469,6 @@
 <translation id="4917385247580444890">Јак</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> жели да комуницира са додатком „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="4918086044614829423">Прихвати</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> жели да користи камеру.</translation>
 <translation id="4920887663447894854">Следећим сајтовима је онемогућено праћење ваше локације на овој страници:</translation>
 <translation id="492299503953721473">Уклони Android апликације</translation>
 <translation id="4923279099980110923">Да, желим да помогнем</translation>
@@ -2545,7 +2509,6 @@
 <translation id="4980805016576257426">Овај додатак садржи малвер.</translation>
 <translation id="498294082491145744">Промените подешавања која контролишу приступ веб-сајтова функцијама попут колачића, JavaScript-а, додатних компонената, географске локације, микрофона, камере итд.</translation>
 <translation id="4988526792673242964">Странице</translation>
-<translation id="4988792151665380515">Извоз јавног кључа није успео.</translation>
 <translation id="49896407730300355">Окрећи у с&amp;меру супротном од кретања казаљке на сату</translation>
 <translation id="4989966318180235467">Провери страницу &amp;позадине</translation>
 <translation id="4990343175649730969">Преузми Алатку за чишћење Chrome-а</translation>
@@ -2574,7 +2537,6 @@
 <translation id="5026874946691314267">Не приказуј ово поново</translation>
 <translation id="5027550639139316293">Сертификат за е-пошту</translation>
 <translation id="5027562294707732951">Додај додатак</translation>
-<translation id="5028012205542821824">Инсталација није омогућена.</translation>
 <translation id="5029568752722684782">Обриши копију</translation>
 <translation id="5030338702439866405">Издао/ла</translation>
 <translation id="5036662165765606524">Не дозволи ниједном сајту да аутоматски преузима више датотека</translation>
@@ -2610,7 +2572,6 @@
 <translation id="509429900233858213">Дошло је до грешке.</translation>
 <translation id="5094721898978802975">Комуникација са основним апликацијама за сарадњу</translation>
 <translation id="5097002363526479830">Повезивање са мрежом „<ph name="NAME" />“ није успело: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Није могуће пронаћи апсолутну путању до директоријума за паковање.</translation>
 <translation id="5099354524039520280">нагоре</translation>
 <translation id="5100114659116077956">Да бисмо вам омогућили најновије функције, Chromebox треба да се ажурира.</translation>
 <translation id="5101042277149003567">Отвори све обележиваче</translation>
@@ -2659,7 +2620,6 @@
 <translation id="5170568018924773124">Прикажи у директоријуму</translation>
 <translation id="5171045022955879922">Претражите или унесите URL адресу</translation>
 <translation id="5171343362375269016">Замењена меморија</translation>
-<translation id="5175870427301879686"><ph name="URL" /> жели трајно да чува податке на локалном рачунару.</translation>
 <translation id="5177479852722101802">Настави да блокираш приступ камери и микрофону</translation>
 <translation id="5177526793333269655">Приказ сличица</translation>
 <translation id="5177549709747445269">Користите податке на мрежи оператера</translation>
@@ -2738,7 +2698,6 @@
 <translation id="529175790091471945">Форматирај овај уређај</translation>
 <translation id="5293170712604732402">Вратите подешавања на првобитне подразумеване вредности</translation>
 <translation id="5298219193514155779">Тему је направио/ла</translation>
-<translation id="5298363578196989456">Није могуће увести додатак „<ph name="IMPORT_NAME" />“ јер није дељени модул.</translation>
 <translation id="5299109548848736476">Не прати</translation>
 <translation id="5299682071747318445">Сви подаци се шифрују помоћу приступне фразе за синхронизацију</translation>
 <translation id="5300589172476337783">Прикажи</translation>
@@ -2766,7 +2725,6 @@
 <translation id="5331425616433531170">„<ph name="CHROME_EXTENSION_NAME" />“ жели да се упари</translation>
 <translation id="5332624210073556029">Временска зона:</translation>
 <translation id="5334142896108694079">Кеш скрипте</translation>
-<translation id="533433379391851622">Очекивана је верзија „<ph name="EXPECTED_VERSION" />“, али наведена је верзија „<ph name="NEW_ID" />“.</translation>
 <translation id="5334844597069022743">Приказ извора</translation>
 <translation id="5335458522276292100">Праве се резервне копије (<ph name="FILE_COUNT" />) на <ph name="BEGIN_LINK" />Google диску<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Инсталирала трећа страна.</translation>
@@ -2804,7 +2762,6 @@
 <translation id="5390100381392048184">Дозволи сајтовима да пуштају звук</translation>
 <translation id="5390284375844109566">Индексирана база података</translation>
 <translation id="5390743329570580756">Пошаљи за:</translation>
-<translation id="5396126354477659676">Додатна компонента <ph name="PEPPER_PLUGIN_NAME" /> на домену <ph name="PEPPER_PLUGIN_DOMAIN" /> жели да приступи рачунару.</translation>
 <translation id="5397794290049113714">Ви</translation>
 <translation id="5398572795982417028">Превелика референца за странице, ограничење је <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Огласи су блокирани</translation>
@@ -2866,7 +2823,6 @@
 <translation id="5485754497697573575">Врати све картице</translation>
 <translation id="5486261815000869482">Потврдите лозинку</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> дели екран са <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Улазна вредност приватног кључа мора да постоји.</translation>
 <translation id="5486561344817861625">Симулирај поновно покретање прегледача</translation>
 <translation id="5487521232677179737">Обриши податке</translation>
 <translation id="5488093641312826914">Ставка „<ph name="COPIED_ITEM_NAME" />“ је копирана</translation>
@@ -2949,7 +2905,6 @@
 <translation id="5600706100022181951">Ажурирање ће се преузети уз употребу <ph name="UPDATE_SIZE_MB" /> MB мобилних података. Желите ли да наставите?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Остали претраживачи</translation>
-<translation id="5606674617204776232">Додатна компонента <ph name="PEPPER_PLUGIN_NAME" /> на домену <ph name="PEPPER_PLUGIN_DOMAIN" /> жели да приступи уређају.</translation>
 <translation id="5608580678041221894">Додирните следеће тастере да бисте прилагодили или преместили област опсецања</translation>
 <translation id="5609231933459083978">Изгледа да је апликација неважећа.</translation>
 <translation id="5610038042047936818">Пребаци на режим камере</translation>
@@ -3194,7 +3149,6 @@
 <translation id="5990386583461751448">Преведено</translation>
 <translation id="5991049340509704927">Увећање приказа</translation>
 <translation id="5993332328670040093">Коришћење података се више неће мерити.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> можда неће моћи да се ажурира.</translation>
 <translation id="600424552813877586">Неважећа апликација.</translation>
 <translation id="6005695835120147974">Рутер за медије</translation>
 <translation id="6006484371116297560">Класична</translation>
@@ -3219,6 +3173,7 @@
 <translation id="604001903249547235">Прављење резервних копија у клауду</translation>
 <translation id="6040143037577758943">Затвори</translation>
 <translation id="6040852767465482106">Непознати идентитет</translation>
+<translation id="6041155700700864984">Изађи из целог екрана</translation>
 <translation id="604124094241169006">Аутоматски</translation>
 <translation id="6042169520002885235">Изаберите произвођача и модел штампача</translation>
 <translation id="6042308850641462728">Више</translation>
@@ -3235,7 +3190,6 @@
 <translation id="6056710589053485679">Поново учитај нормално</translation>
 <translation id="6059652578941944813">Хијерархија сертификата</translation>
 <translation id="6059925163896151826">USB уређаји</translation>
-<translation id="6060435378291459521">Додатна компонента <ph name="PLUGIN_NAME" /> је отказала.</translation>
 <translation id="6064217302520318294">Закључавање екрана</translation>
 <translation id="6065289257230303064">Атрибути каталога субјеката сертификата</translation>
 <translation id="6068338049763724728">Омогући даљинску регистрацију</translation>
@@ -3344,7 +3298,6 @@
 <translation id="6237816943013845465">Омогућавају вам да прилагодите резолуцију екрана</translation>
 <translation id="6238923052227198598">Задржи најновију белешку на закључаном екрану</translation>
 <translation id="6239558157302047471">Поново учитај &amp;оквир</translation>
-<translation id="624022915548992686">Затвори страницу</translation>
 <translation id="6241530762627360640">Приступање информацијама о Bluetooth уређајима упареним са вашим системом и откривање оближњих Bluetooth уређаја.</translation>
 <translation id="6243774244933267674">Сервер је недоступан</translation>
 <translation id="6246413617632217567">Није могуће увести корисника под надзором. Проверите простор на хард-диску и дозволе и покушајте поново.</translation>
@@ -3393,13 +3346,11 @@
 <translation id="6312403991423642364">Непозната грешка на мрежи</translation>
 <translation id="6313641880021325787">ИЗАЂИ ИЗ ВР-А</translation>
 <translation id="6314819609899340042">Омогућили сте функције за отклањање грешака на овом <ph name="IDS_SHORT_PRODUCT_NAME" /> уређају.</translation>
-<translation id="6315343732431721770">Полазне странице су промењене, па сада обухватају <ph name="URL" />. Да бисте онемогућили додатке који мењају полазну страницу, кликните на Врати.</translation>
 <translation id="6315493146179903667">Премести све напред</translation>
 <translation id="6316806695097060329">Овај <ph name="SHORT_PRODUCT_NAME" /> уређај је направљен да вам пружи најбољи доживљај веба.</translation>
 <translation id="6317318380444133405">Није више подржан.</translation>
 <translation id="6317369057005134371">Чека се прозор апликације...</translation>
 <translation id="6318407754858604988">Преузимање је започето</translation>
-<translation id="6322279351188361895">Читање приватног кључа није успело.</translation>
 <translation id="6325191661371220117">Онемогући аутоматско покретање</translation>
 <translation id="6326175484149238433">Уклони из Chrome-а</translation>
 <translation id="6326855256003666642">Број keepalive сигнала</translation>
@@ -3408,7 +3359,6 @@
 <translation id="6333049849394141510">Изаберите ставке за синхронизацију</translation>
 <translation id="6333064448949140209">Датотека ће бити послата Google-у ради отклањања грешака</translation>
 <translation id="6333834492048057036">Фокус на траци за адресу за претрагу</translation>
-<translation id="6336907568130557310">Лозинке ће бити видљиве свима који могу да виде извезену датотеку. Не делите датотеку ни са ким и избришите је после увоза.</translation>
 <translation id="6339668969738228384">Отвори нови профил за <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Повезивање са сервером није успело. Проверите мрежну везу и пробајте поново касније. Ако се проблем настави, рестартујте Chromebook.</translation>
 <translation id="6340071272923955280">Интернет протокол за штампање (IPPS)</translation>
@@ -3437,7 +3387,6 @@
 <translation id="6385543213911723544">Сајтови могу да чувају и читају податке колачића</translation>
 <translation id="6388771388956873507">Пронађите сензор за отисак прста на уређају и додирните га прстом</translation>
 <translation id="6390799748543157332">Странице које видите у овом прозору се неће појављивати у историји прегледача и неће остављати друге трагове, попут колачића, на рачунару када затворите све отворене прозоре режима госта. Међутим, све датотеке које преузмете ће бити сачуване.</translation>
-<translation id="6391538222494443604">Улазни каталог мора да постоји.</translation>
 <translation id="6395423953133416962">Шаљи <ph name="BEGIN_LINK1" />информације<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />показатеље<ph name="END_LINK2" /> о систему</translation>
 <translation id="6397363302884558537">Престаните да говорите</translation>
 <translation id="6397592254427394018">Отвори све обележиваче у &amp;прозору без архивирања</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">Управљај блокирањем JavaScript-а...</translation>
 <translation id="6459488832681039634">Користи избор за проналажење</translation>
 <translation id="6460601847208524483">Пронађи следеће</translation>
-<translation id="6462080265650314920">Апликације морају да се приказују са типом садржаја „<ph name="CONTENT_TYPE" />“.</translation>
 <translation id="6462082050341971451">Јесте ли још ту?</translation>
 <translation id="6463795194797719782">&amp;Измени</translation>
 <translation id="6466988389784393586">&amp;Отвори све обележиваче</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Желите ли да Google преведе ову страницу са језика <ph name="SOURCE_LANGUAGE" /> на <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Показивачки уређај је повезан</translation>
-<translation id="6677037229676347494">Очекивани ИД је „<ph name="EXPECTED_ID" />“, али наведен је ИД „<ph name="NEW_ID" />“.</translation>
 <translation id="6678717876183468697">URL упита</translation>
 <translation id="6680028776254050810">Промена корисника</translation>
 <translation id="6680442031740878064">Доступно: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">Можете у сваком тренутку да прилагодите које информације Google прикупља у <ph name="BEGIN_LINK" />Подешавањима<ph name="END_LINK" />.</translation>
 <translation id="6904344821472985372">Опозови приступ датотекама</translation>
 <translation id="6904655473976120856">Притисните дугме за апликацију да бисте изашли</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> жели да дели ваш екран.</translation>
-<translation id="6909461304779452601">Апликације, додаци и скрипте корисника не могу да се додају са овог веб-сајта.</translation>
 <translation id="6910211073230771657">Избрисано</translation>
 <translation id="691024665142758461">да преузме више датотека</translation>
 <translation id="6911324888870229398">Мрежна веза је изгубљена. Проверите везу или пробајте са другом Wi-Fi мрежом.</translation>
@@ -4096,7 +4041,6 @@
 <translation id="747114903913869239">Грешка: Није могуће дешифровати додатак</translation>
 <translation id="7473891865547856676">Не, хвала</translation>
 <translation id="747459581954555080">Врати све</translation>
-<translation id="7475034671245341386">Додатна компонента <ph name="PLUGIN_NAME" /> је наишла на грешку.</translation>
 <translation id="7475671414023905704">Netscape URL адреса за изгубљену лозинку</translation>
 <translation id="7476454130948140105">Ниво напуњености батерије је пренизак за ажурирање (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Ако сте заборавили приступну фразу, зауставите и поново поставите Синхронизацију преко <ph name="BEGIN_LINK" />Google контролне табле<ph name="END_LINK" />.</translation>
@@ -4133,7 +4077,6 @@
 <translation id="7507930499305566459">Сертификат за одзивник статуса</translation>
 <translation id="7508545000531937079">Пројекција слајдова</translation>
 <translation id="7513029293694390567">Аутоматски се пријављујте на веб-сајтове помоћу сачуваних акредитива. Када је ова функција онемогућена, тражићемо потврду пре сваког пријављивања на веб-сајт.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> жели да јединствено идентификује уређај да би пуштао заштићени садржај.</translation>
 <translation id="7517569744831774757">Вратите подешавања на првобитне подразумеване вредности.</translation>
 <translation id="7517786267097410259">Прављење лозинке –</translation>
 <translation id="7518150891539970662">WebRTC евиденције (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4163,7 +4106,6 @@
     покушате поново да направите корисника под надзором.</translation>
 <translation id="756445078718366910">Отвори прозор прегледача</translation>
 <translation id="7564847347806291057">Заврши процес</translation>
-<translation id="7565291891798266313">Претраживач је промењен у <ph name="URL" />. Да бисте онемогућили додатке који мењају претраживач, кликните на Врати.</translation>
 <translation id="7566118625369982896">Управљајте линковима апликације Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome подаци су обрисани</translation>
@@ -4172,7 +4114,6 @@
 <translation id="7573172247376861652">Напуњеност батерије</translation>
 <translation id="7576032389798113292">6×4</translation>
 <translation id="7576690715254076113">Упари</translation>
-<translation id="7577815336900970562">Користи Wi-Fi или мобилну мрежу за одређивање локације</translation>
 <translation id="7579149537961810247">Искључи звук сајтова</translation>
 <translation id="7580671184200851182">Пуштај исти звук на свим звучницима (моно звук)</translation>
 <translation id="7581462281756524039">Алатка за чишћење</translation>
@@ -4279,6 +4220,7 @@
 <translation id="7773726648746946405">Меморијски простор сесије</translation>
 <translation id="7781335840981796660">Сви кориснички налози и локални подаци ће бити уклоњени.</translation>
 <translation id="7782102568078991263">Нема више предлога са Google-а</translation>
+<translation id="778330624322499012">Није могуће учитати <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Безбедносна подешавања на рачунару су блокирала ову датотеку.</translation>
 <translation id="7786207843293321886">Изађи из сесије госта</translation>
 <translation id="7786889348652477777">&amp;Поново учитај апликацију</translation>
@@ -4441,7 +4383,6 @@
 <translation id="8001504501378762252">Неки сајт вам је можда украо лозинку</translation>
 <translation id="8004582292198964060">Прегледач</translation>
 <translation id="8008356846765065031">Веза са интернетом је прекинута. Проверите интернет везу.</translation>
-<translation id="8008765610824028412">Учитавање додатне компоненте <ph name="PLUGIN_NAME" /> није успело.</translation>
 <translation id="8008818777654712271">Аутоматски шаљите Google-у неке системске информације и садржај страница да бисте нам помогли да откријемо опасне апликације и сајтове</translation>
 <translation id="8012382203418782830">Ова страница је преведена.</translation>
 <translation id="8014154204619229810">Програм за ажурирање је тренутно активан. Сачекајте мало, па освежите и проверите поново.</translation>
@@ -4558,7 +4499,6 @@
 <translation id="8191230140820435481">Управљање апликацијама, додацима и темама</translation>
 <translation id="8191453843330043793">Разрешивач проксија V8</translation>
 <translation id="8195027750202970175">Величина на диску</translation>
-<translation id="8195739004487400241">Почетна страница је промењена у <ph name="URL" />. Да бисте онемогућили додатке који мењају почетну страницу, кликните на Врати.</translation>
 <translation id="8199300056570174101">Својства мреже (услуга) и уређаја</translation>
 <translation id="8200772114523450471">Настави</translation>
 <translation id="8202160505685531999">Унесите поново лозинку да бисте ажурирали профил за <ph name="DEVICE_TYPE" />.</translation>
@@ -4602,7 +4542,6 @@
 <translation id="8261378640211443080"><ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> не наводи овај додатак и он је можда додат без вашег знања.</translation>
 <translation id="8261387128019234107">Додај налог за <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Избриши</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> није примењен у овој верзији.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> је онемогућио курсор.</translation>
 <translation id="8264718194193514834">Додатак „<ph name="EXTENSION_NAME" />“ је активирао режим целог екрана.</translation>
 <translation id="8270242299912238708">PDF документи</translation>
@@ -4703,6 +4642,7 @@
 <translation id="8454288007744638700">Или изаберите нову мрежу:</translation>
 <translation id="845627346958584683">Време истека</translation>
 <translation id="8456681095658380701">Неважеће име</translation>
+<translation id="8457451314607652708">Увези обележиваче</translation>
 <translation id="8460336040822756677">Ако искључите Smart Lock за <ph name="DEVICE_TYPE" />, нећете моћи да откључавате Chrome уређаје помоћу телефона. Мораћете да уносите лозинку.</translation>
 <translation id="8461329675984532579">Назив добављача за Home</translation>
 <translation id="84613761564611563">Затражен је кориснички интерфејс за конфигурисање мреже, сачекајте...</translation>
@@ -4734,7 +4674,6 @@
 <translation id="850875081535031620">Није пронађен никакав штетан софтвер</translation>
 <translation id="8512476990829870887">Заврши процес</translation>
 <translation id="851263357009351303">Увек дозволи сајту <ph name="HOST" /> да приказује слике</translation>
-<translation id="8513191386157529469">„<ph name="CLIENT_NAME" />“ отклања грешке из овог прегледача.</translation>
 <translation id="8521475323816527629">Брзо приступајте апликацијама</translation>
 <translation id="8523493869875972733">Задржи промене</translation>
 <translation id="8523849605371521713">Додале су смернице</translation>
@@ -4790,7 +4729,6 @@
 <translation id="8620765578342452535">Конфигуриши мрежне везе</translation>
 <translation id="8620790565535071193">Скенирање није успело</translation>
 <translation id="8622877356447980900">Желите ли да преведете ову страницу?</translation>
-<translation id="8623004009673949077">Апликација са атрибутом манифеста „kiosk_only“ мора да се инсталира у режиму киоска у Chrome ОС-у.</translation>
 <translation id="8624205858755890468">Омогућава да Помоћник приказује повезане податке, апликације и радње.</translation>
 <translation id="862542460444371744">&amp;Додаци</translation>
 <translation id="8627151598708688654">Изаберите извор</translation>
@@ -4939,7 +4877,6 @@
 <translation id="882204272221080310">Ажурирајте фирмвер ради веће безбедности.</translation>
 <translation id="8823514049557262177">Копирај тек&amp;ст линка</translation>
 <translation id="8824701697284169214">Додај стра&amp;ницу...</translation>
-<translation id="8827850355924932817">Користи Wi-Fi мрежу за одређивање локације</translation>
 <translation id="8828933418460119530">Име DNS-а</translation>
 <translation id="8830796635868321089">Провера ажурирања није успела помоћу актуелних подешавања проксија. Прилагодите <ph name="PROXY_SETTINGS_LINK_START" />подешавања проксија<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Конфигурацију мреже контролише <ph name="USER_EMAIL" />.</translation>
@@ -4971,9 +4908,7 @@
 <translation id="8879284080359814990">&amp;Прикажи као картицу</translation>
 <translation id="8884961208881553398">Додај нове услуге</translation>
 <translation id="8885197664446363138">Smart Lock није доступно</translation>
-<translation id="8885905466771744233">Приватни кључ за наведени додатак већ постоји. Поново користите тај кључ или га прво избришите.</translation>
 <translation id="8888432776533519951">Боја:</translation>
-<translation id="8892992092192084762">Тема „<ph name="THEME_NAME" />“ је инсталирана.</translation>
 <translation id="8893928184421379330">Жао нам је, није било могуће препознати уређај <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Листа обележивача</translation>
 <translation id="88986195241502842">Страница надоле</translation>
@@ -4988,7 +4923,6 @@
 <translation id="8908902564709148335">Упозорење: Омогућили сте ознаку --scripts-require-action на овом рачунару, што ограничава функције овог додатка. Међутим, други уређаји можда не подржавају ову ознаку или на њима није омогућена. На овим уређајима овај додатак такође може:</translation>
 <translation id="8910146161325739742">Делите екран</translation>
 <translation id="8910222113987937043">Промене обележивача, историје, лозинки и других подешавања се више неће синхронизовати са Google налогом. Међутим, постојећи подаци ће се и даље чувати на Google налогу и можете да управљате њима на <ph name="BEGIN_LINK" />Google контролној табли<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google је означио додатак „<ph name="EXTENSION_NAME" />“ као злонамеран и инсталација је спречена.</translation>
 <translation id="8912793549644936705">Растегни</translation>
 <translation id="8915370057835397490">Учитавање предлога</translation>
 <translation id="8916476537757519021">Подоквир Без архивирања: <ph name="SUBFRAME_SITE" /></translation>
@@ -5094,7 +5028,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB миш је повезан</translation>
 <translation id="9076523132036239772">Жао нам је, нисмо успели да верификујемо имејл адресу или лозинку. Прво покушајте да се повежете са мрежом.</translation>
-<translation id="907841381057066561">Прављење привремене zip датотеке није успело током паковања.</translation>
 <translation id="9084064520949870008">Отвори као прозор</translation>
 <translation id="9088234649737575428">Додатну компоненту <ph name="PLUGIN_NAME" /> блокирају смернице предузећа</translation>
 <translation id="9088917181875854783">Потврдите да се овај приступни кôд приказује на уређају „<ph name="DEVICE_NAME" />“:</translation>
@@ -5185,11 +5118,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Унесите приступну фразу</translation>
 <translation id="939736085109172342">Нови директоријум</translation>
-<translation id="941543339607623937">Неважећи приватни кључ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> дели Chrome картицу и звук.</translation>
 <translation id="942954117721265519">Нема слика у овом директоријуму.</translation>
 <translation id="945522503751344254">Пошаљи повратне информације</translation>
-<translation id="951981865514037445"><ph name="URL" /> жели да користи локацију уређаја.</translation>
 <translation id="952992212772159698">Није активирано</translation>
 <translation id="9580706199804957">Повезивање са Google услугама није успело</translation>
 <translation id="958515377357646513">Додирните да бисте ишли напред.</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 5695af6e..78906cb 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Endast chiffrering</translation>
 <translation id="1039337018183941703">Ogiltig eller skadad fil</translation>
 <translation id="1042174272890264476">Datorn har även RLZ-biblioteket för <ph name="SHORT_PRODUCT_NAME" /> inbyggt. RLZ tilldelar en icke-unik, icke-personligt identifierbar tagg för att mäta antalet sökningar och användningen av <ph name="SHORT_PRODUCT_NAME" /> som drivs av en viss reklamkampanj. Dessa etiketter visas ibland vid sökningar på Google i <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> vill lagra stora mängder data på din enhet.</translation>
 <translation id="1046059554679513793">Det här namnet används redan!</translation>
 <translation id="1047431265488717055">Kopiera länktext</translation>
 <translation id="1047726139967079566">Skapa bokmärke för den här sidan...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Vill du återställa valet av sökmotor till standardinställningen?</translation>
 <translation id="1177863135347784049">Anpassad</translation>
 <translation id="1178581264944972037">Paus</translation>
-<translation id="1179803038870941185"><ph name="URL" /> vill ha fullständig kontroll över dina MIDI-enheter.</translation>
 <translation id="1181037720776840403">Ta bort</translation>
 <translation id="1183237619868651138">Det går inte att installera <ph name="EXTERNAL_CRX_FILE" /> i det lokala cacheminnet.</translation>
 <translation id="1185924365081634987">Du kan också försöka lösa nätverksproblemet genom att <ph name="GUEST_SIGNIN_LINK_START" />surfa som gäst<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Åtkomst till en fil som sparats på datorn}other{Åtkomst till # filer som sparats på datorn}}</translation>
 <translation id="1195076408729068893">Starta Smart Lock genom att ange ditt lösenord. Nästa gång kan du låsa upp din <ph name="DEVICE_TYPE" /> med mobilen.</translation>
 <translation id="1195447618553298278">Okänt fel.</translation>
-<translation id="1196338895211115272">Det gick inte att exportera den privata nyckeln.</translation>
 <translation id="119738088725604856">Skärmdumpsfönster</translation>
 <translation id="1197979282329025000">Ett fel inträffade när skrivaregenskaper skulle hämtas för skrivaren <ph name="PRINTER_NAME" />. Skrivaren kunde inte registreras med <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Nu sätter vi igång</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Administratören rekommenderar ett specifikt värde för den här inställningen.</translation>
 <translation id="1225177025209879837">Begäran bearbetas ...</translation>
 <translation id="1225211345201532184">Hyllobjekt 5</translation>
-<translation id="1225404570112441414">Lägg till den här webbplatsen på hyllan och använd den när som helst.</translation>
 <translation id="1227507814927581609">Autentiseringen misslyckades vid anslutning till <ph name="DEVICE_NAME" />.</translation>
 <translation id="1230807973377071856">systemmeny</translation>
 <translation id="1232569758102978740">Namnlös</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML-fil med bokmärken</translation>
 <translation id="1303671224831497365">Inga Bluetooth-enheter hittades</translation>
 <translation id="1306606229401759371">Ändra inställningar</translation>
-<translation id="1307398858972670978">Få tillgång till dina lösenord från alla enheter på <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Hoppsan! Det gick inte att lagra någon långsiktig API-åtkomsttoken för den här enheten.</translation>
 <translation id="1313405956111467313">Automatisk proxykonfiguration</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Sök</translation>
 <translation id="1386387014181100145">Hejsan.</translation>
 <translation id="138784436342154190">Vill du återställa standardinställningen för startfliken?</translation>
-<translation id="1389297115360905376">Kan endast installeras från <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Öppna som en vanlig flik</translation>
-<translation id="1391807639023934267">Sidan lästes in snabbare.</translation>
 <translation id="1393283411312835250">Sol och moln</translation>
 <translation id="1395262318152388157">Sökningsreglage</translation>
 <translation id="1395730723686586365">Uppdateringstjänsten startades</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Du uppdaterar till en instabil version av <ph name="PRODUCT_NAME" /> som innehåller funktioner som inte är klara. Du kommer att råka ut för kraschar och oväntade buggar. Var försiktig.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (tilläggs-id <ph name="EXTENSION_ID" />) får inte användas i den här typen av session.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Oj! Det gick inte att generera en slumpmässig privat RSA-nyckel.</translation>
 <translation id="1420834118113404499">Medielicenser</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> för koppling</translation>
 <translation id="1426410128494586442">Ja</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">K&amp;opiera ljudadress</translation>
 <translation id="1465827627707997754">Pizzabit</translation>
 <translation id="1467432559032391204">Vänster</translation>
-<translation id="1467999917853307373"><ph name="URL" /> vill lagra data permanent på din enhet.</translation>
-<translation id="1470719357688513792">De nya cookie-inställningarna börjar gälla när sidan uppdateras.</translation>
 <translation id="1470811252759861213"><ph name="SIGN_IN_LINK" /> om du vill få tillgång till samma tillägg på alla dina datorer.</translation>
 <translation id="1474339897586437869"><ph name="FILENAME" /> laddades inte upp. Det fanns inte tillräckligt mycket ledigt utrymme på Google Drive.</translation>
 <translation id="1475502736924165259">Du har certifikat i din dator som inte passar i några av de andra kategorierna</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Stor muspekare</translation>
 <translation id="1543284117603151572">Importerade från Edge</translation>
 <translation id="1545177026077493356">Automatiskt kioskläge</translation>
+<translation id="1545775234664667895">Installerat tema "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">Webbadress med %s istället för sökfråga</translation>
 <translation id="1546280085599573572">Det här tillägget har ändrat vilken sida som visas när du klickar på knappen Startsida.</translation>
 <translation id="1547572086206517271">Uppdatering krävs</translation>
@@ -442,11 +433,9 @@
     <ph name="BEGIN_BOLD" />tillåta eller förbjuda<ph name="END_BOLD" /> vissa webbplatser,
     <ph name="BEGIN_BOLD" />granska<ph name="END_BOLD" /> webbplatser som den kontrollerade användaren har besökt samt    <ph name="BEGIN_BOLD" />hantera<ph name="END_BOLD" /> andra inställningar.</translation>
 <translation id="1648943974594387137">Inloggningsuppgifterna är inaktuella</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> rader visas inte&gt;</translation>
 <translation id="1650371550981945235">Visa inmatningsalternativ</translation>
 <translation id="1650709179466243265">Lägg till www. och .com och öppna adressen</translation>
 <translation id="1651008383952180276">Du måste ange samma lösenfras två gånger</translation>
-<translation id="1652972346408808053">Lösenordet har sparats. Få tillgång till dina lösenord från alla enheter på <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Lägg till skrivaren i Google Cloud Print så att du kan skriva ut var du än befinner dig.}other{Lägg till # skrivare i Google Cloud Print så att du kan skriva ut var du än befinner dig.}}</translation>
 <translation id="1657406563541664238">Hjälp till att göra <ph name="PRODUCT_NAME" /> bättre genom att automatiskt skicka användningsstatistik och felrapporter till Google</translation>
 <translation id="1658424621194652532">Den här sidan använder din mikrofon.</translation>
@@ -673,7 +662,6 @@
 <translation id="2045969484888636535">Fortsätt att blockera cookies</translation>
 <translation id="204622017488417136">Enheten kommer att återgå till den tidigare installerade versionen av Chrome. Alla användarkonton och lokala uppgifter kommer att tas bort. Det går inte att ångra åtgärden.</translation>
 <translation id="2048182445208425546">Åtkomst till din nätverkstrafik</translation>
-<translation id="2049137146490122801">Administratören har avaktiverat tillgång till lokala filer på datorn.</translation>
 <translation id="204914487372604757">Skapa genväg</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2053312383184521053">Data om läget inaktiv</translation>
@@ -707,7 +695,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Inte inläst ännu</translation>
 <translation id="2107494551712864447">Lägg till ett fingeravtryck</translation>
-<translation id="2111843886872897694">Apparna måste få information från den värd de är kopplade till.</translation>
 <translation id="2112877397266219826">Aktivera tryckkontrollen för att konfigurera</translation>
 <translation id="21133533946938348">Fäst flik</translation>
 <translation id="2113479184312716848">Öppna fil...</translation>
@@ -794,7 +781,6 @@
 <translation id="2226720438730111184">Berätta vad som händer</translation>
 <translation id="2229161054156947610">Mer än 1 timme kvar</translation>
 <translation id="222931766245975952">Filen är trunkerad</translation>
-<translation id="222949136907494149"><ph name="URL" /> vill använda enhetens platsinfo.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Det går inte att skapa mappen <ph name="FOLDER_NAME" />. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Klicka här om du vill visa dagens doodle</translation>
@@ -882,7 +868,6 @@
 <translation id="236141728043665931">Blockera alltid mikrofonåtkomsten</translation>
 <translation id="2367972762794486313">Visa appar</translation>
 <translation id="2371076942591664043">Öppna när nedladdning är &amp;klar</translation>
-<translation id="237336063998926520">Använd IP-adressen för att bestämma plats</translation>
 <translation id="2377319039870049694">Byt till listvy</translation>
 <translation id="2377667304966270281">Sidfel</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> filer har valts</translation>
@@ -929,7 +914,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> vill kopiera filer från <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Nyckel-ID för certifikatutfärdare</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> har lagts till</translation>
-<translation id="246335896104539386">Importera bokmärken</translation>
 <translation id="2464089476039395325">HTTP-proxy</translation>
 <translation id="2468902267404883140">Det gick inte att ansluta till mobilen. Använd en kompatibel Android-mobil som är på och finns till hands. &lt;a&gt;Läs mer&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Tillägg som inte stöds har inaktiverats</translation>
@@ -945,7 +929,6 @@
 <translation id="2485422356828889247">Avinstallera</translation>
 <translation id="2487067538648443797">Lägg till ett nytt bokmärke</translation>
 <translation id="248861575772995840">Mobilen hittades inte. Kontrollera att Bluetooth är aktiverat på <ph name="DEVICE_TYPE" />. &lt;a&gt;Läs mer&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Ett pluginprogram (<ph name="PLUGIN_NAME" />) svarar inte.</translation>
 <translation id="2489428929217601177">senaste dagen</translation>
 <translation id="2489918096470125693">Lägg till &amp;mapp ...</translation>
 <translation id="249113932447298600">Enheten <ph name="DEVICE_LABEL" /> stöds inte just nu.</translation>
@@ -999,13 +982,11 @@
 <translation id="2563856802393254086">Grattis! Datatjänsten <ph name="NAME" /> har aktiverats och är klar att använda.</translation>
 <translation id="2566124945717127842">Gör en Powerwash för att återställa <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten så att den blir som ny.</translation>
 <translation id="2568774940984945469">Infobar-behållare</translation>
-<translation id="2570000010887652771">Data sparas.</translation>
 <translation id="257088987046510401">Teman</translation>
 <translation id="2572032849266859634">Skrivskyddad åtkomst till <ph name="VOLUME_NAME" /> har beviljats.</translation>
 <translation id="2573269395582837871">Välj bild och namn</translation>
 <translation id="2575247648642144396">Den här ikonen visas när tillägget kan aktiveras för den aktuella sidan. Använd tillägget genom att klicka på ikonen eller genom att trycka på <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Mobilen hittades inte. Kontrollera att din <ph name="DEVICE_TYPE" /> är ansluten till Wi-Fi eller ett mobilnätverk. &lt;a&gt;Läs mer&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Det finns redan en CRX-fil med det här namnet.</translation>
 <translation id="257779572837908839">Konfigurera som Chromebox för möten</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Det gick inte att avmontera volym<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1067,7 +1048,6 @@
 <translation id="2653266418988778031">Om du tar bort ett certifikat från en certifikatutfärdare (CU) kommer webbläsaren inte längre att lita på certifikat som utfärdas av denna CU.</translation>
 <translation id="2653659639078652383">Skicka</translation>
 <translation id="265390580714150011">Fältvärde</translation>
-<translation id="2654286334048437383">Exportera bokmärken</translation>
 <translation id="2655386581175833247">Användarcertifikat:</translation>
 <translation id="2660779039299703961">Event</translation>
 <translation id="2661146741306740526">16:9</translation>
@@ -1261,7 +1241,6 @@
 <translation id="2908162660801918428">Lägg till mediegalleri efter katalog</translation>
 <translation id="2908789530129661844">Zooma ut skärmen</translation>
 <translation id="2910318910161511225">Anslut till ett nätverk och försök igen</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> försöker använda din mikrofon.</translation>
 <translation id="2913331724188855103">Tillåt att webbplatser sparar och läser cookiedata (rekommenderas)</translation>
 <translation id="2916073183900451334">Om du trycker på Tabb på en webbsida markeras länkar och formulärfält</translation>
 <translation id="2916745397441987255">Sök efter tillägg</translation>
@@ -1359,7 +1338,7 @@
 <translation id="3051523411789012618">Flytta upp fönstret</translation>
 <translation id="3053013834507634016">Certifikatnyckelanvändning</translation>
 <translation id="3057861065630527966">Säkerhetskopiera foton och videor</translation>
-<translation id="3060379269883947824">Aktivera uppläsning av markerad text</translation>
+<translation id="3060379269883947824">Aktivera Textuppläsning</translation>
 <translation id="3061707000357573562">Tjänst för programkorrigering</translation>
 <translation id="3064410671692449875">Otillräckligt med data</translation>
 <translation id="3065041951436100775">Feedback vid stängd flik.</translation>
@@ -1414,7 +1393,6 @@
 <translation id="3141318088920353606">Lyssnar …</translation>
 <translation id="3141917231319778873">Den angivna förfrågan stöds inte för: <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">KLART</translation>
-<translation id="3144135466825225871">Det gick inte att ersätta CRX-filen. Kontrollera om filen används.</translation>
 <translation id="3144647712221361880">Öppna länk som</translation>
 <translation id="3149510190863420837">Chrome-appar</translation>
 <translation id="3150927491400159470">Hård inläsning</translation>
@@ -1524,7 +1502,6 @@
 <translation id="3309747692199697901">Kör alltid på alla webbplatser</translation>
 <translation id="3312424061798279731">Aktiverade språk</translation>
 <translation id="3312903956926554846">Installera på skrivbordet</translation>
-<translation id="3313473140726597081">Starfliken har ändrats till <ph name="URL" />. Inaktivera tillägg som ändrar startfliken genom att trycka på Återställ.</translation>
 <translation id="3313590242757056087">Om du vill ange vilka webbplatser som den kontrollerade användaren får besöka, kan du ange begränsningar
     och inställningar genom att besöka <ph name="MANAGEMENT_URL" />.
     Om du inte ändrar standardinställningarna kan <ph name="USER_DISPLAY_NAME" />
@@ -1540,7 +1517,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Appinformation</translation>
 <translation id="3335947283844343239">Öppna stängd flik igen</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> har blockerats eftersom det var inaktuellt.</translation>
 <translation id="3340978935015468852">inställningar</translation>
 <translation id="3341703758641437857">Tillåt åtkomst till webbadresser i filen</translation>
 <translation id="3342361181740736773"><ph name="TRIGGERING_EXTENSION_NAME" /> vill ta bort det här tillägget.</translation>
@@ -1575,7 +1551,6 @@
 <translation id="3386219708421216619">Ett bokmärke har lagts till</translation>
 <translation id="3389312115541230716">Högerklicka på ikonen för <ph name="SMALL_PRODUCT_LOGO" /> i aktivitetsfältet</translation>
 <translation id="3391716558283801616">Flik 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> försöker använda kameran och mikrofonen.</translation>
 <translation id="3396331542604645348">Den valda skrivaren är inte tillgänglig eller har inte installerats korrekt. Kontrollera skrivaren eller välj en annan.</translation>
 <translation id="3399432415385675819">Aviseringar inaktiveras</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1687,10 +1662,8 @@
 <translation id="3550915441744863158">Chrome uppdateras automatiskt så att du alltid har den senaste versionen</translation>
 <translation id="3551320343578183772">Stäng flik</translation>
 <translation id="3552780134252864554">Rensas vis avslutning</translation>
-<translation id="355298399003313926"><ph name="URL" /> vill svara på tillgänglighetshändelser.</translation>
 <translation id="3555812735919707620">Ta bort tillägg</translation>
 <translation id="3556000484321257665">Sökmotorn har ändrats till <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Det angivna värdet för den privata nyckeln måste vara en giltig sökväg.</translation>
 <translation id="3563432852173030730">Det gick inte att ladda ned kioskappen.</translation>
 <translation id="3564334271939054422">Wi-Fi-nätverket du använder (<ph name="NETWORK_ID" />) kanske kräver att du besöker dess inloggningssida.</translation>
 <translation id="3564708465992574908">Zoomnivåer</translation>
@@ -1712,7 +1685,6 @@
 <translation id="3593965109698325041">Certifikatnamnsbegränsningar</translation>
 <translation id="3596235046596950091">Aktivera molntjänster</translation>
 <translation id="3599863153486145794">Historik rensas från alla inloggade enheter. Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Administratören har inaktiverat åtkomsten till lokala filer på enheten.</translation>
 <translation id="3600792891314830896">Stäng av ljudet på webbplatser</translation>
 <translation id="3603177256297531067">Det gick inte att översätta sidan</translation>
 <translation id="3603533104205588786">Du kan lägga till ett bokmärke för sidan genom att klicka på stjärnan</translation>
@@ -1737,7 +1709,6 @@
 <translation id="3625258641415618104">Skärmdumpar har inaktiverats</translation>
 <translation id="3625870480639975468">Återställ zoom</translation>
 <translation id="3626281679859535460">Ljusstyrka</translation>
-<translation id="3627052133907344175">Tillägget kräver <ph name="IMPORT_NAME" /> med minst version <ph name="IMPORT_VERSION" />, men endast version <ph name="INSTALLED_VERSION" /> är installerad.</translation>
 <translation id="3627320433825461852">Mindre än 1 minut kvar</translation>
 <translation id="3627588569887975815">Öppna länk i inko&amp;gnitofönster</translation>
 <translation id="3627671146180677314">Förnyelsetid för Netscape-certifikat</translation>
@@ -1767,7 +1738,6 @@
 <translation id="3668570675727296296">Språkinställningar</translation>
 <translation id="3668823961463113931">Hanterare</translation>
 <translation id="3670229581627177274">Aktivera Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> vill lagra data permanent på din lokala dator.</translation>
 <translation id="3672681487849735243">Ett fabriksfel har upptäckts</translation>
 <translation id="367645871420407123">lämna tomt om du vill ange rotlösenordet som värde för standardtestbilden</translation>
 <translation id="3678156199662914018">Tillägg: <ph name="EXTENSION_NAME" /></translation>
@@ -1845,11 +1815,9 @@
 <translation id="3786301125658655746">Du är offline</translation>
 <translation id="3788401245189148511">Appen eller tillägget skulle kunna:</translation>
 <translation id="3789841737615482174">Installera</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> fungerar bara på skrivbordet.</translation>
 <translation id="379082410132524484">Kortets giltighetstid har löpt ut</translation>
 <translation id="3792890930871100565">Koppla från skrivare</translation>
 <translation id="379422718204375917">Logga in på ditt konto med Smart Lock</translation>
-<translation id="3794595850995182458">Lämna sidan</translation>
 <translation id="3796648294839530037">Favoritnätverk:</translation>
 <translation id="3797900183766075808">&amp;Sök på <ph name="SEARCH_ENGINE" /> efter ”<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Gör det möjligt att aktivera/inaktivera lätt klick på styrplattan</translation>
@@ -1980,7 +1948,6 @@
 <translation id="3979748722126423326">Aktivera <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Du har angett en ogiltig typ att spara.</translation>
 <translation id="3983586614702900908">enheter från en okänd leverantör</translation>
-<translation id="3984413272403535372">Ett fel uppstod när tillägget skulle signeras.</translation>
 <translation id="3987938432087324095">Det gick inte att uppfatta vad du sade.</translation>
 <translation id="3988996860813292272">Välj tidszon</translation>
 <translation id="3989635538409502728">Logga ut</translation>
@@ -2036,7 +2003,6 @@
 <translation id="4087470595660267445">Installera appar och spel från Google Play på Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Läs mer&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Acceptera för grupp</translation>
 <translation id="4090103403438682346">Aktivera verifierad åtkomst</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> krävs för att visa vissa element på den här sidan.</translation>
 <translation id="4090535558450035482">(Det här tillägget är hanterat och kan inte tas bort.)</translation>
 <translation id="4091434297613116013">pappersark</translation>
 <translation id="4093955363990068916">Lokal fil:</translation>
@@ -2370,7 +2336,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> kan nu synkronisera dina lösenord.</translation>
 <translation id="4715553623069266137">mycket kort (0,8 s)</translation>
 <translation id="4716483597559580346">Gör en powerwash för ökad säkerhet</translation>
-<translation id="471800408830181311">Det gick inte att visa den privata nyckeln.</translation>
 <translation id="4720113199587244118">Lägg till enheter</translation>
 <translation id="4720185134442950733">Mobilt datanätverk</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> delar din skärm.</translation>
@@ -2507,7 +2472,6 @@
 <translation id="4917385247580444890">Stark</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> vill kommunicera med tillägget <ph name="EXTENSION_NAME" /></translation>
 <translation id="4918086044614829423">Acceptera</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> försöker använda kameran.</translation>
 <translation id="4920887663447894854">Följande webbplatser har förhindrats att spåra din plats på sidan:</translation>
 <translation id="492299503953721473">Ta bort Android-appar</translation>
 <translation id="4923279099980110923">Ja, jag vill hjälpa till</translation>
@@ -2548,7 +2512,6 @@
 <translation id="4980805016576257426">Tillägget innehåller skadlig programvara.</translation>
 <translation id="498294082491145744">Ändra inställningarna som styr webbplatsernas tillgång till funktioner som cookies, JavaScript, pluginprogram, geografisk plats, mikrofon, kamera osv.</translation>
 <translation id="4988526792673242964">Sidor</translation>
-<translation id="4988792151665380515">Det gick inte att exportera den publika nyckeln.</translation>
 <translation id="49896407730300355">Rotera m&amp;oturs</translation>
 <translation id="4989966318180235467">Kontrollera &amp;bakgrundssida</translation>
 <translation id="4990343175649730969">Ladda ned Chrome Cleanup Tool</translation>
@@ -2577,7 +2540,6 @@
 <translation id="5026874946691314267">Visa inte detta igen</translation>
 <translation id="5027550639139316293">E-postcertifikat</translation>
 <translation id="5027562294707732951">Lägg till tillägg</translation>
-<translation id="5028012205542821824">Installationen är inte aktiverad.</translation>
 <translation id="5029568752722684782">Ta bort kopia</translation>
 <translation id="5030338702439866405">Utfärdat av</translation>
 <translation id="5036662165765606524">Tillåt inte att någon webbplats laddar ned flera filer automatiskt</translation>
@@ -2613,7 +2575,6 @@
 <translation id="509429900233858213">Det har uppstått ett fel.</translation>
 <translation id="5094721898978802975">Kommunicera med samverkande inbyggda appar</translation>
 <translation id="5097002363526479830">Det gick inte att ansluta till nätverket <ph name="NAME" />: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Kan inte hitta den absoluta sökvägen till katalogen som ska packas.</translation>
 <translation id="5099354524039520280">upp</translation>
 <translation id="5100114659116077956">Din Chromebox måste uppdateras för att du ska få de senaste funktionerna.</translation>
 <translation id="5101042277149003567">Öppna alla bokmärken</translation>
@@ -2662,7 +2623,6 @@
 <translation id="5170568018924773124">Visa i mapp</translation>
 <translation id="5171045022955879922">Ange eller sök efter webbadress</translation>
 <translation id="5171343362375269016">Bytt minne</translation>
-<translation id="5175870427301879686"><ph name="URL" /> vill lagra data permanent på din lokala dator.</translation>
 <translation id="5177479852722101802">Fortsätt blockera tillgång till kamera och mikrofon</translation>
 <translation id="5177526793333269655">Miniatyrvy</translation>
 <translation id="5177549709747445269">Du använder mobildata</translation>
@@ -2741,7 +2701,6 @@
 <translation id="529175790091471945">Formatera enheten</translation>
 <translation id="5293170712604732402">Återställ inställningarna till standardinställningarna</translation>
 <translation id="5298219193514155779">Temat skapades av</translation>
-<translation id="5298363578196989456">Det gick inte att importera tillägget <ph name="IMPORT_NAME" /> eftersom det inte är en delad modul.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Alla data krypteras med din lösenfras för synkronisering</translation>
 <translation id="5300589172476337783">Visa</translation>
@@ -2769,7 +2728,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> vill kopplas</translation>
 <translation id="5332624210073556029">Tidszon:</translation>
 <translation id="5334142896108694079">Cacheminne för skript</translation>
-<translation id="533433379391851622">Förväntad version <ph name="EXPECTED_VERSION" />, men versionen var <ph name="NEW_ID" />.</translation>
 <translation id="5334844597069022743">Visa källa</translation>
 <translation id="5335458522276292100">Säkerhetskopierar <ph name="FILE_COUNT" /> på <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Installerad av tredje part.</translation>
@@ -2807,7 +2765,6 @@
 <translation id="5390100381392048184">Tillåt att ljud spelas upp på webbplatser</translation>
 <translation id="5390284375844109566">Indexerad databas</translation>
 <translation id="5390743329570580756">Skicka för</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> vill ha åtkomst till datorn.</translation>
 <translation id="5397794290049113714">Du</translation>
 <translation id="5398572795982417028">Sidreferensen faller utanför intervallet. Gränsen är <ph name="MAXIMUM_PAGE" />.</translation>
 <translation id="5398772614898833570">Annonser blockeras</translation>
@@ -2869,7 +2826,6 @@
 <translation id="5485754497697573575">Återställ alla flikar</translation>
 <translation id="5486261815000869482">Bekräfta lösenord</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> delar din skärm med <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Det angivna värdet för den privata nyckeln måste finnas.</translation>
 <translation id="5486561344817861625">Simulera omstart av webbläsaren</translation>
 <translation id="5487521232677179737">Rensa data</translation>
 <translation id="5488093641312826914"><ph name="COPIED_ITEM_NAME" /> har kopierats</translation>
@@ -2952,7 +2908,6 @@
 <translation id="5600706100022181951">Nedladdningen av uppdateringen förbrukar <ph name="UPDATE_SIZE_MB" /> MB mobildata. Vill du fortsätta?</translation>
 <translation id="5601503069213153581">PIN-kod</translation>
 <translation id="5605623530403479164">Andra sökmotorer</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> vill komma åt din enhet.</translation>
 <translation id="5608580678041221894">Tryck på följande knappar för att justera eller flytta beskärningsområdet</translation>
 <translation id="5609231933459083978">Appen ser ut att vara ogiltig.</translation>
 <translation id="5610038042047936818">Byt till kameraläget</translation>
@@ -3195,7 +3150,6 @@
 <translation id="5990386583461751448">Översatt</translation>
 <translation id="5991049340509704927">Förstora</translation>
 <translation id="5993332328670040093">Dataanvändningen mäts inte längre.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> kanske inte kan uppdateras automatiskt.</translation>
 <translation id="600424552813877586">Ogiltig app.</translation>
 <translation id="6005695835120147974">Medierouter</translation>
 <translation id="6006484371116297560">Klassiskt</translation>
@@ -3220,6 +3174,7 @@
 <translation id="604001903249547235">Säkerhetskopiering i molnet</translation>
 <translation id="6040143037577758943">Stäng</translation>
 <translation id="6040852767465482106">Anonym identitet</translation>
+<translation id="6041155700700864984">Avsluta helskärmsläget</translation>
 <translation id="604124094241169006">Automatisk</translation>
 <translation id="6042169520002885235">Välj skrivartillverkare och skrivarmodell</translation>
 <translation id="6042308850641462728">Mer</translation>
@@ -3236,7 +3191,6 @@
 <translation id="6056710589053485679">Normal inläsning</translation>
 <translation id="6059652578941944813">Certifikathierarki</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> har kraschat.</translation>
 <translation id="6064217302520318294">Skärmlås</translation>
 <translation id="6065289257230303064">Attribut för certifikatämneskatalog</translation>
 <translation id="6068338049763724728">Aktivera fjärregistrering</translation>
@@ -3345,7 +3299,6 @@
 <translation id="6237816943013845465">Ger möjlighet att ändra skärmupplösningen</translation>
 <translation id="6238923052227198598">Behåll den senaste anteckningen på låsskärmen</translation>
 <translation id="6239558157302047471">Läs in &amp;ram igen</translation>
-<translation id="624022915548992686">Lämna sidan</translation>
 <translation id="6241530762627360640">Få åtkomst till information om Bluetooth-enheter som är kopplade till ditt system och upptäck Bluetooth-enheter i närheten.</translation>
 <translation id="6243774244933267674">Servern är inte tillgänglig</translation>
 <translation id="6246413617632217567">Det gick inte att importera den hanterade användaren. Kontrollera hårddiskutrymmet och dina behörigheter och försök igen.</translation>
@@ -3394,13 +3347,11 @@
 <translation id="6312403991423642364">Okänt nätverksfel</translation>
 <translation id="6313641880021325787">AVSLUTA VR-LÄGET</translation>
 <translation id="6314819609899340042">Du har aktiverat felsökningsfunktioner på den här <ph name="IDS_SHORT_PRODUCT_NAME" />-enheten.</translation>
-<translation id="6315343732431721770"><ph name="URL" /> har lagts till i startflikarna. Inaktivera tillägg som ändrar startfliken genom att trycka på Återställ.</translation>
 <translation id="6315493146179903667">Flytta fram alla</translation>
 <translation id="6316806695097060329">Den här <ph name="SHORT_PRODUCT_NAME" />-enheten har tillverkats för att ge dig bästa möjliga upplevelse på webben.</translation>
 <translation id="6317318380444133405">Stöds inte längre.</translation>
 <translation id="6317369057005134371">Väntar på appfönstret ...</translation>
 <translation id="6318407754858604988">Nedladdning påbörjad</translation>
-<translation id="6322279351188361895">Det gick inte att läsa den privata nyckeln.</translation>
 <translation id="6325191661371220117">Inaktivera automatisk start</translation>
 <translation id="6326175484149238433">Ta bort från Chrome</translation>
 <translation id="6326855256003666642">Antal keepalive</translation>
@@ -3409,7 +3360,6 @@
 <translation id="6333049849394141510">Välj vad som ska synkroniseras</translation>
 <translation id="6333064448949140209">Filen skickas till Google för felsökning</translation>
 <translation id="6333834492048057036">Fokusera på adressfältet för sökning</translation>
-<translation id="6336907568130557310">Alla med tillgång till den exporterade filen kan läsa dina lösenord. Dela inte filen med någon och radera den efter importen.</translation>
 <translation id="6339668969738228384">Skapa en ny profil för <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Det gick inte att ansluta till servern. Kontrollera nätverksanslutningen och försök igen. Starta om Chromebook om problemet kvarstår.</translation>
 <translation id="6340071272923955280">Protokoll för internetutskrift (IPPS)</translation>
@@ -3438,7 +3388,6 @@
 <translation id="6385543213911723544">Webbplatser får spara och läsa uppgifter i cookies</translation>
 <translation id="6388771388956873507">Sätt fingret på enhetens fingeravtryckssensor</translation>
 <translation id="6390799748543157332">Sidorna du visar i den här fliken visas inte i webbläsarhistoriken och lämnar inga andra spår, till exempel cookies, på datorn när du har stängt alla öppna gästfönster. Filer som du laddar ned kommer dock att sparas.</translation>
-<translation id="6391538222494443604">Indatakatalog måste finnas.</translation>
 <translation id="6395423953133416962">Skicka <ph name="BEGIN_LINK1" />systeminformation<ph name="END_LINK1" /> och <ph name="BEGIN_LINK2" />statistik<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Sluta tala</translation>
 <translation id="6397592254427394018">Öppna alla bokmärken i ett &amp;inkognitofönster</translation>
@@ -3496,7 +3445,6 @@
 <translation id="6458308652667395253">Hantera blockering av JavaScript...</translation>
 <translation id="6459488832681039634">Använd markering för sökning</translation>
 <translation id="6460601847208524483">Sök nästa</translation>
-<translation id="6462080265650314920">Apparna måste visas med content-type <ph name="CONTENT_TYPE" />.</translation>
 <translation id="6462082050341971451">Är du kvar?</translation>
 <translation id="6463795194797719782">&amp;Redigera</translation>
 <translation id="6466988389784393586">&amp;Öppna alla bokmärken</translation>
@@ -3626,7 +3574,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Vill du att Google ska översätta sidan från <ph name="SOURCE_LANGUAGE" /> till <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Pekdon har anslutits</translation>
-<translation id="6677037229676347494">Förväntat ID <ph name="EXPECTED_ID" />, men ID:t var <ph name="NEW_ID" />.</translation>
 <translation id="6678717876183468697">Frågewebbadress</translation>
 <translation id="6680028776254050810">Byt användare</translation>
 <translation id="6680442031740878064">Tillgängligt: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3766,8 +3713,6 @@
 <translation id="6903534926908201625">I <ph name="BEGIN_LINK" />Inställningar<ph name="END_LINK" /> kan du när som helst anpassa vilken information Google samlar in.</translation>
 <translation id="6904344821472985372">Återkalla filåtkomst</translation>
 <translation id="6904655473976120856">Tryck på appknappen för att avsluta</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> vill dela skärmen.</translation>
-<translation id="6909461304779452601">Appar, tillägg och användarskript kan inte läggas till från den här webbplatsen.</translation>
 <translation id="6910211073230771657">Borttagen</translation>
 <translation id="691024665142758461">Hämta flera filer</translation>
 <translation id="6911324888870229398">Nätverksanslutningen avbröts. Kontrollera anslutningen eller testa ett annat Wi-Fi-nätverk.</translation>
@@ -4103,7 +4048,6 @@
 <translation id="747114903913869239">Fel: det går inte att avkoda tillägget</translation>
 <translation id="7473891865547856676">Nej tack</translation>
 <translation id="747459581954555080">Återställ alla</translation>
-<translation id="7475034671245341386">Ett fel har uppstått i <ph name="PLUGIN_NAME" />.</translation>
 <translation id="7475671414023905704">Netscapes webbadress för förlorat lösenord</translation>
 <translation id="7476454130948140105">Batterinivån är för låg för uppdateringen (<ph name="BATTERY_PERCENT" /> %)</translation>
 <translation id="7477347901712410606">Om du har glömt lösenfrasen avslutar du och återställer synkroniseringen via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation>
@@ -4140,7 +4084,6 @@
 <translation id="7507930499305566459">Status för svarscertifikat</translation>
 <translation id="7508545000531937079">Bildvisning</translation>
 <translation id="7513029293694390567">Logga in automatiskt på webbplatser med hjälp av lagrade inloggningsuppgifter. När funktionen är inaktiverad måste du bekräfta inloggningen varje gång du besöker en webbplats.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> behöver kunna identifiera enheten unikt för att det ska gå att spela upp skyddat innehåll.</translation>
 <translation id="7517569744831774757">Återställ inställningarna till standardinställningarna.</translation>
 <translation id="7517786267097410259">Skapa ett lösenord –</translation>
 <translation id="7518150891539970662">WebRTC-loggar (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4170,7 +4113,6 @@
     försöka skapa en kontrollerad användare igen.</translation>
 <translation id="756445078718366910">Öppna webbläsarfönster</translation>
 <translation id="7564847347806291057">Avsluta process</translation>
-<translation id="7565291891798266313">Sökmotorn har ändrats till <ph name="URL" />. Inaktivera tillägg som ändrar sökmotorn genom att trycka på Återställ.</translation>
 <translation id="7566118625369982896">Hantera länkar till appar på Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Data i Chrome har rensats</translation>
@@ -4179,7 +4121,6 @@
 <translation id="7573172247376861652">Batteriladdning</translation>
 <translation id="7576032389798113292">6:4</translation>
 <translation id="7576690715254076113">Jämför</translation>
-<translation id="7577815336900970562">Avgör plats utifrån Wi-Fi eller mobilnät</translation>
 <translation id="7579149537961810247">Dölj webbplatser</translation>
 <translation id="7580671184200851182">Spela samma ljud i alla högtalare (monoljud)</translation>
 <translation id="7581462281756524039">Ett rensningsverktyg</translation>
@@ -4286,6 +4227,7 @@
 <translation id="7773726648746946405">Sessionslagring</translation>
 <translation id="7781335840981796660">Alla användarkonton och all lokal data tas bort.</translation>
 <translation id="7782102568078991263">Inga fler förslag från Google</translation>
+<translation id="778330624322499012">Det gick inte att läsa in <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Filen har blockerats av datorns säkerhetsinställningar.</translation>
 <translation id="7786207843293321886">Avsluta gästsession</translation>
 <translation id="7786889348652477777">&amp;Läs in appen igen</translation>
@@ -4448,7 +4390,6 @@
 <translation id="8001504501378762252">En webbplats kan ha stulit ditt lösenord</translation>
 <translation id="8004582292198964060">Webbläsare</translation>
 <translation id="8008356846765065031">Internetanslutningen har avbrutits. Kontrollera internetanslutningen.</translation>
-<translation id="8008765610824028412">Det gick inte att läsa in <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Viss information om systemet och innehåll på sidan skickas automatiskt till Google i syfte att identifiera skadliga appar och webbplatser.</translation>
 <translation id="8012382203418782830">Sidan har översatts.</translation>
 <translation id="8014154204619229810">Uppdateringsprogrammet körs. Uppdatera sidan om en minut och kolla igen.</translation>
@@ -4565,7 +4506,6 @@
 <translation id="8191230140820435481">Hantera dina appar, tillägg och teman</translation>
 <translation id="8191453843330043793">V8-proxytolk</translation>
 <translation id="8195027750202970175">Storlek på disk</translation>
-<translation id="8195739004487400241">Startsidan har ändrats till <ph name="URL" />. Inaktivera tillägg som ändrar startsidan genom att trycka på Återställ.</translation>
 <translation id="8199300056570174101">Nätverkstjänst och enhetsegenskaper</translation>
 <translation id="8200772114523450471">Återuppta</translation>
 <translation id="8202160505685531999">Ange lösenordet på nytt om du vill uppdatera din profil på <ph name="DEVICE_TYPE" />.</translation>
@@ -4609,7 +4549,6 @@
 <translation id="8261378640211443080">Det här tillägget finns inte i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> och kan ha lagts till utan att du vet om det.</translation>
 <translation id="8261387128019234107">Lägg till ett konto för <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Radera</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> har inte implementerats i den här versionen.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> har inaktiverat muspekaren.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> aktiverade helskärmsläge.</translation>
 <translation id="8270242299912238708">PDF-dokument</translation>
@@ -4710,6 +4649,7 @@
 <translation id="8454288007744638700">Du kan även välja ett nytt nätverk:</translation>
 <translation id="845627346958584683">Giltig till</translation>
 <translation id="8456681095658380701">Ogiltigt namn</translation>
+<translation id="8457451314607652708">Importera bokmärken</translation>
 <translation id="8460336040822756677">Om du inaktiverar Smart Lock för <ph name="DEVICE_TYPE" /> kan du inte låsa upp dina Chrome-enheter med mobilen. Du måste ange ditt lösenord.</translation>
 <translation id="8461329675984532579">Hemleverantörens namn</translation>
 <translation id="84613761564611563">Nätverkskonfigurering av användargränssnitt har begärts. Vänta en stund …</translation>
@@ -4741,7 +4681,6 @@
 <translation id="850875081535031620">Ingen skadlig programvara hittades</translation>
 <translation id="8512476990829870887">Avsluta process</translation>
 <translation id="851263357009351303">Tillåt alltid att <ph name="HOST" /> visar bilder</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> felsöker den här webbläsaren.</translation>
 <translation id="8521475323816527629">Öppna appar snabbt</translation>
 <translation id="8523493869875972733">Behåll ändringarna</translation>
 <translation id="8523849605371521713">Har lagts till av en policy</translation>
@@ -4797,7 +4736,6 @@
 <translation id="8620765578342452535">Konfigurera nätverksanslutningar</translation>
 <translation id="8620790565535071193">Genomsökningen misslyckades</translation>
 <translation id="8622877356447980900">Vill du att sidan ska översättas?</translation>
-<translation id="8623004009673949077">En app med manifestattributet kiosk_only måste installeras i kioskläget i Chrome OS.</translation>
 <translation id="8624205858755890468">Tillåter att assistenten visar relaterade uppgifter, appar och åtgärder.</translation>
 <translation id="862542460444371744">&amp;Tillägg</translation>
 <translation id="8627151598708688654">Välj källa</translation>
@@ -4946,7 +4884,6 @@
 <translation id="882204272221080310">Uppdatera firmware för ökad säkerhet.</translation>
 <translation id="8823514049557262177">Kopiera länktext</translation>
 <translation id="8824701697284169214">Lägg till si&amp;da ...</translation>
-<translation id="8827850355924932817">Avgör plats utifrån Wi-Fi-nätverket</translation>
 <translation id="8828933418460119530">DNS-namn</translation>
 <translation id="8830796635868321089">Det gick inte att genomföra uppdateringskontrollen med de aktuella proxyinställningarna. Justera dina <ph name="PROXY_SETTINGS_LINK_START" />proxyinställningar<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Nätverkskonfiguration styrs av <ph name="USER_EMAIL" />.</translation>
@@ -4978,9 +4915,7 @@
 <translation id="8879284080359814990">&amp;Visa som flik</translation>
 <translation id="8884961208881553398">Lägg till nya tjänster</translation>
 <translation id="8885197664446363138">Smart Lock är inte tillgängligt</translation>
-<translation id="8885905466771744233">Det finns redan en privat nyckel för det angivna tillägget. Återanvänd den nyckeln eller ta bort den först.</translation>
 <translation id="8888432776533519951">Färg:</translation>
-<translation id="8892992092192084762">Installerat tema <ph name="THEME_NAME" />.</translation>
 <translation id="8893928184421379330">Det gick tyvärr inte att identifiera enheten <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Lista med bokmärken</translation>
 <translation id="88986195241502842">Nedåt en sida</translation>
@@ -4989,13 +4924,12 @@
 <translation id="8899285681604219177">Tillägg som inte stöds har inaktiverats</translation>
 <translation id="8899551033019439140">Söker efter skrivare …</translation>
 <translation id="8899851313684471736">Öppna länk i nytt f&amp;önster</translation>
-<translation id="8902667442496790482">Öppna inställningarna för uppläsning av markerad text</translation>
+<translation id="8902667442496790482">Öppna inställningarna för Textuppläsning</translation>
 <translation id="8903921497873541725">Zooma in</translation>
 <translation id="8904976895050290827">Synkronisera med Chrome</translation>
 <translation id="8908902564709148335">Varning! Du har aktiverat flaggan --scripts-require-action på den här datorn, vilket begränsar det här tilläggets funktioner. I andra enheter finns det kanske inte stöd för flaggan, eller så kan den vara inaktiverad. I sådana enheter kan tillägget även:</translation>
 <translation id="8910146161325739742">Dela skärmen</translation>
 <translation id="8910222113987937043">När bokmärken, historik, lösenord och andra inställningar ändras kommer dessa ändringar inte längre att synkroniseras med Google-kontot. Uppgifter som redan har sparats i Google-kontot finns däremot kvar och kan hanteras via <ph name="BEGIN_LINK" />Google Översikt<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google har flaggat <ph name="EXTENSION_NAME" /> som skadligt och installationen har förhindrats.</translation>
 <translation id="8912793549644936705">Förläng</translation>
 <translation id="8915370057835397490">Läser in förslag</translation>
 <translation id="8916476537757519021">Underram i inkognitoläge: <ph name="SUBFRAME_SITE" /></translation>
@@ -5101,7 +5035,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB-mus har anslutits</translation>
 <translation id="9076523132036239772">Det gick inte att verifiera e-postadressen eller lösenordet. Anslut till ett nätverk först.</translation>
-<translation id="907841381057066561">Det gick inte att skapa en tillfällig ZIP-fil under packningen.</translation>
 <translation id="9084064520949870008">Öppna som fönster</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> har blockerats av en företagspolicy</translation>
 <translation id="9088917181875854783">Bekräfta att denna nyckel visas på <ph name="DEVICE_NAME" />:</translation>
@@ -5192,11 +5125,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ange lösenfras</translation>
 <translation id="939736085109172342">Ny mapp</translation>
-<translation id="941543339607623937">Ogiltig privat nyckel.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> delar ljud och en flik från Chrome.</translation>
 <translation id="942954117721265519">Inga bilder i den här katalogen.</translation>
 <translation id="945522503751344254">Skicka synpunkter</translation>
-<translation id="951981865514037445"><ph name="URL" /> vill använda enhetens platsinfo.</translation>
 <translation id="952992212772159698">Inte aktiverat</translation>
 <translation id="9580706199804957">Det gick inte att ansluta till Googles tjänster</translation>
 <translation id="958515377357646513">Fortsätt till nästa genom att trycka här.</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index cc4ffb9..539239a 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Usimabji Tu</translation>
 <translation id="1039337018183941703">Faili si sahihi au imeharibika</translation>
 <translation id="1042174272890264476">Kompyuta yako pia huja na maktaba ya <ph name="SHORT_PRODUCT_NAME" /> ya RLZ iliyojengewa ndani. RLZ hutoa lebo isiyo ya kipekee, isiyotambulika kibinafsi ili kupima utafutaji na matumizi ya <ph name="SHORT_PRODUCT_NAME" />  yanayoendeshwa na kampeni husika ya ukwezaji. Lebo hizi wakati mwingine hutokea katika hoja za Huduma ya Tafuta na Google katika <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> inataka kuhifadhi data kubwa kwenye kifaa chako daima.</translation>
 <translation id="1046059554679513793">Lo, jina hili tayari linatumika!</translation>
 <translation id="1047431265488717055">Nakili Maandishi ya Kiungo</translation>
 <translation id="1047726139967079566">Alamisha Ukurasa Huu...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Ungependa Kurejesha Mtambo Chaguo-msingi wa Kutafuta ?</translation>
 <translation id="1177863135347784049">Maalum</translation>
 <translation id="1178581264944972037">Sitisha</translation>
-<translation id="1179803038870941185"><ph name="URL" /> inataka kupata udhibiti kamili wa vifaa vyako vya MIDI.</translation>
 <translation id="1181037720776840403">Ondoa</translation>
 <translation id="1183237619868651138">Haiwezi kusakinisha <ph name="EXTERNAL_CRX_FILE" /> katika akiba ya ndani.</translation>
 <translation id="1185924365081634987">Pia unaweza kujaribu <ph name="GUEST_SIGNIN_LINK_START" />kuvinjari kama aliyealikwa<ph name="GUEST_SIGNIN_LINK_END" /> ili kurekebisha hitilafu hii ya mtandao.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Fikia faili iliyohifadhiwa kwenye kompyuta yako}other{Fikia faili # zilizohifadhiwa kwenye kompyuta yako}}</translation>
 <translation id="1195076408729068893">Andika nenosiri lako ili uweze kutumia Smart Lock. Wakati ujao, utatumia simu yako kufungua kifaa chako cha <ph name="DEVICE_TYPE" />.</translation>
 <translation id="1195447618553298278">Hitilafu isiyojulikana.</translation>
-<translation id="1196338895211115272">Uhamishaji wa ufunguo binafsi haukufaulu.</translation>
 <translation id="119738088725604856">Dirisha la picha ya skrini</translation>
 <translation id="1197979282329025000">Hitilafu imetokea wakati wa kujaribu kuonyesha mambo ambayo printa ya <ph name="PRINTER_NAME" /> inaweza kufanya. Printa hii haikuweza kusajiliwa kwenye <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Wacha tuanze</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Msimamizi wako anapendekeza thamani maalum ya mpangilio huu.</translation>
 <translation id="1225177025209879837">Inachakata ombi...</translation>
 <translation id="1225211345201532184">Kipengee cha rafu cha 5</translation>
-<translation id="1225404570112441414">Ongeza tovuti hii kwenye rafu yako ili uitumie wakati wowote.</translation>
 <translation id="1227507814927581609">Uthibitishaji ulishindwa wakati wa kuunganishwa kwenye "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menyu ya mfumo</translation>
 <translation id="1232569758102978740">Hakina Jina</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Alamisho za Faili ya HTML</translation>
 <translation id="1303671224831497365">Hakuna vifaa vya Bluetooth vilivyopatikana</translation>
 <translation id="1306606229401759371">Badilisha mipangilio</translation>
-<translation id="1307398858972670978">Fikia manenosiri yako kutoka kwenye kifaa chochote katika <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Lo!  Mfumo umeshindwa kuhifadhi data ya ufikiaji wa API ya muda mrefu kwa kifaa hiki.</translation>
 <translation id="1313405956111467313">Usanidi wa proksi kiotomatiki</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Tafuta</translation>
 <translation id="1386387014181100145">Hujambo.</translation>
 <translation id="138784436342154190">Ungependa kurejesha ukurasa unaoanza chaguo-msingi?</translation>
-<translation id="1389297115360905376">Hii inaweza tu kuongezwa kutoka kwenye <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Fungua kama Kichupo cha Kawaida</translation>
-<translation id="1391807639023934267">Ukurasa wa kasi zaidi umepakiwa.</translation>
 <translation id="1393283411312835250">Jua na mawingu</translation>
 <translation id="1395262318152388157">Tafuta Kitelezi</translation>
 <translation id="1395730723686586365">Kisasishaji kimeanza</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Unasasisha kwenda toleo lisilo imara la <ph name="PRODUCT_NAME" /> ambalo lina vipengele ambavyo vinaendelea kuundwa. Hitilafu zisizotarajiwa na kuacha kufanya kazi kutatokea. Tafadhali endelea kwa tahadhari.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (Kitambulisho cha kiendelezi "<ph name="EXTENSION_ID" />") hakiruhusiwi kwa kipindi cha aina hii.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Lo! Imeshindwa kuzindua ufunguo binafsi wa RSA usio na utaratibu.</translation>
 <translation id="1420834118113404499">Leseni za maudhui</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> uruhusu kuoanisha</translation>
 <translation id="1426410128494586442">Ndio</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Nakili Anwani ya Sauti</translation>
 <translation id="1465827627707997754">Kipande cha piza</translation>
 <translation id="1467432559032391204">Kushoto</translation>
-<translation id="1467999917853307373"><ph name="URL" /> inataka kuhifadhi data kwenye kifaa chako milele.</translation>
-<translation id="1470719357688513792">Mipangilio mipya ya kidakuzi itaanza kutumika baada ya kupakia upya ukurasa.</translation>
 <translation id="1470811252759861213">Ili upate viendelezi vyako kwenye kompyuta zako zote, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" haikupakiwa. Hakuna nafasi ya kutosha katika Hifadhi yako ya Google.</translation>
 <translation id="1475502736924165259">Una vyeti kwenye faili ambavyo havilangani na aina nyingine yoyote</translation>
@@ -365,6 +355,7 @@
 <translation id="15373452373711364">Kishale kikubwa cha kipanya</translation>
 <translation id="1543284117603151572">Zilizoletwa Kutoka Kivinjari cha Edge</translation>
 <translation id="1545177026077493356">Skrini Nzima Kiotomatiki</translation>
+<translation id="1545775234664667895">Mandhari  "<ph name="THEME_NAME" />"  imesanidiwa</translation>
 <translation id="1545786162090505744">URL iliyo na %s katika nafasi ya hoja</translation>
 <translation id="1546280085599573572">Kiendelezi hiki kimebadilisha ukurasa unaoonyeshwa unapobofya kitufe cha Mwanzo.</translation>
 <translation id="1547572086206517271">Unahitaji kuonyesha upya</translation>
@@ -441,11 +432,9 @@
     <ph name="BEGIN_BOLD" />kukagua<ph name="END_BOLD" /> tovuti ambazo mtumiaji anayesimamiwa ametembelea, na
     <ph name="BEGIN_BOLD" />kudhibiti<ph name="END_BOLD" /> mipangilio mingine.</translation>
 <translation id="1648943974594387137">Muda wa matumizi ya maelezo ya kuingia katika akaunti umekwisha</translation>
-<translation id="1649641629389702691">&lt;haijaonyesha mistari <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Onyesha chaguo za kuingiza data</translation>
 <translation id="1650709179466243265">Ongeza www. na .com na ufungue anwani</translation>
 <translation id="1651008383952180276">Lazima uweke kauli ya siri sawa mara mbili</translation>
-<translation id="1652972346408808053">Nenosiri limehifadhiwa. Fikia manenosiri yako kutoka kwenye kifaa chochote katika <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Ongeza printa kwenye Google Cloud Print ili uweze kuchapisha kutoka mahali popote.}other{Ongeza printa # kwenye Google Cloud Print ili uweze kuchapisha kutoka mahali popote.}}</translation>
 <translation id="1657406563541664238">Saidia kuboresha <ph name="PRODUCT_NAME" /> kwa kutumia Google takwimu za matumizi na ripoti wakati wowote huduma hii inapoacha kufanya kazi.</translation>
 <translation id="1658424621194652532">Ukarasa huu unafikia maikrofoni yako.</translation>
@@ -504,7 +493,7 @@
 <translation id="1756681705074952506">Mbinu ya uingizaji</translation>
 <translation id="175772926354468439">Washa mandhari</translation>
 <translation id="1758018619400202187">EAP-TLS</translation>
-<translation id="17584710573359123">Angalia katika Duka la Wavuti la Chrome</translation>
+<translation id="17584710573359123">Angalia katika Duka la Chrome kwenye Wavuti</translation>
 <translation id="1758831820837444715">Sanidi mtandao wa Ethernet</translation>
 <translation id="1763046204212875858">Unda mikato ya programu</translation>
 <translation id="1763108912552529023">Endelea kugundua</translation>
@@ -672,7 +661,6 @@
 <translation id="2045969484888636535">Endelea kuzuia vidakuzi</translation>
 <translation id="204622017488417136">Kifaa chako kitarejeshwa kwenye toleo la awali lililosakinishwa la Chrome. Akaunti za watumiaji na data zote za karibu zitaondolewa. Hili haliwezi kutenduliwa.</translation>
 <translation id="2048182445208425546">Kufikia maelezo ya shughuli kwenye mtandao wako</translation>
-<translation id="2049137146490122801">Ufikiaji wa faili za karibu kwenye mashine yako unalemazwa na msimamizi wako.</translation>
 <translation id="204914487372604757">Unda njia mkato</translation>
 <translation id="2050339315714019657">Wima</translation>
 <translation id="2053312383184521053">Data ya Wakati wa Hali Tulivu</translation>
@@ -706,7 +694,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Bado hakijapakiwa</translation>
 <translation id="2107494551712864447">Ongeza alama ya kidole</translation>
-<translation id="2111843886872897694">Programu sharti zitolewe kutoka kwenye mpangishaji anayeathirika.</translation>
 <translation id="2112877397266219826">Washa kidhibiti chako cha kugusa ili niweke mipangilio</translation>
 <translation id="21133533946938348">Bandikiza Kichupo</translation>
 <translation id="2113479184312716848">Fungua Faili...</translation>
@@ -793,7 +780,6 @@
 <translation id="2226720438730111184">Tueleze Kinachotendeka</translation>
 <translation id="2229161054156947610">Zimesalia zaidi ya saa 1</translation>
 <translation id="222931766245975952">Faili imepunguzwa</translation>
-<translation id="222949136907494149"><ph name="URL" /> inataka kutumia eneo lako la kompyuta.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Haiwezi kuunda folda "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Bofya ili uangalie doodle ya leo</translation>
@@ -881,7 +867,6 @@
 <translation id="236141728043665931">Zuia ufikiaji wa maikrofoni kila wakati</translation>
 <translation id="2367972762794486313">Onyesha programu</translation>
 <translation id="2371076942591664043">Fungua baada ya &amp;kumaliza</translation>
-<translation id="237336063998926520">Tumia anwani yako ya IP ili ubainishe eneo</translation>
 <translation id="2377319039870049694">Tumia mwonekano wa orodha</translation>
 <translation id="2377667304966270281">Mabadilko ya Hifadhi</translation>
 <translation id="2378075407703503998">Faili <ph name="SELCTED_FILE_COUNT" /> zimezochaguliwa</translation>
@@ -928,7 +913,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> inataka kunakili faili kutoka <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Kitambulisho cha Kitufe cha Mamlaka ya Uthibitishaji</translation>
 <translation id="2462752602710430187">Imeongeza <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Leta Alamisho</translation>
 <translation id="2464089476039395325">Seva Mbadala ya HTTP</translation>
 <translation id="2468902267404883140">Haiwezi kuunganisha kwenye simu yako. Hakikisha kuwa unatumia simu ya Android inayooana, ambayo imewashwa na unayoweza kufikia. &lt;a&gt;Pata maelezo zaidi&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Viendelezi visivyotumika vimezimwa</translation>
@@ -944,7 +928,6 @@
 <translation id="2485422356828889247">Ondoa</translation>
 <translation id="2487067538648443797">Ongeza alamisho mpya</translation>
 <translation id="248861575772995840">Imeshindwa kupata simu. Hakikisha kuwa Bluetooth ya kifaa chako cha <ph name="DEVICE_TYPE" /> imewashwa. &lt;a&gt;Pata maelezo zaidi&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Programu-jalizi (<ph name="PLUGIN_NAME" />) imekwama.</translation>
 <translation id="2489428929217601177">siku iliyopita</translation>
 <translation id="2489918096470125693">Ongeza &amp;Folda...</translation>
 <translation id="249113932447298600">Samahani, kifaa <ph name="DEVICE_LABEL" /> hakihimiliwi kwa wakati huu.</translation>
@@ -998,13 +981,11 @@
 <translation id="2563856802393254086">Hongera! Huduma yako ya data ya '<ph name="NAME" />' imeanza kutumika na iko tayari kwa matumizi.</translation>
 <translation id="2566124945717127842">Tumia Powerwash ili uweke upya kifaa chako cha <ph name="IDS_SHORT_PRODUCT_NAME" /> kiwe kama kipya.</translation>
 <translation id="2568774940984945469">Hifadhi ya Upau wa Maelezo</translation>
-<translation id="2570000010887652771">Data iliyookolewa.</translation>
 <translation id="257088987046510401">Mandhari</translation>
 <translation id="2572032849266859634">Idhini ya kufikia kusoma tu kwenye <ph name="VOLUME_NAME" /> imeruhusiwa.</translation>
 <translation id="2573269395582837871">Chagua picha na jina</translation>
 <translation id="2575247648642144396">Aikoni hii itaonekana wakati kiendelezi kitakapoweza kufanya kazi kwenye ukurasa wa sasa. Tumia kiendelezi hiki kwa kubofya aikoni au kwa kubonyeza <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Imeshindwa kupata simu yako. Hakikisha kuwa kifaa chako cha <ph name="DEVICE_TYPE" /> kimeunganishwa kwenye Wi-Fi au mtandao wa simu. &lt;a&gt;Pata maelezo zaidi&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Tayari kuna faili ya CRX iliyo na jina hili.</translation>
 <translation id="257779572837908839">Weka mipangilio kuwa Chromebox ya mikutano</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Imeshindwa kuondoa hifadhi<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1065,7 +1046,6 @@
 <translation id="2653266418988778031">Ukifuta cheti cha Mamlaka ya Uthibitishaji (CA), kivinjari chako hakitaamini tena cheti chochote kitakachotolewa na CA hiyo.</translation>
 <translation id="2653659639078652383">Wasilisha</translation>
 <translation id="265390580714150011">Thamani ya Uga</translation>
-<translation id="2654286334048437383">Hamisha Alamisho</translation>
 <translation id="2655386581175833247">Cheti cha mtumiaji:</translation>
 <translation id="2660779039299703961">Tukio</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1259,7 +1239,6 @@
 <translation id="2908162660801918428">Ongeza Ghala la Vyombo vya habari kwa Saraka</translation>
 <translation id="2908789530129661844">Kuza skrini nje</translation>
 <translation id="2910318910161511225">Unganisha kwenye mtandao na ujaribu tena</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> inataka kutumia kipazasauti chako.</translation>
 <translation id="2913331724188855103">Ruhusu tovuti zihifadhi na kusoma data ya vidakuzi (imependekezwa)</translation>
 <translation id="2916073183900451334">Kichupo cha Kubonyeza kwenye ukurasa wavuti kinaangazia viungo, pamoja na nyuga za fomu</translation>
 <translation id="2916745397441987255">Tafuta katika viendelezi</translation>
@@ -1412,7 +1391,6 @@
 <translation id="3141318088920353606">Inasikiliza...</translation>
 <translation id="3141917231319778873">Ombi hili maalum halitumiki kwenye: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">IMEKAMILIKA</translation>
-<translation id="3144135466825225871">Imeshindwa kubadilisha faili ya crx. Angalia kuona ikiwa faili inatumika.</translation>
 <translation id="3144647712221361880">Fungua kiungo ukitumia</translation>
 <translation id="3149510190863420837">Programu za Chrome</translation>
 <translation id="3150927491400159470">Upakiaji upya Thabiti</translation>
@@ -1522,7 +1500,6 @@
 <translation id="3309747692199697901">Tekeleza kwenye Tovuti Zote Kila wakati</translation>
 <translation id="3312424061798279731">Lugha zinazotumika</translation>
 <translation id="3312903956926554846">Sakinisha kwenye kompyuta ya mezani</translation>
-<translation id="3313473140726597081">Ukurasa wako unaoanza umebadilishwa kuwa <ph name="URL" />. Ili uzime viendelezi vinavyobadilisha ukurasa wako unaoanza, bofya Rejesha.</translation>
 <translation id="3313590242757056087">Ili kubainisha tovuti ambayo mtumiaji anayesimamiwa anaweza kutazama, unaweza kusanidi vikwazo na mipangilio kwa kutembelea <ph name="MANAGEMENT_URL" />. Iwapo hutabadilisha mipangilio hii ya msingi, <ph name="USER_DISPLAY_NAME" /> anaweza kuvinjari tovuti zote kwenye mtandao.</translation>
 <translation id="3313622045786997898">Thamani ya Sahihi ya Cheti</translation>
 <translation id="3315158641124845231">Ficha <ph name="PRODUCT_NAME" /></translation>
@@ -1535,7 +1512,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Maelezo ya programu</translation>
 <translation id="3335947283844343239">Fungua Tena Kichupo Kilichofugwa</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> ilifungwa kwa sababu imepitwa na wakati.</translation>
 <translation id="3340978935015468852">mipangilio</translation>
 <translation id="3341703758641437857">Ruhusu kufikia URL za faili</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ingependa kuondoa kiendelezi hiki.</translation>
@@ -1570,7 +1546,6 @@
 <translation id="3386219708421216619">Alamisho Imeongezwa</translation>
 <translation id="3389312115541230716">Bofya kitufe cha kulia cha kipanya chako katika aikoni ya <ph name="SMALL_PRODUCT_LOGO" /> kilicho kwenye upau wakazi</translation>
 <translation id="3391716558283801616">Kichupo cha 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> inataka kutumia kamera na kipazasauti chako.</translation>
 <translation id="3396331542604645348">Printa iliyochaguliwa haipatikani au haijasakinishwa vizuri. Angalia printa yako au ujaribu kuchagua printa nyingine.</translation>
 <translation id="3399432415385675819">Arifa zitazimwa</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1682,10 +1657,8 @@
 <translation id="3550915441744863158">Chrome husasisha kiotomatiki, kwa hivyo, kila wakati utakuwa na toleo jipya zaidi</translation>
 <translation id="3551320343578183772">Funga Kichupo</translation>
 <translation id="3552780134252864554">Kitafutwa Utakapofunga ukurasa</translation>
-<translation id="355298399003313926"><ph name="URL" /> inataka kushughulikia matukio ya zana za walio na matatizo ya kuona au kusikia.</translation>
 <translation id="3555812735919707620">Ondoa kiendelezi</translation>
 <translation id="3556000484321257665">Mtambo wako wa kutafuta umebadilishwa kuwa <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Thamani ya kuingizwa kwa ufunguo binafsi sharti iwe njia halali.</translation>
 <translation id="3563432852173030730">Programu ya skrini nzima haikupakuliwa.</translation>
 <translation id="3564334271939054422">Mtandao wa Wi-Fi unaotumia <ph name="NETWORK_ID" /> unaweza kukuhitaji utembelee ukurasa wake wa kuingia katika akaunti.</translation>
 <translation id="3564708465992574908">Viwango vya Kukuza</translation>
@@ -1707,7 +1680,6 @@
 <translation id="3593965109698325041">Vizuizi vya Jina la Cheti</translation>
 <translation id="3596235046596950091">Washa huduma za wingu</translation>
 <translation id="3599863153486145794">Hufuta historia kwenye vifaa vyote ulivyotumia kuingia katika akaunti. Huenda Akaunti yako ya Google ikawa na aina nyingine za historia ya kuvinjari kwenye <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
-<translation id="3600456501114769456">Ufikiaji wa faili za ndani kwenye kifaa chako umezimwa na msimamizi wako.</translation>
 <translation id="3600792891314830896">Zima sauti katika tovuti</translation>
 <translation id="3603177256297531067">Imeshindwa Kutafsiri Ukurasa Huu</translation>
 <translation id="3603533104205588786">Unaweza kubofya nyota ili ualamishe ukurasa</translation>
@@ -1732,7 +1704,6 @@
 <translation id="3625258641415618104">Picha za skrini zimezimwa</translation>
 <translation id="3625870480639975468">Weka upya ukuzaji</translation>
 <translation id="3626281679859535460">Ung'aavu</translation>
-<translation id="3627052133907344175">Kiendelezi kinahitaji "<ph name="IMPORT_NAME" />" kwa toleo la chini zaidi la "<ph name="IMPORT_VERSION" />", lakini toleo "<ph name="INSTALLED_VERSION" />" ndilo limesakinishwa pekee.</translation>
 <translation id="3627320433825461852">Imesalia chini ya dakika 1</translation>
 <translation id="3627588569887975815">Fungua kiungo katika dirisha fiche</translation>
 <translation id="3627671146180677314">Muda wa Ku</translation>
@@ -1762,7 +1733,6 @@
 <translation id="3668570675727296296">Mipangilio ya lugha</translation>
 <translation id="3668823961463113931">Vishikilizi</translation>
 <translation id="3670229581627177274">Washa Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> inataka kuhifadhi kabisa data kubwa kwenye kompyuta yako ya ndani.</translation>
 <translation id="3672681487849735243">Hitilafu ya kiwanda imegunduliwa</translation>
 <translation id="367645871420407123">acha tupu ukitaka kuweka nenosiri msingi kwenye thamani ya picha ya jaribio la chaguo-msingi</translation>
 <translation id="3678156199662914018">Kiendelezi: <ph name="EXTENSION_NAME" /></translation>
@@ -1840,11 +1810,9 @@
 <translation id="3786301125658655746">Uko nje ya mtandao</translation>
 <translation id="3788401245189148511">Ingeweza:</translation>
 <translation id="3789841737615482174">Sakinisha</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> inafanya kazi kwenye eneokazi pekee.</translation>
 <translation id="379082410132524484">Muda wa matumizi wa kadi yako umekwisha</translation>
 <translation id="3792890930871100565">Kata muunganisho wa printa</translation>
 <translation id="379422718204375917">Tumia Smart Lock kuingia katika akaunti yako</translation>
-<translation id="3794595850995182458">Funga ukurasa</translation>
 <translation id="3796648294839530037">Vipendeleo vya Mitandao:</translation>
 <translation id="3797900183766075808">&amp;Tafuta <ph name="SEARCH_ENGINE" /> upate “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Hukuruhusu kuwasha au kuzima kipengele cha kugusa ili kubofya</translation>
@@ -1975,7 +1943,6 @@
 <translation id="3979748722126423326">Washa <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Aina batili ya kuhifadhi imeingizwa.</translation>
 <translation id="3983586614702900908">vifaa kutoka kwa mchuuzi asiyejulikana</translation>
-<translation id="3984413272403535372">Hitilafu katika kuweka sahihi kwenye kiendelezi.</translation>
 <translation id="3987938432087324095">Samahani, haikurekodi sauti hiyo.</translation>
 <translation id="3988996860813292272">Chagua saa za eneo</translation>
 <translation id="3989635538409502728">Ondoka</translation>
@@ -2029,7 +1996,6 @@
 <translation id="4087470595660267445">Sakinisha programu na michezo kutoka Google Play kwenye Chromebook yako. &lt;a target="_blank" href="<ph name="URL" />"&gt;Pata maelezo zaidi&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Kubali ombi la kundi</translation>
 <translation id="4090103403438682346">Washa Ufikiaji Uliothibitishwa</translation>
-<translation id="4090404313667273475"><ph name="PLUGIN_NAME" /> inahitajika ili kuonyesha baadhi ya vipengee kwenye ukurasa huu.</translation>
 <translation id="4090535558450035482">(Kiendelezi hiki kinasimamiwa na hakiwezi kuondolewa.)</translation>
 <translation id="4091434297613116013">karatasi</translation>
 <translation id="4093955363990068916">Faili ya ndani:</translation>
@@ -2363,7 +2329,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> sasa inaweza kulinganisha manenosiri yako.</translation>
 <translation id="4715553623069266137">mfupi sana (sekunde 0.8)</translation>
 <translation id="4716483597559580346">Tumia Powerwash kuimarisha usalama</translation>
-<translation id="471800408830181311">Imeshindwa kutoa ufunguo binafsi.</translation>
 <translation id="4720113199587244118">Ongeza Vifaa</translation>
 <translation id="4720185134442950733">Mtandao wa data ya simu ya mkononi</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> inashiriki skrini yako.</translation>
@@ -2500,7 +2465,6 @@
 <translation id="4917385247580444890">Thabiti</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> inataka kuwasiliana na kiendelezi "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Kubali</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> inataka kutumia kamera yako.</translation>
 <translation id="4920887663447894854">Tovuti zifuatazo zimezuiwa zisifuatilie mahali ulipo kwenye ukurasa huu:</translation>
 <translation id="492299503953721473">Ondoa programu za Android</translation>
 <translation id="4923279099980110923">Ndiyo, nataka kusaidia</translation>
@@ -2541,7 +2505,6 @@
 <translation id="4980805016576257426">Kiendelezi kina programu hasidi.</translation>
 <translation id="498294082491145744">Badilisha mipangilio yako inayodhibiti idhini ya kufikia vipengele kama vile vidakuzi, JavaScript, programu-jalizi, eneo la kijiografia, maikrofoni, kamera n.k.</translation>
 <translation id="4988526792673242964">Kurasa</translation>
-<translation id="4988792151665380515">Imeshindwa kuhamisha ufunguo wa umma.</translation>
 <translation id="49896407730300355">Zungusha kinyume saa</translation>
 <translation id="4989966318180235467">Ukaguzi na ukurasa wa mandharinyuma</translation>
 <translation id="4990343175649730969">Pakua Zana ya Kusafisha Chrome</translation>
@@ -2570,7 +2533,6 @@
 <translation id="5026874946691314267">Usionyeshe hii tena</translation>
 <translation id="5027550639139316293">Cheti cha Barua Pepe</translation>
 <translation id="5027562294707732951">Ongeza kiendelezi</translation>
-<translation id="5028012205542821824">Usakinishaji haujawezeshwa.</translation>
 <translation id="5029568752722684782">Futa nakala</translation>
 <translation id="5030338702439866405">Kimetolewa Na</translation>
 <translation id="5036662165765606524">Usiruhusu tovuti yoyote kupakua faili nyingi kiotomatiki</translation>
@@ -2606,7 +2568,6 @@
 <translation id="509429900233858213">Hitilafu fulani imetokea.</translation>
 <translation id="5094721898978802975">Kuwasiliana na programu za asili zinazoshirikiana</translation>
 <translation id="5097002363526479830">Imeshindwa kuunganisha kwenye mtandao '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Haiwezi kupata kijia kamili katika saraka hadi kifurushi.</translation>
 <translation id="5099354524039520280">juu</translation>
 <translation id="5100114659116077956">Ili tukuletee vipengee vipya, Chromebox yako inahitaji kusasisha.</translation>
 <translation id="5101042277149003567">Fungua alamisho zote</translation>
@@ -2655,7 +2616,6 @@
 <translation id="5170568018924773124">Onyesha katika folda</translation>
 <translation id="5171045022955879922">Tafuta au charaza URL</translation>
 <translation id="5171343362375269016">Hifadhi Iliyobadilishwa</translation>
-<translation id="5175870427301879686"><ph name="URL" /> inataka kuhifadhi kabisa data kwenye kompyuta yako ya karibu.</translation>
 <translation id="5177479852722101802">Endelea kuzuia ufikiaji wa kamera na maikrofoni</translation>
 <translation id="5177526793333269655">Mwonekano wa vijipicha</translation>
 <translation id="5177549709747445269">Unatumia data ya kifaa cha mkononi</translation>
@@ -2734,7 +2694,6 @@
 <translation id="529175790091471945">Futa kifaa hiki</translation>
 <translation id="5293170712604732402">Rejesha mipangilio kwenye chaguo-msingi halisi</translation>
 <translation id="5298219193514155779">Mandhari imeunda na</translation>
-<translation id="5298363578196989456">Haiwezi kuleta kiendelezi "<ph name="IMPORT_NAME" />" kwa sababu si sehemu iliyoshirikiwa.</translation>
 <translation id="5299109548848736476">Usifuatilie</translation>
 <translation id="5299682071747318445">Data yote imesimbwa kwa njia fiche kwa kaulisiri yako ya usawazishaji</translation>
 <translation id="5300589172476337783">Onyesha</translation>
@@ -2762,7 +2721,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" inataka kuoanisha</translation>
 <translation id="5332624210073556029">Saa za eneo:</translation>
 <translation id="5334142896108694079">Akiba ya Hati</translation>
-<translation id="533433379391851622">Toleo linalotarajiwa "<ph name="EXPECTED_VERSION" />", lakini toleo lilikuwa "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Angalia chanzo</translation>
 <translation id="5335458522276292100">Inahifadhi nakala ya <ph name="FILE_COUNT" /> kwenye <ph name="BEGIN_LINK" />Hifadhi ya Google<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Imesakinishwa na mhusika mwingine.</translation>
@@ -2800,7 +2758,6 @@
 <translation id="5390100381392048184">Ruhusu tovuti kucheza sauti</translation>
 <translation id="5390284375844109566">Hifadhidata iliyoorodheshwa</translation>
 <translation id="5390743329570580756">Tuma kwa</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> kwenye <ph name="PEPPER_PLUGIN_DOMAIN" /> inataka kufikia kompyuta yako.</translation>
 <translation id="5397794290049113714">Wewe</translation>
 <translation id="5398572795982417028">Ukurasa wa kurejelea ambao hauruhusiwi kuingia, kikomo ni <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Matangazo yamezuiwa</translation>
@@ -2862,7 +2819,6 @@
 <translation id="5485754497697573575">Hifadhi Upya Vichupo Vyote</translation>
 <translation id="5486261815000869482">Thibitisha nenosiri</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> inashiriki skrini yako na <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Thamani ya uingizaji ya ufunguo binafsi sharti iwepo.</translation>
 <translation id="5486561344817861625">Unda Uanzishaji upya wa Ukurasa</translation>
 <translation id="5487521232677179737">Futa data</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' imenakiliwa</translation>
@@ -2945,7 +2901,6 @@
 <translation id="5600706100022181951">Sasisho litapakuliwa kwa kutumia MB <ph name="UPDATE_SIZE_MB" /> za data ya simu. Je, ungependa kuendelea?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Mitambo mingine ya kutafuta</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> kwenye <ph name="PEPPER_PLUGIN_DOMAIN" /> inataka kufikia kifaa chako.</translation>
 <translation id="5608580678041221894">Gusa vitufe vinavyofuata ili urekebishe au usogeze eneo la kupunguzia</translation>
 <translation id="5609231933459083978">Programu inaonekana kuwa batili.</translation>
 <translation id="5610038042047936818">Badili utumie hali ya kamera</translation>
@@ -2969,7 +2924,7 @@
 <translation id="563535393368633106">Uliza kabla ya kufikia (imependekezwa)</translation>
 <translation id="5636996382092289526">Ili kutumia <ph name="NETWORK_ID" /> huenda kwanza ukahitaji kutembelea <ph name="LINK_START" /> ukurasa wa kuingia wa mtandao<ph name="LINK_END" />, ambao utafunguka otomatiki katika sekunde chache. Ikiwa haitafanyika, mtandao hauwezi kutumika.</translation>
 <translation id="5637476008227280525">Washa data ya kifaa cha mkononi</translation>
-<translation id="5638309510554459422">Pata viendelezi na mandhari katika <ph name="BEGIN_LINK" />Duka la Chrome Wavutini<ph name="END_LINK" /></translation>
+<translation id="5638309510554459422">Pata viendelezi na mandhari katika <ph name="BEGIN_LINK" />Duka la Chrome kwenye Wavuti<ph name="END_LINK" /></translation>
 <translation id="5638497698949808140">Ulisasishwa saa <ph name="HOURS" /> zilizopita</translation>
 <translation id="5639549361331209298">Pakia upya ukurasa huu, shikilia ili kuona chaguo zaidi</translation>
 <translation id="5642508497713047">Kitia Sahihi cha CRL</translation>
@@ -3188,7 +3143,6 @@
 <translation id="5990386583461751448">Imetafsiriwa</translation>
 <translation id="5991049340509704927">Zidisha</translation>
 <translation id="5993332328670040093">Matumizi yako ya data hayatapimwa tena.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> huenda isiwezi kujisasisha.</translation>
 <translation id="600424552813877586">programu batili.</translation>
 <translation id="6005695835120147974">Ruta ya Maudhui</translation>
 <translation id="6006484371116297560">Kawaida</translation>
@@ -3213,6 +3167,7 @@
 <translation id="604001903249547235">Hifadhi rudufu ya wingu</translation>
 <translation id="6040143037577758943">Funga</translation>
 <translation id="6040852767465482106">Kitambulisho Hakijulikani</translation>
+<translation id="6041155700700864984">Ondoka kwenye Skrini Nzima</translation>
 <translation id="604124094241169006">Otomatiki</translation>
 <translation id="6042169520002885235">Chagua mtengenezaji na muundo wa printa</translation>
 <translation id="6042308850641462728">Zaidi</translation>
@@ -3229,7 +3184,6 @@
 <translation id="6056710589053485679">Upakiaji upya wa Kawaida</translation>
 <translation id="6059652578941944813">Hadhi ya Vyeti:</translation>
 <translation id="6059925163896151826">Vifaa vya USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> imeacha kufanya kazi.</translation>
 <translation id="6064217302520318294">Kufunga skrini</translation>
 <translation id="6065289257230303064">Vipengele vya Saraka ya Vichwa cha Vyeti</translation>
 <translation id="6068338049763724728">Wezesha usajili wa mbali</translation>
@@ -3338,7 +3292,6 @@
 <translation id="6237816943013845465">Hukuruhusu kurekebisha ubora wa skrini yako</translation>
 <translation id="6238923052227198598">Kiweke kidokezo cha hivi punde kwenye skrini iliyofungwa</translation>
 <translation id="6239558157302047471">Pakia fremu upya</translation>
-<translation id="624022915548992686">Funga Ukurasa</translation>
 <translation id="6241530762627360640">Fikia maelezo kuhusu vifaa vya Bluetooth vilivyooanishwa na mfumo wako na ugundue vifaa vya karibu vya Bluetooth.</translation>
 <translation id="6243774244933267674">Seva haipatikani.</translation>
 <translation id="6246413617632217567">Mtumiaji anayesimamiwa hakuweza kuletwa. Tafadhali angalia ruhusa na nafasi ya hifadhi ya diski kuu kisha ujaribu tena.</translation>
@@ -3387,13 +3340,11 @@
 <translation id="6312403991423642364">Hitilafu isiyojulikana ya mtandao</translation>
 <translation id="6313641880021325787">ONDOKA KWENYE VR</translation>
 <translation id="6314819609899340042">Umefaulu kuwasha vipengele vya kutataua kwenye kifaa hiki cha <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Kurasa zako zinazoanza zimebadilishwa kuwa <ph name="URL" />. Ili uzime viendelezi vinavyobadilisha ukurasa wako unaoanza, bofya Rejesha.</translation>
 <translation id="6315493146179903667">Leta zote mbele</translation>
 <translation id="6316806695097060329">Kifaa hiki cha <ph name="SHORT_PRODUCT_NAME" /> kiliundwa ili kikupe hali bora kabisa ya wavuti.</translation>
 <translation id="6317318380444133405">Haitumiki tena.</translation>
 <translation id="6317369057005134371">Inasubiri dirisha la kutuma maombi...</translation>
 <translation id="6318407754858604988">Upakuaji umeanza</translation>
-<translation id="6322279351188361895">Imeshindwa kusoma ufunguo wa kibinafsi</translation>
 <translation id="6325191661371220117">Zima uzinduzi wa otomatiki</translation>
 <translation id="6326175484149238433">Ondoa kwenye Chrome</translation>
 <translation id="6326855256003666642">Shughuli Zinazotumia Kiendelezi</translation>
@@ -3402,7 +3353,6 @@
 <translation id="6333049849394141510">Chagua cha kusawazisha</translation>
 <translation id="6333064448949140209">Faili itatumwa kwa Google kwa ajili ya utatuzi</translation>
 <translation id="6333834492048057036">Sehemu ya anwani ya kulenga ya kutafuta</translation>
-<translation id="6336907568130557310">Manenosiri yako yataonekana na mtu yeyote anayeweza kuhamisha faili. Usishiriki faili na mtu yeyote na ifute baada ya kuihamisha.</translation>
 <translation id="6339668969738228384">Unda wasifu mpya wa <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Imeshindwa kuunganisha kwenye seva. Tafadhali angalia muunganisho wa mtandao wako kisha ujaribu tena. Kama tatizo litaendelea kwa muda, zima kisha uwashe Chromebook yako.</translation>
 <translation id="6340071272923955280">Itifaki ya Kuchapisha ya Intaneti (IPPS)</translation>
@@ -3431,7 +3381,6 @@
 <translation id="6385543213911723544">Tovuti zinaweza kuhifadhi na kusoma data ya vidakuzi</translation>
 <translation id="6388771388956873507">Pata kitambua alama ya kidole kwenye kifaa chako na ukiguse kwa kidole chako</translation>
 <translation id="6390799748543157332">Kurasa unazoangalia katika dirisha hili hazitaonekana katika historia ya kivinjari na hazitaacha alama nyingine, kama vile vidakuzi, kwenye kompyuta baada ya wewe kufunga madirisha yote Geni yaliyo wazi. Hata hivyo, faili zozote unazopakua zitahifadhiwa.</translation>
-<translation id="6391538222494443604">Lazima kuwe na saraka ya uingizaji.</translation>
 <translation id="6395423953133416962">Tuma <ph name="BEGIN_LINK1" />maelezo ya mfumo<ph name="END_LINK1" /> na <ph name="BEGIN_LINK2" />hesabu<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Koma Kuongea</translation>
 <translation id="6397592254427394018">Fungua alamisho zote katika dirisha fiche</translation>
@@ -3489,7 +3438,6 @@
 <translation id="6458308652667395253">Dhibiti uzuiaji wa Javascript...</translation>
 <translation id="6459488832681039634">Tumia Iliyochaguliwa Kupata</translation>
 <translation id="6460601847208524483">Pata Ifuatayo</translation>
-<translation id="6462080265650314920">Programu sharti zitumike kwa aina ya maudhui "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Je, bado upo?</translation>
 <translation id="6463795194797719782">&amp;Hariri</translation>
 <translation id="6466988389784393586">&amp;Fungua Alamisho Zote</translation>
@@ -3619,7 +3567,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Je, ungependa Google itafsiri ukurasa huu kutoka <ph name="SOURCE_LANGUAGE" /> hadi <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Kifaa cha kuonyeshea kimeunganishwa</translation>
-<translation id="6677037229676347494">Kitambulisho kinachotarajiwa "<ph name="EXPECTED_ID" />", Kitambulisho kilichoko "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL ya Hoja</translation>
 <translation id="6680028776254050810">Badili Watumiaji</translation>
 <translation id="6680442031740878064">Nafasi inayopatikana: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3759,8 +3706,6 @@
 <translation id="6903534926908201625">Unaweza kuweka mapendeleo ya maelezo ambayo Google inakusanya katika <ph name="BEGIN_LINK" />Mipangilio<ph name="END_LINK" /> wakati wowote.</translation>
 <translation id="6904344821472985372">Batilisha ufikiaji wa faili</translation>
 <translation id="6904655473976120856">Bonyeza kitufe cha Programu ili uondoke</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> inataka kushiriki skrini yako.</translation>
-<translation id="6909461304779452601">Programu, viendelezi, na hati za mtumiaji haviwezi kuongezwa kwenye tovuti hii.</translation>
 <translation id="6910211073230771657">Imeondolewa</translation>
 <translation id="691024665142758461">Pakua faili nyingi</translation>
 <translation id="6911324888870229398">Muunganisho wa mtandao umekatika. Tafadhali jaribu kuangalia muunganisho wa mtandao wako au ujaribu kutumia mtandao mwingine wa Wi-Fi.</translation>
@@ -4097,7 +4042,6 @@
 <translation id="747114903913869239">Hitilafu: Haikuweza kufumbua kiendelezi</translation>
 <translation id="7473891865547856676">La Asante</translation>
 <translation id="747459581954555080">Rejesha zote</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> imekumbana na hitilafu.</translation>
 <translation id="7475671414023905704">URL ya Nenosiri la Netscape Lililopotea</translation>
 <translation id="7476454130948140105">Betri haina chaji ya kutosha ili kuweza kusasisha (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Kama umesahau kaulisiri yako, weka upya Usawazishaji kupitia <ph name="BEGIN_LINK" />Dashibodi ya Google<ph name="END_LINK" />.</translation>
@@ -4134,7 +4078,6 @@
 <translation id="7507930499305566459">Cheti cha Jibu la Hali</translation>
 <translation id="7508545000531937079">Onyesho la slaidi</translation>
 <translation id="7513029293694390567">Ingia katika tovuti kiotomatiki ukitumia kitambulisho kilichohifadhiwa. Kipengele kikizimwa, utaombwa kuthibitisha kila wakati kabla ya kuingia katika tovuti.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> inataka kutambua kifaa chako kwa njia ya kipekee ili icheze maudhui yaliyolindwa.</translation>
 <translation id="7517569744831774757">Rejesha mipangilio yake iliyotoka nayo kiwandani.</translation>
 <translation id="7517786267097410259">Tunga nenosiri -</translation>
 <translation id="7518150891539970662">Kumbukumbu za WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4164,7 +4107,6 @@
        Google na ujaribu kuunda mtumiaji anayesimamiwa tena.</translation>
 <translation id="756445078718366910">Fungua Dirisha la Kivinjari</translation>
 <translation id="7564847347806291057">Komesha shughuli</translation>
-<translation id="7565291891798266313">Mtambo wako wa kutafuta umebadilishwa kuwa <ph name="URL" />. Ili uzime viendelezi vinavyobadilisha mtambo wako wa kutafuta, bofya Rejesha.</translation>
 <translation id="7566118625369982896">Dhibiti viungo vya programu ya Google Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Data ya Chrome imefutwa</translation>
@@ -4173,7 +4115,6 @@
 <translation id="7573172247376861652">Chaji ya Betri</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Kusanya</translation>
-<translation id="7577815336900970562">Tumia WiFi au mtandao wa simu ili kubaini eneo</translation>
 <translation id="7579149537961810247">Zima Sauti za Tovuti</translation>
 <translation id="7580671184200851182">Cheza sauti moja kupitia spika zote (sauti ya mono)</translation>
 <translation id="7581462281756524039">Zana ya kusafisha</translation>
@@ -4280,6 +4221,7 @@
 <translation id="7773726648746946405">Hifadhi ya kipindi</translation>
 <translation id="7781335840981796660">Akaunti zote za mtumiaji na data ya ndani itaondolewa.</translation>
 <translation id="7782102568078991263">Hakuna mapendekezo zaidi kutoka katika Google</translation>
+<translation id="778330624322499012">Haikuweza kupakia <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Mipangilio ya usalama kwenye kompyuta yako imezuia faili hii.</translation>
 <translation id="7786207843293321886">Ondosha Mgeni</translation>
 <translation id="7786889348652477777">Pakia upya Programu</translation>
@@ -4443,7 +4385,6 @@
 <translation id="8001504501378762252">Huenda tovuti imeiba nenosiri lako</translation>
 <translation id="8004582292198964060">Kivinjari</translation>
 <translation id="8008356846765065031">Intaneti imekatizwa. Tafadhali kagua muunganisho wako wa intaneti.</translation>
-<translation id="8008765610824028412">Imeshindwa kupakia <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Tuma maelezo ya mfumo na maudhui ya ukurasa kwa Google kiotomatiki ili usaidie kugundua programu na tovuti hatari</translation>
 <translation id="8012382203418782830">Ukurasa huu umetafsiriwa.</translation>
 <translation id="8014154204619229810">Programu ya kusasisha inatekeleza kwa sasa. Onyesha upya baada ya dakika moja ili uangalie tena.</translation>
@@ -4560,7 +4501,6 @@
 <translation id="8191230140820435481">Kudhibiti programu, viendelezi na mandhari yako</translation>
 <translation id="8191453843330043793">Kitatuaji cha Seva Mbadala ya V8</translation>
 <translation id="8195027750202970175">Ukubwa kwenye diski</translation>
-<translation id="8195739004487400241">Ukurasa wako wa kwanza umebadilishwa kuwa <ph name="URL" />. Ili uzime viendelezi vinavyobadilisha ukurasa wako wa kwanza, bofya Rejesha.</translation>
 <translation id="8199300056570174101">Sifa za Kifaa na Mtandao (Huduma)</translation>
 <translation id="8200772114523450471">Endelea</translation>
 <translation id="8202160505685531999">Tafadhali andika tena nenosiri lako ili usasishe wasifu wako kwenye <ph name="DEVICE_TYPE" />.</translation>
@@ -4604,7 +4544,6 @@
 <translation id="8261378640211443080">Kiendelezi hiki hakijaorodheshwa katika <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> na huenda kiliongezwa pasipo ridhaa yako.</translation>
 <translation id="8261387128019234107">Ongeza akaunti ya <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Futa</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> haijatekelezwa katika muundo huu.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> imelemaza kiteuzi chako cha kipanya.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" ilianzisha skrini nzima.</translation>
 <translation id="8270242299912238708">Hati za PDF</translation>
@@ -4706,6 +4645,7 @@
 <translation id="8454288007744638700">Au, chagua mtandao mpya:</translation>
 <translation id="845627346958584683">Wakati wa Muda Kuisha</translation>
 <translation id="8456681095658380701">Jina batili</translation>
+<translation id="8457451314607652708">Leta alamisho</translation>
 <translation id="8460336040822756677">Ukizima kipengele cha Smart Lock cha <ph name="DEVICE_TYPE" />, hutaweza kufungua vifaa vya Chrome ukitumia simu yako. Utahitajika kuandika nenosiri lako.</translation>
 <translation id="8461329675984532579">Jina la mtoa huduma</translation>
 <translation id="84613761564611563">Mtandao unaweka Kiolesura ulichoomba, tafadhali subiri...</translation>
@@ -4737,7 +4677,6 @@
 <translation id="850875081535031620">Hakuna programu hasidi iliyopatikana</translation>
 <translation id="8512476990829870887">Komesha Shughuli</translation>
 <translation id="851263357009351303">Ruhusu <ph name="HOST" /> ionyeshe picha kila wakati</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" inatatua kivinjari hiki.</translation>
 <translation id="8521475323816527629">Zifikie programu zako haraka</translation>
 <translation id="8523493869875972733">Hifadhi Mabadiliko</translation>
 <translation id="8523849605371521713">Imeongezwa na sera</translation>
@@ -4793,7 +4732,6 @@
 <translation id="8620765578342452535">Sanidi miunganisho ya mtandao</translation>
 <translation id="8620790565535071193">Imeshindwa kutafuta</translation>
 <translation id="8622877356447980900">Je, unataka kutafsiri ukurasa huu?</translation>
-<translation id="8623004009673949077">Programu iliyo na kipengee cha maelezo ya 'kiosk_only' lazima isakinishwe katika skrini nzima ya Chrome OS.</translation>
 <translation id="8624205858755890468">Huwasha programu ya Mratibu ili kukuonyesha maelezo, programu na hatua zinazohusiana.</translation>
 <translation id="862542460444371744">Vi&amp;endelezi</translation>
 <translation id="8627151598708688654">Chagua chanzo</translation>
@@ -4942,7 +4880,6 @@
 <translation id="882204272221080310">Isasishe programu dhibiti kwa usalama wa ziada.</translation>
 <translation id="8823514049557262177">Nakili maandishi ya kiungo</translation>
 <translation id="8824701697284169214">Ongeza Uku&amp;rasa...</translation>
-<translation id="8827850355924932817">Tumia mtandao wa WiFi ili kubaini mahali</translation>
 <translation id="8828933418460119530">Jina la DNS</translation>
 <translation id="8830796635868321089">Kuangalia sasisho kumeshindwa kutumia mipangilio ya sasa ya proksi. Tafadhali rekebisha <ph name="PROXY_SETTINGS_LINK_START" />mipangilio yako ya proksi<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Mipangilio ya mtandao inadhibitiwa na <ph name="USER_EMAIL" />.</translation>
@@ -4974,9 +4911,7 @@
 <translation id="8879284080359814990">Onye&amp;sha kama Kichupo</translation>
 <translation id="8884961208881553398">Ongeza huduma mpya</translation>
 <translation id="8885197664446363138">Smart Lock haipatikani</translation>
-<translation id="8885905466771744233">Ufunguo binafsi wa kiendelezi kilichobainishwa tayari upo. Tumia ufunguo huo tena au uufute kwanza.</translation>
 <translation id="8888432776533519951">Rangi:</translation>
-<translation id="8892992092192084762">Mandhari <ph name="THEME_NAME" /> yamesakinishwa.</translation>
 <translation id="8893928184421379330">Samahani, kifaa <ph name="DEVICE_LABEL" /> kisingeweza kutambuliwa.</translation>
 <translation id="8895454554629927345">Orodha ya alamisho</translation>
 <translation id="88986195241502842">Ukurasa mmoja chini</translation>
@@ -4985,13 +4920,12 @@
 <translation id="8899285681604219177">Viendelezi Visivyotumika Vimezimwa</translation>
 <translation id="8899551033019439140">Inatafuta printa...</translation>
 <translation id="8899851313684471736">Fungua kiungo katika &amp;dirisha jipya</translation>
-<translation id="8902667442496790482">Fungua mipangilio ya chagua ili izungumze</translation>
+<translation id="8902667442496790482">Fungua mipangilio ya kipengele cha chagua ili izungumze</translation>
 <translation id="8903921497873541725">Kuza karibu</translation>
 <translation id="8904976895050290827">Usawazishaji wa Chrome</translation>
 <translation id="8908902564709148335">Ilani: Umewasha --ripoti-za-hati-zinazohitaji-kushughulikiwa kwenye kompyuta hii, ambayo inapunguza uwezo wa kiendelezi hiki. Hata hivyo, huenda vifaa vingine havitatumia ripoti hii au kimewashwa. Kwenye vifaa hivi, kiendelezi hiki kinaweza pia:</translation>
 <translation id="8910146161325739742">Shiriki skrini yako</translation>
 <translation id="8910222113987937043">Mabadiliko ya alamisho, historia, manenosiri, na mipangilio yako mingine hayatasawazishwa kwenye Akaunti yako ya Google. Hata hivyo, data yako ya sasa 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="8911079125461595075">Google imetia alama <ph name="EXTENSION_NAME" /> kama programu hasidi na usakinishaji umezuiwa.</translation>
 <translation id="8912793549644936705">Panua</translation>
 <translation id="8915370057835397490">Inapakia pendekezo</translation>
 <translation id="8916476537757519021">Fremu ndogo ya Hali Fiche: <ph name="SUBFRAME_SITE" /></translation>
@@ -5097,7 +5031,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Kipanya cha USB kimeunganishwa</translation>
 <translation id="9076523132036239772">Samahani, barua pepe au nenosiri lako havingeweza kuthibitishwa. Jaribu kuunganisha kwenye mtandao kwanza.</translation>
-<translation id="907841381057066561">Imeshindwa kuunda faili ya muda ya zip wakati wa kufungasha.</translation>
 <translation id="9084064520949870008">Fungua kama Dirisha</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> imezuiwa na sera ya biashara</translation>
 <translation id="9088917181875854783">Tafadhali thibitisha nenosiri hili limeonyeshwa kwenye "<ph name="DEVICE_NAME" />":</translation>
@@ -5188,11 +5121,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ingiza kaulisiri</translation>
 <translation id="939736085109172342">Folda mpya</translation>
-<translation id="941543339607623937">Ufunguo binafsi sio halali.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> inashiriki kichupo cha Chrome na sauti.</translation>
 <translation id="942954117721265519">Hakuna picha katika saraka hii.</translation>
 <translation id="945522503751344254">Tuma maoni</translation>
-<translation id="951981865514037445"><ph name="URL" /> inataka kutumia maelezo kuhusu mahali kifaa chako kilipo.</translation>
 <translation id="952992212772159698">Haijaamilishwa</translation>
 <translation id="9580706199804957">Imeshindwa kuunganisha kwenye huduma za Google</translation>
 <translation id="958515377357646513">Gusa ili upeleke mbele.</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index 10c05cb8..d7ff492 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">என்சைபர் மட்டுமே</translation>
 <translation id="1039337018183941703">தவறானது அல்லது சிதைந்த கோப்பு</translation>
 <translation id="1042174272890264476">உள்ளிணைந்த <ph name="SHORT_PRODUCT_NAME" /> இன் RLZ நூலகமும் உங்கள் கணினியில் அமைந்துள்ளது. தேடல்களையும், குறிப்பிட்ட விளம்பரப் பிரச்சாரத்தால் இயக்கப்படும் <ph name="SHORT_PRODUCT_NAME" /> இன் பயன்பாட்டையும் அளவிட தனிப்பட்டது அல்லாத, தனிப்பட்ட முறையில் அடையாளம் காண முடியாத குறியை RLZ ஒதுக்கும். சில சமயங்களில் இந்த லேபிள்கள் <ph name="PRODUCT_NAME" /> இன் Google தேடல் வினவல்களில் தோன்றும்.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> உங்கள் சாதனத்தில் அதிக அளவு தரவை நிரந்தரமாக சேமிக்க விரும்புகிறது.</translation>
 <translation id="1046059554679513793">அச்சோ, இந்தப் பெயர் முன்பே பயனில் உள்ளது!</translation>
 <translation id="1047431265488717055">இணைப்பு &amp;உரையை நகலெடு</translation>
 <translation id="1047726139967079566">இந்தப் பக்கத்தை புக்மார்க் செய்க...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">இயல்புத் தேடல் இன்ஜினை மீட்டமைக்கவா?</translation>
 <translation id="1177863135347784049">தனிப்பயன்</translation>
 <translation id="1178581264944972037">இடைநிறுத்து</translation>
-<translation id="1179803038870941185"><ph name="URL" /> MIDI சாதனங்களின் முழுக் கட்டுப்பாடையும் பெற விரும்புகிறது.</translation>
 <translation id="1181037720776840403">அகற்று</translation>
 <translation id="1183237619868651138">அக தற்காலிகச் சேமிப்பில் <ph name="EXTERNAL_CRX_FILE" />ஐ நிறுவ முடியாது.</translation>
 <translation id="1185924365081634987">இந்த நெட்வொர்க் பிழையைச் சரிசெய்ய, <ph name="GUEST_SIGNIN_LINK_START" />விருந்தினராக உலாவ<ph name="GUEST_SIGNIN_LINK_END" /> முயற்சிக்கலாம்.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{கணினியில் சேமிக்கப்பட்ட ஒரு கோப்பை அணுகும்}other{கணினியில் சேமிக்கப்பட்ட # கோப்புகளை அணுகும்}}</translation>
 <translation id="1195076408729068893">Smart Lockஐத் தொடங்க, கடவுச்சொல்லை உள்ளிடவும். அடுத்த முறை, உங்கள் மொபைலைப் பயன்படுத்தி <ph name="DEVICE_TYPE" /> சாதனத்தைத் திறக்கலாம்.</translation>
 <translation id="1195447618553298278">தெரியாத பிழை.</translation>
-<translation id="1196338895211115272">தனிப்பட்ட விசையை ஏற்றுமதி செய்வதில் தோல்வியடைந்தது.</translation>
 <translation id="119738088725604856">ஸ்க்ரீன்ஷாட் சாளரம்</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> பிரிண்டர்க்கான, பிரிண்டர் திறன்களை மீட்டெடுக்கும்போது பிழை ஏற்பட்டது. இந்த அச்சுப் பொறியை <ph name="CLOUD_PRINT_NAME" /> உடன் பதிவு செய்யமுடியவில்லை.</translation>
 <translation id="1198271701881992799">தொடங்குங்கள்</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">இந்த அமைப்பிற்கான குறிப்பிட்ட மதிப்பை உங்கள் நிர்வாகி பரிந்துரைக்கிறார்.</translation>
 <translation id="1225177025209879837">கோரிக்கை செயலாக்கப்படுகிறது...</translation>
 <translation id="1225211345201532184">ஷெல்ஃப் உருப்படி 5</translation>
-<translation id="1225404570112441414">இத்தளத்தை எந்த நேரத்திலும் பயன்படுத்த அதனை உங்கள் ஷெல்ஃபிற்குச் சேர்க்கவும்.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" உடன் இணைக்கும்போது அங்கீகரிப்புத் தோல்வியடைந்தது.</translation>
 <translation id="1230807973377071856">சிஸ்டம் மெனு</translation>
 <translation id="1232569758102978740">தலைப்பிடாதது</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML கோப்பை புக்மார்க் செய்கிறது</translation>
 <translation id="1303671224831497365">புளூடூத் சாதனங்கள் இல்லை</translation>
 <translation id="1306606229401759371">அமைப்புகளை மாற்று</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> எனும் இணைப்பின் மூலம் எந்தச் சாதனத்திலிருந்தும் உங்கள் கடவுச்சொற்களை அணுகலாம்</translation>
 <translation id="1307559529304613120">அச்சச்சோ! இந்தச் சாதனத்திற்கான, நீண்டகால API அணுகல் டோக்கனை சேமிப்பதில் முறைமை தோல்வியடைந்தது.</translation>
 <translation id="1313405956111467313">தானியங்கு ப்ராக்ஸி உள்ளமைவு</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">தேடல்</translation>
 <translation id="1386387014181100145">நலமா.</translation>
 <translation id="138784436342154190">இயல்புத் துவக்கப் பக்கத்தை மீட்டமைக்கவா?</translation>
-<translation id="1389297115360905376"><ph name="CHROME_WEB_STORE" /> இலிருந்து மட்டுமே இதைச் சேர்க்க முடியும்.</translation>
 <translation id="1390548061267426325">வழக்கமான தாவலாகத் திற</translation>
-<translation id="1391807639023934267">பக்கம் வேகமாக ஏற்றப்பட்டது.</translation>
 <translation id="1393283411312835250">சூரியனும் மேகமும்</translation>
 <translation id="1395262318152388157">தேடுவதற்கான ஸ்லைடர்</translation>
 <translation id="1395730723686586365">புதுப்பிப்பான் தொடங்கியது</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">உருவாக்கப்பட்டு வரும் அம்சங்கள் உள்ள <ph name="PRODUCT_NAME" /> இன் நிலையற்ற பதிப்பிற்கு மேம்படுத்துகிறீர்கள். சிதைவுகள் மற்றும் எதிர்பாராத பிழைகள் ஏற்படும். கவனமாக தொடரவும்.</translation>
 <translation id="1415990189994829608">இந்த வகை அமர்வில் <ph name="EXTENSION_NAME" /> (நீட்டிப்பு ஐடி "<ph name="EXTENSION_ID" />") ஆனது அனுமதிக்கப்படாது.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">அச்சோ! RSA தனிப்பட்ட விசையை உருவாக்குவதில் தோல்வியடைந்தது.</translation>
 <translation id="1420834118113404499">மீடியா உரிமங்கள்</translation>
 <translation id="1420920093772172268">இணைக்க, <ph name="TURN_ON_BLUETOOTH_LINK" />ஐ அனுமதிக்கவும்</translation>
 <translation id="1426410128494586442">ஆம்</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ஆடியோ முகவரியை ந&amp;கலெடு</translation>
 <translation id="1465827627707997754">பீட்சா துண்டு</translation>
 <translation id="1467432559032391204">இடது</translation>
-<translation id="1467999917853307373"><ph name="URL" />, உங்கள் சாதனத்தில் தரவை நிரந்தரமாக சேமிக்க விரும்புகிறது.</translation>
-<translation id="1470719357688513792">பக்கத்தை மறுஏற்றம் செய்ததும் புதிய குக்கீ அமைப்புகள் செயல்படும்.</translation>
 <translation id="1470811252759861213">உங்கள் நீட்டிப்புகளை உங்கள் கணினிகள் அனைத்திலும் பெற, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" ஏற்றப்படவில்லை. உங்கள் Google இயக்ககத்தில் போதுமான காலியிடம் இல்லை.</translation>
 <translation id="1475502736924165259">பிற வகைகள் எவற்றிலும் பொருந்தாத சான்றிதழ்கள் கோப்பில் உள்ளன</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">பெரிய மவுஸ் இடஞ்சுட்டி</translation>
 <translation id="1543284117603151572">Edge இலிருந்து இறக்கப்பட்டது</translation>
 <translation id="1545177026077493356">தானியங்கு கியோஸ்க் பயன்முறை</translation>
+<translation id="1545775234664667895">"<ph name="THEME_NAME" />? என்ற தீம் நிறுவப்பட்டது</translation>
 <translation id="1545786162090505744">வினவலுக்கான இடத்தில் %s ஐக் கொண்ட URL</translation>
 <translation id="1546280085599573572">முகப்புப் பொத்தானைக் கிளிக் செய்யும் போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation>
 <translation id="1547572086206517271">புதுப்பிக்க வேண்டும்</translation>
@@ -443,11 +434,9 @@
     கண்காணிப்பு பயனர் பார்வையிட்ட இணையதளங்களை <ph name="BEGIN_BOLD" />மதிப்பாய்வு செய்யலாம்<ph name="END_BOLD" /> மற்றும்
     மற்ற அமைப்புகளை <ph name="BEGIN_BOLD" />நிர்வகிக்கலாம்<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">உள்நுழைவு விவரங்கள் காலாவதியாகிவிட்டன</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> வரிகள் காட்டப்படவில்லை&gt;</translation>
 <translation id="1650371550981945235">உள்ளீட்டு விருப்பங்களைக் காட்டு</translation>
 <translation id="1650709179466243265">முகவரியைத் திறக்க, www. மற்றும் .com ஐச் சேருங்கள்</translation>
 <translation id="1651008383952180276">ஒரே கடவுச்சொற்றொடரை இருமுறை உள்ளிட வேண்டும்</translation>
-<translation id="1652972346408808053">கடவுச்சொல் சேமிக்கப்பட்டது. எந்தச் சாதனத்திலும் <ph name="SAVED_PASSWORDS_LINK" /> எனும் இணைப்பில் சென்று, உங்கள் கடவுச்சொற்களை அணுகலாம்</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google கிளவுடு அச்சுடன் பிரிண்டரைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}other{Google கிளவுடு அச்சுடன் # பிரிண்டர்களைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}}</translation>
 <translation id="1657406563541664238">தானாகவே பயன்பாட்டு புள்ளிவிவரங்களையும் சிதைவு புகார்களையும் Google க்கு அனுப்புவதன் மூலம், <ph name="PRODUCT_NAME" /> ஐ மேலும் சிறப்பானதாக்க உதவுங்கள்</translation>
 <translation id="1658424621194652532">இந்தப் பக்கமானது உங்கள் மைக்ரோஃபோனை அணுகுகிறது.</translation>
@@ -465,7 +454,7 @@
 <translation id="167832068858235403">ஒலியைக் குறை</translation>
 <translation id="1679068421605151609">டெவலப்பர் கருவிகள்</translation>
 <translation id="1682548588986054654">புதிய மறைநிலை சாளரம்</translation>
-<translation id="1688935057616748272">ஒரு எழுத்தை உள்ளிடவும்</translation>
+<translation id="1688935057616748272">ஓர் எழுத்தை உள்ளிடவும்</translation>
 <translation id="168991973552362966">அருகிலுள்ள பிரிண்டரைச் சேர்</translation>
 <translation id="1689945336726856614">&amp;URLஐ நகலெடு</translation>
 <translation id="1692602667007917253">அச்சச்சோ, ஏதோ தவறு ஏற்பட்டது</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">தொடர்ந்து குக்கீகளைத் தடுக்கவும்</translation>
 <translation id="204622017488417136">ஏற்கனவே நிறுவப்பட்ட Chrome இன் பதிப்பிற்கு உங்கள் சாதனம் மாற்றியமைக்கப்படும். எல்லா பயனர் கணக்குகளும் அகத் தரவும் அகற்றப்படும். இதைச் செயல்தவிர்க்க முடியாது.</translation>
 <translation id="2048182445208425546">உங்கள் நெட்வொர்க் ட்ராஃபிக்கை அணுகுதல்</translation>
-<translation id="2049137146490122801">உங்கள் கணினியிலிருக்கும் அக கோப்புகளை அணுகுவதை உங்கள் நிர்வாகி முடக்கியுள்ளார்.</translation>
 <translation id="204914487372604757">குறுக்குவழியை உருவாக்குக</translation>
 <translation id="2050339315714019657">செங்குத்து நிலை</translation>
 <translation id="2053312383184521053">செயல்படா நிலையில் இருக்கும் தரவு</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">இன்னும் ஏற்றப்படவில்லை</translation>
 <translation id="2107494551712864447">கைரேகையைச் சேர்க்கவும்</translation>
-<translation id="2111843886872897694">பாதிக்கப்பட்ட ஹோஸ்டில் இருந்து பயன்பாடுகள் வழங்கப்பட வேண்டும்.</translation>
 <translation id="2112877397266219826">அமைப்பதற்கு, உங்கள் தொடுதல் கட்டுப்பாட்டை இயக்கவும்</translation>
 <translation id="21133533946938348">தாவலைப் பொருத்து</translation>
 <translation id="2113479184312716848">Open &amp;File...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">என்ன நடக்கிறது என்பதை எங்களிடம் கூறவும்</translation>
 <translation id="2229161054156947610">1 மணிநேரத்திற்கும் அதிகமாக உள்ளது</translation>
 <translation id="222931766245975952">கோப்பு சிதைந்தது</translation>
-<translation id="222949136907494149">உங்கள் கணினியின் இருப்பிடத்தை, <ph name="URL" /> பயன்படுத்த விரும்புகிறது.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" கோப்புறையை உருவாக்க முடியவில்லை. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">இன்றைய doodleஐப் பார்க்க, கிளிக் செய்யவும்</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">மைக்ரோஃபோன் அணுகலை எப்போதும் தடு</translation>
 <translation id="2367972762794486313">பயன்பாடுகளைக் காட்டு</translation>
 <translation id="2371076942591664043">&amp;முடிந்ததும் திற</translation>
-<translation id="237336063998926520">இருப்பிடத்தைத் தீர்மானிக்க, உங்கள் IP முகவரியைப் பயன்படுத்தவும்</translation>
 <translation id="2377319039870049694">பட்டியல் காட்சிக்கு மாறு</translation>
 <translation id="2377667304966270281">ஹார்டு ஃபால்ட்கள்</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> கோப்புகள் தேர்ந்தெடுக்கப்பட்டன</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" /> இலிருந்து கோப்புகளை நகலெடுக்க விரும்புகிறது.</translation>
 <translation id="2462724976360937186">சான்றளிக்கும் மைய விசை ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> சேர்க்கப்பட்டது</translation>
-<translation id="246335896104539386">புத்தகக்குறிகளை இறக்கு</translation>
 <translation id="2464089476039395325">HTTP ப்ராக்ஸி</translation>
 <translation id="2468902267404883140">மொபைலுடன் இணைக்க முடியவில்லை. இணங்கும் Android ஃபோனைப் பயன்படுத்துவதையும், அது இயக்கப்பட்டு அருகில் உள்ளதையும் உறுதிப்படுத்திக்கொள்ளவும். &lt;a&gt;மேலும் அறிக&lt;/a&gt;</translation>
 <translation id="2470702053775288986">ஆதரிக்கப்படாத நீட்டிப்புகள் முடக்கப்பட்டன</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
 <translation id="2487067538648443797">புதிய புத்தகக்குறியைச் சேர்</translation>
 <translation id="248861575772995840">மொபைலைக் கண்டறிய முடியவில்லை. <ph name="DEVICE_TYPE" /> இன் புளூடூத் இயக்கப்பட்டிருப்பதை உறுதிப்படுத்திக்கொள்ளவும். &lt;a&gt;மேலும் அறிக&lt;/a&gt;</translation>
-<translation id="2489316678672211764">செருகுநிரல் <ph name="PLUGIN_NAME" /> பதிலளிக்கவில்லை.</translation>
 <translation id="2489428929217601177">கடந்த நாள்</translation>
 <translation id="2489918096470125693">&amp;கோப்புறையைச் சேர்...</translation>
 <translation id="249113932447298600">இந்த நேரத்தில் <ph name="DEVICE_LABEL" /> சாதனத்தை ஆதரிக்க முடியவில்லை. மன்னிக்கவும்.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">வாழ்த்துகள்! உங்கள் '<ph name="NAME" />' தரவு சேவை செயல்படுத்தப்பட்டது, அது பயன்படுத்துவதற்கு தயாராக உள்ளது.</translation>
 <translation id="2566124945717127842">பவர்வாஷ், உங்கள் <ph name="IDS_SHORT_PRODUCT_NAME" /> சாதனத்தைப் புதியதைப் போன்று மீட்டமைக்கும்.</translation>
 <translation id="2568774940984945469">தகவல்பட்டி கொள்கலன்</translation>
-<translation id="2570000010887652771">தரவு உபயோகம் குறைக்கப்பட்டது</translation>
 <translation id="257088987046510401">தீம்கள்</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> இல் படிப்பதற்கான அணுகல் வழங்கப்பட்டது.</translation>
 <translation id="2573269395582837871">படத்தையும் பெயரையும் தேர்ந்தெடு</translation>
 <translation id="2575247648642144396">நீட்டிப்பானது தற்போதைய பக்கத்தில் செயல்படும்போது, இந்த ஐகான் தெரியும். ஐகானில் கிளிக் செய்து அல்லது <ph name="EXTENSION_SHORTCUT" /> ஐ அழுத்தி இந்த நீட்டிப்பைப் பயன்படுத்துக.</translation>
 <translation id="2575268751393592580">மொபைலைக் கண்டறிய முடியவில்லை. <ph name="DEVICE_TYPE" /> சாதனமானது வைஃபை அல்லது மொபைல் நெட்வொர்க்குடன் இணைக்கப்பட்டிருப்பதை உறுதிப்படுத்திக்கொள்ளவும். &lt;a&gt;மேலும் அறிக&lt;/a&gt;</translation>
-<translation id="2576842806987913196">இந்தப் பெயருடன் ஏற்கனவே ஒரு CRX கோப்பு உள்ளது.</translation>
 <translation id="257779572837908839">சந்திப்புகளுக்கான Chromebox சாதனமாக அமை</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />தொகுதியின் இணைப்பை அகற்ற முடியவில்லை<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">நீங்கள் ஒரு சான்றளிக்கும் மைய(CA) சான்றிதழை நீக்கினால், அந்த CA வழங்கிய எந்த சான்றிதழையும் உங்கள் உலாவி இதன் பின்னர் நம்பாது.</translation>
 <translation id="2653659639078652383">சமர்ப்பி</translation>
 <translation id="265390580714150011">புல மதிப்பு</translation>
-<translation id="2654286334048437383">புத்தகக்குறிகளை ஏற்று</translation>
 <translation id="2655386581175833247">பயனர் சான்றிதழ்:</translation>
 <translation id="2660779039299703961">நிகழ்வு</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">கோப்பகத்தின் மூலம் மீடியா கேலரியைச் சேர்</translation>
 <translation id="2908789530129661844">திரையைப் பெரிதாக்கு</translation>
 <translation id="2910318910161511225">நெட்வொர்க்குடன் இணைத்து, மீண்டும் முயலவும்</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> உங்கள் மைக்ரோஃபோனை பயன்படுத்த விரும்புகிறது.</translation>
 <translation id="2913331724188855103">குக்கீத் தரவை, தளங்கள் சேமிக்கவும் படிக்கவும் அனுமதி (பரிந்துரைக்கப்பட்டது)</translation>
 <translation id="2916073183900451334">ஒரு வலைப்பக்கத்தில் Tab விசையை அழுத்துவதால், இணைப்புகளும், படிவப்புலங்களும் தனிப்படுத்தி காண்பிக்கப்படுகின்றன</translation>
 <translation id="2916745397441987255">நீட்டிப்புகளைத் தேடுக</translation>
@@ -1361,7 +1340,7 @@
 <translation id="3051523411789012618">சாளரத்தை மேலே நகர்த்தும்</translation>
 <translation id="3053013834507634016">சான்றிதழ் விசைப் பயன்பாடு</translation>
 <translation id="3057861065630527966">உங்கள் படங்கள் மற்றும் வீடியோக்களைக் காப்புப் பிரதியெடுக்கவும்</translation>
-<translation id="3060379269883947824">உரை வாசித்தலை இயக்கு</translation>
+<translation id="3060379269883947824">பேசும் திரையை இயக்கு</translation>
 <translation id="3061707000357573562">பேட்ச் சேவை</translation>
 <translation id="3064410671692449875">போதுமான தரவு இல்லை</translation>
 <translation id="3065041951436100775">தாவல் நிறுத்தப்பட்டது பற்றிய கருத்து.</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">கேட்கிறது...</translation>
 <translation id="3141917231319778873">குறிப்பிட்ட கோரிக்கை ஆதரிக்கப்படாத சாதனம்: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">முடிந்தது</translation>
-<translation id="3144135466825225871">crx கோப்பை இடமாற்றுவதில் தோல்வி. கோப்பு பயன்பாட்டில் உள்ளதா என்று பார்க்கவும்.</translation>
 <translation id="3144647712221361880">இணைப்பை இவ்வாறு திற</translation>
 <translation id="3149510190863420837">Chrome பயன்பாடுகள்</translation>
 <translation id="3150927491400159470">கடினமாக மீண்டும் ஏற்று</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">எப்போதும் எல்லா தளங்களிலும் இயக்கு</translation>
 <translation id="3312424061798279731">இயக்கத்திலுள்ள மொழிகள்</translation>
 <translation id="3312903956926554846">டெஸ்க்டாப்பில் நிறுவு</translation>
-<translation id="3313473140726597081">துவக்கப் பக்கம் <ph name="URL" />க்கு மாற்றப்பட்டது. துவக்கப் பக்கத்தை மாற்றும் நீட்டிப்புகளை முடக்க, மீட்டமை என்பதைக் கிளிக் செய்யவும்.</translation>
 <translation id="3313590242757056087">எந்த இணையதளங்களைக் கண்காணிக்கப்படும் பயனர் பார்க்கலாம் என்பதை அமைக்க, <ph name="MANAGEMENT_URL" /> ஐப் பார்வையிடுவதன் மூலம் நீங்கள் கட்டுப்பாடுகள் மற்றும் அமைப்புகளை உள்ளமைக்கலாம்.
     நீங்கள் இயல்பு அமைப்புகளை மாற்றவில்லை எனில், 
     இணையத்தில் எல்லா தளங்களையும் <ph name="USER_DISPLAY_NAME" /> உலாவ முடியும்.</translation>
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">பயன்பாட்டுத் தகவல்</translation>
 <translation id="3335947283844343239">மூடப்பட்ட தாவலை மீண்டும் திற</translation>
-<translation id="3337069537196930048">காலாவதியாகிவிட்டதால், <ph name="PLUGIN_NAME" /> தடுக்கப்பட்டது.</translation>
 <translation id="3340978935015468852">அமைப்புகள்</translation>
 <translation id="3341703758641437857">கோப்பு  URLகளுக்கு அணுகலை அனுமதி</translation>
 <translation id="3342361181740736773">இந்த நீட்டிப்பை அகற்ற, "<ph name="TRIGGERING_EXTENSION_NAME" />" விரும்புகிறது</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">புத்தகக்குறி சேர்க்கப்பட்டது</translation>
 <translation id="3389312115541230716">பணிப்பட்டியில் உள்ள <ph name="SMALL_PRODUCT_LOGO" /> ஐகானை வலது கிளிக் செய்யவும்</translation>
 <translation id="3391716558283801616">தாவல் 7</translation>
-<translation id="3394150261239285340">உங்கள் கேமராவையும் மைக்ரோஃபோனையும் பயன்படுத்த <ph name="HOST" /> கேட்கிறது.</translation>
 <translation id="3396331542604645348">தேர்ந்தெடுத்த அச்சுப்பொறியானது இல்லை அல்லது சரியாக நிறுவப்படவில்லை. பிரிண்டரைச் சரிபார்க்கவும் அல்லது மற்றொரு பிரிண்டரைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="3399432415385675819">அறிவிப்புகள் முடக்கப்படும்</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome தானாகவே புதுப்பித்துக்கொள்வதால், எப்போதுமே புதிய பதிப்பைப் பெறுவீர்கள்.</translation>
 <translation id="3551320343578183772">தாவலை மூடுக</translation>
 <translation id="3552780134252864554">வெளியேறும் போது அழி</translation>
-<translation id="355298399003313926">அணுகல்தன்மை நிகழ்வுகளுக்கு, <ph name="URL" /> எனும் URL பதிலளிக்க விரும்புகிறது.</translation>
 <translation id="3555812735919707620">நீட்டிப்பை அகற்று</translation>
 <translation id="3556000484321257665">தேடல் இன்ஜின் <ph name="URL" />க்கு மாற்றப்பட்டது.</translation>
-<translation id="3561217442734750519">தனிப்பட்ட விசைக்கான உள்ளீட்டு மதிப்பானது, செல்லுபடியாகும் பாதையாக இருக்க வேண்டும்.</translation>
 <translation id="3563432852173030730">கியோஸ்க் பயன்பாட்டைப் பதிவிறக்க முடியவில்லை.</translation>
 <translation id="3564334271939054422">பயன்படுத்திக் கொண்டிருக்கும் வைஃபை நெட்வொர்க் <ph name="NETWORK_ID" />, அதன் உள்நுழைவுப் பக்கத்தை நீங்கள் பார்க்குமாறு கேட்கலாம்.</translation>
 <translation id="3564708465992574908">அளவு மாற்றத்திற்கான நிலைகள்</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">சான்றிதழ் பெயர் கட்டுப்பாடுகள்</translation>
 <translation id="3596235046596950091">மேகக்கணிச் சேவைகளை இயக்கு</translation>
 <translation id="3599863153486145794">உள்நுழைந்த எல்லாச் சாதனங்களிலிருந்தும் வரலாற்றை அழிக்கும். உங்கள் Google கணக்கு, <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற இணைப்பில் உலாவல் வரலாறு தொடர்பான பிற தகவல்களைக் கொண்டிருக்கக்கூடும்.</translation>
-<translation id="3600456501114769456">உங்கள் சாதனத்தில் இருக்கும் அகக் கோப்புகளுக்கான அணுகலை உங்கள் நிர்வாகி முடக்கியுள்ளார்.</translation>
 <translation id="3600792891314830896">ஒலியை இயக்கும் தளங்களில் ஒலியடக்கு</translation>
 <translation id="3603177256297531067">இந்தப் பக்கத்தை மொழிபெயர்க்க முடியவில்லை</translation>
 <translation id="3603533104205588786">பக்கத்தைப் புத்தகக்குறியிட, நட்சத்திரத்தைக் கிளிக் செய்யலாம்</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">ஸ்கிரீன்ஷாட்கள் முடக்கப்பட்டன</translation>
 <translation id="3625870480639975468">பெரிதாக்குவதை மீட்டமை</translation>
 <translation id="3626281679859535460">ஒளிர்வு</translation>
-<translation id="3627052133907344175">நீட்டிப்பிற்கு "<ph name="IMPORT_VERSION" />" குறைந்தபட்ச பதிப்புடன் கூடிய "<ph name="IMPORT_NAME" />" தேவை, ஆனால் "<ph name="INSTALLED_VERSION" />" பதிப்பு மட்டும் நிறுவப்பட்டுள்ளது.</translation>
 <translation id="3627320433825461852">1 நிமிடத்திற்கும் குறைவாக உள்ளது</translation>
 <translation id="3627588569887975815">மறை&amp;நிலை சாளரத்தில் இணைப்பைத்திற</translation>
 <translation id="3627671146180677314">Netscape சான்றிதழ் புதுப்பிப்பு நேரம்</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">மொழி அமைப்புகள்</translation>
 <translation id="3668823961463113931">ஹேண்ட்லர்கள்</translation>
 <translation id="3670229581627177274">புளூடூத்தை இயக்கு</translation>
-<translation id="3672159315667503033">உங்கள் அகக் கணினியில், தரவை நிரந்தரமாக சேமிக்க <ph name="URL" /> விரும்புகிறது.</translation>
 <translation id="3672681487849735243">முக்கியப் பிழை கண்டறியப்பட்டது</translation>
 <translation id="367645871420407123">மூல கடவுச்சொல்லை இயல்புநிலை சோதனைப் பட மதிப்பாக அமைக்க விரும்பினால், வெறுமையாக விடவும்</translation>
 <translation id="3678156199662914018">நீட்டிப்பு: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">ஆஃப்லைனில் உள்ளீர்கள்</translation>
 <translation id="3788401245189148511">இது அணுக விரும்புபவை:</translation>
 <translation id="3789841737615482174">நிறுவுக</translation>
-<translation id="3790146417033334899">டெஸ்க்டாப்பில் மட்டுமே <ph name="PLUGIN_NAME" /> வேலைசெய்யும்.</translation>
 <translation id="379082410132524484">கார்டு காலாவதியாகிவிட்டது</translation>
 <translation id="3792890930871100565">பிரிண்டர்களைத் துண்டி</translation>
 <translation id="379422718204375917">கணக்கில் உள்நுழைய, Smart Lockஐப் பயன்படுத்து</translation>
-<translation id="3794595850995182458">பக்கத்திலிருந்து வெளியேறு</translation>
 <translation id="3796648294839530037">பிடித்த நெட்வொர்க்குகள்:</translation>
 <translation id="3797900183766075808"><ph name="SEARCH_ENGINE" /> இல் “<ph name="SEARCH_TERMS" />” எனத் &amp;தேடு</translation>
 <translation id="3798325802885154040">கிளிக் செய்ய தட்டு எனும் அம்சத்தை இயக்க/முடக்க அனுமதிக்கும்</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ஐ இயக்கு</translation>
 <translation id="3981760180856053153">செல்லாத சேமிப்பு வகை உள்ளிடப்பட்டது.</translation>
 <translation id="3983586614702900908">அறியப்படாத விற்பனையாளரிடமிருந்து சாதனங்கள்</translation>
-<translation id="3984413272403535372">நீட்டிப்பிற்கு உள்நுழைவதில் பிழை.</translation>
 <translation id="3987938432087324095">புரியவில்லை.</translation>
 <translation id="3988996860813292272">நேரமண்டலத்தைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="3989635538409502728">வெளியேறு</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Chromebook இல் Google Play இலிருந்து பயன்பாடுகளையும் கேம்களையும் நிறுவவும். &lt;a target="_blank" href="<ph name="URL" />"&gt;மேலும் அறிக&lt;/a&gt;</translation>
 <translation id="4088095054444612037">குழுவிற்கு ஏற்றுக்கொள்</translation>
 <translation id="4090103403438682346">சரிபார்க்கப்பட்ட அணுகலை இயக்கு</translation>
-<translation id="4090404313667273475">இந்தப் பக்கத்தில் சில கூறுகளைக் காண்பிக்க <ph name="PLUGIN_NAME" /> தேவைப்படுகிறது.</translation>
 <translation id="4090535558450035482">(இந்த நீட்டிப்பு நிர்வகிக்கப்படுகிறது மற்றும் அகற்ற முடியாது.)</translation>
 <translation id="4091434297613116013">தாள்கள்</translation>
 <translation id="4093955363990068916">அகக் கோப்பு:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> ஆல் இப்போது உங்கள் கடவுச்சொற்களை ஒத்திசைக்க முடியும்.</translation>
 <translation id="4715553623069266137">மிகவும் குறுகியது (0.8வி)</translation>
 <translation id="4716483597559580346">கூடுதல் பாதுகாப்பிற்கு, பவர்வாஷ் செய்யவும்</translation>
-<translation id="471800408830181311">தனிப்பட்ட விசையை வெளியனுப்புவதில் தோல்வியடைந்தது.</translation>
 <translation id="4720113199587244118">சாதனங்களைச் சேர்</translation>
 <translation id="4720185134442950733">மொபைல் டேட்டா நெட்வொர்க்</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> உங்கள் திரையைப் பகிர்கிறது.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">வலிமையானது</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" />, "<ph name="EXTENSION_NAME" />" நீட்டிப்புடன் தொடர்புகொள்ள விழைகிறது</translation>
 <translation id="4918086044614829423">ஏற்கிறேன்</translation>
-<translation id="4919810557098212913">உங்கள் கேமராவை, <ph name="HOST" /> பயன்படுத்தக் கேட்கிறது.</translation>
 <translation id="4920887663447894854">இந்தப் பக்கத்தில் உங்கள் இருப்பிடத்தைத் தடமறிவதிலிருந்து பின்வரும் தளங்கள் தடுக்கப்பட்டுள்ளன:</translation>
 <translation id="492299503953721473">Android பயன்பாடுகளை அகற்று</translation>
 <translation id="4923279099980110923">ஆம், எனக்கு உதவி தேவை</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">இந்த நீட்டிப்பில் தீப்பொருள் உள்ளது.</translation>
 <translation id="498294082491145744">குக்கீகள், JavaScript, செருகுநிரல்கள், புவிஇருப்பிடம், மைக்ரோஃபோன் கேமரா போன்ற இணையதளத்தின் அம்சங்களுக்கான அணுகலைக் கட்டுப்படுத்தும் அமைப்புகளை மாற்றலாம்</translation>
 <translation id="4988526792673242964">பக்கங்கள்</translation>
-<translation id="4988792151665380515">பொது விசையை ஏற்றுமதி செய்வதில் தோல்வியடைந்தது.</translation>
 <translation id="49896407730300355">இ&amp;டஞ்சுழியாகச் சுற்று</translation>
 <translation id="4989966318180235467">&amp;பின்புலப் பக்கத்தை ஆய்வுசெய்</translation>
 <translation id="4990343175649730969">Chrome சுத்திகரிப்புக் கருவியைப் பதிவிறக்கு</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">இதை மீண்டும் காட்டாதே</translation>
 <translation id="5027550639139316293">மின்னஞ்சல் சான்றிதழ்</translation>
 <translation id="5027562294707732951">நீட்டிப்பைச் சேர்</translation>
-<translation id="5028012205542821824">நிறுவுதல் இயக்கப்படவில்லை.</translation>
 <translation id="5029568752722684782">நகலை அழி</translation>
 <translation id="5030338702439866405">வழங்கியது</translation>
 <translation id="5036662165765606524">எந்தத் தளத்தையும் பல கோப்புகளைத் தானாகப் பதிவிறக்க அனுமதிக்காதே</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">பிழை ஏற்பட்டது.</translation>
 <translation id="5094721898978802975">ஒண்றிணைந்த குறிப்பிட்ட சாதனத்திற்கான பயன்பாடுகளுடன் தொடர்புகொள்ளவும்</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' நெட்வொர்க்குடன் இணைப்பதில் தோல்வி: <ph name="DETAILS" /> </translation>
-<translation id="5098647635849512368">கோப்பகத்திலிருந்து தொகுப்பிற்கான அசல் பாதையைக் கண்டறிய முடியவில்லை.</translation>
 <translation id="5099354524039520280">மேல்</translation>
 <translation id="5100114659116077956">புதிய அம்சங்களை வழங்குவதற்காக, Chromebox புதுப்பிக்கப்பட வேண்டும்.</translation>
 <translation id="5101042277149003567">புத்தகக்குறிகள் அனைத்தையும் திற</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">கோப்புறையில் காண்பி</translation>
 <translation id="5171045022955879922">தேடுக அல்லது URL-ஐத் தட்டச்சு செய்க</translation>
 <translation id="5171343362375269016">ஸ்வாப்டு மெமரி</translation>
-<translation id="5175870427301879686">உங்கள் அகக் கணினியில், தரவை நிரந்தரமாக சேமிக்க <ph name="URL" /> விரும்புகிறது.</translation>
 <translation id="5177479852722101802">கேமராவையும் மைக்ரோஃபோன் அணுகலையும் தொடர்ந்து தடு</translation>
 <translation id="5177526793333269655">சிறு பட காட்சி</translation>
 <translation id="5177549709747445269">மொபைல் தரவைப் பயன்படுத்துகிறீர்கள்</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">இந்தச் சாதனத்தின் எல்லா தரவையும் அழி</translation>
 <translation id="5293170712604732402">அமைப்புகளை, அவற்றின் அசல் இயல்புநிலைகளுக்கு மீட்டமைக்கும்</translation>
 <translation id="5298219193514155779">தீம் – ஐ உருவாக்கியவர்</translation>
-<translation id="5298363578196989456">"<ph name="IMPORT_NAME" />" நீட்டிப்பு பகிரப்பட்ட மாட்யூலாக இல்லாததால், இறக்க முடியவில்லை.</translation>
 <translation id="5299109548848736476">கண்காணிக்க வேண்டாம்</translation>
 <translation id="5299682071747318445">உங்கள் ஒத்திசைவு கடவுச்சொற்றொடர் மூலம் எல்லா தரவும் குறியாக்கப்படும்</translation>
 <translation id="5300589172476337783">காண்பி</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" இணைய விரும்புகிறது</translation>
 <translation id="5332624210073556029">நேர மண்டலம்:</translation>
 <translation id="5334142896108694079">ஸ்கிரிப்ட் தற்காலிக சேமிப்பு</translation>
-<translation id="533433379391851622">எதிர்பார்க்கப்பட்ட பதிப்பு "<ph name="EXPECTED_VERSION" />", ஆனால் பதிப்பு "<ph name="NEW_ID" />" ஆகும்.</translation>
 <translation id="5334844597069022743">மூலத்தைக் காட்டுக</translation>
 <translation id="5335458522276292100"><ph name="BEGIN_LINK" />Google இயக்ககத்திற்கு<ph name="END_LINK" /> <ph name="FILE_COUNT" /> கோப்புகளைக் காப்புப் பிரதி எடுக்கிறது</translation>
 <translation id="5337771866151525739">மூன்றாம் தரப்பால் நிறுவப்பட்டதாகும்.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">ஒலியை இயக்க, தளங்களை அனுமதி</translation>
 <translation id="5390284375844109566">அட்டவணைப்படுத்திய தரவுத்தளம்</translation>
 <translation id="5390743329570580756">இதற்காக அனுப்பு:</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> இல் உள்ள <ph name="PEPPER_PLUGIN_NAME" /> உங்கள் கணினியை அணுக விரும்புகிறது.</translation>
 <translation id="5397794290049113714">நீங்கள்</translation>
 <translation id="5398572795982417028">பக்க வரம்பை மீறிவிட்டது, அதிகபட்ச வரம்பு <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">விளம்பரங்கள் தடுக்கப்பட்டன</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">அனைத்து தாவல்களையும் மீட்டமை</translation>
 <translation id="5486261815000869482">கடவுச்சொல்லை உறுதிசெய்க</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />, உங்கள் திரையை <ph name="TAB_NAME" /> உடன் பகிர்கிறது.</translation>
-<translation id="5486326529110362464">தனிப்பட்ட விசைக்கான உள்ளீட்டு மதிப்பு அவசியம் இருக்க வேண்டும்.</translation>
 <translation id="5486561344817861625">உலாவி மறுதொடக்கத்தை உருவகப்படுத்து</translation>
 <translation id="5487521232677179737">தரவை அழி</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' நகலெடுக்கப்பட்டது</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">புதுப்பிப்பைப் பதிவிறக்க, <ph name="UPDATE_SIZE_MB" /> மெ.பை. மொபைல் தரவு பயன்படுத்தப்படும். தொடர வேண்டுமா?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">பிற தேடு பொறிகள்</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> இல் உள்ள <ph name="PEPPER_PLUGIN_NAME" /> உங்கள் சாதனத்தை அணுக விரும்புகிறது.</translation>
 <translation id="5608580678041221894">செதுக்கும் பகுதியைச் சரிசெய்ய அல்லது நகர்த்த, பின்வரும் விசைகளைத் தட்டவும்</translation>
 <translation id="5609231933459083978">பயன்பாடு தவறானது என்பதுபோல் தெரிகிறது.</translation>
 <translation id="5610038042047936818">கேமரா பயன்முறைக்கு மாறு</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">மொழிபெயர்க்கப்பட்டது</translation>
 <translation id="5991049340509704927">பெரிதாக்கலாம்</translation>
 <translation id="5993332328670040093">உங்கள் தரவுப் பயன்பாடு இனி அளவிடப்படாது.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> தன்னையே புதுப்பிக்க இயலாது போகலாம்.</translation>
 <translation id="600424552813877586">தவறான பயன்பாடு.</translation>
 <translation id="6005695835120147974">மீடியா ரூட்டர்</translation>
 <translation id="6006484371116297560">கிளாசிக்</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">கிளவுடு காப்புப் பிரதி</translation>
 <translation id="6040143037577758943">மூடு</translation>
 <translation id="6040852767465482106">அநாமதேய அடையாளம்</translation>
+<translation id="6041155700700864984">முழுத்திரையிலிருந்து வெளியேறு</translation>
 <translation id="604124094241169006">தானியங்கு</translation>
 <translation id="6042169520002885235">பிரிண்டர் உற்பத்தியாளரையும் மாடலையும் தேர்ந்தெடுக்கவும்</translation>
 <translation id="6042308850641462728">மேலும்</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">இயல்பாக மீண்டும் ஏற்று</translation>
 <translation id="6059652578941944813">சான்றிதழ் படிநிலை</translation>
 <translation id="6059925163896151826">USB சாதனங்கள்</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> செயலிழந்தது.</translation>
 <translation id="6064217302520318294">திரைப் பூட்டு</translation>
 <translation id="6065289257230303064">சான்றிதழ் பொருள் கோப்பக பண்புக்கூறுகள்</translation>
 <translation id="6068338049763724728">தொலைநிலைப் பதிவை இயக்கு</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">திரையின் தெளிவுத்திறனைச் சரிசெய்ய அனுமதிக்கும்</translation>
 <translation id="6238923052227198598">சமீபத்திய குறிப்பைப் பூட்டுத் திரையில் வைத்திரு</translation>
 <translation id="6239558157302047471">&amp;ஃபிரேமை மீண்டும் ஏற்று</translation>
-<translation id="624022915548992686">பக்கத்திலிருந்து வெளியேறு</translation>
 <translation id="6241530762627360640">உங்கள் கணினியுடன் இணைக்கப்பட்ட புளூடூத் சாதனங்கள் பற்றிய தகவலை அணுகுதல் மற்றும் அருகிலுள்ள புளூடூத் சாதனங்களைக் கண்டறிதல்.</translation>
 <translation id="6243774244933267674">சேவையகம் கிடைக்கவில்லை</translation>
 <translation id="6246413617632217567">கண்காணிக்கப்படும் பயனரை இறக்க முடியவில்லை. உங்கள் வட்டு இயக்ககத்தின் இடத்தையும் அனுமதிகளையும் சரிபார்த்து மீண்டும் முயலவும்.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">அறியப்படாத பிணையப் பிழை</translation>
 <translation id="6313641880021325787">VR இலிருந்து வெளியேறு</translation>
 <translation id="6314819609899340042">இந்த <ph name="IDS_SHORT_PRODUCT_NAME" /> சாதனத்தின் பிழைதிருத்த அம்சங்களை வெற்றிகரமாக இயக்கிவிட்டீர்கள்.</translation>
-<translation id="6315343732431721770">துவக்கப் பக்கங்களில் <ph name="URL" />ஐச் சேர்க்கும்படி மாற்றப்பட்டது. துவக்கப் பக்கத்தை மாற்றும் நீட்டிப்புகளை முடக்க, மீட்டமை என்பதைக் கிளிக் செய்யவும்.</translation>
 <translation id="6315493146179903667">அனைத்தையும் முதலில் வை</translation>
 <translation id="6316806695097060329">இந்த <ph name="SHORT_PRODUCT_NAME" /> சாதனம் உங்களுக்குச் சிறந்த இணைய அனுபவத்தை வழங்கும்படி வடிவமைக்கப்பட்டுள்ளது.</translation>
 <translation id="6317318380444133405">இனி ஆதரிக்கப்படாது.</translation>
 <translation id="6317369057005134371">பயன்பாட்டு சாளரத்திற்காகக் காத்திருக்கிறது...</translation>
 <translation id="6318407754858604988">பதிவிறக்கம் தொடங்கியது</translation>
-<translation id="6322279351188361895">தனிப்பட்ட விசையைப் படிப்பதில் தோல்வியடைந்தது.</translation>
 <translation id="6325191661371220117">தானியங்கு துவக்கியை முடக்கு</translation>
 <translation id="6326175484149238433">Chrome இலிருந்து அகற்று</translation>
 <translation id="6326855256003666642">கீப்அலைவ் கவுண்ட்</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">எதை ஒத்திசைக்க வேண்டும் என்று தேர்வுசெய்க</translation>
 <translation id="6333064448949140209">பிழைத்திருத்தத்திற்காக, Googleக்குக் கோப்பு அனுப்பப்படும்</translation>
 <translation id="6333834492048057036">தேடலிற்காக முகவரி பட்டியைக் கவனி</translation>
-<translation id="6336907568130557310">ஏற்றிய கோப்பைப் பார்க்கக்கூடிய அனைவரும் உங்கள் கடவுச்சொற்களைப் பார்க்க முடியும். பிறருடன் கோப்பைப் பகிர வேண்டாம். அதை இறக்கிய பின்னர், நீக்கிவிடவும்.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" />க்குப் புதிய சுயவிவரத்தை உருவாக்கு</translation>
 <translation id="6340017061976355871">சேவையகத்துடன் இணைக்க முடியவில்லை. நெட்வொர்க் இணைப்பைச் சரிபார்த்து, மீண்டும் முயலவும். சிக்கல் தொடர்ந்தால், Chromebookஐ மீண்டும் தொடங்கவும்.</translation>
 <translation id="6340071272923955280">இன்டர்நெட் பிரிண்டிங் புரோட்டோகால் (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">தளங்களால் குக்கீத் தரவைச் சேமித்துப் படிக்க முடியும்</translation>
 <translation id="6388771388956873507">உங்கள் சாதனத்தில் கைரேகை உணர்வியைக் கண்டறிந்து, விரலால் தொடவும்</translation>
 <translation id="6390799748543157332">இந்தச் சாளரத்தில் பார்க்கும் பக்கங்கள் உங்களின் உலாவி வரலாற்றில் தோன்றாது, மேலும் திறக்கப்பட்டிருக்கும் எல்லா விருந்தினர் சாளரங்களையும் மூடிய பிறகு, பிற தடங்களான குக்கீகள் போன்றவற்றைக் கணினியில் விட்டுச் செல்லாது. எனினும், நீங்கள் பதிவிறக்கிய எல்லா கோப்புகளும் பாதுகாக்கப்படும்.</translation>
-<translation id="6391538222494443604">உள்ளீட்டுக் கோப்பகம் இருப்பது அவசியம்.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />கணினியின் தகவல்<ph name="END_LINK1" /> மற்றும் <ph name="BEGIN_LINK2" />அளவீடுகளை<ph name="END_LINK2" /> அனுப்பு</translation>
 <translation id="6397363302884558537">பேச்சை நிறுத்து</translation>
 <translation id="6397592254427394018">&amp;மறைநிலை சாளரத்தில் எல்லா புக்மார்க்ஸையும் திற</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">JavaScript ஐத் தடுப்பதை நிர்வகி...</translation>
 <translation id="6459488832681039634">தேடுவதற்கு தேர்ந்தெடுத்ததைப் பயன்படுத்து</translation>
 <translation id="6460601847208524483">அடுத்ததைக் கண்டுபிடி</translation>
-<translation id="6462080265650314920">உள்ளடக்க வகை "<ph name="CONTENT_TYPE" />" உடன் பயன்பாடுகள் வழங்கப்பட வேண்டும்.</translation>
 <translation id="6462082050341971451">இருக்கிறீர்களா?</translation>
 <translation id="6463795194797719782">&amp;திருத்து</translation>
 <translation id="6466988389784393586">புக்மார்க்ஸ் அனைத்தையும் &amp;திற</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">இந்தப் பக்கத்தை <ph name="SOURCE_LANGUAGE" /> மொழியிலிருந்து <ph name="TARGET_LANGUAGE" /> மொழிக்கு Google மொழிபெயர்க்க வேண்டும் என விரும்புகிறீர்களா?</translation>
 <translation id="6675665718701918026">சுட்டும் சாதனம் இணைக்கப்பட்டது</translation>
-<translation id="6677037229676347494">எதிர்பார்க்கப்பட்ட ID "<ph name="EXPECTED_ID" />", ஆனால் ID "<ph name="NEW_ID" />" ஆகும்.</translation>
 <translation id="6678717876183468697">வினவல் URL</translation>
 <translation id="6680028776254050810">பயனர்களை மாற்று</translation>
 <translation id="6680442031740878064">இருக்கும் இடம்: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Google என்ன தகவலைச் சேகரிக்கிறது என்பதை, எப்போது வேண்டுமானாலும் <ph name="BEGIN_LINK" />அமைப்புகளில்<ph name="END_LINK" /> தனிப்பயனக்கலாம்.</translation>
 <translation id="6904344821472985372">கோப்பின் அணுகலை அகற்றுதல்</translation>
 <translation id="6904655473976120856">வெளியேற, பயன்பாட்டுப் பொத்தானை அழுத்தவும்</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> உங்கள் திரையைப் பகிர விரும்புகிறது.</translation>
-<translation id="6909461304779452601">இந்தப் பயன்பாடுகள், நீட்டிப்புகள், பயனர் ஸ்கிரிப்ட்கள் போன்றவற்றை இந்த இணையதளத்திலிருந்துச் சேர்க்க முடியாது.</translation>
 <translation id="6910211073230771657">நீக்கப்பட்டது</translation>
 <translation id="691024665142758461">பல கோப்புகளைப் பதிவிறக்குதல்</translation>
 <translation id="6911324888870229398">நெட்வொர்க் இணைப்பு துண்டிக்கப்பட்டது. இணைப்பைச் சரிபார்க்கவும் அல்லது வேறொரு வைஃபை நெட்வொர்க்குடன் இணைக்கவும்.</translation>
@@ -4100,7 +4045,6 @@
 <translation id="747114903913869239">பிழை: நீட்டிப்பை குறி இறக்கம் செய்ய முடியவில்லை</translation>
 <translation id="7473891865547856676">வேண்டாம் நன்றி</translation>
 <translation id="747459581954555080">எல்லாம் மீட்டெடு</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> பிழையைச் சந்தித்துள்ளது.</translation>
 <translation id="7475671414023905704">Netscape தொலைந்த கடவுச்சொல் URL</translation>
 <translation id="7476454130948140105">பேட்டரி மிகவும் குறைவாக இருப்பதால், புதுப்பிக்க முடியவில்லை (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">சொற்றொடரை மறந்துவிட்டால், நிறுத்திவிட்டு <ph name="BEGIN_LINK" />Google Dashboard<ph name="END_LINK" /> வழியாக ஒத்திசைவை மீட்டமைக்கவும்.</translation>
@@ -4137,7 +4081,6 @@
 <translation id="7507930499305566459">நிலை பதிலளிப்பாளர் சான்றிதழ்</translation>
 <translation id="7508545000531937079">ஸ்லைடுகாட்சி</translation>
 <translation id="7513029293694390567">சேமித்த அனுமதிச் சான்றுகளைப் பயன்படுத்தி இணையதளங்களில் தானாகவே உள்நுழையும். இதை முடக்கினால், இணையதளத்தில் உள்நுழையும் ஒவ்வொரு முறையும் உறுதிப்படுத்த வேண்டும்.</translation>
-<translation id="7515670329462166359">பாதுகாப்பான உள்ளடக்கத்தை இயக்க, உங்கள் சாதனத்தைத் தனிப்பட்ட முறையில் அடையாளம் காண <ph name="URL" /> விரும்புகிறது.</translation>
 <translation id="7517569744831774757">அமைப்புகளை, அவற்றின் அசல் இயல்புநிலைகளுக்கு மீட்டமைக்கும்.</translation>
 <translation id="7517786267097410259">கடவுச்சொல்லை உருவாக்கு -</translation>
 <translation id="7518150891539970662">WebRTC பதிவுகள் (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4165,7 +4108,6 @@
 <translation id="7563991800558061108">இந்தப் பிழையிலிருந்து மீட்டமைக்க, உள்நுழைவுத் திரையிலிருந்து உங்கள் Google கணக்கில் உள்நுழைய வேண்டும். பின்னர் உங்கள் Google கணக்கிலிருந்து வெளியேறி, கண்காணிக்கப்படும் பயனரை மீண்டும் உருவாக்க முயற்சிக்கலாம்.</translation>
 <translation id="756445078718366910">உலாவி சாளரத்தைத் திற</translation>
 <translation id="7564847347806291057">செயலாக்கத்தை முடி</translation>
-<translation id="7565291891798266313">தேடல் இன்ஜின் <ph name="URL" />க்கு மாற்றப்பட்டது. தேடல் இன்ஜினை மாற்றும் நீட்டிப்புகளை முடக்க, மீட்டமை என்பதைக் கிளிக் செய்யவும்.</translation>
 <translation id="7566118625369982896">Play பயன்பாடு இணைப்புகளை நிர்வகி</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome தரவு அழிக்கப்பட்டது</translation>
@@ -4174,7 +4116,6 @@
 <translation id="7573172247376861652">பேட்டரி மின்னேற்றம்</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">ஒப்பீடு</translation>
-<translation id="7577815336900970562">இருப்பிடத்தைக் கண்டறிய, வைஃபை அல்லது செல்லுலார் நெட்வொர்க்கைப் பயன்படுத்தலாம்</translation>
 <translation id="7579149537961810247">தளங்களில் ஒலியடக்கு</translation>
 <translation id="7580671184200851182">எல்லா ஸ்பீக்கர்களிலும் ஒரே ஆடியோவை இயக்கு (மோனோ ஆடியோ)</translation>
 <translation id="7581462281756524039">சுத்திகரிப்புக் கருவி</translation>
@@ -4281,6 +4222,7 @@
 <translation id="7773726648746946405">அமர்வு சேமிப்பகம்</translation>
 <translation id="7781335840981796660">எல்லா பயனர்களின் கணக்குகளும், அகத் தரவும் அகற்றப்படும்.</translation>
 <translation id="7782102568078991263">Google இலிருந்து மேலும் பரிந்துரைகள் இல்லை</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> ஐ ஏற்ற முடியவில்லை</translation>
 <translation id="7784067724422331729">உங்கள் கணினியில் உள்ள பாதுகாப்பு அமைப்புகள் இந்தக் கோப்பைத் தடுத்துள்ளன.</translation>
 <translation id="7786207843293321886">விருந்தினரை வெளியேற்று</translation>
 <translation id="7786889348652477777">&amp;பயன்பாட்டை மீண்டும் ஏற்று</translation>
@@ -4443,7 +4385,6 @@
 <translation id="8001504501378762252">எந்தத் தளமாவது உங்கள் கடவுச்சொல்லைத் திருடியிருக்கலாம்</translation>
 <translation id="8004582292198964060">உலாவி</translation>
 <translation id="8008356846765065031">இணையம் துண்டிக்கப்பட்டது. உங்கள் இணைய இணைப்பைச் சரிபார்க்கவும்.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" />ஐ ஏற்ற முடியவில்லை.</translation>
 <translation id="8008818777654712271">ஆபத்தான பயன்பாடுகளையும் தளங்களையும் கண்டறிவதற்கு உதவியாக, சில சாதனத் தகவலையும் பக்க உள்ளடக்கத்தையும் Googleக்குத் தானாக அனுப்பு.</translation>
 <translation id="8012382203418782830">இந்தப் பக்கம் மொழிபெயர்க்கப்பட்டுள்ளது.</translation>
 <translation id="8014154204619229810">தற்போது புதுப்பிப்பான் இயங்குகிறது. மீண்டும் சரிபார்க்க ஒரு நிமிடத்தில் புதுப்பிக்கவும்.</translation>
@@ -4560,7 +4501,6 @@
 <translation id="8191230140820435481">உங்கள் பயன்பாடுகள், நீட்டிப்புகள் மற்றும் தீம்களை நிர்வகிக்கலாம்</translation>
 <translation id="8191453843330043793">V8 புராக்ஸி ரிசால்வர்</translation>
 <translation id="8195027750202970175">வட்டில் உள்ள அளவு</translation>
-<translation id="8195739004487400241">முகப்புப்பக்கம் <ph name="URL" />க்கு மாற்றப்பட்டது. முகப்புப்பக்கத்தை மாற்றும் நீட்டிப்புகளை முடக்க, மீட்டமை என்பதைக் கிளிக் செய்யவும்.</translation>
 <translation id="8199300056570174101">நெட்வொர்க் (சேவை) மற்றும் சாதனப் பண்புகள்</translation>
 <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation>
 <translation id="8202160505685531999">உங்கள் <ph name="DEVICE_TYPE" /> சுயவிவரத்தைப் புதுப்பிக்க உங்கள் கடவுச்சொல்லை மீண்டும் உள்ளிடவும்.</translation>
@@ -4604,7 +4544,6 @@
 <translation id="8261378640211443080">இந்த நீட்டிப்பு <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> இல் பட்டியலிடப்படவில்லை, மேலும் அது உங்களுக்குத் தெரியாமல் சேர்க்கப்பட்டிருக்கலாம்.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> க்கான கணக்கைச் சேர்</translation>
 <translation id="8261506727792406068">நீக்கு</translation>
-<translation id="826246685091802258">இந்தப் பதிப்பில் <ph name="BAD_FLAG" /> செயல்படுத்தப்படவில்லை.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />, உங்கள் இடஞ்சுட்டியை முடக்கியுள்ளது.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" முழுத் திரையில் தூண்டப்பட்டுள்ளது.</translation>
 <translation id="8270242299912238708">PDF ஆவணங்கள்</translation>
@@ -4705,6 +4644,7 @@
 <translation id="8454288007744638700">அல்லது, புதிய நெட்வொர்க்கைத் தேர்ந்தெடுக்கவும்:</translation>
 <translation id="845627346958584683">காலாவதியாகும் நேரம்</translation>
 <translation id="8456681095658380701">தவறான பெயர்</translation>
+<translation id="8457451314607652708">புத்தகக்குறிகளை இறக்குமதி செய்</translation>
 <translation id="8460336040822756677"><ph name="DEVICE_TYPE" /> சாதனத்திற்கு Smart Lockஐ முடக்கினால், உங்கள் மொபைலைப் பயன்படுத்தி Chrome சாதனங்களைத் திறக்க முடியாது. கடவுச்சொல்லை உள்ளிட வேண்டியிருக்கும்.</translation>
 <translation id="8461329675984532579">உள்நாட்டு மொபைல் சேவை வழங்குநர் பெயர்</translation>
 <translation id="84613761564611563">நெட்வொர்க் உள்ளமைவு UI கோரப்பட்டது, காத்திருக்கவும்...</translation>
@@ -4736,7 +4676,6 @@
 <translation id="850875081535031620">தீங்கிழைக்கும் மென்பொருள் இல்லை</translation>
 <translation id="8512476990829870887">செயலாக்கத்தை முடி</translation>
 <translation id="851263357009351303"><ph name="HOST" /> ஐ படங்களைக் காண்பிக்க எப்போதும் அனுமதி</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />", இந்த உலாவியைப் பிழைத்திருத்தம் செய்கிறது.</translation>
 <translation id="8521475323816527629">பயன்பாடுகளுக்கு வேகமாகச் செல்லுங்கள்</translation>
 <translation id="8523493869875972733">மாற்றங்களை வைத்திரு</translation>
 <translation id="8523849605371521713">கொள்கை மூலம் சேர்க்கப்பட்டது</translation>
@@ -4792,7 +4731,6 @@
 <translation id="8620765578342452535">நெட்வொர்க் இணைப்புகளை உள்ளமைக்கவும்</translation>
 <translation id="8620790565535071193">ஸ்கேன் செய்ய முடியவில்லை</translation>
 <translation id="8622877356447980900">இந்தப் பக்கத்தை மொழிபெயர்க்க வேண்டுமா?</translation>
-<translation id="8623004009673949077">Chrome OS கியோஸ்க் முறையில், 'kiosk_only' மேனிஃபெஸ்ட் பண்புக்கூற்றைக் கொண்ட பயன்பாடு நிறுவப்பட வேண்டும்.</translation>
 <translation id="8624205858755890468">தொடர்புடைய தகவல், பயன்பாடுகள் மற்றும் செயல்களைக் காட்டுவதற்கு, அசிஸ்டண்ட்டை அனுமதிக்கும்.</translation>
 <translation id="862542460444371744">&amp;நீட்சிகள்</translation>
 <translation id="8627151598708688654">ஆதாரத்தைத் தேர்ந்தெடு</translation>
@@ -4941,7 +4879,6 @@
 <translation id="882204272221080310">கூடுதல் பாதுகாப்பிற்கு, நிலைபொருளைப் புதுப்பி.</translation>
 <translation id="8823514049557262177">இணைப்பு &amp;உரையை நகலெடு</translation>
 <translation id="8824701697284169214">பக்&amp;கத்தைச் சேர்...</translation>
-<translation id="8827850355924932817">இருப்பிடத்தைக் கண்டறிய, வைஃபை நெட்வொர்க்கைப் பயன்படுத்து</translation>
 <translation id="8828933418460119530">DNS பெயர்</translation>
 <translation id="8830796635868321089">தற்போதைய பிராக்சி அமைப்புகளைப் பயன்படுத்துவதில் புதுப்பிப்பு சரிபார்ப்பு தோல்வியடைந்தது. உங்கள் <ph name="PROXY_SETTINGS_LINK_START" />பிராக்சி அமைப்புகளைச்<ph name="PROXY_SETTINGS_LINK_END" /> சரிசெய்யவும்.</translation>
 <translation id="8834039744648160717">நெட்வொர்க் உள்ளமைவைக் கட்டுப்படுத்துவது: <ph name="USER_EMAIL" />.</translation>
@@ -4973,9 +4910,7 @@
 <translation id="8879284080359814990">தாவலாகக் &amp;காண்பி</translation>
 <translation id="8884961208881553398">புதிய சேவைகளைச் சேர்</translation>
 <translation id="8885197664446363138">Smart Lock இல்லை</translation>
-<translation id="8885905466771744233">குறிப்பிட்ட நீட்டிப்பிற்கான தனிப்பட்ட விசை ஏற்கனவே உள்ளது. அந்த விசையை மீண்டும் பயன்படுத்துக அல்லது அதை முதலில் நீக்குக.</translation>
 <translation id="8888432776533519951">வண்ணம்:</translation>
-<translation id="8892992092192084762">"<ph name="THEME_NAME" />" தீம் நிறுவப்பட்டது.</translation>
 <translation id="8893928184421379330"><ph name="DEVICE_LABEL" /> சாதனத்தை அறிய முடியவில்லை. மன்னிக்கவும்.</translation>
 <translation id="8895454554629927345">புத்தகக்குறிப் பட்டியல்</translation>
 <translation id="88986195241502842">பக்கத்தின் கீழே</translation>
@@ -4990,7 +4925,6 @@
 <translation id="8908902564709148335">எச்சரிக்கை: கணினியில் --scripts-require-action கொடியை இயக்கியுள்ளீர்கள், அதனால் இந்த நீட்டிப்பின் திறன்கள் வரம்பிடப்படும். இருப்பினும், பிற சாதனங்கள் இந்த கொடியை ஆதரிக்காமல் இருக்கலாம் அல்லது அதை இயக்காமல் இருக்கலாம். இந்தச் சாதனங்களில், இந்த நீட்டிப்பால் செய்யக்கூடியவை:</translation>
 <translation id="8910146161325739742">உங்கள் திரையைப் பகிரலாம்</translation>
 <translation id="8910222113987937043">புத்தகக்குறிகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகள் உங்கள் Google கணக்கிற்கு இனி ஒத்திசைக்கப்படாது. இருப்பினும், ஏற்கனவே உங்களிடம் உள்ள தரவு தொடர்ந்து Google கணக்கில் சேமிக்கப்படும். அவற்றை <ph name="BEGIN_LINK" />Google டாஷ்போர்டில்<ph name="END_LINK" /> நிர்வகிக்கலாம்.</translation>
-<translation id="8911079125461595075"><ph name="EXTENSION_NAME" /> ஐ தீங்கானது என Google கொடியிட்டுள்ளது மேலும் நிறுவல் தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="8912793549644936705">விரிவாக்கு</translation>
 <translation id="8915370057835397490">பரிந்துரைகளை ஏற்றுகிறது</translation>
 <translation id="8916476537757519021">மறைநிலை துணைச்சட்டகம்: <ph name="SUBFRAME_SITE" /></translation>
@@ -5096,7 +5030,6 @@
 <translation id="9074739597929991885">புளூடூத்</translation>
 <translation id="9074836595010225693">USB மவுஸ் இணைக்கப்பட்டது</translation>
 <translation id="9076523132036239772">மன்னிக்கவும், உங்கள் மின்னஞ்சல் அல்லது கடவுச்சொல்லைச் சரிபார்க்க முடியவில்லை. முதலில் பிணையத்துடன் இணைவதை முயற்சிக்கவும்.</translation>
-<translation id="907841381057066561">தொகுப்பாக்கலின்போது தற்காலிக ஜிப் கோப்பை உருவாக்குவதில் தோல்வியடைந்தது.</translation>
 <translation id="9084064520949870008">சாளரமாகத் திற</translation>
 <translation id="9088234649737575428">நிறுவனக் கொள்கையால் <ph name="PLUGIN_NAME" /> முடக்கப்பட்டுள்ளது</translation>
 <translation id="9088917181875854783">"<ph name="DEVICE_NAME" />" இல் காண்பிக்கப்படும் இந்த கடவுவிசையை உறுதிப்படுத்துக:</translation>
@@ -5187,11 +5120,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">கடவுச்சொற்றொடரை உள்ளிடுக</translation>
 <translation id="939736085109172342">புதிய கோப்புறை</translation>
-<translation id="941543339607623937">செல்லாத தனிப்பட்ட விசை.</translation>
 <translation id="942532530371314860">Chrome தாவலையும் ஆடியோவையும் <ph name="APP_NAME" /> பகிர்கிறது.</translation>
 <translation id="942954117721265519">இந்தக் கோப்பகத்தில் படங்கள் இல்லை.</translation>
 <translation id="945522503751344254">பின்னூட்டம் அனுப்புக</translation>
-<translation id="951981865514037445">உங்கள் சாதனத்தின் இருப்பிடத்தை, <ph name="URL" /> பயன்படுத்த விரும்புகிறது.</translation>
 <translation id="952992212772159698">செயலாக்கப்படவில்லை</translation>
 <translation id="9580706199804957">Google சேவைகளுடன் இணைக்க முடியவில்லை</translation>
 <translation id="958515377357646513">தொடர்ந்து செல்ல, தொடவும்.</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index a67fe06..3b5cd160 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">కోడ్ మాత్రమే</translation>
 <translation id="1039337018183941703">ఫైల్ చెల్లదు లేదా పాడైంది</translation>
 <translation id="1042174272890264476">మీ కంప్యూటర్‌‍లో కూడా <ph name="SHORT_PRODUCT_NAME" /> యొక్క అంతర్నిర్మిత RLZ లైబ్రరీ ఉంటుంది. RLZ శోధనలను మరియు నిర్దిష్ట ప్రమోషనల్ ప్రచారం ద్వారా ఉపయోగించబడిన <ph name="SHORT_PRODUCT_NAME" /> వినియోగాన్ని లెక్కించడానికి ప్రత్యేకం కాని, వ్యక్తిగతంగా గుర్తించలేని ట్యాగ్‌ను సమర్పిస్తుంది. ఈ లేబుల్‌లు కొన్నిసార్లు <ph name="PRODUCT_NAME" />లోని Google శోధన ప్రశ్నల్లో కనిపిస్తాయి.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> శాశ్వతంగా అధిక డేటాను మీ పరికరంలో నిల్వ చేయాలనుకుంటోంది.</translation>
 <translation id="1046059554679513793">అయ్యో, ఈ పేరు ఇప్పటికే వినియోగంలో ఉంది!</translation>
 <translation id="1047431265488717055">లింక్ వచ&amp;నం కాపీ చేయి</translation>
 <translation id="1047726139967079566">ఈ పేజీని బుక్‌మార్క్ చెయ్యి...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">డిఫాల్ట్ శోధన ఇంజిన్‌ను పునరుద్ధరించాలా?</translation>
 <translation id="1177863135347784049">అనుకూలీకరించిన</translation>
 <translation id="1178581264944972037">పాజ్ చేయి</translation>
-<translation id="1179803038870941185"><ph name="URL" /> మీ MIDI పరికరాలకు పూర్తి నియంత్రణను పొందాలనుకుంటోంది.</translation>
 <translation id="1181037720776840403">తొలగించు</translation>
 <translation id="1183237619868651138">స్థానిక కాష్‌లో <ph name="EXTERNAL_CRX_FILE" />ని ఇన్‌స్టాల్ చేయడం సాధ్యపడదు.</translation>
 <translation id="1185924365081634987">మీరు ఈ నెట్‌వర్క్ లోపాన్ని పరిష్కరించడానికి <ph name="GUEST_SIGNIN_LINK_START" />అతిథిగా బ్రౌజ్ చేయడాన్ని<ph name="GUEST_SIGNIN_LINK_END" /> కూడా ప్రయత్నించవచ్చు.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{మీ కంప్యూటర్‌లో నిల్వ చేసిన ఫైల్‌ను ప్రాప్యత చేయండి}other{మీ కంప్యూటర్‌లో నిల్వ చేసిన # ఫైల్‌లను ప్రాప్యత చేయండి}}</translation>
 <translation id="1195076408729068893">Smart Lockను ప్రారంభించడానికి, మీ పాస్‌వర్డ్‌ను నమోదు చేయండి. తదుపరిసారి, మీ <ph name="DEVICE_TYPE" />ని అన్‌లాక్ చేయడానికి మీరు మీ ఫోన్‌ను ఉపయోగించవచ్చు.</translation>
 <translation id="1195447618553298278">తెలియని లోపం.</translation>
-<translation id="1196338895211115272">ప్రైవేట్ కీని ఎగుమతి చేయడానికి విఫలమైంది.</translation>
 <translation id="119738088725604856">స్క్రీన్‌షాట్ విండో</translation>
 <translation id="1197979282329025000">ముద్రకం <ph name="PRINTER_NAME" />కి ముద్రకం సామర్థ్యాలను తిరిగి పొందడంలో లోపం సంభవించింది. ఈ ముద్రకాన్ని <ph name="CLOUD_PRINT_NAME" />తో నమోదు చెయ్యడం సాధ్యం కాలేదు.</translation>
 <translation id="1198271701881992799">ఇప్పుడు ప్రారంభించండి</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">మీ నిర్వాహకుడు ఈ సెట్టింగ్‌కు ఒక ప్రత్యేక విలువను సిఫార్సు చేస్తున్నారు.</translation>
 <translation id="1225177025209879837">అభ్యర్థనను ప్రాసెస్ చేస్తోంది...</translation>
 <translation id="1225211345201532184">అర అంశం 5</translation>
-<translation id="1225404570112441414">ఈ సైట్‌ని ఎప్పుడైనా ఉపయోగించడానికి దీన్ని మీ అరకు జోడించండి.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />"కు కనెక్ట్ చేస్తున్నప్పుడు ప్రామాణీకరణ విఫలమైంది.</translation>
 <translation id="1230807973377071856">సిస్టమ్ మెను</translation>
 <translation id="1232569758102978740">శీర్షికలేనిది</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML ఫైల్‌ని బుక్‌మార్క్ చేస్తుంది</translation>
 <translation id="1303671224831497365">బ్లూటూత్ పరికరాలు ఏవీ కనుగొనబడలేదు</translation>
 <translation id="1306606229401759371">సెట్టింగ్‌లను మార్చు</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" />లో ఏ డివైజ్ నుండైనా మీ పాస్‌వర్డ్‌లను ఆక్సెస్ చేయండి</translation>
 <translation id="1307559529304613120">అయ్యో!  సిస్టమ్ ఈ పరికరం కోసం దీర్ఘకాల API ప్రాప్యత టోకెన్‌ను నిల్వ చేయడంలో విఫలమైంది.</translation>
 <translation id="1313405956111467313">స్వయంచాలక ప్రాక్సీ కాన్ఫిగరేషన్</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">శోధించు</translation>
 <translation id="1386387014181100145">హాయ్.</translation>
 <translation id="138784436342154190">డిఫాల్ట్ ప్రారంభ పేజీని పునరుద్ధరించాలా?</translation>
-<translation id="1389297115360905376">ఇది <ph name="CHROME_WEB_STORE" /> నుండి మాత్రమే జోడించబడుతుంది.</translation>
 <translation id="1390548061267426325">సాధారణ ట్యాబ్‌ వలె తెరువు</translation>
-<translation id="1391807639023934267">వేగవంతమైన పేజీ లోడ్ అయింది.</translation>
 <translation id="1393283411312835250">సూర్యుడు మరియు మేఘాలు</translation>
 <translation id="1395262318152388157">సీక్ స్లయిడర్</translation>
 <translation id="1395730723686586365">అప్‌డేటర్ ప్రారంభించబడింది</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">మీరు <ph name="PRODUCT_NAME" /> యొక్క అస్థిర సంస్కరణకు నవీకరిస్తున్నారు, ఇది పురోగతిలో ఉన్న లక్షణాలను కలిగి ఉంటుంది. క్రాష్‌లు మరియు ఊహించని బగ్‌లు సంభవించవచ్చు. దయచేసి జాగ్రత్తగా కొనసాగండి.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (పొడిగింపు ID "<ph name="EXTENSION_ID" />") ఈ రకమైన సెషన్‌లో అనుమతించబడదు.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">అరె! RSA ప్రైవేట్ కీని రాండమ్‌గా రూపొందించడంలో విఫలమైంది.</translation>
 <translation id="1420834118113404499">మీడియా లైసెన్స్‌లు</translation>
 <translation id="1420920093772172268">జత చేయడాన్ని అనుమతించడానికి <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">అవును</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">ఆడియో చిరునామాను కా&amp;పీ చేయండి</translation>
 <translation id="1465827627707997754">పిజ్జా ముక్క</translation>
 <translation id="1467432559032391204">ఎడమ</translation>
-<translation id="1467999917853307373"><ph name="URL" /> శాశ్వతంగా డేటాను మీ పరికరంలో నిల్వ చేయాలనుకుంటోంది.</translation>
-<translation id="1470719357688513792">పేజీ లోడ్ అయిన తర్వాత క్రొత్త కుకీ సెట్టింగ్‌లు ప్రభావం చూపుతాయి.</translation>
 <translation id="1470811252759861213">మీ అన్ని కంప్యూటర్‌ల్లో మీ పొడిగింపులను పొందడానికి, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" అప్‌లోడ్ కాలేదు. మీ Google డిస్క్‌లో తగినంత ఖాళీ స్థలం లేదు.</translation>
 <translation id="1475502736924165259">మీకు ఫైల్‌లో మరే ఇతర వర్గంలోనూ సరిపోని ప్రమాణపత్రాలు ఉన్నాయి</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">పెద్ద మౌస్ కర్సర్</translation>
 <translation id="1543284117603151572">Edge నుండి దిగుమతి చేసినవి</translation>
 <translation id="1545177026077493356">స్వయంచాలక కియోస్క్ మోడ్</translation>
+<translation id="1545775234664667895">వ్యవస్థాపితమైన థీమ్ "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">ప్రశ్న యొక్క ప్రదేశంలో %sతో URL</translation>
 <translation id="1546280085599573572">ఈ పొడిగింపు మీరు హోమ్ బటన్‌ను క్లిక్ చేసినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
 <translation id="1547572086206517271">రిఫ్రెష్ చేయడం అవసరం</translation>
@@ -443,11 +434,9 @@
     పర్యవేక్షించబడే వినియోగదారు సందర్శించిన వెబ్‌సైట్‌లను <ph name="BEGIN_BOLD" />సమీక్షించడం<ph name="END_BOLD" /> మరియు
     ఇతర సెట్టింగ్‌లను <ph name="BEGIN_BOLD" />నిర్వహించడం<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">సైన్-ఇన్ వివరాలు పాతవి</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> పంక్తులు చూపబడలేదు&gt;</translation>
 <translation id="1650371550981945235">ఇన్‌పుట్ ఎంపికలను చూపు</translation>
 <translation id="1650709179466243265">www. మరియు .comని జోడించి, చిరునామాను తెరవండి</translation>
 <translation id="1651008383952180276">మీరు తప్పనిసరిగా ఒకే రహస్య పదబంధాన్ని రెండుసార్లు నమోదు చేయాలి</translation>
-<translation id="1652972346408808053">పాస్‌వర్డ్ సేవ్ చేయబడింది. <ph name="SAVED_PASSWORDS_LINK" />లో ఏ డివైజ్ నుండైనా మీ పాస్‌వర్డ్‌లను ఆక్సెస్ చేయండి</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google క్లౌడ్ ముద్రణకు ప్రింటర్‌ను జోడించండి, అప్పుడు మీరు ఎక్కడి నుండైనా ముద్రించవచ్చు.}other{Google క్లౌడ్ ముద్రణకు # ప్రింటర్‌లను జోడించండి, అప్పుడు మీరు ఎక్కడి నుండైనా ముద్రించవచ్చు.}}</translation>
 <translation id="1657406563541664238">Googleకు ఉపయోగ గణాంకాలు మరియు క్రాష్ నివేదికలను స్వయంచాలకంగా పంపడం ద్వారా <ph name="PRODUCT_NAME" />ను మరింత మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="1658424621194652532">ఈ పేజీ మీ మైక్రోఫోన్‌ను ప్రాప్యత చేస్తోంది.</translation>
@@ -654,7 +643,7 @@
 <translation id="1999115740519098545">ప్రారంభించిన తరువాత</translation>
 <translation id="2006638907958895361">లింక్‌ను <ph name="APP" />లో తెరువు</translation>
 <translation id="2007404777272201486">ఒక సమస్యను నివేదించండి...</translation>
-<translation id="2015632741368427174">మళ్ళింపు ఈ సైట్‌కు బ్లాక్ చేయబడింది:</translation>
+<translation id="2015632741368427174">ఈ సైట్‌కు మళ్ళింపు బ్లాక్ చేయబడింది:</translation>
 <translation id="2016430552235416146">సాంప్రదాయకం</translation>
 <translation id="2017334798163366053">పనితీరు డేటా సేకరణను నిలిపివేయి</translation>
 <translation id="2017836877785168846">చిరునామా బార్‌లో చరిత్రను మరియు స్వీయ పూరణలను క్లియర్ చేస్తుంది.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">కుకీలను నిరోధించడాన్ని కొనసాగించండి</translation>
 <translation id="204622017488417136">మీ పరికరం మునుపు ఇన్‌స్టాల్ చేసిన Chrome సంస్కరణకు తిరిగి మార్చబడింది. అన్ని వినియోగదారు ఖాతాలు మరియు స్థానిక డేటా తీసివేయబడుతుంది. దీన్ని రద్దు చేయడం సాధ్యపడదు.</translation>
 <translation id="2048182445208425546">మీ నెట్‌వర్క్ ట్రాఫిక్‌ను ప్రాప్యత చేయండి</translation>
-<translation id="2049137146490122801">మీ యంత్రం వద్ద స్థానిక ఫైళ్ళను ప్రాప్తించడం మీ నిర్వాహకుని ద్వారా నిలిపివెయ్యబడింది.</translation>
 <translation id="204914487372604757">సత్వరమార్గాన్ని సృష్టించు</translation>
 <translation id="2050339315714019657">నిలువు</translation>
 <translation id="2053312383184521053">నిష్క్రియ స్థితి డేటా</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">పెప్పర్ 3డి</translation>
 <translation id="2105006017282194539">ఇంకా లోడ్ చెయ్యబడలేదు</translation>
 <translation id="2107494551712864447">వేలిముద్రను జోడించండి</translation>
-<translation id="2111843886872897694">అనువర్తనాలు తప్పనిసరిగా అవి ప్రభావితమయ్యే హోస్ట్ నుండి అందించబడాలి.</translation>
 <translation id="2112877397266219826">నన్ను సెటప్ చేయడానికి మీ టచ్ కంట్రోలర్‌ను ఆన్ చేయండి</translation>
 <translation id="21133533946938348">టాబ్‌ను పిన్ చెయ్యి</translation>
 <translation id="2113479184312716848">ఫైల్‌ను &amp;తెరువు...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">ఏమి జరుగుతోందో మాకు చెప్పండి</translation>
 <translation id="2229161054156947610">1 గంట పైగా మిగిలి ఉంది</translation>
 <translation id="222931766245975952">ఫైల్ కుదించబడింది</translation>
-<translation id="222949136907494149"><ph name="URL" /> మీ కంప్యూటర్ స్థానాన్ని ఉపయోగించాలనుకుంటోంది.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" ఫోల్డర్‌ను సృష్టించడం సాధ్యపడలేదు. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">నేటి డూడుల్‌ని వీక్షించడం కోసం క్లిక్ చేయండి</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">ఎల్లప్పుడూ మైక్రోఫోన్ ప్రాప్యతను బ్లాక్ చేయి</translation>
 <translation id="2367972762794486313">అనువర్తనాలను చూపు</translation>
 <translation id="2371076942591664043">&amp;పూర్తవగానే తెరువు</translation>
-<translation id="237336063998926520">స్థానాన్ని గుర్తించడానికి మీ IP చిరునామాని ఉపయోగించండి</translation>
 <translation id="2377319039870049694">జాబితా వీక్షణకు మార్చు</translation>
 <translation id="2377667304966270281">Hard Faultలు</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ఫైల్‌లు ఎంచుకోబడ్డాయి</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> నుండి ఫైల్‌లను కాపీ చేయాలనుకుంటోంది.</translation>
 <translation id="2462724976360937186">ప్రమాణపత్రం అధికార కీ ID</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> జోడించబడింది</translation>
-<translation id="246335896104539386">బుక్‌మార్క్‌లను దిగుమతి చేయి</translation>
 <translation id="2464089476039395325">HTTP ప్రాక్సీ</translation>
 <translation id="2468902267404883140">మీ ఫోన్‌కు కనెక్ట్ కావటంలేదు. మీరు ఆన్ చేసి ఉన్న అనుకూల Android ఫోన్‌ని ఉపయోగిస్తున్నారని మరియు అది చేతికి అందేంత దగ్గర్లో ఉందని నిర్ధారించుకోండి. &lt;a&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
 <translation id="2470702053775288986">మద్దతు లేని పొడిగింపులు నిలిపివేయబడ్డాయి</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">వ్యవస్థాపనను తీసివెయ్యి</translation>
 <translation id="2487067538648443797">కొత్త బుక్‌మార్క్‌ను జోడించు</translation>
 <translation id="248861575772995840">మీ ఫోన్‌ను కనుగొనలేము. మీ <ph name="DEVICE_TYPE" /> యొక్క బ్లూటూత్ ఆన్ చేసి ఉన్నట్లు నిర్ధారించుకోండి. &lt;a&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
-<translation id="2489316678672211764">ప్లగిన్ (<ph name="PLUGIN_NAME" />) ప్రతిస్పందించడం లేదు.</translation>
 <translation id="2489428929217601177">గత రోజు</translation>
 <translation id="2489918096470125693">&amp;ఫోల్డర్‌ను జోడించు...</translation>
 <translation id="249113932447298600">క్షమించండి, ఈ సమయంలో <ph name="DEVICE_LABEL" /> పరికరానికి మద్దతు లేదు.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">అభినందనలు! మీ '<ph name="NAME" />' డేటా సేవ సక్రియం చేయబడింది మరియు పని చేయడానికి సిద్ధంగా ఉంది.</translation>
 <translation id="2566124945717127842">మీ <ph name="IDS_SHORT_PRODUCT_NAME" /> పరికరాన్ని కొత్త దాని వలె రీసెట్ చేయడానికి పవర్‌వాష్ చేయండి.</translation>
 <translation id="2568774940984945469">సమాచారబార్ కంటైనర్</translation>
-<translation id="2570000010887652771">డేటా ఆదా చేయబడింది.</translation>
 <translation id="257088987046510401">థీమ్‌లు</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" />కి చదవడానికి మాత్రమే ప్రాప్యత మంజూరు చేయబడింది.</translation>
 <translation id="2573269395582837871">చిత్రం మరియు పేరును ఎంచుకోండి</translation>
 <translation id="2575247648642144396">ప్రస్తుత పేజీలో పొడిగింపును అమలు చేయగలిగినప్పుడు ఈ చిహ్నం కనిపిస్తుంది. చిహ్నంపై క్లిక్ చేయడం ద్వారా లేదా <ph name="EXTENSION_SHORTCUT" />ను నొక్కడం ద్వారా ఈ పొడిగింపును ఉపయోగించండి.</translation>
 <translation id="2575268751393592580">మీ ఫోన్‌ను కనుగొనలేము. మీ <ph name="DEVICE_TYPE" />, Wi-Fi లేదా మొబైల్ నెట్‌వర్క్‌కి కనెక్ట్ చేసి ఉన్నట్లు నిర్ధారించుకోండి. &lt;a&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
-<translation id="2576842806987913196">ఈ పేరుతో ఇప్పటికే CRX ఫైల్ ఉంది.</translation>
 <translation id="257779572837908839">సమావేశాల కోసం Chromebox వలె సెటప్ చేయండి</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />‌వాల్యూమ్‌ను అన్‌మౌంట్ చేయండి సాధ్యపడలేదు<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">మీరు ప్రమాణపత్ర అధికారి (CA) ప్రమాణపత్రాన్ని తొలగిస్తే, మీ బ్రౌజర్ CA ద్వారా జారీ చెయ్యబడిన ఏ ప్రమాణపత్రాలను ఇకపై నమ్మదు.</translation>
 <translation id="2653659639078652383">సమర్పించు</translation>
 <translation id="265390580714150011">ఫీల్డ్ విలువ</translation>
-<translation id="2654286334048437383">బుక్‌మార్క్‌లను ఎగుమతి చేయి</translation>
 <translation id="2655386581175833247">వినియోగదారు  ప్రమాణపత్రం:</translation>
 <translation id="2660779039299703961">ఈవెంట్</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">డైరెక్టరీ ద్వారా మీడియా గ్యాలరీని జోడించండి</translation>
 <translation id="2908789530129661844">స్క్రీన్‌ను దూరంగా జూమ్ చేయండి</translation>
 <translation id="2910318910161511225">నెట్‌వర్క్‌కి కనెక్ట్ చేసి మళ్లీ ప్రయత్నించండి</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> మీ మైక్రోఫోన్‌ను ఉపయోగించాలని ఆశిస్తుంది.</translation>
 <translation id="2913331724188855103">కుక్కీ డేటాను సేవ్ చేయడానికి మరియు చదవడానికి సైట్‌లను అనుమతిస్తుంది (సిఫార్సు చేయబడింది)</translation>
 <translation id="2916073183900451334">ఫారమ్ ఫీల్డ్‌ల వలె వెబ్‌పేజీ హైలైట్‌ల లింక్‌లపై ట్యాబ్‌ను నొక్కడం</translation>
 <translation id="2916745397441987255">పొడిగింపులను శోధించండి</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">వింటోంది...</translation>
 <translation id="3141917231319778873">దీనిలో నిర్దిష్ట అభ్యర్థనకి మద్దతు లేదు: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">పూర్తయింది</translation>
-<translation id="3144135466825225871">crx ఫైల్ భర్తీ విఫలమైంది. ఫైల్ ఉపయోగంలో ఉన్నదా అని తనిఖీ చేయండి.</translation>
 <translation id="3144647712221361880">లింక్‌ను దీని తరపున తెరువు</translation>
 <translation id="3149510190863420837">Chrome అనువర్తనాలు</translation>
 <translation id="3150927491400159470">క్లిష్టంగా మళ్లీ లోడ్ చేయి</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">ఎల్లప్పుడూ అన్ని సైట్‌ల్లో అమలు చేయి</translation>
 <translation id="3312424061798279731">ప్రారంభించబడిన భాషలు</translation>
 <translation id="3312903956926554846">డెస్క్‌టాప్‌కు ఇన్‌స్టాల్ చేయండి</translation>
-<translation id="3313473140726597081">మీ ప్రారంభ పేజీ <ph name="URL" />కి మార్చబడింది. మీ ప్రారంభ పేజీని మార్చే పొడిగింపులను నిలిపివేయడానికి, పునరుద్ధరించు క్లిక్ చేయండి.</translation>
 <translation id="3313590242757056087">పర్యవేక్షించబడే వినియోగదారు వీక్షించగల వెబ్‌సైట్‌లను సెట్ చేయడానికి, మీరు <ph name="MANAGEMENT_URL" />ను సందర్శించి
     పరిమితులు మరియు సెట్టింగ్‌లను కాన్ఫిగర్ చేయవచ్చు.
     మీరు డిఫాల్ట్ సెట్టింగ్‌లను మార్చకుంటే, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">అనువర్తన సమాచారం</translation>
 <translation id="3335947283844343239">మూసిన ట్యాబ్‌ను మళ్ళీ తెరువు</translation>
-<translation id="3337069537196930048">గడువు తేదీ ముగిసినందున <ph name="PLUGIN_NAME" /> బ్లాక్ చేయబడింది.</translation>
 <translation id="3340978935015468852">సెట్టింగ్‌లు</translation>
 <translation id="3341703758641437857">ఫైల్ URLలకు ప్రాప్తిని అనుమతించు</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ఈ ఎక్స్‌టెన్షన్‌ని తీసివేయాలనుకుంటోంది.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">బుక్‌మార్క్ జోడించబడింది</translation>
 <translation id="3389312115541230716">విధి పట్టీలో <ph name="SMALL_PRODUCT_LOGO" /> చిహ్నాన్ని కుడి క్లిక్ చేయండి</translation>
 <translation id="3391716558283801616">ట్యాబ్ 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> మీ కెమెరాను మరియు మైక్రోఫోన్‌ను ఉపయోగించాలనుకుంటుంది.</translation>
 <translation id="3396331542604645348">ఎంచుకున్న ముద్రకం అందుబాటులో లేదు లేదా సరిగ్గా వ్యవస్థాపించబడలేదు. మీ ముద్రకాన్ని తనిఖీ చేయండి లేదా మరొక ముద్రకాన్ని ఎంచుకోవడానికి ప్రయత్నించండి.</translation>
 <translation id="3399432415385675819">నోటిఫికేషన్‌లు నిలిపివేయబడతాయి</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome స్వయంచాలకంగా నవీకరించబడుతుంది కాబట్టి మీరు ఎల్లప్పుడూ సరికొత్త సంస్కరణను కలిగి ఉంటారు</translation>
 <translation id="3551320343578183772">ట్యాబ్‌ను మూసివేయి</translation>
 <translation id="3552780134252864554">నిష్క్రమణలో క్లియర్ చేయబడింది</translation>
-<translation id="355298399003313926"><ph name="URL" /> యాక్సెస్ సామర్థ్యం ఉన్న ఈవెంట్‌లకు ప్రతిస్పందించాలనుకుంటోంది.</translation>
 <translation id="3555812735919707620">పొడిగింపుని తీసివేయి</translation>
 <translation id="3556000484321257665">మీ శోధన ఇంజిన్ <ph name="URL" />కి మార్చబడింది.</translation>
-<translation id="3561217442734750519">ప్రైవేట్ కీ కోసం ఇన్‌పుట్ విలువ తప్పనిసరిగా చెల్లుబాటు అయ్యే మార్గంగా ఉండాలి.</translation>
 <translation id="3563432852173030730">కియోస్క్ అనువర్తనాన్ని డౌన్‌లోడ్ చేయడం సాధ్యపడలేదు.</translation>
 <translation id="3564334271939054422">మీరు ఉపయోగిస్తున్న Wi-Fi నెట్‌వర్క్‌కు (<ph name="NETWORK_ID" />) మీరు దాని లాగిన్ పేజీని సందర్శించడం అవసరం.</translation>
 <translation id="3564708465992574908">జూమ్ స్థాయిలు</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">సర్టిఫికెట్ పేరు పరిమితులు</translation>
 <translation id="3596235046596950091">క్లౌడ్ సేవలను ప్రారంభించు</translation>
 <translation id="3599863153486145794">సైన్ ఇన్ చేసిన అన్ని పరికరాల నుండి చరిత్రను తొలగిస్తుంది. మీ Google ఖాతా <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />లో ఇతర రూపాల్లో ఉన్న బ్రౌజింగ్ చరిత్రను కలిగి ఉండవచ్చు.</translation>
-<translation id="3600456501114769456">మీ నిర్వాహకులు మీ పరికరంలోని స్థానిక ఫైల్‌లకు ప్రాప్యత నిలిపివేసారు.</translation>
 <translation id="3600792891314830896">ధ్వనిని ప్లే చేసే సైట్‌లను మ్యూట్ చేయండి</translation>
 <translation id="3603177256297531067">ఈ పేజీని అనువదించడం సాధ్యపడలేదు</translation>
 <translation id="3603533104205588786">మీరు పేజీని బుక్‌మార్క్ చేసేందుకు నక్షత్రం గుర్తును క్లిక్ చేయవచ్చు</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">స్క్రీన్‌షాట్‌లు నిలిపివేయబడ్డాయి</translation>
 <translation id="3625870480639975468">జూమ్‌ని రీసెట్ చెయ్యి</translation>
 <translation id="3626281679859535460">ప్రకాశం</translation>
-<translation id="3627052133907344175">పొడిగింపుకి కనీస సంస్కరణ "<ph name="IMPORT_VERSION" />" ఉన్న "<ph name="IMPORT_NAME" />" అవసరం, కానీ సంస్కరణ "<ph name="INSTALLED_VERSION" />" మాత్రమే ఇన్‌స్టాల్ చేయబడింది.</translation>
 <translation id="3627320433825461852">1 నిమిషం కంటే తక్కువ సమయం మిగిలి ఉంది</translation>
 <translation id="3627588569887975815">లింక్‌ను అజ్ఞా&amp;త విండోలో తెరువు</translation>
 <translation id="3627671146180677314">Netscape సర్టిఫికెట్ పునరుద్ధరణ సమయం</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">భాష సెట్టింగ్‌లు</translation>
 <translation id="3668823961463113931">హ్యాండ్లర్‌లు</translation>
 <translation id="3670229581627177274">బ్లూటూత్‌ను ఆన్ చేయండి</translation>
-<translation id="3672159315667503033">మీ స్థానిక కంప్యూటర్‌లో <ph name="URL" /> శాశ్వతంగా డేటాను నిల్వ చేయాలనుకుంటుంది.</translation>
 <translation id="3672681487849735243">ఫ్యాక్టరీ లోపం గుర్తించబడింది</translation>
 <translation id="367645871420407123">మీరు రూట్ పాస్‌వర్డ్‌ను డిఫాల్ట్ పరీక్ష చిత్ర విలువకు సెట్ చేయాలనుకుంటే ఖాళీగా వదిలిపెట్టండి</translation>
 <translation id="3678156199662914018">పొడిగింపు: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">మీరు ఆఫ్‌లైన్‌లో ఉన్నారు</translation>
 <translation id="3788401245189148511">ఇది వీటిని చేయాలనుకుంటోంది:</translation>
 <translation id="3789841737615482174">వ్యవస్థాపించు</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> అనేది డెస్క్‌టాప్‌లో మాత్రమే పని చేస్తుంది.</translation>
 <translation id="379082410132524484">మీ కార్డ్ గడువు ముగిసింది</translation>
 <translation id="3792890930871100565">ముద్రకాలను డిస్‌కనెక్ట్ చేయి</translation>
 <translation id="379422718204375917">మీ ఖాతాలోకి సైన్ ఇన్ చేయడానికి Smart Lockని ఉపయోగించండి</translation>
-<translation id="3794595850995182458">పేజీ నుండి నిష్క్రమించు</translation>
 <translation id="3796648294839530037">ఇష్టమైన నెట్‌వర్క్‌లు:</translation>
 <translation id="3797900183766075808">“<ph name="SEARCH_TERMS" />” కోసం <ph name="SEARCH_ENGINE" />లో &amp;శోధించండి</translation>
 <translation id="3798325802885154040">క్లిక్ చేయడానికి నొక్కే లక్షణం ప్రారంభించడానికి/నిలిపివేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" />ను ప్రారంభించు</translation>
 <translation id="3981760180856053153">చెల్లని సేవ్ రకం ఎంటర్ చెయ్యబడింది.</translation>
 <translation id="3983586614702900908">తెలియని విక్రేత అందించిన పరికరాలు</translation>
-<translation id="3984413272403535372">పొడిగింపుకు సంతకం చేసేటప్పుడు లోపం.</translation>
 <translation id="3987938432087324095">క్షమించండి, అర్థం కాలేదు.</translation>
 <translation id="3988996860813292272">సమయ మండలిని ఎంచుకోండి</translation>
 <translation id="3989635538409502728">సైన్ ఔట్</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">మీ Chromebookలో Google Play నుండి అనువర్తనాలు మరియు గేమ్‌లను ఇన్‌స్టాల్ చేసుకోండి. &lt;a target="_blank" href="<ph name="URL" />"&gt;మరింత తెలుసుకోండి&lt;/a&gt;</translation>
 <translation id="4088095054444612037">సమూహానికి ఆమోదించు</translation>
 <translation id="4090103403438682346">ధృవీకృత ప్రాప్యతను ప్రారంభించండి</translation>
-<translation id="4090404313667273475">ఈ పేజీలో కొన్ని మూలకాలను ప్రదర్శించడానికి <ph name="PLUGIN_NAME" /> అవసరం.</translation>
 <translation id="4090535558450035482">(ఈ పొడిగింపు నిర్వహించబడింది మరియు తీసివేయబడదు.)</translation>
 <translation id="4091434297613116013">పేపర్ షీట్‌లు</translation>
 <translation id="4093955363990068916">స్థానిక ఫైల్:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> ఇప్పుడు మీ పాస్‌వర్డ్‌లను సమకాలీకరిస్తుంది.</translation>
 <translation id="4715553623069266137">చాలా సంక్షిప్తం (0.8s)</translation>
 <translation id="4716483597559580346">అదనపు భద్రత కోసం పవర్ వాష్ చేయండి</translation>
-<translation id="471800408830181311">ప్రైవేట్ కీని అవుట్‌పుట్ చేయడంలో విఫలమైంది.</translation>
 <translation id="4720113199587244118">పరికరాలను జోడించు</translation>
 <translation id="4720185134442950733">మొబైల్ డేటా నెట్‌వర్క్</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> మీ స్క్రీన్‌ను భాగస్వామ్యం చేస్తోంది.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">బలమైన</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> "<ph name="EXTENSION_NAME" />" పొడిగింపుతో కమ్యూనికేట్ చేయాలనుకుంటోంది</translation>
 <translation id="4918086044614829423">ఆమోదించు</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> మీ కెమెరాను ఉపయోగించాలనుకుంటుంది.</translation>
 <translation id="4920887663447894854">ఈ పేజీలో మీ స్థానాన్ని ట్రాక్ చెయ్యకుండా ఈ క్రింది సైట్‌లు బ్లాక్ చెయ్యబడ్డాయి:</translation>
 <translation id="492299503953721473">Android అనువర్తనాలను తీసివేయి</translation>
 <translation id="4923279099980110923">అవును, నేను సహాయం అందించాలనుకుంటున్నాను</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">ఈ పొడిగింపు మాల్వేర్‌ను కలిగి ఉంది.</translation>
 <translation id="498294082491145744">కుక్కీలు, జావాస్క్రిప్ట్, ప్లగిన్‌లు, భౌగోళిక స్థానం, మైక్రోఫోన్, కెమెరా మొదలైన లక్షణాలకు వెబ్‌సైట్‌ల ప్రాప్యతను నియంత్రించే మీ సెట్టింగ్‌లను మార్చండి.</translation>
 <translation id="4988526792673242964">పేజీలు</translation>
-<translation id="4988792151665380515">పబ్లిక్ కీని ఎగుమతి చేయడానికి విఫలమైంది.</translation>
 <translation id="49896407730300355">అ&amp;పసవ్యదిశలో తిప్పు</translation>
 <translation id="4989966318180235467">&amp;నేపథ్య పేజీని పర్యవేక్షించు</translation>
 <translation id="4990343175649730969">Chrome శుభ్రత సాధనాన్ని డౌన్‌లోడ్ చేయి</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">దీన్ని మళ్లీ చూపవద్దు</translation>
 <translation id="5027550639139316293">ఇమెయిల్ సర్టిఫికెట్</translation>
 <translation id="5027562294707732951">పొడిగింపుని జోడించు</translation>
-<translation id="5028012205542821824">ఇన్‌స్టాలేషన్ ప్రారంభించబడలేదు.</translation>
 <translation id="5029568752722684782">కాపీని తీసివేయి</translation>
 <translation id="5030338702439866405">వీరిచే జారీచేయబడింది</translation>
 <translation id="5036662165765606524">బహుళ ఫైల్‌లను స్వయంచాలకంగా డౌన్‌లోడ్ చేయడానికి ఏ సైట్‌ను అనుమతించవద్దు</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">ఒక లోపం సంభవించింది.</translation>
 <translation id="5094721898978802975">సహకరిస్తున్న స్థానిక అనువర్తనాలతో కమ్యూనికేట్ చేయండి</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />'కు నెట్‌వర్క్‌కు కనెక్ట్ చేయడానికి విఫలమైంది: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">పాక్ చెయ్యడానికి డైరెక్టరీకు సరైన మార్గంను కనుగొనలేకపోయాము.</translation>
 <translation id="5099354524039520280">పైకి</translation>
 <translation id="5100114659116077956">మీకు తాజా లక్షణాలను అందించడానికి, మీ Chromeboxని నవీకరించడం అవసరం.</translation>
 <translation id="5101042277149003567">అన్ని బుక్‌మార్క్‌లను తెరువు</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">ఫోల్డర్‌లో చూపించు</translation>
 <translation id="5171045022955879922">URLను శోధించండి లేదా టైప్ చేయండి</translation>
 <translation id="5171343362375269016">వినిమయం చేసిన మెమరీ</translation>
-<translation id="5175870427301879686">మీ స్థానిక కంప్యూటర్‌లో <ph name="URL" /> శాశ్వతంగా డేటాను నిల్వ చేయాలనుకుంటుంది.</translation>
 <translation id="5177479852722101802">కెమెరా మరియు మైక్రోఫోన్ ప్రాప్యతను బ్లాక్ చేయడాన్ని కొనసాగించు</translation>
 <translation id="5177526793333269655">సూక్ష్మచిత్ర వీక్షణ</translation>
 <translation id="5177549709747445269">మీరు మొబైల్ డేటాను వినియోగిస్తున్నారు</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">ఈ పరికరాన్ని ఫార్మాట్ చేయి</translation>
 <translation id="5293170712604732402">సెట్టింగ్‌లను వాటి అసలు డిఫాల్ట్ విలువలకు పునరుద్ధరించండి</translation>
 <translation id="5298219193514155779">థీమ్ వీరిచే సృష్టించబడింది</translation>
-<translation id="5298363578196989456">ఇది భాగస్వామ్య మాడ్యూల్ కానందున పొడిగింపు "<ph name="IMPORT_NAME" />"ని దిగుమతి చేయడం సాధ్యపడలేదు.</translation>
 <translation id="5299109548848736476">ట్రాక్ చేయవద్దు</translation>
 <translation id="5299682071747318445">మీ సమకాలీకరణ రహస్య పదబంధంతో డేటా మొత్తం గుప్తీకరించబడింది</translation>
 <translation id="5300589172476337783">చూపించు</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" దీనితో జత చేయాలనుకుంటోంది</translation>
 <translation id="5332624210073556029">టైమ్ జోన్:</translation>
 <translation id="5334142896108694079">స్క్రిప్ట్ క్యాష్</translation>
-<translation id="533433379391851622">ఆశించిన సంస్కరణ "<ph name="EXPECTED_VERSION" />", కానీ "<ph name="NEW_ID" />" సంస్కరణ అందించబడింది.</translation>
 <translation id="5334844597069022743">మూలాన్ని చూడండి</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> వాటిని <ph name="BEGIN_LINK" />Google డిస్క్<ph name="END_LINK" />కు బ్యాకప్ చేస్తోంది</translation>
 <translation id="5337771866151525739">మూడవ పక్షం ద్వారా ఇన్‌స్టాల్ చేయబడింది.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">ధ్వనిని ప్లే చేయడానికి సైట్‌లను అనుమతించండి</translation>
 <translation id="5390284375844109566">సూచికలోని డేటాబేస్</translation>
 <translation id="5390743329570580756">దీని కోసం పంపు</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" />లో <ph name="PEPPER_PLUGIN_NAME" /> మీ కంప్యూటర్‌ను ప్రాప్యత చేయాలనుకుంటోంది.</translation>
 <translation id="5397794290049113714">మీరు</translation>
 <translation id="5398572795982417028">పేజీ సూచన పరిమితిని దాటిపోయారు, పరిమితి <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">ప్రకటనలు బ్లాక్ చేయబడ్డాయి</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">అన్ని ట్యాబ్‌లను పునరుద్ధరించు</translation>
 <translation id="5486261815000869482">పాస్‌వర్డ్‌ని నిర్ధారించండి</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> మీ స్క్రీన్‌ను <ph name="TAB_NAME" />తో భాగస్వామ్యం చేస్తోంది.</translation>
-<translation id="5486326529110362464">ప్రైవేట్ కీ కోసం ఇన్‌పుట్ విలువ తప్పనిసరిగా ఉండాలి.</translation>
 <translation id="5486561344817861625">బ్రౌజర్ పునఃప్రారంభాన్ని ప్రారంభించండి</translation>
 <translation id="5487521232677179737">డేటాని తీసివేయి</translation>
 <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' కాపీ చేయబడింది</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951"><ph name="UPDATE_SIZE_MB" /> MB మొబైల్ డేటాను ఉపయోగించి నవీకరణ డౌన్‌లోడ్ చేయబడుతుంది. మీరు కొనసాగాలనుకుంటున్నారా?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">ఇతర శోధన ఇంజిన్‌లు</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" />లోని <ph name="PEPPER_PLUGIN_NAME" /> మీ పరికరాన్ని ప్రాప్యత చేయాలనుకుంటోంది.</translation>
 <translation id="5608580678041221894">కత్తిరింపు ప్రాంతాన్ని సర్దుబాటు చేయడానికి లేదా తరలించడానికి క్రింది కీలను నొక్కండి</translation>
 <translation id="5609231933459083978">అనువర్తనం చెల్లనిదిగా కనిపిస్తోంది.</translation>
 <translation id="5610038042047936818">కెమెరా మోడ్‌కు మార్చు</translation>
@@ -3193,10 +3148,9 @@
 <translation id="5984222099446776634">ఇటీవల సందర్శించినవి</translation>
 <translation id="5989712527536636369"><ph name="BEGIN_PARAGRAPH1" />ఇది మీ పరికరం గురించి మరియు మీరు దీన్ని ఉపయోగించే విధానం గురించి, ఉదా., బ్యాటరీ స్థాయి, మీరు అనువర్తనాలు ఎంత తరచుగా ఉపయోగిస్తుంటారు, మీ నెట్‌వర్క్ కనెక్షన్‌ల (Wi-Fi మరియు బ్లూటూత్ వంటివి) నాణ్యత మరియు వ్యవధి మరియు ఏవైనా సక్రమంగా పని చేయకుంటే వాటికి సంబంధించి అందించే క్రాష్ నివేదికల వంటి వాటి గురించి తెలిపే సాధారణ సమాచారం. ఆ సమాచారం అందరి కోసం Google ఉత్పత్తులు మరియు సేవలను మెరుగుపరచడానికి ఉపయోగించబడుతుంది. కొంత సమగ్ర సమాచారం Android డెవలపర్‌ల వంటి భాగస్వాములు వారి అనువర్తనాలు మరియు ఉత్పత్తులను మెరుగుపరచడంలో కూడా వారికి సహాయపడుతుంది.<ph name="END_PARAGRAPH1" />
 <ph name="BEGIN_PARAGRAPH2" />మీరు దీన్ని Android అనువర్తనాల సెట్టింగ్‌ల్లో ఎప్పుడైనా ఆన్ లేదా ఆఫ్ చేయవచ్చు. దీని వలన సిస్టమ్ నవీకరణలు మరియు భద్రత వంటి ఆవశ్యక సేవలను పొందడానికి అవసరమైన సమాచారాన్ని పంపగల మీ పరికర సామర్థ్యంపై ఎలాంటి ప్రభావం ఉండదు.<ph name="END_PARAGRAPH2" /></translation>
-<translation id="5990386583461751448">అనువాదించబడింది</translation>
+<translation id="5990386583461751448">అనువదించబడింది</translation>
 <translation id="5991049340509704927">పెద్దదిగా చేయండి</translation>
 <translation id="5993332328670040093">మీ డేటా వినియోగం ఇకపై గణించబడదు.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" />దానిని అది అప్డేట్ చేసుకోలేకపోవచ్చు. </translation>
 <translation id="600424552813877586">చెల్లని అనువర్తనం.</translation>
 <translation id="6005695835120147974">మీడియా రూటర్</translation>
 <translation id="6006484371116297560">క్లాసిక్</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Cloud బ్యాకప్</translation>
 <translation id="6040143037577758943">మూసివేయి</translation>
 <translation id="6040852767465482106">అనామక గుర్తింపు</translation>
+<translation id="6041155700700864984">పూర్తి స్క్రీన్ నుండి నిష్క్రమించు</translation>
 <translation id="604124094241169006">స్వయంచాలకంగా</translation>
 <translation id="6042169520002885235">ప్రింటర్ తయారీదారు మరియు మోడల్‌ను ఎంచుకోండి</translation>
 <translation id="6042308850641462728">మరింత</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">సాధారణంగా మళ్లీ లోడ్ చేయి</translation>
 <translation id="6059652578941944813">సర్టిఫికెట్ అధికార క్రమం</translation>
 <translation id="6059925163896151826">USB పరికరాలు</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> క్రాష్ అయింది.</translation>
 <translation id="6064217302520318294">స్క్రీన్ లాక్</translation>
 <translation id="6065289257230303064">సర్టిఫికెట్ విషయ డైరెక్టరీ లక్షణాలు</translation>
 <translation id="6068338049763724728">రిమోట్ నమోదును ఆరంభించండి</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">మీ స్క్రీన్ రిజల్యూషన్‌ను సర్దుబాటు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation>
 <translation id="6238923052227198598">లాక్ స్క్రీన్‌పై తాజా గమనికను ఉంచండి</translation>
 <translation id="6239558157302047471">&amp;ఫ్రేమ్ మళ్లీ లోడ్ చేయి</translation>
-<translation id="624022915548992686">పేజీ నుండి నిష్క్రమించు</translation>
 <translation id="6241530762627360640">మీ సిస్టమ్‌తో జత చేయబడిన బ్లూటూత్ పరికరాలకు సంబంధించిన సమాచారాన్ని ప్రాప్యత చేయడానికి మరియు సమీపంలోని బ్లూటూత్ పరికరాలను కనుగొనడానికి అనుమతి.</translation>
 <translation id="6243774244933267674">సర్వర్ అందుబాటులో లేదు</translation>
 <translation id="6246413617632217567">పర్యవేక్షిత వినియోగదారుని దిగుమతి చేయడం సాధ్యపడలేదు. దయచేసి మీ హార్డ్ డ్రైవ్ ఖాళీ మరియు అనుమతులను తనిఖీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">తెలియని నెట్‌వర్క్ లోపం</translation>
 <translation id="6313641880021325787">VRని నిష్క్రమించు</translation>
 <translation id="6314819609899340042">మీరు ఈ <ph name="IDS_SHORT_PRODUCT_NAME" /> పరికరంలో డీబగ్గింగ్ లక్షణాలను విజయవంతంగా ప్రారంభించారు.</translation>
-<translation id="6315343732431721770">మీ ప్రారంభ పేజీలు <ph name="URL" />ని చేర్చేలా మార్చబడ్డాయి. మీ ప్రారంభ పేజీని మార్చే పొడిగింపులను నిలిపివేయడానికి, పునరుద్ధరించు క్లిక్ చేయండి.</translation>
 <translation id="6315493146179903667">అన్నీ ముందుకు తీసుకెళ్లు</translation>
 <translation id="6316806695097060329">ఈ <ph name="SHORT_PRODUCT_NAME" /> పరికరం మీకు వెబ్‌లోని ఉత్తమ అనుభవాన్ని అందించేందుకు రూపొందించబడింది.</translation>
 <translation id="6317318380444133405">ఇప్పుడు మద్దతు లేదు.</translation>
 <translation id="6317369057005134371">అనువర్తన విండో కోసం వేచి ఉంది...</translation>
 <translation id="6318407754858604988">డౌన్‌లోడ్ ప్రారంభించబడింది</translation>
-<translation id="6322279351188361895">ప్రైవేట్ కీని చదవడంలో విఫలమైంది.</translation>
 <translation id="6325191661371220117">స్వీయ-ప్రారంభాన్ని నిలిపివేయి</translation>
 <translation id="6326175484149238433">Chrome నుండి తీసివేయి</translation>
 <translation id="6326855256003666642">సక్రియ కార్యాచరణల గణన</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">దేన్ని సమకాలీకరించాలో ఎంచుకోండి</translation>
 <translation id="6333064448949140209">పైల్ డీబగ్గింగ్ కోసం Googleకి పంపబడుతుంది</translation>
 <translation id="6333834492048057036">శోధన చిరునామా పట్టీపై కేంద్రీకరించండి</translation>
-<translation id="6336907568130557310">ఎగుమతి చేయబడిన ఫైల్‌ను చూడగల ఎవరికైనా మీ పాస్‌వర్డ్‌లు కనిపిస్తాయి. ఎవరితోనూ ఫైల్‌ను షేర్ చేయవద్దు మరియు దిగుమతి చేసిన తర్వాత దాన్ని తొలగించండి.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> కోసం కొత్త ప్రొఫైల్‌ను సృష్టించు</translation>
 <translation id="6340017061976355871">సర్వర్‌కి కనెక్ట్ చేయడం సాధ్యం కాలేదు. దయచేసి మీ నెట్‌వర్క్ కనెక్షన్‌ని తనిఖీ చేసి, మళ్లీ ప్రయత్నించండి. సమస్య కొనసాగినట్లయితే, మీ Chromebookని పునఃప్రారంభించండి.</translation>
 <translation id="6340071272923955280">ఇంటర్నెట్ ముద్రణ ప్రోటోకాల్ (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">సైట్‌లు కుక్కీ డేటాను సేవ్ చేయగలవు మరియు చదవగలవు</translation>
 <translation id="6388771388956873507">మీ పరికరంలో వేలిముద్ర సెన్సార్ ఎక్కడ ఉందో చూసి, మీ వేలితో దాన్ని తాకండి</translation>
 <translation id="6390799748543157332">మీరు ఈ విండో‌లో వీక్షించే పేజీలు బ్రౌజర్ చరిత్రలో కనిపించవు మరియు తెరవబడిన అన్ని అతిథి విండోలను మీరు మూసివేసిన తర్వాత అవి కంప్యూటర్‌లో కుక్కీల వంటి ఇతర జాడలను వదిలిపెట్టవు. అయితే, మీరు డౌన్‌లోడ్ చేసే ఫైల్‌లు భద్రపరచబడతాయి.</translation>
-<translation id="6391538222494443604">ఇన్‌పుట్ డైరెక్టరీ తప్పనిసరిగా ఉనికిలో ఉండాలి.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />సిస్టమ్ సమాచారం<ph name="END_LINK1" /> మరియు <ph name="BEGIN_LINK2" />గణాంకాలు<ph name="END_LINK2" /> పంపు</translation>
 <translation id="6397363302884558537">మాట్లాడటాన్ని ఆపివేయి</translation>
 <translation id="6397592254427394018">అన్ని బుక్‌మార్క్‌లను &amp;అజ్ఞాత విండోలో తెరువు</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">JavaScript నిరోధించడాన్ని నిర్వహించు...</translation>
 <translation id="6459488832681039634">కనుగొనడానికి ఎంపికను ఉపయోగించండి</translation>
 <translation id="6460601847208524483">తదుపరిది కనుగొను</translation>
-<translation id="6462080265650314920">అనువర్తనాలు తప్పనిసరిగా "<ph name="CONTENT_TYPE" />" కంటెంట్-రకంతో అందించబడాలి.</translation>
 <translation id="6462082050341971451">మీరు ఇంకా అక్కడ ఉన్నారా?</translation>
 <translation id="6463795194797719782">సవ&amp;రించు</translation>
 <translation id="6466988389784393586">&amp;అన్ని బుక్‌మార్క్‌లను తెరువు</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">ఈ పేజీని Google <ph name="SOURCE_LANGUAGE" /> నుండి <ph name="TARGET_LANGUAGE" />కి అనువదించాలని మీరు కోరుకుంటున్నారా?</translation>
 <translation id="6675665718701918026">సూచిస్తున్న పరికరం కనెక్ట్ చేయబడింది</translation>
-<translation id="6677037229676347494">ఆశించిన ID "<ph name="EXPECTED_ID" />", కానీ "<ph name="NEW_ID" />" ID అందించబడింది.</translation>
 <translation id="6678717876183468697">ప్రశ్న URL</translation>
 <translation id="6680028776254050810">వినియోగదారులను మార్చు</translation>
 <translation id="6680442031740878064">అందుబాటులో ఉంది: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">Google సేకరించిన సమాచారాన్ని మీరు ఏ సమయంలోనైనా <ph name="BEGIN_LINK" />సెట్టింగ్‌ల<ph name="END_LINK" />లో అనుకూలీకరించవచ్చు.</translation>
 <translation id="6904344821472985372">ఫైల్ ప్రాప్యతను ఉపసంహరించు</translation>
 <translation id="6904655473976120856">నిష్క్రమించడానికి అనువర్తన బటన్ నొక్కండి</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> మీ స్క్రీన్‌ను భాగస్వామ్యం చేయాలనుకుంటోంది.</translation>
-<translation id="6909461304779452601">ఈ వెబ్‌సైట్ నుండి అనువర్తనాలు, పొడిగింపులు మరియు వినియోగదారు స్క్రిప్ట్‌లు జోడించబడవు.</translation>
 <translation id="6910211073230771657">తొలగించబడింది</translation>
 <translation id="691024665142758461">బహుళ ఫైల్‌లను డౌన్‌లోడ్ చేయాలనుకుంటోంది</translation>
 <translation id="6911324888870229398">నెట్‌వర్క్ కనెక్షన్ పోయింది. దయచేసి మీ కనెక్షన్‌ని తనిఖీ చేయండి లేదా మరో Wi-Fi నెట్‌వర్క్‌తో ప్రయత్నించండి.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">లోపం: పొడిగింపులను డీకోడ్ చేయడం సాధ్యం కాదు</translation>
 <translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation>
 <translation id="747459581954555080">అన్నీ పునరుద్ధరించు</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" />‌కి ఎర్రర్ ఎదురైంది.</translation>
 <translation id="7475671414023905704">Netscape తప్పిపోయిన పాస్‌వర్డ్ URL</translation>
 <translation id="7476454130948140105">అప్‌డేట్ చేయడానికి తగినంత బ్యాటరీ ఛార్జింగ్ లేదు (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">మీరు మీ పాస్‌ఫ్రేస్‌ను మరచిపోయినట్లయితే, <ph name="BEGIN_LINK" />Google డాష్‌బోర్డ్<ph name="END_LINK" /> ద్వారా సమకాలీకరణను నిలిపివేయండి మరియు రీసెట్ చేయండి.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">స్థితి ప్రతిస్పందన సర్టిఫికెట్</translation>
 <translation id="7508545000531937079">స్లయిడ్ ప్రదర్శన</translation>
 <translation id="7513029293694390567">నిల్వ చేసిన ఆధారాలను ఉపయోగించి స్వయంచాలకంగా వెబ్‌సైట్‌లకు సైన్ ఇన్ చేస్తుంది. దీన్ని నిలిపివేస్తే, మీరు వెబ్‌సైట్‌కు సైన్ ఇన్ చేసే ప్రతిసారి నిర్ధారణ కోసం మిమ్మల్ని అడుగుతుంది.</translation>
-<translation id="7515670329462166359">రక్షిత కంటెంట్‌ను ప్లే చేయడానికి <ph name="URL" /> మీ పరికరాన్ని ప్రత్యేకంగా గుర్తించాలనుకుంటోంది.</translation>
 <translation id="7517569744831774757">సెట్టింగ్‌లను వాటి అసలు డిఫాల్ట్‌లకు పునరుద్ధరిస్తుంది.</translation>
 <translation id="7517786267097410259">పాస్‌వర్డ్‌ను సృష్టించండి -</translation>
 <translation id="7518150891539970662">WebRTC లాగ్‌లు (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     పర్యవేక్షించబడే వినియోగదారుని సృష్టించడాన్ని ప్రయత్నించవచ్చు.</translation>
 <translation id="756445078718366910">బ్రౌజర్ విండోను తెరువు</translation>
 <translation id="7564847347806291057">ప్రాసెస్‌ని ముగించు</translation>
-<translation id="7565291891798266313">మీ శోధన ఇంజిన్ <ph name="URL" />కి మార్చబడింది. మీ శోధన ఇంజిన్‌ను మార్చే పొడిగింపులను నిలిపివేయడానికి, పునరుద్ధరించు క్లిక్ చేయండి.</translation>
 <translation id="7566118625369982896">Play యాప్ లింక్‌లను నిర్వహించండి</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome డేటా తీసివేయబడింది</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">బ్యాటరీ ఛార్జ్</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">పోగు చేయు</translation>
-<translation id="7577815336900970562">స్థానాన్ని గుర్తించడానికి WiFi లేదా సెల్యులార్ నెట్‌వర్క్‌ను ఉపయోగించండి</translation>
 <translation id="7579149537961810247">సైట్‌లను మ్యూట్ చేయండి</translation>
 <translation id="7580671184200851182">అన్ని స్పీకర్‌ల్లో ఒకే ఆడియోను ప్లే చేయి (మోనో ఆడియో)</translation>
 <translation id="7581462281756524039">శుభ్రత సాధనం</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">సెషన్ నిల్వ</translation>
 <translation id="7781335840981796660">అన్ని వినియోగదారు ఖాతాలు మరియు స్థానిక డేటా తీసివేయబడతాయి.</translation>
 <translation id="7782102568078991263">ఇక Google నుండి సూచనలు లేవు</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" />లో లోడ్ చేయడం సాధ్యపడలేదు</translation>
 <translation id="7784067724422331729">మీ కంప్యూటర్‌లోని భద్రతా సెట్టింగ్‌లు ఈ ఫైల్‌ను బ్లాక్ చేసాయి.</translation>
 <translation id="7786207843293321886">అతిథిగా నిష్క్రమించు</translation>
 <translation id="7786889348652477777">అనువర్తనాన్ని &amp;మళ్లీ లోడ్ చేయి</translation>
@@ -4320,7 +4262,7 @@
 <translation id="7815680994978050279">ప్రమాదకరమైన డౌన్‌లోడ్ బ్లాక్ చేయబడింది</translation>
 <translation id="7818135753970109980">క్రొత్త థీమ్ జోడించబడింది (<ph name="EXTENSION_NAME" />)</translation>
 <translation id="7819857487979277519">PSK (WPA లేదా RSN)</translation>
-<translation id="7819992334107904369">Chrome sync</translation>
+<translation id="7819992334107904369">Chrome సమకాలీకరణ</translation>
 <translation id="782057141565633384">వీడియో చిరునామాను కా&amp;పీ చేయండి</translation>
 <translation id="7821462174190887129"><ph name="FILE_COUNT" /> కనుగొనబడ్డాయి.
     <ph name="LINE_BREAK1" />
@@ -4446,7 +4388,6 @@
 <translation id="8001504501378762252">ఒక సైట్ మీ పాస్‌వర్డ్‌ను దొంగిలించి ఉండవచ్చు</translation>
 <translation id="8004582292198964060">బ్రౌజర్</translation>
 <translation id="8008356846765065031">ఇంటర్నెట్ డిస్‌కనెక్ట్ చేయబడింది. దయచేసి మీ ఇంటర్నెట్ కనెక్షన్‌ను తనిఖీ చేయండి.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" />ని లోడ్ చేయడం సాధ్యపడలేదు.</translation>
 <translation id="8008818777654712271">హానికరమైన అనువర్తనాలు మరియు సైట్‌లను గుర్తించడంలో సహాయపడటానికి కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను Googleకి స్వయంచాలకంగా పంపు</translation>
 <translation id="8012382203418782830">ఈ పేజీ అనువదించబడింది.</translation>
 <translation id="8014154204619229810">అప్‌డేటర్ ప్రస్తుతం అమలులో ఉంది. మళ్లీ తనిఖీ చేయడానికి ఒక నిమిషం తర్వాత రిఫ్రెష్ చేయండి.</translation>
@@ -4563,7 +4504,6 @@
 <translation id="8191230140820435481">మీ అనువర్తనాలను, పొడిగింపులను మరియు థీమ్‌లను నిర్వహించండి</translation>
 <translation id="8191453843330043793">V8 ప్రాక్సీ రిసాల్వర్</translation>
 <translation id="8195027750202970175">డిస్క్‌లో పరిమాణం</translation>
-<translation id="8195739004487400241">మీ హోమ్‌పేజీ పేజీ <ph name="URL" />కి మార్చబడింది. మీ హోమ్‌పేజీని మార్చే పొడిగింపులను నిలిపివేయడానికి, పునరుద్ధరించు క్లిక్ చేయండి.‌</translation>
 <translation id="8199300056570174101">నెట్‌వర్క్ (సేవ) మరియు పరికర లక్షణాలు</translation>
 <translation id="8200772114523450471">మళ్ళీ ప్రారంభించు</translation>
 <translation id="8202160505685531999">దయచేసి మీ <ph name="DEVICE_TYPE" /> ప్రొఫైల్‌ను నవీకరించడానికి మీ పాస్‌వర్డ్‌ను మళ్లీ నమోదు చేయండి.</translation>
@@ -4607,7 +4547,6 @@
 <translation id="8261378640211443080">ఈ పొడిగింపు <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />లో జాబితా చేయబడలేదు మరియు మీకు తెలియకుండానే జోడించబడి ఉండవచ్చు.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> కోసం ఖాతాను జోడించు</translation>
 <translation id="8261506727792406068">తొలగించు</translation>
-<translation id="826246685091802258">ఈ బిల్డ్‌లో <ph name="BAD_FLAG" /> అమలు చేయబడలేదు.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> మీ మౌస్ కర్సర్‌ను ఆపివేసింది.</translation>
 <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> పూర్తి స్క్రీన్‌ని ప్రారంభించింది.</translation>
 <translation id="8270242299912238708">PDF పత్రాలు</translation>
@@ -4709,6 +4648,7 @@
 <translation id="8454288007744638700">లేదా, కొత్త నెట్‌వర్క్‌ను ఎంచుకోండి:</translation>
 <translation id="845627346958584683">గడువు సమయం</translation>
 <translation id="8456681095658380701">చెల్లని పేరు</translation>
+<translation id="8457451314607652708">బుక్‌మార్క్‌లను దిగుమతి చేయి</translation>
 <translation id="8460336040822756677">మీరు <ph name="DEVICE_TYPE" /> కోసం Smart Lockను ఆఫ్ చేస్తే, మీ ఫోన్‌ను ఉపయోగించి మీ Chrome పరికరాలను అన్‌లాక్ చేయలేరు. మీరు మీ పాస్‌వర్డ్‌ను టైప్ చేయాల్సి ఉంటుంది.</translation>
 <translation id="8461329675984532579">స్వస్థల ప్రదాత పేరు</translation>
 <translation id="84613761564611563">నెట్‌వర్క్ కాన్ఫిగర్ UI అభ్యర్థించబడింది, దయచేసి వేచి ఉండండి...</translation>
@@ -4740,7 +4680,6 @@
 <translation id="850875081535031620">హానికరమైన సాఫ్ట్‌వేర్ కనుగొనబడలేదు</translation>
 <translation id="8512476990829870887">ప్రాసెస్‌ని ముగించు</translation>
 <translation id="851263357009351303">చిత్రాలను చూపించడానికి ఎల్లప్పుడూ <ph name="HOST" />ను అనుమతించు</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" ఈ బ్రౌజర్‌ను డీబగ్ చేస్తోంది.</translation>
 <translation id="8521475323816527629">మీ యాప్‌లను వేగంగా పొందండి</translation>
 <translation id="8523493869875972733">మార్పులను అలాగే ఉంచు</translation>
 <translation id="8523849605371521713">విధానం ద్వారా జోడించబడింది</translation>
@@ -4796,7 +4735,6 @@
 <translation id="8620765578342452535">నెట్‌వర్క్ కనెక్షన్‌లను కాన్ఫిగర్ చేయడానికి అనుమతి</translation>
 <translation id="8620790565535071193">స్కానింగ్ విఫలమైంది</translation>
 <translation id="8622877356447980900">మీరు ఈ పేజీని అనువదించాలనుకుంటున్నారా?</translation>
-<translation id="8623004009673949077">'కియోస్క్_మాత్రమే' మానిఫెస్ట్ లక్షణం ఉన్న అనువర్తనాన్ని తప్పనిసరిగా Chrome OS కియోస్క్ మోడ్‌లో ఇన్‌స్టాల్ చేయాలి.</translation>
 <translation id="8624205858755890468">మీకు సంబంధిత సమాచారం, యాప్‌లు మరియు చర్యలను చూపించడానికి సహాయకాన్ని ప్రారంభిస్తుంది.</translation>
 <translation id="862542460444371744">&amp;పొడిగింపులు</translation>
 <translation id="8627151598708688654">మూలాన్ని ఎంచుకోండి</translation>
@@ -4945,7 +4883,6 @@
 <translation id="882204272221080310">అదనపు భద్రత కోసం ఫర్మ్‌వేర్‌ను అప్‌డేట్ చేయండి.</translation>
 <translation id="8823514049557262177">లింక్ వచ&amp;నం కాపీ చేయి</translation>
 <translation id="8824701697284169214">పే&amp;జీని జోడించండి...</translation>
-<translation id="8827850355924932817">స్థానాన్ని గుర్తించడానికి WiFi నెట్‌వర్క్‌ను ఉపయోగించండి</translation>
 <translation id="8828933418460119530">DNS పేరు</translation>
 <translation id="8830796635868321089">ప్రస్తుత ప్రాక్సీ సెట్టింగ్‌లను ఉపయోగించి నవీకరణను తనిఖీ చేయడం విఫలమైంది. దయచేసి మీ <ph name="PROXY_SETTINGS_LINK_START" />ప్రాక్సీ సెట్టింగ్‌ల<ph name="PROXY_SETTINGS_LINK_END" />ను సర్దుబాటు చేయండి.</translation>
 <translation id="8834039744648160717">నెట్‌వర్క్ కాన్ఫిగరేషన్ <ph name="USER_EMAIL" /> ద్వారా నియంత్రించబడుతుంది.</translation>
@@ -4977,9 +4914,7 @@
 <translation id="8879284080359814990">టాబ్ వలె &amp;చూపించు</translation>
 <translation id="8884961208881553398">కొత్త సేవలను జోడించు</translation>
 <translation id="8885197664446363138">Smart Lock అందుబాటులో లేదు</translation>
-<translation id="8885905466771744233">నిర్థారించిన పొడిగింపుకు ఇప్పటికే ప్రైవేట్ కీ ఉంది. ఆ కీని మళ్ళీ ఉపయోగించండి లేదా దాన్ని మొదట తొలగించండి.</translation>
 <translation id="8888432776533519951">రంగు:</translation>
-<translation id="8892992092192084762">"<ph name="THEME_NAME" />" థీమ్ వ్యవస్థాపించబడింది.</translation>
 <translation id="8893928184421379330">క్షమించండి, పరికరం <ph name="DEVICE_LABEL" />  గుర్తించబడలేదు.</translation>
 <translation id="8895454554629927345">బుక్‌మార్క్‌ జాబితా</translation>
 <translation id="88986195241502842">దిగువ పేజీకి వెళుతుంది</translation>
@@ -4994,7 +4929,6 @@
 <translation id="8908902564709148335">హెచ్చరిక: మీరు ఈ కంప్యూటర్‌లో --స్క్రిప్ట్‌లకై-చర్య-అవసరం ఫ్లాగ్‌ను ప్రారంభించారు, దీనివల్ల ఈ పొడిగింపు సామర్థ్యాలు పరిమితం అవుతాయి. అయితే, ఇతర పరికరాల్లో ఈ ఫ్లాగ్‌కు మద్దతు ఉండకపోవచ్చు లేదా వాటిలో ప్రారంభించబడి ఉండకపోవచ్చు. ఈ పరికరాల్లో, ఈ పొడిగింపు వీటిని కూడా చేయగలదు:</translation>
 <translation id="8910146161325739742">మీ స్క్రీన్‌ను భాగస్వామ్యం చేయండి</translation>
 <translation id="8910222113987937043">మీ బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు మరియు ఇతర సెట్టింగ్‌ల్లో మార్పులు మీ Google ఖాతాకి ఇకపై సమకాలీకరించబడవు. అయినప్పటికీ, ఇప్పటికే ఉన్న మీ డేటా Google ఖాతాలో నిల్వ చేయబడుతుంది మరియు <ph name="BEGIN_LINK" />Google డాష్‌బోర్డ్<ph name="END_LINK" />లో నిర్వహించబడుతుంది.</translation>
-<translation id="8911079125461595075">Google "<ph name="EXTENSION_NAME" />"ను హానికరమైనదిగా ఫ్లాగ్ చేసింది మరియు ఇన్‌స్టాలేషన్ నిరోధించబడింది.</translation>
 <translation id="8912793549644936705">విస్తరించు</translation>
 <translation id="8915370057835397490">సూచన లోడ్ అవుతోంది</translation>
 <translation id="8916476537757519021">అజ్ఞాత సబ్‌ఫ్రేమ్: <ph name="SUBFRAME_SITE" /></translation>
@@ -5100,7 +5034,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB మౌస్ కనెక్ట్ చేయబడింది</translation>
 <translation id="9076523132036239772">క్షమించండి, మీ ఇమెయిల్ లేదా పాస్‌వర్డ్ ధృవీకరించబడలేదు. మొదట నెట్‌వర్క్‌కి కనెక్ట్ చెయ్యడానికి ప్రయత్నించండి.</translation>
-<translation id="907841381057066561">ప్యాకేజింగ్ సమయంలో తాత్కాలిక జిప్ ఫైల్‌ను సృష్టించడంలో విఫలమైంది.</translation>
 <translation id="9084064520949870008">విండో వలె తెరువు</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> ఎంటర్‌ప్రైజ్ విధానం వలన బ్లాక్ చేయబడింది</translation>
 <translation id="9088917181875854783">దయచేసి "<ph name="DEVICE_NAME" />"లో ఈ పాస్‌కీ చూపబడిందని నిర్ధారించండి:</translation>
@@ -5191,11 +5124,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">పాస్‌ఫ్రేజ్‌ని ఎంటర్ చెయ్యండి</translation>
 <translation id="939736085109172342">క్రొత్త  ఫోల్డర్</translation>
-<translation id="941543339607623937">చెల్లని ప్రైవేట్ కీ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> ఒక Chrome ట్యాబ్‌ను మరియు ఆడియోను భాగస్వామ్యం చేస్తోంది.</translation>
 <translation id="942954117721265519">ఈ డైరెక్టరీలో చిత్రాలు లేవు.</translation>
 <translation id="945522503751344254">అభిప్రాయాన్ని పంపండి</translation>
-<translation id="951981865514037445"><ph name="URL" /> మీ పరికర స్థానాన్ని ఉపయోగించాలనుకుంటోంది.</translation>
 <translation id="952992212772159698">సక్రియం చెయ్యబడలేదు</translation>
 <translation id="9580706199804957">Google సేవలకు కనెక్ట్ చేయడం సాధ్యం కాలేదు</translation>
 <translation id="958515377357646513">ముందుకు వెళ్లడానికి తాకండి.</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index 7470578..b4b213c 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">เข้ารหัสเท่านั้น</translation>
 <translation id="1039337018183941703">ไฟล์ไม่ถูกต้องหรือเสียหาย</translation>
 <translation id="1042174272890264476">คอมพิวเตอร์ของคุณมาพร้อมกับไลบรารี RLZ ของ <ph name="SHORT_PRODUCT_NAME" /> ในตัว โดย RLZ จะระบุแท็กที่ซ้ำกันได้และไม่สามารถระบุตัวบุคคลเพื่อวัดการค้นหาและการใช้งาน <ph name="SHORT_PRODUCT_NAME" /> ที่ทำงานโดยแคมเปญส่งเสริมการขายบางรายการ บางครั้งป้ายกำกับจะปรากฏในคำค้นหาของ Google Search ใน <ph name="PRODUCT_NAME" /></translation>
-<translation id="1042574203789536285"><ph name="URL" /> ต้องการจัดเก็บข้อมูลขนาดใหญ่อย่างถาวรในอุปกรณ์ของคุณ</translation>
 <translation id="1046059554679513793">ขออภัย ชื่อนี้มีการใช้งานแล้ว!</translation>
 <translation id="1047431265488717055">คัดลอก&amp;ข้อความของลิงก์</translation>
 <translation id="1047726139967079566">บุ๊กมาร์กหน้านี้...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">คืนค่าเป็นเครื่องมือค้นหาเริ่มต้นใช่ไหม</translation>
 <translation id="1177863135347784049">ที่กำหนดเอง</translation>
 <translation id="1178581264944972037">หยุดชั่วคราว</translation>
-<translation id="1179803038870941185"><ph name="URL" /> ต้องการที่จะได้รับสิทธิ์ควบคุมอุปกรณ์ MIDI เต็มรูปแบบ</translation>
 <translation id="1181037720776840403">ลบ</translation>
 <translation id="1183237619868651138">ไม่สามารถติดตั้ง <ph name="EXTERNAL_CRX_FILE" /> ในแคชในเครื่อง</translation>
 <translation id="1185924365081634987">คุณสามารถลอง<ph name="GUEST_SIGNIN_LINK_START" />เรียกดูในฐานะผู้เยี่ยมชม<ph name="GUEST_SIGNIN_LINK_END" /> เพื่อแก้ไขข้อผิดพลาดของเครือข่าย</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{เข้าถึง 1 ไฟล์ที่จัดเก็บไว้บนคอมพิวเตอร์}other{เข้าถึง # ไฟล์ที่จัดเก็บไว้บนคอมพิวเตอร์}}</translation>
 <translation id="1195076408729068893">ป้อนรหัสผ่านเพื่อเริ่มใช้ Smart Lock คุณสามารถใช้โทรศัพท์เพื่อปลดล็อก <ph name="DEVICE_TYPE" /> ได้ในครั้งถัดไป</translation>
 <translation id="1195447618553298278">ข้อผิดพลาดที่ไม่รู้จัก</translation>
-<translation id="1196338895211115272">ไม่สามารถส่งออกคีย์ส่วนตัว</translation>
 <translation id="119738088725604856">จับภาพหน้าจอของหน้าต่าง</translation>
 <translation id="1197979282329025000">เกิดข้อผิดพลาดขณะดึงข้อมูลความสามารถของเครื่องพิมพ์ <ph name="PRINTER_NAME" /> ไม่สามารถลงทะเบียนเครื่องพิมพ์นี้กับ <ph name="CLOUD_PRINT_NAME" /></translation>
 <translation id="1198271701881992799">มาเริ่มกันเลย</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">ผู้ดูแลระบบของคุณแนะนำให้ใช้ค่าเฉพาะสำหรับการตั้งค่านี้</translation>
 <translation id="1225177025209879837">กำลังดำเนินการตามคำขอ...</translation>
 <translation id="1225211345201532184">รายการชั้นวาง 5</translation>
-<translation id="1225404570112441414">เพิ่มเว็บไซต์นี้ลงในชั้นวางเพื่อใช้งานได้ทุกเมื่อ</translation>
 <translation id="1227507814927581609">การตรวจสอบสิทธิ์ล้มเหลวขณะที่เชื่อมต่อกับ "<ph name="DEVICE_NAME" />"</translation>
 <translation id="1230807973377071856">เมนูระบบ</translation>
 <translation id="1232569758102978740">ไม่ระบุชื่อ</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">ไฟล์ HTML บุ๊กมาร์ก</translation>
 <translation id="1303671224831497365">ไม่พบอุปกรณ์บลูทูธ</translation>
 <translation id="1306606229401759371">เปลี่ยนการตั้งค่า</translation>
-<translation id="1307398858972670978">เข้าถึงรหัสผ่านของคุณจากอุปกรณ์เครื่องใดก็ได้ที่ <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">อ๊ะ!  ระบบล้มเหลวในการจัดเก็บโทเค็นเพื่อการเข้าถึง API ในระยะยาวสำหรับอุปกรณ์นี้</translation>
 <translation id="1313405956111467313">กำหนดค่าพร็อกซีอัตโนมัติ</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">ค้นหา</translation>
 <translation id="1386387014181100145">สวัสดี</translation>
 <translation id="138784436342154190">คืนค่าเป็นหน้าเริ่มต้นใช้งานเริ่มต้นไหม</translation>
-<translation id="1389297115360905376">ต้องเพิ่มจาก <ph name="CHROME_WEB_STORE" /> เท่านั้น</translation>
 <translation id="1390548061267426325">เปิดเป็นแท็บทั่วไป</translation>
-<translation id="1391807639023934267">โหลดหน้าเว็บได้เร็วขึ้น</translation>
 <translation id="1393283411312835250">ดวงอาทิตย์และเมฆ</translation>
 <translation id="1395262318152388157">แถบเลื่อนเพื่อค้นหา</translation>
 <translation id="1395730723686586365">โปรแกรมอัปเดตเริ่มต้นแล้ว</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">คุณกำลังอัปเดตไปเป็น <ph name="PRODUCT_NAME" /> ในเวอร์ชันที่ไม่เสถียร ซึ่งมีฟีเจอร์ที่ยังอยู่ระหว่างดำเนินการ จะมีข้อขัดข้องและข้อบกพร่องที่ไม่คาดคิดเกิดขึ้น โปรดดำเนินการต่อด้วยความระมัดระวัง</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (รหัสส่วนขยาย "<ph name="EXTENSION_ID" />") ไม่ได้รับอนุญาตในเซสชันประเภทนี้</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">อ้าว! ไม่สามารถสร้างคีย์ส่วนตัว RSA แบบสุ่มได้</translation>
 <translation id="1420834118113404499">ใบอนุญาตสื่อ</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> เพื่ออนุญาตการจับคู่อุปกรณ์</translation>
 <translation id="1426410128494586442">ใช่</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">คัด&amp;ลอกที่อยู่เสียง</translation>
 <translation id="1465827627707997754">พิซซ่า 1 ชิ้น</translation>
 <translation id="1467432559032391204">ซ้าย</translation>
-<translation id="1467999917853307373"><ph name="URL" /> ต้องการจัดเก็บข้อมูลอย่างถาวรในอุปกรณ์ของคุณ</translation>
-<translation id="1470719357688513792">การตั้งค่าคุกกี้ใหม่จะแสดงผลหลังจากการโหลดหน้านี้อีกครั้ง</translation>
 <translation id="1470811252759861213">หากต้องการรับส่วนขยายในคอมพิวเตอร์ทุกเครื่องของคุณ ให้<ph name="SIGN_IN_LINK" /></translation>
 <translation id="1474339897586437869">ไม่ได้อัปโหลด "<ph name="FILENAME" />" มีพื้นที่ว่างไม่เพียงพอใน Google ไดรฟ์ของคุณ</translation>
 <translation id="1475502736924165259">คุณมีใบรับรองของไฟล์ที่ไม่เข้ากับหมวดหมู่อื่นๆ</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">เคอร์เซอร์เมาส์ขนาดใหญ่</translation>
 <translation id="1543284117603151572">นำเข้าจาก Edge</translation>
 <translation id="1545177026077493356">โหมดคีออสก์อัตโนมัติ</translation>
+<translation id="1545775234664667895">ติดตั้งธีม "<ph name="THEME_NAME" />" แล้ว</translation>
 <translation id="1545786162090505744">URL ที่มี %s ในตำแหน่งข้อความค้นหา</translation>
 <translation id="1546280085599573572">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณคลิกปุ่มหน้าแรก</translation>
 <translation id="1547572086206517271">ต้องรีเฟรช</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />ตรวจสอบ<ph name="END_BOLD" />เว็บไซต์ที่ผู้ใช้ภายใต้การดูแลได้เข้าเยี่ยมชม และ
     <ph name="BEGIN_BOLD" />จัดการ<ph name="END_BOLD" />การตั้งค่าอื่นๆ</translation>
 <translation id="1648943974594387137">รายละเอียดการลงชื่อเข้าใช้ล้าสมัยแล้ว</translation>
-<translation id="1649641629389702691">&lt;ไม่ได้แสดง <ph name="LINE_COUNT" /> บรรทัด&gt;</translation>
 <translation id="1650371550981945235">แสดงตัวเลือกการป้อนข้อมูล</translation>
 <translation id="1650709179466243265">เพิ่ม www. และ .com และเปิดที่อยู่</translation>
 <translation id="1651008383952180276">คุณต้องป้อนรหัสผ่านเดียวกัน 2 ครั้ง</translation>
-<translation id="1652972346408808053">บันทึกรหัสผ่านแล้ว เข้าถึงรหัสผ่านจากอุปกรณ์เครื่องใดก็ได้ที่ <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{เพิ่มเครื่องพิมพ์ลงใน Google Cloud Print เพื่อให้คุณสามารถพิมพ์ได้จากทุกที่}other{เพิ่มเครื่องพิมพ์ # เครื่องลงใน Google Cloud Print เพื่อให้คุณสามารถพิมพ์ได้จากทุกที่}}</translation>
 <translation id="1657406563541664238">ช่วยปรับปรุง <ph name="PRODUCT_NAME" /> ให้ดีขึ้นโดยการส่งสถิติการใช้งานและรายงานปัญหาไปยัง Google โดยอัตโนมัติ</translation>
 <translation id="1658424621194652532">หน้านี้กำลังเข้าถึงไมโครโฟนของคุณ</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">ปิดกั้นคุกกี้ต่อไป</translation>
 <translation id="204622017488417136">อุปกรณ์จะเปลี่ยนกลับเป็นเวอร์ชันก่อนหน้าของ Chrome ที่ติดตั้งไว้ บัญชีผู้ใช้ทั้งหมดและข้อมูลในเครื่องจะถูกนำออก โดยขั้นตอนนี้ไม่สามารถยกเลิกได้</translation>
 <translation id="2048182445208425546">เข้าถึงปริมาณการใช้งานเครือข่าย</translation>
-<translation id="2049137146490122801">ผู้ดูแลระบบของคุณได้ปิดใช้งานการเข้าถึงไฟล์ในตัวเครื่องของคุณ</translation>
 <translation id="204914487372604757">สร้างทางลัด</translation>
 <translation id="2050339315714019657">แนวตั้ง</translation>
 <translation id="2053312383184521053">ข้อมูลของสถานะไม่มีการใช้งาน</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">ยังไม่ได้โหลด</translation>
 <translation id="2107494551712864447">เพิ่มลายนิ้วมือ</translation>
-<translation id="2111843886872897694">แอปพลิเคชันต้องได้รับบริการจากโฮสต์ที่แอปพลิเคชันนั้นมีผลกระทบ</translation>
 <translation id="2112877397266219826">เปิดอุปกรณ์ควบคุมการแตะเพื่อตั้งค่าให้เสร็จสิ้น</translation>
 <translation id="21133533946938348">ตรึงแท็บ</translation>
 <translation id="2113479184312716848">เปิดไ&amp;ฟล์...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">แจ้งให้เราทราบถึงสิ่งที่เกิดขึ้น</translation>
 <translation id="2229161054156947610">เหลือเวลามากกว่า 1 ชั่วโมง</translation>
 <translation id="222931766245975952">ไฟล์ไม่สมบูรณ์</translation>
-<translation id="222949136907494149"><ph name="URL" /> ต้องการใช้ตำแหน่งเครื่องคอมพิวเตอร์ของคุณ</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">ไม่สามารถสร้างโฟลเดอร์ "<ph name="FOLDER_NAME" />" <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">คลิกเพื่อดู doodle ของวันนี้</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">บล็อกการเข้าถึงไมโครโฟนเสมอ</translation>
 <translation id="2367972762794486313">แสดงแอป</translation>
 <translation id="2371076942591664043">เปิดเมื่อเ&amp;สร็จ</translation>
-<translation id="237336063998926520">ใช้ที่อยู่ IP เพื่อกำหนดตำแหน่งที่ตั้ง</translation>
 <translation id="2377319039870049694">เปลี่ยนเป็นมุมมองรายการ</translation>
 <translation id="2377667304966270281">ฮาร์ดฟอลต์</translation>
 <translation id="2378075407703503998">เลือก <ph name="SELCTED_FILE_COUNT" /> ไฟล์</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> ต้องการคัดลอกไฟล์จาก <ph name="VOLUME_NAME" /></translation>
 <translation id="2462724976360937186">รหัสคีย์ผู้ออกใบรับรอง</translation>
 <translation id="2462752602710430187">เพิ่ม <ph name="PRINTER_NAME" /> แล้ว</translation>
-<translation id="246335896104539386">นำเข้าบุ๊กมาร์ก</translation>
 <translation id="2464089476039395325">พร็อกซี HTTP</translation>
 <translation id="2468902267404883140">ไม่สามารถเชื่อมต่อกับโทรศัพท์ของคุณ โปรดตรวจสอบว่าคุณใช้โทรศัพท์ Android ที่เข้ากันได้ซึ่งเปิดอยู่และอยู่ใกล้ๆ มือคุณ &lt;a&gt;เรียนรู้เพิ่มเติม&lt;/a&gt;</translation>
 <translation id="2470702053775288986">ปิดใช้ส่วนขยายที่ไม่สนับสนุนแล้ว</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
 <translation id="2487067538648443797">เพิ่มบุ๊กมาร์กใหม่</translation>
 <translation id="248861575772995840">ไม่พบโทรศัพท์ของคุณ โปรดตรวจสอบว่า <ph name="DEVICE_TYPE" /> เปิดบลูทูธอยู่ &lt;a&gt;เรียนรู้เพิ่มเติม&lt;/a&gt;</translation>
-<translation id="2489316678672211764">ปลั๊กอิน (<ph name="PLUGIN_NAME" />) ไม่ตอบสนอง</translation>
 <translation id="2489428929217601177">วันที่ผ่านมา</translation>
 <translation id="2489918096470125693">เพิ่ม&amp;โฟลเดอร์...</translation>
 <translation id="249113932447298600">ขออภัย อุปกรณ์ <ph name="DEVICE_LABEL" /> ไม่ได้รับการสนับสนุนในขณะนี้</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">ขอแสดงความยินดี! บริการข้อมูล "<ph name="NAME" />" ของคุณได้เปิดใช้งานและพร้อมใช้งานแล้ว</translation>
 <translation id="2566124945717127842">Powerwash เพื่อรีเซ็ตอุปกรณ์ <ph name="IDS_SHORT_PRODUCT_NAME" /> ให้เหมือนใหม่</translation>
 <translation id="2568774940984945469">ที่เก็บแถบข้อมูล</translation>
-<translation id="2570000010887652771">ประหยัดเน็ต</translation>
 <translation id="257088987046510401">ธีม</translation>
 <translation id="2572032849266859634">ได้รับสิทธิ์ในการอ่าน <ph name="VOLUME_NAME" /> เท่านั้นแล้ว</translation>
 <translation id="2573269395582837871">เลือกรูปภาพและชื่อ</translation>
 <translation id="2575247648642144396">ไอคอนนี้จะปรากฏเมื่อส่วนขยายสามารถทำงานบนหน้าเว็บปัจจุบัน ใช้ส่วนขยายนี้โดยคลิกที่ไอคอน หรือกด <ph name="EXTENSION_SHORTCUT" /></translation>
 <translation id="2575268751393592580">ไม่พบโทรศัพท์ของคุณ โปรดตรวจสอบว่า <ph name="DEVICE_TYPE" /> เชื่อมต่อ Wi-Fi หรือเครือข่ายมือถืออยู่ &lt;a&gt;เรียนรู้เพิ่มเติม&lt;/a&gt;</translation>
-<translation id="2576842806987913196">มีไฟล์ CRX ที่มีชื่อนี้อยู่แล้ว</translation>
 <translation id="257779572837908839">ตั้งค่าเป็น Chromebox วิดีโอคอนเฟอเรนซ์</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />ยกเลิกการต่อเชื่อมระดับเสียงไม่ได้<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">หากคุณลบใบรับรองของผู้ออกใบรับรอง (CA) เบราว์เซอร์ของคุณจะไม่เชื่อถือใบรับรองใดที่ออกโดย CA นั้นอีกต่อไป</translation>
 <translation id="2653659639078652383">ส่ง</translation>
 <translation id="265390580714150011">ค่าฟิลด์ </translation>
-<translation id="2654286334048437383">ส่งออกบุ๊กมาร์ก</translation>
 <translation id="2655386581175833247">ใบรับรองผู้ใช้:</translation>
 <translation id="2660779039299703961">กิจกรรม</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">เพิ่มแกลเลอรีสื่อตามไดเรกทอรี</translation>
 <translation id="2908789530129661844">ย่อหน้าจอ</translation>
 <translation id="2910318910161511225">เชื่อมต่อกับเครือข่ายแล้วลองอีกครั้ง</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> ต้องการใช้ไมโครโฟนของคุณ</translation>
 <translation id="2913331724188855103">อนุญาตให้ไซต์บันทึกและอ่านข้อมูลคุกกี้ (แนะนำ)</translation>
 <translation id="2916073183900451334">การกดแท็บบนหน้าเว็บจะเน้นลิงก์ และฟิลด์ของฟอร์ม</translation>
 <translation id="2916745397441987255">ค้นหาส่วนขยาย</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">นำหน้าต่างขึ้น</translation>
 <translation id="3053013834507634016">การใช้คีย์ใบรับรอง </translation>
 <translation id="3057861065630527966">สำรองรูปภาพและวิดีโอ</translation>
-<translation id="3060379269883947824">เปิดใช้การเลือกเพื่อพูด</translation>
+<translation id="3060379269883947824">เปิดใช้การเลือกเพื่อให้อ่าน</translation>
 <translation id="3061707000357573562">แพตช์บริการ</translation>
 <translation id="3064410671692449875">ข้อมูลไม่เพียงพอ</translation>
 <translation id="3065041951436100775">แตะความคิดเห็นที่ปิดไป</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">กำลังฟัง...</translation>
 <translation id="3141917231319778873">คำขอที่ระบุไม่สามารถใช้ได้ใน "<ph name="DEVICE_NAME" />"</translation>
 <translation id="3144126448740580210">เสร็จสิ้น</translation>
-<translation id="3144135466825225871">ไม่สามารถแทนที่ไฟล์ CRX ได้ โปรดตรวจสอบดูว่าไฟล์มีการใช้งานอยู่หรือไม่</translation>
 <translation id="3144647712221361880">เปิดลิงก์ในฐานะ</translation>
 <translation id="3149510190863420837">แอป Chrome</translation>
 <translation id="3150927491400159470">โหลดซ้ำแบบดึงข้อมูลใหม่ทั้งหมด</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">เรียกใช้บนทุกเว็บไซต์เสมอ</translation>
 <translation id="3312424061798279731">ภาษาที่เปิดใช้</translation>
 <translation id="3312903956926554846">ติดตั้งลงในเดสก์ท็อป</translation>
-<translation id="3313473140726597081">หน้าเริ่มต้นใช้งานของคุณเปลี่ยนเป็น <ph name="URL" /> หากต้องการปิดใช้ส่วนขยายที่เปลี่ยนหน้าเริ่มต้นใช้งาน ให้คลิก "คืนค่า"</translation>
 <translation id="3313590242757056087">ในการตั้งค่าว่าผู้ใช้ภายใต้การดูแลสามารถดูเว็บไซต์ใดได้บ้าง คุณสามารถกำหนดค่าข้อจำกัด
     และการตั้งค่าโดยไปที่ <ph name="MANAGEMENT_URL" />
     หากคุณไม่ได้เปลี่ยนการตั้งค่าเริ่มต้น <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">ข้อมูลแอป</translation>
 <translation id="3335947283844343239">เปิดแท็บที่ปิดไปแล้วขึ้นใหม่</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> ถูกบล็อกเนื่องจากล้าสมัย</translation>
 <translation id="3340978935015468852">การตั้งค่า</translation>
 <translation id="3341703758641437857">อนุญาตให้เข้าถึงไฟล์ URL</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" ต้องการนำส่วนขยายนี้ออก</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">เพิ่มบุ๊กมาร์กแล้ว</translation>
 <translation id="3389312115541230716">คลิกขวาที่ไอคอน <ph name="SMALL_PRODUCT_LOGO" /> ในแถบงาน</translation>
 <translation id="3391716558283801616">แท็บ 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> ต้องการใช้กล้องและไมโครโฟนของคุณ</translation>
 <translation id="3396331542604645348">เครื่องพิมพ์ที่เลือกไว้ไม่สามารถใช้ได้หรือไม่ได้รับการติดตั้งอย่างถูกต้อง โปรดตรวจสอบเครื่องพิมพ์ของคุณหรือลองเลือกเครื่องพิมพ์อื่น</translation>
 <translation id="3399432415385675819">ระบบจะปิดใช้การแจ้งเตือน</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome จะอัปเดตโดยอัตโนมัติเพื่อให้คุณได้ใช้เวอร์ชันใหม่ที่สุดอยู่เสมอ</translation>
 <translation id="3551320343578183772">ปิดแท็บ</translation>
 <translation id="3552780134252864554">ล้างเมื่อออก</translation>
-<translation id="355298399003313926"><ph name="URL" /> ต้องการตอบสนองต่อเหตุการณ์การเข้าถึงพิเศษ</translation>
 <translation id="3555812735919707620">นำส่วนขยายออก</translation>
 <translation id="3556000484321257665">เครื่องมือค้นหาของคุณเปลี่ยนเป็น <ph name="URL" /></translation>
-<translation id="3561217442734750519">ค่าที่ป้อนสำหรับคีย์ส่วนตัวจะต้องเป็นเส้นทางที่ถูกต้อง</translation>
 <translation id="3563432852173030730">ไม่สามารถดาวน์โหลดแอปพลิเคชันคีออสก์</translation>
 <translation id="3564334271939054422">เครือข่าย Wi-Fi ที่คุณใช้ (<ph name="NETWORK_ID" />) อาจกำหนดให้คุณต้องไปที่หน้าการเข้าสู่ระบบของตน</translation>
 <translation id="3564708465992574908">ระดับการซูม</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">ข้อจำกัดของชื่อใบรับรอง</translation>
 <translation id="3596235046596950091">เปิดใช้บริการระบบคลาวด์</translation>
 <translation id="3599863153486145794">ล้างประวัติจากอุปกรณ์ที่ลงชื่อเข้าใช้ทั้งหมด บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
-<translation id="3600456501114769456">การเข้าถึงไฟล์ในตัวเครื่องอุปกรณ์ของคุณถูกปิดใช้งานโดยผู้ดูแลระบบ</translation>
 <translation id="3600792891314830896">ปิดเสียงไซต์ที่เล่นเสียง</translation>
 <translation id="3603177256297531067">แปลหน้านี้ไม่ได้</translation>
 <translation id="3603533104205588786">คุณสามารถคลิกดาวเพื่อบุ๊กมาร์กหน้า</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">ปิดใช้การจับภาพหน้าจอ</translation>
 <translation id="3625870480639975468">รีเซ็ตการซูม</translation>
 <translation id="3626281679859535460">ความสว่าง</translation>
-<translation id="3627052133907344175">ส่วนขยายต้องใช้ "<ph name="IMPORT_NAME" />" เวอร์ชัน "<ph name="IMPORT_VERSION" />" เป็นอย่างน้อย แต่ที่ติดตั้งอยู่เป็นเวอร์ชัน "<ph name="INSTALLED_VERSION" />"</translation>
 <translation id="3627320433825461852">เหลือเวลาน้อยกว่า 1 นาที</translation>
 <translation id="3627588569887975815">เปิดลิงก์ในหน้าต่าง&amp;ที่ไม่เก็บในประวัติ</translation>
 <translation id="3627671146180677314">เวลาการต่ออายุใบรับรองของ Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">การตั้งค่าภาษา</translation>
 <translation id="3668823961463113931">เครื่องจัดการ</translation>
 <translation id="3670229581627177274">เปิดบลูทูธ</translation>
-<translation id="3672159315667503033"><ph name="URL" /> ต้องการที่จะจัดเก็บข้อมูลขนาดใหญ่อย่างถาวรในเครื่องคอมพิวเตอร์ของคุณ</translation>
 <translation id="3672681487849735243">ตรวจพบข้อผิดพลาดจากโรงงาน</translation>
 <translation id="367645871420407123">เว้นว่างไว้หากคุณต้องการตั้งรหัสผ่านระดับรูทเป็นภาพทดสอบเริ่มต้น</translation>
 <translation id="3678156199662914018">ส่วนขยาย: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">คุณออฟไลน์อยู่</translation>
 <translation id="3788401245189148511">ส่วนขยายต้องการจะ:</translation>
 <translation id="3789841737615482174">ติดตั้ง</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> ทำงานบนเดสก์ท็อปเท่านั้น</translation>
 <translation id="379082410132524484">บัตรของคุณหมดอายุแล้ว</translation>
 <translation id="3792890930871100565">ยกเลิกการเชื่อมต่อเครื่องพิมพ์</translation>
 <translation id="379422718204375917">ใช้ Smart Lock เพื่อลงชื่อเข้าใช้บัญชี</translation>
-<translation id="3794595850995182458">ออกจากหน้า</translation>
 <translation id="3796648294839530037">เครือข่ายที่ชื่นชอบ:</translation>
 <translation id="3797900183766075808">&amp;ค้นหา “<ph name="SEARCH_TERMS" />” ด้วย <ph name="SEARCH_ENGINE" /></translation>
 <translation id="3798325802885154040">ให้คุณเปิด/ปิดใช้การแตะเพื่อคลิก</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">เปิดการใช้งาน <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">ประเภทการบันทึกที่ป้อนไม่ถูกต้อง</translation>
 <translation id="3983586614702900908">อุปกรณ์จากผู้ขายที่ไม่รู้จัก</translation>
-<translation id="3984413272403535372">พบข้อผิดพลาดขณะเซ็นชื่อบนส่วนขยาย</translation>
 <translation id="3987938432087324095">ขออภัย ฉันไม่ค่อยเข้าใจ</translation>
 <translation id="3988996860813292272">เลือกเขตเวลา</translation>
 <translation id="3989635538409502728">ออกจากระบบ</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">ติดตั้งแอปและเกมจาก Google Play ใน Chromebook &lt;a target="_blank" href="<ph name="URL" />"&gt;เรียนรู้เพิ่มเติม&lt;/a&gt;</translation>
 <translation id="4088095054444612037">ยอมรับสำหรับกลุ่ม</translation>
 <translation id="4090103403438682346">เปิดใช้การเข้าถึงที่ได้รับการยืนยัน</translation>
-<translation id="4090404313667273475">ต้องใช้ <ph name="PLUGIN_NAME" /> เพื่อแสดงเอลิเมนต์บางอย่างในหน้าเว็บนี้</translation>
 <translation id="4090535558450035482">(ส่วนขยายนี้มีการจัดการและไม่สามารถนำออกได้)</translation>
 <translation id="4091434297613116013">หน้ากระดาษ</translation>
 <translation id="4093955363990068916">ไฟล์ในเครื่อง:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> สามารถซิงค์รหัสผ่านของคุณได้แล้วในตอนนี้</translation>
 <translation id="4715553623069266137">สั้นมาก (0.8 วินาที)</translation>
 <translation id="4716483597559580346">Powerwash เพื่อเพิ่มความปลอดภัย</translation>
-<translation id="471800408830181311">ไม่สามารถส่งค่าคีย์ส่วนตัว</translation>
 <translation id="4720113199587244118">เพิ่มอุปกรณ์</translation>
 <translation id="4720185134442950733">เครือข่ายข้อมูลมือถือ</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> กำลังแชร์หน้าจอของคุณ</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">แรง</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> ต้องการสื่อสารกับส่วนขยาย "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">ยอมรับ</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> ต้องการใช้กล้องของคุณ</translation>
 <translation id="4920887663447894854">ไซต์ต่อไปนี้ถูกปิดกั้นไม่ให้ติดตามตำแหน่งของคุณบนหน้าเว็บนี้</translation>
 <translation id="492299503953721473">นำแอป Android ออก</translation>
 <translation id="4923279099980110923">ใช่ ฉันต้องการช่วย</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">ส่วนขยายนี้มีมัลแวร์</translation>
 <translation id="498294082491145744">เปลี่ยนการตั้งค่าที่ควบคุมสิทธิ์ของเว็บไซต์ในการเข้าถึงฟีเจอร์อย่างเช่นคุกกี้, JavaScript, ปลั๊กอิน, ตำแหน่งทางภูมิศาสตร์, ไมโครโฟน, กล้องถ่ายรูป ฯลฯ</translation>
 <translation id="4988526792673242964">หน้า</translation>
-<translation id="4988792151665380515">ไม่สามารถส่งออกคีย์สาธารณะ</translation>
 <translation id="49896407730300355">หมุน&amp;ทวนเข็มนาฬิกา</translation>
 <translation id="4989966318180235467">ตรวจสอบ&amp;หน้าพื้นหลัง</translation>
 <translation id="4990343175649730969">ดาวน์โหลดเครื่องมือทำความสะอาด Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">ไม่ต้องแสดงข้อความนี้อีก</translation>
 <translation id="5027550639139316293">ใบรับรองอีเมล</translation>
 <translation id="5027562294707732951">เพิ่มส่วนขยาย</translation>
-<translation id="5028012205542821824">ไม่ได้เปิดใช้งานการติดตั้ง</translation>
 <translation id="5029568752722684782">ล้างสำเนา</translation>
 <translation id="5030338702439866405">ออกโดย</translation>
 <translation id="5036662165765606524">ไม่อนุญาตให้ไซต์ใดๆ ทำการดาวน์โหลดไฟล์หลายๆ ไฟล์โดยอัตโนมัติ</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">มีข้อผิดพลาดเกิดขึ้น</translation>
 <translation id="5094721898978802975">สื่อสารกับแอปพลิเคชันการประสานงานที่มาพร้อมเครื่อง</translation>
 <translation id="5097002363526479830">ไม่สามารถเชื่อมต่อเครือข่าย "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">ไม่พบเส้นทางสัมบูรณ์ไปยังไดเรกทอรีนี้เพื่อทำการแพค</translation>
 <translation id="5099354524039520280">ขึ้น</translation>
 <translation id="5100114659116077956">คุณต้องอัปเดต Chromebox เพื่อรับฟีเจอร์ใหม่ล่าสุด</translation>
 <translation id="5101042277149003567">เปิดบุ๊กมาร์กทั้งหมด</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">แสดงในโฟลเดอร์</translation>
 <translation id="5171045022955879922">ค้นหาหรือพิมพ์ URL</translation>
 <translation id="5171343362375269016">หน่วยความจำสว็อป</translation>
-<translation id="5175870427301879686"><ph name="URL" /> ต้องการจัดเก็บข้อมูลถาวรในเครื่องคอมพิวเตอร์ของคุณ</translation>
 <translation id="5177479852722101802">บล็อกการเข้าถึงกล้องถ่ายรูปและไมโครโฟนต่อไป</translation>
 <translation id="5177526793333269655">มุมมองรูปภาพขนาดย่อ</translation>
 <translation id="5177549709747445269">คุณกำลังใช้ข้อมูลมือถือ</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">ฟอร์แมตอุปกรณ์นี้</translation>
 <translation id="5293170712604732402">คืนค่าการตั้งค่าเป็นค่าเริ่มต้นเดิม</translation>
 <translation id="5298219193514155779">ธีมที่สร้างโดย</translation>
-<translation id="5298363578196989456">ไม่สามารถนำเข้าส่วนขยาย "<ph name="IMPORT_NAME" />" ได้เนื่องจากไม่ใช่โมดูลที่แชร์</translation>
 <translation id="5299109548848736476">ไม่ติดตาม</translation>
 <translation id="5299682071747318445">ข้อมูลทั้งหมดจะถูกเข้ารหัสด้วยข้อความรหัสผ่านการซิงค์ของคุณ</translation>
 <translation id="5300589172476337783">แสดง</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" ต้องการจับคู่</translation>
 <translation id="5332624210073556029">โซนเวลา:</translation>
 <translation id="5334142896108694079">แคชของสคริปต์</translation>
-<translation id="533433379391851622">รุ่นที่คาดการณ์ "<ph name="EXPECTED_VERSION" />" แต่รุ่นที่แจ้งคือ "<ph name="NEW_ID" />"</translation>
 <translation id="5334844597069022743">ดูโค้ดต้นฉบับ</translation>
 <translation id="5335458522276292100">กำลังสำรอง <ph name="FILE_COUNT" />ไปยัง <ph name="BEGIN_LINK" />Google ไดรฟ์<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">ติดตั้งโดยบุคคลที่สาม</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">อนุญาตให้ไซต์เล่นเสียง</translation>
 <translation id="5390284375844109566">ฐานข้อมูลที่มีการจัดทำดัชนี</translation>
 <translation id="5390743329570580756">ส่งสำหรับ</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> บน <ph name="PEPPER_PLUGIN_DOMAIN" /> ต้องการเข้าถึงคอมพิวเตอร์ของคุณ</translation>
 <translation id="5397794290049113714">คุณ</translation>
 <translation id="5398572795982417028">การอ้างอิงหน้าอยู่นอกขอบเขต จำกัดไว้ที่ <ph name="MAXIMUM_PAGE" /> หน้า</translation>
 <translation id="5398772614898833570">บล็อกโฆษณา</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">คืนค่าแท็บทั้งหมด</translation>
 <translation id="5486261815000869482">ยืนยันรหัสผ่าน</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> กำลังแชร์หน้าจอของคุณกับ <ph name="TAB_NAME" /></translation>
-<translation id="5486326529110362464">ค่าที่ป้อนสำหรับคีย์ส่วนตัวต้องมีอยู่จริง</translation>
 <translation id="5486561344817861625">จำลองการรีสตาร์ทเบราว์เซอร์</translation>
 <translation id="5487521232677179737">ล้างข้อมูล</translation>
 <translation id="5488093641312826914">คัดลอก "<ph name="COPIED_ITEM_NAME" />" แล้ว</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">ระบบจะดาวน์โหลดอัปเดตโดยใช้อินเทอร์เน็ตมือถือ <ph name="UPDATE_SIZE_MB" /> MB คุณต้องการดำเนินการต่อไหม</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">เครื่องมือค้นหาอื่นๆ</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> บน <ph name="PEPPER_PLUGIN_DOMAIN" /> ต้องการเข้าถึงอุปกรณ์ของคุณ</translation>
 <translation id="5608580678041221894">แตะแป้นต่อไปนี้เพื่อปรับหรือเลื่อนพื้นที่ครอบตัด</translation>
 <translation id="5609231933459083978">ดูเหมือนแอปพลิเคชันไม่ถูกต้อง</translation>
 <translation id="5610038042047936818">เปลี่ยนเป็นโหมดกล้อง</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">แปลแล้ว</translation>
 <translation id="5991049340509704927">ขยาย</translation>
 <translation id="5993332328670040093">ระบบจะไม่วัดการใช้อินเทอร์เน็ตของคุณอีกต่อไป</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> อาจไม่สามารถอัปเดตตัวเองได้ตลอดเวลา</translation>
 <translation id="600424552813877586">แอปพลิเคชันไม่ถูกต้อง</translation>
 <translation id="6005695835120147974">เราเตอร์สื่อ</translation>
 <translation id="6006484371116297560">คลาสสิก</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">การสำรองข้อมูลในระบบคลาวด์</translation>
 <translation id="6040143037577758943">ปิด</translation>
 <translation id="6040852767465482106">ข้อมูลประจำตัวที่ไม่ระบุตัวตน</translation>
+<translation id="6041155700700864984">ออกจากโหมดเต็มหน้าจอ</translation>
 <translation id="604124094241169006">อัตโนมัติ</translation>
 <translation id="6042169520002885235">เลือกผู้ผลิตและรุ่นเครื่องพิมพ์</translation>
 <translation id="6042308850641462728">เพิ่มเติม</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">โหลดซ้ำตามปกติ</translation>
 <translation id="6059652578941944813">ลำดับชั้นใบรับรอง</translation>
 <translation id="6059925163896151826">อุปกรณ์ USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> ขัดข้อง</translation>
 <translation id="6064217302520318294">ล็อกหน้าจอ</translation>
 <translation id="6065289257230303064">แอตทริบิวต์ไดเรกทอรีหัวเรื่องของใบรับรอง</translation>
 <translation id="6068338049763724728">เปิดใช้การลงทะเบียนระยะไกล</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">ให้คุณปรับเปลี่ยนความละเอียดของหน้าจอ</translation>
 <translation id="6238923052227198598">เก็บโน้ตล่าสุดไว้ในหน้าจอล็อก</translation>
 <translation id="6239558157302047471">โหลดเ&amp;ฟรมซ้ำ</translation>
-<translation id="624022915548992686">ออกจากหน้า</translation>
 <translation id="6241530762627360640">เข้าถึงข้อมูลเกี่ยวกับอุปกรณ์บลูทูธที่จับคู่กับระบบของคุณ และสำรวจอุปกรณ์บลูทูธใกล้เคียง</translation>
 <translation id="6243774244933267674">เซิร์ฟเวอร์ไม่พร้อมใช้งาน</translation>
 <translation id="6246413617632217567">ไม่สามารถนำเข้าผู้ใช้ภายใต้การดูแล โปรดตรวจสอบพื้นที่ว่างในฮาร์ดไดรฟ์และสิทธิ์ แล้วลองอีกครั้ง</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">ข้อผิดพลาดเครือข่ายที่ไม่รู้จัก</translation>
 <translation id="6313641880021325787">ออกจาก VR</translation>
 <translation id="6314819609899340042">คุณได้เปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่องบนอุปกรณ์ <ph name="IDS_SHORT_PRODUCT_NAME" /> นี้เรียบร้อยแล้ว</translation>
-<translation id="6315343732431721770">มีการเปลี่ยนหน้าเริ่มต้นใช้งานของคุณให้มี <ph name="URL" /> หากต้องการปิดใช้ส่วนขยายที่เปลี่ยนหน้าเริ่มต้นใช้งาน ให้คลิก "คืนค่า"</translation>
 <translation id="6315493146179903667">นำขึ้นมาข้างหน้าทั้งหมด</translation>
 <translation id="6316806695097060329">อุปกรณ์ <ph name="SHORT_PRODUCT_NAME" /> นี้ออกแบบมาเพื่อมอบประสบการณ์เว็บที่ดีที่สุดให้กับคุณ</translation>
 <translation id="6317318380444133405">ไม่รองรับแล้ว</translation>
 <translation id="6317369057005134371">กำลังรอหน้าต่างแอปพลิเคชัน...</translation>
 <translation id="6318407754858604988">เริ่มดาวน์โหลดแล้ว</translation>
-<translation id="6322279351188361895">ไม่สามารถอ่านคีย์ส่วนตัว</translation>
 <translation id="6325191661371220117">ปิดใช้งานการเรียกใช้อัตโนมัติ</translation>
 <translation id="6326175484149238433">ลบจาก Chrome</translation>
 <translation id="6326855256003666642">จำนวนที่เชื่อมต่อแบบคงอยู่</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">เลือกสิ่งที่จะซิงค์</translation>
 <translation id="6333064448949140209">ระบบจะส่งไฟล์ไปยัง Google เพื่อแก้ไขข้อบกพร่อง</translation>
 <translation id="6333834492048057036">เน้นแถบที่อยู่เว็บสำหรับการค้นหา</translation>
-<translation id="6336907568130557310">คนที่ดูไฟล์ที่ส่งออกได้จะเห็นรหัสผ่านของคุณ อย่าแชร์ไฟล์กับผู้อื่นและลบไฟล์หลังจากที่นำเข้าแล้ว</translation>
 <translation id="6339668969738228384">สร้างโปรไฟล์ใหม่สำหรับ <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">เชื่อมต่อกับเซิร์ฟเวอร์ไม่ได้ โปรดตรวจสอบการเชื่อมต่อและลองอีกครั้ง หากยังพบปัญหาอยู่ ให้รีสตาร์ท Chromebook</translation>
 <translation id="6340071272923955280">โปรโตคอลการพิมพ์ผ่านอินเทอร์เน็ต (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">เว็บไซต์สามารถบันทึกและอ่านข้อมูลคุกกี้ได้</translation>
 <translation id="6388771388956873507">ค้นหาเซ็นเซอร์ลายนิ้วมือในอุปกรณ์แล้วใช้นิ้วแตะเซ็นเซอร์</translation>
 <translation id="6390799748543157332">หน้าที่คุณดูในหน้าต่างนี้จะไม่ปรากฏในประวัติเบราว์เซอร์และจะไม่ทิ้งร่องรอยอื่นๆ เช่น คุกกี้ ไว้ในคอมพิวเตอร์หลังจากที่คุณปิดหน้าต่างผู้เยี่ยมชมที่เปิดไว้ทั้งหมด อย่างไรก็ตาม ไฟล์ที่คุณดาวน์โหลดจะได้รับการเก็บรักษาไว้</translation>
-<translation id="6391538222494443604">ไดเรกทอรีที่ป้อนต้องมีอยู่จริง</translation>
 <translation id="6395423953133416962">ส่ง<ph name="BEGIN_LINK1" />ข้อมูลระบบ<ph name="END_LINK1" />และ<ph name="BEGIN_LINK2" />เมตริก<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">หยุดพูด</translation>
 <translation id="6397592254427394018">เปิดบุ๊กมาร์กทั้งหมดใน&amp;หน้าต่างที่ไม่ระบุตัวตน</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">จัดการการบล็อก JavaScript...</translation>
 <translation id="6459488832681039634">ใช้สิ่งที่เลือกเพื่อค้นหา</translation>
 <translation id="6460601847208524483">ค้นหาถัดไป</translation>
-<translation id="6462080265650314920">แอปพลิเคชันต้องได้รับบริการจากประเภทเนื้อหา "<ph name="CONTENT_TYPE" />"</translation>
 <translation id="6462082050341971451">คุณยังอยู่ที่นั่นหรือเปล่า</translation>
 <translation id="6463795194797719782">แ&amp;ก้ไข</translation>
 <translation id="6466988389784393586">&amp;เปิดบุ๊กมาร์กทั้งหมด</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">คุณต้องการให้ Google แปลหน้านี้จากภาษา<ph name="SOURCE_LANGUAGE" />เป็นภาษา<ph name="TARGET_LANGUAGE" />ไหม</translation>
 <translation id="6675665718701918026">เชื่อมต่ออุปกรณ์ชี้ตำแหน่งแล้ว</translation>
-<translation id="6677037229676347494">คาดการณ์ ID "<ph name="EXPECTED_ID" />" แต่ ID ที่แจ้งคือ "<ph name="NEW_ID" />"</translation>
 <translation id="6678717876183468697">URL ของคำค้นหา</translation>
 <translation id="6680028776254050810">สลับผู้ใช้</translation>
 <translation id="6680442031740878064">พร้อมใช้งาน: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">คุณกำหนดข้อมูลที่ Google จะรวบรวมได้ใน<ph name="BEGIN_LINK" />การตั้งค่า<ph name="END_LINK" />ได้ทุกเมื่อ</translation>
 <translation id="6904344821472985372">เพิกถอนการเข้าถึงไฟล์</translation>
 <translation id="6904655473976120856">กดปุ่มแอปเพื่อออก</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> ต้องการแชร์หน้าจอของคุณ</translation>
-<translation id="6909461304779452601">ไม่สามารถเพิ่มแอปพลิเคชัน ส่วนขยาย และสคริปต์ของผู้ใช้จากเว็บไซต์นี้</translation>
 <translation id="6910211073230771657">ลบแล้ว</translation>
 <translation id="691024665142758461">ดาวน์โหลดหลายไฟล์</translation>
 <translation id="6911324888870229398">การเชื่อมต่อเครือข่ายขาดหาย โปรดตรวจสอบการเชื่อมต่อหรือลองใช้เครือข่าย Wi-Fi อื่น</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">ข้อผิดพลาด: ไม่สามารถถอดรหัสส่วนขยาย</translation>
 <translation id="7473891865547856676">ไม่ ขอบคุณ</translation>
 <translation id="747459581954555080">คืนค่าทั้งหมด</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> พบข้อผิดพลาด</translation>
 <translation id="7475671414023905704">URL รหัสผ่านสูญหายของ Netscape</translation>
 <translation id="7476454130948140105">แบตเตอรี่เหลือน้อยเกินไปสำหรับอัปเดต (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">หากคุณลืมข้อความรหัสผ่านของคุณ ให้หยุดและรีเซ็ตการซิงค์ผ่าน <ph name="BEGIN_LINK" />หน้าแดชบอร์ดของ Google<ph name="END_LINK" /></translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">ใบรับรอง Status Responder</translation>
 <translation id="7508545000531937079">แสดงภาพสไลด์</translation>
 <translation id="7513029293694390567">ลงชื่อเข้าใช้เว็บไซต์โดยอัตโนมัติโดยใช้ข้อมูลรับรองที่เก็บไว้ หากปิดใช้ฟีเจอร์นี้ ระบบจะขอให้คุณยืนยันทุกครั้งก่อนลงชื่อเข้าใช้เว็บไซต์</translation>
-<translation id="7515670329462166359"><ph name="URL" /> ต้องการระบุอุปกรณ์ของคุณแบบไม่ซ้ำเพื่อเล่นเนื้อหาที่มีการป้องกัน</translation>
 <translation id="7517569744831774757">คืนค่าการตั้งค่าเป็นค่าเริ่มต้นเดิม</translation>
 <translation id="7517786267097410259">สร้างรหัสผ่าน -</translation>
 <translation id="7518150891539970662">บันทึก WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     ลองสร้างผู้ใช้ภายใต้การดูแลอีกครั้ง</translation>
 <translation id="756445078718366910">เปิดหน้าต่างเบราว์เซอร์</translation>
 <translation id="7564847347806291057">สิ้นสุดกระบวนการ</translation>
-<translation id="7565291891798266313">เครื่องมือค้นหาของคุณเปลี่ยนเป็น <ph name="URL" /> หากต้องการปิดใช้ส่วนขยายที่เปลี่ยนเครื่องมือค้นหา ให้คลิก "คืนค่า"</translation>
 <translation id="7566118625369982896">จัดการลิงก์ของแอป Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">ล้างข้อมูล Chrome แล้ว</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">ชาร์จแบตเตอรี่</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">เรียง</translation>
-<translation id="7577815336900970562">ใช้ Wi-Fi หรือเครือข่ายมือถือเพื่อระบุตำแหน่ง</translation>
 <translation id="7579149537961810247">ปิดเสียงเว็บไซต์</translation>
 <translation id="7580671184200851182">เล่นเสียงเหมือนกันผ่านลำโพงทุกตัว (เสียงโมโน)</translation>
 <translation id="7581462281756524039">เครื่องมือทำความสะอาด</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">พื้นที่จัดเก็บเซสชัน</translation>
 <translation id="7781335840981796660">บัญชีผู้ใช้ทั้งหมดและข้อมูลในเครื่องจะถูกลบ</translation>
 <translation id="7782102568078991263">ไม่มีคำแนะนำเพิ่มเติมจาก Google</translation>
+<translation id="778330624322499012">ไม่สามารถโหลด <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">การตั้งค่าความปลอดภัยในคอมพิวเตอร์ของคุณบล็อกไฟล์นี้</translation>
 <translation id="7786207843293321886">ออกจากเซสชันผู้มาเยือน</translation>
 <translation id="7786889348652477777">โ&amp;หลดแอปซ้ำ</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">บางไซต์อาจขโมยรหัสผ่านของคุณไป</translation>
 <translation id="8004582292198964060">เบราว์เซอร์</translation>
 <translation id="8008356846765065031">อินเทอร์เน็ตถูกตัด โปรดตรวจสอบการเชื่อมต่ออินเทอร์เน็ต</translation>
-<translation id="8008765610824028412">โหลด <ph name="PLUGIN_NAME" /> ไม่ได้</translation>
 <translation id="8008818777654712271">ส่งข้อมูลบางอย่างของระบบและเนื้อหาของหน้าเว็บไปยัง Google เพื่อช่วยตรวจหาแอปและเว็บไซต์ที่เป็นอันตรายโดยอัตโนมัติ</translation>
 <translation id="8012382203418782830">หน้านี้ได้รับการแปลแล้ว</translation>
 <translation id="8014154204619229810">โปรแกรมอัปเดตกำลังทำงาน โปรดรีเฟรชในอีก 1 นาทีเพื่อตรวจสอบอีกครั้ง</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">จัดการแอปพลิเคชัน ส่วนขยาย และธีมของคุณ</translation>
 <translation id="8191453843330043793">ตัวแก้ไขพร็อกซี V8</translation>
 <translation id="8195027750202970175">ขนาดบนดิสก์</translation>
-<translation id="8195739004487400241">หน้าแรกของคุณเปลี่ยนเป็น <ph name="URL" /> หากต้องการปิดใช้ส่วนขยายที่เปลี่ยนหน้าแรก ให้คลิก "คืนค่า"</translation>
 <translation id="8199300056570174101">เครือข่าย (บริการ) และคุณสมบัติอุปกรณ์</translation>
 <translation id="8200772114523450471">ทำต่อ</translation>
 <translation id="8202160505685531999">โปรดป้อนรหัสผ่านใหม่เพื่ออัปเดตโปรไฟล์ <ph name="DEVICE_TYPE" /> ของคุณ</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">ส่วนขยายนี้ไม่ได้ระบุไว้ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> และอาจถูกเพิ่มเข้ามาโดยที่คุณไม่รู้ตัว</translation>
 <translation id="8261387128019234107">เพิ่มบัญชีสำหรับ <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">ลบ</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> ไม่มีการใช้งานในเวอร์ชันนี้</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> ได้ปิดใช้งานเคอร์เซอร์เมาส์แล้ว</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" เรียกใช้หน้าจอแบบเต็ม</translation>
 <translation id="8270242299912238708">เอกสาร PDF</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">หรือเลือกเครือข่ายใหม่:</translation>
 <translation id="845627346958584683">เวลาหมดอายุ</translation>
 <translation id="8456681095658380701">ชื่อไม่ถูกต้อง</translation>
+<translation id="8457451314607652708">นำเข้าบุ๊กมาร์ก</translation>
 <translation id="8460336040822756677">หากคุณปิด Smart Lock for <ph name="DEVICE_TYPE" /> คุณจะไม่สามารถปลดล็อกอุปกรณ์ Chrome โดยใช้โทรศัพท์ได้ คุณจะต้องพิมพ์รหัสผ่าน</translation>
 <translation id="8461329675984532579">ชื่อผู้ให้บริการหน้าแรก</translation>
 <translation id="84613761564611563">ขอ UI การกำหนดค่าเครือข่ายแล้ว โปรดรอ...</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">ไม่พบซอฟต์แวร์ที่เป็นอันตราย</translation>
 <translation id="8512476990829870887">สิ้นสุดกระบวนการ</translation>
 <translation id="851263357009351303">อนุญาตให้ <ph name="HOST" /> แสดงภาพเสมอ</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" กำลังแก้ปัญหาของเบราว์เซอร์นี้</translation>
 <translation id="8521475323816527629">ไปที่แอปได้อย่างรวดเร็ว</translation>
 <translation id="8523493869875972733">เก็บการเปลี่ยนแปลงไว้</translation>
 <translation id="8523849605371521713">เพิ่มตามนโยบาย</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">กำหนดค่าการเชื่อมต่อเครือข่าย</translation>
 <translation id="8620790565535071193">สแกนไม่สำเร็จ</translation>
 <translation id="8622877356447980900">คุณต้องการแปลหน้านี้ไหม</translation>
-<translation id="8623004009673949077">ต้องติดตั้งแอปที่มีแอตทริบิวต์มานิเฟสต์ "kiosk_only" ในโหมดคีออสก์ของ Chrome OS</translation>
 <translation id="8624205858755890468">เปิดใช้ Assistant เพื่อแสดงข้อมูล แอป และการดำเนินการต่างๆ ที่เกี่ยวข้อง</translation>
 <translation id="862542460444371744">&amp;ส่วนขยาย</translation>
 <translation id="8627151598708688654">เลือกแหล่งที่มา</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">อัปเดตเฟิร์มแวร์เพื่อเพิ่มความปลอดภัย</translation>
 <translation id="8823514049557262177">คัดลอก&amp;ข้อความของลิงก์</translation>
 <translation id="8824701697284169214">เพิ่มหน้&amp;า...</translation>
-<translation id="8827850355924932817">ใช้เครือข่าย Wi-Fi เพื่อระบุตำแหน่ง</translation>
 <translation id="8828933418460119530">ชื่อ DNS</translation>
 <translation id="8830796635868321089">ไม่สามารถตรวจหาการอัปเดตโดยใช้การตั้งค่าพร็อกซีปัจจุบัน โปรดปรับ<ph name="PROXY_SETTINGS_LINK_START" />การตั้งค่าพร็อกซี<ph name="PROXY_SETTINGS_LINK_END" /></translation>
 <translation id="8834039744648160717">การกำหนดค่าเครือข่ายควบคุมโดย <ph name="USER_EMAIL" /></translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">แ&amp;สดงเป็นแถบ</translation>
 <translation id="8884961208881553398">เพิ่มบริการใหม่</translation>
 <translation id="8885197664446363138">Smart Lock ไม่พร้อมใช้งาน</translation>
-<translation id="8885905466771744233">คีย์ส่วนตัวของส่วนขยายที่ระบุมีอยู่แล้ว นำคีย์นั้นมาใช้ซ้ำหรือลบคีย์ออกก่อน</translation>
 <translation id="8888432776533519951">สี:</translation>
-<translation id="8892992092192084762">ติดตั้งธีม "<ph name="THEME_NAME" />" แล้ว</translation>
 <translation id="8893928184421379330">ขออภัย ระบบไม่รู้จักอุปกรณ์ <ph name="DEVICE_LABEL" /></translation>
 <translation id="8895454554629927345">รายชื่อบุ๊กมาร์ก</translation>
 <translation id="88986195241502842">เลื่อนหน้าลง</translation>
@@ -4991,13 +4926,12 @@
 <translation id="8899285681604219177">ปิดใช้ส่วนขยายที่ไม่สนับสนุนแล้ว</translation>
 <translation id="8899551033019439140">กำลังค้นหาเครื่องพิมพ์...</translation>
 <translation id="8899851313684471736">เปิดลิงก์ใน&amp;หน้าต่างใหม่</translation>
-<translation id="8902667442496790482">เปิดการตั้งค่าการเลือกเพื่อพูด</translation>
+<translation id="8902667442496790482">เปิดการตั้งค่าการเลือกเพื่อให้อ่าน</translation>
 <translation id="8903921497873541725">ขยาย</translation>
 <translation id="8904976895050290827">การทำข้อมูลให้ตรงกันของ Chrome</translation>
 <translation id="8908902564709148335">คำเตือน: คุณได้เปิดใช้ธงทำเครื่องหมาย --scripts-require-action ในคอมพิวเตอร์เครื่องนี้ ซึ่งจะจำกัดความสามารถของส่วนขยายนี้ อย่างไรก็ตาม อุปกรณ์อื่นๆ อาจไม่สนับสนุนธงทำเครื่องหมายนี้ หรือเปิดใช้งานธงทำเครื่องหมายดังกล่าว ส่วนขยายนี้ยังสามารถดำเนินการต่อไปนี้ในอุปกรณ์เหล่านี้ด้วย:</translation>
 <translation id="8910146161325739742">แชร์หน้าจอของคุณ</translation>
 <translation id="8910222113987937043">การเปลี่ยนแปลงในบุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะไม่ซิงค์กับบัญชี Google อีกต่อไป แต่ข้อมูลที่มีอยู่จะยังจัดเก็บไว้ในบัญชี Google และสามารถจัดการได้ใน<ph name="BEGIN_LINK" />แดชบอร์ด Google<ph name="END_LINK" /></translation>
-<translation id="8911079125461595075">Google ได้ตั้งค่าสถานะ "<ph name="EXTENSION_NAME" />" ว่าเป็นอันตราย และป้องกันไม่ให้มีการติดตั้งแล้ว</translation>
 <translation id="8912793549644936705">ยืด</translation>
 <translation id="8915370057835397490">กำลังโหลดคำแนะนำ</translation>
 <translation id="8916476537757519021">เฟรมย่อยแบบไม่ระบุตัวตน: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">บลูทูธ</translation>
 <translation id="9074836595010225693">เชื่อมต่อเมาส์ USB แล้ว</translation>
 <translation id="9076523132036239772">ขออภัย ไม่สามารถยืนยันอีเมลและรหัสผ่านของคุณ ให้ลองเชื่อมต่อเครือข่ายก่อน</translation>
-<translation id="907841381057066561">ไม่สามารถสร้างซิปไฟล์ชั่วคราวระหว่างการแพ็คเกจ</translation>
 <translation id="9084064520949870008">เปิดเป็นหน้าต่าง</translation>
 <translation id="9088234649737575428">นโยบายองค์กรบล็อก <ph name="PLUGIN_NAME" /> ไว้</translation>
 <translation id="9088917181875854783">โปรดยืนยันว่ารหัสผ่านนี้แสดงบน "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">ป้อนข้อความรหัสผ่าน</translation>
 <translation id="939736085109172342">โฟลเดอร์ใหม่</translation>
-<translation id="941543339607623937">คีย์ส่วนตัวไม่ถูกต้อง</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> กำลังแชร์แท็บและเสียงใน Chrome</translation>
 <translation id="942954117721265519">ไม่มีภาพในไดเรกทอรีนี้</translation>
 <translation id="945522503751344254">ส่งความคิดเห็น</translation>
-<translation id="951981865514037445"><ph name="URL" /> ต้องการใช้ตำแหน่งอุปกรณ์ของคุณ</translation>
 <translation id="952992212772159698">ไม่ได้เปิดการใช้งาน</translation>
 <translation id="9580706199804957">ไม่สามารถเชื่อมต่อกับบริการของ Google</translation>
 <translation id="958515377357646513">แตะเพื่อไปข้างหน้า</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index d8ba0c44..f034281 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Yalnızca Şifrele</translation>
 <translation id="1039337018183941703">Geçersiz veya bozuk dosya</translation>
 <translation id="1042174272890264476">Bilgisayarınızda aynı zamanda yerleşik <ph name="SHORT_PRODUCT_NAME" /> RLZ kitaplığı da bulunur. RLZ, aramaları ve belirli bir promosyon kampanyasının sağladığı <ph name="SHORT_PRODUCT_NAME" /> kullanımını ölçmek için benzersiz olmayan ve kimlik bilgileri içermeyen bir etiket atar. Bu etiketler bazen <ph name="PRODUCT_NAME" /> içindeki Google Arama sorgularında görünür.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> büyük miktarda veriyi cihazınızda kalıcı olarak depolamak istiyor.</translation>
 <translation id="1046059554679513793">Hata! Bu ad  zaten kullanılıyor!</translation>
 <translation id="1047431265488717055">&amp;Bağlantı Metnini Kopyala</translation>
 <translation id="1047726139967079566">Bu Sayfaya Yer İşareti Koy...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Varsayılan Arama Motoru Geri Yüklensin mi?</translation>
 <translation id="1177863135347784049">Özel</translation>
 <translation id="1178581264944972037">Duraklat</translation>
-<translation id="1179803038870941185"><ph name="URL" />, MIDI cihazlarınız üzerinde tam denetim istiyor.</translation>
 <translation id="1181037720776840403">Kaldır</translation>
 <translation id="1183237619868651138"><ph name="EXTERNAL_CRX_FILE" /> yerel önbelleğe yüklenemiyor.</translation>
 <translation id="1185924365081634987">Ayrıca, bu ağ hatasını gidermek için <ph name="GUEST_SIGNIN_LINK_START" />misafir olarak göz atmayı<ph name="GUEST_SIGNIN_LINK_END" /> da deneyebilirsiniz.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Bilgisayarınızda depolanan bir dosyaya erişim}other{Bilgisayarınızda depolanan # dosyaya erişim}}</translation>
 <translation id="1195076408729068893">Smart Lock'u başlatmak için şifrenizi girin. Böylece, bir dahaki sefere telefonunuzu kullanarak <ph name="DEVICE_TYPE" /> cihazınızın kilidini açabilirsiniz.</translation>
 <translation id="1195447618553298278">Bilinmeyen hata.</translation>
-<translation id="1196338895211115272">Özel anahtar dışa alınamadı.</translation>
 <translation id="119738088725604856">Ekran görüntüsü penceresi</translation>
 <translation id="1197979282329025000"><ph name="PRINTER_NAME" /> yazıcısının yazıcı özellikleri alınırken bir hata oluştu. Bu yazıcı <ph name="CLOUD_PRINT_NAME" /> ile kaydettirilemedi.</translation>
 <translation id="1198271701881992799">Haydi başlayalım</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Yöneticiniz bu ayar için belirli bir değer öneriyor.</translation>
 <translation id="1225177025209879837">İstek işleniyor...</translation>
 <translation id="1225211345201532184">Raf öğesi 5</translation>
-<translation id="1225404570112441414">Bu siteyi istediğiniz zaman kullanmak üzere rafınıza ekleyin.</translation>
 <translation id="1227507814927581609">"<ph name="DEVICE_NAME" />" cihazına bağlanırken kimlik doğrulaması başarısız oldu.</translation>
 <translation id="1230807973377071856">sistem menüsü</translation>
 <translation id="1232569758102978740">Adsız</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Yer İşaretleri HTML Dosyası</translation>
 <translation id="1303671224831497365">Bluetooth cihazı bulunamadı</translation>
 <translation id="1306606229401759371">Ayarları değiştir</translation>
-<translation id="1307398858972670978"><ph name="SAVED_PASSWORDS_LINK" /> adresine giderek şifrelerinize istediğiniz cihazdan erişin</translation>
 <translation id="1307559529304613120">Hata! Sistem bu cihaza ait uzun vadeli API erişim verisini kaydedemedi.</translation>
 <translation id="1313405956111467313">Otomatik proxy yapılandırması</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Ara</translation>
 <translation id="1386387014181100145">Merhaba.</translation>
 <translation id="138784436342154190">Varsayılan başlangıç sayfası geri yüklensin mi?</translation>
-<translation id="1389297115360905376">Bu yalnızca <ph name="CHROME_WEB_STORE" /> kullanılarak eklenebilir.</translation>
 <translation id="1390548061267426325">Normal Sekme Olarak Aç</translation>
-<translation id="1391807639023934267">Daha hızlı yüklenen sayfa görüntüleniyor</translation>
 <translation id="1393283411312835250">Güneş ve bulutlar</translation>
 <translation id="1395262318152388157">Arama kaydırma çubuğu</translation>
 <translation id="1395730723686586365">Güncelleyici başladı</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825"><ph name="PRODUCT_NAME" /> ürününün kararsız bir sürümüne güncelleme yapıyorsunuz. Bu sürüm geliştirilmekte olan özellikler içerir. Kilitlenmeler ve beklenmeyen hatalar olacaktır. Lütfen dikkatle ilerleyin.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (uzantı kimliği: "<ph name="EXTENSION_ID" />") bu tür bir oturum için izinli değil.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Hata! Rastgele RSA özel anahtarı oluşturulamadı.</translation>
 <translation id="1420834118113404499">Medya lisansları</translation>
 <translation id="1420920093772172268">Eşlemeye izin vermek için <ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">Evet</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Ses Adresini K&amp;opyala</translation>
 <translation id="1465827627707997754">Pizza dilimi</translation>
 <translation id="1467432559032391204">Sola</translation>
-<translation id="1467999917853307373"><ph name="URL" />, cihazınıza kalıcı olarak veri depolamak istiyor.</translation>
-<translation id="1470719357688513792">Yeni çerez ayarları sayfa yeniden yüklendikten sonra etkinleşecek.</translation>
 <translation id="1470811252759861213">Uzantılarınızı tüm bilgisayarlarınızda kullanmak için <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" yüklenmedi. Google Drive'ınızda yeterli boş alan yok.</translation>
 <translation id="1475502736924165259">Dosyanızda diğer kategorilerin hiçbirine uymayan sertifikalar var</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Büyük fare imleci</translation>
 <translation id="1543284117603151572">Edge'den Aktarıldı</translation>
 <translation id="1545177026077493356">Otomatik Kiosk Modu</translation>
+<translation id="1545775234664667895">"<ph name="THEME_NAME" />" teması yüklendi</translation>
 <translation id="1545786162090505744">Sorgu yerine %s olan URL</translation>
 <translation id="1546280085599573572">Bu uzantı, Ana Sayfa düğmesini tıkladığınızda gösterilecek sayfayı değiştirdi.</translation>
 <translation id="1547572086206517271">Yenileme gerekiyor</translation>
@@ -443,11 +434,9 @@
     denetlenen kullanıcının ziyaret ettiği web sitelerini <ph name="BEGIN_BOLD" />inceleyebilir<ph name="END_BOLD" />
     ve diğer ayarları <ph name="BEGIN_BOLD" />yönetebilirsiniz<ph name="END_BOLD" />.</translation>
 <translation id="1648943974594387137">Oturum açma ayrıntıları güncel değil</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> satır gösterilmiyor&gt;</translation>
 <translation id="1650371550981945235">Giriş seçeneklerini göster</translation>
 <translation id="1650709179466243265">www. ve .com ekleyin ve adresi açın</translation>
 <translation id="1651008383952180276">Aynı parolayı iki kez girmelisiniz</translation>
-<translation id="1652972346408808053">Şifre kaydedildi. <ph name="SAVED_PASSWORDS_LINK" /> adresine giderek şifrelerinize istediğiniz cihazdan erişin</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{İstediğiniz yerden yazdırma işlemi yapabilmek için yazıcıyı Google Cloud Print'e ekleyin.}other{İstediğiniz yerden yazdırma işlemi yapabilmek için # yazıcıyı Google Cloud Print'e ekleyin.}}</translation>
 <translation id="1657406563541664238">Google'a otomatik olarak kullanım istatistikleri ve kilitlenme raporları göndererek <ph name="PRODUCT_NAME" /> ürününü iyileştirmemize yardımcı olun.</translation>
 <translation id="1658424621194652532">Bu sayfa mikrofonunuza erişiyor.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Çerezleri engellemeye devam et</translation>
 <translation id="204622017488417136">Cihazınız Chrome'un bundan önce yüklenmiş olan sürümüne geri dönecektir. Tüm kullanıcı hesapları ve yerel veriler silinecektir. Bu işlem geri alınamaz.</translation>
 <translation id="2048182445208425546">Ağ trafiğinize erişme</translation>
-<translation id="2049137146490122801">Makinenizde yerel dosyalara erişim, yöneticiniz tarafından devre dışı bırakılmış durumda.</translation>
 <translation id="204914487372604757">Kısayol oluştur </translation>
 <translation id="2050339315714019657">Dikey</translation>
 <translation id="2053312383184521053">Boşta Kalma Durumu Verileri</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Henüz yüklenmedi</translation>
 <translation id="2107494551712864447">Parmak izi ekleyin</translation>
-<translation id="2111843886872897694">Uygulamalar etkiledikleri ana makineden yayınlanmalıdır.</translation>
 <translation id="2112877397266219826">Beni ayarlamak için dokunmatik denetleyicinizi etkinleştirin</translation>
 <translation id="21133533946938348">Sekmeyi İğnele</translation>
 <translation id="2113479184312716848">&amp;Dosya Aç...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Ne Olduğunu Anlatın</translation>
 <translation id="2229161054156947610">1 saatten fazla bir süre kaldı</translation>
 <translation id="222931766245975952">Dosya kesilmiş</translation>
-<translation id="222949136907494149"><ph name="URL" />, bilgisayarınızın konumunu kullanmak istiyor.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">"<ph name="FOLDER_NAME" />" klasörü oluşturulamıyor. <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Bugünün doodle'ını görüntülemek için tıklayın</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Mikrofon erişimini her zaman engelle</translation>
 <translation id="2367972762794486313">Uygulamaları göster</translation>
 <translation id="2371076942591664043">İşlem tamamlandığın&amp;da aç</translation>
-<translation id="237336063998926520">Konumu belirlemek için IP adresinizi kullanın</translation>
 <translation id="2377319039870049694">Liste görünümüne geç</translation>
 <translation id="2377667304966270281">Donanım Hataları</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> dosya seçildi</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" />, <ph name="VOLUME_NAME" /> birimindeki dosyaları kopyalamak istiyor.</translation>
 <translation id="2462724976360937186">Sertifika Yetkilisi Anahtar Kimliği</translation>
 <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> eklendi</translation>
-<translation id="246335896104539386">Yer İşaretlerini İçe Aktar</translation>
 <translation id="2464089476039395325">HTTP Proxy'si</translation>
 <translation id="2468902267404883140">Telefonunuza bağlanılamıyor. Uyumlu bir Android telefon kullandığınızdan, ayrıca telefonunuzun açık ve yakında olduğundan emin olun. &lt;a&gt;Daha fazla bilgi&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Desteklenmeyen uzantılar devre dışı bırakıldı</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
 <translation id="2487067538648443797">Yeni yer işareti ekle</translation>
 <translation id="248861575772995840">Telefonunuz bulunamıyor. <ph name="DEVICE_TYPE" /> cihazınızın Bluetooth'unun açık olduğundan emin olun. &lt;a&gt;Daha fazla bilgi&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Bir eklenti (<ph name="PLUGIN_NAME" />) yanıt vermiyor.</translation>
 <translation id="2489428929217601177">son 1 gün</translation>
 <translation id="2489918096470125693">&amp;Klasör Ekle...</translation>
 <translation id="249113932447298600">Maalesef, <ph name="DEVICE_LABEL" /> cihazı şu anda desteklenmiyor.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Tebrikler! '<ph name="NAME" />' veri hizmetiniz etkinleştirildi ve kullanıma hazır.</translation>
 <translation id="2566124945717127842"><ph name="IDS_SHORT_PRODUCT_NAME" /> cihazınızı yeni alındığı günkü haline sıfırlamak için Powerwash'ı kullanın.</translation>
 <translation id="2568774940984945469">Bilgi Çubuğu Kapsayıcı</translation>
-<translation id="2570000010887652771">Veri tasarrufu.</translation>
 <translation id="257088987046510401">Temalar</translation>
 <translation id="2572032849266859634"><ph name="VOLUME_NAME" /> birimine salt okunur erişim izni verildi.</translation>
 <translation id="2573269395582837871">Bir resim ve ad seçin</translation>
 <translation id="2575247648642144396">Uzantı, mevcut sayfada işlem yapabildiğinde bu simge görünür. Simgeyi tıklayarak veya <ph name="EXTENSION_SHORTCUT" /> tuşuna basarak bu uzantıyı kullanın.</translation>
 <translation id="2575268751393592580">Telefonunuz bulunamıyor. <ph name="DEVICE_TYPE" /> cihazınızın kablosuz ağa veya mobil ağa bağlı olduğundan emin olun. &lt;a&gt;Daha fazla bilgi&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Bu adla bir CRX dosyası zaten var.</translation>
 <translation id="257779572837908839">Chromebox video konferansı olarak kurun</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Depolama birimi kaldırılamıyor<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Bir Sertifika Yetkilisi (CA) sertifikasını silerseniz, tarayıcınız bundan sonra söz konusu CA tarafından yayınlanan hiçbir sertifikaya güvenmez.</translation>
 <translation id="2653659639078652383">Gönder</translation>
 <translation id="265390580714150011">Alan Değeri</translation>
-<translation id="2654286334048437383">Yer İşaretlerini Dışa Aktar</translation>
 <translation id="2655386581175833247">Kullanıcı sertifikası:</translation>
 <translation id="2660779039299703961">Etkinlik</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Medya Galerisini Dizine Göre Ekle</translation>
 <translation id="2908789530129661844">Ekranı uzaklaştır</translation>
 <translation id="2910318910161511225">Bir ağa bağlanın ve tekrar deneyin</translation>
-<translation id="2912905526406334195"><ph name="HOST" />, mikrofonunuzu kullanmak istiyor.</translation>
 <translation id="2913331724188855103">Sitelerin, çerez verilerini kaydetmelerine ve okumalarına izin ver (önerilir)</translation>
 <translation id="2916073183900451334">Bir web sayfasında Sekme tuşuna basıldığında bağlantılar ve form alanları vurgulanır</translation>
 <translation id="2916745397441987255">Uzantılarda ara</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Dinleniyor...</translation>
 <translation id="3141917231319778873">Belirtilen istek şu cihazda desteklenmiyor: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">BİTTİ</translation>
-<translation id="3144135466825225871">crx dosyası değiştirilemedi. Dosyanın kullanımda olup olmadığını kontrol edin.</translation>
 <translation id="3144647712221361880">Bağlantıyı farklı aç</translation>
 <translation id="3149510190863420837">Chrome Uygulamaları</translation>
 <translation id="3150927491400159470">Tam Yeniden Yükle</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Tüm sitelerde her zaman çalıştır</translation>
 <translation id="3312424061798279731">Etkin diller</translation>
 <translation id="3312903956926554846">Masaüstüne yükleme</translation>
-<translation id="3313473140726597081">Başlangıç sayfanız <ph name="URL" /> olarak değiştirildi. Başlangıç sayfanızı değiştiren uzantıları devre dışı bırakmak için Geri Yükle'yi tıklayın.</translation>
 <translation id="3313590242757056087">Denetlenen kullanıcının hangi web sitelerini görebileceğini belirlemek için kısıtlamaları
     ve ayarları yapılandırmak üzere <ph name="MANAGEMENT_URL" /> adresini ziyaret edebilirsiniz.
     Varsayılan ayarları değiştirmezseniz, <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Uygulama bilgisi</translation>
 <translation id="3335947283844343239">Kapatılan Sekmeyi Tekrar Aç</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> eklentisi eski olduğu için engellendi.</translation>
 <translation id="3340978935015468852">ayarlar</translation>
 <translation id="3341703758641437857">Dosya URL'lerine erişime izin ver</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" bu uzantıyı kaldırmak istiyor.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Yer İşareti Eklendi</translation>
 <translation id="3389312115541230716">Görev çubuğunda <ph name="SMALL_PRODUCT_LOGO" /> simgesini sağ tıklayın</translation>
 <translation id="3391716558283801616">Sekme 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> kameranızı ve mikrofonunuzu kullanmak istiyor.</translation>
 <translation id="3396331542604645348">Seçilen yazıcı kullanılamıyor veya doğru yüklenmemiş. Yazıcınızı kontrol edin veya başka yazıcı seçmeyi deneyin.</translation>
 <translation id="3399432415385675819">Bildirimler devre dışı bırakılacak</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome otomatik olarak güncellenir, böylece her zaman en yeni sürüme sahip olursunuz.</translation>
 <translation id="3551320343578183772">Sekmeyi Kapat</translation>
 <translation id="3552780134252864554">Çıkışta Temizlenecek</translation>
-<translation id="355298399003313926"><ph name="URL" />, erişilebilirlikle ilgili etkinliklere yanıt vermek istiyor.</translation>
 <translation id="3555812735919707620">Uzantıyı kaldır</translation>
 <translation id="3556000484321257665">Arama motorunuz <ph name="URL" /> olarak değiştirildi.</translation>
-<translation id="3561217442734750519">Özel anahtara ilişkin giriş değeri geçerli bir yol olmalıdır.</translation>
 <translation id="3563432852173030730">Kiosk uygulaması indirilemedi.</translation>
 <translation id="3564334271939054422">Kullandığınız Kablosuz ağ (<ph name="NETWORK_ID" />) kendi giriş sayfasını ziyaret etmenizi gerektiriyor olabilir.</translation>
 <translation id="3564708465992574908">Yakınlaştırma Seviyeleri</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Sertifika Adı Kısıtlamaları</translation>
 <translation id="3596235046596950091">Bulut hizmetlerini etkinleştir</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="3600456501114769456">Cihazınızdaki yerel dosyalara erişim, yöneticiniz tarafından devre dışı bırakıldı.</translation>
 <translation id="3600792891314830896">Ses çalan sitelerin sesini kapat</translation>
 <translation id="3603177256297531067">Bu Sayfa Çevrilemedi</translation>
 <translation id="3603533104205588786">Sayfaya yer işareti koymak için yıldızı tıklayabilirsiniz</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Ekran görüntüleri devre dışı</translation>
 <translation id="3625870480639975468">Yakınlaştırma özelliğini sıfırla</translation>
 <translation id="3626281679859535460">Parlaklık</translation>
-<translation id="3627052133907344175">Uzantı en az "<ph name="IMPORT_NAME" />" "<ph name="IMPORT_VERSION" />" sürümünü gerektiriyor ancak sadece "<ph name="INSTALLED_VERSION" />" sürümü yüklü.</translation>
 <translation id="3627320433825461852">1 dakikadan az kaldı</translation>
 <translation id="3627588569887975815">&amp;Bağlantıyı gizli pencerede aç</translation>
 <translation id="3627671146180677314">Netscape Sertifikası Yenileme Zamanı</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Dil ayarları</translation>
 <translation id="3668823961463113931">İşleyiciler</translation>
 <translation id="3670229581627177274">Bluetooth'u aç</translation>
-<translation id="3672159315667503033"><ph name="URL" />, büyük miktarda veriyi yerel bilgisiayarınızda depolamak istiyor.</translation>
 <translation id="3672681487849735243">Bir fabrika hatası saptandı</translation>
 <translation id="367645871420407123">kök şifrenin varsayılan test görüntüsü değerine ayarlanmasını istiyorsanız boş bırakın</translation>
 <translation id="3678156199662914018">Uzantı: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Çevrimdışısınız</translation>
 <translation id="3788401245189148511">Şunları yapabilecek:</translation>
 <translation id="3789841737615482174">Yükle</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> yalnızca masaüstünde çalışır.</translation>
 <translation id="379082410132524484">Kartınızın süresi doldu</translation>
 <translation id="3792890930871100565">Yazıcıların bağlantısını kes</translation>
 <translation id="379422718204375917">Hesabınızda oturum açmak için Smart Lock'u kullanın</translation>
-<translation id="3794595850995182458">Sayfadan çık</translation>
 <translation id="3796648294839530037">Sık Kullanılan Ağlar:</translation>
 <translation id="3797900183766075808">"<ph name="SEARCH_TERMS" />" İçin <ph name="SEARCH_ENGINE" /> &amp;Üzerinde Arama Yap</translation>
 <translation id="3798325802885154040">Dokunarak tıklama işlevini etkinleştirmenize/devre dışı bırakmanıza olanak tanır</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326"><ph name="NETWORKDEVICE" /> ağ cihazını etkinleştir</translation>
 <translation id="3981760180856053153">Geçersiz kayıt türü girildi.</translation>
 <translation id="3983586614702900908">bilinmeyen bir tedarikçi firmanın cihazları</translation>
-<translation id="3984413272403535372">Uzantı imzalanırken hata oluştu.</translation>
 <translation id="3987938432087324095">Pardon, anlaşılmadı.</translation>
 <translation id="3988996860813292272">Saat dilimi seçin</translation>
 <translation id="3989635538409502728">Çıkış</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Chromebook'unuza Google Play'den uygulama ve oyunlar yükleyin. &lt;a target="_blank" href="<ph name="URL" />"&gt;Daha fazla bilgi&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Grup için kabul et</translation>
 <translation id="4090103403438682346">Doğrulanmış Erişimi Etkinleştir</translation>
-<translation id="4090404313667273475">Bu sayfada bazı öğeleri görüntülemek için <ph name="PLUGIN_NAME" /> eklentisi gerekir.</translation>
 <translation id="4090535558450035482">(Bu uzantı yönetiliyor ve kaldırılamaz.)</translation>
 <translation id="4091434297613116013">yaprak</translation>
 <translation id="4093955363990068916">Yerel dosya:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> şimdi şifrelerinizi senkronize edebilir.</translation>
 <translation id="4715553623069266137">çok kısa (0,8 sn.)</translation>
 <translation id="4716483597559580346">Daha fazla güvenlik için Powerwash işlemini uygulayın</translation>
-<translation id="471800408830181311">Özel anahtar oluşturulamadı.</translation>
 <translation id="4720113199587244118">Cihaz Ekle</translation>
 <translation id="4720185134442950733">Mobil veri ağı</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> ekranınızı paylaşıyor.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Güçlü</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" />, "<ph name="EXTENSION_NAME" />" uzantısıyla iletişim kurmak istiyor</translation>
 <translation id="4918086044614829423">Kabul et</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> kameranızı kullanmak istiyor.</translation>
 <translation id="4920887663447894854">Aşağıdaki sitelerin bu sayfadaki konumunuzu izlemesi engellendi:</translation>
 <translation id="492299503953721473">Android uygulamalarını kaldır</translation>
 <translation id="4923279099980110923">Evet, yardımcı olmak istiyorum</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Bu uzantı kötü amaçlı yazılım içeriyor.</translation>
 <translation id="498294082491145744">Web sitelerinin çerezler, JavaScript, eklentiler, coğrafi konum, mikrofon, kamera vb. özelliklere erişimini denetleyen ayarlarınızı değiştirme</translation>
 <translation id="4988526792673242964">Sayfalar</translation>
-<translation id="4988792151665380515">Genel anahtar dışa alınamadı.</translation>
 <translation id="49896407730300355">Saat yönünün &amp;tersine döndür</translation>
 <translation id="4989966318180235467">&amp;Arka plan sayfasını incele</translation>
 <translation id="4990343175649730969">Chrome Temizleme Aracı'nı indir</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Bu mesajı tekrar gösterme</translation>
 <translation id="5027550639139316293">E-posta Sertifikası</translation>
 <translation id="5027562294707732951">Uzantı ekle</translation>
-<translation id="5028012205542821824">Yükleme etkin değil.</translation>
 <translation id="5029568752722684782">Kopyayı temizle</translation>
 <translation id="5030338702439866405">Veren:</translation>
 <translation id="5036662165765606524">Hiçbir sitenin otomatik olarak birden fazla dosya indirmesine izin verme</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Bir hata oluştu.</translation>
 <translation id="5094721898978802975">İşbirliği yapan yerel uygulamalarla iletişim kurma</translation>
 <translation id="5097002363526479830">'<ph name="NAME" />' ağına bağlanamadı: <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Paket dizininin tam yolu bulunamadı.</translation>
 <translation id="5099354524039520280">yukarı</translation>
 <translation id="5100114659116077956">En yeni özellikleri edinmek için Chromebox'unuzun güncellenmesi gerekiyor.</translation>
 <translation id="5101042277149003567">Tüm yer işaretlerini aç</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Klasörde göster</translation>
 <translation id="5171045022955879922">Arayın veya URL'yi yazın</translation>
 <translation id="5171343362375269016">Değiştirilmiş Bellek</translation>
-<translation id="5175870427301879686"><ph name="URL" />, verileri yerel bilgisayarınızda kalıcı olarak saklamak istiyor.</translation>
 <translation id="5177479852722101802">Kamera ve mikrofon erişimini engellemeye devam et</translation>
 <translation id="5177526793333269655">Küçük resim görünümü</translation>
 <translation id="5177549709747445269">Mobil veri kullanıyorsunuz</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Bu cihazı biçimlendir</translation>
 <translation id="5293170712604732402">Ayarları orijinal varsayılan değerlerine geri yükleyin</translation>
 <translation id="5298219193514155779">Temayı oluşturan:</translation>
-<translation id="5298363578196989456">Paylaşılan bir modül olmadığından "<ph name="IMPORT_NAME" />" uzantısı içe aktarılamıyor.</translation>
 <translation id="5299109548848736476">Do Not Track</translation>
 <translation id="5299682071747318445">Tüm veriler senkronizasyon parolanızla şifrelendi</translation>
 <translation id="5300589172476337783">Göster</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" eşlenmek istiyor</translation>
 <translation id="5332624210073556029">Saat dilimi:</translation>
 <translation id="5334142896108694079">Komut Dosyası Önbelleği</translation>
-<translation id="533433379391851622">Beklenen sürüm "<ph name="EXPECTED_VERSION" />" idi, ancak "<ph name="NEW_ID" />" sürümü belirlendi.</translation>
 <translation id="5334844597069022743">Kaynağı görüntüle</translation>
 <translation id="5335458522276292100"><ph name="FILE_COUNT" /> <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" />'a yedekleniyor</translation>
 <translation id="5337771866151525739">Üçüncü tarafça yüklendi.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Sitelerin ses çalmasına izin ver</translation>
 <translation id="5390284375844109566">Dizine alınmış veritabanları</translation>
 <translation id="5390743329570580756">Gönder</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> alanındaki <ph name="PEPPER_PLUGIN_NAME" /> eklentisi bilgisayarınıza erişmek istiyor.</translation>
 <translation id="5397794290049113714">Siz</translation>
 <translation id="5398572795982417028">Sınırların dışında sayfa referansı. Sınır: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Reklamlar engellendi</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Tüm Sekmeleri Kurtar</translation>
 <translation id="5486261815000869482">Şifreyi onaylayın</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> ekranınızı <ph name="TAB_NAME" /> ile paylaşıyor.</translation>
-<translation id="5486326529110362464">Özel anahtara ilişkin giriş anahtarı olmalıdır.</translation>
 <translation id="5486561344817861625">Tarayıcı Yeniden Başlatmasını Simüle Et</translation>
 <translation id="5487521232677179737">Verileri temizle</translation>
 <translation id="5488093641312826914">"<ph name="COPIED_ITEM_NAME" />" kopyalandı</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Güncellemeyi indirmek için <ph name="UPDATE_SIZE_MB" /> MB mobil veri kullanılacak. Devam etmek istiyor musunuz?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">Diğer arama motorları</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> alanındaki <ph name="PEPPER_PLUGIN_NAME" /> eklentisi cihazınıza erişmek istiyor.</translation>
 <translation id="5608580678041221894">Kırpma alanını ayarlamak veya taşımak için aşağıdaki tuşlara dokunun</translation>
 <translation id="5609231933459083978">Uygulamanın geçersiz olduğu görülüyor.</translation>
 <translation id="5610038042047936818">Kamera moduna geç</translation>
@@ -2997,7 +2952,7 @@
 <translation id="5669691691057771421">Yeni PIN'i girin</translation>
 <translation id="5671641761787789573">Resimler engellendi</translation>
 <translation id="5677503058916217575">Sayfanın dili:</translation>
-<translation id="5677928146339483299">Engellenenler</translation>
+<translation id="5677928146339483299">Engellendi</translation>
 <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> birimine okuma ve yazma erişimi izni verildi.</translation>
 <translation id="5678955352098267522"><ph name="WEBSITE_1" /> sitesindeki verilerinizi okuma</translation>
 <translation id="5684661240348539843">Öğe Tanımlayıcı</translation>
@@ -3197,7 +3152,6 @@
 <translation id="5990386583461751448">Çevrildi</translation>
 <translation id="5991049340509704927">Büyüt</translation>
 <translation id="5993332328670040093">Veri kullanımınız artık ölçülmeyecek.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> kendisini güncel tutamayabilir.</translation>
 <translation id="600424552813877586">Geçersiz uygulama.</translation>
 <translation id="6005695835120147974">Medya Yönlendiricisi</translation>
 <translation id="6006484371116297560">Klasik</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Bulut yedekleme</translation>
 <translation id="6040143037577758943">Kapat</translation>
 <translation id="6040852767465482106">Anonim Kimlik</translation>
+<translation id="6041155700700864984">Tam Ekran modundan çık</translation>
 <translation id="604124094241169006">Otomatik</translation>
 <translation id="6042169520002885235">Yazıcı üreticisi ve modeli seçin</translation>
 <translation id="6042308850641462728">Daha fazla</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Normal Yeniden Yükle</translation>
 <translation id="6059652578941944813">Sertifika Hiyerarşisi</translation>
 <translation id="6059925163896151826">USB cihazları</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> eklentisi kilitlendi.</translation>
 <translation id="6064217302520318294">Ekran kilidi</translation>
 <translation id="6065289257230303064">Sertifika Konusu Dizin Öznitelikleri</translation>
 <translation id="6068338049763724728">Uzaktan kaydı etkinleştir</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Ekran çözünürlüğünü ayarlamanıza olanak tanır</translation>
 <translation id="6238923052227198598">En son notu kilit ekranında tut</translation>
 <translation id="6239558157302047471">Ç&amp;erçeveyi yeniden yükle</translation>
-<translation id="624022915548992686">Sayfadan Çık</translation>
 <translation id="6241530762627360640">Sisteminizle eşlenen Bluetooth cihazlarıyla ilgili bilgilere erişme ve yakındaki Bluetooth cihazlarını keşfetme.</translation>
 <translation id="6243774244933267674">Sunucu kullanılamıyor</translation>
 <translation id="6246413617632217567">Denetlenen kullanıcı içe aktarılamadı. Lütfen sabit disk alanınızı ve izinlerinizi kontrol edip tekrar deneyin.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Bilinmeyen ağ hatası</translation>
 <translation id="6313641880021325787">VR'DAN ÇIK</translation>
 <translation id="6314819609899340042">Bu <ph name="IDS_SHORT_PRODUCT_NAME" /> cihazında hata ayıklama özelliklerini başarıyla etkinleştirdiniz.</translation>
-<translation id="6315343732431721770">Başlangıç sayfalarınız <ph name="URL" /> olarak değiştirildi. Başlangıç sayfanızı değiştiren uzantıları devre dışı bırakmak için Geri Yükle'yi tıklayın.</translation>
 <translation id="6315493146179903667">Tümünü Öne Getir</translation>
 <translation id="6316806695097060329">Bu <ph name="SHORT_PRODUCT_NAME" /> cihaz, size web'de en iyi deneyimi sunacak şekilde tasarlandı.</translation>
 <translation id="6317318380444133405">Artık desteklenmiyor.</translation>
 <translation id="6317369057005134371">Uygulama penceresi bekleniyor...</translation>
 <translation id="6318407754858604988">İndirme işlemi başladı</translation>
-<translation id="6322279351188361895">Özel anahtar okunamadı.</translation>
 <translation id="6325191661371220117">Otomatik başlatmayı devre dışı bırak</translation>
 <translation id="6326175484149238433">Chrome'dan kaldır</translation>
 <translation id="6326855256003666642">Canlı Tutma Sayısı</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Nelerin senkronize edileceğini seçin</translation>
 <translation id="6333064448949140209">Dosya, hata ayıklama amacıyla Google'a gönderilecektir</translation>
 <translation id="6333834492048057036">Aramak için adres çubuğuna odaklan</translation>
-<translation id="6336907568130557310">Şifreleriniz dışa aktarılan dosyayı görebilen herkes tarafından görülebilir. Dosyayı kimseyle paylaşmayın ve içe aktardıktan sonra silin.</translation>
 <translation id="6339668969738228384"><ph name="USER_EMAIL_ADDRESS" /> için yeni profil oluştur</translation>
 <translation id="6340017061976355871">Sunucuya bağlanamadı. Lütfen ağ bağlantınızı kontrol edip tekrar deneyin. Sorun devam ederse Chromebook'unuzu yeniden başlatın.</translation>
 <translation id="6340071272923955280">İnternet Yazdırma Protokolü (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Siteler çerez verilerini kaydedebilir ve okuyabilir</translation>
 <translation id="6388771388956873507">Cihazınızın parmak izi sensörünü bulun ve parmağınızla sensöre dokunun</translation>
 <translation id="6390799748543157332">Bu pencerede görüntülediğiniz sayfalar, göz atma geçmişinde görünmez ve açık olan tüm Misafir pencerelerini kapattığınızda bilgisayarda çerez gibi başka izler bırakmaz. Ancak indirdiğiniz dosyalar saklanır.</translation>
-<translation id="6391538222494443604">Giriş dizininin olması gerekir.</translation>
 <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />Sistem bilgileri<ph name="END_LINK1" /> ve <ph name="BEGIN_LINK2" />metrikleri<ph name="END_LINK2" /> gönder</translation>
 <translation id="6397363302884558537">Konuşmayı Durdur</translation>
 <translation id="6397592254427394018">&amp;Tüm yer işaretlerini gizli pencerede aç</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">JavaScript engellemeyi yönet...</translation>
 <translation id="6459488832681039634">Bul için Seçim'i Kullan</translation>
 <translation id="6460601847208524483">Sonrakini Bul</translation>
-<translation id="6462080265650314920">Uygulamalar "<ph name="CONTENT_TYPE" />" içerik türüyle yayınlanmalıdır.</translation>
 <translation id="6462082050341971451">Hâlâ orada mısınız?</translation>
 <translation id="6463795194797719782">&amp;Düzenle</translation>
 <translation id="6466988389784393586">Tüm Yer İşaretlerini &amp;Aç</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Google'ın bu sayfayı <ph name="SOURCE_LANGUAGE" /> dilinden <ph name="TARGET_LANGUAGE" /> diline çevirmesini istiyor musunuz?</translation>
 <translation id="6675665718701918026">İşaretleme cihazı bağlı</translation>
-<translation id="6677037229676347494">Beklenen Kimlik "<ph name="EXPECTED_ID" />" idi, ancak "<ph name="NEW_ID" />" kimliği belirlendi.</translation>
 <translation id="6678717876183468697">Sorgu URL'si</translation>
 <translation id="6680028776254050810">Kullanıcı Değiştir</translation>
 <translation id="6680442031740878064">Kullanılabilir alan: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Google'ın hangi bilgileri toplayacağını, istediğiniz zaman <ph name="BEGIN_LINK" />Ayarlar<ph name="END_LINK" />'dan özelleştirebilirsiniz.</translation>
 <translation id="6904344821472985372">Dosya erişimini iptal et</translation>
 <translation id="6904655473976120856">Çıkmak için Uygulama düğmesine basın</translation>
-<translation id="6904713658985136356"><ph name="HOST" />, ekranınızı paylaşmak istiyor.</translation>
-<translation id="6909461304779452601">Bu web sitesinden uygulamalar, uzantılar ve kullanıcı komut dosyaları eklenemez.</translation>
 <translation id="6910211073230771657">Silindi</translation>
 <translation id="691024665142758461">Birden çok dosya indirme</translation>
 <translation id="6911324888870229398">Ağ bağlantısı kesildi. Lütfen bağlantınızı kontrol edin veya başka bir kablosuz ağı deneyin.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Hata: Uzantının kodu çözülemiyor</translation>
 <translation id="7473891865547856676">Hayır, Teşekkürler</translation>
 <translation id="747459581954555080">Tümünü geri yükle</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> eklentisi bir hatayla karşılaştı.</translation>
 <translation id="7475671414023905704">Netscape Kayıp Şifre URL'si</translation>
 <translation id="7476454130948140105">Pil gücü güncelleme için yeterli değil (%<ph name="BATTERY_PERCENT" />)</translation>
 <translation id="7477347901712410606">Parolanızı unuttuysanız, Senkronizasyonu <ph name="BEGIN_LINK" />Google Hesap Özeti<ph name="END_LINK" /> üzerinden durdurun ve sıfırlayın.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Durum Yanıtlayıcı Sertifikası</translation>
 <translation id="7508545000531937079">Slayt gösterisi</translation>
 <translation id="7513029293694390567">Depolanmış kimlik bilgileriyle web sitelerinde otomatik olarak oturum açın. Bu özellik devre dışı bırakılırsa, bir web sitesinde oturum açmadan önce her defasında işlemi onaylamanız istenir.</translation>
-<translation id="7515670329462166359"><ph name="URL" />, korumalı içerik oynatmak için cihazınızı benzersiz şekilde tanımlamak istiyor.</translation>
 <translation id="7517569744831774757">Ayarları orijinal varsayılan değerlerine geri yükleyin.</translation>
 <translation id="7517786267097410259">Bir şifre oluşturun -</translation>
 <translation id="7518150891539970662">WebRTC günlükleri (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     denetlenen kullanıcı oluşturmayı yeniden deneyebilirsiniz.</translation>
 <translation id="756445078718366910">Tarayıcı Penceresini Aç</translation>
 <translation id="7564847347806291057">İşlemi bitir</translation>
-<translation id="7565291891798266313">Arama motorunuz <ph name="URL" /> olarak değiştirildi. Arama motorunuzu değiştiren uzantıları devre dışı bırakmak için Geri Yükle'yi tıklayın.</translation>
 <translation id="7566118625369982896">Play uygulama bağlantılarını yönet</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Chrome verileri temizlendi</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Pil Şarjı</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Harmanla</translation>
-<translation id="7577815336900970562">Konumu belirlemek için kablosuz veya hücresel ağ kullanma</translation>
 <translation id="7579149537961810247">Sitelerin Sesini Kapat</translation>
 <translation id="7580671184200851182">Tüm hoparlörlerden aynı sesi çal (mono ses)</translation>
 <translation id="7581462281756524039">Temizleme aracı</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Oturum depolama</translation>
 <translation id="7781335840981796660">Tüm kullanıcı hesapları ve yerel veriler kaldırılır.</translation>
 <translation id="7782102568078991263">Google'dan başka öneri yok</translation>
+<translation id="778330624322499012"><ph name="PLUGIN_NAME" /> adlı eklenti yüklenemedi</translation>
 <translation id="7784067724422331729">Bilgisayarınızdaki güvenlik ayarları bu dosyayı engelledi.</translation>
 <translation id="7786207843293321886">Misafir oturumundan çık</translation>
 <translation id="7786889348652477777">&amp;Uygulamayı Yeniden Yükle</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Bir site, şifrenizi çalmış olabilir</translation>
 <translation id="8004582292198964060">Tarayıcı</translation>
 <translation id="8008356846765065031">İnternet bağlantısı kesildi. Lütfen İnternet bağlantınızı kontrol edin.</translation>
-<translation id="8008765610824028412"><ph name="PLUGIN_NAME" /> eklentisi yüklenemedi.</translation>
 <translation id="8008818777654712271">Tehlikeli uygulamaların ve sitelerin tespit edilmesine yardımcı olmak için Google'a bazı sistem bilgilerini ve sayfa içeriklerini otomatik olarak gönder</translation>
 <translation id="8012382203418782830">Bu sayfa çevrildi.</translation>
 <translation id="8014154204619229810">Güncelleyici şu anda çalışıyor. Tekrar kontrol etmek için bir dakika içinde yenileyin.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Uygulamalarınızı, uzantılarınızı ve temalarınızı yönetme</translation>
 <translation id="8191453843330043793">V8 Proxy Çözümleyici</translation>
 <translation id="8195027750202970175">Diskteki boyut</translation>
-<translation id="8195739004487400241">Ana sayfanız <ph name="URL" /> olarak değiştirildi. Ana sayfanızı değiştiren uzantıları devre dışı bırakmak için Geri Yükle'yi tıklayın.</translation>
 <translation id="8199300056570174101">Ağ (Hizmet) ve Cihaz özellikleri</translation>
 <translation id="8200772114523450471">Sürdür</translation>
 <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> profilinizi güncellemek için lütfen şifrenizi tekrar girin.</translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080">Bu uzantı <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> altında listelenmiyor ve bilginiz dışında eklenmiş olabilir.</translation>
 <translation id="8261387128019234107"><ph name="PROFILE_NAME" /> için hesap ekle</translation>
 <translation id="8261506727792406068">Sil</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" />, bu yapıda uygulanmıyor.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" />, fare imlecinizi devre dışı bıraktı.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" tam ekranı tetikledi.</translation>
 <translation id="8270242299912238708">PDF dokümanları</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Veya yeni bir ağ seçin:</translation>
 <translation id="845627346958584683">Son Kullanma Tarihi</translation>
 <translation id="8456681095658380701">Geçersiz ad</translation>
+<translation id="8457451314607652708">Yer işaretlerini içe aktar</translation>
 <translation id="8460336040822756677"><ph name="DEVICE_TYPE" /> için Smart Lock'u kapatırsanız, telefonunuzu kullanarak Chrome cihazlarınızın kilidini açamazsınız. Şifrenizi yazmanız gerekecektir.</translation>
 <translation id="8461329675984532579">Ev sağlayıcısının adı</translation>
 <translation id="84613761564611563">Ağ yapılandırma kullanıcı arayüzü istendi, lütfen bekleyin...</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Zararlı yazılım bulunmadı</translation>
 <translation id="8512476990829870887">İşlemi Bitir</translation>
 <translation id="851263357009351303"><ph name="HOST" /> sitesindeki resimlerin gösterilmesine her zaman izin ver</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" bu tarayıcıda hata ayıklıyor.</translation>
 <translation id="8521475323816527629">Uygulamalarınıza hızlıca ulaşın</translation>
 <translation id="8523493869875972733">Değişiklikleri Koru</translation>
 <translation id="8523849605371521713">Politika tarafından eklendi</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Ağ bağlantılarını yapılandırma</translation>
 <translation id="8620790565535071193">Tarama işlemi başarısız oldu</translation>
 <translation id="8622877356447980900">Bu sayfanın çevrilmesini ister misiniz?</translation>
-<translation id="8623004009673949077">"kiosk_only" manifest özelliğine sahip uygulama ChromeOS kiosk modunda yüklenmelidir.</translation>
 <translation id="8624205858755890468">Asistan'ın ilgili bilgi, uygulama ve işlemleri göstermesini sağlar.</translation>
 <translation id="862542460444371744">&amp;Uzantılar</translation>
 <translation id="8627151598708688654">Kaynak seçin</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Daha fazla güvenlik için donanım yazılımını güncelle.</translation>
 <translation id="8823514049557262177">&amp;Bağlantı metnini kopyala</translation>
 <translation id="8824701697284169214">Say&amp;fa Ekle...</translation>
-<translation id="8827850355924932817">Konumu belirlemek için kablosuz ağ kullanma</translation>
 <translation id="8828933418460119530">DNS Adı</translation>
 <translation id="8830796635868321089">Mevcut proxy ayarları kullanılarak yapılan güncelleme kontrolü başarısız oldu. Lütfen <ph name="PROXY_SETTINGS_LINK_START" />proxy ayarlarınızı<ph name="PROXY_SETTINGS_LINK_END" /> düzenleyin.</translation>
 <translation id="8834039744648160717">Ağ yapılandırması, <ph name="USER_EMAIL" /> tarafından kontrol ediliyor.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Sekme Olarak Göster</translation>
 <translation id="8884961208881553398">Yeni hizmet ekle</translation>
 <translation id="8885197664446363138">Smart Lock kullanılamıyor</translation>
-<translation id="8885905466771744233">Belirtilen uzantıya ilişkin özel anahtar zaten var. Var olan anahtarı yeniden kullanın veya öncelikle bu anahtarı silin.</translation>
 <translation id="8888432776533519951">Renk:</translation>
-<translation id="8892992092192084762">"<ph name="THEME_NAME" />" teması yüklendi</translation>
 <translation id="8893928184421379330">Maalesef, <ph name="DEVICE_LABEL" /> cihazı tanınamadı.</translation>
 <translation id="8895454554629927345">Yer işareti listesi</translation>
 <translation id="88986195241502842">Bir sayfa aşağı gider</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Uyarı: Bu bilgisayarda uzantının işlevlerini sınırlayan --scripts-require-action bayrağını etkinleştirdiniz. Ancak, diğer cihazlar bu bayrağı desteklemeyebilir veya etkinleştirmiş olabilir. Söz konusu cihazlarda bu uzantı aynı zamanda aşağıdakileri de yapabilir:</translation>
 <translation id="8910146161325739742">Ekranınızı paylaşın</translation>
 <translation id="8910222113987937043">Yer işaretleri, geçmiş, şifreler ve diğer ayarlarınızla ilgili değişiklikler artık Google Hesabınızla senkronize edilmez. Ancak mevcut verileriniz Google Hesabınızda kalmaya devam eder ve <ph name="BEGIN_LINK" />Google Hesap Özeti<ph name="END_LINK" />'nde yönetilebilir.</translation>
-<translation id="8911079125461595075">Google <ph name="EXTENSION_NAME" /> uzantısını kötü amaçlı olarak işaretledi ve yükleme işlemi engellendi.</translation>
 <translation id="8912793549644936705">Uzat</translation>
 <translation id="8915370057835397490">Öneriler yükleniyor</translation>
 <translation id="8916476537757519021">Gizli Alt Çerçeve: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">USB fare bağlandı</translation>
 <translation id="9076523132036239772">Maalesef, e-postanız veya şifreniz doğrulanamadı. Önce bir ağa bağlanmayı deneyin.</translation>
-<translation id="907841381057066561">Paketleme sırasında geçici zip dosyası oluşturulamadı.</translation>
 <translation id="9084064520949870008">Pencere Olarak Aç</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> eklentisi kurumsal politika tarafından engellendi</translation>
 <translation id="9088917181875854783">Lütfen bu parolanın "<ph name="DEVICE_NAME" />" cihazında gösterildiğini onaylayın:</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Parolayı girin</translation>
 <translation id="939736085109172342">Yeni klasör</translation>
-<translation id="941543339607623937">Geçersiz özel anahtar.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" />, bir Chrome sekmesini ve sesi paylaşıyor.</translation>
 <translation id="942954117721265519">Bu dizinde resim yok.</translation>
 <translation id="945522503751344254">Geri bildirim gönder</translation>
-<translation id="951981865514037445"><ph name="URL" />, cihazınızın konumunu kullanmak istiyor.</translation>
 <translation id="952992212772159698">Etkin değil</translation>
 <translation id="9580706199804957">Google hizmetlerine bağlanamadı</translation>
 <translation id="958515377357646513">İlerlemek için dokunun.</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index a30073f..800b2902 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Тільки шифрувати</translation>
 <translation id="1039337018183941703">Недійсний або пошкоджений файл</translation>
 <translation id="1042174272890264476">Ваш комп’ютер також має вбудовану бібліотеку RLZ у <ph name="SHORT_PRODUCT_NAME" />. Параметр RLZ призначає неунікальний тег, який не містить особисті дані, проте дозволяє вимірювати пошуки й користування <ph name="SHORT_PRODUCT_NAME" /> у рамках певної рекламної кампанії. Ці мітки інколи з’являються в пошукових запитах Google у <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285">Сторінка <ph name="URL" /> хоче постійно зберігати великий обсяг даних на вашому пристрої.</translation>
 <translation id="1046059554679513793">На жаль, це ім’я вже використовується.</translation>
 <translation id="1047431265488717055">Копіювати те&amp;кст посилання</translation>
 <translation id="1047726139967079566">Додати цю сторінку до закладок...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Відновити пошукову систему за умовчанням?</translation>
 <translation id="1177863135347784049">Спеціальне</translation>
 <translation id="1178581264944972037">Пауза</translation>
-<translation id="1179803038870941185"><ph name="URL" /> хоче повністю контролювати ваші пристрої MIDI.</translation>
 <translation id="1181037720776840403">Видалити</translation>
 <translation id="1183237619868651138">Не вдається встановити <ph name="EXTERNAL_CRX_FILE" /> у локальному кеші.</translation>
 <translation id="1185924365081634987">Щоб виправити цю помилку мережі, можна також спробувати <ph name="GUEST_SIGNIN_LINK_START" />перегляд у гостьовому режимі<ph name="GUEST_SIGNIN_LINK_END" />.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Доступ до одного файлу на вашому комп’ютері}one{Доступ до # файлу на вашому комп’ютері}few{Доступ до # файлів на вашому комп’ютері}many{Доступ до # файлів на вашому комп’ютері}other{Доступ до # файлу на вашому комп’ютері}}</translation>
 <translation id="1195076408729068893">Щоб запустити Smart Lock, введіть пароль. Наступного разу ви зможете розблокувати пристрій <ph name="DEVICE_TYPE" /> за допомогою свого телефона.</translation>
 <translation id="1195447618553298278">Невідома помилка.</translation>
-<translation id="1196338895211115272">Не вдалося експортувати секретний ключ.</translation>
 <translation id="119738088725604856">Зробити знімок екрана з вікна</translation>
 <translation id="1197979282329025000">Під час отримання характеристик принтера для принтера <ph name="PRINTER_NAME" /> сталася помилка. Цей принтер неможливо зареєструвати в <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Розпочнімо</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Адміністратор рекомендує конкретне значення для цього налаштування.</translation>
 <translation id="1225177025209879837">Обробка запиту…</translation>
 <translation id="1225211345201532184">Елемент полиці 5</translation>
-<translation id="1225404570112441414">Додайте цей сайт на полицю, щоб він завжди був під рукою.</translation>
 <translation id="1227507814927581609">Помилка автентифікації під час під’єднання до "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">системне меню</translation>
 <translation id="1232569758102978740">Без імені</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML-файл із закладками</translation>
 <translation id="1303671224831497365">Пристрої Bluetooth не знайдено</translation>
 <translation id="1306606229401759371">Змінити налаштування</translation>
-<translation id="1307398858972670978">Переглядайте свої паролі з будь-якого пристрою на сторінці <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Помилка. Системі не вдалося зберегти маркер довгострокового доступу API для цього пристрою.</translation>
 <translation id="1313405956111467313">Автоматична конфігурація проксі-сервера</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Пошук</translation>
 <translation id="1386387014181100145">Вітаємо!</translation>
 <translation id="138784436342154190">Відновити стартову сторінку за умовчанням?</translation>
-<translation id="1389297115360905376">Можна додати лише з: <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Відкрити як звичайну вкладку</translation>
-<translation id="1391807639023934267">Сторінку завантажено швидше.</translation>
 <translation id="1393283411312835250">Сонце та хмари</translation>
 <translation id="1395262318152388157">Повзунок пошуку</translation>
 <translation id="1395730723686586365">Засіб оновлення запущено</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Ви змінюєте версію <ph name="PRODUCT_NAME" /> на нестабільну, яка містить функції, які ще на стадії розробки. Можуть виникати аварійні завершення роботи й помилки. Будьте обережні, виконуючи подальші дії.</translation>
 <translation id="1415990189994829608">Розширення <ph name="EXTENSION_NAME" /> (ідентифікатор "<ph name="EXTENSION_ID" />") не можна використовувати в сеансі цього типу.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Не вдалося згенерувати випадковий секретний ключ RSA.</translation>
 <translation id="1420834118113404499">Медіа-ліцензії</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />, щоб підключити</translation>
 <translation id="1426410128494586442">так</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">Копіювати адресу аудіо</translation>
 <translation id="1465827627707997754">Шматок піци</translation>
 <translation id="1467432559032391204">Ліворуч</translation>
-<translation id="1467999917853307373">Сторінка <ph name="URL" /> хоче постійно зберігати дані на вашому пристрої.</translation>
-<translation id="1470719357688513792">Нові налаштування файлів cookie почнуть діяти після перезавантаження сторінки.</translation>
 <translation id="1470811252759861213">Щоб користуватися розширеннями на всіх своїх комп’ютерах, <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">Файл "<ph name="FILENAME" />" не додано. Замало вільного місця на Google Диску.</translation>
 <translation id="1475502736924165259">У вас є сертифікати, які не відповідають іншим категоріям</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">Великий курсор миші</translation>
 <translation id="1543284117603151572">Імпортовано з Edge</translation>
 <translation id="1545177026077493356">Автоматичний режим термінала</translation>
+<translation id="1545775234664667895">Встановлено тему "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL-адреса з %s замість запита</translation>
 <translation id="1546280085599573572">Це розширення змінило сторінку, яка відкривається під час натискання кнопки "Домашня сторінка".</translation>
 <translation id="1547572086206517271">Оновіть сторінку</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />переглядати<ph name="END_BOLD" /> веб-сайти, які відвідував цей користувач;
     <ph name="BEGIN_BOLD" />керувати<ph name="END_BOLD" /> іншими налаштуваннями.</translation>
 <translation id="1648943974594387137">Дані для входу в обліковий запис застаріли</translation>
-<translation id="1649641629389702691">&lt;Не показано рядків: <ph name="LINE_COUNT" />&gt;</translation>
 <translation id="1650371550981945235">Показати опції введення</translation>
 <translation id="1650709179466243265">Додати www. та .com і відкрити адресу</translation>
 <translation id="1651008383952180276">Потрібно двічі ввести однакову парольну фразу</translation>
-<translation id="1652972346408808053">Пароль збережено. Переглядайте свої паролі з будь-якого пристрою на сторінці <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Додайте принтер у Google Cloud Print, щоб друкувати з будь-якого пристрою.}one{Додайте # принтер у Google Cloud Print, щоб друкувати з будь-якого пристрою.}few{Додайте # принтери в Google Cloud Print, щоб друкувати з будь-якого пристрою.}many{Додайте # принтерів у Google Cloud Print, щоб друкувати з будь-якого пристрою.}other{Додайте # принтера в Google Cloud Print, щоб друкувати з будь-якого пристрою.}}</translation>
 <translation id="1657406563541664238">Допоможіть покращити <ph name="PRODUCT_NAME" />, автоматично надсилаючи статистику використання та звіти про аварійне завершення роботи в Google</translation>
 <translation id="1658424621194652532">Ця сторінка має доступ до вашого мікрофона.</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">Продовжити блокування файлів cookie</translation>
 <translation id="204622017488417136">Ваш пристрій повернеться до попередньо встановленої версії Chrome. Усі облікові записи користувачів і локальні дані буде видалено. Цю дію не можна відмінити.</translation>
 <translation id="2048182445208425546">Отримувати доступ до трафіку мережі</translation>
-<translation id="2049137146490122801">Доступ до локальних файлів на вашому комп’ютері вимкнено адміністратором.</translation>
 <translation id="204914487372604757">Створити ярлик</translation>
 <translation id="2050339315714019657">Портретна</translation>
 <translation id="2053312383184521053">Дані про неактивний стан</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Ще не завантажено</translation>
 <translation id="2107494551712864447">Додати відбиток пальця</translation>
-<translation id="2111843886872897694">Програми мають обслуговуватися з хосту, на який вони впливають.</translation>
 <translation id="2112877397266219826">Увімкніть сенсорний контролер, щоб налаштувати Chromebox для відеоконференцій</translation>
 <translation id="21133533946938348">Закріпити вкладку</translation>
 <translation id="2113479184312716848">Відкрити &amp;файл...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">Розкажіть нам, що відбувається</translation>
 <translation id="2229161054156947610">Залишилося більше 1 год.</translation>
 <translation id="222931766245975952">Файл скорочено</translation>
-<translation id="222949136907494149"><ph name="URL" /> хоче використовувати місцезнаходження вашого комп’ютера.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Не вдається створити папку "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Натисніть, щоб переглянути сьогоднішній дудл</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">Завжди блокувати доступ до мікрофона</translation>
 <translation id="2367972762794486313">Показати програми</translation>
 <translation id="2371076942591664043">Відкрити коли &amp;виконано</translation>
-<translation id="237336063998926520">Використовуйте свою IP адресу, щоб визначити місцезнаходження</translation>
 <translation id="2377319039870049694">Список</translation>
 <translation id="2377667304966270281">Помилка жорсткого диска</translation>
 <translation id="2378075407703503998">Вибрано файлів: <ph name="SELCTED_FILE_COUNT" /></translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">Додатку <ph name="APP_NAME" /> потрібен дозвіл копіювати файли з тому <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">Ідентифікатор ключа центру сертифікації</translation>
 <translation id="2462752602710430187">Додано принтер <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Імпортувати закладки</translation>
 <translation id="2464089476039395325">Проксі-сервер HTTP</translation>
 <translation id="2468902267404883140">Не вдається під’єднатися до телефона. Переконайтеся, що ваш телефон Android сумісний, увімкнений і розташований поблизу. &lt;a&gt;Докладніше&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Непідтримувані розширення вимкнено</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">Видалити</translation>
 <translation id="2487067538648443797">Додати нову закладку</translation>
 <translation id="248861575772995840">Не вдається знайти телефон. Переконайтеся, що на пристрої <ph name="DEVICE_TYPE" /> увімкнено Bluetooth. &lt;a&gt;Докладніше&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Плагін <ph name="PLUGIN_NAME" /> не відповідає.</translation>
 <translation id="2489428929217601177">минулий день</translation>
 <translation id="2489918096470125693">Додати &amp;папку...</translation>
 <translation id="249113932447298600">На жаль, зараз пристрій <ph name="DEVICE_LABEL" /> не підтримується.</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">Вітаємо! Вашу службу передавання даних "<ph name="NAME" />" активовано. Нею можна користуватися.</translation>
 <translation id="2566124945717127842">Виконайте Powerwash, щоб відновити заводські налаштування пристрою <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
 <translation id="2568774940984945469">Контейнер інформаційної панелі</translation>
-<translation id="2570000010887652771">Заощадження трафіку.</translation>
 <translation id="257088987046510401">Теми</translation>
 <translation id="2572032849266859634">Надано доступ лише для перегляду (<ph name="VOLUME_NAME" />).</translation>
 <translation id="2573269395582837871">Виберіть зображення та ім’я</translation>
 <translation id="2575247648642144396">Цей значок відображатиметься, якщо розширення зможе працювати на поточній сторінці. Запустіть розширення, натиснувши значок або комбінацію клавіш <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Не вдається знайти телефон. Переконайтеся, що ваш пристрій <ph name="DEVICE_TYPE" /> під’єднано до Wi-Fi або мобільної мережі. &lt;a&gt;Докладніше&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Файл у форматі CRX із такою назвою вже існує.</translation>
 <translation id="257779572837908839">Налаштувати як Chromebox для відеоконференцій</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Не вдається демонтувати носій<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">Якщо видалити сертифікат Центру сертифікації (ЦС), ваш веб-переглядач більше не буде довіряти жодному сертифікату, виданому цим ЦС.</translation>
 <translation id="2653659639078652383">Надіслати</translation>
 <translation id="265390580714150011">Значення поля</translation>
-<translation id="2654286334048437383">Експортувати закладки</translation>
 <translation id="2655386581175833247">Сертифікат користувача:</translation>
 <translation id="2660779039299703961">Подія</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">Додати медіа-галерею за каталогами</translation>
 <translation id="2908789530129661844">Зменшити масштаб екрана</translation>
 <translation id="2910318910161511225">Під’єднайтеся до мережі й повторіть спробу</translation>
-<translation id="2912905526406334195">Сторінка <ph name="HOST" /> хоче скористатися вашим мікрофоном.</translation>
 <translation id="2913331724188855103">Дозволити сайтам зберігати та розпізнавати дані файлів cookie (рекомендується)</translation>
 <translation id="2916073183900451334">За допомогою клавіші Tab можна виділяти посилання та поля форми на веб-сторінці</translation>
 <translation id="2916745397441987255">Пошук у розширеннях</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">Перемістити вікно вгору</translation>
 <translation id="3053013834507634016">Використання ключа сертифіката</translation>
 <translation id="3057861065630527966">Створити резервні копії фотографій і відео</translation>
-<translation id="3060379269883947824">Увімкнути функцію читання з екрана</translation>
+<translation id="3060379269883947824">Увімкнути службу Читання з екрана</translation>
 <translation id="3061707000357573562">Служба виправлень</translation>
 <translation id="3064410671692449875">Недостатньо даних</translation>
 <translation id="3065041951436100775">Відповідь "Вкладка закрилась".</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">Говоріть…</translation>
 <translation id="3141917231319778873">Цей запит не підтримується на пристрої <ph name="DEVICE_NAME" />.</translation>
 <translation id="3144126448740580210">ГОТОВО</translation>
-<translation id="3144135466825225871">Не вдалося замінити файл у форматі crx. Перевірте, чи файл зараз не використовується.</translation>
 <translation id="3144647712221361880">Відкрити посилання як</translation>
 <translation id="3149510190863420837">Додатки Chrome</translation>
 <translation id="3150927491400159470">Жорстке перезавантаження</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">Завжди запускати на всіх сайтах</translation>
 <translation id="3312424061798279731">Активні мови</translation>
 <translation id="3312903956926554846">Установити на робочий стіл</translation>
-<translation id="3313473140726597081">Стартову сторінку змінено на <ph name="URL" />. Щоб вимкнути розширення, які змінюють стартову сторінку, натисніть "Відновити".</translation>
 <translation id="3313590242757056087">Щоб налаштувати веб-сайти, які може переглядати контрольований користувач, можна встановити обмеження
     та налаштування, перейшовши на сторінку <ph name="MANAGEMENT_URL" />.
     Якщо ви не зміните налаштування за умовчанням, користувач <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Про додаток</translation>
 <translation id="3335947283844343239">Знову відкрити закриту вкладку</translation>
-<translation id="3337069537196930048">Плагін <ph name="PLUGIN_NAME" /> заблоковано, оскільки він застарів.</translation>
 <translation id="3340978935015468852">налаштування</translation>
 <translation id="3341703758641437857">Надавати доступ до URL-адрес файлу</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" хоче видалити це розширення.</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">Закладку додано</translation>
 <translation id="3389312115541230716">Натисніть правою кнопкою миші значок <ph name="SMALL_PRODUCT_LOGO" /> на панелі завдань</translation>
 <translation id="3391716558283801616">Вкладка 7</translation>
-<translation id="3394150261239285340">Сторінка <ph name="HOST" /> хоче скористатися вашою камерою та мікрофоном.</translation>
 <translation id="3396331542604645348">Вибраний принтер недоступний або його неправильно встановлено. Перевірте принтер або спробуйте вибрати інший.</translation>
 <translation id="3399432415385675819">Сповіщення будуть вимкнені</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome оновлюється автоматично, тому ви завжди маєте найновішу версію</translation>
 <translation id="3551320343578183772">Закрити вкладку</translation>
 <translation id="3552780134252864554">Очищено під час виходу</translation>
-<translation id="355298399003313926">Сторінка <ph name="URL" /> хоче відповідати на події спеціальних можливостей.</translation>
 <translation id="3555812735919707620">Видалити розширення</translation>
 <translation id="3556000484321257665">Пошукову систему змінено на <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Потрібно ввести правильний шлях до секретного ключа.</translation>
 <translation id="3563432852173030730">Не вдалося завантажити додаток для терміналів.</translation>
 <translation id="3564334271939054422">Можливо, щоб під’єднатися до цієї мережі Wi-Fi (<ph name="NETWORK_ID" />), потрібно перейти на її сторінку входу.</translation>
 <translation id="3564708465992574908">Рівні масштабування</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">Обмеження імені сертифіката</translation>
 <translation id="3596235046596950091">Увімкнути хмарні сервіси</translation>
 <translation id="3599863153486145794">Очищує історію на всіх пристроях, на яких ви ввійшли в обліковий запис. У вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> можуть бути інші форми історії веб-перегляду.</translation>
-<translation id="3600456501114769456">Доступ до локальних файлів на вашому пристрої вимкнено адміністратором.</translation>
 <translation id="3600792891314830896">Вимкнути звук на сайтах, які відтворюють його</translation>
 <translation id="3603177256297531067">Цю сторінку неможливо перекласти</translation>
 <translation id="3603533104205588786">Щоб створити закладку сторінки, натисніть значок зірочки</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">Знімки екрана вимкнено</translation>
 <translation id="3625870480639975468">Скинути масштабування</translation>
 <translation id="3626281679859535460">Яскравість</translation>
-<translation id="3627052133907344175">Для розширення потрібний "<ph name="IMPORT_NAME" />" з мінімальною версією "<ph name="IMPORT_VERSION" />", але встановлено лише версію "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Залишилося менше 1 хв.</translation>
 <translation id="3627588569887975815">Відкрити посилання в аноні&amp;мному вікні</translation>
 <translation id="3627671146180677314">Час відновлення сертифіката Netscape</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">Налаштування мови</translation>
 <translation id="3668823961463113931">Обробники</translation>
 <translation id="3670229581627177274">Увімкніть Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> хоче постійно зберігати дані на вашому локальному комп’ютері.</translation>
 <translation id="3672681487849735243">Виявлено заводську помилку</translation>
 <translation id="367645871420407123">залиште поле порожнім, якщо потрібно налаштувати кореневий пароль для значення тестового зображення за умовчанням</translation>
 <translation id="3678156199662914018">Розширення: <ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">Ви в режимі офлайн</translation>
 <translation id="3788401245189148511">Зможе:</translation>
 <translation id="3789841737615482174">Встановити</translation>
-<translation id="3790146417033334899">Плагін <ph name="PLUGIN_NAME" /> працює лише на комп’ютері.</translation>
 <translation id="379082410132524484">Ваша картка недійсна</translation>
 <translation id="3792890930871100565">Від’єднати принтери</translation>
 <translation id="379422718204375917">Входьте у свій обліковий запис за допомогою Smart Lock</translation>
-<translation id="3794595850995182458">Закрити сторінку</translation>
 <translation id="3796648294839530037">Улюблені мережі:</translation>
 <translation id="3797900183766075808">&amp;Шукати "<ph name="SEARCH_TERMS" />" у <ph name="SEARCH_ENGINE" />.</translation>
 <translation id="3798325802885154040">Дає змогу ввімкнути або вимкнути функцію "торкнутися, щоб натиснути"</translation>
@@ -1981,7 +1949,6 @@
 <translation id="3979748722126423326">Увімкнути <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Введено недійсний тип збереження.</translation>
 <translation id="3983586614702900908">пристрої від невідомого постачальника</translation>
-<translation id="3984413272403535372">Помилка під час підписування розширення.</translation>
 <translation id="3987938432087324095">Незрозуміло.</translation>
 <translation id="3988996860813292272">Вибір часового поясу</translation>
 <translation id="3989635538409502728">Вийти</translation>
@@ -2037,7 +2004,6 @@
 <translation id="4087470595660267445">Установлюйте додатки й ігри з Google Play на Chromebook. &lt;a target="_blank" href="<ph name="URL" />"&gt;Докладніше&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Прийняти для групи</translation>
 <translation id="4090103403438682346">Увімкнути перевірений доступ</translation>
-<translation id="4090404313667273475">Для відтворення деяких елементів на цій сторінці потрібен плагін <ph name="PLUGIN_NAME" />.</translation>
 <translation id="4090535558450035482">(Це розширення є керованим і його неможливо видалити).</translation>
 <translation id="4091434297613116013">аркуші паперу</translation>
 <translation id="4093955363990068916">Локальний файл:</translation>
@@ -2371,7 +2337,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> тепер може синхронізувати ваші паролі.</translation>
 <translation id="4715553623069266137">дуже коротка затримка (0,8 с)</translation>
 <translation id="4716483597559580346">Powerwash для додаткового захисту</translation>
-<translation id="471800408830181311">Не вдалося вивести секретний ключ.</translation>
 <translation id="4720113199587244118">Додати пристрої</translation>
 <translation id="4720185134442950733">Мережа мобільного передавання даних</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> має доступ до вашого екрана.</translation>
@@ -2508,7 +2473,6 @@
 <translation id="4917385247580444890">Потужний</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> хоче обмінюватися даними з розширенням <ph name="EXTENSION_NAME" /></translation>
 <translation id="4918086044614829423">Прийняти</translation>
-<translation id="4919810557098212913">Сторінка <ph name="HOST" /> хоче скористатися вашою камерою.</translation>
 <translation id="4920887663447894854">На цій сторінці заборонено відстежувати ваше місцезнаходження таким сайтам:</translation>
 <translation id="492299503953721473">Видалити додатки Android</translation>
 <translation id="4923279099980110923">Так, я хочу допомогти</translation>
@@ -2549,7 +2513,6 @@
 <translation id="4980805016576257426">Це розширення містить зловмисне програмне забезпечення.</translation>
 <translation id="498294082491145744">Змінювати налаштування, які контролюють доступ веб-сайтів до файлів cookie, сценаріїв JavaScript, плагінів, даних геолокації, мікрофона, камери тощо.</translation>
 <translation id="4988526792673242964">Сторінки</translation>
-<translation id="4988792151665380515">Не вдалося експортувати відкритий ключ.</translation>
 <translation id="49896407730300355">Повернути п&amp;роти годинникової стрілки</translation>
 <translation id="4989966318180235467">Перевірити &amp;фонову сторінку</translation>
 <translation id="4990343175649730969">Завантажити Майстер очищення Chrome</translation>
@@ -2578,7 +2541,6 @@
 <translation id="5026874946691314267">Більше не показувати це</translation>
 <translation id="5027550639139316293">Сертифікат електронної пошти</translation>
 <translation id="5027562294707732951">Додати розширення</translation>
-<translation id="5028012205542821824">Встановлення не ввімкнено.</translation>
 <translation id="5029568752722684782">Видалити копію</translation>
 <translation id="5030338702439866405">Ким видано:</translation>
 <translation id="5036662165765606524">Заборонити всім сайтам автоматично завантажувати декілька файлів</translation>
@@ -2614,7 +2576,6 @@
 <translation id="509429900233858213">Сталася помилка.</translation>
 <translation id="5094721898978802975">Підтримувати зв’язок із взаємодійними рідними програмами</translation>
 <translation id="5097002363526479830">Не вдалося під’єднатися до мережі "<ph name="NAME" />": <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Неможливо знайти абсолютний шлях до каталогу для пакування.</translation>
 <translation id="5099354524039520280">угору</translation>
 <translation id="5100114659116077956">Оновіть Chromebox, щоб отримати найновіші функції.</translation>
 <translation id="5101042277149003567">Відкрити всі закладки</translation>
@@ -2663,7 +2624,6 @@
 <translation id="5170568018924773124">Показати в папці</translation>
 <translation id="5171045022955879922">Знайдіть або введіть URL-адресу</translation>
 <translation id="5171343362375269016">Замінена пам’ять</translation>
-<translation id="5175870427301879686"><ph name="URL" /> хоче постійно зберігати дані на вашому локальному комп’ютері.</translation>
 <translation id="5177479852722101802">Продовжити блокувати доступ до камери та мікрофона</translation>
 <translation id="5177526793333269655">Перегляд ескізів</translation>
 <translation id="5177549709747445269">Ви використовуєте мобільний Інтернет</translation>
@@ -2742,7 +2702,6 @@
 <translation id="529175790091471945">Форматувати цей пристрій</translation>
 <translation id="5293170712604732402">Відновити початкові налаштування за умовчанням</translation>
 <translation id="5298219193514155779">Автор теми:</translation>
-<translation id="5298363578196989456">Не вдається імпортувати розширення "<ph name="IMPORT_NAME" />", оскільки воно не є спільним модулем.</translation>
 <translation id="5299109548848736476">Не відстежувати</translation>
 <translation id="5299682071747318445">Усі дані шифруються за допомогою вашої парольної фрази для синхронізації</translation>
 <translation id="5300589172476337783">Показати</translation>
@@ -2770,7 +2729,6 @@
 <translation id="5331425616433531170"><ph name="CHROME_EXTENSION_NAME" /> хоче підключитися</translation>
 <translation id="5332624210073556029">Часовий пояс:</translation>
 <translation id="5334142896108694079">Кеш сценаріїв</translation>
-<translation id="533433379391851622">Очікувана версія – "<ph name="EXPECTED_VERSION" />". Використана версія – "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Переглянути джерело</translation>
 <translation id="5335458522276292100">Резервне копіювання на <ph name="BEGIN_LINK" />Google Диск<ph name="END_LINK" />: <ph name="FILE_COUNT" /></translation>
 <translation id="5337771866151525739">Встановлено третьою стороною.</translation>
@@ -2808,7 +2766,6 @@
 <translation id="5390100381392048184">Дозволити сайтам відтворювати звук</translation>
 <translation id="5390284375844109566">Проіндексована база даних</translation>
 <translation id="5390743329570580756">Надіслати</translation>
-<translation id="5396126354477659676">Плагін <ph name="PEPPER_PLUGIN_NAME" /> у домені <ph name="PEPPER_PLUGIN_DOMAIN" /> хоче отримати доступ до вашого комп’ютера.</translation>
 <translation id="5397794290049113714">Ви</translation>
 <translation id="5398572795982417028">Сторінка поза діапазоном, максимальна кількість сторінок: <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Оголошення заблоковано</translation>
@@ -2870,7 +2827,6 @@
 <translation id="5485754497697573575">Відновити всі вкладки</translation>
 <translation id="5486261815000869482">Підтвердьте пароль</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> показує ваш екран із вкладкою "<ph name="TAB_NAME" />".</translation>
-<translation id="5486326529110362464">Має бути дійсне значення секретного ключа.</translation>
 <translation id="5486561344817861625">Імітувати перезапуск веб-переглядача</translation>
 <translation id="5487521232677179737">Видалити дані</translation>
 <translation id="5488093641312826914">Елемент "<ph name="COPIED_ITEM_NAME" />" скопійовано</translation>
@@ -2953,7 +2909,6 @@
 <translation id="5600706100022181951">Щоб завантажити оновлення, буде використано <ph name="UPDATE_SIZE_MB" /> МБ мобільного Інтернету. Продовжити?</translation>
 <translation id="5601503069213153581">PIN-код</translation>
 <translation id="5605623530403479164">Інші пошукові системи</translation>
-<translation id="5606674617204776232">Плагін <ph name="PEPPER_PLUGIN_NAME" /> у домені <ph name="PEPPER_PLUGIN_DOMAIN" /> хоче отримати доступ до вашого пристрою.</translation>
 <translation id="5608580678041221894">Торкніться наведених нижче клавіш, щоб змінити чи перемістити область обрізування</translation>
 <translation id="5609231933459083978">Схоже, додаток недійсний.</translation>
 <translation id="5610038042047936818">Увімкнути режим камери</translation>
@@ -3196,7 +3151,6 @@
 <translation id="5990386583461751448">Перекладено</translation>
 <translation id="5991049340509704927">Збільшити</translation>
 <translation id="5993332328670040093">Використання трафіку більше не відстежуватиметься.</translation>
-<translation id="6003177993629630467">Можливо <ph name="PRODUCT_NAME" /> не зможе оновлюватись.</translation>
 <translation id="600424552813877586">Недійсна програма.</translation>
 <translation id="6005695835120147974">Маршрутизатор медіавмісту</translation>
 <translation id="6006484371116297560">Класична</translation>
@@ -3221,6 +3175,7 @@
 <translation id="604001903249547235">Резервне копіювання у хмару</translation>
 <translation id="6040143037577758943">Закрити</translation>
 <translation id="6040852767465482106">Анонімна ідентифікація</translation>
+<translation id="6041155700700864984">Вийти з повноекранного режиму</translation>
 <translation id="604124094241169006">Автоматично</translation>
 <translation id="6042169520002885235">Виберіть виробника та модель принтера</translation>
 <translation id="6042308850641462728">Більше</translation>
@@ -3237,7 +3192,6 @@
 <translation id="6056710589053485679">Звичайне перезавантаження</translation>
 <translation id="6059652578941944813">Ієрархія сертифіката</translation>
 <translation id="6059925163896151826">Пристрої USB</translation>
-<translation id="6060435378291459521">Плагін <ph name="PLUGIN_NAME" /> аварійно завершив роботу.</translation>
 <translation id="6064217302520318294">Блокування екрана</translation>
 <translation id="6065289257230303064">Атрибути каталогу суб'єкта сертифіката</translation>
 <translation id="6068338049763724728">Увімкнути віддалену реєстрацію</translation>
@@ -3346,7 +3300,6 @@
 <translation id="6237816943013845465">Дає змогу налаштувати роздільну здатність екрана</translation>
 <translation id="6238923052227198598">Показувати останню нотатку на заблокованому екрані</translation>
 <translation id="6239558157302047471">Перезавантажити фрейм</translation>
-<translation id="624022915548992686">Закрити сторінку</translation>
 <translation id="6241530762627360640">Переглядати інформацію про пристрої Bluetooth, підключені до вашої системи, і знаходити пристрої Bluetooth поблизу.</translation>
 <translation id="6243774244933267674">Сервер недоступний</translation>
 <translation id="6246413617632217567">Не вдалось імпортувати контрольованого користувача. Перевірте, чи у вас є дозволи й вільне місце на жорсткому диску, і повторіть спробу.</translation>
@@ -3395,13 +3348,11 @@
 <translation id="6312403991423642364">Невідома помилка мережі</translation>
 <translation id="6313641880021325787">Вийти з VR-режиму</translation>
 <translation id="6314819609899340042">Функції налагодження ввімкнено на цьому пристрої <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
-<translation id="6315343732431721770">Стартові сторінки змінено на <ph name="URL" />. Щоб вимкнути розширення, які змінюють стартову сторінку, натисніть "Відновити".</translation>
 <translation id="6315493146179903667">Перемістити все на передній план</translation>
 <translation id="6316806695097060329">Цей пристрій <ph name="SHORT_PRODUCT_NAME" /> ідеально підходить для роботи в Інтернеті.</translation>
 <translation id="6317318380444133405">Більше не підтримується.</translation>
 <translation id="6317369057005134371">Очікування вікна програми…</translation>
 <translation id="6318407754858604988">Завантаження розпочато</translation>
-<translation id="6322279351188361895">Не вдалося розпізнати секретний ключ.</translation>
 <translation id="6325191661371220117">Вимкнути автозапуск</translation>
 <translation id="6326175484149238433">Видалити з Chrome</translation>
 <translation id="6326855256003666642">Кількість процесів, які використовуються розширеннями</translation>
@@ -3410,7 +3361,6 @@
 <translation id="6333049849394141510">Вибрати дані для синхронізації</translation>
 <translation id="6333064448949140209">Файл буде надіслано в Google для налагодження</translation>
 <translation id="6333834492048057036">Вибрати адресний рядок для пошуку</translation>
-<translation id="6336907568130557310">Ваші паролі бачитимуть усі, хто може переглядати експортований файл. Не діліться ним і видаліть його після імпорту.</translation>
 <translation id="6339668969738228384">Створити новий профіль для облікового запису <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Не вдалося з’єднатись із сервером. Перевірте з’єднання з мережею та повторіть спробу. Якщо проблема не зникне, перезапустіть Chromebook.</translation>
 <translation id="6340071272923955280">Протокол друку через Інтернет (IPPS)</translation>
@@ -3439,7 +3389,6 @@
 <translation id="6385543213911723544">Сайти можуть зберігати та переглядати дані файлів cookie</translation>
 <translation id="6388771388956873507">Знайдіть на пристрої сканер відбитків пальців і торкніться його</translation>
 <translation id="6390799748543157332">Сторінки, які ви переглядаєте в цьому вікні, не відображатимуться в історії веб-переглядача, а після закривання всіх вікон, відкритих у гостьовому режимі, не залишать у комп’ютері інших слідів, наприклад файлів cookie. Однак завантажені файли зберігаються.</translation>
-<translation id="6391538222494443604">Має бути каталог введення.</translation>
 <translation id="6395423953133416962">Надсилати <ph name="BEGIN_LINK1" />інформацію про систему<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />показники<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop Speaking</translation>
 <translation id="6397592254427394018">Відкрити всі закладки в &amp;анонімному вікні</translation>
@@ -3497,7 +3446,6 @@
 <translation id="6458308652667395253">Керувати блокуванням JavaScript...</translation>
 <translation id="6459488832681039634">Використати виділення для пошуку</translation>
 <translation id="6460601847208524483">Знайти наступне</translation>
-<translation id="6462080265650314920">Програми мають обслуговуватися вмістом типу "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Ви ще тут?</translation>
 <translation id="6463795194797719782">&amp;Редагувати</translation>
 <translation id="6466988389784393586">&amp;Відкрити всі закладки</translation>
@@ -3627,7 +3575,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Перекласти цю сторінку (<ph name="SOURCE_LANGUAGE" />) такою мовою: <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Маніпулятор підключено</translation>
-<translation id="6677037229676347494">Очікуваний ідентифікатор – "<ph name="EXPECTED_ID" />". Використаний ідентифікатор – "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL-адреса пошукового запиту</translation>
 <translation id="6680028776254050810">Змінити користувача</translation>
 <translation id="6680442031740878064">Доступно: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3767,8 +3714,6 @@
 <translation id="6903534926908201625">У <ph name="BEGIN_LINK" />Налаштуваннях<ph name="END_LINK" /> можна будь-коли вибрати, яку інформацію збирає Google.</translation>
 <translation id="6904344821472985372">Скасувати доступ до файлу</translation>
 <translation id="6904655473976120856">Щоб вийти, натисніть кнопку додатка</translation>
-<translation id="6904713658985136356">Сторінка <ph name="HOST" /> хоче показувати ваш екран.</translation>
-<translation id="6909461304779452601">З цього веб-сайту неможливо додати програми, розширення та сценарії користувача.</translation>
 <translation id="6910211073230771657">Видалено</translation>
 <translation id="691024665142758461">завантажити кілька файлів</translation>
 <translation id="6911324888870229398">З’єднання з мережею втрачено. Перевірте з’єднання або під’єднайтеся до іншої мережі Wi-Fi.</translation>
@@ -4105,7 +4050,6 @@
 <translation id="747114903913869239">Помилка: не вдається розшифрувати розширення</translation>
 <translation id="7473891865547856676">Ні, дякую</translation>
 <translation id="747459581954555080">Відновити все</translation>
-<translation id="7475034671245341386">У плагіні <ph name="PLUGIN_NAME" /> сталася помилка.</translation>
 <translation id="7475671414023905704">URL-адреса втраченого пароля Netscape</translation>
 <translation id="7476454130948140105">Акумулятор недостатньо заряджений, щоб оновити дані (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Якщо ви забули свою парольну фразу, зупиніть і скиньте синхронізацію через <ph name="BEGIN_LINK" />інформаційну панель Google<ph name="END_LINK" />.</translation>
@@ -4142,7 +4086,6 @@
 <translation id="7507930499305566459">Сертифікат відповідача статусу</translation>
 <translation id="7508545000531937079">Слайд-шоу</translation>
 <translation id="7513029293694390567">Автоматично входити в облікові записи на веб-сайтах за допомогою збережених облікових даних. Якщо цю функцію вимкнено, потрібно підтверджувати облікові дані під час кожного входу на веб-сайтах.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> хоче отримати унікальний ідентифікатор вашого пристрою, щоб відтворювати захищений вміст.</translation>
 <translation id="7517569744831774757">Відновлення початкових налаштувань за умовчанням.</translation>
 <translation id="7517786267097410259">Створити пароль –</translation>
 <translation id="7518150891539970662">Журнали WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4172,7 +4115,6 @@
     спробувати знову створити контрольованого користувача.</translation>
 <translation id="756445078718366910">Відкрити вікно веб-переглядача</translation>
 <translation id="7564847347806291057">Завершити процес</translation>
-<translation id="7565291891798266313">Пошукову систему змінено на <ph name="URL" />. Щоб вимкнути розширення, які змінюють пошукову систему, натисніть "Відновити".</translation>
 <translation id="7566118625369982896">Керувати посиланнями на додатки в Google Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Дані Chrome видалено</translation>
@@ -4181,7 +4123,6 @@
 <translation id="7573172247376861652">Заряджання акумулятора</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Сортувати за копіями</translation>
-<translation id="7577815336900970562">Визначати місце за допомогою Wi-Fi або мобільної мережі</translation>
 <translation id="7579149537961810247">Вимкнути звук на сайтах</translation>
 <translation id="7580671184200851182">Відтворювати один аудіозапис на всіх динаміках (монофонічне аудіо)</translation>
 <translation id="7581462281756524039">Інструмент очищення</translation>
@@ -4288,6 +4229,7 @@
 <translation id="7773726648746946405">Пам’ять сеансу</translation>
 <translation id="7781335840981796660">Усі облікові записи користувачів і локальні дані буде видалено.</translation>
 <translation id="7782102568078991263">Більше немає пропозицій від Google</translation>
+<translation id="778330624322499012">Не вдалося завантажити плагін <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Цей файл заблоковано налаштуваннями безпеки на вашому комп’ютері.</translation>
 <translation id="7786207843293321886">Вийти з режиму гостя</translation>
 <translation id="7786889348652477777">&amp;Перезавантажити додаток</translation>
@@ -4450,7 +4392,6 @@
 <translation id="8001504501378762252">Можливо, хтось на сайті викрав ваш пароль</translation>
 <translation id="8004582292198964060">Переглядач</translation>
 <translation id="8008356846765065031">Утрачено з’єднання з Інтернетом. Перевірте з’єднання.</translation>
-<translation id="8008765610824028412">Не вдалося завантажити плагін <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Автоматично надсилати в Google деяку інформацію про систему та вміст сторінок, щоб допомогти виявляти небезпечні додатки й сайти.</translation>
 <translation id="8012382203418782830">Цю сторінку перекладено.</translation>
 <translation id="8014154204619229810">Триває оновлення. Оновіть сторінку за хвилину.</translation>
@@ -4567,7 +4508,6 @@
 <translation id="8191230140820435481">Керувати вашими програмами, розширеннями та темами</translation>
 <translation id="8191453843330043793">Засіб розпізнавання проксі-сервера V8</translation>
 <translation id="8195027750202970175">Розмір на диску</translation>
-<translation id="8195739004487400241">Домашню сторінку змінено на <ph name="URL" />. Щоб вимкнути розширення, які змінюють домашню сторінку, натисніть "Відновити".</translation>
 <translation id="8199300056570174101">Параметри мережі (служби) і пристрою</translation>
 <translation id="8200772114523450471">Поновити</translation>
 <translation id="8202160505685531999">Щоб оновити профіль <ph name="DEVICE_TYPE" />, введіть пароль ще раз.</translation>
@@ -4611,7 +4551,6 @@
 <translation id="8261378640211443080">Це розширення встановлено не із сайту <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />. Можливо, його було додано без вашого відома.</translation>
 <translation id="8261387128019234107">Додати обліковий запис у профіль <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Видалити</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> не підтримується в цій версії складання.</translation>
 <translation id="8263744495942430914">Сторінка <ph name="FULLSCREEN_ORIGIN" /> вимкнула курсор миші.</translation>
 <translation id="8264718194193514834">Розширення "<ph name="EXTENSION_NAME" />" запустило повноекранний режим.</translation>
 <translation id="8270242299912238708">Документи PDF</translation>
@@ -4712,6 +4651,7 @@
 <translation id="8454288007744638700">Або виберіть нову мережу:</translation>
 <translation id="845627346958584683">Закінчення терміну дії</translation>
 <translation id="8456681095658380701">Недійсне ім’я</translation>
+<translation id="8457451314607652708">Імпортувати закладки</translation>
 <translation id="8460336040822756677">Якщо вимкнути функцію Smart Lock для пристрою <ph name="DEVICE_TYPE" />, ви не зможете розблоковувати пристрої Chrome за допомогою телефона. Потрібно буде вводити пароль.</translation>
 <translation id="8461329675984532579">Назва локального постачальника</translation>
 <translation id="84613761564611563">Надсилається запит на отримання інтерфейсу конфігурації мережі. Зачекайте…</translation>
@@ -4743,7 +4683,6 @@
 <translation id="850875081535031620">Шкідливих програм не виявлено</translation>
 <translation id="8512476990829870887">Закінчити процес</translation>
 <translation id="851263357009351303">Завжди дозволяти хосту <ph name="HOST" /> показувати зображення</translation>
-<translation id="8513191386157529469"><ph name="CLIENT_NAME" /> налагоджує цей веб-переглядач.</translation>
 <translation id="8521475323816527629">Швидкий доступ до додатків</translation>
 <translation id="8523493869875972733">Залишити зміни</translation>
 <translation id="8523849605371521713">Додано політикою</translation>
@@ -4799,7 +4738,6 @@
 <translation id="8620765578342452535">Налаштувати з’єднання з мережею</translation>
 <translation id="8620790565535071193">Не вдалося просканувати</translation>
 <translation id="8622877356447980900">Перекласти цю сторінку?</translation>
-<translation id="8623004009673949077">У режимі термінала в ОС Chrome потрібно встановити програму з атрибутом маніфесту "kiosk_only".</translation>
 <translation id="8624205858755890468">Дозволяє Асистенту показувати вам пов’язані дані, додатки та дії.</translation>
 <translation id="862542460444371744">&amp;Розширення</translation>
 <translation id="8627151598708688654">Виберіть джерело</translation>
@@ -4948,7 +4886,6 @@
 <translation id="882204272221080310">Оновити мікропрограму для додаткового захисту</translation>
 <translation id="8823514049557262177">Копіювати те&amp;кст посилання</translation>
 <translation id="8824701697284169214">Додати стор&amp;інку...</translation>
-<translation id="8827850355924932817">Визначати місце за допомогою мережі Wi-Fi</translation>
 <translation id="8828933418460119530">DNS-ім'я</translation>
 <translation id="8830796635868321089">Помилка перевірки наявності оновлень за допомогою поточних налаштувань проксі-сервера. Змініть <ph name="PROXY_SETTINGS_LINK_START" />налаштування проксі-сервера<ph name="PROXY_SETTINGS_LINK_END" />.</translation>
 <translation id="8834039744648160717">Користувач <ph name="USER_EMAIL" /> керує налаштуваннями мережі.</translation>
@@ -4980,9 +4917,7 @@
 <translation id="8879284080359814990">&amp;Показати як вкладку</translation>
 <translation id="8884961208881553398">Додати нові сервіси</translation>
 <translation id="8885197664446363138">Функція Smart Lock недоступна</translation>
-<translation id="8885905466771744233">Секретний ключ для цього розширення вже існує. Використайте цей ключ знову або спочатку видаліть його.</translation>
 <translation id="8888432776533519951">Колір:</translation>
-<translation id="8892992092192084762">Установлено тему "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">На жаль, пристрій <ph name="DEVICE_LABEL" /> неможливо розпізнати.</translation>
 <translation id="8895454554629927345">Список закладок</translation>
 <translation id="88986195241502842">Сторінка вниз</translation>
@@ -4991,13 +4926,12 @@
 <translation id="8899285681604219177">Непідтримувані розширення вимкнено</translation>
 <translation id="8899551033019439140">Пошук принтера…</translation>
 <translation id="8899851313684471736">Відкрити посилання у новому &amp;вікні</translation>
-<translation id="8902667442496790482">Відкрити параметри функції читання з екрана</translation>
+<translation id="8902667442496790482">Відкрити налаштування служби Читання з екрана</translation>
 <translation id="8903921497873541725">Збільшити масштаб</translation>
 <translation id="8904976895050290827">Синхронізація Chrome</translation>
 <translation id="8908902564709148335">Застереження. Ви ввімкнули на цьому комп’ютері параметр "Потрібні дії зі сценаріями", який обмежує можливості цього розширення. На інших пристроях цей параметр може не підтримуватись або бути вимкненим. На таких пристроях це розширення також має перелічені нижче дозволи.</translation>
 <translation id="8910146161325739742">Як показувати екран</translation>
 <translation id="8910222113987937043">Зміни в закладках, історії, паролях та інших налаштуваннях більше не синхронізуватимуться з вашим обліковим записом Google. Дані, які зберігаються в обліковому записі Google, не буде видалено. Ними можна керувати на <ph name="BEGIN_LINK" />Інформаційній панелі Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Пошукова система Google позначила розширення <ph name="EXTENSION_NAME" /> як шкідливе. Встановлення заборонено.</translation>
 <translation id="8912793549644936705">Розтягнути</translation>
 <translation id="8915370057835397490">Завантаження пропозиції</translation>
 <translation id="8916476537757519021">Додатковий анонімний фрейм: <ph name="SUBFRAME_SITE" /></translation>
@@ -5103,7 +5037,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Під’єднано мишу USB</translation>
 <translation id="9076523132036239772">На жаль, не вдалося підтвердити вашу електронну адресу чи пароль. Спробуйте спершу під’єднатися до мережі.</translation>
-<translation id="907841381057066561">Під час пакування не вдалося створити тимчасовий zip файл.</translation>
 <translation id="9084064520949870008">Відкрити вікно</translation>
 <translation id="9088234649737575428">Плагін <ph name="PLUGIN_NAME" /> заблоковано політикою підприємства</translation>
 <translation id="9088917181875854783">Підтвердьте, що цей ключ відображається на пристрої "<ph name="DEVICE_NAME" />":</translation>
@@ -5194,11 +5127,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Ввести парольну фразу</translation>
 <translation id="939736085109172342">Нова папка</translation>
-<translation id="941543339607623937">Недійсний секретний ключ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> транслює вкладку Chrome і аудіо.</translation>
 <translation id="942954117721265519">У цьому каталозі немає зображень.</translation>
 <translation id="945522503751344254">Надіслати відгук</translation>
-<translation id="951981865514037445"><ph name="URL" /> хоче використовувати місцезнаходження вашого пристрою.</translation>
 <translation id="952992212772159698">Не активовано</translation>
 <translation id="9580706199804957">Не вдалося під’єднатися до служб Google</translation>
 <translation id="958515377357646513">Торкніться, щоб перейти далі.</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index a204a41..53bfefc3 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">Chỉ Mã hóa</translation>
 <translation id="1039337018183941703">Tệp lỗi hoặc không hợp lệ</translation>
 <translation id="1042174272890264476">Máy tính của bạn cũng đi kèm với thư viện RLZ của <ph name="SHORT_PRODUCT_NAME" /> được tích hợp sẵn. RLZ chỉ định thẻ không thể nhận dạng cá nhân, không duy nhất để đo lường các tìm kiếm và mức độ sử dụng <ph name="SHORT_PRODUCT_NAME" /> mà một chiến dịch quảng cáo cụ thể mang lại. Đôi khi các nhãn này xuất hiện trong truy vấn Google Tìm kiếm trong <ph name="PRODUCT_NAME" />.</translation>
-<translation id="1042574203789536285"><ph name="URL" /> muốn lưu trữ vĩnh viễn một lượng lớn dữ liệu trên thiết bị của bạn.</translation>
 <translation id="1046059554679513793">Rất tiếc, tên này đã được sử dụng!</translation>
 <translation id="1047431265488717055">Sao chép &amp;văn bản liên kết</translation>
 <translation id="1047726139967079566">Đánh dấu Trang Này...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">Bạn có muốn khôi phục công cụ tìm kiếm mặc định không?</translation>
 <translation id="1177863135347784049">Tùy chỉnh</translation>
 <translation id="1178581264944972037">Tạm dừng</translation>
-<translation id="1179803038870941185"><ph name="URL" /> muốn có quyền kiểm soát toàn bộ thiết bị MIDI của bạn.</translation>
 <translation id="1181037720776840403">Xóa</translation>
 <translation id="1183237619868651138">Không thể cài đặt <ph name="EXTERNAL_CRX_FILE" /> trong bộ nhớ cache cục bộ.</translation>
 <translation id="1185924365081634987">Bạn cũng có thể thử <ph name="GUEST_SIGNIN_LINK_START" />duyệt với tư cách khách<ph name="GUEST_SIGNIN_LINK_END" /> để khắc phục lỗi mạng này.</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{Truy cập một tệp được lưu trữ trên máy tính của bạn}other{Truy cập # tệp được lưu trữ trên máy tính của bạn}}</translation>
 <translation id="1195076408729068893">Để bắt đầu Smart Lock, hãy nhập mật khẩu của bạn. Lần tới, bạn có thể sử dụng điện thoại để mở khóa <ph name="DEVICE_TYPE" /> của mình.</translation>
 <translation id="1195447618553298278">Lỗi chưa biết.</translation>
-<translation id="1196338895211115272">Không thể xuất khóa cá nhân.</translation>
 <translation id="119738088725604856">Cửa sổ ảnh chụp màn hình</translation>
 <translation id="1197979282329025000">Đã xảy ra lỗi khi truy xuất các chức năng máy in cho máy in <ph name="PRINTER_NAME" />. Không thể đăng ký máy in này bằng <ph name="CLOUD_PRINT_NAME" />.</translation>
 <translation id="1198271701881992799">Hãy bắt đầu</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">Quản trị viên của bạn đề xuất một giá trị cụ thể cho cài đặt này.</translation>
 <translation id="1225177025209879837">Đang xử lý yêu cầu...</translation>
 <translation id="1225211345201532184">Mục giá 5</translation>
-<translation id="1225404570112441414">Thêm trang web này vào giá của bạn để sử dụng bất cứ lúc nào.</translation>
 <translation id="1227507814927581609">Xác thực không thành công trong khi kết nối với "<ph name="DEVICE_NAME" />".</translation>
 <translation id="1230807973377071856">menu hệ thống</translation>
 <translation id="1232569758102978740">Không tên</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">Tệp HTML chứa dấu trang</translation>
 <translation id="1303671224831497365">Không tìm thấy thiết bị Bluetooth nào</translation>
 <translation id="1306606229401759371">Thay đổi cài đặt</translation>
-<translation id="1307398858972670978">Truy cập mật khẩu của bạn từ thiết bị bất kỳ tại <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1307559529304613120">Rất tiếc! Hệ thống không lưu trữ được mã thông báo truy cập API dài hạn cho thiết bị này.</translation>
 <translation id="1313405956111467313">Cấu hình proxy tự động</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">Tìm kiếm</translation>
 <translation id="1386387014181100145">Xin chào!</translation>
 <translation id="138784436342154190">Khôi phục trang khởi động mặc định?</translation>
-<translation id="1389297115360905376">Chỉ có thể thêm ứng dụng/tiện ích này từ <ph name="CHROME_WEB_STORE" />.</translation>
 <translation id="1390548061267426325">Mở dưới dạng tab thông thường</translation>
-<translation id="1391807639023934267">Tải trang nhanh hơn.</translation>
 <translation id="1393283411312835250">Mặt trời và những đám mây</translation>
 <translation id="1395262318152388157">Thanh trượt tìm kiếm</translation>
 <translation id="1395730723686586365">Trình cập nhật đã bắt đầu</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">Bạn đang cập nhật lên phiên bản không chính thức <ph name="PRODUCT_NAME" /> chứa các tính năng hiện trong quá trình thử nghiệm. Các sự cố và lỗi không mong muốn sẽ xảy ra. Hãy thận trọng khi tiếp tục.</translation>
 <translation id="1415990189994829608"><ph name="EXTENSION_NAME" /> (ID tiện ích "<ph name="EXTENSION_ID" />") không được cho phép trong loại phiên này.</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">Rất tiếc! Không thể tạo khóa cá nhân RSA ngẫu nhiên.</translation>
 <translation id="1420834118113404499">Giấy phép truyền thông</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" /> để cho phép ghép nối</translation>
 <translation id="1426410128494586442">Có</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">S&amp;ao chép địa chỉ âm thanh</translation>
 <translation id="1465827627707997754">Lát pizza</translation>
 <translation id="1467432559032391204">Trái</translation>
-<translation id="1467999917853307373"><ph name="URL" /> muốn lưu trữ vĩnh viễn dữ liệu trên thiết bị của bạn.</translation>
-<translation id="1470719357688513792">Cài đặt cookie mới sẽ có hiệu lực sau khi tải lại trang.</translation>
 <translation id="1470811252759861213">Để nhận tiện ích trên tất cả các máy tính của bạn, hãy <ph name="SIGN_IN_LINK" />.</translation>
 <translation id="1474339897586437869">"<ph name="FILENAME" />" không được tải lên. Không có đủ dung lượng trống trong Google Drive của bạn.</translation>
 <translation id="1475502736924165259">Bạn có các chứng chỉ trên tệp không phù hợp với bất kỳ danh mục nào khác</translation>
@@ -368,6 +358,7 @@
 <translation id="15373452373711364">Con trỏ chuột lớn</translation>
 <translation id="1543284117603151572">Được nhập từ Edge</translation>
 <translation id="1545177026077493356">Chế độ kiosk tự động</translation>
+<translation id="1545775234664667895">Đã cài đặt chủ đề "<ph name="THEME_NAME" />"</translation>
 <translation id="1545786162090505744">URL có %s thay thế truy vấn</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="1547572086206517271">Yêu cầu làm mới</translation>
@@ -444,11 +435,9 @@
     <ph name="BEGIN_BOLD" />xem lại<ph name="END_BOLD" /> các trang web mà người dùng được giám sát đã truy cập và
     <ph name="BEGIN_BOLD" />quản lý<ph name="END_BOLD" /> các cài đặt khác.</translation>
 <translation id="1648943974594387137">Chi tiết đăng nhập đã lỗi thời</translation>
-<translation id="1649641629389702691">&lt;<ph name="LINE_COUNT" /> dòng không được hiển thị&gt;</translation>
 <translation id="1650371550981945235">Hiển thị tùy chọn nhập</translation>
 <translation id="1650709179466243265">Thêm www. và .com rồi mở địa chỉ</translation>
 <translation id="1651008383952180276">Bạn phải nhập cùng một cụm mật khẩu hai lần</translation>
-<translation id="1652972346408808053">Đã lưu mật khẩu. Truy cập mật khẩu của bạn từ thiết bị bất kỳ tại <ph name="SAVED_PASSWORDS_LINK" /></translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Thêm máy in vào Google Cloud Print để bạn có thể in từ bất cứ đâu.}other{Thêm # máy in vào Google Cloud Print để bạn có thể in từ bất cứ đâu.}}</translation>
 <translation id="1657406563541664238">Trợ giúp cải thiện <ph name="PRODUCT_NAME" /> bằng cách tự động gửi cho Google thống kê sử dụng và báo cáo sự cố</translation>
 <translation id="1658424621194652532">Trang này đang truy cập micrô của bạn.</translation>
@@ -675,7 +664,6 @@
 <translation id="2045969484888636535">Tiếp tục chặn cookie</translation>
 <translation id="204622017488417136">Thiết bị của bạn sẽ được quay lại phiên bản Chrome đã cài đặt trước đó. 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="2048182445208425546">Truy cập lưu lượng mạng của bạn</translation>
-<translation id="2049137146490122801">Quyền truy cập vào tệp cục bộ trên máy của bạn bị vô hiệu hóa bởi quản trị viên.</translation>
 <translation id="204914487372604757">Tạo lối tắt</translation>
 <translation id="2050339315714019657">Khổ dọc</translation>
 <translation id="2053312383184521053">Dữ liệu ở trạng thái không hoạt động</translation>
@@ -709,7 +697,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">Chưa được tải</translation>
 <translation id="2107494551712864447">Thêm vân tay</translation>
-<translation id="2111843886872897694">Ứng dụng phải được cung cấp từ máy chủ lưu trữ mà chúng ảnh hưởng.</translation>
 <translation id="2112877397266219826">Bật trình điều khiển cảm ứng của bạn để thiết lập</translation>
 <translation id="21133533946938348">Ghim Tab</translation>
 <translation id="2113479184312716848">Mở &amp;tệp...</translation>
@@ -796,7 +783,6 @@
 <translation id="2226720438730111184">Cho chúng tôi biết điều gì đang xảy ra</translation>
 <translation id="2229161054156947610">Còn hơn 1 giờ</translation>
 <translation id="222931766245975952">Tệp bị cắt bớt</translation>
-<translation id="222949136907494149"><ph name="URL" /> muốn sử dụng thông tin vị trí máy tính của bạn.</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">Không thể tạo thư mục "<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">Hãy nhấp để xem doodle ngày hôm nay</translation>
@@ -884,7 +870,6 @@
 <translation id="236141728043665931">Luôn chặn quyền truy cập micrô</translation>
 <translation id="2367972762794486313">Hiển thị ứng dụng</translation>
 <translation id="2371076942591664043">Mở khi &amp;hoàn tất</translation>
-<translation id="237336063998926520">Sử dụng địa chỉ IP của bạn để xác định vị trí</translation>
 <translation id="2377319039870049694">Chuyển sang chế độ xem danh sách</translation>
 <translation id="2377667304966270281">Lỗi phần cứng</translation>
 <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> tệp được chọn</translation>
@@ -931,7 +916,6 @@
 <translation id="2457246892030921239"><ph name="APP_NAME" /> muốn sao chép tệp từ <ph name="VOLUME_NAME" />.</translation>
 <translation id="2462724976360937186">ID khóa của tổ chức phát hành chứng chỉ</translation>
 <translation id="2462752602710430187">Đã thêm <ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">Nhập dấu trang</translation>
 <translation id="2464089476039395325">Proxy HTTP</translation>
 <translation id="2468902267404883140">Không thể kết nối với điện thoại của bạn. Hãy đảm bảo rằng bạn đang sử dụng một điện thoại Android tương thích đã được bật và ở trong tầm tay. &lt;a&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
 <translation id="2470702053775288986">Tiện ích không được hỗ trợ đã bị tắt</translation>
@@ -947,7 +931,6 @@
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
 <translation id="2487067538648443797">Thêm dấu trang mới</translation>
 <translation id="248861575772995840">Không thể tìm thấy điện thoại của bạn. Hãy đảm bảo Bluetooth của <ph name="DEVICE_TYPE" /> đang bật. &lt;a&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
-<translation id="2489316678672211764">Plugin (<ph name="PLUGIN_NAME" />) hiện không phản hồi.</translation>
 <translation id="2489428929217601177">ngày trước</translation>
 <translation id="2489918096470125693">Thêm &amp;thư mục...</translation>
 <translation id="249113932447298600">Rất tiếc, thiết bị <ph name="DEVICE_LABEL" /> không được hỗ trợ vào thời điểm này.</translation>
@@ -1001,13 +984,11 @@
 <translation id="2563856802393254086">Xin chúc mừng! Dịch vụ dữ liệu '<ph name="NAME" />' của bạn đã được kích hoạt và sẵn sàng sử dụng.</translation>
 <translation id="2566124945717127842">Powerwash để đặt lại thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> của bạn giống như mới.</translation>
 <translation id="2568774940984945469">Bộ chứa Thanh thông tin</translation>
-<translation id="2570000010887652771">Dữ liệu đã lưu.</translation>
 <translation id="257088987046510401">Chủ đề</translation>
 <translation id="2572032849266859634">Quyền truy cập chỉ đọc vào <ph name="VOLUME_NAME" /> đã được cấp.</translation>
 <translation id="2573269395582837871">Chọn ảnh và tên</translation>
 <translation id="2575247648642144396">Biểu tượng này sẽ hiển thị khi tiện ích có thể hoạt động trên trang hiện tại. Sử dụng tiện ích này bằng cách nhấp vào biểu tượng hoặc bằng cách nhấn <ph name="EXTENSION_SHORTCUT" />.</translation>
 <translation id="2575268751393592580">Không thể tìm thấy điện thoại của bạn. Hãy đảm bảo rằng <ph name="DEVICE_TYPE" /> đã được kết nối với Wi-Fi hoặc mạng di động. &lt;a&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
-<translation id="2576842806987913196">Hiện có tệp CRX hiển thị với tên này.</translation>
 <translation id="257779572837908839">Thiết lập làm Chromebox cho hội họp</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />Không thể ngắt kết nối tập<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1069,7 +1050,6 @@
 <translation id="2653266418988778031">Nếu bạn xóa chứng chỉ của Tổ chức phát hành chứng chỉ (CA), trình duyệt của bạn sẽ không còn tin vào bất kỳ chứng chỉ nào do CA cấp nữa.</translation>
 <translation id="2653659639078652383">Gửi</translation>
 <translation id="265390580714150011">Giá trị Trường</translation>
-<translation id="2654286334048437383">Xuất dấu trang</translation>
 <translation id="2655386581175833247">Chứng chỉ người dùng:</translation>
 <translation id="2660779039299703961">Sự kiện</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1263,7 +1243,6 @@
 <translation id="2908162660801918428">Thêm thư viện của phương tiện theo thư mục</translation>
 <translation id="2908789530129661844">Thu nhỏ màn hình</translation>
 <translation id="2910318910161511225">Hãy kết nối với mạng rồi thử lại</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> muốn sử dụng micrô của bạn.</translation>
 <translation id="2913331724188855103">Cho phép trang web lưu và đọc dữ liệu cookie (được đề xuất)</translation>
 <translation id="2916073183900451334">Bấm Tab trên liên kết đánh dấu của trang web, cũng như các trường biểu mẫu</translation>
 <translation id="2916745397441987255">Tìm kiếm trong tiện ích</translation>
@@ -1416,7 +1395,6 @@
 <translation id="3141318088920353606">Đang nghe...</translation>
 <translation id="3141917231319778873">Yêu cầu đưa ra không được hỗ trợ cho: "<ph name="DEVICE_NAME" />".</translation>
 <translation id="3144126448740580210">XONG</translation>
-<translation id="3144135466825225871">Không thể thay thế tệp crx. Kiểm tra để xem tệp có đang được sử dụng hay không.</translation>
 <translation id="3144647712221361880">Mở liên kết bằng tài khoản</translation>
 <translation id="3149510190863420837">Ứng dụng Chrome</translation>
 <translation id="3150927491400159470">Tải lại cứng</translation>
@@ -1526,7 +1504,6 @@
 <translation id="3309747692199697901">Luôn chạy trên tất cả các trang web</translation>
 <translation id="3312424061798279731">Ngôn ngữ đã bật</translation>
 <translation id="3312903956926554846">Cài đặt vào màn hình</translation>
-<translation id="3313473140726597081">Trang khởi động của bạn đã được thay đổi thành <ph name="URL" />. Để tắt tiện ích thay đổi trang khởi động của bạn, hãy nhấp vào Khôi phục.</translation>
 <translation id="3313590242757056087">Để đặt các trang web mà người dùng bị giám sát có thể xem, bạn có thể định cấu hình
     các giới hạn và cài đặt bằng cách truy cập <ph name="MANAGEMENT_URL" />.
     Nếu bạn không thay đổi cài đặt mặc định, <ph name="USER_DISPLAY_NAME" />
@@ -1542,7 +1519,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">Thông tin ứng dụng</translation>
 <translation id="3335947283844343239">Mở lại Tab đã Đóng</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> bị chặn vì đã lỗi thời.</translation>
 <translation id="3340978935015468852">cài đặt</translation>
 <translation id="3341703758641437857">Cho phép truy cập vào các URL của tệp</translation>
 <translation id="3342361181740736773">"<ph name="TRIGGERING_EXTENSION_NAME" />" muốn xóa tiện ích này.</translation>
@@ -1577,7 +1553,6 @@
 <translation id="3386219708421216619">Đã thêm dấu trang</translation>
 <translation id="3389312115541230716">Nhấp chuột phải vào biểu tượng <ph name="SMALL_PRODUCT_LOGO" /> trên thanh tác vụ</translation>
 <translation id="3391716558283801616">Tab 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> muốn sử dụng máy ảnh và micrô của bạn.</translation>
 <translation id="3396331542604645348">Máy in đã chọn không khả dụng hoặc không được cài đặt chính xác.  Hãy kiểm tra máy in của bạn hoặc thử chọn một máy in khác.</translation>
 <translation id="3399432415385675819">Thông báo sẽ bị tắt</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
@@ -1689,10 +1664,8 @@
 <translation id="3550915441744863158">Chrome tự động cập nhật nên bạn luôn có phiên bản mới nhất</translation>
 <translation id="3551320343578183772">Đóng Tab</translation>
 <translation id="3552780134252864554">Xóa khi thoát</translation>
-<translation id="355298399003313926"><ph name="URL" /> muốn phản hồi các sự kiện trợ năng.</translation>
 <translation id="3555812735919707620">Xóa tiện ích</translation>
 <translation id="3556000484321257665">Công cụ tìm kiếm của bạn đã được thay đổi thành <ph name="URL" />.</translation>
-<translation id="3561217442734750519">Giá trị dữ liệu nhập cho khóa cá nhân phải là một đường dẫn hợp lệ.</translation>
 <translation id="3563432852173030730">Không thể tải xuống ứng dụng Kiosk.</translation>
 <translation id="3564334271939054422">Mạng Wi-Fi bạn đang sử dụng (<ph name="NETWORK_ID" />) có thể yêu cầu bạn truy cập vào trang đăng nhập của mạng đó.</translation>
 <translation id="3564708465992574908">Mức thu phóng</translation>
@@ -1714,7 +1687,6 @@
 <translation id="3593965109698325041">Ràng buộc Tên của Chứng chỉ</translation>
 <translation id="3596235046596950091">Bật dịch vụ đám mây</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="3600456501114769456">Truy cập vào tệp cục bộ trên thiết bị của bạn bị quản trị viên vô hiệu hóa.</translation>
 <translation id="3600792891314830896">Tắt tiếng trên các trang web phát âm thanh</translation>
 <translation id="3603177256297531067">Không thể dịch trang này</translation>
 <translation id="3603533104205588786">Bạn có thể nhấp vào dấu sao để đánh dấu một trang</translation>
@@ -1739,7 +1711,6 @@
 <translation id="3625258641415618104">Đã tắt chụp ảnh màn hình</translation>
 <translation id="3625870480639975468">Đặt lại thu phóng</translation>
 <translation id="3626281679859535460">Độ sáng</translation>
-<translation id="3627052133907344175">Tiện ích yêu cầu "<ph name="IMPORT_NAME" />" có phiên bản tối thiểu "<ph name="IMPORT_VERSION" />" nhưng mới chỉ cài đặt được phiên bản "<ph name="INSTALLED_VERSION" />".</translation>
 <translation id="3627320433825461852">Còn chưa đến 1 phút</translation>
 <translation id="3627588569887975815">Mở liên kết bằn&amp;g cửa số ẩn danh</translation>
 <translation id="3627671146180677314">Thời gian Gia hạn Chứng chỉ Netscape</translation>
@@ -1769,7 +1740,6 @@
 <translation id="3668570675727296296">Cài đặt ngôn ngữ</translation>
 <translation id="3668823961463113931">Trình xử lý</translation>
 <translation id="3670229581627177274">Bật Bluetooth</translation>
-<translation id="3672159315667503033"><ph name="URL" /> muốn lưu trữ vĩnh viễn dữ liệu trên máy tính cục bộ của bạn.</translation>
 <translation id="3672681487849735243">Đã phát hiện lỗi khi xuất xưởng</translation>
 <translation id="367645871420407123">bỏ trống nếu bạn muốn đặt mật khẩu gốc về giá trị hình ảnh kiểm tra mặc định</translation>
 <translation id="3678156199662914018">Tiện ích: <ph name="EXTENSION_NAME" /></translation>
@@ -1847,11 +1817,9 @@
 <translation id="3786301125658655746">Bạn đang ngoại tuyến</translation>
 <translation id="3788401245189148511">Tiện ích/ứng dụng này có thể:</translation>
 <translation id="3789841737615482174">Cài đặt</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> chỉ hoạt động trên máy tính để bàn.</translation>
 <translation id="379082410132524484">Thẻ của bạn đã hết hạn</translation>
 <translation id="3792890930871100565">Ngắt kết nối máy in</translation>
 <translation id="379422718204375917">Sử dụng Smart Lock để đăng nhập vào tài khoản của bạn</translation>
-<translation id="3794595850995182458">Thoát khỏi trang</translation>
 <translation id="3796648294839530037">Mạng yêu thích:</translation>
 <translation id="3797900183766075808">&amp;Tìm kiếm trên <ph name="SEARCH_ENGINE" /> cho “<ph name="SEARCH_TERMS" />”</translation>
 <translation id="3798325802885154040">Cho phép bạn bật/tắt tính năng chạm để nhấp</translation>
@@ -1982,7 +1950,6 @@
 <translation id="3979748722126423326">Bật <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">Loại lưu không hợp lệ được nhập.</translation>
 <translation id="3983586614702900908">thiết bị từ nhà cung cấp không xác định</translation>
-<translation id="3984413272403535372">Lỗi khi ký tiện ích.</translation>
 <translation id="3987938432087324095">Rất tiếc, vẫn chưa hiểu được nội dung đó.</translation>
 <translation id="3988996860813292272">Chọn múi giờ</translation>
 <translation id="3989635538409502728">Đăng xuất</translation>
@@ -2038,7 +2005,6 @@
 <translation id="4087470595660267445">Cài đặt ứng dụng và trò chơi từ Google Play trên Chromebook của bạn. &lt;a target="_blank" href="<ph name="URL" />"&gt;Tìm hiểu thêm&lt;/a&gt;</translation>
 <translation id="4088095054444612037">Chấp nhận cho nhóm</translation>
 <translation id="4090103403438682346">Bật quyền truy cập đã xác minh</translation>
-<translation id="4090404313667273475">Cần có <ph name="PLUGIN_NAME" /> để hiển thị một số phần tử trên trang này.</translation>
 <translation id="4090535558450035482">(Tiện ích này đã được quản lý và không thể xóa được.)</translation>
 <translation id="4091434297613116013">trang giấy</translation>
 <translation id="4093955363990068916">Tệp cục bộ:</translation>
@@ -2372,7 +2338,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> hiện có thể đồng bộ hóa mật khẩu của bạn.</translation>
 <translation id="4715553623069266137">rất ngắn (0,8 giây)</translation>
 <translation id="4716483597559580346">Powerwash giúp tăng cường bảo mật</translation>
-<translation id="471800408830181311">Không thể đăng nhập khóa cá nhân đầu ra.</translation>
 <translation id="4720113199587244118">Thêm thiết bị</translation>
 <translation id="4720185134442950733">Mạng dữ liệu di động</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> đang chia sẻ màn hình của bạn.</translation>
@@ -2509,7 +2474,6 @@
 <translation id="4917385247580444890">Mạnh</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> muốn giao tiếp với tiện ích "<ph name="EXTENSION_NAME" />"</translation>
 <translation id="4918086044614829423">Chấp nhận</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> muốn sử dụng máy ảnh của bạn.</translation>
 <translation id="4920887663447894854">Các trang web sau đã bị chặn theo dõi vị trí của bạn trên trang này:</translation>
 <translation id="492299503953721473">Xóa ứng dụng Android</translation>
 <translation id="4923279099980110923">Vâng, tôi muốn được trợ giúp</translation>
@@ -2550,7 +2514,6 @@
 <translation id="4980805016576257426">Tiện ích này có chứa phần mềm độc hại.</translation>
 <translation id="498294082491145744">Thay đổi cài đặt của bạn để kiểm soát quyền truy cập của trang web vào các tính năng như cookie, JavaScript, plugin, vị trí địa lý, micrô, máy ảnh, v.v.</translation>
 <translation id="4988526792673242964">Trang</translation>
-<translation id="4988792151665380515">Không thể xuất khóa công cộng.</translation>
 <translation id="49896407730300355">Xoay &amp;ngược chiều kim đồng hồ</translation>
 <translation id="4989966318180235467">Kiểm tra trang &amp;nền</translation>
 <translation id="4990343175649730969">Tải xuống Công cụ làm sạch Chrome</translation>
@@ -2579,7 +2542,6 @@
 <translation id="5026874946691314267">Không hiển thị lại thông báo này</translation>
 <translation id="5027550639139316293">Chứng chỉ Email</translation>
 <translation id="5027562294707732951">Thêm tiện ích</translation>
-<translation id="5028012205542821824">Cài đặt chưa được bật.</translation>
 <translation id="5029568752722684782">Xóa bản sao</translation>
 <translation id="5030338702439866405">Cấp bởi</translation>
 <translation id="5036662165765606524">Không cho phép bất kỳ trang web nào tự động tải nhiều tệp xuống</translation>
@@ -2615,7 +2577,6 @@
 <translation id="509429900233858213">Đã xảy ra lỗi.</translation>
 <translation id="5094721898978802975">Kết nối với ứng dụng gốc hợp tác</translation>
 <translation id="5097002363526479830">Không thể kết nối với mạng '<ph name="NAME" />': <ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">Không thể tìm thấy đường dẫn tuyệt đối tới thư mục để chèn.</translation>
 <translation id="5099354524039520280">lên</translation>
 <translation id="5100114659116077956">Để cung cấp cho bạn tính năng mới nhất, Chromebox cần phải cập nhật.</translation>
 <translation id="5101042277149003567">Mở tất cả dấu trang</translation>
@@ -2664,7 +2625,6 @@
 <translation id="5170568018924773124">Hiển thị trong thư mục</translation>
 <translation id="5171045022955879922">Tìm kiếm hoặc nhập URL</translation>
 <translation id="5171343362375269016">Đã hoán đổi bộ nhớ</translation>
-<translation id="5175870427301879686"><ph name="URL" /> muốn lưu trữ vĩnh viễn dữ liệu trên máy tính cục bộ của bạn.</translation>
 <translation id="5177479852722101802">Tiếp tục chặn truy cập vào máy ảnh và micrô</translation>
 <translation id="5177526793333269655">Chế độ xem hình thu nhỏ</translation>
 <translation id="5177549709747445269">Bạn đang sử dụng dữ liệu di động</translation>
@@ -2743,7 +2703,6 @@
 <translation id="529175790091471945">Định dạng thiết bị này</translation>
 <translation id="5293170712604732402">Khôi phục cài đặt về mặc định ban đầu</translation>
 <translation id="5298219193514155779">Chủ đề được tạo bởi</translation>
-<translation id="5298363578196989456">Không thể nhập tiện ích "<ph name="IMPORT_NAME" />" do tiện ích này không phải là mô-đun được chia sẻ.</translation>
 <translation id="5299109548848736476">Không theo dõi</translation>
 <translation id="5299682071747318445">Tất cả dữ liệu được mã hóa với cụm mật khẩu đồng bộ hóa của bạn</translation>
 <translation id="5300589172476337783">Hiển thị</translation>
@@ -2771,7 +2730,6 @@
 <translation id="5331425616433531170">"<ph name="CHROME_EXTENSION_NAME" />" muốn ghép nối</translation>
 <translation id="5332624210073556029">Múi giờ:</translation>
 <translation id="5334142896108694079">Bộ nhớ cache tập lệnh</translation>
-<translation id="533433379391851622">Phiên bản mong muốn "<ph name="EXPECTED_VERSION" />", nhưng phiên bản là "<ph name="NEW_ID" />".</translation>
 <translation id="5334844597069022743">Xem nguồn</translation>
 <translation id="5335458522276292100">Đang sao lưu <ph name="FILE_COUNT" /> vào <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">Được cài đặt bởi bên thứ ba.</translation>
@@ -2809,7 +2767,6 @@
 <translation id="5390100381392048184">Cho phép các trang web phát âm thanh</translation>
 <translation id="5390284375844109566">Cơ sở dữ liệu được lập chỉ mục</translation>
 <translation id="5390743329570580756">Gửi cho</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_NAME" /> trên <ph name="PEPPER_PLUGIN_DOMAIN" /> muốn truy cập máy tính của bạn.</translation>
 <translation id="5397794290049113714">Bạn</translation>
 <translation id="5398572795982417028">Vượt quá phạm vi trang, giới hạn là <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">Đã chặn quảng cáo</translation>
@@ -2871,7 +2828,6 @@
 <translation id="5485754497697573575">Khôi phục Tất cả các Tab</translation>
 <translation id="5486261815000869482">Xác nhận mật khẩu</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> đang chia sẻ màn hình của bạn với <ph name="TAB_NAME" />.</translation>
-<translation id="5486326529110362464">Giá trị dữ liệu nhập cho khóa cá nhân phải tồn tại.</translation>
 <translation id="5486561344817861625">Mô phỏng khởi động lại trình duyệt</translation>
 <translation id="5487521232677179737">Xóa dữ liệu</translation>
 <translation id="5488093641312826914">Đã sao chép '<ph name="COPIED_ITEM_NAME" />'</translation>
@@ -2954,7 +2910,6 @@
 <translation id="5600706100022181951">Bản cập nhật sẽ được tải xuống bằng cách dùng <ph name="UPDATE_SIZE_MB" /> MB dữ liệu di động. Bạn có muốn tiếp tục không?</translation>
 <translation id="5601503069213153581">Mã PIN</translation>
 <translation id="5605623530403479164">Công cụ tìm kiếm khác</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_NAME" /> trên <ph name="PEPPER_PLUGIN_DOMAIN" /> muốn truy cập thiết bị của bạn.</translation>
 <translation id="5608580678041221894">Nhấn các phím sau để điều chỉnh hoặc di chuyển vùng cắt</translation>
 <translation id="5609231933459083978">Ứng dụng này có vẻ không hợp lệ.</translation>
 <translation id="5610038042047936818">Chuyển sang chế độ máy ảnh</translation>
@@ -3194,10 +3149,9 @@
 <translation id="5984222099446776634">Truy cập gần đây</translation>
 <translation id="5989712527536636369"><ph name="BEGIN_PARAGRAPH1" />Đây là thông tin chung về thiết bị của bạn và cách bạn sử dụng thiết bị đó, chẳng hạn như mức pin, tần suất bạn sử dụng các ứng dụng của mình, chất lượng và thời lượng kết nối mạng (như Wi-Fi và Bluetooth) cũng như báo cáo sự cố khi các tính năng không hoạt động như mong muốn. Google sẽ sử dụng thông tin này để cải thiện các sản phẩm và dịch vụ dành cho mọi người. Một số thông tin tổng hợp cũng sẽ giúp các đối tác, chẳng hạn như các nhà phát triển Android, cải thiện sản phẩm và ứng dụng của họ.<ph name="END_PARAGRAPH1" />
     <ph name="BEGIN_PARAGRAPH2" />Bạn có thể bật hoặc tắt tính năng này bất cứ lúc nào trong Cài đặt ứng dụng Android. Việc này không ảnh hưởng đến khả năng thiết bị gửi thông tin cần thiết để nhận các dịch vụ quan trọng như bảo mật và cập nhật hệ thống.<ph name="END_PARAGRAPH2" /></translation>
-<translation id="5990386583461751448">Đã được dịch</translation>
+<translation id="5990386583461751448">Đã dịch</translation>
 <translation id="5991049340509704927">Phóng to</translation>
 <translation id="5993332328670040093">Mức sử dụng dữ liệu của bạn sẽ không được đo lường nữa.</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" /> không thể tự cập nhật.</translation>
 <translation id="600424552813877586">Ứng dụng không hợp lệ.</translation>
 <translation id="6005695835120147974">Bộ định tuyến phương tiện</translation>
 <translation id="6006484371116297560">Cổ điển</translation>
@@ -3222,6 +3176,7 @@
 <translation id="604001903249547235">Sao lưu đám mây</translation>
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="6040852767465482106">Danh tính ẩn danh</translation>
+<translation id="6041155700700864984">Thoát chế độ toàn màn hình</translation>
 <translation id="604124094241169006">Tự động</translation>
 <translation id="6042169520002885235">Chọn kiểu máy và nhà sản xuất máy in</translation>
 <translation id="6042308850641462728">Thêm</translation>
@@ -3238,7 +3193,6 @@
 <translation id="6056710589053485679">Tải lại bình thường</translation>
 <translation id="6059652578941944813">Hệ thống cấp bậc của Chứng chỉ</translation>
 <translation id="6059925163896151826">Thiết bị USB</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" /> đã bị lỗi.</translation>
 <translation id="6064217302520318294">Khóa màn hình</translation>
 <translation id="6065289257230303064">Các Thuộc tính Thư mục Đối tượng Chứng chỉ</translation>
 <translation id="6068338049763724728">Bật đăng ký từ xa</translation>
@@ -3347,7 +3301,6 @@
 <translation id="6237816943013845465">Cho phép bạn điều chỉnh độ phân giải màn hình</translation>
 <translation id="6238923052227198598">Giữ ghi chú mới nhất trên màn hình khóa</translation>
 <translation id="6239558157302047471">Tải lại &amp;khung</translation>
-<translation id="624022915548992686">Thoát khỏi trang</translation>
 <translation id="6241530762627360640">Truy cập thông tin về thiết bị Bluetooth được ghép nối với hệ thống của bạn và khám phá các thiết bị Bluetooth lân cận.</translation>
 <translation id="6243774244933267674">Máy chủ không khả dụng</translation>
 <translation id="6246413617632217567">Không thể nhập người dùng được giám sát. Vui lòng kiểm tra dung lượng ổ đĩa cứng và quyền của bạn rồi thử lại.</translation>
@@ -3396,13 +3349,11 @@
 <translation id="6312403991423642364">Lỗi mạng không xác định</translation>
 <translation id="6313641880021325787">THOÁT VR</translation>
 <translation id="6314819609899340042">Bạn đã bật thành công tính năng gỡ lỗi trên thiết bị <ph name="IDS_SHORT_PRODUCT_NAME" /> này.</translation>
-<translation id="6315343732431721770">Trang khởi động của bạn đã được thay đổi để bao gồm <ph name="URL" />. Để tắt tiện ích thay đổi trang khởi động của bạn, hãy nhấp vào Khôi phục.</translation>
 <translation id="6315493146179903667">Đưa Tất cả lên Trước</translation>
 <translation id="6316806695097060329">Thiết bị <ph name="SHORT_PRODUCT_NAME" /> này được thiết kế nhằm cung cấp trải nghiệm web tốt nhất cho bạn.</translation>
 <translation id="6317318380444133405">Không còn được hỗ trợ.</translation>
 <translation id="6317369057005134371">Đang đợi cửa sổ ứng dụng...</translation>
 <translation id="6318407754858604988">Đã bắt đầu tải xuống</translation>
-<translation id="6322279351188361895">Không thể đọc khóa cá nhân.</translation>
 <translation id="6325191661371220117">Tắt tính năng tự động chạy</translation>
 <translation id="6326175484149238433">Xóa khỏi Chrome</translation>
 <translation id="6326855256003666642">Số lượng giữ kết nối</translation>
@@ -3411,7 +3362,6 @@
 <translation id="6333049849394141510">Chọn loại dữ liệu để đồng bộ hoá</translation>
 <translation id="6333064448949140209">Tệp sẽ được gửi tới Google để được gỡ lỗi</translation>
 <translation id="6333834492048057036">Tập trung vào thanh địa chỉ để tìm kiếm</translation>
-<translation id="6336907568130557310">Mật khẩu của bạn sẽ được hiển thị cho bất cứ ai có thể xem các tệp đã xuất. Không chia sẻ tệp với bất kỳ ai và xóa tệp sau khi nhập.</translation>
 <translation id="6339668969738228384">Tạo hồ sơ mới cho <ph name="USER_EMAIL_ADDRESS" /></translation>
 <translation id="6340017061976355871">Không thể kết nối với máy chủ. Vui lòng kiểm tra kết nối mạng của bạn và thử lại. Nếu sự cố vẫn tiếp diễn, hãy khởi động lại Chromebook.</translation>
 <translation id="6340071272923955280">Giao thức in qua Internet (IPPS)</translation>
@@ -3440,7 +3390,6 @@
 <translation id="6385543213911723544">Trang web có thể lưu và đọc dữ liệu cookie</translation>
 <translation id="6388771388956873507">Tìm cảm biến vân tay trên thiết bị của bạn và chạm vào bằng ngón tay</translation>
 <translation id="6390799748543157332">Những trang bạn xem trong cửa sổ này sẽ không xuất hiện trong lịch sử trình duyệt và sẽ không để lại các dấu vết khác như cookie trên máy tính sau khi bạn đóng tất cả cửa sổ Khách đang mở. Tuy nhiên, bất kỳ tệp nào bạn tải xuống cũng sẽ được giữ nguyên.</translation>
-<translation id="6391538222494443604">Thư mục dữ liệu nhập phải tồn tại.</translation>
 <translation id="6395423953133416962">Gửi <ph name="BEGIN_LINK1" />thông tin hệ thống<ph name="END_LINK1" /> và <ph name="BEGIN_LINK2" />số liệu<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Dừng nói</translation>
 <translation id="6397592254427394018">Mở tất cả dấu trang trong &amp;cửa sổ ẩn danh</translation>
@@ -3498,7 +3447,6 @@
 <translation id="6458308652667395253">Quản lý chặn JavaScript...</translation>
 <translation id="6459488832681039634">Sử dụng Phần lựa chọn cho Tìm kiếm</translation>
 <translation id="6460601847208524483">Tìm Tiếp theo</translation>
-<translation id="6462080265650314920">Ứng dụng phải được cung cấp loại nội dung "<ph name="CONTENT_TYPE" />".</translation>
 <translation id="6462082050341971451">Bạn còn ở đó không?</translation>
 <translation id="6463795194797719782">&amp;Chỉnh sửa</translation>
 <translation id="6466988389784393586">&amp;Mở tất cả dấu trang</translation>
@@ -3628,7 +3576,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Bạn có muốn Google dịch trang này từ <ph name="SOURCE_LANGUAGE" /> sang <ph name="TARGET_LANGUAGE" /> không?</translation>
 <translation id="6675665718701918026">Đã kết nối thiết bị trỏ</translation>
-<translation id="6677037229676347494">ID mong muốn "<ph name="EXPECTED_ID" />", nhưng ID là "<ph name="NEW_ID" />".</translation>
 <translation id="6678717876183468697">URL truy vấn</translation>
 <translation id="6680028776254050810">Chuyển người dùng</translation>
 <translation id="6680442031740878064">Còn trống: <ph name="AVAILABLE_SPACE" /></translation>
@@ -3768,8 +3715,6 @@
 <translation id="6903534926908201625">Bạn có thể tùy chỉnh thông tin mà Google thu thập trong phần <ph name="BEGIN_LINK" />Cài đặt<ph name="END_LINK" /> bất cứ lúc nào.</translation>
 <translation id="6904344821472985372">Thu hồi quyền truy cập tệp</translation>
 <translation id="6904655473976120856">Nhấn vào nút Ứng dụng để thoát</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> muốn chia sẻ màn hình của bạn.</translation>
-<translation id="6909461304779452601">Không thể thêm các ứng dụng, tiện ích và tập lệnh của người dùng từ trang web này.</translation>
 <translation id="6910211073230771657">Đã xóa</translation>
 <translation id="691024665142758461">Tải xuống nhiều tệp</translation>
 <translation id="6911324888870229398">Đã mất kết nối mạng. Vui lòng kiểm tra kết nối của bạn hoặc thử một mạng Wi-Fi khác.</translation>
@@ -4106,7 +4051,6 @@
 <translation id="747114903913869239">Lỗi: Không thể giải mã tiện ích</translation>
 <translation id="7473891865547856676">Không, cảm ơn</translation>
 <translation id="747459581954555080">Khôi phục tất cả</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" /> đã gặp lỗi.</translation>
 <translation id="7475671414023905704">URL Mật khẩu đã Mất của Netscape</translation>
 <translation id="7476454130948140105">Pin quá yếu để cập nhật (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">Nếu bạn đã quên cụm mật khẩu của mình, hãy dừng lại và đặt lại Đồng bộ hóa qua <ph name="BEGIN_LINK" />Trang tổng quan của Google<ph name="END_LINK" />.</translation>
@@ -4143,7 +4087,6 @@
 <translation id="7507930499305566459">Chứng chỉ Trả lời Trạng thái</translation>
 <translation id="7508545000531937079">Trình chiếu</translation>
 <translation id="7513029293694390567">Tự động đăng nhập vào các trang web bằng thông tin đăng nhập được lưu trữ. Nếu tính năng này tắt, bạn sẽ luôn được yêu cầu xác nhận trước khi đăng nhập vào trang web.</translation>
-<translation id="7515670329462166359"><ph name="URL" /> muốn xác định duy nhất thiết bị của bạn để phát nội dung được bảo vệ.</translation>
 <translation id="7517569744831774757">Khôi phục cài đặt về mặc định ban đầu.</translation>
 <translation id="7517786267097410259">Tạo mật khẩu -</translation>
 <translation id="7518150891539970662">Nhật ký WebRTC (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4173,7 +4116,6 @@
     thử tạo lại người dùng được giám sát.</translation>
 <translation id="756445078718366910">Mở Cửa sổ Trình duyệt</translation>
 <translation id="7564847347806291057">Kết thúc quá trình</translation>
-<translation id="7565291891798266313">Công cụ tìm kiếm của bạn đã được thay đổi thành <ph name="URL" />. Để tắt tiện ích thay đổi công cụ tìm kiếm của bạn, hãy nhấp vào Khôi phục.</translation>
 <translation id="7566118625369982896">Quản lý các liên kết ứng dụng Play</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">Đã xóa dữ liệu Chrome</translation>
@@ -4182,7 +4124,6 @@
 <translation id="7573172247376861652">Sạc pin</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">Đối chiếu</translation>
-<translation id="7577815336900970562">Sử dụng Wi-Fi hoặc mạng di động để xác định vị trí</translation>
 <translation id="7579149537961810247">Tắt tiếng các trang web</translation>
 <translation id="7580671184200851182">Phát cùng một âm thanh qua tất cả các loa (đơn âm)</translation>
 <translation id="7581462281756524039">Công cụ làm sạch</translation>
@@ -4289,6 +4230,7 @@
 <translation id="7773726648746946405">Bộ nhớ phiên</translation>
 <translation id="7781335840981796660">Tất cả tài khoản người dùng và dữ liệu trên máy đều sẽ bị xóa.</translation>
 <translation id="7782102568078991263">Không có đề xuất nào khác từ Google</translation>
+<translation id="778330624322499012">Không thể tải <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">Cài đặt bảo mật trên máy tính của bạn đã chặn tệp này.</translation>
 <translation id="7786207843293321886">Thoát khỏi phiên khách</translation>
 <translation id="7786889348652477777">Tải &amp;lại ứng dụng</translation>
@@ -4451,7 +4393,6 @@
 <translation id="8001504501378762252">Một trang web có thể đã đánh cắp mật khẩu của bạn</translation>
 <translation id="8004582292198964060">Trình duyệt</translation>
 <translation id="8008356846765065031">Internet đã bị ngắt kết nối. Vui lòng kiểm tra kết nối Internet của bạn.</translation>
-<translation id="8008765610824028412">Không thể tải <ph name="PLUGIN_NAME" />.</translation>
 <translation id="8008818777654712271">Tự động gửi một số thông tin hệ thống và nội dung trang cho Google để giúp phát hiện các ứng dụng và trang web nguy hiểm</translation>
 <translation id="8012382203418782830">Trang này đã được dịch.</translation>
 <translation id="8014154204619229810">Trình cập nhật hiện đang chạy. Hãy làm mới sau một phút nữa để kiểm tra lại.</translation>
@@ -4568,7 +4509,6 @@
 <translation id="8191230140820435481">Quản lý ứng dụng, tiện ích và chủ đề của bạn</translation>
 <translation id="8191453843330043793">Trình phân giải proxy V8</translation>
 <translation id="8195027750202970175">Dung lượng trên đĩa</translation>
-<translation id="8195739004487400241">Trang chủ của bạn đã được thay đổi thành <ph name="URL" />. Để tắt tiện ích thay đổi trang chủ của bạn, hãy nhấp vào Khôi phục.</translation>
 <translation id="8199300056570174101">Thuộc tính của thiết bị và mạng (dịch vụ)</translation>
 <translation id="8200772114523450471">Tiếp tục</translation>
 <translation id="8202160505685531999">Vui lòng nhập lại mật khẩu để cập nhật hồ sơ <ph name="DEVICE_TYPE" /> của bạn.</translation>
@@ -4612,7 +4552,6 @@
 <translation id="8261378640211443080">Tiện ích này 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="8261387128019234107">Thêm tài khoản cho <ph name="PROFILE_NAME" /></translation>
 <translation id="8261506727792406068">Xóa</translation>
-<translation id="826246685091802258"><ph name="BAD_FLAG" /> không được triển khai trong phiên bản này.</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> đã tắt con trỏ chuột của bạn.</translation>
 <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" đã kích hoạt chế độ toàn màn hình.</translation>
 <translation id="8270242299912238708">Tài liệu PDF</translation>
@@ -4713,6 +4652,7 @@
 <translation id="8454288007744638700">Hoặc chọn một mạng mới:</translation>
 <translation id="845627346958584683">Thời gian hết hạn</translation>
 <translation id="8456681095658380701">Tên không hợp lệ</translation>
+<translation id="8457451314607652708">Nhập dấu trang</translation>
 <translation id="8460336040822756677">Nếu tắt Smart Lock cho <ph name="DEVICE_TYPE" />, bạn sẽ không thể mở khóa thiết bị Chrome bằng điện thoại của mình. Bạn cần phải nhập mật khẩu của mình.</translation>
 <translation id="8461329675984532579">Tên nhà mạng nội hạt</translation>
 <translation id="84613761564611563">Yêu cầu giao diện người dùng định cấu hình mạng, vui lòng chờ...</translation>
@@ -4744,7 +4684,6 @@
 <translation id="850875081535031620">Không tìm thấy phần mềm độc hại nào</translation>
 <translation id="8512476990829870887">Kết thúc quá trình</translation>
 <translation id="851263357009351303">Luôn cho phép <ph name="HOST" /> hiển thị hình ảnh</translation>
-<translation id="8513191386157529469">"<ph name="CLIENT_NAME" />" đang gỡ lỗi trình duyệt này.</translation>
 <translation id="8521475323816527629">Truy cập nhanh vào các ứng dụng của bạn</translation>
 <translation id="8523493869875972733">Lưu thay đổi</translation>
 <translation id="8523849605371521713">Được thêm bởi chính sách</translation>
@@ -4782,7 +4721,7 @@
 <translation id="8581809080475256101">Nhấn để tiếp tục, nhấn menu ngữ cảnh để xem lịch sử</translation>
 <translation id="8584280235376696778">&amp;Mở video trong tab mới</translation>
 <translation id="8588866096426746242">Hiển thị số liệu thống kê hồ sơ</translation>
-<translation id="8589652987924574405">Dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ được đồng bộ hóa với Tài khoản Google của bạn để bạn có thể sử dụng trên tất cả các thiết bị của mình. Bạn luôn có thể thay đổi tùy chọn này vào thời điểm khác trong cài đặt.</translation>
+<translation id="8589652987924574405">Dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ được đồng bộ hóa với Tài khoản Google của bạn để bạn có thể sử dụng trên tất cả các thiết bị của mình. Bạn luôn có thể thay đổi tùy chọn này trong phần cài đặt.</translation>
 <translation id="8590375307970699841">Thiết lập cập nhật tự động</translation>
 <translation id="8594908476761052472">Quay video</translation>
 <translation id="8596540852772265699">Tệp tùy chỉnh</translation>
@@ -4800,7 +4739,6 @@
 <translation id="8620765578342452535">Định cấu hình kết nối mạng</translation>
 <translation id="8620790565535071193">Quét không thành công</translation>
 <translation id="8622877356447980900">Bạn có muốn dịch trang này không?</translation>
-<translation id="8623004009673949077">Phải cài đặt ứng dụng có thuộc tính tệp kê khai 'kiosk_only' ở chế độ kiosk Chrome OS.</translation>
 <translation id="8624205858755890468">Cho phép Trợ lý hiển thị cho bạn các hành động, ứng dụng và thông tin có liên quan.</translation>
 <translation id="862542460444371744">&amp;Tiện ích mở rộng</translation>
 <translation id="8627151598708688654">Chọn nguồn</translation>
@@ -4949,7 +4887,6 @@
 <translation id="882204272221080310">Cập nhật chương trình cơ sở để tăng cường bảo mật.</translation>
 <translation id="8823514049557262177">Sao chép &amp;văn bản liên kết</translation>
 <translation id="8824701697284169214">Thêm tran&amp;g...</translation>
-<translation id="8827850355924932817">Sử dụng mạng Wi-Fi để xác định vị trí</translation>
 <translation id="8828933418460119530">Tên DNS</translation>
 <translation id="8830796635868321089">Kiểm tra cập nhật không thành công khi sử dụng cài đặt proxy hiện tại. Vui lòng điều chỉnh <ph name="PROXY_SETTINGS_LINK_START" />cài đặt proxy<ph name="PROXY_SETTINGS_LINK_END" /> của bạn.</translation>
 <translation id="8834039744648160717">Cấu hình mạng do <ph name="USER_EMAIL" /> kiểm soát.</translation>
@@ -4981,9 +4918,7 @@
 <translation id="8879284080359814990">&amp;Hiển thị Dưới dạng Tab</translation>
 <translation id="8884961208881553398">Thêm dịch vụ mới</translation>
 <translation id="8885197664446363138">Smart Lock không khả dụng</translation>
-<translation id="8885905466771744233">Khoá cá nhân cho tiện ích chỉ định đã tồn tại. Hãy sử dụng lại hoặc xóa khóa đó trước tiên.</translation>
 <translation id="8888432776533519951">Màu:</translation>
-<translation id="8892992092192084762">Đã cài đặt chủ đề "<ph name="THEME_NAME" />".</translation>
 <translation id="8893928184421379330">Rất tiếc, không thể nhận dạng thiết bị <ph name="DEVICE_LABEL" />.</translation>
 <translation id="8895454554629927345">Danh sách dấu trang</translation>
 <translation id="88986195241502842">Trang dưới</translation>
@@ -4998,7 +4933,6 @@
 <translation id="8908902564709148335">Cảnh báo: Bạn đã bật cờ --scripts-require-action trên máy tính này, điều này hạn chế khả năng của tiện ích này. Tuy nhiên, các thiết bị khác có thể không hỗ trợ cờ này hoặc đã bật cờ này. Trên các thiết bị này, tiện ích này cũng có thể:</translation>
 <translation id="8910146161325739742">Chia sẻ màn hình của bạn</translation>
 <translation id="8910222113987937043">Các thay đổi đối với dấu trang, lịch sử, mật khẩu và các cài đặt khác sẽ không được đồng bộ hóa với Tài khoản Google của bạn nữa. Tuy nhiên, dữ liệu hiện có của bạn sẽ vẫn được lưu trữ trong Tài khoản Google và có thể được quản lý trên <ph name="BEGIN_LINK" />Trang tổng quan Google<ph name="END_LINK" />.</translation>
-<translation id="8911079125461595075">Google đã gắn cờ "<ph name="EXTENSION_NAME" />" là độc hại và cài đặt đã bị chặn.</translation>
 <translation id="8912793549644936705">Kéo dãn</translation>
 <translation id="8915370057835397490">Đang tải đề xuất</translation>
 <translation id="8916476537757519021">Khung ẩn danh phụ: <ph name="SUBFRAME_SITE" /></translation>
@@ -5104,7 +5038,6 @@
 <translation id="9074739597929991885">Bluetooth</translation>
 <translation id="9074836595010225693">Đã kết nối chuột USB</translation>
 <translation id="9076523132036239772">Rất tiếc, email hoặc mật khẩu của bạn không thể xác minh được. Trước tiên hãy thử kết nối với một mạng.</translation>
-<translation id="907841381057066561">Không thể tạo tệp nén tạm thời khi đóng gói.</translation>
 <translation id="9084064520949870008">Mở dưới dạng cửa sổ</translation>
 <translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> bị chặn bởi chính sách doanh nghiệp</translation>
 <translation id="9088917181875854783">Vui lòng xác nhận mã xác nhận này được hiển thị trên "<ph name="DEVICE_NAME" />":</translation>
@@ -5195,11 +5128,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">Nhập cụm mật khẩu</translation>
 <translation id="939736085109172342">Thư mục mới</translation>
-<translation id="941543339607623937">Khoá cá nhân không hợp lệ.</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> đang chia sẻ âm thanh và một tab trong Chrome.</translation>
 <translation id="942954117721265519">Không có hình ảnh nào trong thư mục này.</translation>
 <translation id="945522503751344254">Gửi phản hồi</translation>
-<translation id="951981865514037445"><ph name="URL" /> muốn sử dụng thông tin vị trí thiết bị của bạn.</translation>
 <translation id="952992212772159698">Chưa được kích hoạt</translation>
 <translation id="9580706199804957">Không thể kết nối với các dịch vụ của Google</translation>
 <translation id="958515377357646513">Chạm để tiếp tục.</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index af3a2fe..dc8f1e2 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">仅加密</translation>
 <translation id="1039337018183941703">文件无效或已损坏</translation>
 <translation id="1042174272890264476">您的计算机还内置了 <ph name="SHORT_PRODUCT_NAME" /> 的 RLZ 库。RLZ 会指定非唯一、非个人身份识别代码来衡量某推广活动所带来的搜索量和 <ph name="SHORT_PRODUCT_NAME" /> 使用量。这些标签有时会显示在 <ph name="PRODUCT_NAME" /> 的 Google 搜索查询中。</translation>
-<translation id="1042574203789536285"><ph name="URL" /> 想在您的设备上永久存储大量数据。</translation>
 <translation id="1046059554679513793">糟糕,此名称已有人使用!</translation>
 <translation id="1047431265488717055">复制链接文字(&amp;X)</translation>
 <translation id="1047726139967079566">为此页添加书签...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">恢复默认搜索引擎?</translation>
 <translation id="1177863135347784049">自定义</translation>
 <translation id="1178581264944972037">暂停</translation>
-<translation id="1179803038870941185"><ph name="URL" /> 想要获取您的 MIDI 设备的完全控制权。</translation>
 <translation id="1181037720776840403">删除</translation>
 <translation id="1183237619868651138">无法将 <ph name="EXTERNAL_CRX_FILE" /> 安装在本地缓存中。</translation>
 <translation id="1185924365081634987">您也可以尝试<ph name="GUEST_SIGNIN_LINK_START" />以访客身份浏览<ph name="GUEST_SIGNIN_LINK_END" />,以便修复该网络错误。</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{可访问您计算机上存储的 1 个文件}other{可访问您计算机上存储的 # 个文件}}</translation>
 <translation id="1195076408729068893">要启动 Smart Lock,请输入您的密码。下次,您就能使用配对手机来解锁您的 <ph name="DEVICE_TYPE" /> 了。</translation>
 <translation id="1195447618553298278">未知错误。</translation>
-<translation id="1196338895211115272">无法导出私有密钥。</translation>
 <translation id="119738088725604856">窗口的屏幕截图</translation>
 <translation id="1197979282329025000">检索打印机“<ph name="PRINTER_NAME" />”的打印功能时发生错误。此打印机无法使用“<ph name="CLOUD_PRINT_NAME" />”进行注册。</translation>
 <translation id="1198271701881992799">让我们开始吧</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">您的管理员建议将此设置设为某个特定值。</translation>
 <translation id="1225177025209879837">正在处理请求…</translation>
 <translation id="1225211345201532184">栏中第 5 项</translation>
-<translation id="1225404570112441414">将此网站添加到任务栏,以便随时使用。</translation>
 <translation id="1227507814927581609">连接到“<ph name="DEVICE_NAME" />”时身份验证失败。</translation>
 <translation id="1230807973377071856">系统菜单</translation>
 <translation id="1232569758102978740">无标题</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">以前导出的书签(HTML 文件)</translation>
 <translation id="1303671224831497365">未找到任何蓝牙设备</translation>
 <translation id="1306606229401759371">更改设置</translation>
-<translation id="1307398858972670978">您可在任意设备上通过 <ph name="SAVED_PASSWORDS_LINK" /> 获取自己的密码</translation>
 <translation id="1307559529304613120">糟糕!系统无法为该设备存储长期的 API 访问令牌。</translation>
 <translation id="1313405956111467313">自动配置代理</translation>
 <translation id="131364520783682672">Caps Lock</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">搜索</translation>
 <translation id="1386387014181100145">您好!</translation>
 <translation id="138784436342154190">要恢复默认启动页吗?</translation>
-<translation id="1389297115360905376">只能通过 <ph name="CHROME_WEB_STORE" />添加该程序。</translation>
 <translation id="1390548061267426325">在常规标签页中打开</translation>
-<translation id="1391807639023934267">页面加载速度更快。</translation>
 <translation id="1393283411312835250">太阳和云朵</translation>
 <translation id="1395262318152388157">进度滑块</translation>
 <translation id="1395730723686586365">更新程序已启动</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">您即将更新到 <ph name="PRODUCT_NAME" />的不稳定版本,其中含有尚处于开发阶段的功能。系统可能会出现崩溃和意外错误。继续操作前,请三思。</translation>
 <translation id="1415990189994829608">这类会话不允许使用“<ph name="EXTENSION_NAME" />”(扩展程序 ID 为“<ph name="EXTENSION_ID" />”)。</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">糟糕!无法生成随机的 RSA 私有密钥。</translation>
 <translation id="1420834118113404499">媒体许可</translation>
 <translation id="1420920093772172268"><ph name="TURN_ON_BLUETOOTH_LINK" />以允许配对</translation>
 <translation id="1426410128494586442">是</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">复制音频地址(&amp;O)</translation>
 <translation id="1465827627707997754">披萨片</translation>
 <translation id="1467432559032391204">向左</translation>
-<translation id="1467999917853307373"><ph name="URL" /> 想在您的设备上永久存储数据。</translation>
-<translation id="1470719357688513792">新的 Cookie 设置会在重新加载网页后生效。</translation>
 <translation id="1470811252759861213">要将您的扩展程序同步到您所有的设备上,请<ph name="SIGN_IN_LINK" />。</translation>
 <translation id="1474339897586437869">未上传“<ph name="FILENAME" />”,因为您的 Google 云端硬盘没有足够的可用空间。</translation>
 <translation id="1475502736924165259">您有一些证书不属于前面的任何类别</translation>
@@ -364,6 +354,7 @@
 <translation id="15373452373711364">大号鼠标光标</translation>
 <translation id="1543284117603151572">从 Edge 导入的书签</translation>
 <translation id="1545177026077493356">自动自助服务终端模式</translation>
+<translation id="1545775234664667895">已安装主题背景“<ph name="THEME_NAME" />”</translation>
 <translation id="1545786162090505744">网址(用“%s”代替搜索字词)</translation>
 <translation id="1546280085599573572">此扩展程序更改了您点击“主页”按钮后系统显示的页面。</translation>
 <translation id="1547572086206517271">需要刷新</translation>
@@ -440,11 +431,9 @@
     <ph name="BEGIN_BOLD" />审核<ph name="END_BOLD" />受监管用户访问过的网站,以及
     <ph name="BEGIN_BOLD" />管理<ph name="END_BOLD" />其他设置。</translation>
 <translation id="1648943974594387137">登录详细信息已过期</translation>
-<translation id="1649641629389702691">&lt;有 <ph name="LINE_COUNT" /> 行代码未显示出来&gt;</translation>
 <translation id="1650371550981945235">显示输入法选项</translation>
 <translation id="1650709179466243265">添加 www. 和 .com 并打开地址</translation>
 <translation id="1651008383952180276">您两次输入的密码必须相同</translation>
-<translation id="1652972346408808053">已保存密码。您可在任意设备上通过 <ph name="SAVED_PASSWORDS_LINK" /> 获取自己的密码</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{请将该打印机添加到 Google 云打印,以便您可以随时随地进行打印。}other{请将 # 台打印机添加到 Google 云打印,以便您可以随时随地进行打印。}}</translation>
 <translation id="1657406563541664238">将使用情况统计信息和崩溃报告自动发送给 Google,帮助我们完善 <ph name="PRODUCT_NAME" /></translation>
 <translation id="1658424621194652532">此网页正在使用您的麦克风。</translation>
@@ -671,7 +660,6 @@
 <translation id="2045969484888636535">继续拦截 Cookie</translation>
 <translation id="204622017488417136">您的设备将还原到之前安装的 Chrome 版本。所有用户帐号和本地数据都将移除。此操作无法撤消。</translation>
 <translation id="2048182445208425546">获取您的网络流量数据</translation>
-<translation id="2049137146490122801">您的管理员已禁止您访问自己机器上的本地文件。</translation>
 <translation id="204914487372604757">创建快捷方式</translation>
 <translation id="2050339315714019657">纵向</translation>
 <translation id="2053312383184521053">闲置状态数据</translation>
@@ -705,7 +693,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">尚未加载</translation>
 <translation id="2107494551712864447">添加指纹</translation>
-<translation id="2111843886872897694">应用必须由受其影响的主机提供。</translation>
 <translation id="2112877397266219826">打开触摸控制器即可进行设置</translation>
 <translation id="21133533946938348">固定标签页</translation>
 <translation id="2113479184312716848">打开文件(&amp;F)...</translation>
@@ -792,7 +779,6 @@
 <translation id="2226720438730111184">告诉我们所发生的情况</translation>
 <translation id="2229161054156947610">剩余时间超过 1 小时</translation>
 <translation id="222931766245975952">文件被截断</translation>
-<translation id="222949136907494149"><ph name="URL" /> 想要使用您的计算机的所在位置信息。</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">无法创建文件夹“<ph name="FOLDER_NAME" />”。<ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">点击即可查看今日的涂鸦</translation>
@@ -880,7 +866,6 @@
 <translation id="236141728043665931">始终禁止使用麦克风</translation>
 <translation id="2367972762794486313">显示应用</translation>
 <translation id="2371076942591664043">完成时打开(&amp;D)</translation>
-<translation id="237336063998926520">根据您的 IP 地址确定位置</translation>
 <translation id="2377319039870049694">切换到列表视图</translation>
 <translation id="2377667304966270281">硬故障数</translation>
 <translation id="2378075407703503998">已选择 <ph name="SELCTED_FILE_COUNT" /> 个文件</translation>
@@ -927,7 +912,6 @@
 <translation id="2457246892030921239">“<ph name="APP_NAME" />”想从 <ph name="VOLUME_NAME" />复制文件。</translation>
 <translation id="2462724976360937186">证书授权中心密钥 ID</translation>
 <translation id="2462752602710430187">已添加<ph name="PRINTER_NAME" /></translation>
-<translation id="246335896104539386">导入书签</translation>
 <translation id="2464089476039395325">HTTP 代理</translation>
 <translation id="2468902267404883140">无法连接到您的手机。请确保您使用的是兼容的 Android 手机,而且该手机正处于开机状态且就在您身边。&lt;a&gt;了解详情&lt;/a&gt;</translation>
 <translation id="2470702053775288986">已停用不支持的扩展程序</translation>
@@ -943,7 +927,6 @@
 <translation id="2485422356828889247">卸载</translation>
 <translation id="2487067538648443797">添加新书签</translation>
 <translation id="248861575772995840">找不到您的手机。请确保已为您的 <ph name="DEVICE_TYPE" /> 开启蓝牙。&lt;a&gt;了解详情&lt;/a&gt;</translation>
-<translation id="2489316678672211764">有一个插件(“<ph name="PLUGIN_NAME" />”)没有响应。</translation>
 <translation id="2489428929217601177">过去一天</translation>
 <translation id="2489918096470125693">添加文件夹(&amp;F)...</translation>
 <translation id="249113932447298600">抱歉,系统目前不支持设备“<ph name="DEVICE_LABEL" />”。</translation>
@@ -997,13 +980,11 @@
 <translation id="2563856802393254086">恭喜!“<ph name="NAME" />”数据服务已激活,您可以开始使用了。</translation>
 <translation id="2566124945717127842">Powerwash会将您的<ph name="IDS_SHORT_PRODUCT_NAME" />设备重置为初始状态。</translation>
 <translation id="2568774940984945469">信息栏容器</translation>
-<translation id="2570000010887652771">节省数据流量。</translation>
 <translation id="257088987046510401">主题背景</translation>
 <translation id="2572032849266859634">已授予对 <ph name="VOLUME_NAME" />的只读权限。</translation>
 <translation id="2573269395582837871">选择照片和名字</translation>
 <translation id="2575247648642144396">仅当此扩展程序能够对当前网页采取操作时,该图标才会显示。要使用此扩展程序,请点击该图标或按 <ph name="EXTENSION_SHORTCUT" />。</translation>
 <translation id="2575268751393592580">找不到您的手机,请确保您的 <ph name="DEVICE_TYPE" /> 已连接到 Wi-Fi 或移动网络。&lt;a&gt;了解详情&lt;/a&gt;</translation>
-<translation id="2576842806987913196">已经有其他 CRX 文件使用了此名称。</translation>
 <translation id="257779572837908839">设为 Chromebox 会易设备</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />无法卸载卷<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1064,7 +1045,6 @@
 <translation id="2653266418988778031">如果您删除了某个证书授权中心 (CA) 证书,则浏览器不会再信任该 CA 颁发的任何证书。</translation>
 <translation id="2653659639078652383">提交</translation>
 <translation id="265390580714150011">字段值</translation>
-<translation id="2654286334048437383">导出书签</translation>
 <translation id="2655386581175833247">用户证书:</translation>
 <translation id="2660779039299703961">事件</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1258,7 +1238,6 @@
 <translation id="2908162660801918428">按目录添加媒体库</translation>
 <translation id="2908789530129661844">缩小屏幕</translation>
 <translation id="2910318910161511225">请连接到网络,然后重试</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> 想要使用您的麦克风。</translation>
 <translation id="2913331724188855103">允许网站保存和读取 Cookie 数据(推荐)</translation>
 <translation id="2916073183900451334">在网页上按 Tab 可突出显示链接以及表单字段</translation>
 <translation id="2916745397441987255">搜索扩展程序</translation>
@@ -1411,7 +1390,6 @@
 <translation id="3141318088920353606">正在听取…</translation>
 <translation id="3141917231319778873">“<ph name="DEVICE_NAME" />”不支持指定的请求。</translation>
 <translation id="3144126448740580210">完成</translation>
-<translation id="3144135466825225871">未能替换 CRX 文件。请检查该文件是否正在使用。</translation>
 <translation id="3144647712221361880">以其他身份打开链接</translation>
 <translation id="3149510190863420837">Chrome 应用</translation>
 <translation id="3150927491400159470">硬性重新加载</translation>
@@ -1521,7 +1499,6 @@
 <translation id="3309747692199697901">在所有网站上始终运行</translation>
 <translation id="3312424061798279731">已启用的语言</translation>
 <translation id="3312903956926554846">安装到桌面</translation>
-<translation id="3313473140726597081">您的启动页已改为 <ph name="URL" />。要停用会更改您的启动页的扩展程序,请点击“恢复”。</translation>
 <translation id="3313590242757056087">要设置受监管用户可以浏览哪些网站,您可以转到 <ph name="MANAGEMENT_URL" /> 配置限制和设置。
 如果您不更改默认设置,<ph name="USER_DISPLAY_NAME" />将可以浏览网络上的所有网站。</translation>
 <translation id="3313622045786997898">证书签名值</translation>
@@ -1535,7 +1512,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">应用信息</translation>
 <translation id="3335947283844343239">重新打开关闭的标签页</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> 因过期而遭到阻止。</translation>
 <translation id="3340978935015468852">设置</translation>
 <translation id="3341703758641437857">允许访问文件网址</translation>
 <translation id="3342361181740736773">“<ph name="TRIGGERING_EXTENSION_NAME" />”想要移除该扩展程序。</translation>
@@ -1570,7 +1546,6 @@
 <translation id="3386219708421216619">已添加书签</translation>
 <translation id="3389312115541230716">右键点击任务栏中的 <ph name="SMALL_PRODUCT_LOGO" /> 图标</translation>
 <translation id="3391716558283801616">标签页 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> 想要使用您的摄像头和麦克风。</translation>
 <translation id="3396331542604645348">所选打印机无法使用或未正确安装。请检查打印机,或尝试选择其他打印机。</translation>
 <translation id="3399432415385675819">通知将被停用</translation>
 <translation id="340282674066624">已下载 <ph name="DOWNLOAD_RECEIVED" />,还需 <ph name="TIME_LEFT" /></translation>
@@ -1682,10 +1657,8 @@
 <translation id="3550915441744863158">Chrome会自动更新,因此您使用的始终都是最新版本</translation>
 <translation id="3551320343578183772">关闭标签页</translation>
 <translation id="3552780134252864554">退出时清除</translation>
-<translation id="355298399003313926"><ph name="URL" /> 想对无障碍事件做出响应。</translation>
 <translation id="3555812735919707620">卸载扩展程序</translation>
 <translation id="3556000484321257665">您的搜索引擎已改为 <ph name="URL" />。</translation>
-<translation id="3561217442734750519">私有密钥的输入值必须是有效的路径。</translation>
 <translation id="3563432852173030730">无法下载自助服务终端应用。</translation>
 <translation id="3564334271939054422">您要使用的 Wi-Fi 网络(“<ph name="NETWORK_ID" />”)可能需要您访问其登录页面。</translation>
 <translation id="3564708465992574908">缩放级别</translation>
@@ -1707,7 +1680,6 @@
 <translation id="3593965109698325041">证书名称约束</translation>
 <translation id="3596235046596950091">启用云服务</translation>
 <translation id="3599863153486145794">清除所有登录过的设备上的历史记录。您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录。</translation>
-<translation id="3600456501114769456">您的管理员禁止他人访问您设备上的本地文件。</translation>
 <translation id="3600792891314830896">将播放声音的网站静音</translation>
 <translation id="3603177256297531067">无法翻译此网页</translation>
 <translation id="3603533104205588786">点击星形图标即可为网页添加书签</translation>
@@ -1732,7 +1704,6 @@
 <translation id="3625258641415618104">已停用屏幕截图</translation>
 <translation id="3625870480639975468">重置缩放</translation>
 <translation id="3626281679859535460">亮度</translation>
-<translation id="3627052133907344175">扩展程序要求“<ph name="IMPORT_NAME" />”的版本不低于 <ph name="IMPORT_VERSION" />,但目前安装的版本只是 <ph name="INSTALLED_VERSION" />。</translation>
 <translation id="3627320433825461852">还剩不到 1 分钟</translation>
 <translation id="3627588569887975815">在隐身窗口中打开链接(&amp;G)</translation>
 <translation id="3627671146180677314">Netscape 证书续订时间</translation>
@@ -1762,7 +1733,6 @@
 <translation id="3668570675727296296">语言设置</translation>
 <translation id="3668823961463113931">处理程序</translation>
 <translation id="3670229581627177274">开启蓝牙</translation>
-<translation id="3672159315667503033"><ph name="URL" /> 想在您的本地计算机上永久保存大量数据。</translation>
 <translation id="3672681487849735243">检测到出厂错误</translation>
 <translation id="367645871420407123">如果您要将根密码设为默认的测试图片值,则将此字段留空</translation>
 <translation id="3678156199662914018">扩展程序:<ph name="EXTENSION_NAME" /></translation>
@@ -1840,11 +1810,9 @@
 <translation id="3786301125658655746">您处于离线状态</translation>
 <translation id="3788401245189148511">该扩展程序想要:</translation>
 <translation id="3789841737615482174">安装</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> 只能在桌面计算机上运行。</translation>
 <translation id="379082410132524484">您的卡片已过期</translation>
 <translation id="3792890930871100565">断开打印机连接</translation>
 <translation id="379422718204375917">使用 Smart Lock 登录您的帐号</translation>
-<translation id="3794595850995182458">退出页面</translation>
 <translation id="3796648294839530037">收藏的网络:</translation>
 <translation id="3797900183766075808">使用<ph name="SEARCH_ENGINE" />搜索“<ph name="SEARCH_TERMS" />”(&amp;S)</translation>
 <translation id="3798325802885154040">可让您启用/停用点按即点击功能</translation>
@@ -1974,7 +1942,6 @@
 <translation id="3979748722126423326">启用<ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">输入的保存类型无效。</translation>
 <translation id="3983586614702900908">来自未知供应商的设备</translation>
-<translation id="3984413272403535372">为扩展程序签名时出错。</translation>
 <translation id="3987938432087324095">抱歉,没听清。</translation>
 <translation id="3988996860813292272">选择时区</translation>
 <translation id="3989635538409502728">退出</translation>
@@ -2030,7 +1997,6 @@
 <translation id="4087470595660267445">在 Chromebook 上安装从 Google Play 下载的应用和游戏。&lt;a target="_blank" href="<ph name="URL" />"&gt;了解详情&lt;/a&gt;</translation>
 <translation id="4088095054444612037">代表群组接受</translation>
 <translation id="4090103403438682346">允许已通过验证的访问凭证</translation>
-<translation id="4090404313667273475">需要安装 <ph name="PLUGIN_NAME" /> 才能显示此页面上的某些元素。</translation>
 <translation id="4090535558450035482">(此扩展程序由政策控制,无法移除。)</translation>
 <translation id="4091434297613116013">张纸</translation>
 <translation id="4093955363990068916">本地文件:</translation>
@@ -2364,7 +2330,6 @@
 <translation id="4714531393479055912">“<ph name="PRODUCT_NAME" />”现在可同步您的密码。</translation>
 <translation id="4715553623069266137">非常短(0.8 秒)</translation>
 <translation id="4716483597559580346">执行 Powerwash 操作以提高安全性</translation>
-<translation id="471800408830181311">无法输出私有密钥。</translation>
 <translation id="4720113199587244118">添加设备</translation>
 <translation id="4720185134442950733">移动数据网络</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" />正在共享您的屏幕。</translation>
@@ -2501,7 +2466,6 @@
 <translation id="4917385247580444890">强</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> 希望与“<ph name="EXTENSION_NAME" />”扩展程序通信</translation>
 <translation id="4918086044614829423">接受</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> 想要使用您的摄像头。</translation>
 <translation id="4920887663447894854">系统已阻止以下网站跟踪您在此网页上的位置:</translation>
 <translation id="492299503953721473">移除 Android 应用</translation>
 <translation id="4923279099980110923">我愿意提供帮助</translation>
@@ -2542,7 +2506,6 @@
 <translation id="4980805016576257426">此扩展程序包含恶意软件。</translation>
 <translation id="498294082491145744">更改您用于控制以下内容的设置:网站对 Cookie、JavaScript、插件、地理位置信息、麦克风、摄像头等功能的使用权限。</translation>
 <translation id="4988526792673242964">页码</translation>
-<translation id="4988792151665380515">无法导出公共密钥。</translation>
 <translation id="49896407730300355">逆时针旋转(&amp;O)</translation>
 <translation id="4989966318180235467">检查背景页(&amp;B)</translation>
 <translation id="4990343175649730969">下载 Chrome 清理工具</translation>
@@ -2570,7 +2533,6 @@
 <translation id="5026874946691314267">不再显示此通知</translation>
 <translation id="5027550639139316293">电子邮件证书</translation>
 <translation id="5027562294707732951">添加扩展程序</translation>
-<translation id="5028012205542821824">安装未启动。</translation>
 <translation id="5029568752722684782">清除副本</translation>
 <translation id="5030338702439866405">颁发者</translation>
 <translation id="5036662165765606524">禁止任何网站自动下载多个文件</translation>
@@ -2606,7 +2568,6 @@
 <translation id="509429900233858213">出现错误。</translation>
 <translation id="5094721898978802975">与协作的本机应用通信</translation>
 <translation id="5097002363526479830">无法连接到网络“<ph name="NAME" />”:<ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">找不到指向待打包目录的绝对路径。</translation>
 <translation id="5099354524039520280">向上</translation>
 <translation id="5100114659116077956">您需要更新自己的 Chromebox,以便获得最新功能。</translation>
 <translation id="5101042277149003567">打开所有书签</translation>
@@ -2655,7 +2616,6 @@
 <translation id="5170568018924773124">在文件夹中显示</translation>
 <translation id="5171045022955879922">搜索或输入网址</translation>
 <translation id="5171343362375269016">已交换的内存</translation>
-<translation id="5175870427301879686"><ph name="URL" /> 想在您的本地计算机上永久保存数据。</translation>
 <translation id="5177479852722101802">仍然禁止访问摄像头和麦克风</translation>
 <translation id="5177526793333269655">缩略图视图</translation>
 <translation id="5177549709747445269">您正在使用移动数据网络</translation>
@@ -2729,7 +2689,6 @@
 <translation id="529175790091471945">将此设备格式化</translation>
 <translation id="5293170712604732402">将设置还原为原始默认设置</translation>
 <translation id="5298219193514155779">主题背景创建者:</translation>
-<translation id="5298363578196989456">“<ph name="IMPORT_NAME" />”扩展程序不是共享模块,因此无法导入。</translation>
 <translation id="5299109548848736476">不跟踪</translation>
 <translation id="5299682071747318445">所有数据都已使用您的同步密码加密</translation>
 <translation id="5300589172476337783">显示</translation>
@@ -2757,7 +2716,6 @@
 <translation id="5331425616433531170">“<ph name="CHROME_EXTENSION_NAME" />”希望与以下所选设备配对:</translation>
 <translation id="5332624210073556029">时区:</translation>
 <translation id="5334142896108694079">脚本缓存</translation>
-<translation id="533433379391851622">正确版本应为“<ph name="EXPECTED_VERSION" />”,但实际版本为“<ph name="NEW_ID" />”。</translation>
 <translation id="5334844597069022743">查看源代码</translation>
 <translation id="5335458522276292100">正在将 <ph name="FILE_COUNT" />备份到 <ph name="BEGIN_LINK" />Google 云端硬盘<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">由第三方安装。</translation>
@@ -2795,7 +2753,6 @@
 <translation id="5390100381392048184">允许网站播放声音</translation>
 <translation id="5390284375844109566">索引型数据库</translation>
 <translation id="5390743329570580756">为何发送</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> 上的 <ph name="PEPPER_PLUGIN_NAME" /> 想要访问您的计算机。</translation>
 <translation id="5397794290049113714">您</translation>
 <translation id="5398572795982417028">页面引用超出范围,上限为 <ph name="MAXIMUM_PAGE" /></translation>
 <translation id="5398772614898833570">广告已被拦截</translation>
@@ -2857,7 +2814,6 @@
 <translation id="5485754497697573575">还原所有标签页</translation>
 <translation id="5486261815000869482">确认密码</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" />正在与<ph name="TAB_NAME" />共享您的屏幕。</translation>
-<translation id="5486326529110362464">请输入私有密钥值。</translation>
 <translation id="5486561344817861625">模拟浏览器重启</translation>
 <translation id="5487521232677179737">清除数据</translation>
 <translation id="5488093641312826914">已复制“<ph name="COPIED_ITEM_NAME" />”</translation>
@@ -2940,7 +2896,6 @@
 <translation id="5600706100022181951">下载更新需要使用 <ph name="UPDATE_SIZE_MB" /> MB 的移动数据流量。要继续吗?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">其他搜索引擎</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> 上的 <ph name="PEPPER_PLUGIN_NAME" /> 想要访问您的设备。</translation>
 <translation id="5608580678041221894">按以下键可调整或移动剪裁区域</translation>
 <translation id="5609231933459083978">该应用似乎无效。</translation>
 <translation id="5610038042047936818">切换到相机模式</translation>
@@ -3183,7 +3138,6 @@
 <translation id="5990386583461751448">已翻译</translation>
 <translation id="5991049340509704927">放大</translation>
 <translation id="5993332328670040093">系统将不再衡量您的数据使用情况。</translation>
-<translation id="6003177993629630467"><ph name="PRODUCT_NAME" />可能无法进行自动更新。</translation>
 <translation id="600424552813877586">无效的应用。</translation>
 <translation id="6005695835120147974">媒体路由器</translation>
 <translation id="6006484371116297560">经典</translation>
@@ -3208,6 +3162,7 @@
 <translation id="604001903249547235">云端备份</translation>
 <translation id="6040143037577758943">关闭</translation>
 <translation id="6040852767465482106">匿名身份</translation>
+<translation id="6041155700700864984">退出全屏</translation>
 <translation id="604124094241169006">自动</translation>
 <translation id="6042169520002885235">选择打印机制造商和型号</translation>
 <translation id="6042308850641462728">更多</translation>
@@ -3224,7 +3179,6 @@
 <translation id="6056710589053485679">正常重新加载</translation>
 <translation id="6059652578941944813">证书层次结构</translation>
 <translation id="6059925163896151826">USB 设备</translation>
-<translation id="6060435378291459521"><ph name="PLUGIN_NAME" />崩溃了!</translation>
 <translation id="6064217302520318294">屏幕锁定</translation>
 <translation id="6065289257230303064">证书主题背景目录属性</translation>
 <translation id="6068338049763724728">启用远程注册</translation>
@@ -3333,7 +3287,6 @@
 <translation id="6237816943013845465">可让您调整屏幕分辨率</translation>
 <translation id="6238923052227198598">始终将最新记事显示在锁定屏幕上</translation>
 <translation id="6239558157302047471">重新加载框架(&amp;F)</translation>
-<translation id="624022915548992686">退出网页</translation>
 <translation id="6241530762627360640">获取与您的系统配对的蓝牙设备的相关信息,以及发现附近的蓝牙设备。</translation>
 <translation id="6243774244933267674">服务器不可用</translation>
 <translation id="6246413617632217567">无法导入该受监管用户。请检查您的硬盘空间和权限,然后重试。</translation>
@@ -3382,13 +3335,11 @@
 <translation id="6312403991423642364">未知网络错误</translation>
 <translation id="6313641880021325787">退出虚拟实境</translation>
 <translation id="6314819609899340042">已在此<ph name="IDS_SHORT_PRODUCT_NAME" />设备上成功启用调试功能。</translation>
-<translation id="6315343732431721770">您的启动页已更改,添加了 <ph name="URL" />。要停用会更改您的启动页的扩展程序,请点击“恢复”。</translation>
 <translation id="6315493146179903667">前置全部窗口</translation>
 <translation id="6316806695097060329">这台<ph name="SHORT_PRODUCT_NAME" />设备经过精心设计,可为您提供最佳上网体验。</translation>
 <translation id="6317318380444133405">已不再受支持。</translation>
 <translation id="6317369057005134371">等待应用窗口…</translation>
 <translation id="6318407754858604988">已开始下载</translation>
-<translation id="6322279351188361895">无法读取私有密钥。</translation>
 <translation id="6325191661371220117">停用自动启动</translation>
 <translation id="6326175484149238433">从Chrome中移除</translation>
 <translation id="6326855256003666642">正在使用相应扩展程序的活动数</translation>
@@ -3397,7 +3348,6 @@
 <translation id="6333049849394141510">选择要同步的数据类型</translation>
 <translation id="6333064448949140209">文件将发送到 Google 进行调试</translation>
 <translation id="6333834492048057036">将光标移到地址栏以进行搜索</translation>
-<translation id="6336907568130557310">所有能查看此导出文件的人员都能看到您的密码。因此,请勿与任何人共享该文件;待导入这个文件后,请将其删除。</translation>
 <translation id="6339668969738228384">为 <ph name="USER_EMAIL_ADDRESS" /> 创建新的个人资料</translation>
 <translation id="6340017061976355871">无法与此服务器建立连接。请检查您的网络连接,然后重试。如果问题仍然存在,请重新启动您的 Chromebook。</translation>
 <translation id="6340071272923955280">互联网打印协议 (IPPS)</translation>
@@ -3426,7 +3376,6 @@
 <translation id="6385543213911723544">网站可以保存和读取 Cookie 数据</translation>
 <translation id="6388771388956873507">找到您设备上的指纹传感器并用手指触摸它</translation>
 <translation id="6390799748543157332">当您关闭以访客身份打开的所有窗口后,您在此窗口中浏览的网页将不会显示在浏览器历史记录中,也不会在计算机上留下其他痕迹(例如Cookie)。不过,您下载的所有文件均会保留下来。</translation>
-<translation id="6391538222494443604">必须存在输入目录。</translation>
 <translation id="6395423953133416962">发送<ph name="BEGIN_LINK1" />系统信息<ph name="END_LINK1" />和<ph name="BEGIN_LINK2" />指标<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">停止讲话</translation>
 <translation id="6397592254427394018">在隐身窗口中打开所有书签(&amp;I)</translation>
@@ -3483,7 +3432,6 @@
 <translation id="6458308652667395253">管理 JavaScript 拦截…</translation>
 <translation id="6459488832681039634">使用所选内容查找</translation>
 <translation id="6460601847208524483">查找下一个</translation>
-<translation id="6462080265650314920">应用必须以“<ph name="CONTENT_TYPE" />”内容类型提供。</translation>
 <translation id="6462082050341971451">您还在吗?</translation>
 <translation id="6463795194797719782">修改(&amp;E)</translation>
 <translation id="6466988389784393586">打开所有书签(&amp;O)</translation>
@@ -3613,7 +3561,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">您希望 Google 将此网页的内容从<ph name="SOURCE_LANGUAGE" />翻译为<ph name="TARGET_LANGUAGE" />吗?</translation>
 <translation id="6675665718701918026">已连接指针设备</translation>
-<translation id="6677037229676347494">正确 ID 应为“<ph name="EXPECTED_ID" />”,但实际 ID 为“<ph name="NEW_ID" />”。</translation>
 <translation id="6678717876183468697">查询网址</translation>
 <translation id="6680028776254050810">切换用户</translation>
 <translation id="6680442031740878064">可用空间:<ph name="AVAILABLE_SPACE" /></translation>
@@ -3753,8 +3700,6 @@
 <translation id="6903534926908201625">您可以随时在<ph name="BEGIN_LINK" />设置<ph name="END_LINK" />中自定义 Google 可以收集哪些信息。</translation>
 <translation id="6904344821472985372">撤消文件访问权限</translation>
 <translation id="6904655473976120856">按“应用”按钮即可退出</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> 想要共享您的屏幕。</translation>
-<translation id="6909461304779452601">无法添加来自此网站的应用、扩展程序和用户脚本。</translation>
 <translation id="6910211073230771657">已删除</translation>
 <translation id="691024665142758461">下载多个文件</translation>
 <translation id="6911324888870229398">网络连接中断了。请检查您的网络连接,或尝试连接到其他 Wi-Fi 网络。</translation>
@@ -4084,7 +4029,6 @@
 <translation id="747114903913869239">错误:无法对扩展程序进行解码</translation>
 <translation id="7473891865547856676">不,谢谢</translation>
 <translation id="747459581954555080">全部恢复</translation>
-<translation id="7475034671245341386"><ph name="PLUGIN_NAME" />遇到了错误。</translation>
 <translation id="7475671414023905704">Netscape 忘了密码网址</translation>
 <translation id="7476454130948140105">电量太低 (<ph name="BATTERY_PERCENT" />%),无法更新</translation>
 <translation id="7477347901712410606">如果您忘记了密码,请通过 <ph name="BEGIN_LINK" />Google 信息中心<ph name="END_LINK" />停止同步并重置。</translation>
@@ -4121,7 +4065,6 @@
 <translation id="7507930499305566459">状态响应程序证书</translation>
 <translation id="7508545000531937079">幻灯片演示</translation>
 <translation id="7513029293694390567">使用存储的凭据自动登录网站。停用该功能后,系统会在您每次登录网站时要求您进行确认。</translation>
-<translation id="7515670329462166359"><ph name="URL" /> 要求唯一标识您的设备,以播放受保护的内容。</translation>
 <translation id="7517569744831774757">将设置恢复为原始默认设置。</translation>
 <translation id="7517786267097410259">设置密码 -</translation>
 <translation id="7518150891539970662">WebRTC日志(<ph name="WEBRTC_LOG_COUNT" />个)</translation>
@@ -4149,7 +4092,6 @@
 <translation id="7563991800558061108">要从此错误中恢复,您需要从登录屏幕登录自己的Google帐号。然后,您可以退出Google帐号,并重新尝试创建受监管用户。</translation>
 <translation id="756445078718366910">打开浏览器窗口</translation>
 <translation id="7564847347806291057">结束进程</translation>
-<translation id="7565291891798266313">您的搜索引擎已改为 <ph name="URL" />。要停用会更改您的搜索引擎的扩展程序,请点击“恢复”。</translation>
 <translation id="7566118625369982896">管理 Play 应用链接</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">已清除 Chrome 数据</translation>
@@ -4158,7 +4100,6 @@
 <translation id="7573172247376861652">电池充电</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">自动分页</translation>
-<translation id="7577815336900970562">使用 Wi-Fi 网络或移动网络确定位置</translation>
 <translation id="7579149537961810247">将多个网站静音</translation>
 <translation id="7580671184200851182">在所有音响设备上播放相同的音频(单声道音频)</translation>
 <translation id="7581462281756524039">清理工具</translation>
@@ -4265,6 +4206,7 @@
 <translation id="7773726648746946405">会话存储</translation>
 <translation id="7781335840981796660">所有用户帐号和本地数据都将会移除。</translation>
 <translation id="7782102568078991263">Google 无法提供其他任何建议</translation>
+<translation id="778330624322499012">无法加载 <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">您计算机的安全设置阻止了此文件。</translation>
 <translation id="7786207843293321886">退出访客模式</translation>
 <translation id="7786889348652477777">重新加载应用(&amp;R)</translation>
@@ -4427,7 +4369,6 @@
 <translation id="8001504501378762252">某个网站可能盗取了您的密码</translation>
 <translation id="8004582292198964060">浏览器</translation>
 <translation id="8008356846765065031">网络已断开,请检查您的互联网连接是否正常。</translation>
-<translation id="8008765610824028412">无法加载<ph name="PLUGIN_NAME" />。</translation>
 <translation id="8008818777654712271">自动向 Google 发送某些系统信息和网页内容,以帮助检测危险应用和网站</translation>
 <translation id="8012382203418782830">此网页内容已经过翻译。</translation>
 <translation id="8014154204619229810">更新程序正在运行,请稍后刷新并再次查看。</translation>
@@ -4544,7 +4485,6 @@
 <translation id="8191230140820435481">管理您的应用、扩展程序和主题背景</translation>
 <translation id="8191453843330043793">V8 代理解析工具</translation>
 <translation id="8195027750202970175">占用的存储空间</translation>
-<translation id="8195739004487400241">您的主页已改为 <ph name="URL" />。要停用会更改您的主页的扩展程序,请点击“恢复”。</translation>
 <translation id="8199300056570174101">网络(服务)和设备属性</translation>
 <translation id="8200772114523450471">继续</translation>
 <translation id="8202160505685531999">请重新输入密码,以便更新您的<ph name="DEVICE_TYPE" />资料。</translation>
@@ -4588,7 +4528,6 @@
 <translation id="8261378640211443080">该扩展程序未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />中,并可能是在您不知情的情况下添加的。</translation>
 <translation id="8261387128019234107">为<ph name="PROFILE_NAME" />添加帐号</translation>
 <translation id="8261506727792406068">删除</translation>
-<translation id="826246685091802258">此版本中未实现 <ph name="BAD_FLAG" />。</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已隐藏鼠标指针。</translation>
 <translation id="8264718194193514834">“<ph name="EXTENSION_NAME" />”触发了全屏模式。</translation>
 <translation id="8270242299912238708">PDF 文档</translation>
@@ -4689,6 +4628,7 @@
 <translation id="8454288007744638700">或者,选择一个新网络:</translation>
 <translation id="845627346958584683">失效时间</translation>
 <translation id="8456681095658380701">名称无效</translation>
+<translation id="8457451314607652708">导入书签</translation>
 <translation id="8460336040822756677">如果您关闭了 Smart Lock(<ph name="DEVICE_TYPE" /> 版),将不能使用配对手机为 Chrome 设备解锁。在这种情况下,您需要输入密码才能解锁。</translation>
 <translation id="8461329675984532579">家用移动网络提供商名称</translation>
 <translation id="84613761564611563">正在显示请求的网络配置界面,请稍候…</translation>
@@ -4720,7 +4660,6 @@
 <translation id="850875081535031620">未发现任何有害软件</translation>
 <translation id="8512476990829870887">结束进程</translation>
 <translation id="851263357009351303">始终允许 <ph name="HOST" /> 显示图片</translation>
-<translation id="8513191386157529469">“<ph name="CLIENT_NAME" />”正在调试此浏览器。</translation>
 <translation id="8521475323816527629">快速访问您的应用</translation>
 <translation id="8523493869875972733">保留更改</translation>
 <translation id="8523849605371521713">按政策添加</translation>
@@ -4758,7 +4697,7 @@
 <translation id="8581809080475256101">点按该按钮可前进,点按上下文菜单可查看历史记录</translation>
 <translation id="8584280235376696778">在新标签页中打开视频(&amp;O)</translation>
 <translation id="8588866096426746242">显示个人资料统计信息</translation>
-<translation id="8589652987924574405">Chrome 同步功能可将您的书签、历史记录、密码及其他设置全都同步到您的 Google 帐号中,以便您在自己的任意设备上使用。日后若有需要,您随时可在“设置”中更改相关选项。</translation>
+<translation id="8589652987924574405">Chrome 同步功能可将您的书签、历史记录、密码及其他设置同步到您的 Google 帐号中,以便您在自己的任意设备上使用。日后您随时可在“设置”中更改此项设置。</translation>
 <translation id="8590375307970699841">设置自动更新</translation>
 <translation id="8594908476761052472">拍摄视频</translation>
 <translation id="8596540852772265699">自定义文件</translation>
@@ -4776,7 +4715,6 @@
 <translation id="8620765578342452535">配置网络连接</translation>
 <translation id="8620790565535071193">扫描失败</translation>
 <translation id="8622877356447980900">要翻译此页面吗?</translation>
-<translation id="8623004009673949077">具有“kiosk_only”清单属性的应用必须在 Chrome 操作系统自助服务终端模式下安装。</translation>
 <translation id="8624205858755890468">允许智能助理向您显示相关的信息、应用和操作。</translation>
 <translation id="862542460444371744">扩展程序(&amp;E)</translation>
 <translation id="8627151598708688654">选择来源</translation>
@@ -4925,7 +4863,6 @@
 <translation id="882204272221080310">更新固件以提高安全性。</translation>
 <translation id="8823514049557262177">复制链接文字(&amp;X)</translation>
 <translation id="8824701697284169214">添加网页(&amp;G)...</translation>
-<translation id="8827850355924932817">使用 Wi-Fi 网络确定位置</translation>
 <translation id="8828933418460119530">DNS 名称</translation>
 <translation id="8830796635868321089">无法使用当前代理设置来检查更新,请调整您的<ph name="PROXY_SETTINGS_LINK_START" />代理设置<ph name="PROXY_SETTINGS_LINK_END" />。</translation>
 <translation id="8834039744648160717">网络配置由 <ph name="USER_EMAIL" /> 控制。</translation>
@@ -4957,9 +4894,7 @@
 <translation id="8879284080359814990">显示为标签页(&amp;S)</translation>
 <translation id="8884961208881553398">添加新服务</translation>
 <translation id="8885197664446363138">无法开启 Smart Lock</translation>
-<translation id="8885905466771744233">指定扩展程序的私有密钥已存在。请重复使用该密钥,或者先删除它。</translation>
 <translation id="8888432776533519951">颜色:</translation>
-<translation id="8892992092192084762">已安装主题背景“<ph name="THEME_NAME" />”</translation>
 <translation id="8893928184421379330">抱歉,系统无法识别设备“<ph name="DEVICE_LABEL" />”。</translation>
 <translation id="8895454554629927345">书签列表</translation>
 <translation id="88986195241502842">向下翻页</translation>
@@ -4974,7 +4909,6 @@
 <translation id="8908902564709148335">警告:您已在此计算机上启用“--scripts-require-action”,这会限制此扩展程序的功能。不过,其他设备可能不支持或未启用此项。在这些设备上,此扩展程序还可以:</translation>
 <translation id="8910146161325739742">共享屏幕</translation>
 <translation id="8910222113987937043">对您的书签、历史记录、密码及其他设置所做的更改将不再同步到您的 Google 帐号。但是,您的现有数据依然会存储在您的 Google 帐号中,而且您可以通过 <ph name="BEGIN_LINK" />Google 信息中心<ph name="END_LINK" />管理这些数据。</translation>
-<translation id="8911079125461595075">Google 已将“<ph name="EXTENSION_NAME" />”标记为恶意扩展程序并阻止安装。</translation>
 <translation id="8912793549644936705">拉伸</translation>
 <translation id="8915370057835397490">正在加载建议</translation>
 <translation id="8916476537757519021">隐身辅助框架:<ph name="SUBFRAME_SITE" /></translation>
@@ -5080,7 +5014,6 @@
 <translation id="9074739597929991885">蓝牙</translation>
 <translation id="9074836595010225693">USB鼠标已连接</translation>
 <translation id="9076523132036239772">抱歉,您的电子邮件地址或密码无法进行验证。请先尝试连接到网络。</translation>
-<translation id="907841381057066561">无法在打包时创建临时 zip 文件</translation>
 <translation id="9084064520949870008">在窗口中打开</translation>
 <translation id="9088234649737575428">系统已根据企业政策屏蔽 <ph name="PLUGIN_NAME" /></translation>
 <translation id="9088917181875854783">请确认“<ph name="DEVICE_NAME" />”上显示有此密钥:</translation>
@@ -5171,11 +5104,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">请输入密码</translation>
 <translation id="939736085109172342">新建文件夹</translation>
-<translation id="941543339607623937">私有密钥无效。</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> 正在共享 Chrome 标签页和音频。</translation>
 <translation id="942954117721265519">此目录中没有图片。</translation>
 <translation id="945522503751344254">发送反馈</translation>
-<translation id="951981865514037445"><ph name="URL" /> 想要使用您的设备位置信息。</translation>
 <translation id="952992212772159698">未激活</translation>
 <translation id="9580706199804957">无法连接到 Google 服务</translation>
 <translation id="958515377357646513">触摸即可前进。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 64a18c86..c7a383a 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -27,7 +27,6 @@
 <translation id="1038168778161626396">只有 Encipher</translation>
 <translation id="1039337018183941703">檔案無效或毀損</translation>
 <translation id="1042174272890264476">你的電腦也內建了 <ph name="SHORT_PRODUCT_NAME" /> 的 RLZ 程式庫。RLZ 可指定非重複、非個人的可辨識標記,以評估特定宣傳廣告活動所提升的搜尋數與 <ph name="SHORT_PRODUCT_NAME" /> 使用量。這些標籤有時也會顯示在 <ph name="PRODUCT_NAME" /> 的 Google 搜尋查詢中。</translation>
-<translation id="1042574203789536285"><ph name="URL" /> 要求在你的裝置上永久儲存大量資料。</translation>
 <translation id="1046059554679513793">糟糕,已經有人使用這個名稱!</translation>
 <translation id="1047431265488717055">複製連結文字(&amp;X)</translation>
 <translation id="1047726139967079566">把此頁加入書籤...</translation>
@@ -120,7 +119,6 @@
 <translation id="1177113976278858832">要還原預設搜尋引擎嗎?</translation>
 <translation id="1177863135347784049">自訂</translation>
 <translation id="1178581264944972037">暫停</translation>
-<translation id="1179803038870941185"><ph name="URL" /> 想要取得 MIDI 裝置的完整控制。</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1183237619868651138">無法在本機快取中安裝 <ph name="EXTERNAL_CRX_FILE" />。</translation>
 <translation id="1185924365081634987">你也可以嘗試<ph name="GUEST_SIGNIN_LINK_START" />以訪客身分瀏覽<ph name="GUEST_SIGNIN_LINK_END" />,藉此修復網路問題。</translation>
@@ -132,7 +130,6 @@
 <translation id="11901918071949011">{NUM_FILES,plural, =1{存取 1 個儲存在您電腦上的檔案}other{存取 # 個儲存在您電腦上的檔案}}</translation>
 <translation id="1195076408729068893">如要啟動 Smart Lock,請輸入你的密碼。下次即可使用手機為你的 <ph name="DEVICE_TYPE" /> 解鎖。</translation>
 <translation id="1195447618553298278">未知的錯誤。</translation>
-<translation id="1196338895211115272">匯出私密金鑰失敗。</translation>
 <translation id="119738088725604856">螢幕擷取畫面視窗</translation>
 <translation id="1197979282329025000">擷取 <ph name="PRINTER_NAME" /> 的印表機功能狀態時發生錯誤,無法向 <ph name="CLOUD_PRINT_NAME" /> 註冊該印表機。</translation>
 <translation id="1198271701881992799">開始使用</translation>
@@ -160,7 +157,6 @@
 <translation id="1223853788495130632">管理員為這項設定推薦特定的值。</translation>
 <translation id="1225177025209879837">正在處理要求...</translation>
 <translation id="1225211345201532184">檔案櫃項目 5</translation>
-<translation id="1225404570112441414">將這個網站加入檔案櫃以便日後隨時使用。</translation>
 <translation id="1227507814927581609">驗證在連線至「<ph name="DEVICE_NAME" />」時失敗。</translation>
 <translation id="1230807973377071856">系統選單</translation>
 <translation id="1232569758102978740">未命名</translation>
@@ -205,7 +201,6 @@
 <translation id="1303101771013849280">HTML 格式的書籤檔案</translation>
 <translation id="1303671224831497365">找不到藍牙裝置</translation>
 <translation id="1306606229401759371">變更設定</translation>
-<translation id="1307398858972670978">在任何裝置上皆可透過 <ph name="SAVED_PASSWORDS_LINK" /> 存取你的密碼</translation>
 <translation id="1307559529304613120">糟糕!系統無法為這個裝置儲存長期 API 存取符記。</translation>
 <translation id="1313405956111467313">自動 Proxy 設定</translation>
 <translation id="131364520783682672">Caps Lock 鍵</translation>
@@ -257,9 +252,7 @@
 <translation id="1383876407941801731">搜尋</translation>
 <translation id="1386387014181100145">你好!</translation>
 <translation id="138784436342154190">要還原預設起始網頁嗎?</translation>
-<translation id="1389297115360905376">只能從 <ph name="CHROME_WEB_STORE" /> 新增這個套件。</translation>
 <translation id="1390548061267426325">在一般分頁中開啟</translation>
-<translation id="1391807639023934267">網頁載入速度更快。</translation>
 <translation id="1393283411312835250">太陽和雲</translation>
 <translation id="1395262318152388157">播放進度控制滑桿</translation>
 <translation id="1395730723686586365">更新程式已啟動</translation>
@@ -280,7 +273,6 @@
 <translation id="1414648216875402825">你即將更新為不穩定的 <ph name="PRODUCT_NAME" />版本,其中含有仍在開發中的功能。系統可能會發生當機情況和無法預期的錯誤,執行時請特別注意。</translation>
 <translation id="1415990189994829608">這個工作階段類型不允許使用 <ph name="EXTENSION_NAME" /> (擴充功能 ID 為「<ph name="EXTENSION_ID" />」)。</translation>
 <translation id="1416836038590872660">EAP-MD5</translation>
-<translation id="1420684932347524586">哎呀!產生隨機 RSA 私密金鑰失敗。</translation>
 <translation id="1420834118113404499">媒體授權</translation>
 <translation id="1420920093772172268">如要允許配對,請<ph name="TURN_ON_BLUETOOTH_LINK" /></translation>
 <translation id="1426410128494586442">是</translation>
@@ -310,8 +302,6 @@
 <translation id="1465176863081977902">複製音訊位址(&amp;O)</translation>
 <translation id="1465827627707997754">披薩切片</translation>
 <translation id="1467432559032391204">向左</translation>
-<translation id="1467999917853307373"><ph name="URL" /> 要求在你的裝置上永久儲存資料。</translation>
-<translation id="1470719357688513792">新的 Cookie 設定會在重新載入網頁後生效。</translation>
 <translation id="1470811252759861213">如要在所有電腦上使用您的擴充功能,請<ph name="SIGN_IN_LINK" />。</translation>
 <translation id="1474339897586437869">您的 Google 雲端硬碟的可用空間不足,因此無法上傳「<ph name="FILENAME" />」。</translation>
 <translation id="1475502736924165259">您儲存的這些憑證不屬於任何其他類別</translation>
@@ -367,6 +357,7 @@
 <translation id="15373452373711364">大型滑鼠游標</translation>
 <translation id="1543284117603151572">從 Edge 匯入的書籤</translation>
 <translation id="1545177026077493356">自動 Kiosk 模式</translation>
+<translation id="1545775234664667895">已安裝「<ph name="THEME_NAME" />」主題</translation>
 <translation id="1545786162090505744">網址 (以 %s 取代查詢)</translation>
 <translation id="1546280085599573572">這個擴充功能已變更您點選 [首頁] 按鈕時所顯示的網頁。</translation>
 <translation id="1547572086206517271">請重新整理網頁</translation>
@@ -443,11 +434,9 @@
     <ph name="BEGIN_BOLD" />查看<ph name="END_BOLD" />受監管使用者瀏覽過的網站;以及
     <ph name="BEGIN_BOLD" />管理<ph name="END_BOLD" />其他設定。</translation>
 <translation id="1648943974594387137">登入詳細資料過舊</translation>
-<translation id="1649641629389702691">&lt;未顯示 <ph name="LINE_COUNT" /> 行&gt;</translation>
 <translation id="1650371550981945235">顯示輸入選項</translation>
 <translation id="1650709179466243265">加上 www. 和 .com 並開啟網址</translation>
 <translation id="1651008383952180276">你必須輸入兩次相同的通關密語</translation>
-<translation id="1652972346408808053">已儲存密碼。在任何裝置上皆可透過 <ph name="SAVED_PASSWORDS_LINK" /> 存取你的密碼</translation>
 <translation id="1653526288038954982">{NUM_PRINTER,plural, =1{將這台印表機新增至 Google 雲端列印,即可隨時隨地進行列印。}other{將 # 台印表機新增至 Google 雲端列印,即可隨時隨地進行列印。}}</translation>
 <translation id="1657406563541664238">只要自動傳送使用統計資料及當機報告給 Google,就能助我們一臂之力,讓「<ph name="PRODUCT_NAME" />」更臻完美</translation>
 <translation id="1658424621194652532">這個網頁正在存取你的麥克風。</translation>
@@ -674,7 +663,6 @@
 <translation id="2045969484888636535">繼續封鎖 Cookie</translation>
 <translation id="204622017488417136">你的裝置將還原至上一個安裝的 Chrome 版本,且所有使用者帳戶和本機資料都會遭到移除。這項操作無法復原。</translation>
 <translation id="2048182445208425546">存取你的網路流量</translation>
-<translation id="2049137146490122801">你的管理員已停用你裝置上本機檔案的存取權。</translation>
 <translation id="204914487372604757">建立捷徑</translation>
 <translation id="2050339315714019657">縱向</translation>
 <translation id="2053312383184521053">閒置狀態資料</translation>
@@ -708,7 +696,6 @@
 <translation id="2101797668776986011">Pepper 3D</translation>
 <translation id="2105006017282194539">尚未載入。</translation>
 <translation id="2107494551712864447">新增指紋</translation>
-<translation id="2111843886872897694">應用程式的安裝來源應與應用程式影響所及的主機相同。</translation>
 <translation id="2112877397266219826">開啟你的觸控控制器以進行設定</translation>
 <translation id="21133533946938348">固定分頁</translation>
 <translation id="2113479184312716848">開啟檔案(&amp;F)...</translation>
@@ -795,7 +782,6 @@
 <translation id="2226720438730111184">將發生的狀況告訴我們</translation>
 <translation id="2229161054156947610">剩下 1 個多小時</translation>
 <translation id="222931766245975952">檔案已遭截斷</translation>
-<translation id="222949136907494149"><ph name="URL" /> 要求使用電腦的位置資訊。</translation>
 <translation id="2230051135190148440">CHAP</translation>
 <translation id="2230062665678605299">無法建立資料夾「<ph name="FOLDER_NAME" />」。<ph name="ERROR_MESSAGE" /></translation>
 <translation id="223106756035922488">按一下即可瀏覽今日 doodle</translation>
@@ -883,7 +869,6 @@
 <translation id="236141728043665931">一律封鎖存取麥克風</translation>
 <translation id="2367972762794486313">顯示應用程式</translation>
 <translation id="2371076942591664043">完成後開啟(&amp;D)</translation>
-<translation id="237336063998926520">使用你的 IP 位址判定所在位置</translation>
 <translation id="2377319039870049694">切換為清單檢視</translation>
 <translation id="2377667304966270281">硬性錯誤數</translation>
 <translation id="2378075407703503998">已選取 <ph name="SELCTED_FILE_COUNT" /> 個檔案</translation>
@@ -930,7 +915,6 @@
 <translation id="2457246892030921239">「<ph name="APP_NAME" />」要求複製 <ph name="VOLUME_NAME" /> 中的檔案。</translation>
 <translation id="2462724976360937186">憑證授權單位金鑰識別碼</translation>
 <translation id="2462752602710430187">已新增「<ph name="PRINTER_NAME" />」</translation>
-<translation id="246335896104539386">匯入書籤</translation>
 <translation id="2464089476039395325">HTTP Proxy</translation>
 <translation id="2468902267404883140">無法連上你的手機。請確定你使用的是相容的 Android 手機並已開機,且手機在適當距離範圍內。&lt;a&gt;瞭解詳情&lt;/a&gt;</translation>
 <translation id="2470702053775288986">已停用不支援的擴充功能</translation>
@@ -946,7 +930,6 @@
 <translation id="2485422356828889247">解除安裝</translation>
 <translation id="2487067538648443797">新增書籤</translation>
 <translation id="248861575772995840">找不到你的手機。請確定已開啟 <ph name="DEVICE_TYPE" /> 的藍牙功能。&lt;a&gt;瞭解詳情&lt;/a&gt;</translation>
-<translation id="2489316678672211764">外掛程式 (<ph name="PLUGIN_NAME" />) 沒有回應。</translation>
 <translation id="2489428929217601177">過去 1 天</translation>
 <translation id="2489918096470125693">新增資料夾(&amp;F)...</translation>
 <translation id="249113932447298600">很抱歉,系統目前不支援 <ph name="DEVICE_LABEL" /> 裝置。</translation>
@@ -1000,13 +983,11 @@
 <translation id="2563856802393254086">恭喜你!你的「<ph name="NAME" />」數據服務已啟用,隨時可供使用。</translation>
 <translation id="2566124945717127842">Powerwash 會將你的 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置重設並恢復為原廠設定。</translation>
 <translation id="2568774940984945469">資訊列容器</translation>
-<translation id="2570000010887652771">數據用量更少。</translation>
 <translation id="257088987046510401">主題</translation>
 <translation id="2572032849266859634">已授予 <ph name="VOLUME_NAME" /> 的唯讀權限。</translation>
 <translation id="2573269395582837871">選擇圖片和名稱</translation>
 <translation id="2575247648642144396">畫面上顯示這個圖示時,表示擴充功能可在目前網頁上運作。如要啟用這項擴充功能,請按一下圖示或按下 <ph name="EXTENSION_SHORTCUT" />。</translation>
 <translation id="2575268751393592580">找不到你的手機。請確定你的 <ph name="DEVICE_TYPE" /> 已連上 Wi-Fi 網路或行動網路。&lt;a&gt;瞭解詳情&lt;/a&gt;</translation>
-<translation id="2576842806987913196">已有一個 CRX 檔案使用這個名稱。</translation>
 <translation id="257779572837908839">設為 Chromebox 視訊會議解決方案</translation>
 <translation id="257811358971247368"><ph name="BEGIN_BOLD" />無法卸載磁碟區<ph name="END_BOLD" />
    <ph name="LINE_BREAKS" />
@@ -1068,7 +1049,6 @@
 <translation id="2653266418988778031">如果你刪除了憑證授權單位 (CA) 的憑證,你的瀏覽器就不會再信任該憑證授權單位所核發的任何憑證。</translation>
 <translation id="2653659639078652383">提交</translation>
 <translation id="265390580714150011">欄位值</translation>
-<translation id="2654286334048437383">匯出書籤</translation>
 <translation id="2655386581175833247">使用者憑證:</translation>
 <translation id="2660779039299703961">活動</translation>
 <translation id="2661146741306740526">16x9</translation>
@@ -1262,7 +1242,6 @@
 <translation id="2908162660801918428">依目錄新增媒體庫</translation>
 <translation id="2908789530129661844">縮小畫面</translation>
 <translation id="2910318910161511225">請連線至網路,然後再試一次</translation>
-<translation id="2912905526406334195"><ph name="HOST" /> 要求使用麥克風。</translation>
 <translation id="2913331724188855103">允許網站儲存及讀取 Cookie 資料 (建議)</translation>
 <translation id="2916073183900451334">在網頁上按 Tab 鍵可反白顯示連結和表單欄位</translation>
 <translation id="2916745397441987255">搜尋擴充功能</translation>
@@ -1360,7 +1339,7 @@
 <translation id="3051523411789012618">視窗靠上</translation>
 <translation id="3053013834507634016">憑證金鑰用途</translation>
 <translation id="3057861065630527966">備份您的相片和影片</translation>
-<translation id="3060379269883947824">啟用朗讀所選文字功能</translation>
+<translation id="3060379269883947824">啟用隨選朗讀功能</translation>
 <translation id="3061707000357573562">修補服務</translation>
 <translation id="3064410671692449875">資料不足</translation>
 <translation id="3065041951436100775">分頁毀損意見回饋。</translation>
@@ -1415,7 +1394,6 @@
 <translation id="3141318088920353606">聽取中…</translation>
 <translation id="3141917231319778873">無法對以下裝置提出指定的要求:「<ph name="DEVICE_NAME" />」。</translation>
 <translation id="3144126448740580210">完成</translation>
-<translation id="3144135466825225871">無法取代 crx 檔案,請檢查檔案是否正在使用中。</translation>
 <translation id="3144647712221361880">以其他身分開啟連結</translation>
 <translation id="3149510190863420837">Chrome 應用程式</translation>
 <translation id="3150927491400159470">強制重新載入</translation>
@@ -1525,7 +1503,6 @@
 <translation id="3309747692199697901">一律在所有網站上執行</translation>
 <translation id="3312424061798279731">已啟用的語言</translation>
 <translation id="3312903956926554846">安裝到桌面</translation>
-<translation id="3313473140726597081">你的起始網頁已變更為 <ph name="URL" />。如要將變更起始網頁的擴充功能停用,請按一下 [還原]。</translation>
 <translation id="3313590242757056087">如要設定受監管的使用者可瀏覽哪些網站,你可以前往 <ph name="MANAGEMENT_URL" /> 
     修改限制與設定。
     如果你並未變更預設設定,那麼 <ph name="USER_DISPLAY_NAME" />
@@ -1541,7 +1518,6 @@
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
 <translation id="3331974543021145906">應用程式資訊</translation>
 <translation id="3335947283844343239">重新開啟先前關閉的分頁</translation>
-<translation id="3337069537196930048"><ph name="PLUGIN_NAME" /> 因版本過舊而遭封鎖。</translation>
 <translation id="3340978935015468852">設定</translation>
 <translation id="3341703758641437857">允許存取檔案網址</translation>
 <translation id="3342361181740736773">「<ph name="TRIGGERING_EXTENSION_NAME" />」要求移除這個擴充功能。</translation>
@@ -1576,7 +1552,6 @@
 <translation id="3386219708421216619">已新增書籤</translation>
 <translation id="3389312115541230716">以滑鼠右鍵按一下工作列中的 <ph name="SMALL_PRODUCT_LOGO" /> 圖示</translation>
 <translation id="3391716558283801616">分頁 7</translation>
-<translation id="3394150261239285340"><ph name="HOST" /> 要求使用相機和麥克風。</translation>
 <translation id="3396331542604645348">選取的印表機無法使用或未正確安裝。請檢查你的印表機,或改選其他印表機。</translation>
 <translation id="3399432415385675819">通知功能會遭到停用</translation>
 <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />,<ph name="TIME_LEFT" /></translation>
@@ -1688,10 +1663,8 @@
 <translation id="3550915441744863158">Chrome 會自動更新,隨時讓你使用最新版本</translation>
 <translation id="3551320343578183772">關閉分頁</translation>
 <translation id="3552780134252864554">結束時將遭到清除</translation>
-<translation id="355298399003313926"><ph name="URL" /> 要求回應協助工具活動。</translation>
 <translation id="3555812735919707620">移除擴充功能</translation>
 <translation id="3556000484321257665">你的搜尋引擎已變更為 <ph name="URL" />。</translation>
-<translation id="3561217442734750519">私密金鑰的輸入值必須是有效的路徑。</translation>
 <translation id="3563432852173030730">無法下載 Kiosk 應用程式。</translation>
 <translation id="3564334271939054422">您所使用的 Wi-Fi 網路 (<ph name="NETWORK_ID" />) 可能會要求您造訪登入頁面。</translation>
 <translation id="3564708465992574908">縮放等級</translation>
@@ -1713,7 +1686,6 @@
 <translation id="3593965109698325041">憑證名稱限制</translation>
 <translation id="3596235046596950091">啟用雲端服務</translation>
 <translation id="3599863153486145794">將歷史紀錄從所有登入帳戶的裝置上清除。你的 Google 帳戶可能會儲存其他形式的瀏覽紀錄,請參閱 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />。</translation>
-<translation id="3600456501114769456">你的管理員已封鎖裝置的本機檔案存取權限。</translation>
 <translation id="3600792891314830896">將播放音訊的網站設為靜音</translation>
 <translation id="3603177256297531067">系統無法翻譯這個網頁的內容</translation>
 <translation id="3603533104205588786">按一下星號即可將網頁加入書籤</translation>
@@ -1738,7 +1710,6 @@
 <translation id="3625258641415618104">已停用螢幕擷取畫面</translation>
 <translation id="3625870480639975468">重設縮放</translation>
 <translation id="3626281679859535460">亮度</translation>
-<translation id="3627052133907344175">擴充功能要求的最低「<ph name="IMPORT_NAME" />」版本是「<ph name="IMPORT_VERSION" />」,但目前只安裝了「<ph name="INSTALLED_VERSION" />」版。</translation>
 <translation id="3627320433825461852">剩下不到 1 分鐘</translation>
 <translation id="3627588569887975815">在無痕式視窗中開啟連結(&amp;G)</translation>
 <translation id="3627671146180677314">Netscape 憑證更新時間</translation>
@@ -1768,7 +1739,6 @@
 <translation id="3668570675727296296">語言設定</translation>
 <translation id="3668823961463113931">處理常式</translation>
 <translation id="3670229581627177274">開啟藍牙功能</translation>
-<translation id="3672159315667503033"><ph name="URL" /> 要求在你的本機電腦上永久儲存大量資料。</translation>
 <translation id="3672681487849735243">系統偵測到原廠錯誤</translation>
 <translation id="367645871420407123">如果您要將 Root 密碼設為測試映像檔的預設值,請保留空白</translation>
 <translation id="3678156199662914018">擴充功能:<ph name="EXTENSION_NAME" /></translation>
@@ -1846,11 +1816,9 @@
 <translation id="3786301125658655746">你處於離線狀態</translation>
 <translation id="3788401245189148511">要求下列權限:</translation>
 <translation id="3789841737615482174">安裝</translation>
-<translation id="3790146417033334899"><ph name="PLUGIN_NAME" /> 只能在電腦上執行。</translation>
 <translation id="379082410132524484">你的卡片已過期</translation>
 <translation id="3792890930871100565">中斷印表機連線</translation>
 <translation id="379422718204375917">使用 Smart Lock 登入你的帳戶</translation>
-<translation id="3794595850995182458">離開網頁</translation>
 <translation id="3796648294839530037">慣用的網路:</translation>
 <translation id="3797900183766075808">透過 <ph name="SEARCH_ENGINE" /> 搜尋「<ph name="SEARCH_TERMS" />」(&amp;S)</translation>
 <translation id="3798325802885154040">讓你啟用/停用輕觸點選功能</translation>
@@ -1980,7 +1948,6 @@
 <translation id="3979748722126423326">啟用 <ph name="NETWORKDEVICE" /></translation>
 <translation id="3981760180856053153">輸入的儲存類型無效。</translation>
 <translation id="3983586614702900908">製造商不明的裝置</translation>
-<translation id="3984413272403535372">簽署擴充功能時出現錯誤。</translation>
 <translation id="3987938432087324095">很抱歉,系統無法辨識你的語音指令。</translation>
 <translation id="3988996860813292272">選取時區</translation>
 <translation id="3989635538409502728">登出</translation>
@@ -2036,7 +2003,6 @@
 <translation id="4087470595660267445">在 Chromebook 上安裝來自 Google Play 的應用程式和遊戲。&lt;a target="_blank" href="<ph name="URL" />"&gt;瞭解詳情&lt;/a&gt;</translation>
 <translation id="4088095054444612037">接受群組邀請</translation>
 <translation id="4090103403438682346">啟用已驗證存取權</translation>
-<translation id="4090404313667273475">需要 <ph name="PLUGIN_NAME" /> 才能顯示這個網頁的部分元素。</translation>
 <translation id="4090535558450035482">(這項擴充功能受到管理,無法任意移除)。</translation>
 <translation id="4091434297613116013">張紙</translation>
 <translation id="4093955363990068916">本機檔案:</translation>
@@ -2370,7 +2336,6 @@
 <translation id="4714531393479055912"><ph name="PRODUCT_NAME" /> 現在提供了密碼同步功能。</translation>
 <translation id="4715553623069266137">很短 (0.8 秒)</translation>
 <translation id="4716483597559580346">執行 Powerwash 以提升安全性</translation>
-<translation id="471800408830181311">匯出私密金鑰失敗。</translation>
 <translation id="4720113199587244118">新增裝置</translation>
 <translation id="4720185134442950733">行動數據網路</translation>
 <translation id="4722920479021006856"><ph name="APP_NAME" /> 正在共用你的畫面。</translation>
@@ -2507,7 +2472,6 @@
 <translation id="4917385247580444890">強</translation>
 <translation id="4918021164741308375"><ph name="ORIGIN" /> 要求與「<ph name="EXTENSION_NAME" />」擴充功能通訊</translation>
 <translation id="4918086044614829423">接受</translation>
-<translation id="4919810557098212913"><ph name="HOST" /> 要求使用相機。</translation>
 <translation id="4920887663447894854">下列網站已遭封鎖,無法在你瀏覽此網頁時追蹤你的位置:</translation>
 <translation id="492299503953721473">移除 Android 應用程式</translation>
 <translation id="4923279099980110923">是,我願意協助</translation>
@@ -2548,7 +2512,6 @@
 <translation id="4980805016576257426">這個擴充功能含有惡意軟體。</translation>
 <translation id="498294082491145744">變更 Cookie、JavaScript、外掛程式、地理位置、麥克風、攝影機等功能的網站存取權控制設定。</translation>
 <translation id="4988526792673242964">頁數</translation>
-<translation id="4988792151665380515">匯出公開金鑰失敗。</translation>
 <translation id="49896407730300355">逆時針旋轉(&amp;O)</translation>
 <translation id="4989966318180235467">檢查背景頁面(&amp;B)</translation>
 <translation id="4990343175649730969">下載 Chrome 清理工具</translation>
@@ -2576,7 +2539,6 @@
 <translation id="5026874946691314267">不要再顯示這則通知</translation>
 <translation id="5027550639139316293">電子郵件憑證</translation>
 <translation id="5027562294707732951">新增擴充功能</translation>
-<translation id="5028012205542821824">未啟用安裝功能。</translation>
 <translation id="5029568752722684782">清除複本</translation>
 <translation id="5030338702439866405">發行者</translation>
 <translation id="5036662165765606524">禁止任何網站自動下載多個檔案</translation>
@@ -2612,7 +2574,6 @@
 <translation id="509429900233858213">發生錯誤。</translation>
 <translation id="5094721898978802975">與合作內建應用程式建立連線</translation>
 <translation id="5097002363526479830">無法連線至「<ph name="NAME" />」:<ph name="DETAILS" /></translation>
-<translation id="5098647635849512368">找不到封裝使用的目錄絕對路徑。</translation>
 <translation id="5099354524039520280">向上鍵</translation>
 <translation id="5100114659116077956">你必須更新 Chromebox,才能使用各種最新功能。</translation>
 <translation id="5101042277149003567">開啟所有書籤</translation>
@@ -2661,7 +2622,6 @@
 <translation id="5170568018924773124">在資料夾中顯示</translation>
 <translation id="5171045022955879922">搜尋或輸入網址</translation>
 <translation id="5171343362375269016">交換的記憶體</translation>
-<translation id="5175870427301879686"><ph name="URL" /> 要求在你的本機電腦上永久儲存資料。</translation>
 <translation id="5177479852722101802">繼續封鎖存取攝影機和麥克風</translation>
 <translation id="5177526793333269655">縮圖檢視</translation>
 <translation id="5177549709747445269">您正在使用行動數據</translation>
@@ -2740,7 +2700,6 @@
 <translation id="529175790091471945">格式化這台裝置</translation>
 <translation id="5293170712604732402">將設定還原成原始預設值</translation>
 <translation id="5298219193514155779">主題製作者</translation>
-<translation id="5298363578196989456">「<ph name="IMPORT_NAME" />」擴充功能不是共用模組,因此無法匯入。</translation>
 <translation id="5299109548848736476">不追蹤</translation>
 <translation id="5299682071747318445">你已使用同步通關密語對所有資料進行加密</translation>
 <translation id="5300589172476337783">顯示</translation>
@@ -2768,7 +2727,6 @@
 <translation id="5331425616433531170">「<ph name="CHROME_EXTENSION_NAME" />」要求配對</translation>
 <translation id="5332624210073556029">時區:</translation>
 <translation id="5334142896108694079">指令碼快取</translation>
-<translation id="533433379391851622">預期的版本為「<ph name="EXPECTED_VERSION" />」,但指向的版本為「<ph name="NEW_ID" />」。</translation>
 <translation id="5334844597069022743">查看原始碼</translation>
 <translation id="5335458522276292100">正在將 <ph name="FILE_COUNT" />備份到 <ph name="BEGIN_LINK" />Google 雲端硬碟<ph name="END_LINK" /></translation>
 <translation id="5337771866151525739">由第三方安裝。</translation>
@@ -2806,7 +2764,6 @@
 <translation id="5390100381392048184">允許網站播放音訊</translation>
 <translation id="5390284375844109566">索引資料庫</translation>
 <translation id="5390743329570580756">傳送連線類型</translation>
-<translation id="5396126354477659676"><ph name="PEPPER_PLUGIN_DOMAIN" /> 上的 <ph name="PEPPER_PLUGIN_NAME" /> 外掛程式要求存取你的電腦。</translation>
 <translation id="5397794290049113714">你</translation>
 <translation id="5398572795982417028">參照的網頁超出範圍限制 (<ph name="MAXIMUM_PAGE" />)</translation>
 <translation id="5398772614898833570">已封鎖廣告</translation>
@@ -2868,7 +2825,6 @@
 <translation id="5485754497697573575">還原所有分頁</translation>
 <translation id="5486261815000869482">確認密碼</translation>
 <translation id="5486275809415469523"><ph name="APP_NAME" /> 正與 <ph name="TAB_NAME" /> 共用你的畫面。</translation>
-<translation id="5486326529110362464">私密金鑰必須存在輸入項目值。</translation>
 <translation id="5486561344817861625">模擬瀏覽器重新啟動</translation>
 <translation id="5487521232677179737">清除資料</translation>
 <translation id="5488093641312826914">已複製「<ph name="COPIED_ITEM_NAME" />」</translation>
@@ -2951,7 +2907,6 @@
 <translation id="5600706100022181951">下載更新將使用 <ph name="UPDATE_SIZE_MB" /> MB 的行動數據。要繼續嗎?</translation>
 <translation id="5601503069213153581">PIN</translation>
 <translation id="5605623530403479164">其他搜尋引擎</translation>
-<translation id="5606674617204776232"><ph name="PEPPER_PLUGIN_DOMAIN" /> 上的 <ph name="PEPPER_PLUGIN_NAME" /> 外掛程式要求存取你的裝置。</translation>
 <translation id="5608580678041221894">輕觸下列按鍵可調整或移動裁剪區域</translation>
 <translation id="5609231933459083978">這似乎是無效的應用程式。</translation>
 <translation id="5610038042047936818">切換至相機模式</translation>
@@ -3194,7 +3149,6 @@
 <translation id="5990386583461751448">已翻譯</translation>
 <translation id="5991049340509704927">放大</translation>
 <translation id="5993332328670040093">系統不會再監測您的數據用量。</translation>
-<translation id="6003177993629630467">「<ph name="PRODUCT_NAME" />」可能無法自動更新。</translation>
 <translation id="600424552813877586">應用程式無效。</translation>
 <translation id="6005695835120147974">媒體路由器</translation>
 <translation id="6006484371116297560">傳統版</translation>
@@ -3219,6 +3173,7 @@
 <translation id="604001903249547235">雲端備份</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6040852767465482106">匿名身分</translation>
+<translation id="6041155700700864984">結束全螢幕</translation>
 <translation id="604124094241169006">自動</translation>
 <translation id="6042169520002885235">選取印表機製造商和型號</translation>
 <translation id="6042308850641462728">更多</translation>
@@ -3235,7 +3190,6 @@
 <translation id="6056710589053485679">正常重新載入</translation>
 <translation id="6059652578941944813">憑證階層</translation>
 <translation id="6059925163896151826">USB 裝置</translation>
-<translation id="6060435378291459521">「<ph name="PLUGIN_NAME" />」當機了。</translation>
 <translation id="6064217302520318294">螢幕鎖定</translation>
 <translation id="6065289257230303064">憑證主體目錄屬性</translation>
 <translation id="6068338049763724728">啟用遠端註冊</translation>
@@ -3344,7 +3298,6 @@
 <translation id="6237816943013845465">讓你調整螢幕解析度</translation>
 <translation id="6238923052227198598">在鎖定畫面上顯示最新記事</translation>
 <translation id="6239558157302047471">重新載入頁框(&amp;F)</translation>
-<translation id="624022915548992686">離開網頁</translation>
 <translation id="6241530762627360640">存取與系統配對的藍牙裝置資訊並搜尋附近的藍牙裝置。</translation>
 <translation id="6243774244933267674">無法與伺服器連線</translation>
 <translation id="6246413617632217567">無法匯入受監管的使用者。請檢查您的硬碟空間和權限,然後再試一次。</translation>
@@ -3393,13 +3346,11 @@
 <translation id="6312403991423642364">不明的網路錯誤</translation>
 <translation id="6313641880021325787">結束 VR</translation>
 <translation id="6314819609899340042">你已成功在 <ph name="IDS_SHORT_PRODUCT_NAME" /> 裝置上啟用偵錯功能。</translation>
-<translation id="6315343732431721770">你的起始網頁已變更為包含 <ph name="URL" />。如要將變更起始網頁的擴充功能停用,請按一下 [還原]。</translation>
 <translation id="6315493146179903667">全部移至最上層</translation>
 <translation id="6316806695097060329">這款 <ph name="SHORT_PRODUCT_NAME" /> 裝置經過精心設計,可為你提供最佳網路體驗。</translation>
 <translation id="6317318380444133405">已停止支援。</translation>
 <translation id="6317369057005134371">正在等待應用程式視窗...</translation>
 <translation id="6318407754858604988">已開始下載</translation>
-<translation id="6322279351188361895">讀取私密金鑰失敗。</translation>
 <translation id="6325191661371220117">停用自動啟動功能</translation>
 <translation id="6326175484149238433">從 Chrome 中移除</translation>
 <translation id="6326855256003666642">Keepalive 數量</translation>
@@ -3408,7 +3359,6 @@
 <translation id="6333049849394141510">選擇要同步處理的資料類型</translation>
 <translation id="6333064448949140209">檔案會傳送給 Google 進行偵錯</translation>
 <translation id="6333834492048057036">將焦點移至網址列以便進行搜尋</translation>
-<translation id="6336907568130557310">凡是可查看匯出檔案的使用者都看得到你的密碼。請勿與任何人共用檔案,並且在匯入後刪除檔案。</translation>
 <translation id="6339668969738228384">為 <ph name="USER_EMAIL_ADDRESS" /> 建立新的個人資料</translation>
 <translation id="6340017061976355871">無法連上伺服器。請檢查網路連線狀態,然後再試一次。如果問題持續發生,請重新啟動 Chromebook。</translation>
 <translation id="6340071272923955280">網際網路列印通訊協定 (IPPS)</translation>
@@ -3437,7 +3387,6 @@
 <translation id="6385543213911723544">網站可以儲存及讀取 Cookie 資料</translation>
 <translation id="6388771388956873507">找到裝置上的指紋感應器,並以手指輕觸</translation>
 <translation id="6390799748543157332">你在這個視窗瀏覽的網頁不會顯示在瀏覽器紀錄中,而且在你關閉所有開啟的訪客視窗後,電腦也不會留下 Cookie 等其他紀錄。不過,系統將會保留你下載的所有檔案。</translation>
-<translation id="6391538222494443604">輸入項目目錄必須存在</translation>
 <translation id="6395423953133416962">傳送<ph name="BEGIN_LINK1" />系統資訊<ph name="END_LINK1" />和<ph name="BEGIN_LINK2" />指標<ph name="END_LINK2" /></translation>
 <translation id="6397363302884558537">Stop Speaking</translation>
 <translation id="6397592254427394018">在無痕式視窗中開啟所有書籤(&amp;I)</translation>
@@ -3494,7 +3443,6 @@
 <translation id="6458308652667395253">管理封鎖 JavaScript 設定...</translation>
 <translation id="6459488832681039634">使用所選範圍尋找</translation>
 <translation id="6460601847208524483">尋找下一個項目</translation>
-<translation id="6462080265650314920">應用程式的內容類型 (content-type) 應設為「<ph name="CONTENT_TYPE" />」。</translation>
 <translation id="6462082050341971451">你還在線上嗎?</translation>
 <translation id="6463795194797719782">編輯(&amp;E)</translation>
 <translation id="6466988389784393586">開啟所有書籤(&amp;O)</translation>
@@ -3624,7 +3572,6 @@
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">您要讓 Google 將這個網頁的內容從<ph name="SOURCE_LANGUAGE" />翻譯成<ph name="TARGET_LANGUAGE" />嗎?</translation>
 <translation id="6675665718701918026">已連上指標裝置</translation>
-<translation id="6677037229676347494">預期的 ID 為「<ph name="EXPECTED_ID" />」,但指向的 ID 為「<ph name="NEW_ID" />」。</translation>
 <translation id="6678717876183468697">查詢網址</translation>
 <translation id="6680028776254050810">切換使用者</translation>
 <translation id="6680442031740878064">可用空間:<ph name="AVAILABLE_SPACE" /></translation>
@@ -3764,8 +3711,6 @@
 <translation id="6903534926908201625">你隨時可以在<ph name="BEGIN_LINK" />設定<ph name="END_LINK" />中自訂 Google 可收集的資訊。</translation>
 <translation id="6904344821472985372">撤銷檔案存取權</translation>
 <translation id="6904655473976120856">按下 [應用程式] 按鈕即可結束</translation>
-<translation id="6904713658985136356"><ph name="HOST" /> 要求分享螢幕畫面。</translation>
-<translation id="6909461304779452601">無法從這個網站新增應用程式、擴充功能及使用者指令碼。</translation>
 <translation id="6910211073230771657">已刪除</translation>
 <translation id="691024665142758461">下載多個檔案</translation>
 <translation id="6911324888870229398">網路連線已中斷。請檢查連線狀態,或改用其他 Wi-Fi 網路。</translation>
@@ -4100,7 +4045,6 @@
 <translation id="747114903913869239">錯誤:無法為擴充功能解碼</translation>
 <translation id="7473891865547856676">不用了,謝謝</translation>
 <translation id="747459581954555080">全部還原</translation>
-<translation id="7475034671245341386">「<ph name="PLUGIN_NAME" />」發生錯誤。</translation>
 <translation id="7475671414023905704">Netscape 遺失密碼網址</translation>
 <translation id="7476454130948140105">電量過低,無法進行更新 (<ph name="BATTERY_PERCENT" />%)</translation>
 <translation id="7477347901712410606">如果你忘記通關密語,請透過「<ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />」停止並重設同步功能。</translation>
@@ -4137,7 +4081,6 @@
 <translation id="7507930499305566459">狀態回應程式憑證</translation>
 <translation id="7508545000531937079">播放投影片</translation>
 <translation id="7513029293694390567">使用已儲存的憑證自動登入網站。如果停用這項功能,每當你登入網站時,都必須向系統確認你的登入憑證。</translation>
-<translation id="7515670329462166359"><ph name="URL" /> 要求準確識別你的裝置,以播放受保護內容。</translation>
 <translation id="7517569744831774757">將設定還原成原始預設值。</translation>
 <translation id="7517786267097410259">建立密碼 -</translation>
 <translation id="7518150891539970662">WebRTC 紀錄 (<ph name="WEBRTC_LOG_COUNT" />)</translation>
@@ -4166,7 +4109,6 @@
     你可於隨後登出 Google 帳戶,嘗試重新建立受監管的使用者。</translation>
 <translation id="756445078718366910">開啟瀏覽器視窗</translation>
 <translation id="7564847347806291057">結束處理程序</translation>
-<translation id="7565291891798266313">你的搜尋引擎已變更為 <ph name="URL" />。如要將變更搜尋引擎的擴充功能停用,請按一下 [還原]。</translation>
 <translation id="7566118625369982896">管理 Play 應用程式連結</translation>
 <translation id="7566723889363720618">F12</translation>
 <translation id="756809126120519699">已清除 Chrome 資料</translation>
@@ -4175,7 +4117,6 @@
 <translation id="7573172247376861652">電池充電</translation>
 <translation id="7576032389798113292">6x4</translation>
 <translation id="7576690715254076113">自動分頁</translation>
-<translation id="7577815336900970562">使用 Wi-Fi 或行動網路判斷所在位置</translation>
 <translation id="7579149537961810247">關閉多個網站音訊</translation>
 <translation id="7580671184200851182">透過所有喇叭播放相同的音效 (單聲道音訊)</translation>
 <translation id="7581462281756524039">清理工具</translation>
@@ -4282,6 +4223,7 @@
 <translation id="7773726648746946405">工作階段儲存空間</translation>
 <translation id="7781335840981796660">系統將移除所有使用者帳戶和本機資料。</translation>
 <translation id="7782102568078991263">沒有更多來自 Google 的建議</translation>
+<translation id="778330624322499012">無法載入 <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">你的電腦安全性設定封鎖了這個檔案。</translation>
 <translation id="7786207843293321886">結束訪客工作階段</translation>
 <translation id="7786889348652477777">重新載入應用程式(&amp;R)</translation>
@@ -4444,7 +4386,6 @@
 <translation id="8001504501378762252">可能有某個網站竊取了你的密碼</translation>
 <translation id="8004582292198964060">瀏覽器</translation>
 <translation id="8008356846765065031">網路連線中斷,請檢查你的網際網路連線。</translation>
-<translation id="8008765610824028412">無法載入「<ph name="PLUGIN_NAME" />」。</translation>
 <translation id="8008818777654712271">自動傳送部分系統資訊和網頁內容給 Google,協助偵測危險的應用程式和網站。</translation>
 <translation id="8012382203418782830">這個網頁的內容已經過翻譯。</translation>
 <translation id="8014154204619229810">正在執行更新程式。請稍後片刻,重新整理之後再試一次。</translation>
@@ -4561,7 +4502,6 @@
 <translation id="8191230140820435481">管理你的應用程式、擴充功能和主題</translation>
 <translation id="8191453843330043793">V8 Proxy 解析工具</translation>
 <translation id="8195027750202970175">佔磁碟容量</translation>
-<translation id="8195739004487400241">你的首頁已變更為 <ph name="URL" />。如要將變更首頁的擴充功能停用,請按一下 [還原]。</translation>
 <translation id="8199300056570174101">網路 (服務) 與裝置屬性</translation>
 <translation id="8200772114523450471">繼續</translation>
 <translation id="8202160505685531999">請再次輸入您的密碼,以更新您的 <ph name="DEVICE_TYPE" /> 設定檔。</translation>
@@ -4605,7 +4545,6 @@
 <translation id="8261378640211443080">這個擴充功能未列在 <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> 中,可能在你不知情的情況下加入瀏覽器。</translation>
 <translation id="8261387128019234107">為 <ph name="PROFILE_NAME" /> 新增帳戶</translation>
 <translation id="8261506727792406068">刪除</translation>
-<translation id="826246685091802258">這個版本未實作 <ph name="BAD_FLAG" />。</translation>
 <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> 已停用滑鼠游標。</translation>
 <translation id="8264718194193514834">「<ph name="EXTENSION_NAME" />」啟用了全螢幕。</translation>
 <translation id="8270242299912238708">PDF 文件</translation>
@@ -4706,6 +4645,7 @@
 <translation id="8454288007744638700">或選取新的網路:</translation>
 <translation id="845627346958584683">到期時間</translation>
 <translation id="8456681095658380701">名稱無效</translation>
+<translation id="8457451314607652708">匯入書籤</translation>
 <translation id="8460336040822756677">關閉 <ph name="DEVICE_TYPE" /> 專用 Smart Lock 後,您必須輸入密碼才能解鎖 Chrome 裝置,無法直接使用手機解鎖。</translation>
 <translation id="8461329675984532579">家用提供者名稱</translation>
 <translation id="84613761564611563">網路設定使用者介面要求已送出,請稍候...</translation>
@@ -4737,7 +4677,6 @@
 <translation id="850875081535031620">未發現有害軟體</translation>
 <translation id="8512476990829870887">結束處理程序</translation>
 <translation id="851263357009351303">永遠允許 <ph name="HOST" /> 顯示圖片</translation>
-<translation id="8513191386157529469">「<ph name="CLIENT_NAME" />」正在為這個瀏覽器偵錯。</translation>
 <translation id="8521475323816527629">快速存取應用程式</translation>
 <translation id="8523493869875972733">保留變更</translation>
 <translation id="8523849605371521713">依政策新增</translation>
@@ -4793,7 +4732,6 @@
 <translation id="8620765578342452535">設定網路連線</translation>
 <translation id="8620790565535071193">掃描失敗</translation>
 <translation id="8622877356447980900">您要翻譯這個網頁的內容嗎?</translation>
-<translation id="8623004009673949077">含有「kiosk_only」資訊清單屬性的應用程式只能在 Chrome 作業系統資訊站模式中安裝。</translation>
 <translation id="8624205858755890468">允許個人助理向你顯示相關資訊、應用程式和操作。</translation>
 <translation id="862542460444371744">擴充功能(&amp;E)</translation>
 <translation id="8627151598708688654">選取來源</translation>
@@ -4942,7 +4880,6 @@
 <translation id="882204272221080310">更新韌體以提升安全性。</translation>
 <translation id="8823514049557262177">複製連結文字(&amp;X)</translation>
 <translation id="8824701697284169214">新增網頁(&amp;G)...</translation>
-<translation id="8827850355924932817">使用 Wi-Fi 網路判斷所在位置</translation>
 <translation id="8828933418460119530">DNS 名稱</translation>
 <translation id="8830796635868321089">無法以目前的 Proxy 設定啟動更新檢查,請調整 <ph name="PROXY_SETTINGS_LINK_START" />Proxy 設定<ph name="PROXY_SETTINGS_LINK_END" />。</translation>
 <translation id="8834039744648160717">網路設定由 <ph name="USER_EMAIL" /> 控制。</translation>
@@ -4974,9 +4911,7 @@
 <translation id="8879284080359814990">以分頁顯示(&amp;S)</translation>
 <translation id="8884961208881553398">新增服務</translation>
 <translation id="8885197664446363138">無法使用 Smart Lock</translation>
-<translation id="8885905466771744233">所指定的擴充功能已有私密金鑰,請使用該金鑰,或先將它刪除。</translation>
 <translation id="8888432776533519951">顏色:</translation>
-<translation id="8892992092192084762">已安裝「<ph name="THEME_NAME" />」主題。</translation>
 <translation id="8893928184421379330">很抱歉,系統無法識別 <ph name="DEVICE_LABEL" /> 裝置。</translation>
 <translation id="8895454554629927345">書籤清單</translation>
 <translation id="88986195241502842">Page Down 鍵</translation>
@@ -4985,13 +4920,12 @@
 <translation id="8899285681604219177">已停用不支援的擴充功能</translation>
 <translation id="8899551033019439140">正在搜尋印表機...</translation>
 <translation id="8899851313684471736">在新視窗中開啟連結(&amp;W)</translation>
-<translation id="8902667442496790482">開啟朗讀所選文字設定</translation>
+<translation id="8902667442496790482">開啟隨選朗讀設定</translation>
 <translation id="8903921497873541725">放大</translation>
 <translation id="8904976895050290827">Google Chrome 同步功能</translation>
 <translation id="8908902564709148335">警告:這台電腦上已啟用 --scripts-require-action 標記,所以這個擴充功能可執行的功能有限。不過,在其他不支援或未啟用這個標記的裝置上,這個擴充功能可以:</translation>
 <translation id="8910146161325739742">分享螢幕畫面</translation>
 <translation id="8910222113987937043">你的書籤、歷史紀錄、密碼和其他設定的變更將不會再同步到你的 Google 帳戶。不過,你的現有資料仍會儲存在你的 Google 帳戶中,並可透過 <ph name="BEGIN_LINK" />Google 資訊主頁<ph name="END_LINK" />管理。</translation>
-<translation id="8911079125461595075">Google 已將「<ph name="EXTENSION_NAME" />」標記為惡意程式並防止安裝該擴充功能。</translation>
 <translation id="8912793549644936705">延伸</translation>
 <translation id="8915370057835397490">正在載入建議</translation>
 <translation id="8916476537757519021">無痕模式子頁框:<ph name="SUBFRAME_SITE" /></translation>
@@ -5097,7 +5031,6 @@
 <translation id="9074739597929991885">藍牙</translation>
 <translation id="9074836595010225693">已連接 USB 滑鼠</translation>
 <translation id="9076523132036239772">抱歉,系統無法驗證你的電子郵件或密碼,請先連線至網路。</translation>
-<translation id="907841381057066561">封裝過程中建立暫存壓縮檔失敗。</translation>
 <translation id="9084064520949870008">在視窗中開啟</translation>
 <translation id="9088234649737575428">「<ph name="PLUGIN_NAME" />」遭到企業政策封鎖</translation>
 <translation id="9088917181875854783">請確認以下密碼金鑰是否顯示於「<ph name="DEVICE_NAME" />」上:</translation>
@@ -5188,11 +5121,9 @@
 <translation id="939519157834106403">SSID</translation>
 <translation id="939598580284253335">請輸入通關密語</translation>
 <translation id="939736085109172342">新增資料夾</translation>
-<translation id="941543339607623937">私密金鑰無效。</translation>
 <translation id="942532530371314860"><ph name="APP_NAME" /> 正在共用 Chrome 分頁和音訊。</translation>
 <translation id="942954117721265519">這個目錄中沒有任何圖片。</translation>
 <translation id="945522503751344254">提供意見</translation>
-<translation id="951981865514037445"><ph name="URL" /> 要求使用裝置的位置資訊。</translation>
 <translation id="952992212772159698">未啟用</translation>
 <translation id="9580706199804957">無法連上 Google 服務</translation>
 <translation id="958515377357646513">輕觸即可繼續。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index b81165f..b37e923d 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -58,7 +58,6 @@
 
 ዝም ብሎ መግባት እንደ ዕልባቶች፣ ታሪክ እና ሌሎች ቅንብሮች ያሉ የChrome መረጃዎችን ከ<ph name="ACCOUNT_EMAIL_NEW" /> ጋር ያዋህዳቸዋል።</translation>
 <translation id="2397416548179033562">የChrome ምናሌ አሳይ</translation>
-<translation id="2416359993254398973">Chrome ለዚህ ጣቢያ የእርስዎን ካሜራ ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="2429317896000329049">ማመሳሰል ለጎራዎ ስለማይገኝ Google Chrome ውሂብዎን ማመሳሰል አልቻለም።</translation>
 <translation id="2446511512801740068">Chrome ለሆነ ጊዜ ያህል ዳግም ስላልተጀመረ ጊዜው አልፎበታል። አንድ ዝማኔ አለ እና ልክ ዳግም ሲያስጀምሩት ይተገበራል።</translation>
 <translation id="2485422356828889247">አራግፍ</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">የብልሽት ሪፖርቶችን እና <ph name="UMA_LINK" /> ወደ Google በመላክ Google Chromeን የተሻለ ለማድረግ እገዛ ያድርጉ</translation>
 <translation id="2689103672227170538">ይህ ቅጥያ Chromeን ሲጀምሩት የሚታየውን ገጽ ቀይሮታል።</translation>
 <translation id="2705403826523567092">በመላ መሣሪያዎች ላይ ግላዊነት የተላበሰ የአሰሳ ተሞክሮን ለማግኘት በመለያ ይግቡ</translation>
-<translation id="2769762047821873045">Google Chrome መነሻ ማሰሻዎ አይደለም።</translation>
 <translation id="2770231113462710648">ነባሪ አሳሽን ወደዚህ ቀይር፦</translation>
 <translation id="2799223571221894425">ዳግም አስጀምር</translation>
 <translation id="2847461019998147611">Google Chromeን በዚህ ቋንቋ አሳይ</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Google Chrome ላይ የተጫኑ ሞዱሎች</translation>
 <translation id="556024056938947818">Google Chrome የይለፍ ቃላትን ለማሳየት እየሞከረ ነው።</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome ለዚህ ጣቢያ የእርስዎን ማይክራፎን ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> አደገኛ ሊሆን ስለሚችል Chrome አግዶታል።</translation>
 <translation id="573759479754913123">ስለ Chrome OS</translation>
-<translation id="5749068826913805084">Chrome ፋይሎችን ለማውረድ የማከማቻ መዳረሻ ያስፈልገዋል።</translation>
 <translation id="5774845247549698882">Chrome OS በዚህ ቋንቋ እየታየ ነው</translation>
 <translation id="5855036575689098185">በኮምፒውተርዎ ላይ እያሄደ ያለ ሶፍትዌር ከGoogle Chrome ጋር ተኳሃኝ አይደለም።</translation>
 <translation id="5877064549588274448">ሰርጥ ተለውጧል። ለውጦችን ለመተግበር መሳሪያዎን ዳግም ያስጀምሩ።</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome ቀደም ብሎ በእርስዎ ኮምፒውተር ላይ ላሉ ተጠቃሚዎች ተጭኗል።</translation>
 <translation id="6338556085225130112">Google Chromeን በማዘመን ላይ</translation>
 <translation id="6368958679917195344">Chrome ስርዓተ ክወና በተጨማሪ <ph name="BEGIN_LINK_CROS_OSS" />ክፍት ምንጭ ሶፍትዌር<ph name="END_LINK_CROS_OSS" /> እውን ሊሆን ችሏል።</translation>
-<translation id="6393863479814692971">Chrome ለዚህ ጣቢያ የእርስዎን ካሜራ እና ማይክራፎን ለመድረስ ፈቃድ ይፈልጋል።</translation>
 <translation id="6410540444482791104">አደገኛ መተግበሪያዎች እና ጣቢያዎች እንዲገኙ ለማገዝ አንዳንድ የሥርዓት መረጃን እና የገጽ ይዘትን ለGoogle በመላክ Chrome ደህንነቱ ይበልጥ የተጠበቀ እና ለመጠቀም ይበልጥ የቀለለ እንዲሆን ማድረግ ይችላሉ።</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{አንድ ማውረድ አሁን በሂደት ላይ ነው። ማውረዱን መተው እና ከGoogle Chrome መውጣት ይፈልጋሉ?}one{# ማውረዶች አሁን በሂደት ላይ ናቸው። ማውረዶቹን መተው እና ከGoogle Chrome መውጣት ይፈልጋሉ?}other{# ማውረዶች አሁን በሂደት ላይ ናቸው። ማውረዶቹን መተው እና ከGoogle Chrome መውጣት ይፈልጋሉ?}}</translation>
 <translation id="6566149418543181476">Google Chromeን በማዘመን ላይ (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">ወደ Chrome ተቀድቷል</translation>
 <translation id="6634887557811630702">Google Chrome የተዘመነ ነው።</translation>
 <translation id="6676384891291319759">በይነመረብን ተዳረስ</translation>
-<translation id="6697947395630195233">Chrome አካባቢዎን ለዚህ ጣቢያ ለማጋራት የአካባቢዎ መዳረሻ ይፈልጋል።</translation>
 <translation id="683440813066116847">Google Chrome Canary ለmDNS ትራፊክ ለመፍቀድ የውስጥ ደንብ።</translation>
 <translation id="686561893457936865">Chromeን ​​ወደ ሁሉም ቦታ ይውሰዱት</translation>
 <translation id="6885412569789873916">የChrome ቅድመ-ይሁነታ መተግበሪያዎች</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 7c62f071..9bb4bd6 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -56,7 +56,6 @@
 
 سيؤدي تسجيل الدخول على أيّ حال إلى دمج معلومات Chrome مثل الإشارات المرجعية والسجل والإعدادات الأخرى مع <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">‏لإظهار قائمة Chrome</translation>
-<translation id="2416359993254398973">‏يحتاج Chrome إلى إذن لاستخدام الكاميرا لموقع الويب هذا.</translation>
 <translation id="2429317896000329049">‏تعذر على Google Chrome مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation>
 <translation id="2446511512801740068">‏Chrome غير محدّث لأنه لم تتم إعادة تشغيله منذ فترة. هناك تحديث متوفر وسيتم تطبيقه بمجرد إعادة تشغيله.</translation>
 <translation id="2485422356828889247">إزالة التثبيت</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">‏يمكنك المساعدة في تحسين Google Chrome عن طريق إرسال تقارير الأعطال و<ph name="UMA_LINK" /> إلى Google</translation>
 <translation id="2689103672227170538">‏غيّرت هذه الإضافة الصفحة التي تظهر عند بدء تشغيل Chrome.</translation>
 <translation id="2705403826523567092">تسجيل الدخول للتمتع بتجربة تصفح مخصصة، والمزامنة في جميع الأجهزة</translation>
-<translation id="2769762047821873045">‏ليس Google Chrome متصفحك الافتراضي.</translation>
 <translation id="2770231113462710648">تغيير المتصفح الافتراضي إلى:</translation>
 <translation id="2799223571221894425">إعادة تشغيل</translation>
 <translation id="2847461019998147611">‏عرض Google Chrome بهذه اللغة</translation>
@@ -161,10 +159,8 @@
 <translation id="5495581687705680288">‏الوحدات المحملة في Google Chrome</translation>
 <translation id="556024056938947818">‏يحاول Google Chrome إظهار كلمات المرور.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">‏يحتاج Chrome إلى إذن لاستخدام الميكروفون لموقع الويب هذا.</translation>
 <translation id="565744775970812598">‏قد يكون ملف <ph name="FILE_NAME" /> ضارًا، لذلك فقد حظره Chrome.</translation>
 <translation id="573759479754913123">‏حول نظام التشغيل Chrome</translation>
-<translation id="5749068826913805084">‏يحتاج Chrome الوصول إلى سعة التخزين لتنزيل الملفات.</translation>
 <translation id="5774845247549698882">‏يتم عرض نظام التشغيل Chrome بهذه اللغة</translation>
 <translation id="5855036575689098185">‏البرامج التي تعمل على جهاز الكمبيوتر لا تتوافق مع Google Chrome.</translation>
 <translation id="5877064549588274448">تم تغيير القناة. يمكنك إعادة تشغيل الجهاز لتدخل التغييرات حيز التنفيذ.</translation>
@@ -183,7 +179,6 @@
 <translation id="6291549208091401781">‏تم تثبيت Google Chrome من قبل لجميع المستخدمين على الكمبيوتر.</translation>
 <translation id="6338556085225130112">‏تحديث Google Chrome</translation>
 <translation id="6368958679917195344">‏أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" /> إضافي.</translation>
-<translation id="6393863479814692971">‏يحتاج Chrome إلى إذن لاستخدام الكاميرا والميكروفون لموقع الويب هذا.</translation>
 <translation id="6410540444482791104">‏يمكنك المساعدة في جعل Chrome أكثر أمانًا وأسهل استخدامًا عن طريق إرسال بعض معلومات النظام ومحتوى الصفحة تلقائيًا إلى Google للمساعدة في اكتشاف المواقع والتطبيقات الضارة.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{‏هناك تنزيل قيد التقدم حاليًا. هل تريد إلغاء التنزيل والخروج من Google Chrome؟}zero{‏هناك # من التنزيلات قيد التقدم حاليًا. هل تريد إلغاء التنزيلات والخروج من Google Chrome؟}two{‏هناك تنزيلان (#) قيد التقدم حاليًا. هل تريد إلغاء التنزيلين والخروج من Google Chrome؟}few{‏هناك # تنزيلات قيد التقدم حاليًا. هل تريد إلغاء التنزيلات والخروج من Google Chrome؟}many{‏هناك # تنزيلاً قيد التقدم حاليًا. هل تريد إلغاء التنزيلات والخروج من Google Chrome؟}other{‏هناك # من التنزيلات قيد التقدم حاليًا. هل تريد إلغاء التنزيلات والخروج من Google Chrome؟}}</translation>
 <translation id="6566149418543181476">‏جارٍ تحديث Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -191,7 +186,6 @@
 <translation id="6600954340915313787">‏تم النسخ إلى Chrome</translation>
 <translation id="6634887557811630702">‏Google Chrome محدّث.</translation>
 <translation id="6676384891291319759">الدخول إلى الإنترنت</translation>
-<translation id="6697947395630195233">‏يحتاج Chrome إلى الوصول إلى موقعك الجغرافي لمشاركة موقعك الجغرافي مع موقع الويب هذا.</translation>
 <translation id="683440813066116847">‏قاعدة الوارد إلى Google Chrome Canary للسماح بحركة مرور mDNS.</translation>
 <translation id="686561893457936865">‏إمكانية استخدام Chrome في كل مكان</translation>
 <translation id="6885412569789873916">‏تطبيقات الإصدار التجريبي من Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb
index 38617a4..17252c77 100644
--- a/chrome/app/resources/google_chrome_strings_bg.xtb
+++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -56,7 +56,6 @@
 
 В случай че влезете въпреки това, данните в Chrome като отметки, история и други настройки ще се обединят с/ъс <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Показване на менюто на Chrome</translation>
-<translation id="2416359993254398973">Chrome се нуждае от разрешение за достъп до камерата ви за този сайт.</translation>
 <translation id="2429317896000329049">Google Chrome не можа да синхронизира данните ви, защото синхронизирането не е налице за домейна ви.</translation>
 <translation id="2446511512801740068">Chrome не е актуален, защото не е бил стартиран отново известно време. Налице е актуализация, която ще бъде приложена веднага, когато рестартирате.</translation>
 <translation id="2485422356828889247">Деинсталиране</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Помогнете ни да подобрим Google Chrome, като ни изпращате <ph name="UMA_LINK" /> му и сигнали за сривове</translation>
 <translation id="2689103672227170538">Това разширение промени страницата, която се показва при стартиране на Chrome.</translation>
 <translation id="2705403826523567092">Влезте в профила си, за да сърфирате персонализирано и активността ви да се синхронизира на всички устройства</translation>
-<translation id="2769762047821873045">Google Chrome не е браузърът ви по подразбиране.</translation>
 <translation id="2770231113462710648">Промяна на браузъра по подразбиране с/ъс:</translation>
 <translation id="2799223571221894425">Стартиране отново</translation>
 <translation id="2847461019998147611">Показване на Google Chrome на този език</translation>
@@ -159,10 +157,8 @@
 <translation id="5495581687705680288">Модули, заредени в Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome опитва да покаже паролите.</translation>
 <translation id="5566025111015594046">Google Chrome (входящ трафик за mDNS)</translation>
-<translation id="557283862590186398">Chrome се нуждае от разрешение за достъп до микрофона ви за този сайт.</translation>
 <translation id="565744775970812598">Chrome блокира „<ph name="FILE_NAME" />“, тъй като файлът може да е опасен.</translation>
 <translation id="573759479754913123">Всичко за Chrome OS</translation>
-<translation id="5749068826913805084">Chrome се нуждае от достъп до хранилището, за да изтегля файлове.</translation>
 <translation id="5774845247549698882">Chrome OS се показва на този език</translation>
 <translation id="5855036575689098185">Софтуерът, изпълняван на компютъра ви, е несъвместим с Google Chrome.</translation>
 <translation id="5877064549588274448">Каналът бе променен. Рестартирайте устройството си, за да се приложат промените.</translation>
@@ -181,7 +177,6 @@
 <translation id="6291549208091401781">Google Chrome вече е инсталиран за всички потребители на компютъра ви.</translation>
 <translation id="6338556085225130112">Google Chrome се актуализира</translation>
 <translation id="6368958679917195344">Chrome OS е възможна благодарение на допълнителен <ph name="BEGIN_LINK_CROS_OSS" />софтуер с отворен код<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome се нуждае от разрешение за достъп до камерата и микрофона ви за този сайт.</translation>
 <translation id="6410540444482791104">Можете да ни помогнете да направим браузъра Chrome по-надежден и по-лесен за използване, като автоматично изпращате до Google системна информация и част от съдържанието на страниците, за да ни съдействате при откриването на опасни приложения и сайтове.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{В момента се изтегля файл. Искате ли да анулирате изтеглянето и да излезете от Google Chrome?}other{В момента се изтеглят # файла. Искате ли да анулирате изтеглянията и да излезете от Google Chrome?}}</translation>
 <translation id="6566149418543181476">Google Chrome се актуализира (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -189,7 +184,6 @@
 <translation id="6600954340915313787">Копирано в Chrome</translation>
 <translation id="6634887557811630702">Google Chrome е актуален.</translation>
 <translation id="6676384891291319759">Достъп до интернет</translation>
-<translation id="6697947395630195233">Chrome се нуждае от достъп до данните за местоположението ви, за да ги сподели с този сайт.</translation>
 <translation id="683440813066116847">Правило за Google Chrome Canary за допускане на входящия трафик за mDNS.</translation>
 <translation id="686561893457936865">Използвайте Chrome навсякъде</translation>
 <translation id="6885412569789873916">Приложения за Chrome бета</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index c1c6ffb..16ba1f9 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -22,7 +22,7 @@
 <translation id="1585657529869845941">এটি দেখানো হলে <ph name="BEGIN_BOLD" />যেকোনওভাবে পরিবর্তন করতে<ph name="END_BOLD" /> ক্লিক করুন</translation>
 <translation id="1587223624401073077">Google Chrome আপনার ক্যামেরা ব্যবহার করছে৷</translation>
 <translation id="1587325591171447154"><ph name="FILE_NAME" /> বিপজ্জনক, তাই Chrome এটিকে অবরুদ্ধ করেছে।</translation>
-<translation id="1619887657840448962">Chrome কে আরও নিরাপদ করতে, আমরা নীচের এক্সটেনশানটি অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছিল৷</translation>
+<translation id="1619887657840448962">Chrome কে আরও নিরাপদ করতে, আমরা নীচের এক্সটেনশানটি অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়তো আপনাকে না জানিয়ে যোগ করা হয়েছিল৷</translation>
 <translation id="1628000112320670027">Chrome সম্পর্কে সহায়তা পান</translation>
 <translation id="163860049029591106">Chrome OS দিয়ে শুরু করুন</translation>
 <translation id="1653828314016431939">ঠিক আছে - এখন পুর্নসূচনা করুন</translation>
@@ -56,7 +56,6 @@
 
 যেকোনো উপায়ে প্রবেশ করা হলে তা বুকমার্কগুলি, ইতিহাস, এবং অন্যান্য সেটিংসের মত Chrome তথ্যকে <ph name="ACCOUNT_EMAIL_NEW" /> এ মার্জ করবে৷</translation>
 <translation id="2397416548179033562">Chrome মেনু দেখান</translation>
-<translation id="2416359993254398973">এই সাইটটির জন্য Chrome কে আপনার ক্যামেরায় অ্যাক্সেস দিতে হবে।</translation>
 <translation id="2429317896000329049">আপনার ডোমেনে সিঙ্ক উপলব্ধ না থাকার কারণে Google Chrome সিঙ্ক করতে পারেনি৷</translation>
 <translation id="2446511512801740068">Chrome পুরানো হয়ে গেছে কারণ কিছু সময় ধরে এটিকে পুনঃলঞ্চ করা হয়নি। একটি আপডেট উপলব্ধ রয়েছে এবং আপনি পুনঃলঞ্চ করার সাথে সাথেই এটি প্রয়োগ করা হবে।</translation>
 <translation id="2485422356828889247">আনইনস্টল</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Google এ <ph name="UMA_LINK" /> এবং ক্র্যাশ প্রতিবেদনগুলি পাঠিয়ে Google Chrome কে আরও ভাল করতে সহায়তা করুন৷</translation>
 <translation id="2689103672227170538">আপনি Chrome শুরু করলে কোন পৃষ্ঠাটি দেখানো হবে তা এই এক্সটেনশানটি পরিবর্তন করেছে।</translation>
 <translation id="2705403826523567092">সমস্ত ডিভাইস জুড়ে সিঙ্ক করা ব্যক্তিগতকৃত ব্রাউজিংয়ের অভিজ্ঞতার জন্য সাইন-ইন করুন</translation>
-<translation id="2769762047821873045">Google Chrome আপনার ডিফল্ট ব্রাউসার নয় ৷</translation>
 <translation id="2770231113462710648">ডিফল্ট ব্রাউজার এতে পরিবর্তন করুন:</translation>
 <translation id="2799223571221894425">পুনঃশুরু</translation>
 <translation id="2847461019998147611">এই ভাষায় Google Chrome প্রদর্শন করুন</translation>
@@ -126,7 +124,7 @@
 <translation id="4567424176335768812">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে প্রবেশ করেছেন৷ এখন আপনি আপনার সমস্ত প্রবেশ করা ডিভাইসে আপনার বুকমার্ক, ইতিহাস এবং অন্যান্য সেটিংস অ্যাক্সেস করতে পারেন৷</translation>
 <translation id="4600710005438004015">Chrom লেটেস্ট ভার্সনে আপডেট করা যাচ্ছে না, তাই আপনি নতুন বৈশিষ্ট্য এবং সুরক্ষা সমাধানগুলি পাচ্ছেন না।</translation>
 <translation id="4631713731678262610">Chromium মেনুর মধ্যে লুকান</translation>
-<translation id="4633000520311261472">Chrome কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
+<translation id="4633000520311261472">Chrome কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়তো আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
 <translation id="4664415150087723341">Google Chrome এর জন্য একটি বিশেষ সুরক্ষা আপডেট এইমাত্র প্রয়োগ করা হয়েছে; এটা কার্যকর করার জন্য (আমরা আপনার ট্যাবগুলি পুনরুদ্ধার করব) আপনার এখনই একে পুনরায় চালু করা উচিত হবে।</translation>
 <translation id="4700157086864140907">Google Chrome আপনি Google সার্ভারগুলিতে ব্রাউজারে কী টাইপ করেন তা পাঠিয়ে আরও স্মার্ট বানান-পরীক্ষণ সরবরাহ করতে পারে এতে আপনাকে Google অনুসন্ধানে ব্যবহৃত একই বানান-পরীক্ষণের প্রযুক্তি ব্যবহার করার অনুমতি দেয়৷</translation>
 <translation id="4728575227883772061">অনির্দিষ্ট ত্রুটির জন্য ইনস্টলেশন ব্যর্থ হয়েছে৷ যদি Google Chrome বর্তমানে চলতে থাকে তবে দয়া করে এটি বন্ধ করে আবার চেষ্টা করুন৷</translation>
@@ -161,10 +159,8 @@
 <translation id="5495581687705680288">Google Chrome-এ মডিউলগুলি লোড হয়েছে</translation>
 <translation id="556024056938947818">Google Chrome পাসওয়ার্ডগুলি দেখানোর চেষ্টা করছে৷</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">এই সাইটটির জন্য Chrome কে আপনার মাইক্রোফোনে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> বিপজ্জনক হতে পারে, তাই Chrome এটিকে অবরুদ্ধ করেছে।</translation>
 <translation id="573759479754913123">Chrome OS সম্পর্কে </translation>
-<translation id="5749068826913805084">ফাইল ডাউনলোড করতে Chrome এর জন্য সঞ্চয়স্থানের অ্যাক্সেস প্রয়োজন।</translation>
 <translation id="5774845247549698882">Chrome OS এই ভাষায় প্রদর্শিত হচ্ছে</translation>
 <translation id="5855036575689098185">আপনার কম্পিউটারে যে সফটওয়্যারটি চলছে  সেটি Google Chrome এর সঙ্গে সঙ্গতিপূর্ণ নয়৷</translation>
 <translation id="5877064549588274448">চ্যানেল পরিবর্তিত হয়েছে৷ পরিবর্তনগুলি প্রয়োগ করার জন্য আপনার ডিভাইস আবার শুরু করুন৷</translation>
@@ -183,7 +179,6 @@
 <translation id="6291549208091401781">Google Chrome ইতোমধ্যে আপনার কম্পিউটারের সকল ব্যবহারকারীর জন্য ইনস্টল করা হয়েছে।</translation>
 <translation id="6338556085225130112">Google Chrome আপডেট করা হচ্ছে</translation>
 <translation id="6368958679917195344">Chrome OS সম্ভবত অতিরিক্ত <ph name="BEGIN_LINK_CROS_OSS" />মুক্ত উৎস সফ্টওয়্যার<ph name="END_LINK_CROS_OSS" /> দিয়ে তৈরি৷</translation>
-<translation id="6393863479814692971">এই সাইটটির জন্য Chrome কে আপনার ক্যামেরা এবং মাইক্রোফোনে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="6410540444482791104">বিপজ্জনক অ্যাপ্লিকেশান এবং সাইট সনাক্ত করতে সহায়তা দিতে স্বয়ংক্রিয়ভাবে কিছু তথ্য ও পৃষ্ঠা সামগ্রী Google এ পাঠানোর মাধ্যমে Chrome কে আরও নিরাপদ ও সহজে ব্যবহারযোগ্য করে তুলতে সাহায্য করতে পারেন।</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{বর্তমানে একটি ডাউনলোড হচ্ছে। আপনি কি ডাউনলোড বাতিল করে Google Chrome থেকে বেরিয়ে যেতে চান?}one{বর্তমানে #টি ডাউনলোড হচ্ছে। আপনি কি ডাউনলোডগুলি বাতিল করে Google Chrome থেকে বেরিয়ে যেতে চান?}other{বর্তমানে #টি ডাউনলোড হচ্ছে। আপনি কি ডাউনলোডগুলি বাতিল করে Google Chrome থেকে বেরিয়ে যেতে চান?}}</translation>
 <translation id="6566149418543181476">Google Chrome আপডেট হচ্ছে (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -191,7 +186,6 @@
 <translation id="6600954340915313787">Chrome-এ প্রতিলিপি করা হয়েছে</translation>
 <translation id="6634887557811630702">Google Chrome আপ টু ডেট আছে:</translation>
 <translation id="6676384891291319759">ইন্টারনেটটি অ্যাক্সেস করুন</translation>
-<translation id="6697947395630195233">এই সাইটটির সাথে আপনার অবস্থান শেয়ার করার জন্য Chrome কে আপনার অবস্থানের তথ্যে অ্যাক্সেস দিতে হবে।</translation>
 <translation id="683440813066116847">mDNS ট্রাফিকের অনুমতি দিতে Google Chrome Canary এর জন্য ইনবাউন্ড নিয়ম।</translation>
 <translation id="686561893457936865">Chrome কে সর্বত্র নিয়ে চলুন</translation>
 <translation id="6885412569789873916">Chrome বিটা অ্যাপ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index c50bd8b..d4cb8d2e 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -54,7 +54,6 @@
 
 En iniciar la sessió, sigui amb l'usuari que sigui, es combinarà amb <ph name="ACCOUNT_EMAIL_NEW" /> la informació de Chrome com ara adreces d'interès, historial i altres configuracions.</translation>
 <translation id="2397416548179033562">Mostra el menú de Chrome</translation>
-<translation id="2416359993254398973">Per visitar aquest lloc web, Chrome necessita permís per accedir a la teva càmera.</translation>
 <translation id="2429317896000329049">Google Chrome no ha pogut sincronitzar les dades perquè la sincronització no està disponible per al vostre domini.</translation>
 <translation id="2446511512801740068">Chrome no està actualitzat perquè fa temps que no s'inicia. Hi ha una actualització disponible i s'aplicarà tan aviat com el tornis a iniciar.</translation>
 <translation id="2485422356828889247">Desinstal·la</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Ajudeu a millorar Google Chrome; envieu informes d'error i <ph name="UMA_LINK" /> a Google.</translation>
 <translation id="2689103672227170538">Aquesta extensió ha canviat la pàgina que es mostra quan inicieu Chrome.</translation>
 <translation id="2705403826523567092">Inicia la sessió per obtenir una experiència de navegació personalitzada, que se sincronitzi en diferents dispositius</translation>
-<translation id="2769762047821873045">Google Chrome no és el navegador predeterminat.</translation>
 <translation id="2770231113462710648">Canvia el navegador predeterminat a:</translation>
 <translation id="2799223571221894425">Reinicia</translation>
 <translation id="2847461019998147611">Mostra Google Chrome en aquest idioma</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Mòduls carregats a Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome està provant de mostrar les contrasenyes.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Per visitar aquest lloc web, Chrome necessita permís per accedir al teu micròfon.</translation>
 <translation id="565744775970812598">Chrome ha bloquejat <ph name="FILE_NAME" /> perquè pot ser perillós.</translation>
 <translation id="573759479754913123">Sobre Chrome OS</translation>
-<translation id="5749068826913805084">Chrome necessita tenir accés a l'emmagatzematge per poder baixar fitxers.</translation>
 <translation id="5774845247549698882">Chrome OS es mostra en aquest idioma</translation>
 <translation id="5855036575689098185">El programari que s'executa al vostre ordinador no és compatible amb Google Chrome.</translation>
 <translation id="5877064549588274448">El canal ha canviat. Reinicieu el dispositiu perquè s'apliquin els canvis.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Ja tens instal·lat Google Chrome per a tots els usuaris de l'ordinador.</translation>
 <translation id="6338556085225130112">S'està actualitzant Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS és possible gràcies a <ph name="BEGIN_LINK_CROS_OSS" />programari addicional de codi obert<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Per visitar aquest lloc web, Chrome necessita permís per accedir a la teva càmera i al teu micròfon.</translation>
 <translation id="6410540444482791104">Per fer que Chrome sigui més segur i més fàcil d'utilitzar, envia automàticament algunes dades del sistema i contingut de les pàgines a Google per ajudar a detectar les aplicacions i els llocs perillosos.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Hi ha una baixada en curs. Voleu cancel·lar-la i sortir de Google Chrome?}other{Hi ha # baixades en curs. Voleu cancel·lar-les i sortir de Google Chrome?}}</translation>
 <translation id="6566149418543181476">S'està actualitzant Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Copiada de Chrome</translation>
 <translation id="6634887557811630702">Google Chrome està actualitzat.</translation>
 <translation id="6676384891291319759">Accedeix a Internet</translation>
-<translation id="6697947395630195233">Chrome necessita accés a la teva ubicació per compartir-la amb aquest lloc web.</translation>
 <translation id="683440813066116847">Regla d'entrada de Google Chrome Canary per permetre el trànsit de mDNS.</translation>
 <translation id="686561893457936865">Emporta't Chrome on vagis</translation>
 <translation id="6885412569789873916">Aplicacions de Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index dff18fe..22246db 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -58,7 +58,6 @@
 
 Pokud se přesto přihlásíte, budou data prohlížeče Chrome (například záložky, historie a další nastavení) sloučena s účtem <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Zobrazit nabídku Chrome</translation>
-<translation id="2416359993254398973">Chrome pro tento web potřebuje oprávnění k přístupu k fotoaparátu.</translation>
 <translation id="2429317896000329049">Google Chrome nemohl synchronizovat vaše data, protože Synchronizace ve vaší doméně není k dispozici.</translation>
 <translation id="2446511512801740068">Prohlížeč Chrome není aktuální, protože nějakou dobu nebyl restartován. Je k dispozici aktualizace, která bude použita po restartování.</translation>
 <translation id="2485422356828889247">Odinstalovat</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Pomozte aplikaci Google Chrome zlepšovat tím, že budete společnosti Google zasílat zprávy o selhání a <ph name="UMA_LINK" />.</translation>
 <translation id="2689103672227170538">Toto rozšíření změnilo stránku, která se zobrazí při spuštění prohlížeče Chrome.</translation>
 <translation id="2705403826523567092">Chcete-li získat přizpůsobené prohlížení synchronizované mezi zařízeními, přihlaste se</translation>
-<translation id="2769762047821873045">Google Chrome není vaším výchozím prohlížečem.</translation>
 <translation id="2770231113462710648">Změnit výchozí prohlížeč na:</translation>
 <translation id="2799223571221894425">Restartovat</translation>
 <translation id="2847461019998147611">Zobrazit Google Chrome v tomto jazyce</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Moduly načtené do aplikace Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome se pokouší zobrazit hesla.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome pro tento web potřebuje oprávnění k přístupu k mikrofonu.</translation>
 <translation id="565744775970812598">Soubor <ph name="FILE_NAME" /> může být nebezpečný, proto jej Chrome zablokoval.</translation>
 <translation id="573759479754913123">O operačním systému Chrome OS</translation>
-<translation id="5749068826913805084">Aby bylo možné stahovat soubory, Chrome potřebuje přístup k úložišti.</translation>
 <translation id="5774845247549698882">Chrome OS se zobrazuje v tomto jazyce</translation>
 <translation id="5855036575689098185">Software spuštěný v počítači není kompatibilní s prohlížečem Google Chrome.</translation>
 <translation id="5877064549588274448">Verze byla změněna. Změny se projeví po restartování zařízení.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Prohlížeč Google Chrome je na tomto počítači již nainstalován pro všechny uživatele.</translation>
 <translation id="6338556085225130112">Aktualizace prohlížeče Google Chrome</translation>
 <translation id="6368958679917195344">Chrome 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" />.</translation>
-<translation id="6393863479814692971">Chrome pro tento web potřebuje oprávnění k přístupu k fotoaparátu a mikrofonu.</translation>
 <translation id="6410540444482791104">Automatickým hlášením některých informací o systému a obsahu stránek do Googlu můžete pomoci rozpoznávat nebezpečné aplikace a weby a zvýšit tak bezpečnost prohlížeče Chrome a usnadnit jeho používání.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Momentálně probíhá stahování. Chcete stahování zrušit a ukončit prohlížeč Google Chrome?}few{Momentálně probíhají # stahování. Chcete stahování zrušit a ukončit prohlížeč Google Chrome?}many{Momentálně probíhá # stahování. Chcete stahování zrušit a ukončit prohlížeč Google Chrome?}other{Momentálně probíhá # stahování. Chcete stahování zrušit a ukončit prohlížeč Google Chrome?}}</translation>
 <translation id="6566149418543181476">Aktualizace prohlížeče Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Zkopírováno do Chromu</translation>
 <translation id="6634887557811630702">Google Chrome je aktuální.</translation>
 <translation id="6676384891291319759">Přístup k internetu</translation>
-<translation id="6697947395630195233">Chrome potřebuje přístup k vaší poloze, aby ji mohl sdílet s tímto webem.</translation>
 <translation id="683440813066116847">Pravidlo příchozího provozu pro aplikaci Google Chrome Canary, které povolí provoz mDNS.</translation>
 <translation id="686561893457936865">Vezměte si Chrome všude s sebou</translation>
 <translation id="6885412569789873916">Chrome Beta – aplikace</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index c1ee6bb5..84b3adde 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -54,7 +54,6 @@
 
 Hvis du logger ind alligevel, flettes Chrome-oplysninger, som f.eks. bogmærker, historik and andre indstillinger, med <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Vis Chrome-menuen</translation>
-<translation id="2416359993254398973">Chrome skal have tilladelse til at bruge dit kamera på dette website.</translation>
 <translation id="2429317896000329049">Google Chrome kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængelig for dit domæne.</translation>
 <translation id="2446511512801740068">Chrome er forældet, da den ikke er blevet genstartet i et stykke tid. Der er en tilgængelig opdatering, som anvendes, så snart du genstarter.</translation>
 <translation id="2485422356828889247">Afinstaller</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Hjælp med at gøre Google Chrome bedre ved at sende fejlrapporter og <ph name="UMA_LINK" /> til Google</translation>
 <translation id="2689103672227170538">Denne udvidelse har ændret din startside i Chrome.</translation>
 <translation id="2705403826523567092">Log ind for at få en tilpasset browseroplevelse, der er synkroniseret på alle dine enheder</translation>
-<translation id="2769762047821873045">Google Chrome er ikke din standardbrowser.</translation>
 <translation id="2770231113462710648">Skift standardbrowser til:</translation>
 <translation id="2799223571221894425">Genstart</translation>
 <translation id="2847461019998147611">Vis Google Chrome på dette sprog</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Moduler indlæst i Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome forsøger at vise adgangskoder.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome skal have tilladelse til at bruge din mikrofon på dette website.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> kan være skadelig, så Chrome har blokeret den.</translation>
 <translation id="573759479754913123">Om Chrome OS</translation>
-<translation id="5749068826913805084">Chrome skal have lageradgang for at kunne downloade filer.</translation>
 <translation id="5774845247549698882">Chrome OS vises på dette sprog</translation>
 <translation id="5855036575689098185">Du har software på din computer, som ikke er kompatibel med Google Chrome.</translation>
 <translation id="5877064549588274448">Kanalen er ændret. Genstart din enhed for at anvende ændringerne.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome er allerede installeret for alle brugere på computeren.</translation>
 <translation id="6338556085225130112">Opdaterer Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS er lavet ved hjælp af <ph name="BEGIN_LINK_CROS_OSS" />open source-software<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome skal have tilladelse til at bruge dit kamera og din mikrofon på dette website.</translation>
 <translation id="6410540444482791104">Du kan hjælpe med at gøre Chrome mere sikkert og nemmere at bruge ved automatisk at sende nogle systemoplysninger og sideindhold til Google som en hjælp til at registrere skadelige apps og websites.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Der er et download i gang i øjeblikket. Vil du at annullere dit download og lukke Google Chrome?}one{Der er # downloads i gang i øjeblikket. Vil du at annullere dine downloads og lukke Google Chrome?}other{Der er # downloads i gang i øjeblikket. Vil du at annullere dine downloads og lukke Google Chrome?}}</translation>
 <translation id="6566149418543181476">Opdaterer Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Kopieret til Chrome</translation>
 <translation id="6634887557811630702">Google Chrome er opdateret.</translation>
 <translation id="6676384891291319759">Få adgang til internettet</translation>
-<translation id="6697947395630195233">Chrome skal have adgang til din placering for at dele din placering med dette website.</translation>
 <translation id="683440813066116847">Indgående regel for Google Chrome Canary om at tillade mDNS-trafik.</translation>
 <translation id="686561893457936865">Tag Chrome med overalt</translation>
 <translation id="6885412569789873916">Apps i Chrome beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 4e2d44f..49b8861e 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -54,7 +54,6 @@
 
 Sollten Sie sich trotzdem anmelden, werden die Chrome-Daten wie Lesezeichen, Verlauf und andere Einstellungen in <ph name="ACCOUNT_EMAIL_NEW" /> zusammengeführt.</translation>
 <translation id="2397416548179033562">Chrome-Menü anzeigen</translation>
-<translation id="2416359993254398973">Chrome benötigt für diese Website die Berechtigung, auf Ihre Kamera zuzugreifen.</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="2446511512801740068">Chrome ist veraltet, da es über einen längeren Zeitraum nicht neu gestartet wurde. Ein Update ist verfügbar und wird übernommen, sobald Sie Chrome neu starten.</translation>
 <translation id="2485422356828889247">Deinstallieren</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Absturzberichte und <ph name="UMA_LINK" /> zur Verbesserung von Google Chrome an Google senden</translation>
 <translation id="2689103672227170538">Die beim Start von Chrome angezeigte Seite wurde durch diese Erweiterung geändert.</translation>
 <translation id="2705403826523567092">Melden Sie sich an, um das Browsererlebnis zu personalisieren und auf allen Ihren Geräten zu synchronisieren</translation>
-<translation id="2769762047821873045">Google Chrome ist nicht als Ihr Standardbrowser festgelegt.</translation>
 <translation id="2770231113462710648">Standardbrowser ändern in:</translation>
 <translation id="2799223571221894425">Neu starten</translation>
 <translation id="2847461019998147611">Google Chrome in dieser Sprache anzeigen</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Module in Google Chrome geladen</translation>
 <translation id="556024056938947818">Google Chrome versucht, Passwörter anzuzeigen.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome benötigt für diese Website die Berechtigung, auf Ihr Mikrofon zuzugreifen.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> ist möglicherweise schädlich und wurde daher von Chrome blockiert.</translation>
 <translation id="573759479754913123">Über Chrome OS</translation>
-<translation id="5749068826913805084">Chrome benötigt Speicherzugriff, um Dateien herunterladen zu können.</translation>
 <translation id="5774845247549698882">Chrome OS wird in dieser Sprache angezeigt</translation>
 <translation id="5855036575689098185">Auf Ihrem Computer befindet sich Software, die nicht mit Google Chrome kompatibel ist.</translation>
 <translation id="5877064549588274448">Kanal wurde geändert. Starten Sie Ihr Gerät neu, um die Änderungen zu übernehmen.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome ist bereits für alle Nutzer auf Ihrem Computer installiert.</translation>
 <translation id="6338556085225130112">Google Chrome wird aktualisiert</translation>
 <translation id="6368958679917195344">Chrome OS wird durch zusätzliche <ph name="BEGIN_LINK_CROS_OSS" />Open-Source-Software<ph name="END_LINK_CROS_OSS" /> möglich gemacht.</translation>
-<translation id="6393863479814692971">Chrome benötigt für diese Website die Berechtigung, auf Ihre Kamera und Ihr Mikrofon zuzugreifen.</translation>
 <translation id="6410540444482791104">Sie können dazu beitragen, die Verwendung von Chrome sicherer und nutzerfreundlicher zu machen, indem Sie einige Systeminformationen und Seiteninhalte automatisch an Google senden. Google kann so schädliche Apps und Websites besser erfassen.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Ein Download wird derzeit ausgeführt. Möchten Sie den Download abbrechen und Google Chrome beenden?}other{# Downloads werden derzeit ausgeführt. Möchten Sie die Downloads abbrechen und Google Chrome beenden?}}</translation>
 <translation id="6566149418543181476">Google Chrome wird aktualisiert (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">In Chrome kopiert</translation>
 <translation id="6634887557811630702">Google Chrome ist auf dem neuesten Stand.</translation>
 <translation id="6676384891291319759">Internetzugriff</translation>
-<translation id="6697947395630195233">Chrome benötigt Zugriff auf Ihren Standort, um ihn mit dieser Website zu teilen.</translation>
 <translation id="683440813066116847">Eingangsregel für die Zulassung von mDNS-Verkehr in Google Chrome Canary</translation>
 <translation id="686561893457936865">Chrome überall mitnehmen</translation>
 <translation id="6885412569789873916">Chrome Beta-Apps</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb
index 0c46400..654f424 100644
--- a/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -56,7 +56,6 @@
 
 Με τη σύνδεση, θα συγχωνευτούν στο Chrome πληροφορίες όπως οι σελιδοδείκτες, το ιστορικό και άλλες ρυθμίσεις στο <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Εμφάνιση του μενού του Chrome</translation>
-<translation id="2416359993254398973">Το Chrome χρειάζεται άδεια, για να αποκτήσει πρόσβαση στην κάμερα για αυτόν τον ιστότοπο.</translation>
 <translation id="2429317896000329049">Το Google Chrome δεν κατάφερε να συγχρονίσει τα δεδομένα σας επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας.</translation>
 <translation id="2446511512801740068">Το Chrome δεν είναι ενημερωμένο επειδή δεν έχει γίνει επανεκκίνησή του για αρκετό χρονικό διάστημα. Υπάρχει διαθέσιμη ενημέρωση και θα γίνει εφαρμογή της μόλις κάνετε επανεκκίνηση.</translation>
 <translation id="2485422356828889247">Κατάργηση Εγκατάστασης</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Βοηθήστε μας να κάνουμε το Google Chrome καλύτερο, αποστέλλωντας αναφορές σφαλμάτων και <ph name="UMA_LINK" /> στην Google</translation>
 <translation id="2689103672227170538">Αυτή η επέκταση άλλαξε τη σελίδα που εμφανίζεται κατά την εκκίνηση του Chrome.</translation>
 <translation id="2705403826523567092">Συνδεθείτε, για να απολαμβάνετε μια εξατομικευμένη εμπειρία περιήγησης, συγχρονισμένη σε όλες τις συσκευές</translation>
-<translation id="2769762047821873045">Το Google Chrome δεν είναι το προεπιλεγμένο πρόγραμμα περιήγησης.</translation>
 <translation id="2770231113462710648">Αλλαγή προεπιλεγμένου προγράμματος περιήγησης σε:</translation>
 <translation id="2799223571221894425">Επανεκκίνηση</translation>
 <translation id="2847461019998147611">Να εμφανίζεται το Google Chrome σε αυτήν τη γλώσσα</translation>
@@ -161,10 +159,8 @@
 <translation id="5495581687705680288">Στο Google Chrome φορτώθηκαν λειτουργικές μονάδες</translation>
 <translation id="556024056938947818">Το Google Chrome επιχειρεί να εμφανίσει κωδικούς πρόσβασης.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Το Chrome χρειάζεται άδεια, για να αποκτήσει πρόσβαση στο μικρόφωνο για αυτόν τον ιστότοπο.</translation>
 <translation id="565744775970812598">Το αρχείο <ph name="FILE_NAME" /> μπορεί να είναι επικίνδυνο, επομένως έχει αποκλειστεί από το Chrome.</translation>
 <translation id="573759479754913123">Σχετικά με το Chrome OS</translation>
-<translation id="5749068826913805084">Το Chrome χρειάζεται πρόσβαση στο χώρο αποθήκευσης για τη λήψη αρχείων.</translation>
 <translation id="5774845247549698882">Το Chrome OS εμφανίζεται σε αυτήν τη γλώσσα</translation>
 <translation id="5855036575689098185">Το λογισμικό που εκτελείται στον υπολογιστή δεν είναι συμβατό με το Google Chrome.</translation>
 <translation id="5877064549588274448">Το κανάλι έχει αλλάξει. Επανεκκινήστε τη συσκευή σας για να εφαρμόσετε τις αλλαγές.</translation>
@@ -183,7 +179,6 @@
 <translation id="6291549208091401781">Το Google Chrome είναι ήδη εγκατεστημένο για όλους τους χρήστες στον υπολογιστή σας.</translation>
 <translation id="6338556085225130112">Ενημέρωση Google Chrome</translation>
 <translation id="6368958679917195344">Το Chrome OS έγινε πραγματικότητα χάρη στην ύπαρξη πρόσθετων <ph name="BEGIN_LINK_CROS_OSS" />λογισμικών ανοικτού κώδικα<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Το Chrome χρειάζεται άδεια, για να αποκτήσει πρόσβαση στην κάμερα και το μικρόφωνο για αυτόν τον ιστότοπο.</translation>
 <translation id="6410540444482791104">Μπορείτε να βοηθήσετε να κάνουμε το Chrome πιο ασφαλές και εύχρηστο, αποστέλλοντας αυτόματα ορισμένες πληροφορίες συστήματος και περιεχόμενο σελίδων στην Google, για να διευκολυνθεί ο εντοπισμός επικίνδυνων εφαρμογών και ιστοτόπων.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Μία λήψη βρίσκεται σε εξέλιξη. Θέλετε να ακυρώσετε τη λήψη και να τερματίσετε το Google Chrome;}other{# λήψεις βρίσκονται σε εξέλιξη. Θέλετε να ακυρώσετε τις λήψεις και να τερματίσετε το Google Chrome;}}</translation>
 <translation id="6566149418543181476">Ενημέρωση του Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -191,7 +186,6 @@
 <translation id="6600954340915313787">Αντιγράφηκε στο Chrome</translation>
 <translation id="6634887557811630702">Το Google Chrome έχει ενημερωθεί.</translation>
 <translation id="6676384891291319759">Πρόσβαση στο Διαδίκτυο</translation>
-<translation id="6697947395630195233">Το Chrome χρειάζεται πρόσβαση στην τοποθεσία σας, για να την κοινοποιήσει σε αυτόν τον ιστότοπο.</translation>
 <translation id="683440813066116847">Εισερχόμενος κανόνας για το Google Chrome Canary για να επιτρέπεται η κυκλοφορία του mDNS.</translation>
 <translation id="686561893457936865">Πάρτε το Chrome μαζί σας παντού</translation>
 <translation id="6885412569789873916">Εφαρμογές Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index f8ef1ea..b9740fca 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -58,7 +58,6 @@
 
 Signing in anyway will merge Chrome information like bookmarks, history and other settings to <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Show Chrome menu</translation>
-<translation id="2416359993254398973">Chrome needs permission to access your camera for this site.</translation>
 <translation id="2429317896000329049">Google Chrome could not sync your data because Sync is not available for your domain.</translation>
 <translation id="2446511512801740068">Chrome is out of date because it hasn't been relaunched for a while. An update is available and will be applied as soon as you relaunch.</translation>
 <translation id="2485422356828889247">Uninstall</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Help make Google Chrome better by sending crash reports and <ph name="UMA_LINK" /> to Google</translation>
 <translation id="2689103672227170538">This extension has changed the page that is shown when you start Chrome.</translation>
 <translation id="2705403826523567092">Sign in for a personalised browsing experience, synced across devices</translation>
-<translation id="2769762047821873045">Google Chrome isn't your default browser.</translation>
 <translation id="2770231113462710648">Change default browser to:</translation>
 <translation id="2799223571221894425">Relaunch</translation>
 <translation id="2847461019998147611">Display Google Chrome in this language</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Modules loaded into Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome is trying to show passwords.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome needs permission to access your microphone for this site.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> may be dangerous, so Chrome has blocked it.</translation>
 <translation id="573759479754913123">About Chrome OS</translation>
-<translation id="5749068826913805084">Chrome needs storage access to download files.</translation>
 <translation id="5774845247549698882">Chrome OS is displayed in this language</translation>
 <translation id="5855036575689098185">Software running on your computer is incompatible with Google Chrome.</translation>
 <translation id="5877064549588274448">Channel changed. Restart your device to apply changes.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome is already installed for all users on your computer.</translation>
 <translation id="6338556085225130112">Updating Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS is made possible by additional <ph name="BEGIN_LINK_CROS_OSS" />open-source software<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome needs permission to access your camera and microphone for this site.</translation>
 <translation id="6410540444482791104">You can help make Chrome safer and easier to use by automatically sending some system information and page content to Google to help detect dangerous apps and sites.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{A download is currently in progress. Do you want to cancel the download and exit Google Chrome?}other{# downloads are currently in progress. Do you want to cancel the downloads and exit Google Chrome?}}</translation>
 <translation id="6566149418543181476">Updating Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Copied to Chrome</translation>
 <translation id="6634887557811630702">Google Chrome is up to date.</translation>
 <translation id="6676384891291319759">Access the Internet</translation>
-<translation id="6697947395630195233">Chrome needs access to your location to share your location with this site.</translation>
 <translation id="683440813066116847">Inbound rule for Google Chrome Canary to allow mDNS traffic.</translation>
 <translation id="686561893457936865">Take Chrome everywhere</translation>
 <translation id="6885412569789873916">Chrome Beta Apps</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 3b4b2825..94b84b4cb 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -54,7 +54,6 @@
 
 Si accedes de todos modos, se fusionará la información de Google Chrome, como los favoritos, el historial y otros parámetros de configuración en <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Mostrar el menú de Chrome</translation>
-<translation id="2416359993254398973">Chrome necesita permiso para acceder a tu cámara para este sitio.</translation>
 <translation id="2429317896000329049">Google Chrome no pudo sincronizar los datos porque la sincronización no está disponible para el dominio.</translation>
 <translation id="2446511512801740068">Chrome no está actualizado porque no se reinició por un tiempo. Cuando lo reinicies, se aplicará la actualización disponible.</translation>
 <translation id="2485422356828889247">Desinstalación</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Envía a Google informes de fallos y <ph name="UMA_LINK" /> para ayudar a mejorar Google Chrome.</translation>
 <translation id="2689103672227170538">Esta extensión cambió la página que se muestra al iniciar Chrome.</translation>
 <translation id="2705403826523567092">Accede para obtener una experiencia de navegación personalizada y sincronizada entre dispositivos</translation>
-<translation id="2769762047821873045">Google Chrome no es tu navegador predeterminado.</translation>
 <translation id="2770231113462710648">Cambiar el navegador predeterminado a:</translation>
 <translation id="2799223571221894425">Reiniciar</translation>
 <translation id="2847461019998147611">Mostrar Google Chrome en este idioma</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Los módulos se cargaron en Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome está intentando mostrar contraseñas.</translation>
 <translation id="5566025111015594046">Google Chrome (tráfico mDNS entrante)</translation>
-<translation id="557283862590186398">Chrome necesita permiso para acceder a tu micrófono para este sitio.</translation>
 <translation id="565744775970812598">Chrome bloqueó <ph name="FILE_NAME" /> porque es posible que sea un archivo peligroso.</translation>
 <translation id="573759479754913123">Acerca de Chrome OS</translation>
-<translation id="5749068826913805084">Chrome necesita acceder al almacenamiento para descargar archivos.</translation>
 <translation id="5774845247549698882">El Sistema operativo Chrome se muestra en este idioma</translation>
 <translation id="5855036575689098185">El software que se ejecuta en tu computadora no es compatible con Google Chrome.</translation>
 <translation id="5877064549588274448">Se cambió el canal. Reinicia el dispositivo para aplicar los cambios.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome ya está instalado para todos los usuarios en tu computadora.</translation>
 <translation id="6338556085225130112">Actualizando Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS es posible gracias al <ph name="BEGIN_LINK_CROS_OSS" />software de código abierto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
-<translation id="6393863479814692971">Chrome necesita permiso para acceder a tu cámara y micrófono para este sitio.</translation>
 <translation id="6410540444482791104">Para ayudar a detectar apps y sitios peligrosos y que Chrome sea más seguro y fácil de usar, envía de forma automática información del sistema y contenido de la página a Google.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{En este momento, hay una descarga en curso. ¿Deseas cancelarla y salir de Google Chrome?}other{En este momento, hay # descargas en curso. ¿Deseas cancelarlas y salir de Google Chrome?}}</translation>
 <translation id="6566149418543181476">Actualizando Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Se copió en Chrome.</translation>
 <translation id="6634887557811630702">Google Chrome está actualizado.</translation>
 <translation id="6676384891291319759">Acceder a Internet</translation>
-<translation id="6697947395630195233">Chrome necesita acceso a tu ubicación para compartirla con este sitio.</translation>
 <translation id="683440813066116847">Regla de entrada para que Google Chrome Canary permita el tráfico mDNS.</translation>
 <translation id="686561893457936865">Usa Chrome donde sea</translation>
 <translation id="6885412569789873916">Apps de Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index 792a681a..2b979c7 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -58,7 +58,6 @@
 
 Si decides iniciar sesión de todas formas, se fusionará la información de Chrome, como marcadores, historial y otras opciones, con la de <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Mostrar menú de Chrome</translation>
-<translation id="2416359993254398973">Chrome necesita permiso para acceder a la cámara en este sitio web.</translation>
 <translation id="2429317896000329049">Google Chrome no ha podido sincronizar los datos porque la función de sincronización no está disponible para tu dominio.</translation>
 <translation id="2446511512801740068">Chrome no está actualizado porque hace algún tiempo que no se reinicia. Hay una actualización disponible, que se aplicará en cuanto lo reinicies.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Ayudar a mejorar Google Chrome enviando informes sobre fallos y <ph name="UMA_LINK" /> a Google</translation>
 <translation id="2689103672227170538">Esta extensión ha cambiado la página que se muestra al iniciar Chrome.</translation>
 <translation id="2705403826523567092">Inicia sesión para disfrutar de una experiencia de navegación personalizada y sincronizada en todos tus dispositivos</translation>
-<translation id="2769762047821873045">Google Chrome no es tu navegador predeterminado.</translation>
 <translation id="2770231113462710648">Cambiar navegador predeterminado por:</translation>
 <translation id="2799223571221894425">Reiniciar</translation>
 <translation id="2847461019998147611">Mostrar Google Chrome en este idioma</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Módulos cargados en Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome está intentando mostrar contraseñas.</translation>
 <translation id="5566025111015594046">Google Chrome (tráfico mDNS entrante)</translation>
-<translation id="557283862590186398">Chrome necesita permiso para acceder al micrófono en este sitio web.</translation>
 <translation id="565744775970812598">Es posible que <ph name="FILE_NAME" /> sea peligroso, por lo que Chrome lo ha bloqueado.</translation>
 <translation id="573759479754913123">Información de Chrome OS</translation>
-<translation id="5749068826913805084">Chrome necesita acceso de almacenamiento para descargar archivos.</translation>
 <translation id="5774845247549698882">Chrome OS se muestra en este idioma</translation>
 <translation id="5855036575689098185">El software que se ejecuta en tu ordenador no es compatible con Google Chrome.</translation>
 <translation id="5877064549588274448">Se ha cambiado el canal. Reinicia el dispositivo para aplicar los cambios.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome ya está instalado para todos los usuarios de tu ordenador.</translation>
 <translation id="6338556085225130112">Actualizando Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS está creado con <ph name="BEGIN_LINK_CROS_OSS" />software libre<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
-<translation id="6393863479814692971">Chrome necesita permiso para acceder a la cámara y al micrófono en este sitio web.</translation>
 <translation id="6410540444482791104">Ayuda a que Chrome sea más seguro y se pueda utilizar más fácilmente enviando de forma automática información del sistema y contenido de las páginas a Google para que pueda detectar aplicaciones y sitios web peligrosos.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Actualmente hay una descarga en curso. ¿Quieres cancelar la descarga y salir de Google Chrome?}other{Actualmente hay # descargas en curso. ¿Quieres cancelar las descargas y salir de Google Chrome?}}</translation>
 <translation id="6566149418543181476">Actualizando Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Copiada a Chrome</translation>
 <translation id="6634887557811630702">Google Chrome está actualizado.</translation>
 <translation id="6676384891291319759">Accede a Internet.</translation>
-<translation id="6697947395630195233">Chrome necesita acceder a tu ubicación para compartirla con este sitio web.</translation>
 <translation id="683440813066116847">Regla entrante para que Google Chrome Canary permita tráfico mDNS.</translation>
 <translation id="686561893457936865">Llévate Chrome a todas partes</translation>
 <translation id="6885412569789873916">Aplicaciones de Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb
index 1bea14d..d33a1c4 100644
--- a/chrome/app/resources/google_chrome_strings_et.xtb
+++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -56,7 +56,6 @@
 
 Kui logite siiski sisse, liidetakse Chrome'i teave, nagu järjehoidjad, ajalugu ja muud seaded, kontoga <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Kuva Chrome'i menüü</translation>
-<translation id="2416359993254398973">Chrome vajab selle saidi puhul luba, et teie kaamerale juurde pääseda.</translation>
 <translation id="2429317896000329049">Google Chrome ei saa teie andmeid sünkroonida, sest sünkroonimine pole teie domeenil saadaval.</translation>
 <translation id="2446511512801740068">Chrome on aegunud, kuna seda ei ole tükk aega taaskäivitatud. Saadaval on värskendus, mis rakendatakse taaskäivitamisel.</translation>
 <translation id="2485422356828889247">Desinstalli</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Aidake Google Chrome'i täiustada, saates Googl'ile krahhiaruandeid ja lingi <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">See laiendus muutis seda, milline leht kuvatakse Chrome'i käivitamisel.</translation>
 <translation id="2705403826523567092">Kõikides seadmetes sünkroonitud isikupärastatud sirvimiskogemuse saamiseks logige sisse</translation>
-<translation id="2769762047821873045">Google Chrome ei ole vaikebrauser.</translation>
 <translation id="2770231113462710648">Asenda vaikebrauser:</translation>
 <translation id="2799223571221894425">Taaskäivita</translation>
 <translation id="2847461019998147611">Kuva Google Chrome selles keeles</translation>
@@ -161,10 +159,8 @@
 <translation id="5495581687705680288">Google Chrome'i laaditud moodulid</translation>
 <translation id="556024056938947818">Google Chrome püüab näidata paroole.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome vajab selle saidi puhul luba, et teie mikrofonile juurde pääseda.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> võib olla ohtlik, mistõttu Chrome blokeeris selle.</translation>
 <translation id="573759479754913123">Teave Chrome OS-i kohta</translation>
-<translation id="5749068826913805084">Chrome vajab failide allalaadimiseks juurdepääsu salvestusruumile.</translation>
 <translation id="5774845247549698882">Chrome OS kuvatakse selles keeles</translation>
 <translation id="5855036575689098185">Teie arvutis töötav tarkvara ei ühildu Google Chrome'iga.</translation>
 <translation id="5877064549588274448">Kanal on muutunud. Muudatuste rakendamiseks taaskäivitage oma seade.</translation>
@@ -183,7 +179,6 @@
 <translation id="6291549208091401781">Google Chrome on arvutisse kõigi kasutajate jaoks juba installitud.</translation>
 <translation id="6338556085225130112">Google Chrome'i värskendamine</translation>
 <translation id="6368958679917195344">Chrome OS on võimalik tänu <ph name="BEGIN_LINK_CROS_OSS" />avatud lähtekoodiga lisatarkvarale<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome vajab selle saidi puhul luba, et teie kaamerale ja mikrofonile juurde pääseda.</translation>
 <translation id="6410540444482791104">Saate aidata muuta Chrome'i turvalisemaks ja hõlpsamini kasutatavaks, kui lubate saata Google'ile automaatselt teatud süsteemiteavet ning lehesisu, mis aitab tuvastada ohtlikke rakendusi ja saite.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Allalaadimine on praegu pooleli. Kas soovite allalaadimise tühistada ja Google Chrome'ist väljuda?}other{# allalaadimist on praegu pooleli. Kas soovite allalaadimised tühistada ja Google Chrome'ist väljuda?}}</translation>
 <translation id="6566149418543181476">Google Chrome'i värskendamine (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -191,7 +186,6 @@
 <translation id="6600954340915313787">Chrome'i kopeeritud</translation>
 <translation id="6634887557811630702">Google Chrome on ajakohane.</translation>
 <translation id="6676384891291319759">Pääs Internetti</translation>
-<translation id="6697947395630195233">Chrome vajab juurdepääsu teie asukohale, et seda selle saidiga jagada.</translation>
 <translation id="683440813066116847">Sissetuleku reegel Google Chrome Canaryle mDNS-liikluse lubamiseks.</translation>
 <translation id="686561893457936865">Võtke Chrome kõikjale kaasa</translation>
 <translation id="6885412569789873916">Chrome'i beetaversiooni rakendused</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index d1e55ac..2d5ed8b 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -54,7 +54,6 @@
 
 ورود به سیستم به هر حال اطلاعات Chrome مانند نشانک‌ها، سابقه، و سایر تنظیمات را در <ph name="ACCOUNT_EMAIL_NEW" /> ادغام می‌کند.</translation>
 <translation id="2397416548179033562">‏نمایش منوی Chrome</translation>
-<translation id="2416359993254398973">‏Chrome به مجوز دسترسی به دوربین برای این سایت نیاز دارد.</translation>
 <translation id="2429317896000329049">‏Google Chrome قادر به همگام‌سازی داده‌های شما نبود زیرا همگام‌سازی برای دامنه شما قابل دسترسی نیست.</translation>
 <translation id="2446511512801740068">‏Chrome قدیمی است چون برای مدتی راه‌اندازی مجدد نشده است. یک نسخه به‌روز دردسترس است و به‌محض راه‌اندازی مجدد اعمال خواهد شد.</translation>
 <translation id="2485422356828889247">حذف نصب</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">‏با ارسال گزارش‌های خرابی و <ph name="UMA_LINK" /> به Google، به بهبود Google Chrome کمک کنید.</translation>
 <translation id="2689103672227170538">‏این افزونه، صفحه‌ای را تغییر داده است که هنگام راه‌اندازی Chrome نشان داده می‌شود.</translation>
 <translation id="2705403826523567092">برای تجربه مرور شخصی‌سازی‌شده و همگام‌سازی‌شده در تمام دستگاه‌ها، به سیستم وارد شوید</translation>
-<translation id="2769762047821873045">‏Google Chrome مرورگر پیش‌فرض شما نیست.</translation>
 <translation id="2770231113462710648">تغییر مرورگر پیش‌فرض به:</translation>
 <translation id="2799223571221894425">راه‌اندازی مجدد</translation>
 <translation id="2847461019998147611">‏نمایش Google Chrome به این زبان</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">‏مدول های بارگیری شده در Google Chrome</translation>
 <translation id="556024056938947818">‏Google Chrome می‌خواهد گذرواژه‌ها را نمایش دهد.</translation>
 <translation id="5566025111015594046">‏Google Chrome (ورودی mDNS)</translation>
-<translation id="557283862590186398">‏Chrome برای این سایت به مجوز دسترسی به میکروفون نیاز دارد.</translation>
 <translation id="565744775970812598">‏<ph name="FILE_NAME" /> ممکن است خطرناک باشد، بنابراین Chrome آن را مسدود کرده است.</translation>
 <translation id="573759479754913123">‏درباره سیستم عامل Chrome</translation>
-<translation id="5749068826913805084">‏Chrome برای بارگیری فایل‌ها باید به حافظه دسترسی داشته باشد.</translation>
 <translation id="5774845247549698882">‏سیستم عامل Chrome به این زبان نشان داده می‌شود</translation>
 <translation id="5855036575689098185">‏نرم‌افزار در حال اجرا در رایانه شما با Google Chrome سازگار نیست.</translation>
 <translation id="5877064549588274448">کانال تغییر کرد. برای اعمال تغییرات دستگاه خود را مجدداً راه‌اندازی کنید.</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">‏Google Chrome از قبل برای همه کاربران این رایانه نصب شده است.</translation>
 <translation id="6338556085225130112">‏به‌روزرسانی Google Chrome</translation>
 <translation id="6368958679917195344">‏Chrome OS با یک <ph name="BEGIN_LINK_CROS_OSS" />نرم‌افزار منبع آزاد<ph name="END_LINK_CROS_OSS" /> دیگر امکان‌پذیر است.</translation>
-<translation id="6393863479814692971">‏Chrome برای این سایت به مجوز دسترسی به دوربین و میکروفون نیاز دارد.</translation>
 <translation id="6410540444482791104">‏می‌توانید با ارسال خودکار برخی از اطلاعات سیستم و محتوای صفحه به Google‏، Chrome را ایمن‌تر و آسان‌تر کنید. Google از این اطلاعات برای شناسایی برنامه‌ها و سایت‌های خطرناک استفاده می‌کند.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{‏در حال حاضر یک بارگیری در حال انجام است. آیا می‌خواهید بارگیری را لغو کنید و از Google Chrome خارج شوید؟}one{‏در حال حاضر # بارگیری در حال انجام است. آیا می‌خواهید بارگیری را لغو کنید و از Google Chrome خارج شوید؟}other{‏در حال حاضر # بارگیری در حال انجام است. آیا می‌خواهید بارگیری‌ها را لغو کنید و از Google Chrome خارج شوید؟}}</translation>
 <translation id="6566149418543181476">‏درحال به‌روزرسانی Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">‏کپی در Chrome</translation>
 <translation id="6634887557811630702">‏Google Chrome به‌روز است</translation>
 <translation id="6676384891291319759">دسترسی به اینترنت</translation>
-<translation id="6697947395630195233">‏Chrome برای اشتراک‌گذاری مکانتان با این سایت باید به مکانتان دسترسی داشته باشد.</translation>
 <translation id="683440813066116847">‏قانون ترافیک ورودی برای Google Chrome Canary به منظور اجازه به ترافیک mDNS .</translation>
 <translation id="686561893457936865">‏Chrome را همه‌ جا ببرید</translation>
 <translation id="6885412569789873916">‏برنامه‌های Chrome نسخه بتا</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index ea2d4d3..5caaf83 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -54,7 +54,6 @@
 
 Jos kirjaudut silti sisään, Chrome-tiedot, kuten kirjanmerkit, historia ja asetukset, yhdistetään tiliin <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Näytä Chrome-valikko</translation>
-<translation id="2416359993254398973">Chrome tarvitsee oikeuden käyttää kameraasi tällä sivustolla.</translation>
 <translation id="2429317896000329049">Google Chrome ei voinut synkronoida tietoja, koska synkronointi ei ole käytettävissä verkkotunnuksessasi.</translation>
 <translation id="2446511512801740068">Chrome on vanhentunut, koska sitä ei ole käynnistetty uudelleen viime aikoina. Päivitys on saatavilla, ja se otetaan käyttöön uudelleenkäynnistyksen jälkeen.</translation>
 <translation id="2485422356828889247">Poista</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Auta parantamaan Google Chromea lähettämällä kaatumisilmoitukset ja <ph name="UMA_LINK" /> Googlelle</translation>
 <translation id="2689103672227170538">Tämä laajennus on vaihtanut Chromen aloitussivun.</translation>
 <translation id="2705403826523567092">Kirjautumalla saat yksilöllisemmän selauskokemuksen, joka synkronoidaan kaikkien laitteidesi välillä.</translation>
-<translation id="2769762047821873045">Google Chrome ei ole oletusselain.</translation>
 <translation id="2770231113462710648">Vaihda oletusselaimeksi:</translation>
 <translation id="2799223571221894425">Käynnistä uudelleen</translation>
 <translation id="2847461019998147611">Näytä Google Chrome tällä kielellä</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">Google Chromeen ladatut moduulit</translation>
 <translation id="556024056938947818">Google Chrome yrittää näyttää salasanoja.</translation>
 <translation id="5566025111015594046">Google Chrome (saapuva mDNS)</translation>
-<translation id="557283862590186398">Chrome tarvitsee oikeuden käyttää mikrofoniasi tällä sivustolla.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> voi olla vaarallinen, joten Chrome on estänyt sen.</translation>
 <translation id="573759479754913123">Tietoja Chrome-käyttöjärjestelmästä</translation>
-<translation id="5749068826913805084">Chrome tarvitsee tallennustilan käyttöoikeuden tiedostojen lataamiseen.</translation>
 <translation id="5774845247549698882">Chrome-käyttöjärjestelmä näytetään tällä kielellä.</translation>
 <translation id="5855036575689098185">Tietokoneellasi käynnissä oleva ohjelmisto on yhteensopimaton Google Chromen kanssa.</translation>
 <translation id="5877064549588274448">Kanava vaihdettiin. Ota muutokset käyttöön käynnistämällä laite uudelleen.</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">Google Chrome on jo asennettuna kaikille tietokoneen käyttäjille.</translation>
 <translation id="6338556085225130112">Päivitetään Google Chromea.</translation>
 <translation id="6368958679917195344">Chrome-käyttöjärjestelmää tukee toinen <ph name="BEGIN_LINK_CROS_OSS" />avoimen lähdekoodin ohjelmisto<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome tarvitsee oikeuden käyttää kameraasi ja mikrofoniasi tällä sivustolla.</translation>
 <translation id="6410540444482791104">Voit auttaa meitä kehittämään Chromen turvallisuutta ja käytettävyyttä lähettämällä automaattisesti joitain järjestelmän tietoja ja sivun sisältöjä Googlelle. Näin autat havaitsemaan vaarallisia sovelluksia ja sivustoja.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Lataus on parhaillaan käynnissä. Haluatko peruuttaa latauksen ja poistua Google Chromesta?}other{# latausta on parhaillaan käynnissä. Haluatko peruuttaa latauksen ja poistua Google Chromesta?}}</translation>
 <translation id="6566149418543181476">Päivitetään Google Chromea (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">Kopioitiin Chromeen.</translation>
 <translation id="6634887557811630702">Google Chrome on ajan tasalla.</translation>
 <translation id="6676384891291319759">Käytä internetiä</translation>
-<translation id="6697947395630195233">Chrome tarvitsee oikeuden käyttää sijaintiasi, jotta se voidaan jakaa tämän sivuston kanssa.</translation>
 <translation id="683440813066116847">Google Chrome Canaryn saapuvien yhteyksien sääntö, joka sallii mDNS-liikenteen.</translation>
 <translation id="686561893457936865">Ota Chrome mukaan kaikkialle</translation>
 <translation id="6885412569789873916">Chromen betaversion sovellukset</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index edf95a7..c44b1f7 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -58,7 +58,6 @@
 
 Kapag nag-sign in ka pa rin, isasama sa <ph name="ACCOUNT_EMAIL_NEW" /> ang impormasyon sa Chrome gaya ng mga bookmark, kasaysayan, at iba pang mga setting.</translation>
 <translation id="2397416548179033562">Ipakita ang menu ng Chrome</translation>
-<translation id="2416359993254398973">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera para sa site na ito.</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="2446511512801740068">Luma na ang Chrome dahil matagal na itong hindi muling nailunsad. Available ang isang update at ilalapat ito sa sandaling muli mo itong inilunsad.</translation>
 <translation id="2485422356828889247">I-uninstall</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Tumulong na gawing mas mahusay ang Google Chrome sa pamamagitan ng pagpapadala ng mga ulat ng pag-crash at <ph name="UMA_LINK" /> sa Google</translation>
 <translation id="2689103672227170538">Binago ng extension na ito ang ipinapakitang page kapag sinimulan mo ang Chrome.</translation>
 <translation id="2705403826523567092">Mag-sign in para sa naka-personalize na karanasan sa pag-browse na naka-sync sa lahat ng device</translation>
-<translation id="2769762047821873045">Hindi Google Chrome ang iyong default na browser.</translation>
 <translation id="2770231113462710648">Baguhin ang default na browser sa:</translation>
 <translation id="2799223571221894425">Ilunsad Muli</translation>
 <translation id="2847461019998147611">Ipakita ang Google Chrome sa wikang ito</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Mga module na na-load sa Google Chrome</translation>
 <translation id="556024056938947818">Sinusubukan ng Google Chrome na magpakita ng mga password.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Kailangan ng Chrome ng pahintulot na i-access ang iyong mikropono para sa site na ito.</translation>
 <translation id="565744775970812598">Maaaring mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chrome.</translation>
 <translation id="573759479754913123">Tungkol sa Chrome OS</translation>
-<translation id="5749068826913805084">Kailangan ng Chrome ng access sa storage upang mag-download ng mga file.</translation>
 <translation id="5774845247549698882">Ipinapakita ang Chrome OS sa wikang ito</translation>
 <translation id="5855036575689098185">Hindi tumutugma ang software na tumatakbo sa iyong computer sa Google Chrome.</translation>
 <translation id="5877064549588274448">Binago ang channel. I-restart ang iyong device upang ilapat ang mga pagbabago.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Naka-install na ang Google Chrome para sa lahat ng user sa iyong computer.</translation>
 <translation id="6338556085225130112">Ina-update ang Google Chrome</translation>
 <translation id="6368958679917195344">Ginagawang posible ang Chrome OS ng karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera at mikropono para sa site na ito.</translation>
 <translation id="6410540444482791104">Makakatulong kang gawing mas ligtas at madaling gamitin ang Chrome sa pamamagitan ng awtomatikong pagpapadala ng ilang impormasyon ng system at content ng page sa Google upang makatulong na tumukoy ng mga mapanganib na app at site.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{May nagaganap na pagda-download sa kasalukuyan. Gusto mo bang kanselahin ang pag-download at umalis sa Google Chrome?}one{# pag-download ang nagaganap sa kasalukuyan. Gusto mo bang kanselahin ang mga pag-download at umalis sa Google Chrome?}other{# pag-download ang nagaganap sa kasalukuyan. Gusto mo bang kanselahin ang mga pag-download at umalis sa Google Chrome?}}</translation>
 <translation id="6566149418543181476">Ina-update ang Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Kinopya sa Chrome</translation>
 <translation id="6634887557811630702">Napapanahon ang Google Chrome.</translation>
 <translation id="6676384891291319759">I-access ang Internet</translation>
-<translation id="6697947395630195233">Kailangan ng Chrome ng access sa iyong lokasyon upang ibahagi ang lokasyon mo sa site na ito.</translation>
 <translation id="683440813066116847">Inbound na panuntunan para sa Google Chrome Canary upang payagan ang trapiko ng mDNS.</translation>
 <translation id="686561893457936865">Dalhin ang Chrome kahit saan</translation>
 <translation id="6885412569789873916">Mga Chrome Beta App</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index f6da5f9..e4b773c 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -57,7 +57,6 @@
 
 Si vous vous connectez quand même, toutes les informations Chrome, comme les favoris, l'historique et les autres paramètres, seront fusionnées avec <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Afficher le menu Chrome</translation>
-<translation id="2416359993254398973">Chrome a besoin de votre autorisation pour accéder à votre appareil photo pour ce site.</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="2446511512801740068">Chrome n'est plus à jour, car il n'a pas été relancé depuis quelque temps. La mise à jour disponible sera installée dès que vous le relancerez.</translation>
 <translation id="2485422356828889247">Désinstaller</translation>
@@ -69,7 +68,6 @@
 <translation id="2665296953892887393">Aidez-nous à améliorer Google Chrome en nous envoyant des rapports d'erreur et des <ph name="UMA_LINK" />.</translation>
 <translation id="2689103672227170538">Cette extension a modifié la page qui s'affiche lorsque vous démarrez Chrome.</translation>
 <translation id="2705403826523567092">Connectez-vous pour profiter d'une expérience de navigation personnalisée et synchroniser vos données Chrome sur plusieurs appareils</translation>
-<translation id="2769762047821873045">Google Chrome n'est pas votre navigateur par défaut.</translation>
 <translation id="2770231113462710648">Remplacer le navigateur par défaut par :</translation>
 <translation id="2799223571221894425">Relancer</translation>
 <translation id="2847461019998147611">Afficher Google Chrome dans cette langue</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Modules chargés dans Google Chrome</translation>
 <translation id="556024056938947818">Tentative d'affichage des mots de passe dans Google Chrome</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome a besoin de votre autorisation pour accéder à votre micro pour ce site.</translation>
 <translation id="565744775970812598">Chrome a bloqué <ph name="FILE_NAME" />, car ce fichier peut être dangereux.</translation>
 <translation id="573759479754913123">À propos de Chrome OS</translation>
-<translation id="5749068826913805084">Pour télécharger des fichiers, Chrome a besoin d'accéder à l'espace de stockage.</translation>
 <translation id="5774845247549698882">Chrome OS est affiché dans cette langue</translation>
 <translation id="5855036575689098185">Le logiciel exécuté sur votre ordinateur n'est pas compatible avec Google Chrome.</translation>
 <translation id="5877064549588274448">La version a été modifiée. Redémarrez votre appareil pour appliquer les modifications.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome est déjà installé pour tous les utilisateurs de votre ordinateur.</translation>
 <translation id="6338556085225130112">Mise à jour de Google Chrome...</translation>
 <translation id="6368958679917195344">Google Chrome OS fonctionne grâce à d'autres <ph name="BEGIN_LINK_CROS_OSS" />logiciels Open Source<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome a besoin de votre autorisation pour accéder à votre appareil photo et à votre micro pour ce site.</translation>
 <translation id="6410540444482791104">Vous pouvez nous aider à rendre Chrome plus sûr et plus facile à utiliser en nous envoyant automatiquement des informations système et du contenu de page. Cela nous aidera à détecter les applications et les sites dangereux.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Un téléchargement est en cours. Voulez-vous annuler ce dernier et quitter Google Chrome ?}one{# téléchargement est en cours. Voulez-vous annuler ce dernier et quitter Google Chrome ?}other{# téléchargements sont en cours. Voulez-vous annuler ces derniers et quitter Google Chrome ?}}</translation>
 <translation id="6566149418543181476">Mise à jour de Google Chrome (<ph name="PROGRESS_PERCENT" />)…</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Copiée dans Chrome</translation>
 <translation id="6634887557811630702">Google Chrome est à jour.</translation>
 <translation id="6676384891291319759">Accéder à Internet</translation>
-<translation id="6697947395630195233">Chrome a besoin d'accéder à votre position pour la partager avec ce site.</translation>
 <translation id="683440813066116847">Règle de trafic entrant pour Google Chrome Canary autorisant le trafic mDNS</translation>
 <translation id="686561893457936865">Chrome avec vous n'importe où</translation>
 <translation id="6885412569789873916">Applications pour la version bêta de Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index 0cc69f8c..de020aa 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -58,7 +58,6 @@
 
 કોઈપણ રીતે સાઇન ઇન કરવું બુકમાર્ક્સ, ઇતિહાસ, અને અન્ય સેટિંગ્સ જેવી Chrome માહિતીને <ph name="ACCOUNT_EMAIL_NEW" /> માં મર્જ કરશે.</translation>
 <translation id="2397416548179033562">Chrome મેનૂ દર્શાવો</translation>
-<translation id="2416359993254398973">Chromeને આ સાઇટ માટે તમારા કૅમેરાના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="2429317896000329049">Google Chrome તમારા ડેટાને સમન્વયિત કરી શક્યું નથી કારણ કે તમારા ડોમેન માટે સમન્વયન ઉપલબ્ધ નથી.</translation>
 <translation id="2446511512801740068">Chrome જૂનું થઈ ગયું છે કારણ કે તે ઘણા સમયથી ફરીથી લોંચ કરવામાં આવ્યું નથી. અપડેટ ઉપલબ્ધ છે અને તે તમે જેવું જ ફરીથી લોંચ કરશો, લાગુ થઈ જશે.</translation>
 <translation id="2485422356828889247">અનઇન્સ્ટોલ કરો</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">ક્રેશ રિપોર્ટ્સ અને <ph name="UMA_LINK" /> Google ને મોકલીને Google Chrome ને વધુ સારું બનાવવામાં સહાય કરો.</translation>
 <translation id="2689103672227170538">જ્યારે તમે Chrome શરૂ કરો છો ત્યારે જે પૃષ્ઠ દર્શાવવામાં આવે છે તે આ એક્સટેન્શને બદલ્યું છે.</translation>
 <translation id="2705403826523567092">બધા ઉપકરણો પર સિંક કરેલ વ્યક્તિગત બ્રાઉઝિંગ અનુભવ મેળવવા માટે સાઇન ઇન કરો</translation>
-<translation id="2769762047821873045">Google Chrome તમારુ ડિફોલ્ટ બ્રાઉઝર નથીં.</translation>
 <translation id="2770231113462710648">ડિફૉલ્ટ બ્રાઉઝરને આના પર બદલો:</translation>
 <translation id="2799223571221894425">ફરીથી લોંચ કરો</translation>
 <translation id="2847461019998147611">આ ભાષામાં Google Chrome પ્રદર્શિત કરો</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Google Chrome માં મોડ્યુલ્સ લોડ કર્યા છે</translation>
 <translation id="556024056938947818">Google Chrome પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chromeને આ સાઇટ માટે તમારા માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> જોખમી હોઈ શકે છે, તેથી Chrome એ તેને અવરોધિત કરેલ છે.</translation>
 <translation id="573759479754913123">Chrome OS વિશે</translation>
-<translation id="5749068826913805084">ફાઇલો ડાઉનલોડ કરવા માટે Chrome ને સ્ટોરેજ ઍક્સેસની જરૂર છે.</translation>
 <translation id="5774845247549698882">આ ભાષામાં Chrome OS પ્રદર્શિત થાય છે</translation>
 <translation id="5855036575689098185">તમારા કમ્પ્યુટર પર ચાલતા સૉફ્ટવેર Google Chrome સાથે અસંગત છે.</translation>
 <translation id="5877064549588274448">ચેનલ બદલી. ફેરફારો લાગુ કરવા માટે તમારા ઉપકરણને પુનઃપ્રારંભ કરો.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome, તમારા કમ્પ્યુટર પર પહેલાંથી તમામ વપરાશકર્તાઓ માટે ઇન્સ્ટૉલ કરેલ છે.</translation>
 <translation id="6338556085225130112">Google Chrome અપડેટ થઈ રહ્યું છે</translation>
 <translation id="6368958679917195344">Chrome OS એ વધારાના <ph name="BEGIN_LINK_CROS_OSS" />ખુલ્લા સ્ત્રોત સૉફ્ટવેર<ph name="END_LINK_CROS_OSS" /> દ્વારા શક્ય બને છે.</translation>
-<translation id="6393863479814692971">Chromeને આ સાઇટ માટે તમારા કૅમેરા અને માઇક્રોફોનના ઍક્સેસની પરવાનગીની જરૂર પડે છે.</translation>
 <translation id="6410540444482791104">તમે જોખમી અ‍ૅપ્લિકેશનો અને સાઇટ્સ શોધવામાં સહાય કરવા માટે Google ને કેટલીક સિસ્ટમ માહિતી અને પૃષ્ઠ સામગ્રી આપમેળે મોકલીને Chrome ને વધુ સુરક્ષિત તથા ઉપયોગમાં સરળ બનાવવામાં સહાય કરી શકો છો.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{હાલમાં એક ડાઉનલોડ ચાલુ છે. શું તમે Google Chrome થી બહાર નીકળવા અને ડાઉનલોડને રદ કરવા માગો છો?}one{હાલમાં # ડાઉનલોડ્સ ચાલુ છે. શું તમે Google Chrome થી બહાર નીકળવા અને ડાઉનલોડ્સને રદ કરવા માગો છો?}other{હાલમાં # ડાઉનલોડ્સ ચાલુ છે. શું તમે Google Chrome થી બહાર નીકળવા અને ડાઉનલોડ્સને રદ કરવા માગો છો?}}</translation>
 <translation id="6566149418543181476">Google Chrome અપડેટ થઈ રહ્યું છે (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Chrome માં કોપી કરાયું</translation>
 <translation id="6634887557811630702">Google Chrome અપ ટૂ ડેટ છે.</translation>
 <translation id="6676384891291319759">ઇંટરનેટ ઍક્સેસ કરો</translation>
-<translation id="6697947395630195233">Chromeને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે.</translation>
 <translation id="683440813066116847">mDNS ટ્રાફિકને મંજૂરી આપવા માટે Google Chrome કૅનેરી માટે ઇનબાઉન્ડ નિયમ.</translation>
 <translation id="686561893457936865">Chrome ને સર્વત્ર લઈ જાઓ</translation>
 <translation id="6885412569789873916">Chrome બીટા ઍપ્લિકેશનો</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index c6d919d..4331f614 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -54,7 +54,6 @@
 
 किसी भी तरह प्रवेश करने से बुकमार्क, इतिहास, और अन्य सेटिंग जैसी Chrome जानकारी <ph name="ACCOUNT_EMAIL_NEW" /> में मर्ज हो जाएगी.</translation>
 <translation id="2397416548179033562">Chrome मेनू दिखाएं</translation>
-<translation id="2416359993254398973">Chrome को इस साइट के लिए आपका कैमरा एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="2429317896000329049">Google Chrome आपका डेटा समन्‍वयित नहीं कर सका क्‍योंकि समन्‍वयन आपके डोमेन के लिए उपलब्‍ध नहीं है.</translation>
 <translation id="2446511512801740068">Chrome पुराना हो गया है क्योंकि उसे कुछ समय से फिर से लॉन्च नहीं किया गया है. एक अपडेट उपलब्ध है और जैसे ही आप फिर से लॉन्च करेंगे, अपडेट लागू कर दिया जाएगा.</translation>
 <translation id="2485422356828889247">विस्थापित करें</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Google को क्रैश रिपोर्ट और <ph name="UMA_LINK" /> भेजकर Google Chrome को बेहतर बनाने में सहायता करें</translation>
 <translation id="2689103672227170538">इस एक्सटेंशन ने यह बदल दिया है कि जब आप Chrome प्रारंभ करते हैं तब कौन सा पृष्‍ठ दिखाया जाए.</translation>
 <translation id="2705403826523567092">ब्राउज़ करने के मनमुताबिक बनाए गए अनुभव के लिए साइन इन करें, सभी डिवाइस पर सिंक किया जाता है</translation>
-<translation id="2769762047821873045">Google Chrome आपका सामान्य ब्राउज़र नहीं है.</translation>
 <translation id="2770231113462710648">डिफ़ॉल्ट ब्राउज़र को इसमें बदलें:</translation>
 <translation id="2799223571221894425">पुन: लॉन्‍च करें</translation>
 <translation id="2847461019998147611">Google Chrome इस भाषा में दिखाएं</translation>
@@ -159,10 +157,8 @@
 <translation id="5495581687705680288">Google Chrome में लोड किए गए मॉड्यूल</translation>
 <translation id="556024056938947818">Google Chrome पासवर्ड दिखाने का प्रयास कर रहा है.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome को इस साइट के लिए आपका माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> खरतरनाक हो सकता है, इसलिए Chrome ने उसे अवरोधित कर दिया है.</translation>
 <translation id="573759479754913123">Chrome OS के बारे में</translation>
-<translation id="5749068826913805084">फ़ाइलें डाउनलोड करने के लिए Chrome को मेमोरी ऐक्‍सेस की आवश्‍यकता होगी.</translation>
 <translation id="5774845247549698882">Chrome OS इस भाषा में प्रदर्शित किया जा रहा है</translation>
 <translation id="5855036575689098185">आपके कंप्यूटर पर चल रहा सॉफ़्टवेयर Google Chrome के साथ असंगत है.</translation>
 <translation id="5877064549588274448">चैनल बदल दिया गया है. बदलावों का लागू करने के लिए अपने डिवाइस को फिर से प्रारंभ करें.</translation>
@@ -181,7 +177,6 @@
 <translation id="6291549208091401781">Google Chrome आपके कंप्यूटर पर मौजूद सभी उपयोगकर्ताओं के लिए पहले से इंंस्टॉल है.</translation>
 <translation id="6338556085225130112">Google Chrome अपडेट हो रहा है</translation>
 <translation id="6368958679917195344">Chrome OS को अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />ओपन सोर्स सॉफ़्टवेयर<ph name="END_LINK_CROS_OSS" /> द्वारा संभव बनाया गया है.</translation>
-<translation id="6393863479814692971">Chrome को इस साइट के लिए आपका कैमरा और माइक्रोफ़ोन एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="6410540444482791104">खतरनाक ऐप्लिकेशन और साइटों का पता लगाने में सहायता करने के लिए Google को अपने आप कुछ सिस्टम जानकारी और पेज सामग्री भेजकर आप Chrome को उपयोग में अधिक सुरक्षित और अधिक आसान बनाने में सहायता कर सकते हैं.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{डाउनलोड वर्तमान में चल रहा है. क्या आप डाउनलोड को रोकना और Google Chrome से बाहर निकलना चाहते हैं?}one{# डाउनलोड वर्तमान में चल रहे हैं. क्या आप डाउनलोड को रोकना और Google Chrome से बाहर निकलना चाहते हैं?}other{# डाउनलोड वर्तमान में चल रहे हैं. क्या आप डाउनलोड को रोकना और Google Chrome से बाहर निकलना चाहते हैं?}}</translation>
 <translation id="6566149418543181476">Google Chrome अपडेट हो रहा है (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -189,7 +184,6 @@
 <translation id="6600954340915313787">Chrome पर कॉपी किया गया</translation>
 <translation id="6634887557811630702">Google Chrome अद्यतित है</translation>
 <translation id="6676384891291319759">इंटरनेट तक पहुंच स्थापित करें</translation>
-<translation id="6697947395630195233">Chrome को इस साइट से आपका स्थान साझा करने के लिए आपके स्थान का एक्सेस चाहिए.</translation>
 <translation id="683440813066116847">mDNS ट्रैफ़िक की अनुमति देने के लिए Google Chrome Canary के लिए इनबाउंड नियम.</translation>
 <translation id="686561893457936865">Chrome को हर कहीं ले जाएं</translation>
 <translation id="6885412569789873916">Chrome बीटा ऐप्लिकेशन</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 59c1bbb7..88cabc1 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -54,7 +54,6 @@
 
 Ako se ipak prijavite, podaci sustava Chrome kao što su oznake, povijest i ostale postavke spojit će se s korisnikom <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Prikaži izbornik Chrome</translation>
-<translation id="2416359993254398973">Chrome treba dopuštenje za pristup fotoaparatu za ovu web-lokaciju.</translation>
 <translation id="2429317896000329049">Google Chrome nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation>
 <translation id="2446511512801740068">Chrome je zastario jer dulje vrijeme nije ponovo pokrenut. Ažuriranje je dostupno i primijenit će se čim ponovo pokrenete proizvod.</translation>
 <translation id="2485422356828889247">Deinstaliraj</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Pomognite nam poboljšati Google Chrome šaljući izvješća o rušenju programa i <ph name="UMA_LINK" /> Googleu</translation>
 <translation id="2689103672227170538">Ovo proširenje promijenilo je stranicu koja se prikazuje prilikom pokretanja Chromea.</translation>
 <translation id="2705403826523567092">Prijavite se da bi pregledavanje bilo prilagođeno vama, sinkronizirano na svim uređajima</translation>
-<translation id="2769762047821873045">Google Chrome nije vaš zadani preglednik.</translation>
 <translation id="2770231113462710648">Promijeni zadani preglednik na:</translation>
 <translation id="2799223571221894425">Pokreni ponovo</translation>
 <translation id="2847461019998147611">Prikaži Google Chrome na tom jeziku</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Moduli preneseni na Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome pokušava prikazati zaporke.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome treba dopuštenje za pristup mikrofonu za ovu web-lokaciju.</translation>
 <translation id="565744775970812598">Datoteka <ph name="FILE_NAME" /> mogla bi biti opasna, pa ju je Chrome blokirao.</translation>
 <translation id="573759479754913123">O OS-u Chrome</translation>
-<translation id="5749068826913805084">Chrome treba pristup pohrani radi preuzimanja datoteka.</translation>
 <translation id="5774845247549698882">OS Chrome prikazuje se na tom jeziku</translation>
 <translation id="5855036575689098185">Softver koji se izvodi na vašem računalu nije kompatibilan s Google Chromeom.</translation>
 <translation id="5877064549588274448">Kanal je promijenjen. Ponovo pokrenite uređaj za primjenu promjena.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome već je instaliran za sve korisnike na računalu.</translation>
 <translation id="6338556085225130112">Ažuriranje Google Chromea</translation>
 <translation id="6368958679917195344">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog koda<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome treba dopuštenje za pristup fotoaparatu i mikrofonu za ovu web-lokaciju.</translation>
 <translation id="6410540444482791104">Možete pomoći da Chrome bude sigurniji i jednostavniji za upotrebu tako što ćete omogućiti da se Googleu automatski šalju neki podaci o sustavu i sadržaju stranice u svrhu otkrivanja opasnih aplikacija i web-lokacija.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{U tijeku je preuzimanje. Želite li otkazati preuzimanje i napustiti Google Chrome?}one{U tijeku je # preuzimanje. Želite li otkazati preuzimanja i napustiti Google Chrome?}few{U tijeku su # preuzimanja. Želite li otkazati preuzimanja i napustiti Google Chrome?}other{U tijeku je # preuzimanja. Želite li otkazati preuzimanja i napustiti Google Chrome?}}</translation>
 <translation id="6566149418543181476">Ažuriranje Google Chromea (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Kopirano u Chrome</translation>
 <translation id="6634887557811630702">Google Chrome ažuran je.</translation>
 <translation id="6676384891291319759">Pristup Internetu</translation>
-<translation id="6697947395630195233">Chrome treba dopuštenje za pristup vašoj lokaciji da bi je podijelio s ovom web-lokacijom.</translation>
 <translation id="683440813066116847">Ulazno pravilo kako bi Google Chrome Canary dopustio mDNS promet.</translation>
 <translation id="686561893457936865">Ponesite Chrome svugdje</translation>
 <translation id="6885412569789873916">Aplikacije preglednika Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index e72147f..e73444f 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -54,7 +54,6 @@
 
 Ha mindenképp bejelentkezik, akkor egyesíti a(z) <ph name="ACCOUNT_EMAIL_NEW" /> fiókkal az olyan Chrome-adatokat, mint a könyvjelzők, az előzmények és más beállítások.</translation>
 <translation id="2397416548179033562">A Chrome-menü megjelenítése</translation>
-<translation id="2416359993254398973">A Chrome számára engedély szükséges, hogy hozzáférjen a kamerához ennél a webhelynél.</translation>
 <translation id="2429317896000329049">A Google Chrome nem tudta szinkronizálni az adatait, mert a szinkronizálás nem érhető el az Ön domainjénél.</translation>
 <translation id="2446511512801740068">A Chrome elavult, mert nem volt újraindítva egy ideje. Megjelent egy frissítés, amelyik az újraindítás után azonnal érvénybe lép.</translation>
 <translation id="2485422356828889247">Eltávolítás</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Segítse a Google Chrome fejlesztését azáltal, hogy elküldi a Google-nak a következőket: hibajelentések és <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">Ez a bővítmény módosította, hogy melyik oldal jelenik meg a Chrome indításakor.</translation>
 <translation id="2705403826523567092">Jelentkezzen be a személyre szabott, eszközök között szinkronizált böngészési környezetbe</translation>
-<translation id="2769762047821873045">Nem a Google Chrome az alapértelmezett böngésző.</translation>
 <translation id="2770231113462710648">Alapértelmezett böngésző beállítása:</translation>
 <translation id="2799223571221894425">Újraindítás</translation>
 <translation id="2847461019998147611">A Google Chrome megjelenítése ezen a nyelven</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">A Google Chrome-ba betöltött modulok</translation>
 <translation id="556024056938947818">A Google Chrome megpróbálja megjeleníteni a jelszavakat.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">A Chrome számára engedély szükséges, hogy hozzáférjen a mikrofonhoz ennél a webhelynél.</translation>
 <translation id="565744775970812598">A(z) <ph name="FILE_NAME" /> veszélyes lehet, ezért a Chrome letiltotta.</translation>
 <translation id="573759479754913123">A Chrome OS névjegye</translation>
-<translation id="5749068826913805084">A Chrome-nak tárhelyhozzáférésre van szüksége a fájlok letöltéséhez.</translation>
 <translation id="5774845247549698882">A Chrome OS ezen a nyelven jelenik meg</translation>
 <translation id="5855036575689098185">A számítógépén futó szoftver nem kompatibilis a Google Chrome-mal.</translation>
 <translation id="5877064549588274448">Módosult a csatorna. Indítsa újra az eszközt a módosítások alkalmazásához.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">A Google Chrome már telepítve van az összes felhasználó számára a számítógépen.</translation>
 <translation id="6338556085225130112">A Google Chrome frissítése</translation>
 <translation id="6368958679917195344">A Chrome OS-hez egyéb <ph name="BEGIN_LINK_CROS_OSS" />nyílt forráskódú szoftver<ph name="END_LINK_CROS_OSS" /> is hozzájárult.</translation>
-<translation id="6393863479814692971">A Chrome számára engedély szükséges, hogy hozzáférjen a kamerához és a mikrofonhoz ennél a webhelynél.</translation>
 <translation id="6410540444482791104">A rendszer-információk és oldaltartalmak automatikus küldésével segítséget nyújthat a Google-nak a Chrome használatának biztonságosabbá és egyszerűbbé tételéhez, illetve a veszélyes alkalmazások és webhelyek felderítéséhez.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Letöltés van folyamatban. Megszakítja a letöltést, és kilép a Google Chrome-ból?}other{# letöltés van folyamatban. Megszakítja a letöltéseket, és kilép a Google Chrome-ból?}}</translation>
 <translation id="6566149418543181476">A Google Chrome frissítése (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">A Chrome-ba másolva</translation>
 <translation id="6634887557811630702">A Google Chrome naprakész.</translation>
 <translation id="6676384891291319759">Internetelérés</translation>
-<translation id="6697947395630195233">A Chrome-nak hozzáférésre van szüksége a helyadatokra ahhoz, hogy megoszthassa a webhellyel az Ön tartózkodási helyét.</translation>
 <translation id="683440813066116847">Bejövő szabály a Google Chrome Canaryhoz az mDNS forgalom engedélyezése céljából.</translation>
 <translation id="686561893457936865">Vigye magával a Chrome-ot mindenhova</translation>
 <translation id="6885412569789873916">Chrome Beta-alkalmazások</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index eb0ad33..1be6c14e 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -54,7 +54,6 @@
 
 Tetap masuk akan menggabungkan informasi Chrome seperti bookmark, histori, dan setelan lain ke <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Tampilkan Menu Chrome</translation>
-<translation id="2416359993254398973">Chrome memerlukan izin akses ke kamera untuk situs ini.</translation>
 <translation id="2429317896000329049">Google Chrome tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation>
 <translation id="2446511512801740068">Chrome telah kedaluwarsa karena tidak diluncurkan selama beberapa waktu. Pembaruan telah tersedia dan akan diterapkan setelah Anda meluncurkan ulang.</translation>
 <translation id="2485422356828889247">Uninstal</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Bantu Google Chrome jadi lebih baik dengan mengirim laporan kerusakan dan <ph name="UMA_LINK" /> ke Google</translation>
 <translation id="2689103672227170538">Ekstensi ini telah mengubah apa yang ditampilkan oleh halaman saat Anda memulai Chrome.</translation>
 <translation id="2705403826523567092">Login untuk mendapatkan pengalaman browsing yang dipersonalisasi, yang disinkronkan di seluruh perangkat</translation>
-<translation id="2769762047821873045">Google Chrome bukan browser default.</translation>
 <translation id="2770231113462710648">Ubah browser default ke:</translation>
 <translation id="2799223571221894425">Luncurkan Ulang</translation>
 <translation id="2847461019998147611">Tampilkan Google Chrome dalam bahasa ini</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Modul dimuat ke dalam Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome mencoba menampilkan sandi.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome memerlukan izin akses ke mikrofon untuk situs ini.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> mungkin berbahaya, sehingga Chrome memblokirnya.</translation>
 <translation id="573759479754913123">Tentang Chrome OS</translation>
-<translation id="5749068826913805084">Chrome memerlukan akses penyimpanan untuk mendownload file.</translation>
 <translation id="5774845247549698882">Chrome OS ditampilkan dalam bahasa ini</translation>
 <translation id="5855036575689098185">Software yang berjalan di komputer Anda tidak kompatibel dengan Google Chrome.</translation>
 <translation id="5877064549588274448">Saluran diubah. Mulai ulang perangkat Anda untuk menerapkan perubahan.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome sudah terpasang untuk semua pengguna di komputer Anda.</translation>
 <translation id="6338556085225130112">Memperbarui Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS terwujud karena <ph name="BEGIN_LINK_CROS_OSS" />software sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan.</translation>
-<translation id="6393863479814692971">Chrome memerlukan izin akses ke kamera dan mikrofon untuk situs ini.</translation>
 <translation id="6410540444482791104">Anda dapat membantu menjadikan Chrome lebih aman dan lebih mudah digunakan dengan mengirim sebagian informasi sistem dan konten halaman secara otomatis ke Google untuk membantu mendeteksi aplikasi dan situs berbahaya.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Download sedang berlangsung. Ingin membatalkan download dan keluar dari Google Chrome?}other{# download sedang berlangsung. Ingin membatalkan download dan keluar dari Google Chrome?}}</translation>
 <translation id="6566149418543181476">Memperbarui Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Disalin ke Chrome</translation>
 <translation id="6634887557811630702">Google Chrome sudah diperbarui.</translation>
 <translation id="6676384891291319759">Akses Internet</translation>
-<translation id="6697947395630195233">Chrome memerlukan akses ke lokasi Anda untuk berbagi lokasi dengan situs ini.</translation>
 <translation id="683440813066116847">Inbound rule untuk Google Chrome Canary guna mengizinkan lalu lintas mDNS.</translation>
 <translation id="686561893457936865">Bawa Chrome ke mana saja</translation>
 <translation id="6885412569789873916">Aplikasi Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb
index d43fd7e..00e1a32 100644
--- a/chrome/app/resources/google_chrome_strings_it.xtb
+++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -54,7 +54,6 @@
 
 Se esegui comunque l'accesso, le informazioni di Chrome come Preferiti, cronologia e altre impostazioni verranno unite a quelle di <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Mostra il menu Chrome</translation>
-<translation id="2416359993254398973">Per questo sito Chrome ha bisogno dell'autorizzazione ad accedere alla fotocamera.</translation>
 <translation id="2429317896000329049">Impossibile sincronizzare i dati in Google Chrome perché la sincronizzazione non è disponibile per il tuo dominio.</translation>
 <translation id="2446511512801740068">Chrome non è aggiornato perché non viene riavviato da un po'. È disponibile un aggiornamento che verrà applicato non appena riavvierai.</translation>
 <translation id="2485422356828889247">Disinstalla</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Aiutaci a migliorare Google Chrome inviando a Google rapporti sugli arresti anomali e <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">Questa estensione ha cambiato la pagina mostrata all'avvio di Chrome.</translation>
 <translation id="2705403826523567092">Accedi per un'esperienza di navigazione personalizzata e sincronizzata su più dispositivi</translation>
-<translation id="2769762047821873045">Google Chrome non è il tuo browser predefinito.</translation>
 <translation id="2770231113462710648">Cambia browser predefinito con:</translation>
 <translation id="2799223571221894425">Riavvia</translation>
 <translation id="2847461019998147611">Visualizza Google Chrome in questa lingua</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">Moduli caricati in Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome sta cercando di visualizzare le password.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Per questo sito Chrome ha bisogno dell'autorizzazione ad accedere al microfono.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> potrebbe essere pericoloso, pertanto è stato bloccato da Chrome.</translation>
 <translation id="573759479754913123">Informazioni su Chrome OS</translation>
-<translation id="5749068826913805084">Chrome deve avere accesso allo spazio di archiviazione per poter scaricare file.</translation>
 <translation id="5774845247549698882">Chrome OS è visualizzato in questa lingua</translation>
 <translation id="5855036575689098185">Il software in esecuzione sul computer non è compatibile con Google Chrome.</translation>
 <translation id="5877064549588274448">Canale cambiato. Riavvia il dispositivo per applicare le modifiche.</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">Google Chrome è già installato per tutti gli utenti sul computer.</translation>
 <translation id="6338556085225130112">Aggiornamento di Google Chrome in corso</translation>
 <translation id="6368958679917195344">Chrome OS è reso possibile da <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> aggiuntivi.</translation>
-<translation id="6393863479814692971">Per questo sito Chrome ha bisogno dell'autorizzazione ad accedere alla fotocamera e al microfono.</translation>
 <translation id="6410540444482791104">Puoi contribuire a rendere Chrome più sicuro e più facile da utilizzare inviando automaticamente a Google alcune informazioni sul sistema e alcuni contenuti delle pagine per contribuire a rilevare app e siti pericolosi.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{È in corso un download. Vuoi annullare il download e uscire da Google Chrome?}other{Sono in corso # download. Vuoi annullare i download e uscire da Google Chrome?}}</translation>
 <translation id="6566149418543181476">Aggiornamento di Google Chrome in corso (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">Copiata in Chrome</translation>
 <translation id="6634887557811630702">Google Chrome è aggiornato.</translation>
 <translation id="6676384891291319759">Accesso a Internet</translation>
-<translation id="6697947395630195233">Chrome deve poter accedere alla tua posizione per condividerla con questo sito.</translation>
 <translation id="683440813066116847">Regola inbound per consentire il traffico mDNS in Google Chrome Canary.</translation>
 <translation id="686561893457936865">Porta Chrome ovunque</translation>
 <translation id="6885412569789873916">App di Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index a58e95a..69dbad5 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -54,7 +54,6 @@
 
 אם תמשיך ותיכנס, המידע ב-Chrome, כמו סימניות, היסטוריה והגדרות אחרות, ימוזג עם <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">‏הצג את תפריט Chrome</translation>
-<translation id="2416359993254398973">‏Chrome זקוק להרשאה גישה אל המצלמה בשביל האתר הזה.</translation>
 <translation id="2429317896000329049">‏Google Chrome לא הצליח לסנכרן את הנתונים שלך מפני שהסנכרון אינו זמין עבור הדומיין שלך.</translation>
 <translation id="2446511512801740068">‏Chrome אינו מעודכן מכיוון שהוא לא הופעל לאחרונה. יש עדכון זמין והוא יחול ברגע שתבצע הפעלה מחדש.</translation>
 <translation id="2485422356828889247">הסר התקנה</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">‏עזור לשפר את Google Chrome על ידי שליחת דוחות קריסה ו-<ph name="UMA_LINK" /> אל Google</translation>
 <translation id="2689103672227170538">‏התוסף הזה שינה את הדף שמוצג כשאתה מפעיל את Chrome.</translation>
 <translation id="2705403826523567092">אפשר להיכנס לחשבון כדי ליהנות מחוויית גלישה מותאמת אישית עם סנכרון בין המכשירים השונים שלך</translation>
-<translation id="2769762047821873045">‏Google Chrome‏ אינו דפדפן ברירת המחדל שלך.</translation>
 <translation id="2770231113462710648">שנה את דפדפן ברירת המחדל ל:</translation>
 <translation id="2799223571221894425">הפעל מחדש</translation>
 <translation id="2847461019998147611">‏הצג את Google Chrome בשפה זו</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">‏מודולים שנטענו ב-Google Chrome</translation>
 <translation id="556024056938947818">‏Google Chrome מנסה להציג סיסמאות.</translation>
 <translation id="5566025111015594046">‏Google Chrome‏ (mDNS-In)</translation>
-<translation id="557283862590186398">‏Chrome זקוק להרשאת גישה אל המיקרופון בשביל האתר הזה.</translation>
 <translation id="565744775970812598">‏<ph name="FILE_NAME" /> עלול להיות מסוכן, ולכן Chrome חסם אותו.</translation>
 <translation id="573759479754913123">‏מידע על מערכת ההפעלה של Chrome</translation>
-<translation id="5749068826913805084">‏לצורך הורדת קבצים, Chrome זקוק לגישה לאחסון.</translation>
 <translation id="5774845247549698882">‏Chrome OS מוצג בשפה זו</translation>
 <translation id="5855036575689098185">‏תוכנה שפועלת במחשב שלך אינה תואמת ל-Google Chrome.</translation>
 <translation id="5877064549588274448">הערוץ שונה. הפעל מחדש את המכשיר להחלת השינויים.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">‏Google Chrome כבר מותקן במחשב ונגיש לכל המשתמשים.</translation>
 <translation id="6338556085225130112">‏מעדכן את Google Chrome</translation>
 <translation id="6368958679917195344">‏השימוש במערכת ההפעלה של Chrome מתאפשר באמצעות <ph name="BEGIN_LINK_CROS_OSS" />תוכנת קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספת.</translation>
-<translation id="6393863479814692971">‏Chrome זקוק להרשאת גישה אל המצלמה והמיקרופון בשביל האתר הזה.</translation>
 <translation id="6410540444482791104">‏תוכל לעזור בשיפור האבטחה וקלות השימוש של Chrome על-ידי שליחה אוטומטית של חלק מפרטי המערכת ותוכן הדף אל Google כדי לעזור בזיהוי של יישומים ואתרים מסוכנים.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{‏הורדה מתבצעת עכשיו. האם ברצונך לבטל את ההורדה ולצאת מ-Google Chrome?}two{‏# הורדות מתבצעות עכשיו. האם ברצונך לבטל את ההורדות ולצאת מ-Google Chrome?}many{‏# הורדות מתבצעות עכשיו. האם ברצונך לבטל את ההורדות ולצאת מ-Google Chrome?}other{‏# הורדות מתבצעות עכשיו. האם ברצונך לבטל את ההורדות ולצאת מ-Google Chrome?}}</translation>
 <translation id="6566149418543181476">‏מעדכן את Google Chrome‏ (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">‏הועתק אל Chrome</translation>
 <translation id="6634887557811630702">‏Google Chrome מעודכן.</translation>
 <translation id="6676384891291319759">גישה אל האינטרנט</translation>
-<translation id="6697947395630195233">‏Chrome זקוק לגישה אל המיקום שלך כדי לשתף אותו עם האתר הזה.</translation>
 <translation id="683440813066116847">‏כלל נכנס עבור הגרסה הניסיונית של Google Chrome על מנת לאפשר תנועת mDNS.</translation>
 <translation id="686561893457936865">‏לוקחים את Chrome לכל מקום</translation>
 <translation id="6885412569789873916">‏אפליקציות לגרסת הביטא של Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index e5d2fbf..67b71b18 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -54,7 +54,6 @@
 
 このままログインすると、ブックマーク、履歴、その他の設定などの Chrome データが <ph name="ACCOUNT_EMAIL_NEW" /> と統合されます。</translation>
 <translation id="2397416548179033562">Chrome メニューを表示</translation>
-<translation id="2416359993254398973">このサイトを利用するには、Chrome でカメラの使用を許可する必要があります。</translation>
 <translation id="2429317896000329049">お使いのドメインでは同期を利用できないため、Google Chrome はデータを同期できませんでした。</translation>
 <translation id="2446511512801740068">Chrome はしばらく再起動していないため最新ではありません。再起動するとすぐにアップデートが適用されます。</translation>
 <translation id="2485422356828889247">アンインストール</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">障害レポートと<ph name="UMA_LINK" />を Google に自動送信して Google Chrome の機能向上に役立てる</translation>
 <translation id="2689103672227170538">この拡張機能により、Chrome の起動時に表示されるページが変更されました。</translation>
 <translation id="2705403826523567092">ログインすると、個人向けにカスタマイズされたブラウジング環境をさまざまな端末間で同期して使用できます</translation>
-<translation id="2769762047821873045">Google Chromeはデフォルトのブラウザとして設定されていません。</translation>
 <translation id="2770231113462710648">既定のブラウザを変更:</translation>
 <translation id="2799223571221894425">再起動</translation>
 <translation id="2847461019998147611">Google Chrome をこの言語で表示</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Google Chrome に読み込まれているモジュール</translation>
 <translation id="556024056938947818">Google Chrome はパスワードを表示しようとしています。</translation>
 <translation id="5566025111015594046">Google Chrome(mDNS インバウンド)</translation>
-<translation id="557283862590186398">このサイトを利用するには、Chrome でマイクの使用を許可する必要があります。</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> は危険なファイルの可能性があるため、Chrome でブロックしました。</translation>
 <translation id="573759479754913123">Chrome OS について</translation>
-<translation id="5749068826913805084">Chrome でファイルをダウンロードするにはストレージへのアクセス権が必要です。</translation>
 <translation id="5774845247549698882">Chrome OS はこの言語で表示されています</translation>
 <translation id="5855036575689098185">お使いのパソコンで実行されているソフトウェアは Google Chrome に対応していません。</translation>
 <translation id="5877064549588274448">チャンネルが変更されました。変更を適用するには、デバイスを再起動してください。</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome は既にパソコンのすべてのユーザー対してインストールされています。</translation>
 <translation id="6338556085225130112">Google Chrome を更新しています</translation>
 <translation id="6368958679917195344">Chrome OS は、さらに追加の<ph name="BEGIN_LINK_CROS_OSS" />オープンソース ソフトウェア<ph name="END_LINK_CROS_OSS" />によって実現しました。</translation>
-<translation id="6393863479814692971">このサイトを利用するには、Chrome でカメラとマイクの使用を許可する必要があります。</translation>
 <translation id="6410540444482791104">危険なアプリやサイトの検出に役立てるために一部のシステム情報やページのコンテンツを Google に自動送信して、Chrome の安全性と利便性の向上にご協力ください。</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{ダウンロードが現在進行中です。ダウンロードをキャンセルし、Google Chrome を終了しますか?}other{# 件のダウンロードが現在進行中です。ダウンロードをキャンセルし、Google Chrome を終了しますか?}}</translation>
 <translation id="6566149418543181476">Google Chrome を更新しています(<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Chrome にコピー済み</translation>
 <translation id="6634887557811630702">Google Chrome は最新版です。</translation>
 <translation id="6676384891291319759">インターネットにアクセス</translation>
-<translation id="6697947395630195233">このサイトで現在地を共有するには、Chrome で位置情報の使用を許可する必要があります。</translation>
 <translation id="683440813066116847">mDNS トラフィックを許可する Google Chrome Canary のインバウンド ルールです。</translation>
 <translation id="686561893457936865">どの端末でも同じ Chrome を使用できます</translation>
 <translation id="6885412569789873916">Chrome ベータ版アプリ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index 30b715fa..f842c24a 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -56,7 +56,6 @@
 
 ಸೈನ್‌ ಇನ್ ಮಾಡುವುದು ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಇತಿಹಾಸ, ಹಾಗೂ ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಂತಹ Chrome ಮಾಹಿತಿಯನ್ನು <ph name="ACCOUNT_EMAIL_NEW" /> ಗೆ ಹೇಗಿದ್ದರೂ ವಿಲೀನಗೊಳಿಸುತ್ತದೆ.</translation>
 <translation id="2397416548179033562">Chrome ಮೆನು ತೋರಿಸು</translation>
-<translation id="2416359993254398973">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="2429317896000329049">ನಿಮ್ಮ ಡೊಮೇನ್‌ನಲ್ಲಿ ಸಿಂಕ್‌ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ Google Chrome ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation>
 <translation id="2446511512801740068">ದೀರ್ಘ ಸಮಯದ ಕಾಲ Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸದೇ ಇರುವ ಕಾರಣದಿಂದ ಅದರ ಅವಧಿ ಮುಗಿದಿದೆ. ಒಂದು ಅಪ್‌ಡೇಟ್ ಲಭ್ಯವಿದ್ದು ನೀವು ಮರುಪ್ರಾರಂಭಿಸಿದ ತಕ್ಷಣವೇ ಅದನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Google ಗೆ ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು ಮತ್ತು <ph name="UMA_LINK" /> ಕಳುಹಿಸುವುದರಿಂದ Google Chrome ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation>
 <translation id="2689103672227170538">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಯಾವ ಪುಟ ತೋರಿಸಬೇಕು ಎಂಬ ಪುಟವನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation>
 <translation id="2705403826523567092">ಸಿಂಕ್‌ ಮಾಡಿದ ಸಾಧನಗಳಾದ್ಯಂತ ವೈಯಕ್ತೀಕರಿಸಿದ ಬ್ರೌಸಿಂಗ್ ಅನುಭವಕ್ಕಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
-<translation id="2769762047821873045">Google Chrome ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅಲ್ಲ.</translation>
 <translation id="2770231113462710648">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ಇದ್ಕಕೆ ಬದಲಿಸಿ:</translation>
 <translation id="2799223571221894425">ಮರುಪ್ರಾರಂಭಿಸು</translation>
 <translation id="2847461019998147611">ಈ ಭಾಷೆಯಲ್ಲಿ Google Chrome ಪ್ರದರ್ಶಿಸು</translation>
@@ -159,10 +157,8 @@
 <translation id="5495581687705680288">ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು Google Chrome ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="556024056938947818">Google Chrome ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹಾಗಾಗಿ Chrome ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation>
 <translation id="573759479754913123">Chrome OS ಕುರಿತು</translation>
-<translation id="5749068826913805084">ಫೈಲ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು Chrome ಗೆ ಸಂಗ್ರಹಣೆ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="5774845247549698882">ಈ ಭಾಷೆಯಲ್ಲಿ Chrome OS ಪ್ರದರ್ಶನಗೊಂಡಿದೆ</translation>
 <translation id="5855036575689098185">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಚಾಲನೆಯಾಗುತ್ತಿರುವ ಸಾಫ್ಟ್‌ವೇರ್ Google Chrome ನೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆಯಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5877064549588274448">ಚಾನಲ್ ಬದಲಾಗಿದೆ. ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
@@ -181,7 +177,6 @@
 <translation id="6291549208091401781">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿನ ಎಲ್ಲ ಬಳಕೆದಾರರಿಗೆ ಈಗಾಗಲೇ Google Chrome ಸ್ಥಾಪಿತವಾಗಿದೆ.</translation>
 <translation id="6338556085225130112">Google Chrome ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="6368958679917195344">ಹೆಚ್ಚುವರಿ <ph name="BEGIN_LINK_CROS_OSS" />ತೆರೆದ ಮೂಲ ಸಾಫ್ಟ್‌ವೇರ್<ph name="END_LINK_CROS_OSS" /> ನಿಂದ Chrome OS ಮಾಡಲು ಸಾಧ್ಯ.</translation>
-<translation id="6393863479814692971">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್ ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6410540444482791104">ಅಪಾಯಕಾರಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಸೈಟ್‌ಗಳ ಪತ್ತೆಗೆ ಸಹಾಯಮಾಡಲು Google ಗೆ ಕೆಲವು ಸಿಸ್ಟಂ ಮಾಹಿತಿ ಮತ್ತು ಪುಟ ವಿಷಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಳುಹಿಸುವ ಮೂಲಕ, ನೀವು Chrome ಅನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಸುರಕ್ಷಿತ ಮತ್ತು ಸರಳವಾಗಿ ಮಾಡಲು ಸಹಾಯ ಮಾಡಬಹುದು.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{ಡೌನ್‌ಲೋಡ್ ಪ್ರಸ್ತುತ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ನೀವು ಡೌನ್‌ಲೋಡ್ ರದ್ದುಮಾಡಲು ಮತ್ತು Google Chrome ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?}one{# ಡೌನ್‌ಲೋಡ್‌ಗಳು ಪ್ರಸ್ತುತ ಪ್ರಗತಿಯಲ್ಲಿವೆ. ನೀವು ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ರದ್ದುಮಾಡಲು ಮತ್ತು Google Chrome ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?}other{# ಡೌನ್‌ಲೋಡ್‌ಗಳು ಪ್ರಸ್ತುತ ಪ್ರಗತಿಯಲ್ಲಿವೆ. ನೀವು ಡೌನ್‌ಲೋಡ್‌ಗಳನ್ನು ರದ್ದುಮಾಡಲು ಮತ್ತು Google Chrome ನಿರ್ಗಮಿಸಲು ಬಯಸುವಿರಾ?}}</translation>
 <translation id="6566149418543181476">Google Chrome ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -189,7 +184,6 @@
 <translation id="6600954340915313787">Chrome ಗೆ ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="6634887557811630702">Google Chrome ಅನ್ನು ನವೀಕರಿಸಿದೆ</translation>
 <translation id="6676384891291319759">ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
-<translation id="6697947395630195233">ಈ ಸೈಟ್‌ ಮೂಲಕ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chrome ಗೆ ನಿಮ್ಮ ಸ್ಥಳದ ಪ್ರವೇಶ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="683440813066116847">mDNS ಟ್ರಾಫಿಕ್‌ಗೆ ಅನುಮತಿಸುವ ನಿಟ್ಟಿನಲ್ಲಿ Google Chrome ಕ್ಯಾನರಿಗೆ ಒಳಬರುವ ನಿಯಮ.</translation>
 <translation id="686561893457936865">ಎಲ್ಲೆಡೆ Chrome ಅನ್ನು ಕೊಂಡೊಯ್ಯಿರಿ</translation>
 <translation id="6885412569789873916">Chrome ಬೀಟಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index dc28ef1..8cf3022 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -58,7 +58,6 @@
 
 로그인하면 북마크, 방문 기록 및 기타 설정과 같은 Chrome 정보가 <ph name="ACCOUNT_EMAIL_NEW" />에 병합됩니다.</translation>
 <translation id="2397416548179033562">Chrome 메뉴 표시</translation>
-<translation id="2416359993254398973">Chrome이 이 사이트에서 카메라에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="2429317896000329049">도메인에서 동기화를 사용할 수 없어 Chrome에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="2446511512801740068">한동안 사용하지 않아 Chrome의 버전이 오래되었습니다. 업데이트를 사용할 수 있으며 다시 시작하면 바로 업데이트됩니다.</translation>
 <translation id="2485422356828889247">제거</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">비정상 종료 보고서와 <ph name="UMA_LINK" />을(를) Google로 전송하여 Chrome 개선에 참여합니다.</translation>
 <translation id="2689103672227170538">Chrome을 시작하면 표시되는 페이지가 이 확장 프로그램으로 인해 변경되었습니다.</translation>
 <translation id="2705403826523567092">모든 기기에서 동기화된 나만의 맞춤 인터넷 사용 환경을 확인하려면 로그인하세요</translation>
-<translation id="2769762047821873045">Chrome이 기본 브라우저로 설정되어 있지 않습니다.</translation>
 <translation id="2770231113462710648">다음으로 기본 브라우저 변경:</translation>
 <translation id="2799223571221894425">다시 시작</translation>
 <translation id="2847461019998147611">이 언어로 Chrome 표시</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Chrome에 로드된 모듈</translation>
 <translation id="556024056938947818">Chrome에서 비밀번호를 표시하려고 합니다.</translation>
 <translation id="5566025111015594046">Chrome(mDNS-In)</translation>
-<translation id="557283862590186398">Chrome이 이 사이트에서 마이크에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" />은(는) 위험할 수 있으므로 Chrome에서 차단했습니다.</translation>
 <translation id="573759479754913123">Chrome OS 정보</translation>
-<translation id="5749068826913805084">Chrome에서 파일을 다운로드하려면 저장소 액세스 권한이 있어야 합니다.</translation>
 <translation id="5774845247549698882">현재 Chrome OS에서 사용 중인 언어</translation>
 <translation id="5855036575689098185">컴퓨터에서 실행 중인 소프트웨어가 Chrome과 호환되지 않습니다.</translation>
 <translation id="5877064549588274448">채널이 변경되었습니다. 변경사항을 적용하려면 기기를 다시 시작하세요.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">컴퓨터에 Chrome이 이미 설치되어 있으며 모든 사용자가 사용할 수 있습니다.</translation>
 <translation id="6338556085225130112">Chrome 업데이트 중</translation>
 <translation id="6368958679917195344">Chrome OS는 추가 <ph name="BEGIN_LINK_CROS_OSS" />오픈소스 소프트웨어<ph name="END_LINK_CROS_OSS" />를 사용했습니다.</translation>
-<translation id="6393863479814692971">Chrome이 이 사이트에서 카메라와 마이크에 액세스하려면 권한이 필요합니다.</translation>
 <translation id="6410540444482791104">위험한 앱과 사이트를 감지할 수 있도록 일부 시스템 정보와 페이지 콘텐츠를 Google로 자동 전송함으로써 Chrome을 더 안전하고 편리하게 사용할 수 있습니다.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{현재 다운로드가 진행 중입니다. 다운로드를 취소하고 Chrome을 종료하시겠습니까?}other{현재 #개의 다운로드가 진행 중입니다. 다운로드를 취소하고 Chrome을 종료하시겠습니까?}}</translation>
 <translation id="6566149418543181476">Chrome 업데이트 중(<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Chrome에 복사됨</translation>
 <translation id="6634887557811630702">Chrome이 최신 버전입니다.</translation>
 <translation id="6676384891291319759">인터넷 연결</translation>
-<translation id="6697947395630195233">Chrome이 이 사이트와 위치를 공유하려면 내 위치에 액세스하도록 허용해야 합니다.</translation>
 <translation id="683440813066116847">Chrome Canary가 mDNS 트래픽을 허용하는 인바운드 규칙입니다.</translation>
 <translation id="686561893457936865">어디에서나 Chrome 사용</translation>
 <translation id="6885412569789873916">Chrome 베타 앱</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index 3abb5104..b595744 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -58,7 +58,6 @@
 
 Prisijungus bet kuriuo būdu, „Chrome“ informacija, pvz., žymės, istorija ir kiti nustatymai, bus sujungta su <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Rodyti „Chrome“ meniu</translation>
-<translation id="2416359993254398973">„Chrome“ reikia leidimo, kad galėtų naudoti jūsų fotoaparatą šioje svetainėje.</translation>
 <translation id="2429317896000329049">„Google Chrome“ negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation>
 <translation id="2446511512801740068">„Chrome“ yra pasenusi, nes kurį nebuvo paleista iš naujo. Naujinys pasiekiamas ir jis bus pritaikytas, kai paleisite „Chrome“ iš naujo.</translation>
 <translation id="2485422356828889247">Pašalinti</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Padėkite tobulinti „Google Chrome“ siųsdami „Google“ strigčių ataskaitas ir <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">Šis plėtinys pakeitė, kuris puslapis rodomas paleidus „Chrome“.</translation>
 <translation id="2705403826523567092">Prisijunkite ir gaukite suasmenintų naršymo funkcijų, sinchronizuojamų skirtinguose įrenginiuose</translation>
-<translation id="2769762047821873045">„Google Chrome“ nėra numatytoji naršyklė.</translation>
 <translation id="2770231113462710648">Pakeisti numatytąją naršyklę į:</translation>
 <translation id="2799223571221894425">Paleisti iš naujo</translation>
 <translation id="2847461019998147611">Pateikti „Google Chrome“ šia kalba</translation>
@@ -166,10 +164,8 @@
 <translation id="5495581687705680288">Į „Google Chrome“ įkelti moduliai</translation>
 <translation id="556024056938947818">„Google Chrome“ bando rodyti slaptažodžius.</translation>
 <translation id="5566025111015594046">„Google Chrome“ (mDNS-In)</translation>
-<translation id="557283862590186398">„Chrome“ reikia leidimo, kad galėtų naudoti jūsų mikrofoną šioje svetainėje.</translation>
 <translation id="565744775970812598">Failas „<ph name="FILE_NAME" />“ gali būti pavojingas, todėl „Chrome“ jį užblokavo.</translation>
 <translation id="573759479754913123">Apie „Chrome“ OS</translation>
-<translation id="5749068826913805084">„Chrome“ reikia prieigos prie saugyklos failams atsisiųsti.</translation>
 <translation id="5774845247549698882">„Chrome“ OS pateikiama šia kalba</translation>
 <translation id="5855036575689098185">Jūsų kompiuteryje veikianti programinė įranga nesuderinama su „Google Chrome“.</translation>
 <translation id="5877064549588274448">Kanalas pakeistas. Kad pritaikytumėte pakeitimus, iš naujo paleiskite įrenginį.</translation>
@@ -188,7 +184,6 @@
 <translation id="6291549208091401781">„Google Chrome“ jau įdiegta visiems kompiuterio naudotojams.</translation>
 <translation id="6338556085225130112">Atnaujinama „Google Chrome“</translation>
 <translation id="6368958679917195344">„Chrome“ OS galima naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">„Chrome“ reikia leidimo, kad galėtų naudoti jūsų fotoaparatą ir mikrofoną šioje svetainėje.</translation>
 <translation id="6410540444482791104">Galite padėti sustiprinti „Chrome“ saugą ir palengvinti jos naudojimą automatiškai „Google“ siųsdami tam tikrą sistemos informaciją ir puslapių turinį, kad padėtumėte aptikti pavojingas programas ir svetaines.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Šiuo metu vykdomas atsisiuntimas. Ar norite atšaukti atsisiuntimą ir išeiti iš „Google Chrome“?}one{Šiuo metu vykdomas # atsisiuntimas. Ar norite atšaukti atsisiuntimus ir išeiti iš „Google Chrome“?}few{Šiuo metu vykdomi # atsisiuntimai. Ar norite atšaukti atsisiuntimus ir išeiti iš „Google Chrome“?}many{Šiuo metu vykdoma # atsisiuntimo. Ar norite atšaukti atsisiuntimus ir išeiti iš „Google Chrome“?}other{Šiuo metu vykdoma # atsisiuntimų. Ar norite atšaukti atsisiuntimus ir išeiti iš „Google Chrome“?}}</translation>
 <translation id="6566149418543181476">Atnaujinama „Google Chrome“ (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -196,7 +191,6 @@
 <translation id="6600954340915313787">Nukopijuota į „Chrome“</translation>
 <translation id="6634887557811630702">„Google Chrome“ naujausios versijos.</translation>
 <translation id="6676384891291319759">Interneto prieiga</translation>
-<translation id="6697947395630195233">„Chrome“ reikia leidimo, kad galėtų naudoti jūsų vietovės informaciją ir bendrinti ją su šia svetaine.</translation>
 <translation id="683440813066116847">„Canary“ versijos „Google Chrome“ skirta taisyklė, pagal kurią leidžiamas gaunamas mDNS srautas.</translation>
 <translation id="686561893457936865">Pasiimkite „Chrome“ bet kur</translation>
 <translation id="6885412569789873916">„Chrome“ beta versijos programos</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index d82a1052..566279c9 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -56,7 +56,6 @@
 
 Ja pierakstīsieties tik un tā, Chrome informācija, piemēram, grāmatzīmes, vēsture un citi iestatījumi, tiks apvienota ar konta <ph name="ACCOUNT_EMAIL_NEW" /> informāciju.</translation>
 <translation id="2397416548179033562">Rādīt Chrome izvēlni</translation>
-<translation id="2416359993254398973">Pārlūkam Chrome ir nepieciešama atļauja piekļūt jūsu kamerai šajā vietnē.</translation>
 <translation id="2429317896000329049">Google Chrome nevarēja sinhronizēt jūsu datus, jo jūsu domēnam nav pieejama sinhronizācija.</translation>
 <translation id="2446511512801740068">Pārlūks Chrome ir novecojis, jo jau kādu laiku tas nav atkārtoti palaists. Atjauninājums ir pieejams un tiks lietots, tiklīdz atkārtoti palaidīsiet pārlūku.</translation>
 <translation id="2485422356828889247">Atinstalēt</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Palīdzēt uzlabot pārlūku Google Chrome, nosūtot Google serveriem avāriju pārskatus un <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">Šis paplašinājums mainīja iestatījumu, kura lapa tiek parādīta, palaižot pārlūku Chrome.</translation>
 <translation id="2705403826523567092">Pierakstieties, lai personalizētu pārlūkošanas iespējas, kas tiek sinhronizētas ierīcēs.</translation>
-<translation id="2769762047821873045">Google Chrome nav jūsu noklusējuma pārlūks.</translation>
 <translation id="2770231113462710648">Mainīt noklusējuma pārlūkprogrammu uz:</translation>
 <translation id="2799223571221894425">Restartēt</translation>
 <translation id="2847461019998147611">Rādīt Google Chrome šajā valodā</translation>
@@ -161,10 +159,8 @@
 <translation id="5495581687705680288">Pārlūkā Google Chrome ielādētie moduļi</translation>
 <translation id="556024056938947818">Google Chrome mēģina rādīt paroles.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS ienākošā datplūsma)</translation>
-<translation id="557283862590186398">Pārlūkam Chrome ir nepieciešama atļauja piekļūt jūsu mikrofonam šajā vietnē.</translation>
 <translation id="565744775970812598">Fails <ph name="FILE_NAME" /> var būt bīstams, tādēļ Chrome to bloķēja.</translation>
 <translation id="573759479754913123">Par &amp;Chrome OS</translation>
-<translation id="5749068826913805084">Chrome ir nepieciešama piekļuve krātuvei, lai varētu lejupielādēt failus.</translation>
 <translation id="5774845247549698882">Chrome OS tiek rādīta šajā valodā.</translation>
 <translation id="5855036575689098185">Programmatūra, kas darbojas jūsu datorā, nav saderīga ar pārlūku Google Chrome.</translation>
 <translation id="5877064549588274448">Kanāls tika mainīts. Lai lietotu izmaiņas, restartējiet ierīci.</translation>
@@ -183,7 +179,6 @@
 <translation id="6291549208091401781">Pārlūks Google Chrome jau ir instalēts visiem jūsu datora lietotājiem.</translation>
 <translation id="6338556085225130112">Notiek Google Chrome atjaunināšana</translation>
 <translation id="6368958679917195344">Chrome OS ir kļuvusi iespējama, pateicoties papildu <ph name="BEGIN_LINK_CROS_OSS" />atklātā pirmkoda programmatūrai<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Pārlūkam Chrome ir nepieciešama atļauja piekļūt jūsu kamerai un mikrofonam šajā vietnē.</translation>
 <translation id="6410540444482791104">Varat palīdzēt uzlabot Chrome drošību un lietošanas ērtumu, automātiski nosūtot noteiktu drošības informāciju un lapas saturu Google serveriem, lai palīdzētu noteikt bīstamas lietotnes un vietnes.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Pašlaik notiek lejupielāde. Vai vēlaties atcelt lejupielādi un iziet no pārlūka Google Chrome?}zero{Pašlaik notiek # lejupielādes. Vai vēlaties atcelt lejupielādes un iziet no pārlūka Google Chrome?}one{Pašlaik notiek # lejupielāde. Vai vēlaties atcelt lejupielādes un iziet no pārlūka Google Chrome?}other{Pašlaik notiek # lejupielādes. Vai vēlaties atcelt lejupielādes un iziet no pārlūka Google Chrome?}}</translation>
 <translation id="6566149418543181476">Notiek Google Chrome atjaunināšana (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -191,7 +186,6 @@
 <translation id="6600954340915313787">Nokopēta pārlūkā Chrome.</translation>
 <translation id="6634887557811630702">Pārlūks Google Chrome ir atjaunināts.</translation>
 <translation id="6676384891291319759">Piekļūt internetam</translation>
-<translation id="6697947395630195233">Pārlūkam Chrome ir nepieciešama piekļuve jūsu atrašanās vietas datiem, lai varētu tos kopīgot ar šo vietni.</translation>
 <translation id="683440813066116847">Ienākošo savienojumu kārtula pārlūkam Google Chrome Canary, lai atļautu mDNS datplūsmu.</translation>
 <translation id="686561893457936865">Paņemiet Chrome sev līdzi</translation>
 <translation id="6885412569789873916">Chrome Beta lietotnes</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 8672aba..10c06bb0 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -58,7 +58,6 @@
 
 ഏതുവിധേനയും സൈൻ ഇൻ ചെയ്യുന്നത് ബുക്ക്‌മാർക്കുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലുള്ള Chrome വിവരങ്ങൾ <ph name="ACCOUNT_EMAIL_NEW" /> എന്നതുമായി ലയിപ്പിക്കും.</translation>
 <translation id="2397416548179033562">Chrome മെനു കാണിക്കുക</translation>
-<translation id="2416359993254398973">Chrome-ന് ഈ സൈറ്റിനായി നിങ്ങളുടെ ക്യാമറ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="2429317896000329049">നിങ്ങളുടെ ഡൊമെയ്‌‌നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Google Chrome-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="2446511512801740068">അൽപ്പസമയത്തിനുള്ളിൽ വീണ്ടും ആരംഭിക്കാത്തതിനാൽ Chrome കാലഹരണപ്പെട്ടു. അപ്‌ഡേറ്റ് ലഭ്യമായതിനാൽ, നിങ്ങൾ വീണ്ടും ആരംഭിച്ചയുടനെ അത് അപ്‌ഡേറ്റുചെയ്യും.</translation>
 <translation id="2485422356828889247">അണ്‍‌ഇന്‍‌സ്റ്റാള്‍‌ ചെയ്യുക</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Google-ലേക്ക് ക്രാഷ് റിപ്പോർട്ടുകളും <ph name="UMA_LINK" /> എന്നതും അയയ്‌ക്കുന്നതിലൂടെ Google Chrome മികച്ചതാക്കാൻ സഹായിക്കുക</translation>
 <translation id="2689103672227170538">നിങ്ങൾ Chrome ആരംഭിക്കുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ ഈ വിപുലീകരണം മാറ്റി.</translation>
 <translation id="2705403826523567092">ഉപകരണങ്ങളിൽ ഉടനീളം സമന്വയിപ്പിച്ച നിലയിലുള്ള, ഒരു വ്യക്തിപരമാക്കിയ ബ്രൗസിംഗ് അനുഭവത്തിനായി സൈൻ ഇൻ ചെയ്യുക</translation>
-<translation id="2769762047821873045">Google Chrome നിങ്ങളുടെ സ്ഥിരസ്ഥിതി ബ്രൌസറായിരുന്നില്ല.</translation>
 <translation id="2770231113462710648">സ്ഥിരസ്ഥി ബ്രൌസര്‍‌ ഇനിപ്പറയുന്നതിലേക്ക് മാറ്റുക:</translation>
 <translation id="2799223571221894425">വീണ്ടും സമാരംഭിക്കുക</translation>
 <translation id="2847461019998147611">ഈ ഭാഷയില്‍‌ Google Chrome പ്രദര്‍‌ശിപ്പിക്കുക</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">മൊഡ്യൂളുകള്‍ Google Chrome ലേയ്ക്ക് ലോഡുചെയ്തു</translation>
 <translation id="556024056938947818">Google Chrome പാസ്‌വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome-ന് ഈ സൈറ്റിനായി നിങ്ങളുടെ മൈക്രോഫോൺ ആക്‌സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ, Chrome ഇതിനെ ബ്ലോക്കുചെയ്‌തു.</translation>
 <translation id="573759479754913123">Chrome OS-നെക്കുറിച്ച്</translation>
-<translation id="5749068826913805084">ഫയലുകൾ ഡൗൺലോഡുചെയ്യാൻ Chrome-ന് സ്റ്റോറേജ് ആക്‌സസ്സ് ആവശ്യമുണ്ട്.</translation>
 <translation id="5774845247549698882">Chrome OS ഈ ഭാഷയിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു</translation>
 <translation id="5855036575689098185">നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ പ്രവർത്തിക്കുന്ന സോഫ്റ്റ്‌വെയർ Google Chrome-ന് അനുയോജ്യമല്ല.</translation>
 <translation id="5877064549588274448">ചാനൽ മാറ്റി. മാറ്റങ്ങൾ ബാധകമാകാൻ നിങ്ങളുടെ ഉപകരണം പുനരാരംഭിക്കുക.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ എല്ലാ ഉപയോക്താക്കൾക്കുമായി Google Chrome നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്‌തിരിക്കുന്നു.</translation>
 <translation id="6338556085225130112">Google Chrome അപ്‌ഡേറ്റുചെയ്യുന്നു</translation>
 <translation id="6368958679917195344">അനുബന്ധ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പണ്‍ ഉറവിട സോഫ്റ്റ്‍വെയര്‍<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ് Chrome OS നിര്‍മ്മിച്ചിരിക്കുന്നത്.</translation>
-<translation id="6393863479814692971">Chrome-ന് ഈ സൈറ്റിനായി നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ആക്‌സസുചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്.</translation>
 <translation id="6410540444482791104">അപകടകരമായ ആപ്‌സുകളെയും സൈറ്റുകളെയും തിരിച്ചറിയാൻ സഹായിക്കുന്ന ചില സിസ്‌റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും സ്വയമേവ Google-ന് അയയ്‌ക്കുന്നതിലൂടെ നിങ്ങൾക്ക് Chrome-ന്റെ ഉപയോഗം കൂടുതൽ സുരക്ഷിതവും എളുപ്പവുമാക്കാൻ സഹായിക്കാം.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{ഒരു ഡൗൺലോഡ് നിലവിൽ പുരോഗതിയിലാണ്. നിങ്ങൾക്ക് ഡൗൺലോഡ് റദ്ദാക്കി Google Chrome-ൽ നിന്ന് പുറത്തുകടക്കണോ?}other{# ഡൗൺലോഡുകൾ നിലവിൽ പുരോഗതിയിലാണ്. നിങ്ങൾക്ക് ഡൗൺലോഡുകൾ റദ്ദാക്കി Google Chrome-ൽ നിന്ന് പുറത്തുകടക്കണോ?}}</translation>
 <translation id="6566149418543181476">Google Chrome അപ്‌ഡേറ്റുചെയ്യുന്നു, (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Chrome-ലേക്ക് പ്കർത്തി</translation>
 <translation id="6634887557811630702">Google Chrome കാലികമാണ്.</translation>
 <translation id="6676384891291319759">ഇന്റര്‍‌നെറ്റ് ആക്‌സസ് ചെയ്യുക</translation>
-<translation id="6697947395630195233">Chrome-ന് ഈ സൈറ്റുമായി ലൊക്കേഷൻ പങ്കിടാൻ നിങ്ങളുടെ ലൊക്കേഷനിലേക്കുള്ള ആക്‌സസ് ആവശ്യമാണ്.</translation>
 <translation id="683440813066116847">mDNS ട്രാഫിക് അനുവദിക്കാൻ Google Chrome കാനറിയ്‌ക്കുള്ള ഇൻബൗണ്ട് റൂൾ.</translation>
 <translation id="686561893457936865">എല്ലായിടത്ത് നിന്നും Chrome ഉപയോഗിക്കുക</translation>
 <translation id="6885412569789873916">Chrome ബീറ്റ ആപ്പുകൾ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index 379a138..b10c529 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -57,7 +57,6 @@
 
 तरीही साइन इन करण्यामुळे <ph name="ACCOUNT_EMAIL_NEW" /> मध्ये बुकमार्क, इतिहास यासारखी Chrome माहिती आणि अन्य सेटिंग्ज विलीन होतील.</translation>
 <translation id="2397416548179033562">Chrome मेनू दर्शवा</translation>
-<translation id="2416359993254398973">या साइटसाठी Chromeला तुमचा कॅमेरा अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="2429317896000329049">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Google Chrome आपला डेटा संकालित करू शकले नाही.</translation>
 <translation id="2446511512801740068">Chrome कालबाह्य झाले आहे कारण हे काही क्षणात पुन्हा लाँच झाले नाही. एक अपडेट उपलब्ध आहे आणि आपण पुन्हा लाँच केल्यावर ते लगेच लागू होईल.</translation>
 <translation id="2485422356828889247">अनइन्स्टॉल करणे</translation>
@@ -69,7 +68,6 @@
 <translation id="2665296953892887393">Google कडे क्रॅश अहवाल आणि <ph name="UMA_LINK" /> पाठवून Google Chrome ला</translation>
 <translation id="2689103672227170538">आपण Chrome प्रारंभ करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे या विस्ताराने बदलले आहे.</translation>
 <translation id="2705403826523567092">सर्व डिव्हाइसवर सिंक केलेला, पर्सनलाइझ केलेला ब्राउझिंग अनुभव मिळवण्यासाठी साइन इन करा</translation>
-<translation id="2769762047821873045">Google Chrome आपला डीफॉल्ट ब्राउझर नाही.</translation>
 <translation id="2770231113462710648">डीफॉल्ट ब्राउझर यावर बदला:</translation>
 <translation id="2799223571221894425">पुन्हा लाँच करा</translation>
 <translation id="2847461019998147611">Google Chrome या भाषेत प्रदर्शि‍त करा</translation>
@@ -162,10 +160,8 @@
 <translation id="5495581687705680288">Google Chrome मध्ये लोड केलेली मॉड्यूल</translation>
 <translation id="556024056938947818">Google Chrome पासवर्ड दर्शवण्याचा प्रयत्न करत आहे.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-मध्ये)</translation>
-<translation id="557283862590186398">या साइटसाठी Chromeला तुमचा मायक्रोफोन अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chrom ने ते अवरोधित केले आहे.</translation>
 <translation id="573759479754913123">Chrome OS बद्दल</translation>
-<translation id="5749068826913805084">Chrome ला फायली डाउनलोड करण्यासाठी संचय प्रवेश आवश्यक आहे.</translation>
 <translation id="5774845247549698882">Chrome OS या भाषेत प्रदर्शित केली आहे</translation>
 <translation id="5855036575689098185">आपल्या संगणकावर चालत असलेले सॉफ्टवेअर Google Chrome सह विसंगत आहे.</translation>
 <translation id="5877064549588274448">चॅनेल बदलले. बदल लागू करण्यासाठी आपले डिव्हाइस रीस्टार्ट करा.</translation>
@@ -184,7 +180,6 @@
 <translation id="6291549208091401781">आपल्या संगणकावरील सर्व वापरकर्त्यांसाठी Google Chrome आधीच इंस्टॉल केला आहे.</translation>
 <translation id="6338556085225130112">Google Chrome अपडेट होत आहे</translation>
 <translation id="6368958679917195344"> Chrome OS अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />मुक्त स्रोत सॉफ्टवेअर<ph name="END_LINK_CROS_OSS" /> द्वारे शक्य झाले आहे.</translation>
-<translation id="6393863479814692971">या साइटसाठी Chromeला तुमचा कॅमेरा आणि मायक्रोफोन अॅक्सेस करण्याची परवानगी आवश्यक आहे.</translation>
 <translation id="6410540444482791104">धोकादायम अ‍ॅप्स आणि साइट शोधण्यात मदत करण्यासाठी Google ला काही सिस्टम माहिती आणि पृष्ठ सामग्री स्वयंचलितपणे पाठवून आपण Chromium सुरक्षित आणि वापरण्यास सुलभ बनविण्यात मदत करू शकता.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{एक डाउनलोड सध्या प्रगतीपथावर आहे. आपण डाउनलोड रद्द करू आणि Google Chrome च्या  बाहेर पडू इच्छिता?}one{सध्या # डाउनलोड प्रगतीपथावर आहे. आपण डाउनलोड रद्द करू आणि Google Chrome च्या बाहेर पडू इच्छिता?}other{सध्या # डाउनलोड प्रगतीपथावर आहेत. आपण डाउनलोड रद्द करू आणि Google Chrome च्या बाहेर पडू इच्छिता?}}</translation>
 <translation id="6566149418543181476">Google Chrome अपडेट करीत आहे (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -192,7 +187,6 @@
 <translation id="6600954340915313787">Chrome वर कॉपी केले</translation>
 <translation id="6634887557811630702">Google Chrome अद्ययावत आहे.</translation>
 <translation id="6676384891291319759">इंटरनेटमध्ये प्रवेश करा</translation>
-<translation id="6697947395630195233">तुमचे स्थान या साइटसोबत शेअर करण्यासाठी Chromeला तुमच्या स्थानाचा अ‍ॅक्सेस हवा आहे.</translation>
 <translation id="683440813066116847">mDNS रहदारीस अनुमती देण्यासाठी Google Chrome कॅनरी साठी अंतर्गामी नियम.</translation>
 <translation id="686561893457936865">Chrome ला सर्वत्र न्या</translation>
 <translation id="6885412569789873916">Chrome बीटा अॅप</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index be232978..b90191f7 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -54,7 +54,6 @@
 
 Teruskan juga log masuk akan menggabungkan maklumat Chrome seperti penanda halaman, sejarah dan tetapan lain ke <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Paparkan menu Chrome</translation>
-<translation id="2416359993254398973">Chrome memerlukan kebenaran untuk mengakses kamera anda bagi tapak ini.</translation>
 <translation id="2429317896000329049">Google Chrome tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation>
 <translation id="2446511512801740068">Chrome sudah usang kerana telah lama tidak dilancarkan. Terdapat kemas kini tersedia dan akan digunakan sebaik sahaja anda melancarkannya semula.</translation>
 <translation id="2485422356828889247">Nyahpasang</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Bantu jadikan Google Chrome lebih baik dengan menghantar laporan ranap dan <ph name="UMA_LINK" /> kepada Google.</translation>
 <translation id="2689103672227170538">Sambungan ini telah menukar halaman yang ditunjukkan apabila anda memulakan Chrome.</translation>
 <translation id="2705403826523567092">Log masuk untuk mendapatkan pengalaman penyemakan imbas diperibadikan, yang disegerakkan merentas peranti</translation>
-<translation id="2769762047821873045">Google Chrome adalah bukan penyemak imbas lalai anda.</translation>
 <translation id="2770231113462710648">Tukar penyemak imbas lalai kepada:</translation>
 <translation id="2799223571221894425">Lancarkan semula</translation>
 <translation id="2847461019998147611">Paparkan Google Chrome dalam bahasa ini</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Modul dimuatkan ke dalam Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome sedang cuba memaparkan kata laluan.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome memerlukan kebenaran untuk mengakses mikrofon anda bagi tapak ini.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> mungkin berbahaya, jadi Chrome telah menyekat fail itu.</translation>
 <translation id="573759479754913123">Mengenai Chrome OS</translation>
-<translation id="5749068826913805084">Chrome memerlukan akses storan untuk memuat turun fail.</translation>
 <translation id="5774845247549698882">OS Chrome dipaparkan dalam bahasa ini</translation>
 <translation id="5855036575689098185">Perisian yang dijalankan pada komputer anda tidak serasi dengan Google Chrome.</translation>
 <translation id="5877064549588274448">Saluran berubah. Mulakan semula peranti anda untuk menggunakan perubahan.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome telah dipasang untuk semua pengguna pada komputer anda.</translation>
 <translation id="6338556085225130112">Mengemas kini Google Chrome</translation>
 <translation id="6368958679917195344">OS Chrome menjadi kenyataan dengan <ph name="BEGIN_LINK_CROS_OSS" />perisian sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan.</translation>
-<translation id="6393863479814692971">Chrome memerlukan kebenaran untuk mengakses kamera dan mikrofon anda bagi tapak ini.</translation>
 <translation id="6410540444482791104">Anda boleh membantu kami menjadikan Chrome lebih selamat dan mudah digunakan dengan menghantar secara automatik beberapa maklumat sistem dan kandungan halaman kepada Google untuk membantu mengesan apl dan tapak yang berbahaya.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Muat turun sedang berlangsung. Adakah anda ingin membatalkan muat turun dan keluar daripada Chrome?}other{# muat turun sedang berlangsung pada masa ini. Adakah anda ingin membatalkan muat turun dan keluar daripada Google Chrome?}}</translation>
 <translation id="6566149418543181476">Mengemas kini Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Disalin ke Chrome</translation>
 <translation id="6634887557811630702">Google Chrome telah dikemas kini.</translation>
 <translation id="6676384891291319759">Akses Internet</translation>
-<translation id="6697947395630195233">Chrome memerlukan akses kepada lokasi anda untuk berkongsi lokasi dengan tapak ini.</translation>
 <translation id="683440813066116847">Peraturan masuk bagi Google Chrome Canary untuk membenarkan trafik mDNS.</translation>
 <translation id="686561893457936865">Bawa Chrome ke mana-mana sahaja</translation>
 <translation id="6885412569789873916">Apl Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index feea482..5a5e4de3 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -58,7 +58,6 @@
 
 Als je inlogt, worden Chrome-gegevens zoals bladwijzers, geschiedenis en andere instellingen samengevoegd met <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Chrome-menu weergeven</translation>
-<translation id="2416359993254398973">Chrome heeft toegangsrechten voor je camera nodig voor deze site.</translation>
 <translation id="2429317896000329049">Google Chrome kan je gegevens niet synchroniseren, omdat synchronisatie niet beschikbaar is voor je domein.</translation>
 <translation id="2446511512801740068">Chrome is verouderd omdat het programma al een tijd niet opnieuw is gestart. Er is een update beschikbaar die wordt toegepast zodra je het programma opnieuw start.</translation>
 <translation id="2485422356828889247">Installatie ongedaan maken</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Help ons Google Chrome te verbeteren door crashrapporten en <ph name="UMA_LINK" /> naar Google te verzenden</translation>
 <translation id="2689103672227170538">Deze extensie heeft gewijzigd welke pagina wordt weergegeven wanneer je Chrome start.</translation>
 <translation id="2705403826523567092">Log in voor een gepersonaliseerde browsefunctionaliteit, gesynchroniseerd op verschillende apparaten</translation>
-<translation id="2769762047821873045">Google Chrome is niet je standaardbrowser.</translation>
 <translation id="2770231113462710648">Standaardbrowser wijzigen in:</translation>
 <translation id="2799223571221894425">Opnieuw starten</translation>
 <translation id="2847461019998147611">Google Chrome weergegeven in deze taal</translation>
@@ -163,10 +161,8 @@
 <translation id="5495581687705680288">Modules die in Google Chrome zijn geladen</translation>
 <translation id="556024056938947818">Google Chrome probeert wachtwoorden weer te geven.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome heeft toegangsrechten voor je microfoon nodig voor deze site.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> kan gevaarlijk zijn en is daarom door Chrome geblokkeerd.</translation>
 <translation id="573759479754913123">Over Chrome OS</translation>
-<translation id="5749068826913805084">Chrome heeft toegang tot de opslag nodig om deze bestanden te kunnen downloaden.</translation>
 <translation id="5774845247549698882">Chrome OS wordt weergegeven in deze taal</translation>
 <translation id="5855036575689098185">De software op je computer is niet compatibel met Google Chrome.</translation>
 <translation id="5877064549588274448">Kanaal gewijzigd. Start het apparaat opnieuw op om de wijzigingen door te voeren.</translation>
@@ -185,7 +181,6 @@
 <translation id="6291549208091401781">Google Chrome is al geïnstalleerd voor alle gebruikers op je computer.</translation>
 <translation id="6338556085225130112">Google Chrome updaten</translation>
 <translation id="6368958679917195344">Chrome OS wordt mogelijk gemaakt door aanvullende <ph name="BEGIN_LINK_CROS_OSS" />open source-software<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome heeft toegangsrechten voor je camera en microfoon nodig voor deze site.</translation>
 <translation id="6410540444482791104">Je kunt helpen Chrome veiliger en gebruiksvriendelijker te maken door automatisch bepaalde systeeminformatie en paginacontent naar Google te verzenden om te helpen bij de detectie van gevaarlijke apps en sites.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Er wordt momenteel een download uitgevoerd. Wil je de download annuleren en Google Chrome afsluiten?}other{Er worden momenteel # downloads uitgevoerd. Wil je de downloads annuleren en Google Chrome afsluiten?}}</translation>
 <translation id="6566149418543181476">Google Chrome updaten (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -193,7 +188,6 @@
 <translation id="6600954340915313787">Gekopieerd naar Chrome</translation>
 <translation id="6634887557811630702">Google Chrome is bijgewerkt.</translation>
 <translation id="6676384891291319759">Verbinding maken met internet</translation>
-<translation id="6697947395630195233">Chrome heeft toegang tot je locatie nodig om je locatie met deze site te delen.</translation>
 <translation id="683440813066116847">Inkomende regel zodat Google Chrome Canary mDNS-verkeer toestaat.</translation>
 <translation id="686561893457936865">Neem Chrome overal mee naartoe</translation>
 <translation id="6885412569789873916">Chrome Bèta-apps</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index 4baae72..ad12412 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -54,7 +54,6 @@
 
 Hvis du logger deg på allikevel, blir Chrome-informasjon som bokmerker, loggen og andre innstillinger slått sammen med <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Vis Chrome-menyen</translation>
-<translation id="2416359993254398973">Chrome trenger tilgang til kameraet ditt for dette nettstedet.</translation>
 <translation id="2429317896000329049">Google Chrome kunne ikke synkronisere dataene dine fordi synkronisering ikke er tilgjengelig for domenet ditt.</translation>
 <translation id="2446511512801740068">Chrome er utdatert fordi den ikke har vært startet på nytt på en stund. En oppdatering er tilgjengelig og tas i bruk når du starter Chrome på nytt.</translation>
 <translation id="2485422356828889247">Avinstaller</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Bidra til å gjøre Google Chrome bedre ved å sende programstopprapporter og <ph name="UMA_LINK" /> til Google</translation>
 <translation id="2689103672227170538">Denne utvidelsen har endret hvilken side som vises når du starter Chrome.</translation>
 <translation id="2705403826523567092">Logg på for å gi surfeopplevelsen et personlig preg, synkronisert mellom alle enheter</translation>
-<translation id="2769762047821873045">Google Chrome er ikke din standardnettleser.</translation>
 <translation id="2770231113462710648">Endre standardnettleser til:</translation>
 <translation id="2799223571221894425">Start på nytt</translation>
 <translation id="2847461019998147611">Vis Google Chrome på dette språket</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Innlastede moduler i Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome prøver å vise passord.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-Inn)</translation>
-<translation id="557283862590186398">Chrome trenger tilgang til mikrofonen din for dette nettstedet.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> kan være farlig, så Chrome har blokkert den.</translation>
 <translation id="573759479754913123">Om Chrome OS</translation>
-<translation id="5749068826913805084">Chrome må ha lagringstilgang for å laste ned filer.</translation>
 <translation id="5774845247549698882">Chrome OS vises på dette språket</translation>
 <translation id="5855036575689098185">Programvaren som kjører på datamaskinen din er ikke kompatibel med Google Chrome.</translation>
 <translation id="5877064549588274448">Kanalen ble endret. Start enheten på nytt for å aktivere endringene.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome er allerede installert for alle brukerne på datamaskinen din.</translation>
 <translation id="6338556085225130112">Oppdaterer Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS muliggjøres av <ph name="BEGIN_LINK_CROS_OSS" />tilleggsprogramvare med åpen kildekode<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome trenger tilgang til kameraet ditt og mikrofonen din for dette nettstedet.</translation>
 <translation id="6410540444482791104">Du kan bidra til å gjøre Chrome tryggere og enklere å bruke ved å sende Google noe systeminformasjon og sideinnhold automatisk. Dette hjelper oss med å oppdage farlige apper og nettsteder.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{En nedlasting pågår for øyeblikket. Vil du avbryte nedlastingen og avslutte Google Chrome?}other{# nedlastinger pågår for øyeblikket. Vil du avbryte nedlastingene og avslutte Google Chrome?}}</translation>
 <translation id="6566149418543181476">Oppdaterer Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Kopiert til Chrome</translation>
 <translation id="6634887557811630702">Google Chrome er oppdatert.</translation>
 <translation id="6676384891291319759">Gå til Internett</translation>
-<translation id="6697947395630195233">Chrome trenger tilgang til posisjonen din for å kunne dele den med dette nettstedet.</translation>
 <translation id="683440813066116847">Regel om innkommende trafikk for Google Chrome Canary for å tillate mDNS-trafikk.</translation>
 <translation id="686561893457936865">Bruk Chrome overalt</translation>
 <translation id="6885412569789873916">Chrome Beta-apper</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index 23f0c5d..0f78651 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -54,7 +54,6 @@
 
 Jeśli jednak zalogujesz się teraz, informacje Chrome, takie jak zakładki, historia i inne ustawienia, zostaną połączone z kontem <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Pokaż menu Chrome</translation>
-<translation id="2416359993254398973">Chrome potrzebuje uprawnień dostępu do aparatu na tej stronie.</translation>
 <translation id="2429317896000329049">Google Chrome nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation>
 <translation id="2446511512801740068">Chrome jest nieaktualny, ponieważ od pewnego czasu nie był uruchamiany. Dostępna jest aktualizacja, która zostanie zastosowana natychmiast po ponownym uruchomieniu.</translation>
 <translation id="2485422356828889247">Odinstaluj</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Pomóż nam ulepszyć Google Chrome, przesyłając do Google raporty o awariach i <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">To rozszerzenie ustawiło inną stronę wyświetlaną po uruchomieniu Chrome.</translation>
 <translation id="2705403826523567092">Zaloguj się, by spersonalizować przeglądanie i zsynchronizować je na różnych urządzeniach</translation>
-<translation id="2769762047821873045">Google Chrome nie jest domyślną przeglądarką.</translation>
 <translation id="2770231113462710648">Zmień przeglądarkę domyślną na:</translation>
 <translation id="2799223571221894425">Uruchom ponownie</translation>
 <translation id="2847461019998147611">Wyświetlaj Google Chrome w tym języku</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">Moduły załadowane do przeglądarki Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome próbuje pokazać hasła.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome potrzebuje uprawnień dostępu do mikrofonu na tej stronie.</translation>
 <translation id="565744775970812598">Plik <ph name="FILE_NAME" /> może być niebezpieczny, dlatego został zablokowany przez Chrome.</translation>
 <translation id="573759479754913123">System operacyjny &amp;Chrome – informacje</translation>
-<translation id="5749068826913805084">Chrome musi mieć dostęp do pamięci, by pobierać pliki.</translation>
 <translation id="5774845247549698882">System operacyjny Chrome działa obecnie w tym języku</translation>
 <translation id="5855036575689098185">Oprogramowanie, które działa na Twoim komputerze jest niezgodne z Google Chrome.</translation>
 <translation id="5877064549588274448">Kanał został zmieniony. Aby zastosować zmiany, uruchom ponownie urządzenie.</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">Google Chrome jest już zainstalowany dla wszystkich użytkowników tego komputera.</translation>
 <translation id="6338556085225130112">Aktualizuję Google Chrome</translation>
 <translation id="6368958679917195344">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu typu open source<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome potrzebuje uprawnień dostępu do aparatu i mikrofonu na tej stronie.</translation>
 <translation id="6410540444482791104">Możesz przyczynić się do zwiększenia bezpieczeństwa i komfortu korzystania z Chrome, automatycznie wysyłając do Google pewne informacje o systemie i część zawartości stron, by pomóc w wykrywaniu niebezpiecznych aplikacji i witryn.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Trwa pobieranie pliku. Czy chcesz je anulować i wyjść z Google Chrome?}few{Trwa pobieranie # plików. Czy chcesz je anulować i wyjść z Google Chrome?}many{Trwa pobieranie # plików. Czy chcesz je anulować i wyjść z Google Chrome?}other{Trwa pobieranie # pliku. Czy chcesz je anulować i wyjść z Google Chrome?}}</translation>
 <translation id="6566149418543181476">Aktualizuję Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">Skopiowana do Chrome</translation>
 <translation id="6634887557811630702">Masz aktualną wersję Google Chrome</translation>
 <translation id="6676384891291319759">Skorzystaj z internetu</translation>
-<translation id="6697947395630195233">Chrome musi mieć dostęp do Twojej lokalizacji, by udostępnić ją tej stronie.</translation>
 <translation id="683440813066116847">Reguła dla ruchu przychodzącego w Google Chrome Canary zezwalająca na ruch mDNS.</translation>
 <translation id="686561893457936865">Zabierz Chrome ze sobą</translation>
 <translation id="6885412569789873916">Aplikacje do Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
index 1f8c3698..3b38adcb 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -54,7 +54,6 @@
 
 Se você decidir fazer login assim mesmo, as informações do Google Chrome, como favoritos, histórico e outras configurações serão mescladas com as informações de <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Exibir o menu do Google Chrome</translation>
-<translation id="2416359993254398973">O Chrome precisa de permissão para este site acessar sua câmera.</translation>
 <translation id="2429317896000329049">O Google Chrome não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation>
 <translation id="2446511512801740068">O Chrome está desatualizado porque não foi reiniciado durante algum tempo. Uma atualização está disponível e será aplicada assim que você reiniciá-lo.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Ajude a melhorar o Google Chrome. Envie relatórios de erros e  <ph name="UMA_LINK" /> para o Google</translation>
 <translation id="2689103672227170538">Esta extensão alterou a página que é exibida quando você inicia o Chrome.</translation>
 <translation id="2705403826523567092">Faça login para ter uma experiência de navegação personalizada e sincronizada entre seus dispositivos</translation>
-<translation id="2769762047821873045">O Google Chrome não é o seu navegador padrão.</translation>
 <translation id="2770231113462710648">Alterar navegador padrão para:</translation>
 <translation id="2799223571221894425">Reiniciar</translation>
 <translation id="2847461019998147611">Exibir o Google Chrome neste idioma</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">Módulos carregados no Google Chrome</translation>
 <translation id="556024056938947818">O Google Chrome está tentando mostrar senhas.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">O Chrome precisa de permissão para este site acessar seu microfone.</translation>
 <translation id="565744775970812598">O arquivo <ph name="FILE_NAME" /> pode ser perigoso. Por isso, ele foi bloqueado pelo Chrome.</translation>
 <translation id="573759479754913123">Sobre o Chrome OS</translation>
-<translation id="5749068826913805084">O Chrome precisa de acesso de armazenamento para fazer o download de arquivos.</translation>
 <translation id="5774845247549698882">O Chrome OS é exibido neste idioma</translation>
 <translation id="5855036575689098185">O software que está sendo executado em seu computador não é compatível com o Google Chrome.</translation>
 <translation id="5877064549588274448">Canal alterado. Reinicie o dispositivo para aplicar as alterações.</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">O Google Chrome já está instalado para todos os usuários do seu computador.</translation>
 <translation id="6338556085225130112">Atualizando o Google Chrome</translation>
 <translation id="6368958679917195344">O sistema operacional do Chrome tornou-se possível graças a um <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
-<translation id="6393863479814692971">O Chrome precisa de permissão para este site acessar sua câmera e seu microfone.</translation>
 <translation id="6410540444482791104">Você pode ajudar a tornar o Chrome mais seguro e mais fácil de usar, enviando automaticamente algumas informações do sistema e conteúdos de página ao Google para ajudar a detectar apps e sites perigosos.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Um download está em andamento. Quer cancelar o download e sair do Google Chrome?}one{# downloads estão em andamento. Quer cancelar os downloads e sair do Google Chrome?}other{# downloads estão em andamento. Quer cancelar os downloads e sair do Google Chrome?}}</translation>
 <translation id="6566149418543181476">Atualizando o Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">Copiado no Chrome</translation>
 <translation id="6634887557811630702">O Google Chrome está atualizado.</translation>
 <translation id="6676384891291319759">Acessar a internet</translation>
-<translation id="6697947395630195233">O Chrome precisa acessar sua localização para compartilhá-la com este site.</translation>
 <translation id="683440813066116847">Regra interna do Google Chrome Canary para permitir tráfego mDNS.</translation>
 <translation id="686561893457936865">Leve o Chrome para todos os lugares</translation>
 <translation id="6885412569789873916">Apps do Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index 72ccc09..7e0788ff 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -54,7 +54,6 @@
 
 Se, mesmo assim, iniciar sessão, as informações do Chrome, como marcadores, histórico e outras definições, fundir-se-ão com <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Mostrar menu do Chrome</translation>
-<translation id="2416359993254398973">O Chrome necessita de autorização de acesso à câmara para este site.</translation>
 <translation id="2429317896000329049">O Google Chrome não conseguiu sincronizar os dados porque a Sincronização não está disponível para o seu domínio.</translation>
 <translation id="2446511512801740068">O Chrome está desatualizado porque não é reiniciado há algum tempo. Está disponível uma atualização que será aplicada logo que o reinicie.</translation>
 <translation id="2485422356828889247">Desinstalar</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Ajudar a melhorar o Google Chrome ao enviar relatórios de falhas e <ph name="UMA_LINK" /> à Google</translation>
 <translation id="2689103672227170538">Esta extensão alterou a página apresentada quando inicia o Chrome.</translation>
 <translation id="2705403826523567092">Inicie sessão para obter uma experiência de navegação personalizada, sincronizada entre dispositivos.</translation>
-<translation id="2769762047821873045">O Google Chrome não é o seu navegador predefinido.</translation>
 <translation id="2770231113462710648">Alterar o navegador predefinido para:</translation>
 <translation id="2799223571221894425">Reiniciar</translation>
 <translation id="2847461019998147611">Apresentar o Google Chrome neste idioma</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Módulos carregados no Google Chrome</translation>
 <translation id="556024056938947818">O Google Chrome está a tentar mostrar palavras-passe.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">O Chrome necessita de autorização de acesso ao microfone para este site.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> pode ser perigoso, por isso o Chrome bloqueou-o.</translation>
 <translation id="573759479754913123">Acerca do Chrome OS</translation>
-<translation id="5749068826913805084">O Chrome necessita de acesso ao armazenamento para transferir ficheiros.</translation>
 <translation id="5774845247549698882">O Chrome OS é apresentado neste idioma</translation>
 <translation id="5855036575689098185">O software em execução no seu computador é incompatível com o Google Chrome.</translation>
 <translation id="5877064549588274448">Canal alterado. Reinicie o dispositivo para aplicar as alterações.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">O Google Chrome já está instalado para todos os utilizadores no seu computador.</translation>
 <translation id="6338556085225130112">A atualizar o Google Chrome…</translation>
 <translation id="6368958679917195344">O Chrome OS é possível através de <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
-<translation id="6393863479814692971">O Chrome necessita de autorização de acesso à câmara e ao microfone para este site.</translation>
 <translation id="6410540444482791104">Pode ajudar a tornar o Chrome mais seguro e fácil de utilizar ao enviar automaticamente algumas informações do sistema e conteúdo de páginas para a Google para ajudar a detetar aplicações e sites perigosos.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Uma transferência está atualmente em curso. Pretende cancelar a transferência e sair do Google Chrome?}other{# transferências estão atualmente em curso. Pretende cancelar as transferências e sair do Google Chrome?}}</translation>
 <translation id="6566149418543181476">A atualizar o Google Chrome (<ph name="PROGRESS_PERCENT" />)…</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Copiado para o Chrome</translation>
 <translation id="6634887557811630702">O Google Chrome está atualizado.</translation>
 <translation id="6676384891291319759">Aceder à Internet</translation>
-<translation id="6697947395630195233">O Chrome precisa de acesso à sua localização para a partilhar com este site.</translation>
 <translation id="683440813066116847">Regra de importação para o Google Chrome Canary permitir o tráfego mDNS.</translation>
 <translation id="686561893457936865">Leve o Chrome para todo o lado</translation>
 <translation id="6885412569789873916">Aplicações do Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 0645cb3..d616708 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -54,7 +54,6 @@
 
 Dacă totuși vă conectați, informațiile Chrome cum ar fi marcajele, istoricul și alte setări vor fi îmbinate cu <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Afișează meniul Chrome</translation>
-<translation id="2416359993254398973">Chrome are nevoie de permisiune ca să acceseze camera foto pentru acest site.</translation>
 <translation id="2429317896000329049">Google Chrome nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation>
 <translation id="2446511512801740068">Chrome este neactualizat, deoarece în ultimul timp nu a fost repornit. Este disponibilă o actualizare, iar aceasta va fi aplicată după repornire.</translation>
 <translation id="2485422356828889247">Dezinstalează</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Contribuie la îmbunătățirea browserului Google Chrome trimițând rapoarte de blocare și <ph name="UMA_LINK" /> la Google</translation>
 <translation id="2689103672227170538">Această extensie a modificat ce pagină se afișează când pornești Chrome.</translation>
 <translation id="2705403826523567092">Conectează-te pentru o experiență de navigare personalizată, sincronizată pe toate dispozitivele</translation>
-<translation id="2769762047821873045">Google Chrome nu este browserul dvs. prestabilit.</translation>
 <translation id="2770231113462710648">Schimbă browserul prestabilit la:</translation>
 <translation id="2799223571221894425">Repornește</translation>
 <translation id="2847461019998147611">Afișează Google Chrome în această limbă</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Module încărcate în Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome încearcă să afișeze parolele.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome are nevoie de permisiune ca să acceseze microfonul pentru acest site.</translation>
 <translation id="565744775970812598">Este posibil ca <ph name="FILE_NAME" /> să fie periculos, așadar Chrome l-a blocat.</translation>
 <translation id="573759479754913123">Despre sistemul de operare Chrome</translation>
-<translation id="5749068826913805084">Pentru a descărca fișiere, Chrome necesită acces la stocare.</translation>
 <translation id="5774845247549698882">Sistemul de operare Chrome este afișat în această limbă</translation>
 <translation id="5855036575689098185">Software-ul care rulează pe computer este incompatibil cu Google Chrome.</translation>
 <translation id="5877064549588274448">Canalul a fost schimbat. Reporniți dispozitivul pentru a aplica modificările.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome este instalat deja pentru toți utilizatorii de pe computerul tău.</translation>
 <translation id="6338556085225130112">Google Chrome se actualizează</translation>
 <translation id="6368958679917195344">Sistemul de operare Chrome este posibil datorită unui <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> suplimentar.</translation>
-<translation id="6393863479814692971">Chrome are nevoie de permisiune ca să acceseze camera foto și microfonul pentru acest site.</translation>
 <translation id="6410540444482791104">Ne poți ajuta să facem Chrome mai sigur și mai ușor de folosit trimițând automat anumite informații despre sistem și conținutul paginii la Google pentru a detecta aplicațiile și site-urile periculoase.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{O descărcare este în desfășurare. Dorești să anulezi descărcarea și să ieși din Google Chrome?}few{# descărcări sunt în desfășurare. Dorești să anulezi descărcările și să ieși din Google Chrome?}other{# de descărcări sunt în desfășurare. Dorești să anulezi descărcările și să ieși din Google Chrome?}}</translation>
 <translation id="6566149418543181476">Google Chrome se actualizează (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Copiat în Chrome</translation>
 <translation id="6634887557811630702">Google Chrome este actualizat.</translation>
 <translation id="6676384891291319759">Accesează internetul</translation>
-<translation id="6697947395630195233">Chrome are nevoie de acces la locația ta ca să permită accesul la locație pentru acest site.</translation>
 <translation id="683440813066116847">Regula de intrare pentru Google Chrome Canary pentru a permite traficul mDNS.</translation>
 <translation id="686561893457936865">Ia Chrome pretutindeni</translation>
 <translation id="6885412569789873916">Aplicații Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index 80661b1..fd95f04 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -54,7 +54,6 @@
 
 Если войти в систему сейчас, закладки, история и прочие данные Chrome будут синхронизированы с аккаунтом <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Отображение меню Chrome</translation>
-<translation id="2416359993254398973">Для этого сайта Chrome запрашивает разрешение на доступ к камере.</translation>
 <translation id="2429317896000329049">Google Chrome не удалось синхронизировать данные, поскольку служба Sync недоступна для вашего домена.</translation>
 <translation id="2446511512801740068">Для текущей версии Chrome доступно обновление. Оно будет установлено при перезапуске приложения.</translation>
 <translation id="2485422356828889247">Удалить</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Отправлять в Google такие данные, как отчеты о сбоях и <ph name="UMA_LINK" />, чтобы помочь улучшить Google Chrome</translation>
 <translation id="2689103672227170538">Расширение изменило стартовую страницу Chrome.</translation>
 <translation id="2705403826523567092">Войдите в Chrome, чтобы вам было удобнее пользоваться этим браузером на всех устройствах.</translation>
-<translation id="2769762047821873045">Google Chrome не является браузером по умолчанию.</translation>
 <translation id="2770231113462710648">Назначить браузером по умолчанию:</translation>
 <translation id="2799223571221894425">Перезапустить</translation>
 <translation id="2847461019998147611">Отображать Google Chrome на этом языке</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Модули, загруженные в Google Chrome</translation>
 <translation id="556024056938947818">Вводимые пароли будут отображаться в Google Chrome.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Для этого сайта Chrome запрашивает разрешение на доступ к микрофону.</translation>
 <translation id="565744775970812598">Chrome заблокировал файл <ph name="FILE_NAME" /> как потенциально опасный.</translation>
 <translation id="573759479754913123">О Chrome OS</translation>
-<translation id="5749068826913805084">Для скачивания файлов браузеру Chrome требуется доступ к хранилищу.</translation>
 <translation id="5774845247549698882">Этот язык сейчас используется в Chrome OS</translation>
 <translation id="5855036575689098185">Используемое программное обеспечение несовместимо с Google Chrome.</translation>
 <translation id="5877064549588274448">Канал изменен. Чтобы изменения вступили в силу, перезапустите устройство.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome уже установлен для всех пользователей вашего компьютера</translation>
 <translation id="6338556085225130112">Обновление Google Chrome…</translation>
 <translation id="6368958679917195344">Своим появлением Chrome OS обязана дополнительному <ph name="BEGIN_LINK_CROS_OSS" />программному обеспечению с открытым исходным кодом<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Для этого сайта Chrome запрашивает разрешение на доступ к камере и микрофону.</translation>
 <translation id="6410540444482791104">Вы можете автоматически отправлять системную информацию и контент страниц в Google, чтобы помочь улучшить распознавание опасных приложений и сайтов. Давайте вместе сделаем Chrome ещё удобнее и безопаснее!</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Идет скачивание. Отменить и выйти из Google Chrome?}one{Идет скачивание (#). Отменить и выйти из Google Chrome?}few{Идет скачивание (#). Отменить и выйти из Google Chrome?}many{Идет скачивание (#). Отменить и выйти из Google Chrome?}other{Идет скачивание (#). Отменить и выйти из Google Chrome?}}</translation>
 <translation id="6566149418543181476">Обновление Google Chrome (<ph name="PROGRESS_PERCENT" />)…</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Скопировано в Chrome</translation>
 <translation id="6634887557811630702">Вы используете самую новую версию Chrome.</translation>
 <translation id="6676384891291319759">Доступ в Интернет</translation>
-<translation id="6697947395630195233">Для этого сайта Chrome запрашивает доступ к данным о вашем местоположении.</translation>
 <translation id="683440813066116847">Разрешить в Google Chrome Canary передачу входящего трафика по протоколу mDNS</translation>
 <translation id="686561893457936865">Chrome всегда под рукой</translation>
 <translation id="6885412569789873916">Приложения Chrome (бета)</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb
index 9c34c08..19b4b1e3 100644
--- a/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -56,7 +56,6 @@
 
 Ak sa chcete aj napriek tomu prihlásiť, informácie prehliadača Chrome, ako sú záložky, história a iné nastavenia, sa priradia k účtu <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Zobraziť Ponuku Chrome</translation>
-<translation id="2416359993254398973">Chrome potrebuje povolenie pre tento web na prístup k vášmu fotoaparátu.</translation>
 <translation id="2429317896000329049">Prehliadaču Google Chrome sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation>
 <translation id="2446511512801740068">Chrome je zastaraný, pretože nebol dlhší čas reštartovaný. K dispozícii je aktualizácia, ktorá bude uplatnená po najbližšom opätovnom spustení.</translation>
 <translation id="2485422356828889247">Odinštalovať</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Pomôcť zlepšiť prehliadač Google Chrome odosielaním správ o zlyhaní a <ph name="UMA_LINK" /> spoločnosti Google</translation>
 <translation id="2689103672227170538">Toto rozšírenie zmenilo stránku, ktorá sa zobrazí pri spustení prehliadača Chrome.</translation>
 <translation id="2705403826523567092">Ak chcete prehliadať v prispôsobenom prostredí synchronizovanom medzi zariadeniami, prihláste sa</translation>
-<translation id="2769762047821873045">Google Chrome nie je váš predvolený prehliadač.</translation>
 <translation id="2770231113462710648">Zmeniť predvolený prehliadač na:</translation>
 <translation id="2799223571221894425">Znova spustiť</translation>
 <translation id="2847461019998147611">Zobrazovať Google Chrome v tomto jazyku</translation>
@@ -163,10 +161,8 @@
 <translation id="5495581687705680288">Moduly načítané do prehliadača Google Chrome</translation>
 <translation id="556024056938947818">Prehliadač Google Chrome sa snaží zobraziť heslá.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome potrebuje povolenie pre tento web na prístup k vášmu mikrofónu.</translation>
 <translation id="565744775970812598">Súbor <ph name="FILE_NAME" /> môže byť nebezpečný, a preto ho Chrome zablokoval.</translation>
 <translation id="573759479754913123">Informácie o systéme Chrome OS</translation>
-<translation id="5749068826913805084">Chrome potrebuje na sťahovanie súborov prístup k úložisku.</translation>
 <translation id="5774845247549698882">Chrome OS sa zobrazuje v tomto jazyku</translation>
 <translation id="5855036575689098185">Softvér spustený vo vašom počítači nie je kompatibilný s prehliadačom Google Chrome.</translation>
 <translation id="5877064549588274448">Kanál sa zmenil. Ak chcete zmeny použiť, reštartujte zariadenie.</translation>
@@ -185,7 +181,6 @@
 <translation id="6291549208091401781">Google Chrome už majú nainštalovaný všetci používatelia na vašom počítači.</translation>
 <translation id="6338556085225130112">Chrome sa aktualizuje</translation>
 <translation id="6368958679917195344">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru s otvoreným zdrojom<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome potrebuje povolenie pre tento web na prístup k vášmu fotoaparátu a mikrofónu.</translation>
 <translation id="6410540444482791104">Automatickým odosielaním niektorých informácií o systéme a obsahu stránok môžete prispieť k lepšiemu rozpoznávaniu nebezpečných aplikácií a webov a zvýšiť tak zabezpečenie Chromu a zjednodušiť jeho používanie.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Momentálne prebieha sťahovanie. Chcete ho zrušiť a ukončiť prehliadač Google Chrome?}few{Momentálne prebieha sťahovanie # položiek. Chcete ho zrušiť a ukončiť prehliadač Google Chrome?}many{Momentálne prebieha sťahovanie # položky. Chcete ho zrušiť a ukončiť prehliadač Google Chrome?}other{Momentálne prebieha sťahovanie # položiek. Chcete ho zrušiť a ukončiť prehliadač Google Chrome?}}</translation>
 <translation id="6566149418543181476">Aktualizuje sa Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -193,7 +188,6 @@
 <translation id="6600954340915313787">Skopírovaná do prehliadača Chrome</translation>
 <translation id="6634887557811630702">Prehliadač Google Chrome bol aktualizovaný.</translation>
 <translation id="6676384891291319759">Prístup do siete Internet</translation>
-<translation id="6697947395630195233">Chrome potrebuje prístup k vašej polohe, aby ju mohol zdieľať s týmto webom.</translation>
 <translation id="683440813066116847">Pravidlo pre prichádzajúce prenosy pre prehliadač Google Chrome verzie Canary, ktoré povoľuje prenos dát mDNS.</translation>
 <translation id="686561893457936865">Vezmite si Chrome všade</translation>
 <translation id="6885412569789873916">Aplikácie pre Chrome beta verzie</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index 35f51de5..12ea2089 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -58,7 +58,6 @@
 
 Če se boste kljub temu prijavili, bodo podatki v Chromu, na primer zaznamki, zgodovina in druge nastavitve, združeni v računu <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Prikaz Chromovega menija</translation>
-<translation id="2416359993254398973">Chrome potrebuje dovoljenje za dostop do fotoaparata za to spletno mesto.</translation>
 <translation id="2429317896000329049">Google Chrome ni mogel sinhronizirati podatkov, ker sinhronizacija ni na voljo za vašo domeno.</translation>
 <translation id="2446511512801740068">Chrome je zastarel, ker ga že nekaj časa niste znova zagnali. Na voljo je posodobitev, ki bo nameščena, takoj ko ga znova zaženete.</translation>
 <translation id="2485422356828889247">Odstranjevanje</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Pomagajte izboljšati Chrome – Googlu pošiljajte poročila o zrušitvah in ta dokument: <ph name="UMA_LINK" />.</translation>
 <translation id="2689103672227170538">Zaradi te razširitve se je spremenila stran, ki je prikazana, ko zaženete Chrome.</translation>
 <translation id="2705403826523567092">Prijavite se za prilagojeno izkušnjo brskanja, sinhronizirano v več napravah</translation>
-<translation id="2769762047821873045">Google Chrome ni privzeti brskalnik.</translation>
 <translation id="2770231113462710648">Spremeni privzeti brskalnik na:</translation>
 <translation id="2799223571221894425">Vnovičen zagon</translation>
 <translation id="2847461019998147611">Prikaži Google Chrome v tem jeziku</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Moduli, naloženi v Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome poskuša prikazati gesla.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome potrebuje dovoljenje za dostop do mikrofona za to spletno mesto.</translation>
 <translation id="565744775970812598">Datoteka <ph name="FILE_NAME" /> je morda nevarna, zato jo je Chrome blokiral.</translation>
 <translation id="573759479754913123">O sistemu Chrome OS</translation>
-<translation id="5749068826913805084">Chrome potrebuje za prenos datotek dostop do shrambe.</translation>
 <translation id="5774845247549698882">OS Chrome je v tem jeziku</translation>
 <translation id="5855036575689098185">Programska oprema, ki se izvaja v računalniku, ni združljiva z Google Chromom.</translation>
 <translation id="5877064549588274448">Kanal spremenjen. Znova zaženite napravo, da uveljavite spremembe.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome je že nameščen za vse uporabnike v računalniku.</translation>
 <translation id="6338556085225130112">Posodabljanje Google Chroma</translation>
 <translation id="6368958679917195344">Sistem Chrome OS uporablja dodatno <ph name="BEGIN_LINK_CROS_OSS" />odprtokodno programsko opremo<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome potrebuje dovoljenje za dostop do fotoaparata in mikrofona za to spletno mesto.</translation>
 <translation id="6410540444482791104">S samodejnim pošiljanjem nekaterih informacij o sistemu in vsebine strani Googlu, s čimer pomagate pri hitrejšem zaznavanju nevarnih aplikacij in spletnih mest, lahko pomagate narediti Chrome varnejši in preprostejši za uporabo.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Trenutno poteka prenos. Ali ga želite preklicati in zapreti Google Chrome?}one{Trenutno poteka # prenos. Ali ga želite preklicati in zapreti Google Chrome?}two{Trenutno potekata # prenosa. Ali ju želite preklicati in zapreti Google Chrome?}few{Trenutno potekajo # prenosi. Ali jih želite preklicati in zapreti Google Chrome?}other{Trenutno poteka # prenosov. Ali jih želite preklicati in zapreti Google Chrome?}}</translation>
 <translation id="6566149418543181476">Posodabljanje Google Chroma (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Kopirano v Chrome</translation>
 <translation id="6634887557811630702">Google Chrome je posodobljen.</translation>
 <translation id="6676384891291319759">Dostop do interneta</translation>
-<translation id="6697947395630195233">Chrome potrebuje dostop do vaše lokacije, da jo bo lahko delil s tem spletnim mestom.</translation>
 <translation id="683440813066116847">Pravilo za dohodni promet za Google Chrome Canary, ki dovoli promet mDNS.</translation>
 <translation id="686561893457936865">Naj vas Chrome spremlja povsod</translation>
 <translation id="6885412569789873916">Aplikacije za Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index 41113d6e..0f1ddda5 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -58,7 +58,6 @@
 
 Ако се ипак пријавите, Chrome информације као што су обележивачи, историја и друга подешавања ће бити обједињене на <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Приказ Chrome менија</translation>
-<translation id="2416359993254398973">Chrome тражи дозволу да приступи камери за овај сајт.</translation>
 <translation id="2429317896000329049">Google Chrome не може да синхронизује податке јер Синхронизација није доступна за домен.</translation>
 <translation id="2446511512801740068">Chrome је застарео јер дуго није поново покренут. Ажурирање је доступно и биће примењено чим га поново покренете.</translation>
 <translation id="2485422356828889247">Деинсталирај</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Помозите нам да побољшамо Google Chrome тако што ћете Google-у слати извештаје о отказивању и <ph name="UMA_LINK" /></translation>
 <translation id="2689103672227170538">Овај додатак је променио страницу која се приказује када покренете Chrome.</translation>
 <translation id="2705403826523567092">Пријавите се за персонализовани доживљај прегледања који је синхронизован на свим уређајима</translation>
-<translation id="2769762047821873045">Google Chrome није ваш подразумевани прегледач.</translation>
 <translation id="2770231113462710648">Промени подразумевани прегледач у:</translation>
 <translation id="2799223571221894425">Поново покрени</translation>
 <translation id="2847461019998147611">Приказуј Google Chrome на овом језику</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Модули учитани у Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome покушава да прикаже лозинке.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome тражи дозволу да приступи микрофону за овај сајт.</translation>
 <translation id="565744775970812598">Датотека <ph name="FILE_NAME" /> је можда опасна, па ју је Chrome блокирао.</translation>
 <translation id="573759479754913123">О Chrome ОС-у</translation>
-<translation id="5749068826913805084">Chrome-у је потребан приступ меморијском простору да би преузимао датотеке.</translation>
 <translation id="5774845247549698882">Chrome ОС се приказује на овом језику</translation>
 <translation id="5855036575689098185">Софтвер покренут на рачунару није компатибилан са Google Chrome-ом.</translation>
 <translation id="5877064549588274448">Канал је промењен. Покрените поново уређај да бисте применили промене.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome је већ инсталиран за све кориснике на рачунару.</translation>
 <translation id="6338556085225130112">Ажурирање Google Chrome-а</translation>
 <translation id="6368958679917195344">Chrome OС je могућ захваљујући додатном <ph name="BEGIN_LINK_CROS_OSS" />софтвер отвореног кода<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome тражи дозволу да приступи камери и микрофону за овај сајт.</translation>
 <translation id="6410540444482791104">Можете да помогнете да Chrome буде безбеднији и лакши за коришћење тако што ћете аутоматски слати Google-у неке системске информације и садржај страница да бисмо открили опасне апликације и сајтове.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Преузимање је у току. Желите ли да откажете преузимање и да изађете из Google Chrome-а?}one{# преузимање је у току. Желите ли да откажете преузимања и да изађете из Google Chrome-а?}few{# преузимања су у току. Желите ли да откажете преузимања и да изађете из Google Chrome-а?}other{# преузимања је у току. Желите ли да откажете преузимања и да изађете из Google Chrome-а?}}</translation>
 <translation id="6566149418543181476">Ажурирање Google Chrome-а (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Копирана у Chrome</translation>
 <translation id="6634887557811630702">Google Chrome је ажуриран.</translation>
 <translation id="6676384891291319759">Приступите Интернету</translation>
-<translation id="6697947395630195233">Chrome тражи приступ вашој локацији да бисте је делили са овим сајтом.</translation>
 <translation id="683440813066116847">Правило за долазни саобраћај за Google Chrome Canary да бисте омогућили mDNS саобраћај.</translation>
 <translation id="686561893457936865">Нека Chrome буде увек са вама</translation>
 <translation id="6885412569789873916">Chrome апликације за бета канал</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index adb55f2..53f273b 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -58,7 +58,6 @@
 
 Om du loggar in ändå synkroniseras din information i Chrome, till exempel bokmärken, historik och andra inställningar, med <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Visa Chrome-menyn</translation>
-<translation id="2416359993254398973">Du behöver ge Chrome behörighet att använda kameran på den här webbplatsen.</translation>
 <translation id="2429317896000329049">Google Chrome kunde inte synkronisera data eftersom synkronisering inte är tillgängligt för din domän.</translation>
 <translation id="2446511512801740068">Chrome är inaktuellt eftersom det inte har startats om på ett tag. Det finns en uppdatering tillgänglig som tillämpas så snart du startar om.</translation>
 <translation id="2485422356828889247">Avinstallera</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Hjälp oss att göra Google Chrome bättre genom att skicka felrapporter och <ph name="UMA_LINK" /> till Google.</translation>
 <translation id="2689103672227170538">Det här tillägget har ändrat vilken sida som visas när du startar Chrome.</translation>
 <translation id="2705403826523567092">Logga in för en anpassad surfupplevelse som synkroniseras på alla enheter</translation>
-<translation id="2769762047821873045">Google Chrome är inte din standardwebbläsare.</translation>
 <translation id="2770231113462710648">Ändra standardwebbläsare till:</translation>
 <translation id="2799223571221894425">Starta om</translation>
 <translation id="2847461019998147611">Visa Google Chrome på det här språket</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Moduler som är inlästa i Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome försöker visa lösenord.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Du behöver ge Chrome behörighet att använda mikrofonen på den här webbplatsen.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> kan vara skadlig och har blockerats av Chrome.</translation>
 <translation id="573759479754913123">Om Chrome OS</translation>
-<translation id="5749068826913805084">Chrome måste ha åtkomst till lagringsutrymmet om det ska gå att ladda ned filer.</translation>
 <translation id="5774845247549698882">Chrome OS visas på det här språket</translation>
 <translation id="5855036575689098185">Programmet som körs på datorn är inte kompatibelt med Google Chrome.</translation>
 <translation id="5877064549588274448">Kanalen har ändrats. Starta om enheten om du vill tillämpa ändringarna.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Google Chrome har redan installerats för alla användare på datorn.</translation>
 <translation id="6338556085225130112">Uppdatera Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS fungerar tack vare <ph name="BEGIN_LINK_CROS_OSS" />öppen källkod<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Du behöver ge Chrome behörighet att använda kameran och mikrofonen på den här webbplatsen.</translation>
 <translation id="6410540444482791104">Du kan bidra till att göra Chrome säkrare och enklare att använda genom att låta viss systeminformation och visst sidinnehåll skickas automatiskt till Google i syfte att identifiera skadliga appar och webbplatser.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{En nedladdning pågår för närvarande. Vill du avbryta nedladdningen och avsluta Google Chrome?}other{# nedladdningar pågår för närvarande. Vill du avbryta nedladdningarna och avsluta Google Chrome?}}</translation>
 <translation id="6566149418543181476">Google Chrome uppdateras (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Kopierat till Chrome</translation>
 <translation id="6634887557811630702">Google Chrome behöver inte uppdateras.</translation>
 <translation id="6676384891291319759">Gå ut på Internet</translation>
-<translation id="6697947395630195233">Du behöver ge Chrome åtkomstbehörighet till din plats om den ska kunna delas med webbplatsen.</translation>
 <translation id="683440813066116847">Regel som tillåter inkommande mDNS-trafik för Google Chrome Canary.</translation>
 <translation id="686561893457936865">Ta med dig Chrome överallt</translation>
 <translation id="6885412569789873916">Appar i Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index 7f8d772..c346ccdc 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -58,7 +58,6 @@
 
 Kuingia bila kujali kutaunganisha maelezo ya Chrome kama vile alamisho, historia, na mipangilio mingine kwenye <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Onyesha Menyu ya Chrome</translation>
-<translation id="2416359993254398973">Ruhusu Chrome ifikie kamera yako ya tovuti hii.</translation>
 <translation id="2429317896000329049">Google Chrome haikuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation>
 <translation id="2446511512801740068">Muda wa matumizi wa Chrome umeisha kwa sababu haijafunguliwa upya kwa muda mrefu. Sasisho linapatikana na litaanza kutumika pindi tu utakapofungua upya.</translation>
 <translation id="2485422356828889247">Ondoa</translation>
@@ -70,7 +69,6 @@
 <translation id="2665296953892887393">Saidia kuboresha Google Chrome kwa kutuma ripoti za kuacha kufanya kazi na <ph name="UMA_LINK" /> kwenda Google</translation>
 <translation id="2689103672227170538">Kiendelezi hiki kimebadilisha ukurasa unaoonyeshwa unapoanzisha Chrome.</translation>
 <translation id="2705403826523567092">Ingia katika akaunti ili upate hali maalum ya kuvinjari, iliyosawazishwa kwenye vifaa vyote</translation>
-<translation id="2769762047821873045">Google Chrome si kivinjari chako chaguo-msingi</translation>
 <translation id="2770231113462710648">Badilisha kivinjari chaguo msingi kiwe:</translation>
 <translation id="2799223571221894425">Funga na ufungue</translation>
 <translation id="2847461019998147611">Onyesha Google Chrome katika lugha hii</translation>
@@ -165,10 +163,8 @@
 <translation id="5495581687705680288">Vijenzi vilipakia katika Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome inajaribu kuonyesha manenosiri.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome inahitaji ruhusa ya kufikia maikrofoni yako kwa ajili ya tovuti hii.</translation>
 <translation id="565744775970812598">Huenda <ph name="FILE_NAME" /> ni hatari, kwa hivyo Chromium imeizuia.</translation>
 <translation id="573759479754913123">Kuhusu Chrome OS</translation>
-<translation id="5749068826913805084">Chrome inahitaji idhini ya kufikia hifadhi ili ipakue faili.</translation>
 <translation id="5774845247549698882">Mfumo wa Uendeshaji wa Chrome unaonyeshwa katika lugha hii</translation>
 <translation id="5855036575689098185">Programu unayotumia kwenye kompyuta yako haioani na Google Chrome.</translation>
 <translation id="5877064549588274448">Kituo kimebadilishwa. Zima na uwashe kifaa chako ili mabadiliko yaanze kutumika.</translation>
@@ -187,7 +183,6 @@
 <translation id="6291549208091401781">Tayari Google Chrome imesakinishwa kwa watumiaji wote kwenye kompyuta yako.</translation>
 <translation id="6338556085225130112">Inasasisha Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS imewezeshwa na programu ya ziada ya <ph name="BEGIN_LINK_CROS_OSS" />programu huria<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome inahitaji ruhusa ya kufikia kamera yako kwa ajili ya tovuti hii.</translation>
 <translation id="6410540444482791104">Unaweza kusaidia kuifanya Chrome kuwa salama na rahisi zaidi kutumia kwa kutuma kiotomatiki maelezo fulani ya mfumo na maudhui ya ukurasa kwa Google ili kusaidia kugundua programu na tovuti hatari.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Kipakuliwa kinaendelea kwa sasa. Unataka kughairi kipakuliwa na kuondoka Google Chrome?}other{Vipakuliwa # vinaendelea kwa sasa. Unataka kughairi vipakuliwa na kuondoka Google Chrome?}}</translation>
 <translation id="6566149418543181476">Inasasisha Google Chrome <ph name="PROGRESS_PERCENT" /></translation>
@@ -195,7 +190,6 @@
 <translation id="6600954340915313787">Imenakiliwa kwenye Chrome</translation>
 <translation id="6634887557811630702">Google Chrome imesasishwa.</translation>
 <translation id="6676384891291319759">Fika kwenye wavuti</translation>
-<translation id="6697947395630195233">Chrome inahitaji kufikia maelezo ya mahali ulipo ili kuyashiriki na tovuti hii.</translation>
 <translation id="683440813066116847">Sheria ya ndani ya Google Chrome Canary ili kuruhusu trafiki ya mDNS.</translation>
 <translation id="686561893457936865">Nenda na Chrome kila mahali</translation>
 <translation id="6885412569789873916">Programu za Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index 251a334..c6d7cf8 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -54,7 +54,6 @@
 
 எப்படியிருந்தாலும் உள்நுழைதல் <ph name="ACCOUNT_EMAIL_NEW" /> க்கான புக்மார்க்குகள், வரலாறு, மற்றும் பிற அமைப்புகள் போன்ற Chrome தகவலைப் பிணைக்கும்.</translation>
 <translation id="2397416548179033562">Chrome மெனுவைக் காட்டு</translation>
-<translation id="2416359993254398973">இந்தத் தளத்திற்காகக் கேமராவை அணுக, Chromeக்கு அனுமதி தேவை.</translation>
 <translation id="2429317896000329049">உங்கள் களத்திற்கு ஒத்திசைவு இல்லாததால், Google Chrome ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="2446511512801740068">சிறிது காலமாக மறுதொடக்கம் செய்யப்படாததால், Chrome காலாவதியாகிவிட்டது. புதுப்பிப்பு உள்ளது. நீங்கள் மறுதொடக்கம் செய்தவுடன் பயன்படுத்தப்படும்.</translation>
 <translation id="2485422356828889247">நிறுவல் நீக்கு</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">சிதைவு அறிக்கைகளையும் <ph name="UMA_LINK" /> உம் Google க்கு அனுப்புவதன் மூலம் Google Chrome ஐ மேலும் சிறப்பானதாக்க உதவவும்</translation>
 <translation id="2689103672227170538">Chromeஐத் தொடங்கும் போது காண்பிக்கப்படும் பக்கத்தை இந்த நீட்டிப்பு மாற்றியுள்ளது.</translation>
 <translation id="2705403826523567092">எல்லாச் சாதனங்களிலும் ஒத்திசைந்த, தனிப்பயனாக்கிய அனுபவத்திற்கு, உள்நுழையவும்</translation>
-<translation id="2769762047821873045">Google Chrome உங்கள் இயல்பு உலாவி அல்ல.</translation>
 <translation id="2770231113462710648">இயல்புநிலை உலாவியாக இதை அமை:</translation>
 <translation id="2799223571221894425">மீண்டும் தொடங்கு</translation>
 <translation id="2847461019998147611">Google Chromeஐ இந்த மொழியில் காட்டு</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Google Chrome இல் தொகுதிக்கூறுகள் ஏற்றப்பட்டன</translation>
 <translation id="556024056938947818">Google Chrome ஆனது கடவுச்சொற்களைக் காட்ட முயற்சிக்கிறது.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">இந்தத் தளத்திற்காக மைக்ரோஃபோனை அணுக, Chromeக்கு அனுமதி தேவை.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> ஆபத்தானதாக இருக்கலாம் என்பதால் Chrome அதைத் தடுத்துள்ளது.</translation>
 <translation id="573759479754913123">Chrome OS அறிமுகம்</translation>
-<translation id="5749068826913805084">கோப்புகளைப் பதிவிறக்க Chromeக்கு சேமிப்பிட அணுகல் தேவை.</translation>
 <translation id="5774845247549698882">Chrome OS இந்த மொழியில் காட்டப்படுகிறது</translation>
 <translation id="5855036575689098185">உங்கள் கணினியில் இயங்கும் மென்பொருள் Google Chrome உடன் இணங்கவில்லை.</translation>
 <translation id="5877064549588274448">சேனல் மாற்றப்பட்டது. மாற்றங்களைச் செயல்படுத்த உங்கள் சாதனத்தை மீண்டும் தொடங்கவும்.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">உங்கள் கணினியில் ஏற்கனவே எல்லாப் பயனர்களுக்கும் Google Chrome நிறுவப்பட்டுள்ளது.</translation>
 <translation id="6338556085225130112">Google Chromeஐப் புதுப்பிக்கிறது</translation>
 <translation id="6368958679917195344">கூடுதலான <ph name="BEGIN_LINK_CROS_OSS" />ஓப்பன் சோர்ஸ் மென்பொருள்களால்<ph name="END_LINK_CROS_OSS" /> Chrome OS ஐ உருவாக்குவது சாத்தியமானது.</translation>
-<translation id="6393863479814692971">இந்தத் தளத்திற்காகக் கேமராவையும் மைக்ரோஃபோனையும் அணுக, Chromeக்கு அனுமதி தேவை.</translation>
 <translation id="6410540444482791104">ஆபத்தான பயன்பாடுகளையும் தளங்களையும் கண்டறிவதற்கு உதவியாக, சில சாதனத் தகவலையும் பக்க உள்ளடக்கத்தையும் Googleக்குத் தானாக அனுப்புவதன் மூலம், Chromeஐ எளிதாகவும் பாதுகாப்பாகவும் பயன்படுத்தும்படி மேம்படுத்துவதற்கு நீங்கள் உதவலாம்.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{பதிவிறக்கம் தற்போது செயலில் உள்ளது. பதிவிறக்கத்தை ரத்துசெய்து, Google Chrome இலிருந்து வெளியேற விரும்புகிறீர்களா?}other{# பதிவிறக்கங்கள் தற்போது செயலில் உள்ளன. பதிவிறக்கங்களை ரத்துசெய்து, Google Chrome இலிருந்து வெளியேற விரும்புகிறீர்களா?}}</translation>
 <translation id="6566149418543181476">Google Chromeஐப் புதுப்பிக்கிறது (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Chromeக்கு நகலெடுக்கப்பட்டது</translation>
 <translation id="6634887557811630702">Google Chrome புதுப்பித்த நிலையில் உள்ளது.</translation>
 <translation id="6676384891291319759">இணையத்தை அணுகுதல்</translation>
-<translation id="6697947395630195233">இந்தத் தளத்துடன் இருப்பிடத்தைப் பகிர, Chromeக்கு உங்கள் இருப்பிடத்திற்கான அணுகல் தேவை.</translation>
 <translation id="683440813066116847">mDNS ட்ராஃபிக்கை அனுமதிப்பதற்கான, Google Chrome Canary க்கான உள்வரும் விதி.</translation>
 <translation id="686561893457936865">Chromeஐ எல்லா இடங்களுக்கும் எடுத்துச் செல்லலாம்</translation>
 <translation id="6885412569789873916">Chrome பீட்டா பயன்பாடுகள்</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index a8f5224..306c3030 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -54,7 +54,6 @@
 
 ఏదేమైనా సైన్ ఇన్ చేస్తే బుక్‌మార్క్‌లు, చరిత్ర మరియు ఇతర సెట్టింగ్‌ల వంటి Chrome సమాచారం <ph name="ACCOUNT_EMAIL_NEW" />కు విలీనం చేయబడుతుంది.</translation>
 <translation id="2397416548179033562">Chrome మెనును చూపు</translation>
-<translation id="2416359993254398973">ఈ సైట్ కోసం మీ కెమెరాని యాక్సెస్ చేయడానికి Chromeకు అనుమతి అవసరం.</translation>
 <translation id="2429317896000329049">మీ డొమైన్ కోసం సమకాలీకరణ అందుబాటులో లేనందున Google Chrome మీ డేటాను సమకాలీకరించలేకపోయింది.</translation>
 <translation id="2446511512801740068">Chromeని కొంత కాలంగా పునఃప్రారంభించనందున దాని గడువు తేదీ ముగిసింది. నవీకరణ అందుబాటులో ఉంది, మీరు పునఃప్రారంభించిన తక్షణం వర్తింపజేయబడుతుంది.</translation>
 <translation id="2485422356828889247">వ్యవస్థాపనను తీసివెయ్యి</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Googleకు వినియోగ గణాంకాలు మరియు <ph name="UMA_LINK" />ను పంపడం ద్వారా Google Chromeను మెరుగుపరచడంలో సహాయపడండి</translation>
 <translation id="2689103672227170538">ఈ పొడిగింపు మీరు Chromeని ప్రారంభించినప్పుడు చూపబడే పేజీని మార్చింది.</translation>
 <translation id="2705403826523567092">వ్యక్తిగతీకరించిన బ్రౌజింగ్ అనుభవానికి, పరికరాలకు సమకాలీకరించడానికి సైన్ ఇన్ చేయండి</translation>
-<translation id="2769762047821873045">Google Chrome మీ డిఫాల్ట్ బ్రౌజర్ కాదు.</translation>
 <translation id="2770231113462710648">డిఫాల్ట్ బ్రౌజర్‌ను దీనికి మార్చు:</translation>
 <translation id="2799223571221894425">మళ్లీ ప్రారంభించు</translation>
 <translation id="2847461019998147611">Google Chromeను ఈ భాషలో ప్రదర్శించు</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Google Chromeలో మాడ్యూళ్ళు లోడ్ చెయ్యబడ్డాయి</translation>
 <translation id="556024056938947818">Google Chrome పాస్‌వర్డ్‌లను చూపడానికి ప్రయత్నిస్తోంది.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">ఈ సైట్ కోసం మీ మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromeకు అనుమతి అవసరం.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> హానికరం కావచ్చు, కావున Chrome దాన్ని బ్లాక్ చేసింది.</translation>
 <translation id="573759479754913123">Chrome OS గురించి</translation>
-<translation id="5749068826913805084">ఫైల్‌లను డౌన్‌లోడ్ చేయడానికి Chromeకు నిల్వ ప్రాప్యత అవసరం.</translation>
 <translation id="5774845247549698882">Chrome OS ఈ భాషలో ప్రదర్శించబడుతోంది</translation>
 <translation id="5855036575689098185">మీ కంప్యూటర్‌లో అమలవుతున్న సాఫ్ట్‌వేర్ Google Chromeకు అనుకూలంగా లేదు.</translation>
 <translation id="5877064549588274448">ఛానెల్ మార్చబడింది. మార్పులను వర్తింపజేయడానికి మీ పరికరాన్ని పునఃప్రారంభించండి.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">మీ కంప్యూటర్‌లోని వినియోగదారులందరికీ Google Chrome ఇప్పటికే ఇన్‌స్టాల్ చేయబడింది.</translation>
 <translation id="6338556085225130112">Google Chromeని నవీకరిస్తోంది</translation>
 <translation id="6368958679917195344">అదనపు <ph name="BEGIN_LINK_CROS_OSS" />ఓపన్ సోర్స్ సాఫ్ట్‌వేర్‌<ph name="END_LINK_CROS_OSS" /> ద్వారా  Chrome OS సాధ్యం అవుతుంది.</translation>
-<translation id="6393863479814692971">ఈ సైట్ కోసం మీ కెమెరా మరియు మైక్రోఫోన్‌ను యాక్సెస్ చేయడానికి Chromeకు అనుమతి అవసరం.</translation>
 <translation id="6410540444482791104">హానికరమైన అనువర్తనాలు మరియు సైట్‌లను గుర్తించడంలో సహాయపడటానికి కొంత సిస్టమ్ సమాచారాన్ని మరియు పేజీ కంటెంట్‌ను Googleకి స్వయంచాలకంగా పంపడం ద్వారా మీరు Chromeని ఉపయోగించడానికి సురక్షితమైనదిగా మరియు సులభమైనదిగా చేయడంలో సహాయపడవచ్చు.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{డౌన్‌లోడ్ ప్రస్తుతం ప్రోగ్రెస్‌లో ఉంది. మీరు డౌన్‌లోడ్‌ను రద్దు చేసి, Google Chrome నుండి నిష్క్రమించాలనుకుంటున్నారా?}other{# డౌన్‌లోడ్‌లు ప్రస్తుతం ప్రోగ్రెస్‌లో ఉన్నాయి. మీరు డౌన్‌లోడ్‌లను రద్దు చేసి, Google Chrome నుండి నిష్క్రమించాలనుకుంటున్నారా?}}</translation>
 <translation id="6566149418543181476">Google Chrome నవీకరించబడుతోంది (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Chromeకి కాపీ చేయబడింది</translation>
 <translation id="6634887557811630702">Google Chrome తాజాగా ఉంది.</translation>
 <translation id="6676384891291319759">ఇంటర్నెట్‌ను ఆక్సెస్ చెయ్యండి</translation>
-<translation id="6697947395630195233">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromeకు మీ స్థాన యాక్సెస్ అవసరం.</translation>
 <translation id="683440813066116847">mDNS ట్రాఫిక్‌ను అనుమతించడానికి Google Chrome కెనరీ కోసం ఇన్‌బౌండ్ నియమం.</translation>
 <translation id="686561893457936865">Chromeని ప్రతిచోటుకు తీసుకెళ్లండి</translation>
 <translation id="6885412569789873916">Chrome బీటా అనువర్తనాలు</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 8712332..8ba35a1 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -54,7 +54,6 @@
 
 การลงชื่อเข้าใช้ต่อไปจะรวมข้อมูล Chrome เช่น บุ๊กมาร์ก ประวัติการเข้าชม และการตั้งค่าอื่นๆ เข้ากับ <ph name="ACCOUNT_EMAIL_NEW" /></translation>
 <translation id="2397416548179033562">แสดงเมนู Chrome</translation>
-<translation id="2416359993254398973">Chrome ต้องการสิทธิ์เข้าถึงกล้องถ่ายรูปของคุณสำหรับไซต์นี้</translation>
 <translation id="2429317896000329049">Google Chrome ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากไม่สามารถใช้การซิงค์กับโดเมนของคุณ</translation>
 <translation id="2446511512801740068">Chrome ล้าสมัยเพราะไม่ได้เปิดใช้งานใหม่มาระยะหนึ่งแล้ว มีเวอร์ชันอัปเดตพร้อมใช้งานและระบบจะนำเวอร์ชันอัปเดตดังกล่าวไปใช้เมื่อคุณเปิดแอปใหม่</translation>
 <translation id="2485422356828889247">ถอนการติดตั้ง</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">ช่วยทำให้ Google Chrome ดียิ่งขึ้นโดยการส่งรายงานข้อขัดข้องและ <ph name="UMA_LINK" /> ไปยัง Google</translation>
 <translation id="2689103672227170538">ส่วนขยายนี้ได้เปลี่ยนหน้าที่จะแสดงเมื่อคุณเริ่มต้น Chrome</translation>
 <translation id="2705403826523567092">ลงชื่อเข้าใช้เพื่อรับประสบการณ์การท่องเว็บที่ปรับให้เข้ากับคุณและซิงค์กันในอุปกรณ์ทุกเครื่อง</translation>
-<translation id="2769762047821873045">Google Chrome ไม่ใช่เบราว์เซอร์เริ่มต้นโดยอัตโนมัติของคุณ</translation>
 <translation id="2770231113462710648">เปลี่ยนเบราว์เซอร์ที่เป็นค่าเริ่มต้นเป็น:</translation>
 <translation id="2799223571221894425">เปิดใหม่</translation>
 <translation id="2847461019998147611">แสดง Google Chrome ในภาษานี้</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">โมดูลที่โหลดใน Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome กำลังพยายามแสดงรหัสผ่าน</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome ต้องการสิทธิ์เข้าถึงไมโครโฟนของคุณสำหรับไซต์นี้</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> อาจเป็นอันตราย Chrome จึงบล็อกไว้</translation>
 <translation id="573759479754913123">เกี่ยวกับ Chrome OS</translation>
-<translation id="5749068826913805084">Chrome ต้องสามารถเข้าถึงพื้นที่เก็บข้อมูลเพื่อดาวน์โหลดไฟล์</translation>
 <translation id="5774845247549698882">Chrome OS แสดงในภาษานี้</translation>
 <translation id="5855036575689098185">ซอฟต์แวร์ที่ทำงานบนคอมพิวเตอร์ของคุณไม่สามารถใช้ได้กับ Google Chrome</translation>
 <translation id="5877064549588274448">เปลี่ยนช่องแล้ว รีสตาร์ทอุปกรณ์เพื่อใช้การเปลี่ยนแปลง</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">มีการติดตั้ง Google Chrome สำหรับผู้ใช้ทุกคนบนคอมพิวเตอร์ของคุณแล้ว</translation>
 <translation id="6338556085225130112">กำลังอัปเดต Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS เกิดขึ้นได้ด้วยการสนับสนุนจาก<ph name="BEGIN_LINK_CROS_OSS" />ซอฟต์แวร์โอเพนซอร์ส<ph name="END_LINK_CROS_OSS" />เพิ่มเติม</translation>
-<translation id="6393863479814692971">Chrome ต้องการสิทธิ์เข้าถึงไมโครโฟนและกล้องถ่ายรูปของคุณสำหรับไซต์นี้</translation>
 <translation id="6410540444482791104">คุณสามารถช่วยปรับปรุงให้ Chrome ปลอดภัยและใช้งานง่ายขึ้นด้วยการส่งข้อมูลบางอย่างของระบบและเนื้อหาของหน้าเว็บไปยัง Google เพื่อช่วยตรวจหาแอปและเว็บไซต์ที่เป็นอันตราย</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{ขณะนี้อยู่ระหว่างการดาวน์โหลด 1 รายการ คุณต้องการยกเลิกการดาวน์โหลดและออกจาก Google Chrome ไหม}other{ขณะนี้อยู่ระหว่างการดาวน์โหลด # รายการ คุณต้องการยกเลิกการดาวน์โหลดและออกจาก Google Chrome ไหม}}</translation>
 <translation id="6566149418543181476">กำลังอัปเดต Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">คัดลอกไปยัง Chrome แล้ว</translation>
 <translation id="6634887557811630702">Google Chrome อัปเดตแล้ว</translation>
 <translation id="6676384891291319759">เข้าถึงอินเทอร์เน็ต</translation>
-<translation id="6697947395630195233">Chrome ต้องการสิทธิ์เข้าถึงตำแหน่งของคุณเพื่อแชร์ตำแหน่งกับไซต์นี้</translation>
 <translation id="683440813066116847">กฎขาเข้าสำหรับ Google Chrome Canary เพื่ออนุญาตการเข้าชมแบบ mDNS</translation>
 <translation id="686561893457936865">ใช้ Chrome ได้ทุกที่</translation>
 <translation id="6885412569789873916">แอป Chrome เบต้า</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 2bac0bb..628baf6b 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -54,7 +54,6 @@
 
 Yine de oturum açarsanız, yer işaretleriniz, geçmişiniz ve diğer ayarlarınız gibi Chrome bilgileriniz <ph name="ACCOUNT_EMAIL_NEW" /> ile birleştirilecektir.</translation>
 <translation id="2397416548179033562">Chrome menüsünü göster</translation>
-<translation id="2416359993254398973">Chrome'un bu sitede kameranıza erişmesi için izin gerekiyor.</translation>
 <translation id="2429317896000329049">Senkronizasyon, alan adınızda kullanılamadığından Google Chrome, verilerinizi senkronize edemedi.</translation>
 <translation id="2446511512801740068">Bir süredir çalıştırılmadığından Chrome güncel değil. Kullanılabilir bir güncelleme var ve yeniden başlattığınızda hemen uygulanacak.</translation>
 <translation id="2485422356828889247">Yüklemeyi Kaldır</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Kilitlenme raporlarını ve <ph name="UMA_LINK" /> bilgilerini Google'a göndererek Google Chrome'u daha iyi hale getirmeye yardımcı olun</translation>
 <translation id="2689103672227170538">Bu uzantı, Chrome'u başlattığınızda gösterilen sayfayı değiştirdi.</translation>
 <translation id="2705403826523567092">Cihazlar arasında senkronize edilen kişiselleştirilmiş bir tarama deneyimi için oturum açın</translation>
-<translation id="2769762047821873045">Google Chrome varsayılan tarayıcınız değil.</translation>
 <translation id="2770231113462710648">Varsayılan tarayıcıyı şuna dönüştür:</translation>
 <translation id="2799223571221894425">Yeniden başlat</translation>
 <translation id="2847461019998147611">Google Chrome'u bu dilde görüntüle</translation>
@@ -160,10 +158,8 @@
 <translation id="5495581687705680288">Google Chrome'a yüklenen modüller</translation>
 <translation id="556024056938947818">Google Chrome şifreleri göstermeyi deniyor.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome'un bu sitede mikrofonunuza erişmesi için izin gerekiyor.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> tehlikeli olabileceği için Chrome tarafından engellendi.</translation>
 <translation id="573759479754913123">Chrome OS hakkında</translation>
-<translation id="5749068826913805084">Dosya indirmek için Chrome'un depolama alanına erişmesi gerekiyor.</translation>
 <translation id="5774845247549698882">Chrome OS bu dilde görüntüleniyor</translation>
 <translation id="5855036575689098185">Bilgisayarınızda çalışan yazılım Google Chrome ile uyumsuz.</translation>
 <translation id="5877064549588274448">Kanal değişti. Değişikliklerin uygulanması için cihazınızı yeniden başlatın.</translation>
@@ -182,7 +178,6 @@
 <translation id="6291549208091401781">Google Chrome zaten bilgisayarınızdaki tüm kullanıcılar için yüklendi.</translation>
 <translation id="6338556085225130112">Google Chrome güncelleniyor</translation>
 <translation id="6368958679917195344">Chrome OS, 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="6393863479814692971">Chrome'un bu sitede kameranıza ve mikrofonunuza erişmesi için izin gerekiyor.</translation>
 <translation id="6410540444482791104">Tehlikeli uygulamalar ve sitelerin tespit edilmesine yardımcı olmak üzere Google'a bazı sistem bilgilerini ve sayfa içeriklerini otomatik olarak göndererek, Chrome'un daha güvenli olmasını ve daha kolay kullanılmasını sağlayabilirsiniz.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Şu anda devam eden bir indirme işlemi var. İndirme işlemini iptal etmek ve Google Chrome'dan çıkmak istiyor musunuz?}other{Şu anda devam eden # indirme işlemi var. İndirme işlemlerini iptal etmek ve Google Chrome'dan çıkmak istiyor musunuz?}}</translation>
 <translation id="6566149418543181476">Google Chrome güncelleniyor (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -190,7 +185,6 @@
 <translation id="6600954340915313787">Chrome'a kopyalandı</translation>
 <translation id="6634887557811630702">Google Chrome güncel durumda.</translation>
 <translation id="6676384891291319759">İnternet'e erişin</translation>
-<translation id="6697947395630195233">Konumunuzu bu siteyle paylaşabilmek için Chrome'un konum bilgilerinize erişmesi gerekiyor.</translation>
 <translation id="683440813066116847">Google Chrome Canary'nin mDNS trafiğine izin vermeyi sağlayan gelen trafik kuralı.</translation>
 <translation id="686561893457936865">Chrome'u her yere götürün</translation>
 <translation id="6885412569789873916">Chrome Beta Uygulamaları</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index 2049a17..88f999e 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -54,7 +54,6 @@
 
 Якщо ви все одно ввійдете, наявні дані Chrome, як-от закладки, історію й інші налаштування, буде об’єднано з обліковим записом <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Показати меню Chrome</translation>
-<translation id="2416359993254398973">Chrome потрібні дозволи, щоб використовувати камеру на цьому сайті.</translation>
 <translation id="2429317896000329049">Google Chrome не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation>
 <translation id="2446511512801740068">Chrome застарів, оскільки протягом якогось часу його не перезапускали. Оновлення доступне та буде застосоване одразу після перезапуску.</translation>
 <translation id="2485422356828889247">Видалити</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">Допоможіть покращити Google Chrome, надсилаючи звіти про аварійне завершення роботи та <ph name="UMA_LINK" /> в Google</translation>
 <translation id="2689103672227170538">Це розширення змінило сторінку, яка відкривається під час запуску Chrome.</translation>
 <translation id="2705403826523567092">Увійдіть в обліковий запис, щоб персоналізувати роботу у веб-переглядачі на всіх пристроях</translation>
-<translation id="2769762047821873045">Google Chrome не є веб-переглядачем за умовчанням.</translation>
 <translation id="2770231113462710648">Змінити веб-переглядач за умовчанням на:</translation>
 <translation id="2799223571221894425">Перезапустити</translation>
 <translation id="2847461019998147611">Вибрати цю мову для Google Chrome</translation>
@@ -157,10 +155,8 @@
 <translation id="5495581687705680288">Модулі, завантажені в Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome намагається показати паролі.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome потрібні дозволи, щоб використовувати мікрофон на цьому сайті.</translation>
 <translation id="565744775970812598">Файл <ph name="FILE_NAME" /> може бути небезпечним, тому Chrome заблокував його.</translation>
 <translation id="573759479754913123">Про ОС Chrome</translation>
-<translation id="5749068826913805084">Щоб завантажувати файли, Chrome потребує доступу до пам’яті.</translation>
 <translation id="5774845247549698882">Для ОС Chrome вибрано цю мову</translation>
 <translation id="5855036575689098185">Програмне забезпечення, запущене на вашому комп’ютері, не сумісне з Google Chrome.</translation>
 <translation id="5877064549588274448">Канал змінено. Перезапустіть пристрій, щоб застосувати зміни.</translation>
@@ -179,7 +175,6 @@
 <translation id="6291549208091401781">Google Chrome уже встановлено для всіх користувачів на вашому комп’ютері.</translation>
 <translation id="6338556085225130112">Оновлення Google Chrome</translation>
 <translation id="6368958679917195344">ОС Chrome стала можливою завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />.</translation>
-<translation id="6393863479814692971">Chrome потрібні дозволи, щоб використовувати камеру та мікрофон на цьому сайті.</translation>
 <translation id="6410540444482791104">Ви можете зробити Chrome безпечнішим і простішим у користуванні, автоматично надсилаючи в Google деяку інформацію про систему та вміст сторінок, щоб допомогти виявляти небезпечні додатки й сайти.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Триває завантаження. Скасувати його та вийти з Google Chrome?}one{Триває # завантаження. Скасувати їх і вийти з Google Chrome?}few{Тривають # завантаження. Скасувати їх і вийти з Google Chrome?}many{Тривають # завантажень. Скасувати їх і вийти з Google Chrome?}other{Тривають # завантаження. Скасувати їх і вийти з Google Chrome?}}</translation>
 <translation id="6566149418543181476">Google Chrome оновлюється (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -187,7 +182,6 @@
 <translation id="6600954340915313787">Скопійовано в Chrome</translation>
 <translation id="6634887557811630702">У вас остання версія Google Chrome.</translation>
 <translation id="6676384891291319759">Доступ до Інтернету</translation>
-<translation id="6697947395630195233">Chrome потрібен доступ до місцезнаходження, щоб повідомляти ваші геодані цьому сайту.</translation>
 <translation id="683440813066116847">Вхідне правило для Google Chrome Canary дозволяє трафік mDNS.</translation>
 <translation id="686561893457936865">Використовуйте Chrome на всіх пристроях</translation>
 <translation id="6885412569789873916">Бета-версія додатків Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index 03ad606..c4e16f9 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -56,7 +56,6 @@
 
 Đăng nhập bằng mọi cách sẽ kết hợp thông tin Chrome như dấu trang, lịch sử và các cài đặt khác vào <ph name="ACCOUNT_EMAIL_NEW" />.</translation>
 <translation id="2397416548179033562">Hiển thị menu Chrome</translation>
-<translation id="2416359993254398973">Chrome cần có quyền truy cập máy ảnh của bạn cho trang web này.</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="2446511512801740068">Chrome đã lỗi thời vì ứng dụng này chưa được chạy lại trong một thời gian. Đã có bản cập nhật và bản cập nhật này sẽ được áp dụng ngay khi bạn chạy lại.</translation>
 <translation id="2485422356828889247">Gỡ cài đặt</translation>
@@ -68,7 +67,6 @@
 <translation id="2665296953892887393">Giúp cải thiện Google Chrome bằng cách gửi báo cáo sự cố và <ph name="UMA_LINK" /> tới Google</translation>
 <translation id="2689103672227170538">Tiện ích này đã thay đổi trang nào được hiển thị khi bạn khởi động Chrome.</translation>
 <translation id="2705403826523567092">Hãy đăng nhập để có trải nghiệm duyệt web tùy chỉnh theo cá nhân, được đồng bộ hóa giữa các thiết bị</translation>
-<translation id="2769762047821873045">Google Chrome không phải là trình duyệt mặc định của bạn.</translation>
 <translation id="2770231113462710648">Thay đổi trình duyệt mặc định thành:</translation>
 <translation id="2799223571221894425">Chạy lại</translation>
 <translation id="2847461019998147611">Hiển thị Google Chrome bằng ngôn ngữ này</translation>
@@ -162,10 +160,8 @@
 <translation id="5495581687705680288">Mô-đun được tải vào Google Chrome</translation>
 <translation id="556024056938947818">Google Chrome đang cố gắng hiển thị mật khẩu.</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome cần có quyền truy cập micrô của bạn cho trang web này.</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> có thể nguy hiểm, do đó Chrome đã chặn tệp.</translation>
 <translation id="573759479754913123">Giới thiệu về Chrome OS</translation>
-<translation id="5749068826913805084">Chrome cần quyền truy cập bộ nhớ để tải xuống tệp.</translation>
 <translation id="5774845247549698882">Chrome OS được hiển thị bằng ngôn ngữ này</translation>
 <translation id="5855036575689098185">Phần mềm đang chạy trên máy tính của bạn không tương thích với Google Chrome.</translation>
 <translation id="5877064549588274448">Kênh đã thay đổi. Hãy khởi động lại thiết bị để áp dụng thay đổi.</translation>
@@ -184,7 +180,6 @@
 <translation id="6291549208091401781">Google Chrome đã được cài đặt cho tất cả người dùng trên máy tính của bạn.</translation>
 <translation id="6338556085225130112">Đang cập nhật Google Chrome</translation>
 <translation id="6368958679917195344">Chrome OS trở nên khả thi là nhờ <ph name="BEGIN_LINK_CROS_OSS" />phần mềm nguồn mở<ph name="END_LINK_CROS_OSS" /> bổ sung.</translation>
-<translation id="6393863479814692971">Chrome cần có quyền truy cập máy ảnh và micrô của bạn cho trang web này.</translation>
 <translation id="6410540444482791104">Bạn có thể giúp Chrome an toàn và dễ sử dụng hơn bằng cách tự động gửi một số thông tin hệ thống và nội dung trang cho Google để giúp phát hiện các ứng dụng và trang web nguy hiểm.</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{Một tải xuống hiện đang diễn ra. Bạn có muốn hủy tải xuống và thoát khỏi Google Chrome không?}other{# tải xuống hiện đang diễn ra. Bạn có muốn hủy tải xuống và thoát khỏi Google Chrome không?}}</translation>
 <translation id="6566149418543181476">Đang cập nhật Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -192,7 +187,6 @@
 <translation id="6600954340915313787">Đã sao chép vào Chrome</translation>
 <translation id="6634887557811630702">Google Chrome đã được cập nhật.</translation>
 <translation id="6676384891291319759">Truy cập Internet</translation>
-<translation id="6697947395630195233">Chrome cần truy cập vị trí của bạn để chia sẻ thông tin vị trí với trang web này.</translation>
 <translation id="683440813066116847">Quy tắc kết nối để Google Chrome Canary cho phép lưu lượng truy cập mDNS.</translation>
 <translation id="686561893457936865">Mang Chrome tới mọi nơi</translation>
 <translation id="6885412569789873916">Ứng dụng Chrome Beta</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index ae01ed0..c5c7ff5 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -54,7 +54,6 @@
 
 如果您仍然登录,Chrome 信息(例如书签、历史记录和其他设置)将合并到 <ph name="ACCOUNT_EMAIL_NEW" />。</translation>
 <translation id="2397416548179033562">显示 Chrome 菜单</translation>
-<translation id="2416359993254398973">Chrome 需要获得相应权限,才能允许此网站使用您的摄像头。</translation>
 <translation id="2429317896000329049">由于您的网域停用了同步功能,Google Chrome无法同步您的数据。</translation>
 <translation id="2446511512801740068">Chrome 已有一段时间未重新启动,因此现在已不是最新版本。目前有可用更新,系统会在您重新启动 Chrome 后应用这些更新。</translation>
 <translation id="2485422356828889247">卸载</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">将崩溃报告和<ph name="UMA_LINK" />发送给Google,帮助我们完善Google Chrome。</translation>
 <translation id="2689103672227170538">此扩展程序更改了 Chrome 启动后系统显示的页面。</translation>
 <translation id="2705403826523567092">登录后可畅享合乎个人需求的浏览体验,并在不同设备间保持同步</translation>
-<translation id="2769762047821873045">Google Chrome 浏览器不是您的默认浏览器。</translation>
 <translation id="2770231113462710648">将默认浏览器更改为:</translation>
 <translation id="2799223571221894425">重新启动</translation>
 <translation id="2847461019998147611">以这种语言显示 Google Chrome</translation>
@@ -158,10 +156,8 @@
 <translation id="5495581687705680288">模块已加载到 Google Chrome 浏览器中</translation>
 <translation id="556024056938947818">Google Chrome 正尝试显示密码。</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome 需要获得相应权限,才能允许此网站使用您的麦克风。</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> 可能存在危险,因此 Chrome 已将其拦截。</translation>
 <translation id="573759479754913123">关于 Chrome 操作系统</translation>
-<translation id="5749068826913805084">Chrome 需要具备存储空间使用权限,才能下载文件。</translation>
 <translation id="5774845247549698882">Chrome 操作系统界面目前使用的是这种语言</translation>
 <translation id="5855036575689098185">您计算机上运行的软件与 Google Chrome 不兼容。</translation>
 <translation id="5877064549588274448">版本已更改。请重新启动设备来应用这些变更。</translation>
@@ -180,7 +176,6 @@
 <translation id="6291549208091401781">已为您计算机上的所有用户安装 Google Chrome。</translation>
 <translation id="6338556085225130112">正在更新 Google Chrome</translation>
 <translation id="6368958679917195344">Chrome 操作系统的问世还有其他<ph name="BEGIN_LINK_CROS_OSS" />开放源代码软件<ph name="END_LINK_CROS_OSS" />的一份功劳。</translation>
-<translation id="6393863479814692971">Chrome 需要获得相应权限,才能允许此网站使用您的摄像头和麦克风。</translation>
 <translation id="6410540444482791104">您可以选择自动向 Google 发送某些系统信息和网页内容,以帮助我们检测危险应用和网站,从而提高 Chrome 的安全性和易用性。</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{有 1 项下载任务正在进行。确定要取消下载并退出 Google Chrome 吗?}other{有 # 项下载任务正在进行。确定要取消下载并退出 Google Chrome 吗?}}</translation>
 <translation id="6566149418543181476">正在更新 Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -188,7 +183,6 @@
 <translation id="6600954340915313787">已复制到 Chrome</translation>
 <translation id="6634887557811630702">Google Chrome 已是最新版本。</translation>
 <translation id="6676384891291319759">访问互联网</translation>
-<translation id="6697947395630195233">Chrome 需要获得位置权限,才能将您的位置信息共享给此网站。</translation>
 <translation id="683440813066116847">Google Chrome Canary版的入站规则,允许mDNS流量。</translation>
 <translation id="686561893457936865">随时随地使用 Chrome</translation>
 <translation id="6885412569789873916">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 a99fd2c..7a5a4f0 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -54,7 +54,6 @@
 
 如果你仍要繼續登入帳戶,各項 Chrome 資訊 (例如書籤、紀錄和其他設定) 則會合併至 <ph name="ACCOUNT_EMAIL_NEW" />。</translation>
 <translation id="2397416548179033562">顯示 Chrome 選單</translation>
-<translation id="2416359993254398973">Chrome 需要相關權限,才能讓這個網站使用你的攝影機。</translation>
 <translation id="2429317896000329049">你的網域無法使用「同步功能」,因此 Google Chrome 無法同步處理你的資料。</translation>
 <translation id="2446511512801740068">Chrome 已有一段時間未重新啟動,現用版本因此過舊。重新啟動後,即會套用可用的更新。</translation>
 <translation id="2485422356828889247">解除安裝</translation>
@@ -66,7 +65,6 @@
 <translation id="2665296953892887393">將當機報告和<ph name="UMA_LINK" />傳送給 Google,助我們一臂之力,讓 Google Chrome 更臻完美</translation>
 <translation id="2689103672227170538">這個擴充功能已變更 Chrome 啟動時所顯示的網頁。</translation>
 <translation id="2705403826523567092">登入即可享有個人化瀏覽體驗,各項設定在所有裝置都能保持同步</translation>
-<translation id="2769762047821873045">Google Chrome 並非你的預設瀏覽器。</translation>
 <translation id="2770231113462710648">將預設瀏覽器變更為:</translation>
 <translation id="2799223571221894425">重新啟動</translation>
 <translation id="2847461019998147611">將 Google Chrome 的介面文字設為這種語言</translation>
@@ -159,10 +157,8 @@
 <translation id="5495581687705680288">已載入到 Google Chrome 中的模組</translation>
 <translation id="556024056938947818">Google Chrome 即將顯示密碼。</translation>
 <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
-<translation id="557283862590186398">Chrome 需要相關權限,才能讓這個網站使用你的麥克風。</translation>
 <translation id="565744775970812598"><ph name="FILE_NAME" /> 可能不安全,因此遭到 Chrome 封鎖。</translation>
 <translation id="573759479754913123">關於 Chrome 作業系統</translation>
-<translation id="5749068826913805084">Chrome 必須取得儲存空間的存取權才能下載檔案。</translation>
 <translation id="5774845247549698882">Chrome 作業系統的介面文字已設為這種語言</translation>
 <translation id="5855036575689098185">你電腦上執行的軟體與 Google Chrome 不相容。</translation>
 <translation id="5877064549588274448">版本已變更。請重新啟動裝置以套用變更。</translation>
@@ -181,7 +177,6 @@
 <translation id="6291549208091401781">電腦上的所有使用者都已經安裝 Google Chrome 了。</translation>
 <translation id="6338556085225130112">正在更新 Google Chrome</translation>
 <translation id="6368958679917195344">Chrome 作業系統藉助了其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟體<ph name="END_LINK_CROS_OSS" />的相關技術才得以問世。</translation>
-<translation id="6393863479814692971">Chrome 需要相關權限,才能讓這個網站使用你的攝影機和麥克風。</translation>
 <translation id="6410540444482791104">你可以選擇自動傳送部分系統資訊和網頁內容給 Google,協助我們偵測危險的應用程式和網站,讓 Chrome 變得更安全、更好用。</translation>
 <translation id="6477562832195530369">{NUM_DOWNLOAD,plural, =1{目前正在執行一項下載作業。您要取消下載並結束 Google Chrome 嗎?}other{目前正在執行 # 項下載作業。您要取消下載並結束 Google Chrome 嗎?}}</translation>
 <translation id="6566149418543181476">正在更新 Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation>
@@ -189,7 +184,6 @@
 <translation id="6600954340915313787">已複製到 Chrome</translation>
 <translation id="6634887557811630702">Google Chrome 目前是最新版本。</translation>
 <translation id="6676384891291319759">連線到網際網路</translation>
-<translation id="6697947395630195233">Chrome 需要位置資訊存取權,才能與這個網站分享你的位置資訊。</translation>
 <translation id="683440813066116847">允許 mDNS 流量的 Google Chrome Canary 輸入規則。</translation>
 <translation id="686561893457936865">隨時隨地都能使用 Chrome</translation>
 <translation id="6885412569789873916">Chrome 測試版應用程式</translation>
diff --git a/chrome/app/settings_chromium_strings.grdp b/chrome/app/settings_chromium_strings.grdp
index dc16ef60..e95806f 100644
--- a/chrome/app/settings_chromium_strings.grdp
+++ b/chrome/app/settings_chromium_strings.grdp
@@ -70,6 +70,11 @@
   <message name="IDS_SETTINGS_SYNC_DISCONNECT_DELETE_PROFILE_WARNING_WITHOUT_COUNTS" desc="Warning message displayed in the Sign out of Chrome dialog that indicates profile browsing data will be removed from the device.">
     This will delete your browsing data from this device. To retrieve your data later, sign in to Chromium as <ph name="USER_EMAIL">$1<ex>foo@example.com</ex></ph>.
   </message>
+<if expr="not chromeos">
+  <message name="IDS_SETTINGS_PROFILE_NAME_AND_PICTURE" desc="Label of the link that takes you to the page to edit your name and picture for your chrome profile.">
+    Chromium name and picture
+  </message>
+</if>
 
   <!-- Sync Page -->
   <message name="IDS_SETTINGS_SYNC_SIGNIN" desc="The label that appears on the sync button in the options dialog when sync has not been set up by the user.">
diff --git a/chrome/app/settings_google_chrome_strings.grdp b/chrome/app/settings_google_chrome_strings.grdp
index 46fa921d..1b50902 100644
--- a/chrome/app/settings_google_chrome_strings.grdp
+++ b/chrome/app/settings_google_chrome_strings.grdp
@@ -70,6 +70,11 @@
   <message name="IDS_SETTINGS_SYNC_DISCONNECT_DELETE_PROFILE_WARNING_WITHOUT_COUNTS" desc="Warning message displayed in the Sign out of Chrome dialog that indicates profile browsing data will be removed from the device.">
     This will delete your browsing data from this device. To retrieve your data later, sign in to Chrome as <ph name="USER_EMAIL">$1<ex>foo@example.com</ex></ph>.
   </message>
+<if expr="not chromeos">
+  <message name="IDS_SETTINGS_PROFILE_NAME_AND_PICTURE" desc="Label of the link that takes you to the page to edit your name and picture for your chrome profile.">
+    Chrome name and picture
+  </message>
+</if>
 
   <!-- Sync Page -->
   <message name="IDS_SETTINGS_SYNC_SIGNIN" desc="The label that appears on the sync button in the options dialog when sync has not been set up by the user.">
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
index 003af9b..578ef2f 100644
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
@@ -560,9 +560,6 @@
   <message name="IDS_SETTINGS_PASSWORDS_DELETE_EXCEPTION" desc="The alt text for a button that deletes a site for which passwords would not be saved.">
     Delete this item
   </message>
-  <message name="IDS_SETTINGS_PASSWORD_DONE" desc="Label for a button that dismisses the password details dialog.">
-    Done
-  </message>
   <message name="IDS_SETTINGS_PASSWORD_REMOVE" desc="Label for a context menu item that removes the selected password." meaning="Remove selected password.">
     Remove
   </message>
@@ -793,9 +790,6 @@
     <message name="IDS_SETTINGS_CERTIFICATE_MANAGER_DELETE" desc="Label for delete button in certificate manager.">
       Delete
     </message>
-    <message name="IDS_SETTINGS_CERTIFICATE_MANAGER_DONE" desc="Label for done button in certificate manager.">
-      Done
-    </message>
     <message name="IDS_SETTINGS_CERTIFICATE_MANAGER_OTHERS" desc="Label for the others tab in certificate manager.">
       Others
     </message>
@@ -2984,9 +2978,6 @@
     <message name="IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_FINGER_IMMOBILE" desc="Warning text in the add fingerprint dialog to tell users they should move their finger slightly to capture different parts of the fingerprint.">
       Move slightly to capture a different part of the fingerprint
     </message>
-    <message name="IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_DONE_BUTTON" desc="Text on the button in the fingerprint setup dialog which allows users to exit once a fingerprint has been setup.">
-      Done
-    </message>
     <message name="IDS_SETTINGS_PEOPLE_PASSWORD_PROMPT_TITLE" desc="Title of the password prompt dialog popup.">
       Confirm your password
     </message>
@@ -3766,9 +3757,6 @@
         =1 {1 more}
         other {# more}}
     </message>
-    <message name="IDS_SETTINGS_RESET_CLEANUP_DONE_BUTTON_LABEL" desc="A button on the web page for Chrome Cleanup. Clicking this button causes the card on the settings page to be dismissed.">
-      Done
-    </message>
     <message name="IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_CLEANUP_ERROR" desc="Body of a generic error message that could appear during the cleanup of harmful software. Multiple causes for the error are possible.">
       An error occurred while Chrome was removing harmful software.
     </message>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index d2bac0e2..f24a89d 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1969,6 +1969,8 @@
       "android/download/download_controller.h",
       "android/download/download_controller_base.cc",
       "android/download/download_controller_base.h",
+      "android/download/download_location_dialog_bridge.cc",
+      "android/download/download_location_dialog_bridge.h",
       "android/download/download_manager_service.cc",
       "android/download/download_manager_service.h",
       "android/download/duplicate_download_infobar_delegate.cc",
@@ -4241,6 +4243,7 @@
       "../android/java/src/org/chromium/chrome/browser/download/DownloadController.java",
       "../android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java",
       "../android/java/src/org/chromium/chrome/browser/download/DownloadItem.java",
+      "../android/java/src/org/chromium/chrome/browser/download/DownloadLocationDialogBridge.java",
       "../android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java",
       "../android/java/src/org/chromium/chrome/browser/download/items/OfflineContentAggregatorFactory.java",
       "../android/java/src/org/chromium/chrome/browser/download/service/DownloadBackgroundTask.java",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 63cd246..b372c15 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -1845,9 +1845,6 @@
     {"enable-chrome-home", flag_descriptions::kChromeHomeName,
      flag_descriptions::kChromeHomeDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kChromeHomeFeature)},
-    {"enable-chrome-home-promo", flag_descriptions::kChromeHomePromoName,
-     flag_descriptions::kChromeHomePromoDescription, kOsAndroid,
-     FEATURE_VALUE_TYPE(chrome::android::kChromeHomePromo)},
     {"enable-chrome-home-bottom-nav-labels",
      flag_descriptions::kChromeHomeBottomNavLabelsName,
      flag_descriptions::kChromeHomeBottomNavLabelsDescription, kOsAndroid,
@@ -1869,10 +1866,6 @@
      flag_descriptions::kChromeHomeMenuItemsName,
      flag_descriptions::kChromeHomeMenuItemsDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kChromeHomeMenuItemsExpandSheet)},
-    {"enable-chrome-home-opt-out-snackbar",
-     flag_descriptions::kChromeHomeOptOutSnackbarName,
-     flag_descriptions::kChromeHomeOptOutSnackbarDescription, kOsAndroid,
-     FEATURE_VALUE_TYPE(chrome::android::kChromeHomeOptOutSnackbar)},
     {"enable-chrome-home-personalized-omnibox-suggestions",
      flag_descriptions::kChromeHomePersonalizedOmniboxSuggestionsName,
      flag_descriptions::kChromeHomePersonalizedOmniboxSuggestionsDescription,
@@ -1896,6 +1889,9 @@
      flag_descriptions::kChromeHomeEnableSurveyName,
      flag_descriptions::kChromeHomeEnableSurveyDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kChromeHomeSurvey)},
+    {"enable-chrome-modern-design", flag_descriptions::kChromeModernDesignName,
+     flag_descriptions::kChromeModernDesignDescription, kOsAndroid,
+     FEATURE_VALUE_TYPE(chrome::android::kChromeModernDesign)},
 #endif  // OS_ANDROID
 #if defined(OS_ANDROID)
     {"enable-tab-modal-js-dialog-android",
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc
index e5301f2..89d26f6d 100644
--- a/chrome/browser/android/chrome_feature_list.cc
+++ b/chrome/browser/android/chrome_feature_list.cc
@@ -42,6 +42,7 @@
 const base::Feature* kFeaturesExposedToJava[] = {
     &autofill::kAutofillScanCardholderName,
     &features::kClearOldBrowsingData,
+    &features::kClipboardContentSetting,
     &features::kCopylessPaste,
     &features::kDownloadsForeground,
     &features::kDownloadsLocationChange,
@@ -71,17 +72,14 @@
     &kChromeHomeInactivitySheetExpansion,
     &kChromeHomeMenuItemsExpandSheet,
     &kChromeHomePersistentIph,
-    &kChromeHomePromo,
-    &kChromeHomePromoInfoOnly,
-    &kChromeHomePromoOnStartup,
     &kChromeHomePullToRefreshIphAtTop,
-    &kChromeHomeOptOutSnackbar,
     &kChromeHomeShowGoogleGWhenUrlCleared,
     &kChromeHomeSurvey,
     &kChromeHomeSwipeLogic,
     &kChromeHomeSwipeLogicVelocity,
     &kChromeSmartSelection,
     &kChromeMemexFeature,
+    &kChromeModernDesign,
     &kContentSuggestionsScrollToLoad,
     &kContentSuggestionsSettings,
     &kContentSuggestionsThumbnailDominantColor,
@@ -212,21 +210,9 @@
 const base::Feature kChromeHomePersistentIph{"ChromeHomePersistentIph",
                                              base::FEATURE_DISABLED_BY_DEFAULT};
 
-const base::Feature kChromeHomePromo{"ChromeHomePromo",
-                                     base::FEATURE_DISABLED_BY_DEFAULT};
-
-const base::Feature kChromeHomePromoInfoOnly{"ChromeHomePromoInfoOnly",
-                                             base::FEATURE_DISABLED_BY_DEFAULT};
-
-const base::Feature kChromeHomePromoOnStartup{"ChromeHomePromoOnStartup",
-                                              base::FEATURE_ENABLED_BY_DEFAULT};
-
 const base::Feature kChromeHomePullToRefreshIphAtTop{
     "ChromeHomePullToRefreshIphAtTop", base::FEATURE_DISABLED_BY_DEFAULT};
 
-const base::Feature kChromeHomeOptOutSnackbar{
-    "ChromeHomeOptOutSnackbar", base::FEATURE_DISABLED_BY_DEFAULT};
-
 const base::Feature kChromeHomeShowGoogleGWhenUrlCleared{
     "ChromeHomeShowGoogleGWhenUrlCleared", base::FEATURE_DISABLED_BY_DEFAULT};
 
@@ -242,6 +228,9 @@
 const base::Feature kChromeMemexFeature{"ChromeMemex",
                                         base::FEATURE_DISABLED_BY_DEFAULT};
 
+const base::Feature kChromeModernDesign{"ChromeModernDesign",
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
+
 const base::Feature kChromeSmartSelection{"ChromeSmartSelection",
                                           base::FEATURE_ENABLED_BY_DEFAULT};
 
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h
index 481b30e5..0431379 100644
--- a/chrome/browser/android/chrome_feature_list.h
+++ b/chrome/browser/android/chrome_feature_list.h
@@ -30,16 +30,13 @@
 extern const base::Feature kChromeHomeInactivitySheetExpansion;
 extern const base::Feature kChromeHomeMenuItemsExpandSheet;
 extern const base::Feature kChromeHomePersistentIph;
-extern const base::Feature kChromeHomePromo;
-extern const base::Feature kChromeHomePromoInfoOnly;
-extern const base::Feature kChromeHomePromoOnStartup;
 extern const base::Feature kChromeHomePullToRefreshIphAtTop;
-extern const base::Feature kChromeHomeOptOutSnackbar;
 extern const base::Feature kChromeHomeShowGoogleGWhenUrlCleared;
 extern const base::Feature kChromeHomeSurvey;
 extern const base::Feature kChromeHomeSwipeLogic;
 extern const base::Feature kChromeHomeSwipeLogicVelocity;
 extern const base::Feature kChromeMemexFeature;
+extern const base::Feature kChromeModernDesign;
 extern const base::Feature kChromeSmartSelection;
 extern const base::Feature kContentSuggestionsScrollToLoad;
 extern const base::Feature kContentSuggestionsSettings;
diff --git a/chrome/browser/android/download/download_location_dialog_bridge.cc b/chrome/browser/android/download/download_location_dialog_bridge.cc
new file mode 100644
index 0000000..aa6466a
--- /dev/null
+++ b/chrome/browser/android/download/download_location_dialog_bridge.cc
@@ -0,0 +1,63 @@
+// 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/android/download/download_location_dialog_bridge.h"
+
+#include "base/android/jni_android.h"
+#include "base/android/jni_string.h"
+#include "content/public/browser/web_contents.h"
+#include "jni/DownloadLocationDialogBridge_jni.h"
+
+DownloadLocationDialogBridge::DownloadLocationDialogBridge()
+    : is_dialog_showing_(false) {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  java_obj_.Reset(env, Java_DownloadLocationDialogBridge_create(
+                           env, reinterpret_cast<long>(this))
+                           .obj());
+  DCHECK(!java_obj_.is_null());
+}
+
+DownloadLocationDialogBridge::~DownloadLocationDialogBridge() {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  Java_DownloadLocationDialogBridge_destroy(env, java_obj_);
+}
+
+void DownloadLocationDialogBridge::ShowDialog(
+    content::WebContents* web_contents,
+    const base::FilePath& suggested_path,
+    const DownloadTargetDeterminerDelegate::ConfirmationCallback& callback) {
+  // If dialog is showing, run the callback to continue without confirmation.
+  if (is_dialog_showing_) {
+    if (!callback.is_null()) {
+      callback.Run(DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
+                   suggested_path);
+    }
+    return;
+  }
+
+  is_dialog_showing_ = true;
+  dialog_complete_callback_ = callback;
+
+  JNIEnv* env = base::android::AttachCurrentThread();
+  Java_DownloadLocationDialogBridge_showDialog(
+      env, java_obj_, web_contents->GetJavaWebContents(),
+      base::android::ConvertUTF8ToJavaString(env,
+                                             suggested_path.AsUTF8Unsafe()));
+}
+
+void DownloadLocationDialogBridge::OnComplete(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jobject>& obj,
+    const base::android::JavaParamRef<jstring>& returned_path) {
+  std::string path_string(
+      base::android::ConvertJavaStringToUTF8(env, returned_path));
+
+  if (!dialog_complete_callback_.is_null()) {
+    base::ResetAndReturn(&dialog_complete_callback_)
+        .Run(DownloadConfirmationResult::CONFIRMED,
+             base::FilePath(FILE_PATH_LITERAL(path_string)));
+  }
+
+  is_dialog_showing_ = false;
+}
diff --git a/chrome/browser/android/download/download_location_dialog_bridge.h b/chrome/browser/android/download/download_location_dialog_bridge.h
new file mode 100644
index 0000000..9c2c42e4
--- /dev/null
+++ b/chrome/browser/android/download/download_location_dialog_bridge.h
@@ -0,0 +1,42 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ANDROID_DOWNLOAD_DOWNLOAD_LOCATION_DIALOG_BRIDGE_H_
+#define CHROME_BROWSER_ANDROID_DOWNLOAD_DOWNLOAD_LOCATION_DIALOG_BRIDGE_H_
+
+#include "base/android/jni_android.h"
+#include "base/android/scoped_java_ref.h"
+#include "base/callback.h"
+#include "chrome/browser/download/download_confirmation_result.h"
+#include "chrome/browser/download/download_target_determiner_delegate.h"
+#include "ui/gfx/native_widget_types.h"
+
+namespace content {
+class WebContents;
+}  // namespace content
+
+class DownloadLocationDialogBridge {
+ public:
+  DownloadLocationDialogBridge();
+  ~DownloadLocationDialogBridge();
+
+  void ShowDialog(
+      content::WebContents* web_contents,
+      const base::FilePath& suggested_path,
+      const DownloadTargetDeterminerDelegate::ConfirmationCallback& callback);
+
+  void OnComplete(JNIEnv* env,
+                  const base::android::JavaParamRef<jobject>& obj,
+                  const base::android::JavaParamRef<jstring>& returned_path);
+
+ private:
+  jboolean is_dialog_showing_;
+  base::android::ScopedJavaGlobalRef<jobject> java_obj_;
+  DownloadTargetDeterminerDelegate::ConfirmationCallback
+      dialog_complete_callback_;
+
+  DISALLOW_COPY_AND_ASSIGN(DownloadLocationDialogBridge);
+};
+
+#endif  // CHROME_BROWSER_ANDROID_DOWNLOAD_DOWNLOAD_LOCATION_DIALOG_BRIDGE_H_
diff --git a/chrome/browser/android/feature_utilities.cc b/chrome/browser/android/feature_utilities.cc
index b87a2f5..6fdddef 100644
--- a/chrome/browser/android/feature_utilities.cc
+++ b/chrome/browser/android/feature_utilities.cc
@@ -35,6 +35,11 @@
   return Java_FeatureUtilities_isChromeHomeEnabled(env);
 }
 
+bool GetIsChromeModernDesignEnabled() {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  return Java_FeatureUtilities_isChromeModernDesignEnabled(env);
+}
+
 } // namespace android
 } // namespace chrome
 
@@ -53,15 +58,3 @@
   is_in_multi_window_mode = j_is_in_multi_window_mode;
 }
 
-static void JNI_FeatureUtilities_NotifyChromeHomeStatusChanged(
-    JNIEnv* env,
-    const JavaParamRef<jclass>& clazz,
-    jboolean j_is_chrome_home_enabled) {
-  ntp_snippets::ContentSuggestionsService* content_suggestions_service =
-      ContentSuggestionsServiceFactory::GetForProfileIfExists(
-          ProfileManager::GetLastUsedProfile());
-  if (content_suggestions_service) {
-    content_suggestions_service->OnChromeHomeStatusChanged(
-        j_is_chrome_home_enabled);
-  }
-}
diff --git a/chrome/browser/android/feature_utilities.h b/chrome/browser/android/feature_utilities.h
index 77d595f..c031410 100644
--- a/chrome/browser/android/feature_utilities.h
+++ b/chrome/browser/android/feature_utilities.h
@@ -22,6 +22,8 @@
 
 bool GetIsChromeHomeEnabled();
 
+bool GetIsChromeModernDesignEnabled();
+
 } // namespace android
 } // namespace chrome
 
diff --git a/chrome/browser/android/preferences/pref_service_bridge.cc b/chrome/browser/android/preferences/pref_service_bridge.cc
index 166e76a2..8f33dcc 100644
--- a/chrome/browser/android/preferences/pref_service_bridge.cc
+++ b/chrome/browser/android/preferences/pref_service_bridge.cc
@@ -166,7 +166,8 @@
   // that the functionality provided below is correct.
   DCHECK(content_settings_type == CONTENT_SETTINGS_TYPE_JAVASCRIPT ||
          content_settings_type == CONTENT_SETTINGS_TYPE_POPUPS ||
-         content_settings_type == CONTENT_SETTINGS_TYPE_ADS);
+         content_settings_type == CONTENT_SETTINGS_TYPE_ADS ||
+         content_settings_type == CONTENT_SETTINGS_TYPE_CLIPBOARD_READ);
   ContentSettingsType type =
       static_cast<ContentSettingsType>(content_settings_type);
   return GetBooleanForContentSetting(type);
@@ -655,6 +656,17 @@
       allow ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK);
 }
 
+static void JNI_PrefServiceBridge_SetClipboardEnabled(
+    JNIEnv* env,
+    const JavaParamRef<jobject>& obj,
+    jboolean allow) {
+  HostContentSettingsMap* host_content_settings_map =
+      HostContentSettingsMapFactory::GetForProfile(GetOriginalProfile());
+  host_content_settings_map->SetDefaultContentSetting(
+      CONTENT_SETTINGS_TYPE_CLIPBOARD_READ,
+      allow ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK);
+}
+
 static void JNI_PrefServiceBridge_SetSoundEnabled(
     JNIEnv* env,
     const JavaParamRef<jobject>& obj,
diff --git a/chrome/browser/android/preferences/prefs.h b/chrome/browser/android/preferences/prefs.h
index 36e201c..09542b4 100644
--- a/chrome/browser/android/preferences/prefs.h
+++ b/chrome/browser/android/preferences/prefs.h
@@ -18,6 +18,7 @@
   ALLOW_DELETING_BROWSER_HISTORY,
   INCOGNITO_MODE_AVAILABILITY,
   READER_FOR_ACCESSIBILITY_ENABLED,
+  PROMPT_FOR_DOWNLOAD_ANDROID,
   // PREF_NUM_PREFS must be the last entry.
   PREF_NUM_PREFS
 };
@@ -27,6 +28,7 @@
 const char* const kPrefsExposedToJava[] = {
     prefs::kAllowDeletingBrowserHistory, prefs::kIncognitoModeAvailability,
     dom_distiller::prefs::kReaderForAccessibility,
+    prefs::kPromptForDownloadAndroid,
 };
 
 #endif  // CHROME_BROWSER_ANDROID_PREFERENCES_PREFS_H_
diff --git a/chrome/browser/android/preferences/website_preference_bridge.cc b/chrome/browser/android/preferences/website_preference_bridge.cc
index 2ea97625..944576f 100644
--- a/chrome/browser/android/preferences/website_preference_bridge.cc
+++ b/chrome/browser/android/preferences/website_preference_bridge.cc
@@ -262,6 +262,35 @@
 
 }  // anonymous namespace
 
+static void JNI_WebsitePreferenceBridge_GetClipboardOrigins(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz,
+    const JavaParamRef<jobject>& list) {
+  JNI_WebsitePreferenceBridge_GetOrigins(
+      env, CONTENT_SETTINGS_TYPE_CLIPBOARD_READ,
+      &Java_WebsitePreferenceBridge_insertClipboardInfoIntoList, list, false);
+}
+
+static jint JNI_WebsitePreferenceBridge_GetClipboardSettingForOrigin(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz,
+    const JavaParamRef<jstring>& origin,
+    jboolean is_incognito) {
+  return JNI_WebsitePreferenceBridge_GetSettingForOrigin(
+      env, CONTENT_SETTINGS_TYPE_CLIPBOARD_READ, origin, origin, is_incognito);
+}
+
+static void JNI_WebsitePreferenceBridge_SetClipboardSettingForOrigin(
+    JNIEnv* env,
+    const JavaParamRef<jclass>& clazz,
+    const JavaParamRef<jstring>& origin,
+    jint value,
+    jboolean is_incognito) {
+  JNI_WebsitePreferenceBridge_SetSettingForOrigin(
+      env, CONTENT_SETTINGS_TYPE_CLIPBOARD_READ, origin, origin,
+      static_cast<ContentSetting>(value), is_incognito);
+}
+
 static void JNI_WebsitePreferenceBridge_GetGeolocationOrigins(
     JNIEnv* env,
     const JavaParamRef<jclass>& clazz,
diff --git a/chrome/browser/android/vr_shell/BUILD.gn b/chrome/browser/android/vr_shell/BUILD.gn
index 0150f1616..2161264 100644
--- a/chrome/browser/android/vr_shell/BUILD.gn
+++ b/chrome/browser/android/vr_shell/BUILD.gn
@@ -27,8 +27,6 @@
     "gvr_util.h",
     "mailbox_to_surface_bridge.cc",
     "mailbox_to_surface_bridge.h",
-    "vr_compositor.cc",
-    "vr_compositor.h",
     "vr_controller.cc",
     "vr_controller.h",
     "vr_core_info.cc",
diff --git a/chrome/browser/android/vr_shell/android_ui_gesture_target.cc b/chrome/browser/android/vr_shell/android_ui_gesture_target.cc
index 2f75333..d60c2db 100644
--- a/chrome/browser/android/vr_shell/android_ui_gesture_target.cc
+++ b/chrome/browser/android/vr_shell/android_ui_gesture_target.cc
@@ -120,6 +120,9 @@
 // static
 AndroidUiGestureTarget* AndroidUiGestureTarget::FromJavaObject(
     const JavaRef<jobject>& obj) {
+  if (obj.is_null())
+    return nullptr;
+
   JNIEnv* env = base::android::AttachCurrentThread();
   return reinterpret_cast<AndroidUiGestureTarget*>(
       Java_AndroidUiGestureTarget_getNativeObject(env, obj));
diff --git a/chrome/browser/android/vr_shell/gl_browser_interface.h b/chrome/browser/android/vr_shell/gl_browser_interface.h
index 3b13538..34d2a156 100644
--- a/chrome/browser/android/vr_shell/gl_browser_interface.h
+++ b/chrome/browser/android/vr_shell/gl_browser_interface.h
@@ -22,7 +22,8 @@
  public:
   virtual ~GlBrowserInterface() = default;
 
-  virtual void ContentSurfaceChanged(jobject surface) = 0;
+  virtual void ContentSurfaceCreated(jobject surface) = 0;
+  virtual void ContentOverlaySurfaceCreated(jobject surface) = 0;
   virtual void GvrDelegateReady(
       gvr::ViewerType viewer_type,
       device::mojom::VRDisplayFrameTransportOptionsPtr) = 0;
diff --git a/chrome/browser/android/vr_shell/vr_compositor.cc b/chrome/browser/android/vr_shell/vr_compositor.cc
deleted file mode 100644
index d6c38cbf..0000000
--- a/chrome/browser/android/vr_shell/vr_compositor.cc
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/android/vr_shell/vr_compositor.h"
-
-#include <utility>
-
-#include "cc/layers/layer.h"
-#include "cc/layers/solid_color_layer.h"
-#include "chrome/browser/android/vr_shell/vr_shell.h"
-#include "content/public/browser/android/compositor.h"
-#include "content/public/browser/web_contents.h"
-#include "third_party/skia/include/core/SkColor.h"
-#include "ui/android/window_android.h"
-
-namespace vr_shell {
-
-VrCompositor::VrCompositor(ui::WindowAndroid* window, VrShell* vr_shell)
-    : vr_shell_(vr_shell) {
-  compositor_.reset(content::Compositor::Create(this, window));
-}
-
-VrCompositor::~VrCompositor() {
-  RestoreLayer();
-}
-
-void VrCompositor::SetLayer(content::WebContents* web_contents) {
-  RestoreLayer();
-  if (!web_contents) {
-    scoped_refptr<cc::SolidColorLayer> layer = cc::SolidColorLayer::Create();
-    layer->SetBackgroundColor(SK_ColorTRANSPARENT);
-    compositor_->SetRootLayer(std::move(layer));
-    return;
-  }
-  ui::ViewAndroid* view_android = web_contents->GetNativeView();
-
-  // When we pass the layer for the ContentViewCore to the compositor it may be
-  // removing it from its previous parent, so we remember that and restore it to
-  // its previous parent on teardown.
-  layer_ = view_android->GetLayer();
-  layer_parent_ = layer_->parent();
-  compositor_->SetRootLayer(layer_);
-}
-
-void VrCompositor::RestoreLayer() {
-  if (layer_ && layer_parent_)
-    layer_parent_->AddChild(layer_);
-  layer_ = nullptr;
-  layer_parent_ = nullptr;
-}
-
-void VrCompositor::SurfaceDestroyed() {
-  compositor_->SetSurface(nullptr);
-}
-
-void VrCompositor::SetWindowBounds(gfx::Size size) {
-  compositor_->SetWindowBounds(size);
-}
-
-void VrCompositor::SurfaceChanged(jobject surface) {
-  compositor_->SetSurface(surface);
-}
-
-void VrCompositor::DidSwapBuffers() {
-  vr_shell_->DidSwapBuffers();
-}
-
-}  // namespace vr_shell
diff --git a/chrome/browser/android/vr_shell/vr_compositor.h b/chrome/browser/android/vr_shell/vr_compositor.h
deleted file mode 100644
index da23c26..0000000
--- a/chrome/browser/android/vr_shell/vr_compositor.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_COMPOSITOR_H_
-#define CHROME_BROWSER_ANDROID_VR_SHELL_VR_COMPOSITOR_H_
-
-#include <memory>
-
-#include "base/android/scoped_java_ref.h"
-#include "base/macros.h"
-#include "content/public/browser/android/compositor_client.h"
-#include "ui/gfx/geometry/size.h"
-
-typedef unsigned int SkColor;
-
-namespace cc {
-class Layer;
-}
-
-namespace content {
-class Compositor;
-class WebContents;
-}
-
-namespace ui {
-class WindowAndroid;
-}
-
-namespace vr_shell {
-
-class VrShell;
-
-class VrCompositor : public content::CompositorClient {
- public:
-  explicit VrCompositor(ui::WindowAndroid* window, VrShell* vr_shell);
-  ~VrCompositor() override;
-
-  void SurfaceDestroyed();
-  void SetWindowBounds(gfx::Size size);
-  void SurfaceChanged(jobject surface);
-  void SetLayer(content::WebContents* web_contents);
-
- private:
-  // CompositorClient
-  void DidSwapBuffers() override;
-
-  void RestoreLayer();
-
-  std::unique_ptr<content::Compositor> compositor_;
-
-  cc::Layer* layer_ = nullptr;
-  cc::Layer* layer_parent_ = nullptr;
-  VrShell* vr_shell_;
-
-  DISALLOW_COPY_AND_ASSIGN(VrCompositor);
-};
-
-}  // namespace vr_shell
-
-#endif  // CHROME_BROWSER_ANDROID_VR_SHELL_VR_COMPOSITOR_H_
diff --git a/chrome/browser/android/vr_shell/vr_gl_thread.cc b/chrome/browser/android/vr_shell/vr_gl_thread.cc
index 6235ae7..49eafa2 100644
--- a/chrome/browser/android/vr_shell/vr_gl_thread.cc
+++ b/chrome/browser/android/vr_shell/vr_gl_thread.cc
@@ -46,7 +46,8 @@
 
 void VrGLThread::Init() {
   bool keyboard_enabled =
-      base::FeatureList::IsEnabled(features::kVrBrowserKeyboard);
+      base::FeatureList::IsEnabled(features::kVrBrowserKeyboard) &&
+      !ui_initial_state_.web_vr_autopresentation_expected;
   if (keyboard_enabled) {
     keyboard_delegate_ = GvrKeyboardDelegate::Create();
     text_input_delegate_ = std::make_unique<vr::TextInputDelegate>();
@@ -86,11 +87,17 @@
   vr_shell_gl_.reset();
 }
 
-void VrGLThread::ContentSurfaceChanged(jobject surface) {
+void VrGLThread::ContentSurfaceCreated(jobject surface) {
   DCHECK(OnGlThread());
   main_thread_task_runner_->PostTask(
       FROM_HERE,
-      base::Bind(&VrShell::ContentSurfaceChanged, weak_vr_shell_, surface));
+      base::BindOnce(&VrShell::ContentSurfaceCreated, weak_vr_shell_, surface));
+}
+
+void VrGLThread::ContentOverlaySurfaceCreated(jobject surface) {
+  main_thread_task_runner_->PostTask(
+      FROM_HERE, base::BindOnce(&VrShell::ContentOverlaySurfaceCreated,
+                                weak_vr_shell_, surface));
 }
 
 void VrGLThread::GvrDelegateReady(
@@ -272,11 +279,11 @@
                             browser_ui_, enabled));
 }
 
-void VrGLThread::SetLocationAccess(bool enabled) {
+void VrGLThread::SetLocationAccessEnabled(bool enabled) {
   DCHECK(OnMainThread());
-  task_runner()->PostTask(FROM_HERE,
-                          base::Bind(&vr::BrowserUiInterface::SetLocationAccess,
-                                     browser_ui_, enabled));
+  task_runner()->PostTask(
+      FROM_HERE, base::Bind(&vr::BrowserUiInterface::SetLocationAccessEnabled,
+                            browser_ui_, enabled));
 }
 
 void VrGLThread::SetVideoCaptureEnabled(bool enabled) {
diff --git a/chrome/browser/android/vr_shell/vr_gl_thread.h b/chrome/browser/android/vr_shell/vr_gl_thread.h
index e40755a51..87999e7 100644
--- a/chrome/browser/android/vr_shell/vr_gl_thread.h
+++ b/chrome/browser/android/vr_shell/vr_gl_thread.h
@@ -48,7 +48,8 @@
   base::WeakPtr<VrShellGl> GetVrShellGl();
 
   // GlBrowserInterface implementation (GL calling to VrShell).
-  void ContentSurfaceChanged(jobject surface) override;
+  void ContentSurfaceCreated(jobject surface) override;
+  void ContentOverlaySurfaceCreated(jobject surface) override;
   void GvrDelegateReady(
       gvr::ViewerType viewer_type,
       device::mojom::VRDisplayFrameTransportOptionsPtr) override;
@@ -89,7 +90,7 @@
   void SetScreenCaptureEnabled(bool enabled) override;
   void SetAudioCaptureEnabled(bool enabled) override;
   void SetBluetoothConnected(bool enabled) override;
-  void SetLocationAccess(bool enabled) override;
+  void SetLocationAccessEnabled(bool enabled) override;
   void SetExitVrPromptEnabled(bool enabled,
                               vr::UiUnsupportedMode reason) override;
   void SetSpeechRecognitionEnabled(bool enabled) override;
diff --git a/chrome/browser/android/vr_shell/vr_shell.cc b/chrome/browser/android/vr_shell/vr_shell.cc
index 5f5a805..41e58f5 100644
--- a/chrome/browser/android/vr_shell/vr_shell.cc
+++ b/chrome/browser/android/vr_shell/vr_shell.cc
@@ -21,7 +21,6 @@
 #include "chrome/browser/android/tab_android.h"
 #include "chrome/browser/android/vr_shell/android_ui_gesture_target.h"
 #include "chrome/browser/android/vr_shell/autocomplete_controller.h"
-#include "chrome/browser/android/vr_shell/vr_compositor.h"
 #include "chrome/browser/android/vr_shell/vr_gl_thread.h"
 #include "chrome/browser/android/vr_shell/vr_shell_delegate.h"
 #include "chrome/browser/android/vr_shell/vr_shell_gl.h"
@@ -37,7 +36,6 @@
 #include "chrome/browser/vr/model/omnibox_suggestions.h"
 #include "chrome/browser/vr/toolbar_helper.h"
 #include "chrome/browser/vr/vr_tab_helper.h"
-#include "chrome/browser/vr/web_contents_event_forwarder.h"
 #include "chrome/common/chrome_features.h"
 #include "chrome/common/url_constants.h"
 #include "content/public/browser/browser_context.h"
@@ -124,7 +122,6 @@
 
 VrShell::VrShell(JNIEnv* env,
                  const JavaParamRef<jobject>& obj,
-                 ui::WindowAndroid* window,
                  const vr::UiInitialState& ui_initial_state,
                  VrShellDelegate* delegate,
                  gvr_context* gvr_api,
@@ -136,8 +133,6 @@
     : vr_shell_enabled_(base::FeatureList::IsEnabled(features::kVrBrowsing)),
       web_vr_autopresentation_expected_(
           ui_initial_state.web_vr_autopresentation_expected),
-      window_(window),
-      compositor_(std::make_unique<VrCompositor>(window_, this)),
       delegate_provider_(delegate),
       main_thread_task_runner_(base::ThreadTaskRunnerHandle::Get()),
       reprojected_rendering_(reprojected_rendering),
@@ -177,52 +172,36 @@
   delete this;
 }
 
-void VrShell::SwapContents(
-    JNIEnv* env,
-    const JavaParamRef<jobject>& obj,
-    const JavaParamRef<jobject>& tab,
-    const JavaParamRef<jobject>& android_ui_gesture_target) {
-  DCHECK(tab.obj());
+void VrShell::SwapContents(JNIEnv* env,
+                           const JavaParamRef<jobject>& obj,
+                           const JavaParamRef<jobject>& tab,
+                           float android_view_dip_scale) {
   content_id_++;
   PostToGlThread(FROM_HERE,
                  base::Bind(&VrShellGl::OnSwapContents,
                             gl_thread_->GetVrShellGl(), content_id_));
   TabAndroid* active_tab =
       TabAndroid::GetNativeTab(env, JavaParamRef<jobject>(env, tab));
-  DCHECK(active_tab);
-  content::WebContents* contents = active_tab->web_contents();
-  bool is_native_page = active_tab->IsNativePage();
 
-  AndroidUiGestureTarget* target = nullptr;
-  if (is_native_page) {
-    DCHECK(!android_ui_gesture_target.is_null());
-    target = AndroidUiGestureTarget::FromJavaObject(android_ui_gesture_target);
-  }
-
-  if (contents == web_contents_ && target == android_ui_gesture_target_.get()) {
-    return;
-  }
+  content::WebContents* contents =
+      active_tab ? active_tab->web_contents() : nullptr;
+  bool is_native_page = active_tab ? active_tab->IsNativePage() : true;
 
   SetIsInVR(GetNonNativePageWebContents(), false);
+
   web_contents_ = contents;
   web_contents_is_native_page_ = is_native_page;
-  compositor_->SetLayer(GetNonNativePageWebContents());
   SetIsInVR(GetNonNativePageWebContents(), true);
-  ContentFrameWasResized(false /* unused */);
   SetUiState();
 
   vr_web_contents_observer_ = std::make_unique<VrWebContentsObserver>(
       web_contents_, this, ui_, toolbar_.get());
 
-  if (target) {
-    android_ui_gesture_target_.reset(target);
-    web_contents_event_forwarder_ = nullptr;
+  if (!GetNonNativePageWebContents()) {
     metrics_helper_ = nullptr;
     return;
   }
-  web_contents_event_forwarder_ =
-      std::make_unique<vr::WebContentsEventForwarder>(
-          GetNonNativePageWebContents());
+
   // TODO(billorr): Make VrMetricsHelper tab-aware and able to track multiple
   // tabs. crbug.com/684661
   metrics_helper_ = std::make_unique<VrMetricsHelper>(
@@ -231,6 +210,14 @@
       web_vr_autopresentation_expected_);
 }
 
+void VrShell::SetAndroidGestureTarget(
+    JNIEnv* env,
+    const JavaParamRef<jobject>& obj,
+    const JavaParamRef<jobject>& android_ui_gesture_target) {
+  android_ui_gesture_target_.reset(
+      AndroidUiGestureTarget::FromJavaObject(android_ui_gesture_target));
+}
+
 void VrShell::SetUiState() {
   toolbar_->Update();
 
@@ -406,10 +393,8 @@
                          const JavaParamRef<jobject>& obj,
                          const JavaParamRef<jobject>& surface) {
   CHECK(!reprojected_rendering_);
-  if (!surface) {
-    compositor_->SurfaceDestroyed();
+  if (surface.is_null())
     return;
-  }
   gfx::AcceleratedWidget window =
       ANativeWindow_fromSurface(base::android::AttachCurrentThread(), surface);
   PostToGlThread(FROM_HERE, base::Bind(&VrShellGl::InitializeGl,
@@ -506,29 +491,6 @@
                      std::move(present_options)));
 }
 
-base::android::ScopedJavaGlobalRef<jobject> VrShell::TakeContentSurface(
-    JNIEnv* env,
-    const JavaParamRef<jobject>& obj) {
-  if (!content_surface_) {
-    return base::android::ScopedJavaGlobalRef<jobject>(env, nullptr);
-  }
-  taken_surface_ = true;
-  compositor_->SurfaceChanged(nullptr);
-  base::android::ScopedJavaGlobalRef<jobject> surface(env, content_surface_);
-  content_surface_ = nullptr;
-  return surface;
-}
-
-void VrShell::RestoreContentSurface(JNIEnv* env,
-                                    const JavaParamRef<jobject>& obj) {
-  // Don't try to restore the surface if we haven't successfully taken it yet.
-  if (!taken_surface_)
-    return;
-  taken_surface_ = false;
-  PostToGlThread(FROM_HERE, base::Bind(&VrShellGl::CreateContentSurface,
-                                       gl_thread_->GetVrShellGl()));
-}
-
 void VrShell::SetHistoryButtonsEnabled(JNIEnv* env,
                                        const JavaParamRef<jobject>& obj,
                                        jboolean can_go_back,
@@ -539,14 +501,19 @@
 void VrShell::RequestToExitVr(JNIEnv* env,
                               const JavaParamRef<jobject>& obj,
                               int reason) {
-  ui_->SetExitVrPromptEnabled(true, (vr::UiUnsupportedMode)reason);
+  ui_->SetExitVrPromptEnabled(true, static_cast<vr::UiUnsupportedMode>(reason));
 }
 
-void VrShell::ContentSurfaceChanged(jobject surface) {
-  content_surface_ = surface;
+void VrShell::ContentSurfaceCreated(jobject surface) {
   JNIEnv* env = base::android::AttachCurrentThread();
-  Java_VrShellImpl_contentSurfaceChanged(env, j_vr_shell_);
-  compositor_->SurfaceChanged(content_surface_);
+  base::android::ScopedJavaGlobalRef<jobject> ref(env, surface);
+  Java_VrShellImpl_contentSurfaceCreated(env, j_vr_shell_, ref);
+}
+
+void VrShell::ContentOverlaySurfaceCreated(jobject surface) {
+  JNIEnv* env = base::android::AttachCurrentThread();
+  base::android::ScopedJavaGlobalRef<jobject> ref(env, surface);
+  Java_VrShellImpl_contentOverlaySurfaceCreated(env, j_vr_shell_, ref);
 }
 
 void VrShell::GvrDelegateReady(
@@ -569,25 +536,27 @@
     const JavaParamRef<jobject>& jweb_contents,
     jint width,
     jint height) {
+  if (jweb_contents.is_null())
+    return;
   content::WebContents* web_contents =
       content::WebContents::FromJavaWebContents(jweb_contents);
   web_contents->GetNativeView()->OnSizeChanged(width, height);
-  gfx::Size size(width, height);
-  web_contents->GetNativeView()->OnPhysicalBackingSizeChanged(size);
 }
 
-void VrShell::ContentPhysicalBoundsChanged(JNIEnv* env,
-                                           const JavaParamRef<jobject>& object,
-                                           jint width,
-                                           jint height,
-                                           jfloat dpr) {
+void VrShell::BufferBoundsChanged(JNIEnv* env,
+                                  const JavaParamRef<jobject>& object,
+                                  jint content_width,
+                                  jint content_height,
+                                  jint overlay_width,
+                                  jint overlay_height) {
   TRACE_EVENT0("gpu", "VrShell::ContentPhysicalBoundsChanged");
   // TODO(acondor): Set the device scale factor for font rendering on the
   // VR Shell textures.
   PostToGlThread(FROM_HERE,
-                 base::Bind(&VrShellGl::ContentPhysicalBoundsChanged,
-                            gl_thread_->GetVrShellGl(), width, height));
-  compositor_->SetWindowBounds(gfx::Size(width, height));
+                 base::BindOnce(&VrShellGl::BufferBoundsChanged,
+                                gl_thread_->GetVrShellGl(),
+                                gfx::Size(content_width, content_height),
+                                gfx::Size(overlay_width, overlay_height)));
 }
 
 // Note that the following code is obsolete and is here as reference for the
@@ -625,35 +594,12 @@
   }
 }
 
-void VrShell::ContentFrameWasResized(bool width_changed) {
-  display::Display display =
-      display::Screen::GetScreen()->GetDisplayNearestWindow(window_);
-  PostToGlThread(
-      FROM_HERE,
-      base::Bind(&VrShellGl::ContentBoundsChanged, gl_thread_->GetVrShellGl(),
-                 display.size().width(), display.size().height()));
-}
-
 void VrShell::ContentWebContentsDestroyed() {
-  web_contents_event_forwarder_.reset();
   web_contents_ = nullptr;
   // TODO(mthiesse): Handle web contents being destroyed.
   ForceExitVr();
 }
 
-void VrShell::ContentWasHidden() {
-  // Ensure we don't continue sending input to it.
-  web_contents_event_forwarder_ = nullptr;
-}
-
-void VrShell::ContentWasShown() {
-  if (GetNonNativePageWebContents()) {
-    web_contents_event_forwarder_ =
-        std::make_unique<vr::WebContentsEventForwarder>(
-            GetNonNativePageWebContents());
-  }
-}
-
 void VrShell::ForceExitVr() {
   JNIEnv* env = base::android::AttachCurrentThread();
   Java_VrShellImpl_forceExitVr(env, j_vr_shell_);
@@ -779,6 +725,11 @@
   JNIEnv* env = base::android::AttachCurrentThread();
   Java_VrShellImpl_setContentCssSize(env, j_vr_shell_, window_size.width(),
                                      window_size.height(), dpr);
+
+  PostToGlThread(FROM_HERE,
+                 base::BindOnce(&VrShellGl::ContentBoundsChanged,
+                                gl_thread_->GetVrShellGl(), window_size.width(),
+                                window_size.height()));
 }
 
 void VrShell::SetVoiceSearchActive(bool active) {
@@ -891,7 +842,7 @@
 void VrShell::SetHighAccuracyLocation(bool high_accuracy_location) {
   if (high_accuracy_location == high_accuracy_location_)
     return;
-  ui_->SetLocationAccess(high_accuracy_location);
+  ui_->SetLocationAccessEnabled(high_accuracy_location);
   high_accuracy_location_ = high_accuracy_location;
 }
 
@@ -906,11 +857,7 @@
   if (content_id_ != content_id)
     return;
 
-  if (web_contents_event_forwarder_) {
-    web_contents_event_forwarder_->ForwardEvent(std::move(event));
-  } else if (android_ui_gesture_target_) {
-    android_ui_gesture_target_->DispatchWebInputEvent(std::move(event));
-  }
+  android_ui_gesture_target_->DispatchWebInputEvent(std::move(event));
 }
 
 void VrShell::UpdateGamepadData(device::GvrGamepadData pad) {
@@ -984,11 +931,6 @@
   ui_->OnAssetsComponentReady();
 }
 
-void VrShell::DidSwapBuffers() {
-  JNIEnv* env = base::android::AttachCurrentThread();
-  Java_VrShellImpl_didSwapBuffers(env, j_vr_shell_);
-}
-
 // ----------------------------------------------------------------------------
 // Native JNI methods
 // ----------------------------------------------------------------------------
@@ -996,7 +938,6 @@
 jlong JNI_VrShellImpl_Init(JNIEnv* env,
                            const JavaParamRef<jobject>& obj,
                            const JavaParamRef<jobject>& delegate,
-                           const JavaParamRef<jobject>& jwindow_android,
                            jboolean for_web_vr,
                            jboolean web_vr_autopresentation_expected,
                            jboolean in_cct,
@@ -1022,8 +963,7 @@
       vr::AssetsLoader::GetInstance()->ComponentReady();
 
   return reinterpret_cast<intptr_t>(new VrShell(
-      env, obj, ui::WindowAndroid::FromJavaWindowAndroid(jwindow_android),
-      ui_initial_state,
+      env, obj, ui_initial_state,
       VrShellDelegate::GetNativeVrShellDelegate(env, delegate),
       reinterpret_cast<gvr_context*>(gvr_api), reprojected_rendering,
       display_width_meters, display_height_meters, display_width_pixels,
diff --git a/chrome/browser/android/vr_shell/vr_shell.h b/chrome/browser/android/vr_shell/vr_shell.h
index 36a90fd8..d7696ff 100644
--- a/chrome/browser/android/vr_shell/vr_shell.h
+++ b/chrome/browser/android/vr_shell/vr_shell.h
@@ -40,21 +40,15 @@
 class WebContents;
 }  // namespace content
 
-namespace ui {
-class WindowAndroid;
-}  // namespace ui
-
 namespace vr {
 class BrowserUiInterface;
 class ToolbarHelper;
-class WebContentsEventForwarder;
 }  // namespace vr
 
 namespace vr_shell {
 
 class AndroidUiGestureTarget;
 class AutocompleteController;
-class VrCompositor;
 class VrGLThread;
 class VrMetricsHelper;
 class VrShellDelegate;
@@ -78,7 +72,6 @@
  public:
   VrShell(JNIEnv* env,
           const base::android::JavaParamRef<jobject>& obj,
-          ui::WindowAndroid* window,
           const vr::UiInitialState& ui_initial_state,
           VrShellDelegate* delegate,
           gvr_context* gvr_api,
@@ -87,10 +80,13 @@
           float display_height_meters,
           int display_width_pixels,
           int display_height_pixels);
-  void SwapContents(
+  void SwapContents(JNIEnv* env,
+                    const base::android::JavaParamRef<jobject>& obj,
+                    const base::android::JavaParamRef<jobject>& web_contents,
+                    float android_view_dip_scale);
+  void SetAndroidGestureTarget(
       JNIEnv* env,
       const base::android::JavaParamRef<jobject>& obj,
-      const base::android::JavaParamRef<jobject>& web_contents,
       const base::android::JavaParamRef<jobject>& android_ui_gesture_target);
   void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
   void OnTriggerEvent(JNIEnv* env,
@@ -133,11 +129,6 @@
   void ExitCct();
   void ToggleCardboardGamepad(bool enabled);
   void ToggleGvrGamepad(bool enabled);
-  base::android::ScopedJavaGlobalRef<jobject> TakeContentSurface(
-      JNIEnv* env,
-      const base::android::JavaParamRef<jobject>& obj);
-  void RestoreContentSurface(JNIEnv* env,
-                             const base::android::JavaParamRef<jobject>& obj);
   void SetHistoryButtonsEnabled(JNIEnv* env,
                                 const base::android::JavaParamRef<jobject>& obj,
                                 jboolean can_go_back,
@@ -151,12 +142,9 @@
       int mode);
 
   void ContentWebContentsDestroyed();
-  // Called when our WebContents have been hidden. Usually a sign that something
-  // like another tab placed in front of it.
-  void ContentWasHidden();
-  void ContentWasShown();
 
-  void ContentSurfaceChanged(jobject surface);
+  void ContentSurfaceCreated(jobject surface);
+  void ContentOverlaySurfaceCreated(jobject surface);
   void GvrDelegateReady(gvr::ViewerType viewer_type,
                         device::mojom::VRDisplayFrameTransportOptionsPtr);
 
@@ -169,12 +157,12 @@
       const base::android::JavaParamRef<jobject>& jweb_contents,
       jint width,
       jint height);
-  void ContentPhysicalBoundsChanged(
-      JNIEnv* env,
-      const base::android::JavaParamRef<jobject>& object,
-      jint width,
-      jint height,
-      jfloat dpr);
+  void BufferBoundsChanged(JNIEnv* env,
+                           const base::android::JavaParamRef<jobject>& object,
+                           jint content_width,
+                           jint content_height,
+                           jint overlay_width,
+                           jint overlay_height);
 
   // Perform a UI action triggered by the javascript API.
   void DoUiAction(const UiAction action,
@@ -183,8 +171,6 @@
   void SetHighAccuracyLocation(bool high_accuracy_location);
   void SetContentCssSize(float width, float height, float dpr);
 
-  void ContentFrameWasResized(bool width_changed);
-
   void ForceExitVr();
   void ExitPresent();
   void ExitFullscreen();
@@ -224,8 +210,6 @@
   void OnAssetsLoaded(vr::AssetsLoadStatus status,
                       const base::Version& component_version);
 
-  void DidSwapBuffers();
-
  private:
   ~VrShell() override;
   void PostToGlThread(const base::Location& from_here, base::OnceClosure task);
@@ -251,15 +235,12 @@
   content::WebContents* web_contents_ = nullptr;
   bool web_contents_is_native_page_ = false;
   base::android::ScopedJavaGlobalRef<jobject> j_motion_event_synthesizer_;
-  ui::WindowAndroid* window_;
-  std::unique_ptr<VrCompositor> compositor_;
 
   std::unique_ptr<VrWebContentsObserver> vr_web_contents_observer_;
 
   VrShellDelegate* delegate_provider_ = nullptr;
   base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_;
 
-  std::unique_ptr<vr::WebContentsEventForwarder> web_contents_event_forwarder_;
   std::unique_ptr<AndroidUiGestureTarget> android_ui_gesture_target_;
   std::unique_ptr<VrMetricsHelper> metrics_helper_;
 
@@ -277,8 +258,6 @@
 
   device::mojom::GeolocationConfigPtr geolocation_config_;
 
-  jobject content_surface_ = nullptr;
-  bool taken_surface_ = false;
   base::CancelableClosure poll_capturing_media_task_;
   bool is_capturing_audio_ = false;
   bool is_capturing_video_ = false;
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.cc b/chrome/browser/android/vr_shell/vr_shell_gl.cc
index ae9eb05..81777ab 100644
--- a/chrome/browser/android/vr_shell/vr_shell_gl.cc
+++ b/chrome/browser/android/vr_shell/vr_shell_gl.cc
@@ -245,19 +245,36 @@
   glDisable(GL_DEPTH_TEST);
   glDepthMask(GL_FALSE);
 
-  unsigned int textures[2];
-  glGenTextures(2, textures);
-  unsigned int content_texture_id = textures[0];
-  webvr_texture_id_ = textures[1];
+  unsigned int textures[3];
+  glGenTextures(3, textures);
+  webvr_texture_id_ = textures[0];
+  unsigned int content_texture_id = textures[1];
+  unsigned int content_overlay_texture_id = textures[2];
+
   content_surface_texture_ = gl::SurfaceTexture::Create(content_texture_id);
+  content_overlay_surface_texture_ =
+      gl::SurfaceTexture::Create(content_overlay_texture_id);
   webvr_surface_texture_ = gl::SurfaceTexture::Create(webvr_texture_id_);
-  CreateContentSurface();
+
+  content_surface_ =
+      base::MakeUnique<gl::ScopedJavaSurface>(content_surface_texture_.get());
+  browser_->ContentSurfaceCreated(content_surface_->j_surface().obj());
+  content_overlay_surface_ = base::MakeUnique<gl::ScopedJavaSurface>(
+      content_overlay_surface_texture_.get());
+  browser_->ContentOverlaySurfaceCreated(
+      content_overlay_surface_->j_surface().obj());
+
   content_surface_texture_->SetFrameAvailableCallback(base::Bind(
       &VrShellGl::OnContentFrameAvailable, weak_ptr_factory_.GetWeakPtr()));
-  webvr_surface_texture_->SetFrameAvailableCallback(base::Bind(
+  content_overlay_surface_texture_->SetFrameAvailableCallback(
+      base::BindRepeating(&VrShellGl::OnContentOverlayFrameAvailable,
+                          weak_ptr_factory_.GetWeakPtr()));
+  webvr_surface_texture_->SetFrameAvailableCallback(base::BindRepeating(
       &VrShellGl::OnWebVRFrameAvailable, weak_ptr_factory_.GetWeakPtr()));
   content_surface_texture_->SetDefaultBufferSize(
-      content_tex_physical_size_.width(), content_tex_physical_size_.height());
+      content_tex_buffer_size_.width(), content_tex_buffer_size_.height());
+  content_overlay_surface_texture_->SetDefaultBufferSize(
+      content_tex_buffer_size_.width(), content_tex_buffer_size_.height());
 
   webvr_vsync_align_ = base::FeatureList::IsEnabled(features::kWebVrVsyncAlign);
 
@@ -284,6 +301,8 @@
     InitializeRenderer();
 
   ui_->OnGlInitialized(content_texture_id,
+                       vr::UiElementRenderer::kTextureLocationExternal,
+                       content_overlay_texture_id,
                        vr::UiElementRenderer::kTextureLocationExternal, true);
 
   webvr_vsync_align_ = base::FeatureList::IsEnabled(features::kWebVrVsyncAlign);
@@ -305,12 +324,6 @@
     OnVSync(base::TimeTicks::Now());
 }
 
-void VrShellGl::CreateContentSurface() {
-  content_surface_ =
-      std::make_unique<gl::ScopedJavaSurface>(content_surface_texture_.get());
-  browser_->ContentSurfaceChanged(content_surface_->j_surface().obj());
-}
-
 void VrShellGl::CreateOrResizeWebVRSurface(const gfx::Size& size) {
   if (!webvr_surface_texture_) {
     DLOG(ERROR) << "No WebVR surface texture available";
@@ -440,6 +453,10 @@
   content_frame_available_ = true;
 }
 
+void VrShellGl::OnContentOverlayFrameAvailable() {
+  content_overlay_surface_texture_->UpdateTexImage();
+}
+
 void VrShellGl::OnWebVRFrameAvailable() {
   // A "while" loop here is a bad idea. It's legal to call
   // UpdateTexImage repeatedly even if no frames are available, but
@@ -1222,11 +1239,17 @@
   ui_->OnContentBoundsChanged(width, height);
 }
 
-void VrShellGl::ContentPhysicalBoundsChanged(int width, int height) {
-  if (content_surface_texture_.get())
-    content_surface_texture_->SetDefaultBufferSize(width, height);
-  content_tex_physical_size_.set_width(width);
-  content_tex_physical_size_.set_height(height);
+void VrShellGl::BufferBoundsChanged(const gfx::Size& content_buffer_size,
+                                    const gfx::Size& overlay_buffer_size) {
+  if (content_surface_texture_.get()) {
+    content_surface_texture_->SetDefaultBufferSize(
+        content_buffer_size.width(), content_buffer_size.height());
+  }
+  if (content_overlay_surface_texture_.get()) {
+    content_overlay_surface_texture_->SetDefaultBufferSize(
+        overlay_buffer_size.width(), overlay_buffer_size.height());
+  }
+  content_tex_buffer_size_ = content_buffer_size;
 }
 
 base::WeakPtr<VrShellGl> VrShellGl::GetWeakPtr() {
diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.h b/chrome/browser/android/vr_shell/vr_shell_gl.h
index 801d631..02d2bbf 100644
--- a/chrome/browser/android/vr_shell/vr_shell_gl.h
+++ b/chrome/browser/android/vr_shell/vr_shell_gl.h
@@ -103,11 +103,9 @@
 
   void SetWebVrMode(bool enabled);
   void CreateOrResizeWebVRSurface(const gfx::Size& size);
-  void CreateContentSurface();
   void ContentBoundsChanged(int width, int height);
-  void ContentPhysicalBoundsChanged(int width, int height);
-  void UIBoundsChanged(int width, int height);
-  void UIPhysicalBoundsChanged(int width, int height);
+  void BufferBoundsChanged(const gfx::Size& content_buffer_size,
+                           const gfx::Size& overlay_buffer_size);
   base::WeakPtr<VrShellGl> GetWeakPtr();
 
   void SetControllerMesh(std::unique_ptr<vr::ControllerMesh> mesh);
@@ -159,6 +157,7 @@
       const gfx::Vector3dF& controller_direction);
 
   void OnContentFrameAvailable();
+  void OnContentOverlayFrameAvailable();
   void OnWebVRFrameAvailable();
   void ScheduleOrCancelWebVrFrameTimeout();
   void OnWebVrTimeoutImminent();
@@ -199,9 +198,11 @@
   scoped_refptr<gl::GLSurface> surface_;
   scoped_refptr<gl::GLContext> context_;
   scoped_refptr<gl::SurfaceTexture> content_surface_texture_;
+  scoped_refptr<gl::SurfaceTexture> content_overlay_surface_texture_;
   scoped_refptr<gl::SurfaceTexture> webvr_surface_texture_;
 
   std::unique_ptr<gl::ScopedJavaSurface> content_surface_;
+  std::unique_ptr<gl::ScopedJavaSurface> content_overlay_surface_;
 
   std::unique_ptr<gvr::GvrApi> gvr_api_;
   std::unique_ptr<gvr::BufferViewportList> buffer_viewport_list_;
@@ -233,7 +234,7 @@
   bool cardboard_ = false;
   gfx::Quaternion controller_quat_;
 
-  gfx::Size content_tex_physical_size_ = {0, 0};
+  gfx::Size content_tex_buffer_size_ = {0, 0};
   gfx::Size webvr_surface_size_ = {0, 0};
 
   std::vector<base::TimeTicks> webvr_time_pose_;
diff --git a/chrome/browser/android/vr_shell/vr_web_contents_observer.cc b/chrome/browser/android/vr_shell/vr_web_contents_observer.cc
index 47af11e..d326728 100644
--- a/chrome/browser/android/vr_shell/vr_web_contents_observer.cc
+++ b/chrome/browser/android/vr_shell/vr_web_contents_observer.cc
@@ -68,18 +68,6 @@
   vr_shell_->ContentWebContentsDestroyed();
 }
 
-void VrWebContentsObserver::WasHidden() {
-  vr_shell_->ContentWasHidden();
-}
-
-void VrWebContentsObserver::WasShown() {
-  vr_shell_->ContentWasShown();
-}
-
-void VrWebContentsObserver::MainFrameWasResized(bool width_changed) {
-  vr_shell_->ContentFrameWasResized(width_changed);
-}
-
 void VrWebContentsObserver::RenderViewHostChanged(
     content::RenderViewHost* old_host,
     content::RenderViewHost* new_host) {
diff --git a/chrome/browser/android/vr_shell/vr_web_contents_observer.h b/chrome/browser/android/vr_shell/vr_web_contents_observer.h
index 0c149f1e..25dfd4c 100644
--- a/chrome/browser/android/vr_shell/vr_web_contents_observer.h
+++ b/chrome/browser/android/vr_shell/vr_web_contents_observer.h
@@ -46,9 +46,6 @@
                                      bool will_cause_resize) override;
   void DidChangeVisibleSecurityState() override;
   void WebContentsDestroyed() override;
-  void WasHidden() override;
-  void WasShown() override;
-  void MainFrameWasResized(bool width_changed) override;
   void RenderViewHostChanged(content::RenderViewHost* old_host,
                              content::RenderViewHost* new_host) override;
 
diff --git a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
index ed26669..724d5c6e3 100644
--- a/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
+++ b/chrome/browser/apps/guest_view/web_view_interactive_browsertest.cc
@@ -81,8 +81,10 @@
 
   // ContentBrowserClient overrides.
   void RenderProcessWillLaunch(
-      content::RenderProcessHost* process_host) override {
-    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host);
+      content::RenderProcessHost* process_host,
+      service_manager::mojom::ServiceRequest* service_request) override {
+    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host,
+                                                        service_request);
     filters_.push_back(
         new content::TestTextInputClientMessageFilter(process_host));
   }
diff --git a/chrome/browser/background/background_contents_service_unittest.cc b/chrome/browser/background/background_contents_service_unittest.cc
index 7ce93c8..74860f8d 100644
--- a/chrome/browser/background/background_contents_service_unittest.cc
+++ b/chrome/browser/background/background_contents_service_unittest.cc
@@ -127,6 +127,11 @@
         std::make_unique<NotificationDisplayServiceTester>(profile());
   }
 
+  void TearDown() override {
+    display_service_.reset();
+    BrowserWithTestWindowTest::TearDown();
+  }
+
  protected:
   // Creates crash notification for the specified extension and returns
   // the created one.
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index 1a36a86..91b83f36 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -1237,8 +1237,15 @@
     return;
   }
 
+  // Runner for tasks critical for user experience.
   scoped_refptr<base::SequencedTaskRunner> blocking_task_runner(
       base::CreateSequencedTaskRunnerWithTraits(
+          {base::MayBlock(), base::TaskPriority::USER_BLOCKING,
+           base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}));
+
+  // Runner for tasks that do not influence user experience.
+  scoped_refptr<base::SequencedTaskRunner> background_task_runner(
+      base::CreateSequencedTaskRunnerWithTraits(
           {base::MayBlock(), base::TaskPriority::BACKGROUND,
            base::TaskShutdownBehavior::SKIP_ON_SHUTDOWN}));
 
@@ -1252,7 +1259,7 @@
           blocking_task_runner);
   subresource_filter_ruleset_service_->set_ruleset_service(
       base::MakeUnique<subresource_filter::RulesetService>(
-          local_state(), blocking_task_runner,
+          local_state(), blocking_task_runner, background_task_runner,
           subresource_filter_ruleset_service_.get(), indexed_ruleset_base_dir));
 }
 
diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd
index 165ecf3..826deaf 100644
--- a/chrome/browser/browser_resources.grd
+++ b/chrome/browser/browser_resources.grd
@@ -130,6 +130,7 @@
         <include name="IDR_CLOUDPRINT_MANIFEST" file="resources\cloud_print_app\manifest.json" type="BINDATA" />
         <include name="IDR_PDF_COMPOSITOR_MANIFEST" file="..\..\components\printing\service\pdf_compositor_manifest.json" type="BINDATA" />
       </if>
+      <include name="IDR_CHROME_RENDERER_SERVICE_MANIFEST" file="..\app\chrome_renderer_manifest.json" type="BINDATA" />
       <include name="IDR_DEVTOOLS_DISCOVERY_PAGE_HTML" file="devtools\frontend\devtools_discovery_page.html" type="BINDATA"/>
       <include name="IDR_DOMAIN_RELIABILITY_INTERNALS_HTML" file="resources\domain_reliability_internals.html" compress="gzip" type="BINDATA" />
       <include name="IDR_DOMAIN_RELIABILITY_INTERNALS_CSS" file="resources\domain_reliability_internals.css" compress="gzip" type="BINDATA" />
diff --git a/chrome/browser/chooser_controller/fake_bluetooth_chooser_controller.cc b/chrome/browser/chooser_controller/fake_bluetooth_chooser_controller.cc
index 66487fc6..12235fa0 100644
--- a/chrome/browser/chooser_controller/fake_bluetooth_chooser_controller.cc
+++ b/chrome/browser/chooser_controller/fake_bluetooth_chooser_controller.cc
@@ -19,7 +19,7 @@
 FakeBluetoothChooserController::~FakeBluetoothChooserController() {}
 
 bool FakeBluetoothChooserController::ShouldShowIconBeforeText() const {
-  return true;
+  return devices_.size() > 0;
 }
 
 bool FakeBluetoothChooserController::ShouldShowReScanButton() const {
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 201a3f4..a12ef22 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -235,6 +235,7 @@
 #include "services/preferences/public/cpp/in_process_service_factory.h"
 #include "services/preferences/public/interfaces/preferences.mojom.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
+#include "services/service_manager/public/interfaces/connector.mojom.h"
 #include "services/service_manager/sandbox/sandbox_type.h"
 #include "storage/browser/fileapi/external_mount_points.h"
 #include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
@@ -929,6 +930,8 @@
 
   chrome::AddMetricsExtraParts(main_parts);
 
+  main_parts->AddParts(ChromeService::GetInstance()->CreateExtraParts());
+
   return main_parts;
 }
 
@@ -1047,7 +1050,8 @@
 }
 
 void ChromeContentBrowserClient::RenderProcessWillLaunch(
-    content::RenderProcessHost* host) {
+    content::RenderProcessHost* host,
+    service_manager::mojom::ServiceRequest* service_request) {
   int id = host->GetID();
   Profile* profile = Profile::FromBrowserContext(host->GetBrowserContext());
   host->AddFilter(new ChromeRenderMessageFilter(id, profile));
@@ -1118,6 +1122,16 @@
         HostContentSettingsMapFactory::GetForProfile(profile), &rules);
   }
   rc_interface->SetContentSettingRules(rules);
+
+  service_manager::mojom::ServicePtr service;
+  *service_request = mojo::MakeRequest(&service);
+  service_manager::mojom::PIDReceiverPtr pid_receiver;
+  service_manager::Identity renderer_identity = host->GetChildIdentity();
+  ChromeService::GetInstance()->connector()->StartService(
+      service_manager::Identity(chrome::mojom::kRendererServiceName,
+                                renderer_identity.user_id(),
+                                renderer_identity.instance()),
+      std::move(service), mojo::MakeRequest(&pid_receiver));
 }
 
 GURL ChromeContentBrowserClient::GetEffectiveURL(
@@ -3142,7 +3156,7 @@
     StaticServiceMap* services) {
   {
     service_manager::EmbeddedServiceInfo info;
-    info.factory = base::Bind(&ChromeService::Create);
+    info.factory = ChromeService::GetInstance()->CreateChromeServiceFactory();
     services->insert(std::make_pair(chrome::mojom::kServiceName, info));
   }
   if (g_browser_process->pref_service_factory()) {
@@ -3273,6 +3287,8 @@
 #if BUILDFLAG(ENABLE_PRINTING)
         {printing::mojom::kServiceName, IDR_PDF_COMPOSITOR_MANIFEST},
 #endif
+        {chrome::mojom::kRendererServiceName,
+         IDR_CHROME_RENDERER_SERVICE_MANIFEST},
   });
 }
 
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
index beea9dd9..f83096d 100644
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
@@ -99,8 +99,10 @@
       bool* in_memory) override;
   content::WebContentsViewDelegate* GetWebContentsViewDelegate(
       content::WebContents* web_contents) override;
+  void RenderProcessWillLaunch(
+      content::RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) override;
   bool AllowGpuLaunchRetryOnIOThread() override;
-  void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
   GURL GetEffectiveURL(content::BrowserContext* browser_context,
                        const GURL& url) override;
   bool ShouldUseProcessPerSite(content::BrowserContext* browser_context,
diff --git a/chrome/browser/chrome_content_renderer_manifest_overlay.json b/chrome/browser/chrome_content_renderer_manifest_overlay.json
index d5b3e090..2deba3c 100644
--- a/chrome/browser/chrome_content_renderer_manifest_overlay.json
+++ b/chrome/browser/chrome_content_renderer_manifest_overlay.json
@@ -7,12 +7,8 @@
         "browser": [
           "chrome::mojom::ResourceUsageReporter",
           "chrome::mojom::SearchBouncer",
-          "spellcheck::mojom::SpellChecker",
           "profiling::mojom::ProfilingClient"
         ]
-      },
-      "requires": {
-        "chrome": [ "renderer" ]
       }
     },
     "navigation:frame": {
diff --git a/chrome/browser/chrome_service.cc b/chrome/browser/chrome_service.cc
index 1bd2e1d..d9e78d8 100644
--- a/chrome/browser/chrome_service.cc
+++ b/chrome/browser/chrome_service.cc
@@ -4,12 +4,25 @@
 
 #include "chrome/browser/chrome_service.h"
 
+#include "chrome/browser/chrome_browser_main_extra_parts.h"
+#include "chrome/common/constants.mojom.h"
 #include "components/spellcheck/spellcheck_build_features.h"
 #include "components/startup_metric_utils/browser/startup_metric_host_impl.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/content_browser_client.h"
 #include "content/public/common/content_client.h"
+#include "content/public/common/service_manager_connection.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
+#include "services/service_manager/public/cpp/connector.h"
+#include "services/service_manager/public/cpp/service.h"
+#include "services/service_manager/public/cpp/service_context.h"
 
+#if defined(OS_CHROMEOS)
+#include "chrome/browser/chromeos/launchable.h"
+#if defined(USE_OZONE)
+#include "services/ui/public/cpp/input_devices/input_device_controller.h"
+#endif
+#endif
 #if BUILDFLAG(ENABLE_SPELLCHECK)
 #include "chrome/browser/spellchecker/spell_check_host_chrome_impl.h"
 #if BUILDFLAG(HAS_SPELLCHECK_PANEL)
@@ -17,45 +30,126 @@
 #endif
 #endif
 
-// static
-std::unique_ptr<service_manager::Service> ChromeService::Create() {
-  return base::MakeUnique<ChromeService>();
-}
+namespace {
 
-ChromeService::ChromeService() {
-  DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+ChromeService* g_instance = nullptr;
+
+}  // namespace
+
+class ChromeService::IOThreadContext : public service_manager::Service {
+ public:
+  IOThreadContext() {
+    scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner =
+        content::BrowserThread::GetTaskRunnerForThread(
+            content::BrowserThread::UI);
+
 #if defined(OS_CHROMEOS)
 #if defined(USE_OZONE)
-  input_device_controller_.AddInterface(&registry_);
+    input_device_controller_.AddInterface(&registry_, ui_task_runner);
 #endif
-  registry_.AddInterface(
-      base::Bind(&chromeos::Launchable::Bind, base::Unretained(&launchable_)));
+    registry_.AddInterface(base::BindRepeating(&chromeos::Launchable::Bind,
+                                               base::Unretained(&launchable_)),
+                           ui_task_runner);
 #endif
-  registry_.AddInterface(
-      base::Bind(&startup_metric_utils::StartupMetricHostImpl::Create));
+    registry_.AddInterface(base::BindRepeating(
+        &startup_metric_utils::StartupMetricHostImpl::Create));
 #if BUILDFLAG(ENABLE_SPELLCHECK)
-  registry_with_source_info_.AddInterface(
-      base::BindRepeating(&SpellCheckHostChromeImpl::Create),
-      content::BrowserThread::GetTaskRunnerForThread(
-          content::BrowserThread::UI));
+    registry_with_source_info_.AddInterface(
+        base::BindRepeating(&SpellCheckHostChromeImpl::Create), ui_task_runner);
 #if BUILDFLAG(HAS_SPELLCHECK_PANEL)
-  registry_.AddInterface(base::Bind(&SpellCheckPanelHostImpl::Create),
-                         content::BrowserThread::GetTaskRunnerForThread(
-                             content::BrowserThread::UI));
+    registry_.AddInterface(
+        base::BindRepeating(&SpellCheckPanelHostImpl::Create), ui_task_runner);
 #endif
 #endif
+  }
+  ~IOThreadContext() override = default;
+
+  void Init(service_manager::mojom::ConnectorRequest connector_request) {
+    DCHECK(!connector_request_.is_pending());
+    connector_request_ = std::move(connector_request);
+  }
+
+ private:
+  // service_manager::Service:
+  void OnStart() override {
+    context()->connector()->BindConnectorRequest(std::move(connector_request_));
+  }
+  void OnBindInterface(const service_manager::BindSourceInfo& remote_info,
+                       const std::string& name,
+                       mojo::ScopedMessagePipeHandle handle) override {
+    DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
+    content::OverrideOnBindInterface(remote_info, name, &handle);
+    if (!handle.is_valid())
+      return;
+
+    if (!registry_.TryBindInterface(name, &handle))
+      registry_with_source_info_.TryBindInterface(name, &handle, remote_info);
+  }
+
+  service_manager::mojom::ConnectorRequest connector_request_;
+
+  service_manager::BinderRegistry registry_;
+  service_manager::BinderRegistryWithArgs<
+      const service_manager::BindSourceInfo&>
+      registry_with_source_info_;
+
+#if defined(OS_CHROMEOS)
+  chromeos::Launchable launchable_;
+#if defined(USE_OZONE)
+  ui::InputDeviceController input_device_controller_;
+#endif
+#endif
+
+  DISALLOW_COPY_AND_ASSIGN(IOThreadContext);
+};
+
+class ChromeService::ExtraParts : public ChromeBrowserMainExtraParts {
+ public:
+  explicit ExtraParts(ChromeService* service) : service_(service) {}
+  ~ExtraParts() override = default;
+
+ private:
+  void ServiceManagerConnectionStarted(
+      content::ServiceManagerConnection* connection) override {
+    connection->GetConnector()->StartService(
+        service_manager::Identity(chrome::mojom::kServiceName));
+    service_->InitConnector();
+  }
+
+  ChromeService* service_;
+
+  DISALLOW_COPY_AND_ASSIGN(ExtraParts);
+};
+
+// static
+ChromeService* ChromeService::GetInstance() {
+  if (!g_instance)
+    g_instance = new ChromeService;
+  return g_instance;
 }
 
+ChromeBrowserMainExtraParts* ChromeService::CreateExtraParts() {
+  return new ExtraParts(this);
+}
+
+service_manager::EmbeddedServiceInfo::ServiceFactory
+ChromeService::CreateChromeServiceFactory() {
+  return base::BindRepeating(&ChromeService::CreateChromeServiceWrapper,
+                             base::Unretained(this));
+}
+
+ChromeService::ChromeService()
+    : io_thread_context_(std::make_unique<IOThreadContext>()) {}
 ChromeService::~ChromeService() {}
 
-void ChromeService::OnBindInterface(
-    const service_manager::BindSourceInfo& remote_info,
-    const std::string& name,
-    mojo::ScopedMessagePipeHandle handle) {
-  content::OverrideOnBindInterface(remote_info, name, &handle);
-  if (!handle.is_valid())
-    return;
+void ChromeService::InitConnector() {
+  service_manager::mojom::ConnectorRequest request;
+  connector_ = service_manager::Connector::Create(&request);
+  io_thread_context_->Init(std::move(request));
+}
 
-  if (!registry_.TryBindInterface(name, &handle))
-    registry_with_source_info_.TryBindInterface(name, &handle, remote_info);
+std::unique_ptr<service_manager::Service>
+ChromeService::CreateChromeServiceWrapper() {
+  return std::make_unique<service_manager::ForwardingService>(
+      io_thread_context_.get());
 }
diff --git a/chrome/browser/chrome_service.h b/chrome/browser/chrome_service.h
index 871a63c..fdc61f3d 100644
--- a/chrome/browser/chrome_service.h
+++ b/chrome/browser/chrome_service.h
@@ -5,40 +5,46 @@
 #ifndef CHROME_BROWSER_CHROME_SERVICE_H_
 #define CHROME_BROWSER_CHROME_SERVICE_H_
 
-#include "services/service_manager/public/cpp/binder_registry.h"
-#include "services/service_manager/public/cpp/service.h"
+#include "mojo/public/cpp/system/message_pipe.h"
+#include "services/service_manager/embedder/embedded_service_info.h"
 
-#if defined(OS_CHROMEOS)
-#include "chrome/browser/chromeos/launchable.h"
-#if defined(USE_OZONE)
-#include "services/ui/public/cpp/input_devices/input_device_controller.h"
-#endif
-#endif
+namespace service_manager {
+class Connector;
+class Service;
+}  // namespace service_manager
 
-class ChromeService : public service_manager::Service {
+class ChromeBrowserMainExtraParts;
+
+// Provides access to a service for the "chrome" content embedder. Actual
+// service_manager::Service implementation lives on IO thread (IOThreadContext).
+class ChromeService {
  public:
-  ChromeService();
-  ~ChromeService() override;
+  static ChromeService* GetInstance();
 
-  static std::unique_ptr<service_manager::Service> Create();
+  // ChromeBrowserMain takes ownership of the returned parts.
+  ChromeBrowserMainExtraParts* CreateExtraParts();
+
+  service_manager::EmbeddedServiceInfo::ServiceFactory
+  CreateChromeServiceFactory();
+
+  // This is available after the content::ServiceManagerConnection is
+  // initialized.
+  service_manager::Connector* connector() { return connector_.get(); }
 
  private:
-  // service_manager::Service:
-  void OnBindInterface(const service_manager::BindSourceInfo& remote_info,
-                       const std::string& name,
-                       mojo::ScopedMessagePipeHandle handle) override;
+  class ExtraParts;
+  class IOThreadContext;
 
-  service_manager::BinderRegistry registry_;
-  service_manager::BinderRegistryWithArgs<
-      const service_manager::BindSourceInfo&>
-      registry_with_source_info_;
+  ChromeService();
+  ~ChromeService();
 
-#if defined(OS_CHROMEOS)
-  chromeos::Launchable launchable_;
-#if defined(USE_OZONE)
-  ui::InputDeviceController input_device_controller_;
-#endif
-#endif
+  void InitConnector();
+
+  std::unique_ptr<service_manager::Service> CreateChromeServiceWrapper();
+
+  std::unique_ptr<service_manager::Connector> connector_;
+
+  std::unique_ptr<IOThreadContext> io_thread_context_;
 
   DISALLOW_COPY_AND_ASSIGN(ChromeService);
 };
diff --git a/chrome/browser/chrome_site_per_process_browsertest.cc b/chrome/browser/chrome_site_per_process_browsertest.cc
index c1cda030..f06a0e3 100644
--- a/chrome/browser/chrome_site_per_process_browsertest.cc
+++ b/chrome/browser/chrome_site_per_process_browsertest.cc
@@ -39,6 +39,7 @@
 #include "content/public/browser/web_contents.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/common/referrer.h"
+#include "content/public/common/service_names.mojom.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test_utils.h"
 #include "content/public/test/test_utils.h"
@@ -835,10 +836,12 @@
 
   // ContentBrowserClient overrides.
   void RenderProcessWillLaunch(
-      content::RenderProcessHost* process_host) override {
+      content::RenderProcessHost* process_host,
+      service_manager::mojom::ServiceRequest* service_request) override {
     filters_.push_back(new TestSpellCheckMessageFilter(process_host));
     process_host->AddFilter(filters_.back().get());
-    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host);
+    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host,
+                                                        service_request);
   }
 
 #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER)
@@ -881,8 +884,11 @@
   void BindSpellCheckHostRequest(
       spellcheck::mojom::SpellCheckHostRequest request,
       const service_manager::BindSourceInfo& source_info) {
+    service_manager::Identity renderer_identity(
+        content::mojom::kRendererServiceName, source_info.identity.user_id(),
+        source_info.identity.instance());
     content::RenderProcessHost* host =
-        content::RenderProcessHost::FromRendererIdentity(source_info.identity);
+        content::RenderProcessHost::FromRendererIdentity(renderer_identity);
     scoped_refptr<TestSpellCheckMessageFilter> filter =
         GetSpellCheckMessageFilterForProcess(host);
     CHECK(filter);
diff --git a/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc b/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc
index 2109c39..23b287d 100644
--- a/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc
+++ b/chrome/browser/chromeos/arc/intent_helper/arc_settings_service.cc
@@ -41,7 +41,7 @@
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 using ::chromeos::CrosSettings;
 using ::chromeos::system::TimezoneSettings;
diff --git a/chrome/browser/chromeos/login/app_launch_signin_screen.cc b/chrome/browser/chromeos/login/app_launch_signin_screen.cc
index cf4fa76e..d3014fe4 100644
--- a/chrome/browser/chromeos/login/app_launch_signin_screen.cc
+++ b/chrome/browser/chromeos/login/app_launch_signin_screen.cc
@@ -75,10 +75,6 @@
   NOTREACHED();
 }
 
-void AppLaunchSigninScreen::CompleteLogin(const UserContext& user_context) {
-  NOTREACHED();
-}
-
 void AppLaunchSigninScreen::Login(const UserContext& user_context,
                                   const SigninSpecifics& specifics) {
   // Note: CreateAuthenticator doesn't necessarily create
@@ -94,14 +90,8 @@
   NOTREACHED();
 }
 
-void AppLaunchSigninScreen::LoadWallpaper(const AccountId& account_id) {}
-
-void AppLaunchSigninScreen::LoadSigninWallpaper() {}
-
 void AppLaunchSigninScreen::OnSigninScreenReady() {}
 
-void AppLaunchSigninScreen::OnGaiaScreenReady() {}
-
 void AppLaunchSigninScreen::RemoveUser(const AccountId& account_id) {
   NOTREACHED();
 }
@@ -175,16 +165,6 @@
   return false;
 }
 
-void AppLaunchSigninScreen::SetDisplayEmail(const std::string& email) {
-  return;
-}
-
-void AppLaunchSigninScreen::SetDisplayAndGivenName(
-    const std::string& display_name,
-    const std::string& given_name) {
-  NOTREACHED();
-}
-
 void AppLaunchSigninScreen::Signout() {
   NOTREACHED();
 }
@@ -225,9 +205,4 @@
 
 void AppLaunchSigninScreen::CheckUserStatus(const AccountId& account_id) {}
 
-bool AppLaunchSigninScreen::IsUserWhitelisted(const AccountId& account_id) {
-  NOTREACHED();
-  return true;
-}
-
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/login/app_launch_signin_screen.h b/chrome/browser/chromeos/login/app_launch_signin_screen.h
index 116acea..959a4a0 100644
--- a/chrome/browser/chromeos/login/app_launch_signin_screen.h
+++ b/chrome/browser/chromeos/login/app_launch_signin_screen.h
@@ -56,14 +56,10 @@
   // SigninScreenHandlerDelegate implementation:
   void CancelPasswordChangedFlow() override;
   void CancelUserAdding() override;
-  void CompleteLogin(const UserContext& user_context) override;
   void Login(const UserContext& user_context,
              const SigninSpecifics& specifics) override;
   void MigrateUserData(const std::string& old_password) override;
-  void LoadWallpaper(const AccountId& account_id) override;
-  void LoadSigninWallpaper() override;
   void OnSigninScreenReady() override;
-  void OnGaiaScreenReady() override;
   void RemoveUser(const AccountId& account_id) override;
   void ResyncUserData() override;
   void ShowEnterpriseEnrollmentScreen() override;
@@ -80,13 +76,9 @@
   bool AllowNewUserChanged() const override;
   bool IsSigninInProgress() const override;
   bool IsUserSigninCompleted() const override;
-  void SetDisplayEmail(const std::string& email) override;
-  void SetDisplayAndGivenName(const std::string& display_name,
-                              const std::string& given_name) override;
   void Signout() override;
   void HandleGetUsers() override;
   void CheckUserStatus(const AccountId& account_id) override;
-  bool IsUserWhitelisted(const AccountId& account_id) override;
 
   // AuthStatusConsumer implementation:
   void OnAuthFailure(const AuthFailure& error) override;
diff --git a/chrome/browser/chromeos/login/chrome_restart_request.cc b/chrome/browser/chromeos/login/chrome_restart_request.cc
index 309d7b6f..5a52d36 100644
--- a/chrome/browser/chromeos/login/chrome_restart_request.cc
+++ b/chrome/browser/chromeos/login/chrome_restart_request.cc
@@ -358,6 +358,17 @@
   restart_requested = true;
 
   if (!base::SysInfo::IsRunningOnChromeOS()) {
+    // Do nothing when running as test on bots or a dev box.
+    const base::CommandLine* current_command_line =
+        base::CommandLine::ForCurrentProcess();
+    const bool is_running_test =
+        current_command_line->HasSwitch(::switches::kTestName) ||
+        current_command_line->HasSwitch(::switches::kTestType);
+    if (is_running_test) {
+      DLOG(WARNING) << "Ignoring chrome restart for test.";
+      return;
+    }
+
     // Relaunch chrome without session manager on dev box.
     ReLaunch(command_line);
     return;
diff --git a/chrome/browser/chromeos/login/existing_user_controller.h b/chrome/browser/chromeos/login/existing_user_controller.h
index e598523..1b636e3 100644
--- a/chrome/browser/chromeos/login/existing_user_controller.h
+++ b/chrome/browser/chromeos/login/existing_user_controller.h
@@ -91,27 +91,28 @@
 
   // LoginDisplay::Delegate: implementation
   void CancelPasswordChangedFlow() override;
-  void CompleteLogin(const UserContext& user_context) override;
   base::string16 GetConnectedNetworkName() override;
   bool IsSigninInProgress() const override;
   void Login(const UserContext& user_context,
              const SigninSpecifics& specifics) override;
   void MigrateUserData(const std::string& old_password) override;
   void OnSigninScreenReady() override;
-  void OnGaiaScreenReady() override;
   void OnStartEnterpriseEnrollment() override;
   void OnStartEnableDebuggingScreen() override;
   void OnStartKioskEnableScreen() override;
   void OnStartKioskAutolaunchScreen() override;
   void ResetAutoLoginTimer() override;
   void ResyncUserData() override;
-  void SetDisplayEmail(const std::string& email) override;
-  void SetDisplayAndGivenName(const std::string& display_name,
-                              const std::string& given_name) override;
   void ShowWrongHWIDScreen() override;
   void ShowUpdateRequiredScreen() override;
   void Signout() override;
-  bool IsUserWhitelisted(const AccountId& account_id) override;
+
+  void CompleteLogin(const UserContext& user_context);
+  void OnGaiaScreenReady();
+  void SetDisplayEmail(const std::string& email);
+  void SetDisplayAndGivenName(const std::string& display_name,
+                              const std::string& given_name);
+  bool IsUserWhitelisted(const AccountId& account_id);
 
   // content::NotificationObserver implementation.
   void Observe(int type,
diff --git a/chrome/browser/chromeos/login/lock/views_screen_locker.cc b/chrome/browser/chromeos/login/lock/views_screen_locker.cc
index 0589225..5d83c83 100644
--- a/chrome/browser/chromeos/login/lock/views_screen_locker.cc
+++ b/chrome/browser/chromeos/login/lock/views_screen_locker.cc
@@ -101,6 +101,7 @@
   UMA_HISTOGRAM_TIMES("LockScreen.LockReady",
                       base::TimeTicks::Now() - lock_time_);
   screen_locker_->ScreenLockReady();
+  SessionControllerClient::Get()->NotifyChromeLockAnimationsComplete();
   if (lock_screen_apps::StateController::IsEnabled())
     lock_screen_apps::StateController::Get()->SetFocusCyclerDelegate(this);
   OnAllowedInputMethodsChanged();
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
index 0b23fab..ffa4a9f 100644
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.cc
@@ -291,10 +291,6 @@
   NOTREACHED();
 }
 
-void WebUIScreenLocker::CompleteLogin(const UserContext& user_context) {
-  NOTREACHED();
-}
-
 base::string16 WebUIScreenLocker::GetConnectedNetworkName() {
   return network_state_helper_->GetCurrentNetworkName();
 }
@@ -319,10 +315,6 @@
   VLOG(2) << "Lock screen signin screen is ready";
 }
 
-void WebUIScreenLocker::OnGaiaScreenReady() {
-  VLOG(2) << "Lock screen gaia screen is ready";
-}
-
 void WebUIScreenLocker::OnStartEnterpriseEnrollment() {
   NOTREACHED();
 }
@@ -353,24 +345,10 @@
   NOTREACHED();
 }
 
-void WebUIScreenLocker::SetDisplayEmail(const std::string& email) {
-  NOTREACHED();
-}
-
-void WebUIScreenLocker::SetDisplayAndGivenName(const std::string& display_name,
-                                               const std::string& given_name) {
-  NOTREACHED();
-}
-
 void WebUIScreenLocker::Signout() {
   chromeos::ScreenLocker::default_screen_locker()->Signout();
 }
 
-bool WebUIScreenLocker::IsUserWhitelisted(const AccountId& account_id) {
-  NOTREACHED();
-  return true;
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 // WidgetObserver:
 
diff --git a/chrome/browser/chromeos/login/lock/webui_screen_locker.h b/chrome/browser/chromeos/login/lock/webui_screen_locker.h
index 19dce9e..065dcc56 100644
--- a/chrome/browser/chromeos/login/lock/webui_screen_locker.h
+++ b/chrome/browser/chromeos/login/lock/webui_screen_locker.h
@@ -86,14 +86,12 @@
 
   // LoginDisplay::Delegate:
   void CancelPasswordChangedFlow() override;
-  void CompleteLogin(const UserContext& user_context) override;
   base::string16 GetConnectedNetworkName() override;
   bool IsSigninInProgress() const override;
   void Login(const UserContext& user_context,
              const SigninSpecifics& specifics) override;
   void MigrateUserData(const std::string& old_password) override;
   void OnSigninScreenReady() override;
-  void OnGaiaScreenReady() override;
   void OnStartEnterpriseEnrollment() override;
   void OnStartEnableDebuggingScreen() override;
   void OnStartKioskEnableScreen() override;
@@ -102,11 +100,7 @@
   void ShowUpdateRequiredScreen() override;
   void ResetAutoLoginTimer() override;
   void ResyncUserData() override;
-  void SetDisplayEmail(const std::string& email) override;
-  void SetDisplayAndGivenName(const std::string& display_name,
-                              const std::string& given_name) override;
   void Signout() override;
-  bool IsUserWhitelisted(const AccountId& account_id) override;
 
   // WidgetObserver:
   void OnWidgetDestroying(views::Widget* widget) override;
diff --git a/chrome/browser/chromeos/login/ui/login_display.h b/chrome/browser/chromeos/login/ui/login_display.h
index 052381f..f6370a0 100644
--- a/chrome/browser/chromeos/login/ui/login_display.h
+++ b/chrome/browser/chromeos/login/ui/login_display.h
@@ -59,16 +59,9 @@
     // Used when the lock screen is being displayed.
     virtual void Signout() = 0;
 
-    // Complete sign process with specified |user_context|.
-    // Used for new users authenticated through an extension.
-    virtual void CompleteLogin(const UserContext& user_context) = 0;
-
     // Notify the delegate when the sign-in UI is finished loading.
     virtual void OnSigninScreenReady() = 0;
 
-    // Notify the delegate when the GAIA UI is finished loading.
-    virtual void OnGaiaScreenReady() = 0;
-
     // Called when the user requests enterprise enrollment.
     virtual void OnStartEnterpriseEnrollment() = 0;
 
@@ -87,24 +80,12 @@
     // Shows wrong HWID screen.
     virtual void ShowWrongHWIDScreen() = 0;
 
-    // Sets the displayed email for the next login attempt with |CompleteLogin|.
-    // If it succeeds, user's displayed email value will be updated to |email|.
-    virtual void SetDisplayEmail(const std::string& email) = 0;
-    // Sets the displayed name and given name for the next login attempt with
-    // |CompleteLogin|. If it succeeds, user's displayed name and give name
-    // values will be updated to |display_name| and |given_name|.
-    virtual void SetDisplayAndGivenName(const std::string& display_name,
-                                        const std::string& given_name) = 0;
-
     // Returns name of the currently connected network, for error message,
     virtual base::string16 GetConnectedNetworkName() = 0;
 
     // Restarts the auto-login timer if it is running.
     virtual void ResetAutoLoginTimer() = 0;
 
-    // Returns true if user is allowed to log in by domain policy.
-    virtual bool IsUserWhitelisted(const AccountId& account_id) = 0;
-
    protected:
     virtual ~Delegate();
   };
diff --git a/chrome/browser/chromeos/login/ui/login_display_webui.cc b/chrome/browser/chromeos/login/ui/login_display_webui.cc
index 6bb39bbd..efa666c 100644
--- a/chrome/browser/chromeos/login/ui/login_display_webui.cc
+++ b/chrome/browser/chromeos/login/ui/login_display_webui.cc
@@ -202,13 +202,6 @@
   }
   UserAddingScreen::Get()->Cancel();
 }
-
-void LoginDisplayWebUI::CompleteLogin(const UserContext& user_context) {
-  DCHECK(delegate_);
-  if (delegate_)
-    delegate_->CompleteLogin(user_context);
-}
-
 void LoginDisplayWebUI::Login(const UserContext& user_context,
                               const SigninSpecifics& specifics) {
   DCHECK(delegate_);
@@ -222,14 +215,6 @@
     delegate_->MigrateUserData(old_password);
 }
 
-void LoginDisplayWebUI::LoadWallpaper(const AccountId& account_id) {
-  WallpaperManager::Get()->ShowUserWallpaper(account_id);
-}
-
-void LoginDisplayWebUI::LoadSigninWallpaper() {
-  WallpaperManager::Get()->ShowSigninWallpaper();
-}
-
 void LoginDisplayWebUI::OnSigninScreenReady() {
   SignInScreenController::Get()->OnSigninScreenReady();
 
@@ -237,11 +222,6 @@
     delegate_->OnSigninScreenReady();
 }
 
-void LoginDisplayWebUI::OnGaiaScreenReady() {
-  if (delegate_)
-    delegate_->OnGaiaScreenReady();
-}
-
 void LoginDisplayWebUI::RemoveUser(const AccountId& account_id) {
   SignInScreenController::Get()->RemoveUser(account_id);
 }
@@ -322,17 +302,6 @@
   return is_signin_completed();
 }
 
-void LoginDisplayWebUI::SetDisplayEmail(const std::string& email) {
-  if (delegate_)
-    delegate_->SetDisplayEmail(email);
-}
-
-void LoginDisplayWebUI::SetDisplayAndGivenName(const std::string& display_name,
-                                               const std::string& given_name) {
-  if (delegate_)
-    delegate_->SetDisplayAndGivenName(display_name, given_name);
-}
-
 void LoginDisplayWebUI::Signout() {
   delegate_->Signout();
 }
@@ -342,11 +311,4 @@
     delegate_->ResetAutoLoginTimer();
 }
 
-bool LoginDisplayWebUI::IsUserWhitelisted(const AccountId& account_id) {
-  DCHECK(delegate_);
-  if (delegate_)
-    return delegate_->IsUserWhitelisted(account_id);
-  return true;
-}
-
 }  // namespace chromeos
diff --git a/chrome/browser/chromeos/login/ui/login_display_webui.h b/chrome/browser/chromeos/login/ui/login_display_webui.h
index 969f03f..db0a2ce 100644
--- a/chrome/browser/chromeos/login/ui/login_display_webui.h
+++ b/chrome/browser/chromeos/login/ui/login_display_webui.h
@@ -62,13 +62,9 @@
              const SigninSpecifics& specifics) override;
   bool IsSigninInProgress() const override;
   void Signout() override;
-  void CompleteLogin(const UserContext& user_context) override;
 
   void OnSigninScreenReady() override;
-  void OnGaiaScreenReady() override;
   void CancelUserAdding() override;
-  void LoadWallpaper(const AccountId& account_id) override;
-  void LoadSigninWallpaper() override;
   void ShowEnterpriseEnrollmentScreen() override;
   void ShowEnableDebuggingScreen() override;
   void ShowKioskEnableScreen() override;
@@ -84,13 +80,9 @@
   bool IsAllowNewUser() const override;
   bool AllowNewUserChanged() const override;
   bool IsUserSigninCompleted() const override;
-  void SetDisplayEmail(const std::string& email) override;
-  void SetDisplayAndGivenName(const std::string& display_name,
-                              const std::string& given_name) override;
 
   void HandleGetUsers() override;
   void CheckUserStatus(const AccountId& account_id) override;
-  bool IsUserWhitelisted(const AccountId& account_id) override;
 
   // ui::UserActivityDetector implementation:
   void OnUserActivity(const ui::Event* event) override;
diff --git a/chrome/browser/chromeos/net/shill_error.cc b/chrome/browser/chromeos/net/shill_error.cc
index a339117..088f6368 100644
--- a/chrome/browser/chromeos/net/shill_error.cc
+++ b/chrome/browser/chromeos/net/shill_error.cc
@@ -38,8 +38,10 @@
     return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_DHCP_FAILED);
   if (error == shill::kErrorConnectFailed)
     return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_CONNECT_FAILED);
-  if (error == shill::kErrorBadPassphrase)
+  if (error == shill::kErrorBadPassphrase ||
+      error == shill::kErrorResultInvalidPassphrase) {
     return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_BAD_PASSPHRASE);
+  }
   if (error == shill::kErrorBadWEPKey)
     return l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_BAD_WEPKEY);
   if (error == shill::kErrorActivationFailed) {
diff --git a/chrome/browser/chromeos/power/extension_event_observer.cc b/chrome/browser/chromeos/power/extension_event_observer.cc
index de690efb..030e537c 100644
--- a/chrome/browser/chromeos/power/extension_event_observer.cc
+++ b/chrome/browser/chromeos/power/extension_event_observer.cc
@@ -7,6 +7,7 @@
 #include <memory>
 
 #include "base/bind.h"
+#include "base/location.h"
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/threading/thread_task_runner_handle.h"
@@ -245,7 +246,7 @@
   suspend_is_pending_ = true;
   power_manager_callback_ = DBusThreadManager::Get()
                                 ->GetPowerManagerClient()
-                                ->GetSuspendReadinessCallback();
+                                ->GetSuspendReadinessCallback(FROM_HERE);
 
   suspend_readiness_callback_.Reset(
       base::Bind(&ExtensionEventObserver::MaybeReportSuspendReadiness,
diff --git a/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc b/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc
index 45d727f..3ae451f 100644
--- a/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc
+++ b/chrome/browser/chromeos/proxy_config_service_impl_unittest.cc
@@ -33,8 +33,8 @@
 #include "components/sync_preferences/testing_pref_service_syncable.h"
 #include "content/public/test/test_browser_thread.h"
 #include "content/public/test/test_browser_thread_bundle.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
@@ -61,7 +61,7 @@
 // Shortcuts to declare enums within chromeos's ProxyConfig.
 #define MK_MODE(mode) UIProxyConfig::MODE_##mode
 
-// Inspired from net/proxy/proxy_config_service_linux_unittest.cc.
+// Inspired from net/proxy_resolution/proxy_config_service_linux_unittest.cc.
 const struct TestParams {
   // Short description to identify the test
   std::string description;
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system.cc b/chrome/browser/chromeos/smb_client/smb_file_system.cc
index 8e5c6e8..1aa75b5b 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system.cc
+++ b/chrome/browser/chromeos/smb_client/smb_file_system.cc
@@ -270,10 +270,19 @@
 AbortCallback SmbFileSystem::CreateFile(
     const base::FilePath& file_path,
     const storage::AsyncFileUtil::StatusCallback& callback) {
-  NOTIMPLEMENTED();
+  GetSmbProviderClient()->CreateFile(
+      GetMountId(), file_path,
+      base::BindOnce(&SmbFileSystem::HandleRequestCreateFileCallback,
+                     weak_ptr_factory_.GetWeakPtr(), callback));
   return CreateAbortCallback();
 }
 
+void SmbFileSystem::HandleRequestCreateFileCallback(
+    const storage::AsyncFileUtil::StatusCallback& callback,
+    smbprovider::ErrorType error) const {
+  callback.Run(TranslateError(error));
+}
+
 AbortCallback SmbFileSystem::DeleteEntry(
     const base::FilePath& entry_path,
     bool recursive,
diff --git a/chrome/browser/chromeos/smb_client/smb_file_system.h b/chrome/browser/chromeos/smb_client/smb_file_system.h
index 6e49139..9e2c9ed 100644
--- a/chrome/browser/chromeos/smb_client/smb_file_system.h
+++ b/chrome/browser/chromeos/smb_client/smb_file_system.h
@@ -205,6 +205,10 @@
       const storage::AsyncFileUtil::StatusCallback& callback,
       smbprovider::ErrorType error) const;
 
+  void HandleRequestCreateFileCallback(
+      const storage::AsyncFileUtil::StatusCallback& callback,
+      smbprovider::ErrorType error) const;
+
   base::File::Error RunUnmountCallback(
       const ProviderId& provider_id,
       const std::string& file_system_id,
diff --git a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
index 5270e0d3..23080bf 100644
--- a/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
+++ b/chrome/browser/component_updater/subresource_filter_component_installer_unittest.cc
@@ -44,6 +44,7 @@
                      const base::FilePath& base_dir)
       : subresource_filter::RulesetService(local_state,
                                            task_runner,
+                                           task_runner,
                                            content_service,
                                            base_dir) {}
 
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc
index a47a3d0..b15ff062d 100644
--- a/chrome/browser/devtools/devtools_sanity_browsertest.cc
+++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -17,6 +17,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/memory/ref_counted.h"
 #include "base/message_loop/message_loop.h"
+#include "base/optional.h"
 #include "base/path_service.h"
 #include "base/run_loop.h"
 #include "base/single_thread_task_runner.h"
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
index c313b2ef..176a688 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
@@ -271,6 +271,9 @@
       profile_->GetPath().Append(chrome::kDownloadMetadataStoreFilename);
   download_metadata_cache_.reset(new download::InProgressCacheImpl(
       metadata_cache_file, disk_access_task_runner_));
+#if defined(OS_ANDROID)
+  location_dialog_bridge_.reset(new DownloadLocationDialogBridge);
+#endif
 }
 
 ChromeDownloadManagerDelegate::~ChromeDownloadManagerDelegate() {
@@ -770,6 +773,17 @@
       callback.Run(DownloadConfirmationResult::CANCELED, base::FilePath());
       return;
 
+    case DownloadConfirmationReason::PREFERENCE:
+      if (download->GetWebContents()) {
+        location_dialog_bridge_->ShowDialog(download->GetWebContents(),
+                                            suggested_path, callback);
+      } else {
+        // For now, if there are no WebContents, continue anyways.
+        callback.Run(DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
+                     suggested_path);
+      }
+      return;
+
     case DownloadConfirmationReason::NAME_TOO_LONG:
     case DownloadConfirmationReason::TARGET_NO_SPACE:
     // These are errors. But rather than cancel the download we are going to
@@ -781,7 +795,6 @@
     // prompt and try the same location.
 
     case DownloadConfirmationReason::SAVE_AS:
-    case DownloadConfirmationReason::PREFERENCE:
       callback.Run(DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
                    suggested_path);
       return;
diff --git a/chrome/browser/download/chrome_download_manager_delegate.h b/chrome/browser/download/chrome_download_manager_delegate.h
index 089756dc1..dc035f8d 100644
--- a/chrome/browser/download/chrome_download_manager_delegate.h
+++ b/chrome/browser/download/chrome_download_manager_delegate.h
@@ -17,6 +17,7 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
+#include "build/build_config.h"
 #include "chrome/browser/download/download_path_reservation_tracker.h"
 #include "chrome/browser/download/download_target_determiner_delegate.h"
 #include "chrome/browser/download/download_target_info.h"
@@ -29,6 +30,10 @@
 #include "content/public/browser/notification_registrar.h"
 #include "extensions/features/features.h"
 
+#if defined(OS_ANDROID)
+#include "chrome/browser/android/download/download_location_dialog_bridge.h"
+#endif
+
 class DownloadPrefs;
 class Profile;
 
@@ -192,6 +197,10 @@
 
   std::unique_ptr<download::InProgressCache> download_metadata_cache_;
 
+#if defined(OS_ANDROID)
+  std::unique_ptr<DownloadLocationDialogBridge> location_dialog_bridge_;
+#endif
+
   // Incremented by one for each download, the first available download id is
   // assigned from history database or 1 when history database fails to
   // intialize.
diff --git a/chrome/browser/download/chrome_download_manager_delegate_unittest.cc b/chrome/browser/download/chrome_download_manager_delegate_unittest.cc
index 38a9fdb..237f349 100644
--- a/chrome/browser/download/chrome_download_manager_delegate_unittest.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate_unittest.cc
@@ -1015,9 +1015,10 @@
        DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
        WebContents::AVAILABLE, ExpectInfoBar::NO, ExpectPath::FULL},
 
-      {DownloadConfirmationReason::PREFERENCE,
-       DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
-       WebContents::AVAILABLE, ExpectInfoBar::NO, ExpectPath::FULL},
+      // TODO(jming): Fix test when download location storage is complete.
+      // {DownloadConfirmationReason::PREFERENCE,
+      //  DownloadConfirmationResult::CONTINUE_WITHOUT_CONFIRMATION,
+      //  WebContents::AVAILABLE, ExpectInfoBar::NO, ExpectPath::FULL},
 
       // This case results in an infobar. The logic above dismisses the infobar
       // and counts it for testing. The functionality of the infobar is not
diff --git a/chrome/browser/download/download_item_model_unittest.cc b/chrome/browser/download/download_item_model_unittest.cc
index 7808021..6f8b982 100644
--- a/chrome/browser/download/download_item_model_unittest.cc
+++ b/chrome/browser/download/download_item_model_unittest.cc
@@ -193,13 +193,7 @@
 }
 
 // Note: This test is currently skipped on Android. See http://crbug.com/139398
-// Disabled on Mac for the typesetter migration. http://crbug.com/803354.
-#if defined(OS_MACOSX)
-#define MAYBE_InterruptTooltip DISABLED_InterruptTooltip
-#else
-#define MAYBE_InterruptTooltip InterruptTooltip
-#endif
-TEST_F(DownloadItemModelTest, MAYBE_InterruptTooltip) {
+TEST_F(DownloadItemModelTest, InterruptTooltip) {
   // Test that we have the correct interrupt tooltip for downloads that are in
   // the INTERRUPTED state.
   const struct TestCase {
@@ -298,7 +292,9 @@
     for (const base::string16& line :
          base::SplitString(truncated_tooltip, base::ASCIIToUTF16("\n"),
                            base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY))
-      EXPECT_GE(kSmallTooltipWidth, gfx::GetStringWidth(line, font_list));
+      // Tooltips are always typeset with the native typesetter.
+      EXPECT_GE(kSmallTooltipWidth,
+                gfx::GetStringWidth(line, font_list, gfx::Typesetter::NATIVE));
   }
 }
 
diff --git a/chrome/browser/download/download_prefs.cc b/chrome/browser/download/download_prefs.cc
index c6b31c58..b2e1ef1f 100644
--- a/chrome/browser/download/download_prefs.cc
+++ b/chrome/browser/download/download_prefs.cc
@@ -154,6 +154,9 @@
   }
 
   prompt_for_download_.Init(prefs::kPromptForDownload, prefs);
+#if defined(OS_ANDROID)
+  prompt_for_download_android_.Init(prefs::kPromptForDownloadAndroid, prefs);
+#endif
   download_path_.Init(prefs::kDownloadDefaultDirectory, prefs);
   save_file_path_.Init(prefs::kSaveFileDefaultDirectory, prefs);
   save_file_type_.Init(prefs::kSaveFileType, prefs);
@@ -222,6 +225,9 @@
 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
   registry->RegisterBooleanPref(prefs::kOpenPdfDownloadInSystemReader, false);
 #endif
+#if defined(OS_ANDROID)
+  registry->RegisterBooleanPref(prefs::kPromptForDownloadAndroid, false);
+#endif
 }
 
 base::FilePath DownloadPrefs::GetDefaultDownloadDirectoryForProfile() const {
@@ -294,6 +300,12 @@
   // If the DownloadDirectory policy is set, then |prompt_for_download_| should
   // always be false.
   DCHECK(!download_path_.IsManaged() || !prompt_for_download_.GetValue());
+
+// Return the Android prompt for download only.
+#if defined(OS_ANDROID)
+  return *prompt_for_download_android_;
+#endif
+
   return *prompt_for_download_;
 }
 
diff --git a/chrome/browser/download/download_prefs.h b/chrome/browser/download/download_prefs.h
index 0499d71..dcad015 100644
--- a/chrome/browser/download/download_prefs.h
+++ b/chrome/browser/download/download_prefs.h
@@ -114,6 +114,10 @@
   Profile* profile_;
 
   BooleanPrefMember prompt_for_download_;
+#if defined(OS_ANDROID)
+  BooleanPrefMember prompt_for_download_android_;
+#endif
+
   FilePathPrefMember download_path_;
   FilePathPrefMember save_file_path_;
   IntegerPrefMember save_file_type_;
diff --git a/chrome/browser/download/download_target_determiner_unittest.cc b/chrome/browser/download/download_target_determiner_unittest.cc
index 0d67fb9..4d1592d 100644
--- a/chrome/browser/download/download_target_determiner_unittest.cc
+++ b/chrome/browser/download/download_target_determiner_unittest.cc
@@ -403,6 +403,10 @@
 void DownloadTargetDeterminerTest::SetPromptForDownload(bool prompt) {
   profile()->GetTestingPrefService()->
       SetBoolean(prefs::kPromptForDownload, prompt);
+#if defined(OS_ANDROID)
+  profile()->GetTestingPrefService()->SetBoolean(
+      prefs::kPromptForDownloadAndroid, prompt);
+#endif
 }
 
 base::FilePath DownloadTargetDeterminerTest::GetPathInDownloadDir(
diff --git a/chrome/browser/download/trusted_sources_manager.h b/chrome/browser/download/trusted_sources_manager.h
index 62f584b..62a9aa6 100644
--- a/chrome/browser/download/trusted_sources_manager.h
+++ b/chrome/browser/download/trusted_sources_manager.h
@@ -6,7 +6,7 @@
 #define CHROME_BROWSER_DOWNLOAD_TRUSTED_SOURCES_MANAGER_H_
 
 #include "base/macros.h"
-#include "net/proxy/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 
 class GURL;
 
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
index a4e21df..4f4c9a1 100644
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
@@ -558,10 +558,6 @@
     "extension_context_menu_model.h",
     "extension_cookie_notifier.cc",
     "extension_cookie_notifier.h",
-    "extension_creator.cc",
-    "extension_creator.h",
-    "extension_creator_filter.cc",
-    "extension_creator_filter.h",
     "extension_disabled_ui.cc",
     "extension_disabled_ui.h",
     "extension_error_controller.cc",
@@ -825,7 +821,6 @@
     "//components/bubble",
     "//components/content_settings/core/browser",
     "//components/crx_file",
-    "//components/crx_file:crx_creator",
     "//components/cryptauth",
     "//components/data_reduction_proxy/core/browser",
     "//components/dom_distiller/core",
diff --git a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
index c468f58..fb6ae1da 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
+++ b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc
@@ -15,6 +15,7 @@
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/extensions/api/automation_internal/automation_event_router.h"
 #include "chrome/browser/extensions/api/tabs/tabs_constants.h"
+#include "chrome/browser/extensions/chrome_extension_function_details.h"
 #include "chrome/browser/extensions/extension_tab_util.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
@@ -261,18 +262,19 @@
   content::WebContents* contents = NULL;
   if (params->args.tab_id.get()) {
     int tab_id = *params->args.tab_id;
-    if (!ExtensionTabUtil::GetTabById(tab_id,
-                                      GetProfile(),
-                                      include_incognito(),
-                                      NULL, /* browser out param*/
-                                      NULL, /* tab_strip out param */
-                                      &contents,
-                                      NULL /* tab_index out param */)) {
+    if (!ExtensionTabUtil::GetTabById(
+            tab_id, browser_context(), include_incognito(),
+            NULL, /* browser out param*/
+            NULL, /* tab_strip out param */
+            &contents, NULL /* tab_index out param */)) {
       return RespondNow(
           Error(tabs_constants::kTabNotFoundError, base::IntToString(tab_id)));
     }
   } else {
-    contents = GetCurrentBrowser()->tab_strip_model()->GetActiveWebContents();
+    contents = ChromeExtensionFunctionDetails(this)
+                   .GetCurrentBrowser()
+                   ->tab_strip_model()
+                   ->GetActiveWebContents();
     if (!contents)
       return RespondNow(Error("No active tab"));
   }
diff --git a/chrome/browser/extensions/api/automation_internal/automation_internal_api.h b/chrome/browser/extensions/api/automation_internal/automation_internal_api.h
index ffce688..2971910d 100644
--- a/chrome/browser/extensions/api/automation_internal/automation_internal_api.h
+++ b/chrome/browser/extensions/api/automation_internal/automation_internal_api.h
@@ -7,9 +7,9 @@
 
 #include <string>
 
-#include "chrome/browser/extensions/chrome_extension_function.h"
 #include "content/public/browser/web_contents_observer.h"
 #include "content/public/browser/web_contents_user_data.h"
+#include "extensions/browser/extension_function.h"
 
 namespace extensions {
 
@@ -29,8 +29,7 @@
 namespace extensions {
 
 // Implementation of the chrome.automation API.
-class AutomationInternalEnableTabFunction
-    : public ChromeUIThreadExtensionFunction {
+class AutomationInternalEnableTabFunction : public UIThreadExtensionFunction {
   DECLARE_EXTENSION_FUNCTION("automationInternal.enableTab",
                              AUTOMATIONINTERNAL_ENABLETAB)
  protected:
diff --git a/chrome/browser/extensions/api/commands/command_service.cc b/chrome/browser/extensions/api/commands/command_service.cc
index 3f3661f..75086e7 100644
--- a/chrome/browser/extensions/api/commands/command_service.cc
+++ b/chrome/browser/extensions/api/commands/command_service.cc
@@ -177,16 +177,16 @@
                                              QueryType type,
                                              Command* command,
                                              bool* active) const {
-  return GetExtensionActionCommand(
-      extension_id, type, command, active, BROWSER_ACTION);
+  return GetExtensionActionCommand(extension_id, type, command, active,
+                                   Command::Type::kBrowserAction);
 }
 
 bool CommandService::GetPageActionCommand(const std::string& extension_id,
                                           QueryType type,
                                           Command* command,
                                           bool* active) const {
-  return GetExtensionActionCommand(
-      extension_id, type, command, active, PAGE_ACTION);
+  return GetExtensionActionCommand(extension_id, type, command, active,
+                                   Command::Type::kPageAction);
 }
 
 bool CommandService::GetNamedCommands(const std::string& extension_id,
@@ -403,8 +403,7 @@
 bool CommandService::GetSuggestedExtensionCommand(
     const std::string& extension_id,
     const ui::Accelerator& accelerator,
-    Command* command,
-    ExtensionCommandType* command_type) const {
+    Command* command) const {
   const Extension* extension =
       ExtensionRegistry::Get(profile_)
           ->GetExtensionById(extension_id, ExtensionRegistry::ENABLED);
@@ -419,8 +418,6 @@
       accelerator == prospective_command.accelerator()) {
     if (command)
       *command = prospective_command;
-    if (command_type)
-      *command_type = BROWSER_ACTION;
     return true;
   } else if (GetPageActionCommand(extension_id,
                                   CommandService::SUGGESTED,
@@ -429,8 +426,6 @@
              accelerator == prospective_command.accelerator()) {
     if (command)
       *command = prospective_command;
-    if (command_type)
-      *command_type = PAGE_ACTION;
     return true;
   } else if (GetNamedCommands(extension_id,
                               CommandService::SUGGESTED,
@@ -442,8 +437,6 @@
       if (accelerator == it->second.accelerator()) {
         if (command)
           *command = it->second;
-        if (command_type)
-          *command_type = NAMED;
         return true;
       }
     }
@@ -454,11 +447,10 @@
 bool CommandService::RequestsBookmarkShortcutOverride(
     const Extension* extension) const {
   return RemovesBookmarkShortcut(extension) &&
-      GetSuggestedExtensionCommand(
-          extension->id(),
-          chrome::GetPrimaryChromeAcceleratorForCommandId(IDC_BOOKMARK_PAGE),
-          NULL,
-          NULL);
+         GetSuggestedExtensionCommand(
+             extension->id(),
+             chrome::GetPrimaryChromeAcceleratorForCommandId(IDC_BOOKMARK_PAGE),
+             nullptr);
 }
 
 void CommandService::AddObserver(Observer* observer) {
@@ -858,7 +850,7 @@
     QueryType query_type,
     Command* command,
     bool* active,
-    ExtensionCommandType action_type) const {
+    Command::Type action_type) const {
   const ExtensionSet& extensions =
       ExtensionRegistry::Get(profile_)->enabled_extensions();
   const Extension* extension = extensions.GetByID(extension_id);
@@ -869,13 +861,13 @@
 
   const Command* requested_command = NULL;
   switch (action_type) {
-    case BROWSER_ACTION:
+    case Command::Type::kBrowserAction:
       requested_command = CommandsInfo::GetBrowserActionCommand(extension);
       break;
-    case PAGE_ACTION:
+    case Command::Type::kPageAction:
       requested_command = CommandsInfo::GetPageActionCommand(extension);
       break;
-    case NAMED:
+    case Command::Type::kNamed:
       NOTREACHED();
       return false;
   }
diff --git a/chrome/browser/extensions/api/commands/command_service.h b/chrome/browser/extensions/api/commands/command_service.h
index ebff285..378922a 100644
--- a/chrome/browser/extensions/api/commands/command_service.h
+++ b/chrome/browser/extensions/api/commands/command_service.h
@@ -68,13 +68,6 @@
     ANY_SCOPE,  // All commands, regardless of scope (used when querying).
   };
 
-  // An enum specifying the types of commands that can be used by an extension.
-  enum ExtensionCommandType {
-    NAMED,
-    BROWSER_ACTION,
-    PAGE_ACTION
-  };
-
   class Observer {
    public:
     // Called when an extension command is added.
@@ -186,8 +179,7 @@
   // assigns the type to *|command_type| if non-null.
   bool GetSuggestedExtensionCommand(const std::string& extension_id,
                                     const ui::Accelerator& accelerator,
-                                    Command* command,
-                                    ExtensionCommandType* command_type) const;
+                                    Command* command) const;
 
   // Returns true if |extension| requests to override the bookmark shortcut key
   // and should be allowed to do so.
@@ -265,7 +257,7 @@
                                  QueryType query_type,
                                  Command* command,
                                  bool* active,
-                                 ExtensionCommandType action_type) const;
+                                 Command::Type type) const;
 
   // A weak pointer to the profile we are associated with. Not owned by us.
   Profile* profile_;
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
index 4ff753e..8efe370 100644
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc
@@ -26,7 +26,7 @@
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "extensions/common/error_utils.h"
 #include "net/base/data_url.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace extensions {
 
diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.h b/chrome/browser/extensions/api/proxy/proxy_api_helpers.h
index f572165..4342898 100644
--- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.h
+++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.h
@@ -11,7 +11,7 @@
 #include <string>
 
 #include "components/proxy_config/proxy_prefs.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 class ProxyConfigDictionary;
 
diff --git a/chrome/browser/extensions/bookmark_app_navigation_throttle.cc b/chrome/browser/extensions/bookmark_app_navigation_throttle.cc
index 6621e92..62097f7 100644
--- a/chrome/browser/extensions/bookmark_app_navigation_throttle.cc
+++ b/chrome/browser/extensions/bookmark_app_navigation_throttle.cc
@@ -336,7 +336,7 @@
     // probably redirected immediately, which is a bad user experience.)
     if (last_entry && !last_entry->GetTimestamp().is_null()) {
       UMA_HISTOGRAM_MEDIUM_TIMES(
-          "Extensions.BookmarkApp.OpenAppDeltaSinceLastNavigation",
+          "Extensions.BookmarkApp.TimeBetweenOpenAppAndLastNavigation",
           base::Time::Now() - last_entry->GetTimestamp());
     }
 
diff --git a/chrome/browser/extensions/chrome_test_extension_loader.cc b/chrome/browser/extensions/chrome_test_extension_loader.cc
index d0486336..b9483cd 100644
--- a/chrome/browser/extensions/chrome_test_extension_loader.cc
+++ b/chrome/browser/extensions/chrome_test_extension_loader.cc
@@ -11,13 +11,13 @@
 #include "base/threading/thread_restrictions.h"
 #include "chrome/browser/extensions/chrome_extension_test_notification_observer.h"
 #include "chrome/browser/extensions/crx_installer.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/extension_util.h"
 #include "chrome/browser/extensions/unpacked_installer.h"
 #include "content/public/browser/notification_details.h"
 #include "content/public/browser/notification_source.h"
 #include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
 #include "extensions/browser/extension_util.h"
diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc
index acfb7d2..b9f71e88 100644
--- a/chrome/browser/extensions/extension_browsertest.cc
+++ b/chrome/browser/extensions/extension_browsertest.cc
@@ -26,7 +26,6 @@
 #include "chrome/browser/extensions/chrome_test_extension_loader.h"
 #include "chrome/browser/extensions/component_loader.h"
 #include "chrome/browser/extensions/crx_installer.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/extension_install_prompt.h"
 #include "chrome/browser/extensions/extension_install_prompt_show_params.h"
 #include "chrome/browser/extensions/extension_service.h"
@@ -58,6 +57,7 @@
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/test_utils.h"
 #include "extensions/browser/disable_reason.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_dialog_auto_confirm.h"
 #include "extensions/browser/extension_host.h"
 #include "extensions/browser/extension_prefs.h"
diff --git a/chrome/browser/extensions/extension_override_apitest.cc b/chrome/browser/extensions/extension_override_apitest.cc
index 52f913e5..56b1dac 100644
--- a/chrome/browser/extensions/extension_override_apitest.cc
+++ b/chrome/browser/extensions/extension_override_apitest.cc
@@ -11,7 +11,6 @@
 #include "base/values.h"
 #include "build/build_config.h"
 #include "chrome/browser/extensions/extension_apitest.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/extension_web_ui.h"
 #include "chrome/browser/profiles/profile.h"
@@ -26,6 +25,7 @@
 #include "content/public/browser/render_widget_host_view.h"
 #include "content/public/browser/web_contents.h"
 #include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/common/constants.h"
 #include "extensions/test/extension_test_message_listener.h"
 #include "extensions/test/result_catcher.h"
diff --git a/chrome/browser/extensions/extension_service_test_with_install.cc b/chrome/browser/extensions/extension_service_test_with_install.cc
index 6d3de67..3c2d8bc 100644
--- a/chrome/browser/extensions/extension_service_test_with_install.cc
+++ b/chrome/browser/extensions/extension_service_test_with_install.cc
@@ -8,11 +8,11 @@
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/extensions/chrome_test_extension_loader.h"
 #include "chrome/browser/extensions/crx_installer.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/load_error_reporter.h"
 #include "chrome/browser/profiles/profile.h"
 #include "content/public/browser/notification_service.h"
 #include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/notification_types.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc
index 53ddccae..fd62e94 100644
--- a/chrome/browser/extensions/extension_service_unittest.cc
+++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -47,7 +47,6 @@
 #include "chrome/browser/extensions/component_loader.h"
 #include "chrome/browser/extensions/crx_installer.h"
 #include "chrome/browser/extensions/default_apps.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/extension_error_ui.h"
 #include "chrome/browser/extensions/extension_management_test_util.h"
 #include "chrome/browser/extensions/extension_service_test_base.h"
@@ -103,6 +102,7 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "content/public/test/test_utils.h"
 #include "extensions/browser/disable_reason.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_prefs.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
diff --git a/chrome/browser/extensions/pack_extension_job.cc b/chrome/browser/extensions/pack_extension_job.cc
index 79c4a65..dcee8f3 100644
--- a/chrome/browser/extensions/pack_extension_job.cc
+++ b/chrome/browser/extensions/pack_extension_job.cc
@@ -11,9 +11,9 @@
 #include "base/strings/sys_string_conversions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "base/threading/sequenced_task_runner_handle.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/grit/generated_resources.h"
 #include "content/public/browser/browser_thread.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_file_task_runner.h"
 #include "extensions/common/constants.h"
 #include "ui/base/l10n/l10n_util.h"
diff --git a/chrome/browser/extensions/pack_extension_job.h b/chrome/browser/extensions/pack_extension_job.h
index 62fdc254..b0d5715 100644
--- a/chrome/browser/extensions/pack_extension_job.h
+++ b/chrome/browser/extensions/pack_extension_job.h
@@ -12,7 +12,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/sequenced_task_runner.h"
 #include "base/strings/string16.h"
-#include "chrome/browser/extensions/extension_creator.h"
+#include "extensions/browser/extension_creator.h"
 
 namespace extensions {
 
diff --git a/chrome/browser/extensions/test_extension_dir.cc b/chrome/browser/extensions/test_extension_dir.cc
index 18dc45a..1049a6ef 100644
--- a/chrome/browser/extensions/test_extension_dir.cc
+++ b/chrome/browser/extensions/test_extension_dir.cc
@@ -10,7 +10,7 @@
 #include "base/strings/string_util.h"
 #include "base/test/values_test_util.h"
 #include "base/threading/thread_restrictions.h"
-#include "chrome/browser/extensions/extension_creator.h"
+#include "extensions/browser/extension_creator.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace extensions {
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 720fe1b..cc4a04e 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -288,10 +288,10 @@
     "Google Payments.";
 
 const char kEnableAutofillCreditCardUploadGooglePayBrandingName[] =
-    "Show the Google Pay logo when offering credit card upload";
+    "Enable Google Pay branding when offering credit card upload";
 const char kEnableAutofillCreditCardUploadGooglePayBrandingDescription[] =
-    "If enabled, shows the Google Pay logo and a shorter header message when "
-    "credit card upload to Google Payments is offered.";
+    "If enabled, shows the Google Pay logo, a shorter header message, and a "
+    "narrower dialog when credit card upload to Google Payments is offered.";
 
 const char kEnableAutofillCreditCardUploadSendDetectedValuesName[] =
     "Always send metadata on detected form values for Autofill credit card "
@@ -1727,11 +1727,6 @@
     " when Chrome Home is enabled. These items will open the bottom sheet to"
     " show the desired content.";
 
-const char kChromeHomeOptOutSnackbarName[] = "Chrome Home Opt-out Snackbar";
-const char kChromeHomeOptOutSnackbarDescription[] =
-    "Show a snackbar prompting users to take a survey the first time they"
-    " opt-out of Chrome Home";
-
 const char kChromeHomePersistentIphName[] = "Chrome Home Persistent Iph";
 const char kChromeHomePersistentIphDescription[] =
     "Wait to dismiss the Chrome Home IPH until the user inteacts with the "
@@ -1742,10 +1737,6 @@
 const char kChromeHomePersonalizedOmniboxSuggestionsDescription[] =
     "Enable personalized omnibox suggestions on focus for Chrome Home.";
 
-const char kChromeHomePromoName[] = "Chrome Home Promo";
-const char kChromeHomePromoDescription[] =
-    "Enable showing the opt-in/out Chrome Home promo.";
-
 const char kChromeHomePullToRefreshIphAtTopName[] =
     "Chrome Home Pull-To-Refresh Iph At Top";
 const char kChromeHomePullToRefreshIphAtTopDescription[] =
@@ -1762,6 +1753,10 @@
 const char kChromeHomeSwipeLogicRestrictArea[] = "Restrict swipable area";
 const char kChromeHomeSwipeLogicVelocity[] = "Velocity suppression model";
 
+const char kChromeModernDesignName[] = "Chrome Modern Design";
+const char kChromeModernDesignDescription[] =
+    "Enable modern design for Chrome.";
+
 const char kChromeMemexName[] = "Chrome Memex";
 const char kChromeMemexDescription[] =
     "Enables Chrome Memex homepage on Android. Restricted to opted-in "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 5d61047..3c52bac 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -1056,18 +1056,12 @@
 extern const char kChromeHomeMenuItemsName[];
 extern const char kChromeHomeMenuItemsDescription[];
 
-extern const char kChromeHomeOptOutSnackbarName[];
-extern const char kChromeHomeOptOutSnackbarDescription[];
-
 extern const char kChromeHomePersistentIphName[];
 extern const char kChromeHomePersistentIphDescription[];
 
 extern const char kChromeHomePersonalizedOmniboxSuggestionsName[];
 extern const char kChromeHomePersonalizedOmniboxSuggestionsDescription[];
 
-extern const char kChromeHomePromoName[];
-extern const char kChromeHomePromoDescription[];
-
 extern const char kChromeHomePullToRefreshIphAtTopName[];
 extern const char kChromeHomePullToRefreshIphAtTopDescription[];
 
@@ -1082,6 +1076,9 @@
 extern const char kChromeHomeName[];
 extern const char kChromeHomeDescription[];
 
+extern const char kChromeModernDesignName[];
+extern const char kChromeModernDesignDescription[];
+
 extern const char kChromeMemexName[];
 extern const char kChromeMemexDescription[];
 
diff --git a/chrome/browser/io_thread.cc b/chrome/browser/io_thread.cc
index e22c4914..a9bcdf0 100644
--- a/chrome/browser/io_thread.cc
+++ b/chrome/browser/io_thread.cc
@@ -88,9 +88,9 @@
 #include "net/net_features.h"
 #include "net/nqe/external_estimate_provider.h"
 #include "net/nqe/network_quality_estimator_params.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/quic_utils_chromium.h"
 #include "net/socket/ssl_client_socket.h"
 #include "net/url_request/url_fetcher.h"
diff --git a/chrome/browser/net/firefox_proxy_settings.cc b/chrome/browser/net/firefox_proxy_settings.cc
index 7847f14..df2f9f4 100644
--- a/chrome/browser/net/firefox_proxy_settings.cc
+++ b/chrome/browser/net/firefox_proxy_settings.cc
@@ -14,7 +14,7 @@
 #include "base/strings/string_util.h"
 #include "base/values.h"
 #include "chrome/common/importer/firefox_importer_utils.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace {
 
diff --git a/chrome/browser/net/firefox_proxy_settings_unittest.cc b/chrome/browser/net/firefox_proxy_settings_unittest.cc
index f1740e9..f3d27d9d 100644
--- a/chrome/browser/net/firefox_proxy_settings_unittest.cc
+++ b/chrome/browser/net/firefox_proxy_settings_unittest.cc
@@ -7,7 +7,7 @@
 #include "base/files/file_path.h"
 #include "base/path_service.h"
 #include "chrome/common/chrome_paths.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 class FirefoxProxySettingsTest : public testing::Test {
diff --git a/chrome/browser/net/predictor.cc b/chrome/browser/net/predictor.cc
index 3d44b80..51a3b16 100644
--- a/chrome/browser/net/predictor.cc
+++ b/chrome/browser/net/predictor.cc
@@ -48,8 +48,8 @@
 #include "net/base/net_errors.h"
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/ssl_config_service.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
diff --git a/chrome/browser/net/predictor_unittest.cc b/chrome/browser/net/predictor_unittest.cc
index fed16f3..5b7dff6 100644
--- a/chrome/browser/net/predictor_unittest.cc
+++ b/chrome/browser/net/predictor_unittest.cc
@@ -27,8 +27,8 @@
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 
diff --git a/chrome/browser/net/proxy_config_monitor.h b/chrome/browser/net/proxy_config_monitor.h
index a7a3a9e..c063a641 100644
--- a/chrome/browser/net/proxy_config_monitor.h
+++ b/chrome/browser/net/proxy_config_monitor.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
 #include "mojo/public/cpp/bindings/interface_ptr_set.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "services/network/public/interfaces/network_service.mojom.h"
 #include "services/network/public/interfaces/proxy_config.mojom.h"
 
diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/proxy_service_factory.cc
index 22ce598..59d78ba 100644
--- a/chrome/browser/net/proxy_service_factory.cc
+++ b/chrome/browser/net/proxy_service_factory.cc
@@ -7,8 +7,8 @@
 #include "build/build_config.h"
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "content/public/browser/browser_thread.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 #if defined(OS_CHROMEOS)
 #include "chromeos/network/proxy/proxy_config_service_impl.h"
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc
index c6ccc0f7..5d8c0449 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc
+++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_chrome_settings.cc
@@ -34,9 +34,9 @@
 #include "components/proxy_config/proxy_config_pref_names.h"
 #include "components/proxy_config/proxy_prefs.h"
 #include "net/base/host_port_pair.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_list.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "net/url_request/url_request_context_getter.h"
 
 namespace {
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
index 99852fd..db0bd886 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
+++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_android.cc
@@ -29,8 +29,8 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
 #include "jni/DataReductionProxySettings_jni.h"
+#include "net/base/proxy_server.h"
 #include "net/base/url_util.h"
-#include "net/proxy/proxy_server.h"
 #include "url/gurl.h"
 
 using base::android::ConvertUTF8ToJavaString;
diff --git a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest_android.cc b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest_android.cc
index 88e511d2..435df3e 100644
--- a/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest_android.cc
+++ b/chrome/browser/net/spdyproxy/data_reduction_proxy_settings_unittest_android.cc
@@ -32,7 +32,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
 #include "components/prefs/pref_service.h"
 #include "components/proxy_config/proxy_prefs.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/url_request/url_request_context_storage.h"
 #include "net/url_request/url_request_test_util.h"
diff --git a/chrome/browser/notifications/native_notification_display_service.cc b/chrome/browser/notifications/native_notification_display_service.cc
deleted file mode 100644
index f235c09..0000000
--- a/chrome/browser/notifications/native_notification_display_service.cc
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/notifications/native_notification_display_service.h"
-
-#include <utility>
-
-#include "base/bind.h"
-#include "base/metrics/histogram_macros.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/notifications/message_center_display_service.h"
-#include "chrome/browser/notifications/notification_handler.h"
-#include "chrome/browser/notifications/notification_platform_bridge.h"
-#include "chrome/browser/profiles/profile.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/notification_event_dispatcher.h"
-#include "ui/message_center/notification.h"
-#include "ui/message_center/notification_delegate.h"
-
-namespace {
-
-std::string GetProfileId(Profile* profile) {
-#if defined(OS_WIN)
-  std::string profile_id =
-      base::WideToUTF8(profile->GetPath().BaseName().value());
-#elif defined(OS_POSIX)
-  std::string profile_id = profile->GetPath().BaseName().value();
-#endif
-  return profile_id;
-}
-
-}  // namespace
-
-NativeNotificationDisplayService::NativeNotificationDisplayService(
-    Profile* profile,
-    NotificationPlatformBridge* notification_bridge)
-    : NotificationDisplayService(profile),
-      profile_(profile),
-      notification_bridge_(notification_bridge),
-      notification_bridge_ready_(false),
-      weak_factory_(this) {
-  DCHECK(profile_);
-  DCHECK(notification_bridge_);
-
-  notification_bridge->SetReadyCallback(base::BindOnce(
-      &NativeNotificationDisplayService::OnNotificationPlatformBridgeReady,
-      weak_factory_.GetWeakPtr()));
-}
-
-NativeNotificationDisplayService::~NativeNotificationDisplayService() = default;
-
-void NativeNotificationDisplayService::OnNotificationPlatformBridgeReady(
-    bool success) {
-  UMA_HISTOGRAM_BOOLEAN("Notifications.UsingNativeNotificationCenter", success);
-  notification_bridge_ready_ = success;
-
-  // TODO(estade): this shouldn't be necessary in the succesful case, but some
-  // notification bridges can't handle TRANSIENT notifications and still have to
-  // fall back to the MessageCenter.
-  message_center_display_service_ =
-      std::make_unique<MessageCenterDisplayService>(profile_);
-
-  while (!actions_.empty()) {
-    std::move(actions_.front()).Run();
-    actions_.pop();
-  }
-}
-
-void NativeNotificationDisplayService::Display(
-    NotificationHandler::Type notification_type,
-    const message_center::Notification& notification,
-    std::unique_ptr<NotificationCommon::Metadata> metadata) {
-  // TODO(estade): in the future, the reverse should also be true: a
-  // non-TRANSIENT type implies no delegate.
-  if (notification_type == NotificationHandler::Type::TRANSIENT)
-    DCHECK(notification.delegate());
-
-  if (ShouldUsePlatformBridge(notification_type)) {
-    notification_bridge_->Display(notification_type, GetProfileId(profile_),
-                                  profile_->IsOffTheRecord(), notification,
-                                  std::move(metadata));
-    NotificationHandler* handler = GetNotificationHandler(notification_type);
-    if (handler)
-      handler->OnShow(profile_, notification.id());
-  } else if (message_center_display_service_) {
-    message_center_display_service_->Display(notification_type, notification,
-                                             std::move(metadata));
-  } else {
-    actions_.push(base::BindOnce(&NativeNotificationDisplayService::Display,
-                                 weak_factory_.GetWeakPtr(), notification_type,
-                                 notification, std::move(metadata)));
-  }
-}
-
-void NativeNotificationDisplayService::Close(
-    NotificationHandler::Type notification_type,
-    const std::string& notification_id) {
-  if (ShouldUsePlatformBridge(notification_type)) {
-    notification_bridge_->Close(GetProfileId(profile_), notification_id);
-  } else if (message_center_display_service_) {
-    message_center_display_service_->Close(notification_type, notification_id);
-  } else {
-    actions_.push(base::BindOnce(&NativeNotificationDisplayService::Close,
-                                 weak_factory_.GetWeakPtr(), notification_type,
-                                 notification_id));
-  }
-}
-
-void NativeNotificationDisplayService::GetDisplayed(
-    const DisplayedNotificationsCallback& callback) {
-  if (notification_bridge_ready_) {
-    return notification_bridge_->GetDisplayed(
-        GetProfileId(profile_), profile_->IsOffTheRecord(), callback);
-  } else if (message_center_display_service_) {
-    message_center_display_service_->GetDisplayed(callback);
-  } else {
-    actions_.push(
-        base::BindOnce(&NativeNotificationDisplayService::GetDisplayed,
-                       weak_factory_.GetWeakPtr(), callback));
-  }
-}
-
-bool NativeNotificationDisplayService::ShouldUsePlatformBridge(
-    NotificationHandler::Type notification_type) {
-  return notification_bridge_ready_ &&
-         NotificationPlatformBridge::CanHandleType(notification_type);
-}
diff --git a/chrome/browser/notifications/native_notification_display_service.h b/chrome/browser/notifications/native_notification_display_service.h
deleted file mode 100644
index 231e5f2..0000000
--- a/chrome/browser/notifications/native_notification_display_service.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_NOTIFICATIONS_NATIVE_NOTIFICATION_DISPLAY_SERVICE_H_
-#define CHROME_BROWSER_NOTIFICATIONS_NATIVE_NOTIFICATION_DISPLAY_SERVICE_H_
-
-#include <map>
-#include <memory>
-#include <set>
-#include <string>
-
-#include "base/callback.h"
-#include "base/containers/queue.h"
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "chrome/browser/notifications/notification_common.h"
-#include "chrome/browser/notifications/notification_display_service.h"
-
-class MessageCenterDisplayService;
-class NotificationPlatformBridge;
-class Profile;
-
-namespace message_center {
-class Notification;
-}
-
-// A class to display and interact with notifications in native notification
-// centers on platforms that support it.
-class NativeNotificationDisplayService : public NotificationDisplayService {
- public:
-  NativeNotificationDisplayService(
-      Profile* profile,
-      NotificationPlatformBridge* notification_bridge);
-  ~NativeNotificationDisplayService() override;
-
-  // NotificationDisplayService implementation.
-  void Display(NotificationHandler::Type notification_type,
-               const message_center::Notification& notification,
-               std::unique_ptr<NotificationCommon::Metadata> metadata) override;
-  void Close(NotificationHandler::Type notification_type,
-             const std::string& notification_id) override;
-  void GetDisplayed(const DisplayedNotificationsCallback& callback) override;
-
- private:
-  // Called by |notification_bridge_| when it is finished
-  // initializing.  |success| indicates it is ready to be used.
-  void OnNotificationPlatformBridgeReady(bool success);
-
-  bool ShouldUsePlatformBridge(NotificationHandler::Type notification_type);
-
-  Profile* profile_;
-
-  NotificationPlatformBridge* notification_bridge_;
-  // Indicates if |notification_bridge_| is ready to be used.
-  bool notification_bridge_ready_;
-
-  // MessageCenterDisplayService to fallback on if initialization of
-  // |notification_bridge_| failed.
-  std::unique_ptr<MessageCenterDisplayService> message_center_display_service_;
-
-  // Tasks that need to be run once we have the initialization status
-  // for |notification_bridge_|.
-  base::queue<base::OnceClosure> actions_;
-
-  base::WeakPtrFactory<NativeNotificationDisplayService> weak_factory_;
-
-  DISALLOW_COPY_AND_ASSIGN(NativeNotificationDisplayService);
-};
-
-#endif  // CHROME_BROWSER_NOTIFICATIONS_NATIVE_NOTIFICATION_DISPLAY_SERVICE_H_
diff --git a/chrome/browser/offline_pages/offline_page_request_job_unittest.cc b/chrome/browser/offline_pages/offline_page_request_job_unittest.cc
index ad71064..c5b9108 100644
--- a/chrome/browser/offline_pages/offline_page_request_job_unittest.cc
+++ b/chrome/browser/offline_pages/offline_page_request_job_unittest.cc
@@ -312,14 +312,14 @@
   base::FilePath test_data_dir_path;
   PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir_path);
   base::FilePath private_archives_dir =
-      test_data_dir_path.AppendASCII("offline_pages");
-  base::FilePath public_archives_dir(FILE_PATH_LITERAL("/sdcard/Download"));
+      test_data_dir_path.AppendASCII(kPrivateOfflineFileDir);
+  base::FilePath public_archives_dir =
+      test_data_dir_path.AppendASCII(kPublicOfflineFileDir);
 
-  // We're not interested in saving any temporary file in this test.
-  base::FilePath temporary_archives_dir;
-
+  // Since we're not saving page into temporary dir, it's set the same as the
+  // private dir.
   std::unique_ptr<ArchiveManager> archive_manager(
-      new ArchiveManager(temporary_archives_dir, private_archives_dir,
+      new ArchiveManager(private_archives_dir, private_archives_dir,
                          public_archives_dir, task_runner));
   std::unique_ptr<base::Clock> clock(new base::DefaultClock);
 
@@ -485,7 +485,6 @@
   // Set up the factory for testing.
   OfflinePageModelFactory::GetInstance()->SetTestingFactoryAndUse(
       profile(), BuildTestOfflinePageModel);
-  RunUntilIdle();
 
   OfflinePageModelTaskified* model = static_cast<OfflinePageModelTaskified*>(
       OfflinePageModelFactory::GetForBrowserContext(profile()));
@@ -501,6 +500,9 @@
   // metadata already written to the store.
   model->SetSkipClearingOriginalUrlForTesting();
 
+  // Initialize OfflinePageModel.
+  RunUntilIdle();
+
   // All offline pages being created below will point to real archive files
   // residing in test data directory.
   base::FilePath test_data_dir_path;
diff --git a/chrome/browser/prefs/chrome_command_line_pref_store_proxy_unittest.cc b/chrome/browser/prefs/chrome_command_line_pref_store_proxy_unittest.cc
index 021542e..95b6307 100644
--- a/chrome/browser/prefs/chrome_command_line_pref_store_proxy_unittest.cc
+++ b/chrome/browser/prefs/chrome_command_line_pref_store_proxy_unittest.cc
@@ -16,7 +16,7 @@
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "components/sync_preferences/pref_service_mock_factory.h"
 #include "content/public/common/content_switches.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 #include "url/gurl.h"
 
 namespace {
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc
index 92e7ff8..6473503 100644
--- a/chrome/browser/prerender/prerender_browsertest.cc
+++ b/chrome/browser/prerender/prerender_browsertest.cc
@@ -156,9 +156,6 @@
 using prerender::test_utils::TestPrerenderContents;
 using task_manager::browsertest_util::WaitForTaskManagerRows;
 
-// crbug.com/708158
-#if !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER)
-
 // Prerender tests work as follows:
 //
 // A page with a prefetch link to the test page is loaded.  Once prerendered,
@@ -1391,15 +1388,9 @@
   NavigateToDestURL();
 }
 
-// crbug.com/708158
-#if defined(OS_MACOSX) && defined(ADDRESS_SANITIZER)
-#define MAYBE_PrerenderNoCommitNoSwap DISABLED_PrerenderNoCommitNoSwap
-#else
-#define MAYBE_PrerenderNoCommitNoSwap PrerenderNoCommitNoSwap
-#endif
 // Checks that the prerendering of a page is canceled correctly if we try to
 // swap it in before it commits.
-IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_PrerenderNoCommitNoSwap) {
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoCommitNoSwap) {
   // Navigate to a page that triggers a prerender for a URL that never commits.
   const GURL kNoCommitUrl("http://never-respond.example.com");
   base::FilePath file(GetTestPath("prerender_page.html"));
@@ -1418,14 +1409,8 @@
   NavigateToDestURLWithDisposition(WindowOpenDisposition::CURRENT_TAB, false);
 }
 
-// crbug.com/708158
-#if defined(OS_MACOSX) && defined(ADDRESS_SANITIZER)
-#define MAYBE_PrerenderNoCommitNoSwap2 DISABLED_PrerenderNoCommitNoSwap2
-#else
-#define MAYBE_PrerenderNoCommitNoSwap2 PrerenderNoCommitNoSwap2
-#endif
 // Checks that client redirects don't add alias URLs until after they commit.
-IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, MAYBE_PrerenderNoCommitNoSwap2) {
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoCommitNoSwap2) {
   // Navigate to a page that then navigates to a URL that never commits.
   const GURL kNoCommitUrl("http://never-respond.example.com");
   base::FilePath file(GetTestPath("prerender_page.html"));
@@ -3874,5 +3859,3 @@
 #endif  // BUILDFLAG(ENABLE_NACL)
 
 }  // namespace prerender
-
-#endif  // !defined(OS_MACOSX) || !defined(ADDRESS_SANITIZER)
diff --git a/chrome/browser/prerender/prerender_config.cc b/chrome/browser/prerender/prerender_config.cc
index 7f43785..a41daa6 100644
--- a/chrome/browser/prerender/prerender_config.cc
+++ b/chrome/browser/prerender/prerender_config.cc
@@ -4,18 +4,30 @@
 
 #include "chrome/browser/prerender/prerender_config.h"
 
+namespace {
+
+// The test_timeouts.cc defines general timeout multipliers for Asan builds.
+// Increase the timeout similarly here.
+#if defined(ADDRESS_SANITIZER)
+constexpr int kTimeToLiveMinutes = 10;
+#else
+constexpr int kTimeToLiveMinutes = 5;
+#endif
+
+}  // namespace
+
 namespace prerender {
 
-Config::Config() : max_bytes(150 * 1024 * 1024),
-                   max_link_concurrency(1),
-                   max_link_concurrency_per_launcher(1),
-                   rate_limit_enabled(true),
-                   max_wait_to_launch(base::TimeDelta::FromMinutes(4)),
-                   time_to_live(base::TimeDelta::FromMinutes(5)),
-                   abandon_time_to_live(base::TimeDelta::FromSeconds(3)),
-                   default_tab_bounds(640, 480),
-                   is_overriding_user_agent(false) {
-}
+Config::Config()
+    : max_bytes(150 * 1024 * 1024),
+      max_link_concurrency(1),
+      max_link_concurrency_per_launcher(1),
+      rate_limit_enabled(true),
+      max_wait_to_launch(base::TimeDelta::FromMinutes(4)),
+      time_to_live(base::TimeDelta::FromMinutes(kTimeToLiveMinutes)),
+      abandon_time_to_live(base::TimeDelta::FromSeconds(3)),
+      default_tab_bounds(640, 480),
+      is_overriding_user_agent(false) {}
 
 Config::~Config() { }
 
diff --git a/chrome/browser/prerender/prerender_link_manager.cc b/chrome/browser/prerender/prerender_link_manager.cc
index ad327ada..4caa9bc6 100644
--- a/chrome/browser/prerender/prerender_link_manager.cc
+++ b/chrome/browser/prerender/prerender_link_manager.cc
@@ -85,20 +85,13 @@
   explicit PendingPrerenderManager(PrerenderLinkManager* link_manager)
       : link_manager_(link_manager) {}
 
-  ~PendingPrerenderManager() override {
-    DCHECK(observed_launchers_.empty());
-    for (std::set<PrerenderContents*>::iterator i = observed_launchers_.begin();
-         i != observed_launchers_.end(); ++i) {
-      (*i)->RemoveObserver(this);
-    }
-  }
+  ~PendingPrerenderManager() override { CHECK(observed_launchers_.empty()); }
 
   void ObserveLauncher(PrerenderContents* launcher) {
     DCHECK_EQ(FINAL_STATUS_MAX, launcher->final_status());
-    if (observed_launchers_.find(launcher) != observed_launchers_.end())
-      return;
-    observed_launchers_.insert(launcher);
-    launcher->AddObserver(this);
+    bool inserted = observed_launchers_.insert(launcher).second;
+    if (inserted)
+      launcher->AddObserver(this);
   }
 
   void OnPrerenderStart(PrerenderContents* launcher) override {}
@@ -126,17 +119,17 @@
 PrerenderLinkManager::PrerenderLinkManager(PrerenderManager* manager)
     : has_shutdown_(false),
       manager_(manager),
-      pending_prerender_manager_(new PendingPrerenderManager(this)) {}
+      pending_prerender_manager_(
+          std::make_unique<PendingPrerenderManager>(this)) {}
 
 PrerenderLinkManager::~PrerenderLinkManager() {
-  for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
-       i != prerenders_.end(); ++i) {
-    if (i->handle) {
-      DCHECK(!i->handle->IsPrerendering())
+  for (auto& prerender : prerenders_) {
+    if (prerender.handle) {
+      DCHECK(!prerender.handle->IsPrerendering())
           << "All running prerenders should stop at the same time as the "
           << "PrerenderManager.";
-      delete i->handle;
-      i->handle = 0;
+      delete prerender.handle;
+      prerender.handle = nullptr;
     }
   }
 }
@@ -148,15 +141,14 @@
                                           const content::Referrer& referrer,
                                           const gfx::Size& size,
                                           int render_view_route_id) {
-  DCHECK_EQ(static_cast<LinkPrerender*>(NULL),
-            FindByLauncherChildIdAndPrerenderId(launcher_child_id,
-                                                prerender_id));
+  DCHECK_EQ(nullptr, FindByLauncherChildIdAndPrerenderId(launcher_child_id,
+                                                         prerender_id));
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   content::RenderViewHost* rvh =
       content::RenderViewHost::FromID(launcher_child_id, render_view_route_id);
   content::WebContents* web_contents =
-      rvh ? content::WebContents::FromRenderViewHost(rvh) : NULL;
+      rvh ? content::WebContents::FromRenderViewHost(rvh) : nullptr;
   // Guests inside <webview> do not support cross-process navigation and so we
   // do not allow guests to prerender content.
   if (guest_view::GuestViewBase::IsGuest(web_contents))
@@ -253,14 +245,14 @@
       render_view_route_id(render_view_route_id),
       creation_time(creation_time),
       deferred_launcher(deferred_launcher),
-      handle(NULL),
+      handle(nullptr),
       has_been_abandoned(false) {}
 
 PrerenderLinkManager::LinkPrerender::LinkPrerender(const LinkPrerender& other) =
     default;
 
 PrerenderLinkManager::LinkPrerender::~LinkPrerender() {
-  DCHECK_EQ(static_cast<PrerenderHandle*>(NULL), handle)
+  DCHECK_EQ(nullptr, handle)
       << "The PrerenderHandle should be destroyed before its Prerender.";
 }
 
@@ -269,13 +261,11 @@
 }
 
 size_t PrerenderLinkManager::CountRunningPrerenders() const {
-  size_t retval = 0;
-  for (std::list<LinkPrerender>::const_iterator i = prerenders_.begin();
-       i != prerenders_.end(); ++i) {
-    if (i->handle && i->handle->IsPrerendering())
-      ++retval;
-  }
-  return retval;
+  return std::count_if(prerenders_.begin(), prerenders_.end(),
+                       [](const LinkPrerender& prerender) {
+                         return prerender.handle &&
+                                prerender.handle->IsPrerendering();
+                       });
 }
 
 void PrerenderLinkManager::StartPrerenders() {
@@ -293,20 +283,21 @@
   // also per launcher.
   for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
        i != prerenders_.end(); ++i) {
+    LinkPrerender& prerender = *i;
     // Skip prerenders launched by a prerender.
-    if (i->deferred_launcher)
+    if (prerender.deferred_launcher)
       continue;
-    if (!i->handle) {
+    if (!prerender.handle) {
       pending_prerenders.push_back(i);
     } else {
       ++total_started_prerender_count;
-      if (i->has_been_abandoned) {
-        abandoned_prerenders.push_back(&(*i));
+      if (prerender.has_been_abandoned) {
+        abandoned_prerenders.push_back(&prerender);
       } else {
         // We do not count abandoned prerenders towards their launcher, since it
         // has already navigated on to another page.
         std::pair<int, int> launcher_and_render_view_route(
-            i->launcher_child_id, i->render_view_route_id);
+            prerender.launcher_child_id, prerender.render_view_route_id);
         running_launcher_and_render_view_routes.insert(
             launcher_and_render_view_route);
         DCHECK_GE(manager_->config().max_link_concurrency_per_launcher,
@@ -315,8 +306,9 @@
       }
     }
 
-    DCHECK_EQ(&(*i), FindByLauncherChildIdAndPrerenderId(i->launcher_child_id,
-                                                         i->prerender_id));
+    DCHECK_EQ(&prerender,
+              FindByLauncherChildIdAndPrerenderId(prerender.launcher_child_id,
+                                                  prerender.prerender_id));
   }
   DCHECK_LE(abandoned_prerenders.size(), total_started_prerender_count);
   DCHECK_GE(manager_->config().max_link_concurrency,
@@ -329,15 +321,16 @@
   for (std::list<std::list<LinkPrerender>::iterator>::const_iterator
            i = pending_prerenders.begin(), end = pending_prerenders.end();
        i != end; ++i) {
-    TimeDelta prerender_age = now - (*i)->creation_time;
+    const std::list<LinkPrerender>::iterator& it = *i;
+    TimeDelta prerender_age = now - it->creation_time;
     if (prerender_age >= manager_->config().max_wait_to_launch) {
       // This prerender waited too long in the queue before launching.
-      prerenders_.erase(*i);
+      prerenders_.erase(it);
       continue;
     }
 
     std::pair<int, int> launcher_and_render_view_route(
-        (*i)->launcher_child_id, (*i)->render_view_route_id);
+        it->launcher_child_id, it->render_view_route_id);
     if (manager_->config().max_link_concurrency_per_launcher <=
         running_launcher_and_render_view_routes.count(
             launcher_and_render_view_route)) {
@@ -348,44 +341,43 @@
     if (total_started_prerender_count >=
             manager_->config().max_link_concurrency ||
         total_started_prerender_count >= prerenders_.size()) {
-      // The system is already at its prerender concurrency limit. Can we kill
-      // an abandoned prerender to make room?
-      if (!abandoned_prerenders.empty()) {
-        CancelPrerender(abandoned_prerenders.front());
-        --total_started_prerender_count;
-        abandoned_prerenders.pop_front();
-      } else {
+      // The system is already at its prerender concurrency limit. Try removing
+      // an abandoned prerender, if one exists, to make room.
+      if (abandoned_prerenders.empty())
         return;
-      }
+
+      CancelPrerender(abandoned_prerenders.front());
+      --total_started_prerender_count;
+      abandoned_prerenders.pop_front();
     }
 
-    if (!(PrerenderRelTypePrerender & (*i)->rel_types)) {
-      prerenders_.erase(*i);
+    if (!(PrerenderRelTypePrerender & it->rel_types)) {
+      prerenders_.erase(it);
       continue;
     }
 
     std::unique_ptr<PrerenderHandle> handle =
         manager_->AddPrerenderFromLinkRelPrerender(
-            (*i)->launcher_child_id, (*i)->render_view_route_id, (*i)->url,
-            (*i)->rel_types, (*i)->referrer, (*i)->size);
+            it->launcher_child_id, it->render_view_route_id, it->url,
+            it->rel_types, it->referrer, it->size);
     if (!handle) {
       // This prerender couldn't be launched, it's gone.
-      prerenders_.erase(*i);
+      prerenders_.erase(it);
       continue;
     }
 
     if (handle->IsPrerendering()) {
       // We have successfully started a new prerender.
-      (*i)->handle = handle.release();
+      it->handle = handle.release();
       ++total_started_prerender_count;
-      (*i)->handle->SetObserver(this);
-      OnPrerenderStart((*i)->handle);
-      RecordLinkManagerStarting((*i)->rel_types);
+      it->handle->SetObserver(this);
+      OnPrerenderStart(it->handle);
+      RecordLinkManagerStarting(it->rel_types);
       running_launcher_and_render_view_routes.insert(
           launcher_and_render_view_route);
     } else {
       content::RenderProcessHost* render_process_host =
-          content::RenderProcessHost::FromID((*i)->launcher_child_id);
+          content::RenderProcessHost::FromID(it->launcher_child_id);
       if (!render_process_host)
         return;
 
@@ -394,9 +386,9 @@
       if (channel) {
         chrome::mojom::PrerenderDispatcherAssociatedPtr prerender_dispatcher;
         channel->GetRemoteAssociatedInterface(&prerender_dispatcher);
-        prerender_dispatcher->PrerenderStop((*i)->prerender_id);
+        prerender_dispatcher->PrerenderStop(it->prerender_id);
       }
-      prerenders_.erase(*i);
+      prerenders_.erase(it);
     }
   }
 }
@@ -404,33 +396,32 @@
 PrerenderLinkManager::LinkPrerender*
 PrerenderLinkManager::FindByLauncherChildIdAndPrerenderId(int launcher_child_id,
                                                           int prerender_id) {
-  for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
-       i != prerenders_.end(); ++i) {
-    if (launcher_child_id == i->launcher_child_id &&
-        prerender_id == i->prerender_id) {
-      return &(*i);
+  for (auto& prerender : prerenders_) {
+    if (prerender.launcher_child_id == launcher_child_id &&
+        prerender.prerender_id == prerender_id) {
+      return &prerender;
     }
   }
-  return NULL;
+  return nullptr;
 }
 
 PrerenderLinkManager::LinkPrerender*
 PrerenderLinkManager::FindByPrerenderHandle(PrerenderHandle* prerender_handle) {
   DCHECK(prerender_handle);
-  for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
-       i != prerenders_.end(); ++i) {
-    if (prerender_handle == i->handle)
-      return &(*i);
+  for (auto& prerender : prerenders_) {
+    if (prerender.handle == prerender_handle)
+      return &prerender;
   }
-  return NULL;
+  return nullptr;
 }
 
 void PrerenderLinkManager::RemovePrerender(LinkPrerender* prerender) {
   for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
        i != prerenders_.end(); ++i) {
-    if (&(*i) == prerender) {
-      std::unique_ptr<PrerenderHandle> own_handle(i->handle);
-      i->handle = NULL;
+    LinkPrerender& current_prerender = *i;
+    if (&current_prerender == prerender) {
+      std::unique_ptr<PrerenderHandle> own_handle(prerender->handle);
+      prerender->handle = nullptr;
       prerenders_.erase(i);
       return;
     }
@@ -441,9 +432,10 @@
 void PrerenderLinkManager::CancelPrerender(LinkPrerender* prerender) {
   for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
        i != prerenders_.end(); ++i) {
-    if (&(*i) == prerender) {
-      std::unique_ptr<PrerenderHandle> own_handle(i->handle);
-      i->handle = NULL;
+    LinkPrerender& current_prerender = *i;
+    if (&current_prerender == prerender) {
+      std::unique_ptr<PrerenderHandle> own_handle(prerender->handle);
+      prerender->handle = nullptr;
       prerenders_.erase(i);
       if (own_handle)
         own_handle->OnCancel();
@@ -455,10 +447,9 @@
 
 void PrerenderLinkManager::StartPendingPrerendersForLauncher(
     PrerenderContents* launcher) {
-  for (std::list<LinkPrerender>::iterator i = prerenders_.begin();
-       i != prerenders_.end(); ++i) {
-    if (i->deferred_launcher == launcher)
-      i->deferred_launcher = NULL;
+  for (auto& prerender : prerenders_) {
+    if (prerender.deferred_launcher == launcher)
+      prerender.deferred_launcher = nullptr;
   }
   StartPrerenders();
 }
diff --git a/chrome/browser/prerender/prerender_link_manager.h b/chrome/browser/prerender/prerender_link_manager.h
index d7e3d9b..02ea701 100644
--- a/chrome/browser/prerender/prerender_link_manager.h
+++ b/chrome/browser/prerender/prerender_link_manager.h
@@ -9,6 +9,7 @@
 #include <stdint.h>
 
 #include <list>
+#include <memory>
 
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
@@ -154,7 +155,7 @@
 
   bool has_shutdown_;
 
-  PrerenderManager* manager_;
+  PrerenderManager* const manager_;
 
   // All prerenders known to this PrerenderLinkManager. Insertions are always
   // made at the back, so the oldest prerender is at the front, and the youngest
diff --git a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
index 75a9cf1..69c34d4 100644
--- a/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
+++ b/chrome/browser/renderer_host/site_per_process_text_input_browsertest.cc
@@ -1281,8 +1281,10 @@
 
   // ContentBrowserClient overrides.
   void RenderProcessWillLaunch(
-      content::RenderProcessHost* process_host) override {
-    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host);
+      content::RenderProcessHost* process_host,
+      service_manager::mojom::ServiceRequest* service_request) override {
+    ChromeContentBrowserClient::RenderProcessWillLaunch(process_host,
+                                                        service_request);
     filters_.push_back(
         new content::TestTextInputClientMessageFilter(process_host));
   }
diff --git a/chrome/browser/resources/about_voicesearch.html b/chrome/browser/resources/about_voicesearch.html
deleted file mode 100644
index 93a43dc..0000000
--- a/chrome/browser/resources/about_voicesearch.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!doctype html>
-<html i18n-values="dir:textdirection;lang:language">
-<head>
-<meta charset="utf-8">
-<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
-<style>
-.key {
-  font-weight: bold;
-}
-
-.value {
-  margin-left: 15px;
-}
-</style>
-</head>
-<body>
-<div id="loading-message" i18n-content="loadingMessage">LOADING_MESSAGE</div>
-<div id="body-container" hidden>
-  <div id="header">
-    <h1 i18n-content="voiceSearchLongTitle">ABOUT_VOICESEARCH</h1>
-  </div>
-  <div id="voice-search-info-template">
-    <table cellpadding="2" cellspacing="0" border="0">
-      <tr jsselect="voiceSearchInfo">
-        <td><span dir="ltr" jscontent="key" class="key">KEY</span></td>
-        <td><span dir="ltr" jscontent="value" class="value">VALUE</span></td>
-      </tr>
-    </table>
-  </div>
-</div>
-<script src="chrome://resources/js/load_time_data.js"></script>
-<script src="chrome://voicesearch/about_voicesearch.js"></script>
-<script src="chrome://voicesearch/strings.js"></script>
-<script src="chrome://resources/js/i18n_template.js"></script>
-<script src="chrome://resources/js/jstemplate_compiled.js"></script>
-<script src="chrome://resources/js/util.js"></script>
-</body>
-</html>
diff --git a/chrome/browser/resources/about_voicesearch.js b/chrome/browser/resources/about_voicesearch.js
deleted file mode 100644
index bcf8cbd..0000000
--- a/chrome/browser/resources/about_voicesearch.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2014 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.
-
-/**
- * Takes the |moduleListData| input argument which represents data about
- * the currently available modules and populates the html jstemplate
- * with that data. It expects an object structure like the above.
- * @param {Object} moduleListData Information about available modules
- */
-function renderTemplate(moduleListData) {
-  var input = new JsEvalContext(moduleListData);
-  var output = $('voice-search-info-template');
-  jstProcess(input, output);
-}
-
-/**
- * Asks the C++ VoiceSearchUIDOMHandler to get details about voice search and
- * return the data in returnVoiceSearchInfo() (below).
- */
-function requestVoiceSearchInfo() {
-  chrome.send('requestVoiceSearchInfo');
-}
-
-/**
- * Called by the WebUI to re-populate the page with data representing the
- * current state of voice search.
- * @param {Object} moduleListData Information about available modules.
- */
-function returnVoiceSearchInfo(moduleListData) {
-  $('loading-message').hidden = true;
-  $('body-container').hidden = false;
-  renderTemplate(moduleListData);
-}
-
-// Get data and have it displayed upon loading.
-document.addEventListener('DOMContentLoaded', requestVoiceSearchInfo);
diff --git a/chrome/browser/resources/chromeos/bluetooth_pairing_dialog.html b/chrome/browser/resources/chromeos/bluetooth_pairing_dialog.html
index ca0516fe..af5f2fad 100644
--- a/chrome/browser/resources/chromeos/bluetooth_pairing_dialog.html
+++ b/chrome/browser/resources/chromeos/bluetooth_pairing_dialog.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html i18n-values="dir:textdirection;lang:language">
+<html dir="$i18n{textdirection}" lang="$i18n{language}">
 
 <head>
 
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
index f52ae06..c74f0131 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_mr.xtb
@@ -113,7 +113,7 @@
 <translation id="2110480898214777136">पृष्‍ठ, संवाद किंवा अन्य कंटेनरमध्ये प्रारंभापासून समाप्तीपर्यंत किंवा समाप्तीपासून प्रारंभापर्यंत पूर्ण करा</translation>
 <translation id="2119965627982867824">spnbtn</translation>
 <translation id="2121067395472282800">प्रवेश की:<ph name="KEY" /></translation>
-<translation id="2138345533858834403">स्क्रीनच्या वर ChromeVox पॅनेलमध्ये रीफ्रेश करता येण्यासारख्या ब्रेल प्रदर्शनाच्या आउटपुटची बतावणी करेल.</translation>
+<translation id="2138345533858834403">स्क्रीनच्या वर ChromeVox पॅनेलमध्ये रिफ्रेश करता येण्यासारख्या ब्रेल प्रदर्शनाच्या आउटपुटची बतावणी करेल.</translation>
 <translation id="2169714232367507776">वर्तमान आयटमवर क्लिक करा</translation>
 <translation id="2179452035581866348">आपल्याला आवश्यक आणि अतिरिक्त माहिती देण्यासाठी ChromeVox ध्वनींचा वापर करते. प्रत्येक ध्वनीचा अर्थ काय आहे ते जाणून घेऊन अधिक जलद नेव्हिगेट करण्यासाठी आपण या ध्वनींचा वापर करू शकता. आपल्याला सोयीस्कर असल्यास, आपण उच्चारामधील अनावश्यक शाब्दिक वर्णने बंद करू शकता आणि पृष्‍ठाविषयी अतिरिक्त माहितीसाठी त्यांच्यावर अवलंबून राहू शकता. येथे संपूर्ण ध्वनींची आणि त्यांच्या अर्थाची सूची आहे.</translation>
 <translation id="2188751878842439466">{COUNT,plural, =1{बंद कंस}one{# बंद कंस}other{# बंद कंस}}</translation>
@@ -156,7 +156,7 @@
 <translation id="2637227747952042642">गणित</translation>
 <translation id="2639750663247012216">ChromeVox सुधारक</translation>
 <translation id="2644542693584024604">चुकीचे शब्दलेखन केले</translation>
-<translation id="267442004702508783">रीफ्रेश करा</translation>
+<translation id="267442004702508783">रिफ्रेश करा</translation>
 <translation id="2684412629217766642">ChromeVox ट्यूटोरियल बंद करा</translation>
 <translation id="2697408785920771974">autoinl</translation>
 <translation id="2704429362613743330">{COUNT,plural, =1{उघडा कंस}one{# उघडे कंस}other{# उघडे कंस}}</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb
index 5387718..c19ada31 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb
@@ -74,7 +74,7 @@
 <translation id="1659072772017912254">Nezačiarknuté</translation>
 <translation id="1669290819662866522">týždeň</translation>
 <translation id="1674262202423278359">Navigácia rozšírenia ChromeVox</translation>
-<translation id="16777221443363124">Panel ponuky</translation>
+<translation id="16777221443363124">Panel s ponukami</translation>
 <translation id="1680732992526857724"><ph name="NAME" />, zapnuté</translation>
 <translation id="1692077714702418899">riadok štruktúry</translation>
 <translation id="1700517974991662022">Navštívené</translation>
diff --git a/chrome/browser/resources/chromeos/internet_config_dialog.html b/chrome/browser/resources/chromeos/internet_config_dialog.html
index ebe02ef..e8fe923 100644
--- a/chrome/browser/resources/chromeos/internet_config_dialog.html
+++ b/chrome/browser/resources/chromeos/internet_config_dialog.html
@@ -1,6 +1,5 @@
 <!doctype html>
-<html i18n-values="dir:textdirection;lang:language">
-
+<html dir="$i18n{textdirection}" lang="$i18n{language}">
 <head>
 
 <meta charset="utf-8">
diff --git a/chrome/browser/resources/chromeos/internet_detail_dialog.html b/chrome/browser/resources/chromeos/internet_detail_dialog.html
index a31041f..6878e2d 100644
--- a/chrome/browser/resources/chromeos/internet_detail_dialog.html
+++ b/chrome/browser/resources/chromeos/internet_detail_dialog.html
@@ -1,5 +1,5 @@
 <!doctype html>
-<html i18n-values="dir:textdirection;lang:language">
+<html dir="$i18n{textdirection}" lang="$i18n{language}">
 
 <head>
 
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ar.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ar.xtb
index f518a2f..cf5bf8b 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ar.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ar.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">الأسرع</translation>
 <translation id="1555130319947370107">أزرق</translation>
 <translation id="1588438908519853928">عادي</translation>
-<translation id="1666326070478924810">إعدادات "التحديد للتحدّث"</translation>
+<translation id="1666326070478924810">إعدادات "سماع الاختيار"</translation>
 <translation id="1966649499058910679">تحديد كل كلمة أثناء نطقها</translation>
 <translation id="2089387485033699258">ar</translation>
 <translation id="2714180132046334502">خلفية معتمة</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">تحديد صوت:</translation>
 <translation id="7019805045859631636">سريع</translation>
 <translation id="7304030187361489308">مرتفع</translation>
-<translation id="7768784765476638775">حدّد للتحدث</translation>
+<translation id="7768784765476638775">سماع الاختيار</translation>
 <translation id="7914870167134465181">التمييز</translation>
 <translation id="8044899503464538266">بطيء</translation>
 <translation id="9030754204056345429">أسرع</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bg.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bg.xtb
index e1aa640..96e663d 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bg.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bg.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Изберете глас:</translation>
 <translation id="7019805045859631636">Бързо</translation>
 <translation id="7304030187361489308">Висока</translation>
-<translation id="7768784765476638775">Избиране на текст за произнасяне</translation>
+<translation id="7768784765476638775">Прочитане на глас</translation>
 <translation id="7914870167134465181">Открояване</translation>
 <translation id="8044899503464538266">Бавно</translation>
 <translation id="9030754204056345429">По-бърза</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bn.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bn.xtb
index e5972ff3..b67328b 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bn.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_bn.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">সবচেয়ে দ্রুত</translation>
 <translation id="1555130319947370107">নীল</translation>
 <translation id="1588438908519853928">সাধারণ</translation>
-<translation id="1666326070478924810">শোনার জন্য বেছে নেওয়ার সেটিংস</translation>
+<translation id="1666326070478924810">'বাছুন ও শুনুন'-এর সেটিংস</translation>
 <translation id="1966649499058910679">প্রতিটি শব্দ যেভাবে উচ্চারণ করা হয় সেইভাবে হাইলাইট করুন</translation>
 <translation id="2089387485033699258">bn</translation>
 <translation id="2714180132046334502">গাঢ় ব্যাকগ্রাউন্ড</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">একটি ভয়েস বেছে নিন:</translation>
 <translation id="7019805045859631636">দ্রুত</translation>
 <translation id="7304030187361489308">বেশি</translation>
-<translation id="7768784765476638775">কথা বলতে বেছে নিন</translation>
+<translation id="7768784765476638775">বাছুন ও শুনুন</translation>
 <translation id="7914870167134465181">হাইলাইট করা</translation>
 <translation id="8044899503464538266">মন্থর</translation>
 <translation id="9030754204056345429">আরও দ্রুত</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_cs.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_cs.xtb
index 7e1fac9..4da06b5 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_cs.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_cs.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Nejrychlejší</translation>
 <translation id="1555130319947370107">Modrá</translation>
 <translation id="1588438908519853928">Normální</translation>
-<translation id="1666326070478924810">Nastavení hlasové odezvy po výběru</translation>
+<translation id="1666326070478924810">Nastavení poslechu vybraného textu</translation>
 <translation id="1966649499058910679">Zvýrazňovat jednotlivá vyslovená slova</translation>
 <translation id="2089387485033699258">cs</translation>
 <translation id="2714180132046334502">Tmavé pozadí</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Vyberte hlas:</translation>
 <translation id="7019805045859631636">Rychle</translation>
 <translation id="7304030187361489308">Vysoký</translation>
-<translation id="7768784765476638775">Hlasová odezva po výběru</translation>
+<translation id="7768784765476638775">Poslech vybraného textu</translation>
 <translation id="7914870167134465181">Zvýrazňování</translation>
 <translation id="8044899503464538266">Pomalu</translation>
 <translation id="9030754204056345429">Rychlejší</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_da.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_da.xtb
index 0f84939..7b7096c 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_da.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_da.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Vælg en stemme:</translation>
 <translation id="7019805045859631636">Hurtig</translation>
 <translation id="7304030187361489308">Højt</translation>
-<translation id="7768784765476638775">Vælg-for-at-tale</translation>
+<translation id="7768784765476638775">Tekstoplæsning</translation>
 <translation id="7914870167134465181">Fremhævning</translation>
 <translation id="8044899503464538266">Langsom</translation>
 <translation id="9030754204056345429">Hurtigere</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_en-GB.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_en-GB.xtb
index bb18f64..afb1f98a 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_en-GB.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_en-GB.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Fastest</translation>
 <translation id="1555130319947370107">Blue</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Select-to-Speak settings</translation>
+<translation id="1666326070478924810">Select to Speak settings</translation>
 <translation id="1966649499058910679">Highlight each word as it is spoken</translation>
 <translation id="2089387485033699258">en</translation>
 <translation id="2714180132046334502">Dark background</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Select a voice:</translation>
 <translation id="7019805045859631636">Fast</translation>
 <translation id="7304030187361489308">High</translation>
-<translation id="7768784765476638775">Select-to-speak</translation>
+<translation id="7768784765476638775">Select to Speak</translation>
 <translation id="7914870167134465181">Highlighting</translation>
 <translation id="8044899503464538266">Slow</translation>
 <translation id="9030754204056345429">Faster</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_es-419.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_es-419.xtb
index fa5208a..da61667b 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_es-419.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_es-419.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">A velocidad máxima</translation>
 <translation id="1555130319947370107">Azul</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Configuración de Seleccionar para hablar</translation>
+<translation id="1666326070478924810">Configuración de Seleccionar para pronunciar</translation>
 <translation id="1966649499058910679">Destaca cada palabra a medida que se pronuncia</translation>
 <translation id="2089387485033699258">es-419</translation>
 <translation id="2714180132046334502">Fondo oscuro</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Seleccionar una voz:</translation>
 <translation id="7019805045859631636">Rápido</translation>
 <translation id="7304030187361489308">Alto</translation>
-<translation id="7768784765476638775">Seleccionar para hablar</translation>
+<translation id="7768784765476638775">Seleccionar para pronunciar</translation>
 <translation id="7914870167134465181">Destacar</translation>
 <translation id="8044899503464538266">Lento</translation>
 <translation id="9030754204056345429">Más rápida</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_fil.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_fil.xtb
index 1435e65..3f6d3e5 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_fil.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Pinakamabilis</translation>
 <translation id="1555130319947370107">Asul</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Mga Setting ng Select-to-speak</translation>
+<translation id="1666326070478924810">Mga Setting ng Select to Speak</translation>
 <translation id="1966649499058910679">I-highlight ang bawat salita habang binibigkas ito</translation>
 <translation id="2089387485033699258">fil</translation>
 <translation id="2714180132046334502">Madilim na background</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Pumili ng boses:</translation>
 <translation id="7019805045859631636">Mabilis</translation>
 <translation id="7304030187361489308">Mataas</translation>
-<translation id="7768784765476638775">Select-to-speak</translation>
+<translation id="7768784765476638775">Select to Speak</translation>
 <translation id="7914870167134465181">Pag-highlight</translation>
 <translation id="8044899503464538266">Mabagal</translation>
 <translation id="9030754204056345429">Mas mabilis</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_gu.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_gu.xtb
index 938d1d7..48a04b7 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_gu.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_gu.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">સૌથી ઝડપી</translation>
 <translation id="1555130319947370107">વાદળી</translation>
 <translation id="1588438908519853928">સામાન્ય</translation>
-<translation id="1666326070478924810">બોલવા માટે પસંદ કરોના સેટિંગ</translation>
+<translation id="1666326070478924810">સાંભળવા માટે પસંદ કરોના સેટિંગ</translation>
 <translation id="1966649499058910679">દરેક શબ્દને બોલવાની રીત પ્રમાણે હાઇલાઇટ કરો</translation>
 <translation id="2089387485033699258">gu</translation>
 <translation id="2714180132046334502">ઘાટું બૅકગ્રાઉન્ડ</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">વૉઇસ પસંદ કરો:</translation>
 <translation id="7019805045859631636">ઝડપી</translation>
 <translation id="7304030187361489308">વધુ ઝડપે</translation>
-<translation id="7768784765476638775">બોલવા માટે પસંદ કરો</translation>
+<translation id="7768784765476638775">સાંભળવા માટે પસંદ કરો</translation>
 <translation id="7914870167134465181">હાઇલાઇટિંગ</translation>
 <translation id="8044899503464538266">ધીમું</translation>
 <translation id="9030754204056345429">વધુ ઝડપી</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hr.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hr.xtb
index c9b77be..e124208e7 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hr.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hr.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Odaberite glas:</translation>
 <translation id="7019805045859631636">Brzo</translation>
 <translation id="7304030187361489308">Visoka</translation>
-<translation id="7768784765476638775">Odaberite da biste govorili</translation>
+<translation id="7768784765476638775">Odabir za govor</translation>
 <translation id="7914870167134465181">Isticanje</translation>
 <translation id="8044899503464538266">Sporo</translation>
 <translation id="9030754204056345429">Brže</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hu.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hu.xtb
index 86e41ddb..a8aae111 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hu.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_hu.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Válasszon hangot:</translation>
 <translation id="7019805045859631636">Gyors</translation>
 <translation id="7304030187361489308">Magas</translation>
-<translation id="7768784765476638775">Jelölje be a beszédhez</translation>
+<translation id="7768784765476638775">Felolvasás</translation>
 <translation id="7914870167134465181">Kiemelés</translation>
 <translation id="8044899503464538266">Lassú</translation>
 <translation id="9030754204056345429">Gyorsabb</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_iw.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_iw.xtb
index 8fa242a..02345e7 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_iw.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_iw.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">הכי מהיר</translation>
 <translation id="1555130319947370107">כחול</translation>
 <translation id="1588438908519853928">רגיל</translation>
-<translation id="1666326070478924810">הגדרות של בחירת טקסט להקראה בקול</translation>
+<translation id="1666326070478924810">הגדרות הקראה</translation>
 <translation id="1966649499058910679">הדגשה של כל מילה בזמן שהן נאמרות</translation>
 <translation id="2089387485033699258">en</translation>
 <translation id="2714180132046334502">רקע כהה</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">בחר קול:</translation>
 <translation id="7019805045859631636">מהיר</translation>
 <translation id="7304030187361489308">גבוה</translation>
-<translation id="7768784765476638775">בחירת טקסט להקראה בקול</translation>
+<translation id="7768784765476638775">הקראה</translation>
 <translation id="7914870167134465181">הדגשה</translation>
 <translation id="8044899503464538266">אטי</translation>
 <translation id="9030754204056345429">מהיר יותר</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_kn.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_kn.xtb
index 59b13bc..0a108f9 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_kn.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_kn.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">ಅತಿ ಕ್ಷಿಪ್ರ</translation>
 <translation id="1555130319947370107">ನೀಲಿ</translation>
 <translation id="1588438908519853928">ಸಾಮಾನ್ಯ</translation>
-<translation id="1666326070478924810">ಮಾತನಾಡಲು ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
+<translation id="1666326070478924810">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು</translation>
 <translation id="1966649499058910679">ಪ್ರತಿ ಪದವನ್ನು ಮಾತನಾಡುವ ರೀತಿಯಲ್ಲೇ ಹೈಲೈಟ್ ಮಾಡಿ</translation>
 <translation id="2089387485033699258">kn</translation>
 <translation id="2714180132046334502">ದಟ್ಟ ಬೆಳಕಿನ ಹಿನ್ನೆಲೆ</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ:</translation>
 <translation id="7019805045859631636">ವೇಗ</translation>
 <translation id="7304030187361489308">ಅಧಿಕ</translation>
-<translation id="7768784765476638775">ಮಾತನಾಡಲು-ಆಯ್ಕೆಮಾಡಿ</translation>
+<translation id="7768784765476638775">ಧ್ವನಿ ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="7914870167134465181">ಹೈಲೈಟ್ ಮಾಡುವಿಕೆ</translation>
 <translation id="8044899503464538266">ನಿಧಾನ</translation>
 <translation id="9030754204056345429">ಇನ್ನಷ್ಟು ವೇಗವಾಗಿ</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ko.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ko.xtb
index 4625ee9..884843b 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ko.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ko.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">가장 빠르게</translation>
 <translation id="1555130319947370107">파란색</translation>
 <translation id="1588438908519853928">일반</translation>
-<translation id="1666326070478924810">음성 안내 설정</translation>
+<translation id="1666326070478924810">텍스트 읽어주기 설정</translation>
 <translation id="1966649499058910679">각 단어를 읽을 때 강조표시</translation>
 <translation id="2089387485033699258">ko</translation>
 <translation id="2714180132046334502">어두운 배경</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">음성 선택:</translation>
 <translation id="7019805045859631636">빠르게</translation>
 <translation id="7304030187361489308">높음</translation>
-<translation id="7768784765476638775">음성 안내 선택</translation>
+<translation id="7768784765476638775">텍스트 읽어주기</translation>
 <translation id="7914870167134465181">강조표시</translation>
 <translation id="8044899503464538266">느리게</translation>
 <translation id="9030754204056345429">조금 빠르게</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_lt.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_lt.xtb
index e9ce82f..b76875f 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_lt.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_lt.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Pasirinkite balsą:</translation>
 <translation id="7019805045859631636">Greitas</translation>
 <translation id="7304030187361489308">Aukštas</translation>
-<translation id="7768784765476638775">Pasirinkti ir sakyti</translation>
+<translation id="7768784765476638775">Teksto ištarimas</translation>
 <translation id="7914870167134465181">Paryškinimas</translation>
 <translation id="8044899503464538266">Lėtas</translation>
 <translation id="9030754204056345429">Greitesnis</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ml.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ml.xtb
index fc86a19..7df6df84 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ml.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ml.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">ഏറ്റവും വേഗതയുള്ളത്</translation>
 <translation id="1555130319947370107">നീല</translation>
 <translation id="1588438908519853928">സാധാരണം</translation>
-<translation id="1666326070478924810">'സംസാരിക്കാൻ  തിരഞ്ഞെടുക്കുക' ക്രമീകരണം</translation>
+<translation id="1666326070478924810">'വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക' ക്രമീകരണം</translation>
 <translation id="1966649499058910679">ഓരോ വാക്കും പറഞ്ഞത് പോലെ ഹൈലൈറ്റ് ചെയ്യുക</translation>
 <translation id="2089387485033699258">ml</translation>
 <translation id="2714180132046334502">ഇരുണ്ട പശ്ചാത്തലം</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">ഒരു ശബ്‌ദം തിരഞ്ഞെടുക്കുക:</translation>
 <translation id="7019805045859631636">വേഗത</translation>
 <translation id="7304030187361489308">ഉയർന്നത്</translation>
-<translation id="7768784765476638775">സംസാരിക്കാൻ തിരഞ്ഞെടുക്കുക</translation>
+<translation id="7768784765476638775">വായിച്ചുകേൾക്കാൻ തിരഞ്ഞെടുക്കുക</translation>
 <translation id="7914870167134465181">ഹൈലൈറ്റ് ചെയ്യുന്നു</translation>
 <translation id="8044899503464538266">പതുക്കെ</translation>
 <translation id="9030754204056345429">കൂടുതൽ വേഗതയുള്ളത്</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_pt-PT.xtb
index 83c4a50..4d8dcd6 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_pt-PT.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_pt-PT.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">A mais rápida</translation>
 <translation id="1555130319947370107">Azul</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Definições de Selecionar para falar</translation>
+<translation id="1666326070478924810">Definições de Selecionar para ativar voz</translation>
 <translation id="1966649499058910679">Realçar cada palavra conforme é falada</translation>
 <translation id="2089387485033699258">pt-PT</translation>
 <translation id="2714180132046334502">Fundo escuro</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Selecionar uma voz:</translation>
 <translation id="7019805045859631636">Rápido</translation>
 <translation id="7304030187361489308">Alta</translation>
-<translation id="7768784765476638775">Selecionar para falar</translation>
+<translation id="7768784765476638775">Selecionar para ativar voz</translation>
 <translation id="7914870167134465181">Realce</translation>
 <translation id="8044899503464538266">Lento</translation>
 <translation id="9030754204056345429">Mais rápida</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ro.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ro.xtb
index 0bf4ce2..83d3a30 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ro.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ro.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Cea mai rapidă</translation>
 <translation id="1555130319947370107">Albastru</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Setări Selectează pentru a se rosti</translation>
+<translation id="1666326070478924810">Setări „Selectează și ascultă”</translation>
 <translation id="1966649499058910679">Evidențiază fiecare cuvânt când este rostit</translation>
 <translation id="2089387485033699258">ro</translation>
 <translation id="2714180132046334502">Fundal întunecat</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Selectează o voce:</translation>
 <translation id="7019805045859631636">Rapid</translation>
 <translation id="7304030187361489308">Înaltă</translation>
-<translation id="7768784765476638775">Selectează pentru a se rosti</translation>
+<translation id="7768784765476638775">Selectează și ascultă</translation>
 <translation id="7914870167134465181">Evidențiere</translation>
 <translation id="8044899503464538266">Lent</translation>
 <translation id="9030754204056345429">Mai rapidă</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ru.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ru.xtb
index 886e36e..414e3d911 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ru.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Голос:</translation>
 <translation id="7019805045859631636">Быстро</translation>
 <translation id="7304030187361489308">Высокий</translation>
-<translation id="7768784765476638775">Озвучивание выделенного текста</translation>
+<translation id="7768784765476638775">Озвучивание при нажатии</translation>
 <translation id="7914870167134465181">Выделение</translation>
 <translation id="8044899503464538266">Медленно</translation>
 <translation id="9030754204056345429">Быстрая</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sl.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sl.xtb
index f4f2492a..8116f465 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sl.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sl.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Najhitrejša</translation>
 <translation id="1555130319947370107">Modra</translation>
 <translation id="1588438908519853928">Običajen</translation>
-<translation id="1666326070478924810">Nastavitve za izbiranje besedila za branje na glas</translation>
+<translation id="1666326070478924810">Nastavitve storitve Izberite in poslušajte</translation>
 <translation id="1966649499058910679">Označite vsako besedo, ko je izgovorjena</translation>
 <translation id="2089387485033699258">sl</translation>
 <translation id="2714180132046334502">Temno ozadje</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Izberite glas:</translation>
 <translation id="7019805045859631636">Hitro</translation>
 <translation id="7304030187361489308">Visoka</translation>
-<translation id="7768784765476638775">Izbira za govor</translation>
+<translation id="7768784765476638775">Izberite in poslušajte</translation>
 <translation id="7914870167134465181">Označevanje</translation>
 <translation id="8044899503464538266">Počasi</translation>
 <translation id="9030754204056345429">Hitrejša</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sv.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sv.xtb
index 730e36c..e0b3dfa 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sv.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sv.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Snabbast</translation>
 <translation id="1555130319947370107">Blå</translation>
 <translation id="1588438908519853928">Normal</translation>
-<translation id="1666326070478924810">Inställningar för uppläsning av markerad text</translation>
+<translation id="1666326070478924810">Inställningar för Textuppläsning</translation>
 <translation id="1966649499058910679">Markera orden allt eftersom de läses upp</translation>
 <translation id="2089387485033699258">se</translation>
 <translation id="2714180132046334502">Mörk bakgrund</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Välj en röst:</translation>
 <translation id="7019805045859631636">Snabb</translation>
 <translation id="7304030187361489308">Hög</translation>
-<translation id="7768784765476638775">Markera och få uppläst</translation>
+<translation id="7768784765476638775">Textuppläsning</translation>
 <translation id="7914870167134465181">Markeringar</translation>
 <translation id="8044899503464538266">Långsamt</translation>
 <translation id="9030754204056345429">Snabbare</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sw.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sw.xtb
index 9c1fbd8..dd1e12f 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sw.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_sw.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">Kasi zaidi</translation>
 <translation id="1555130319947370107">Samawati</translation>
 <translation id="1588438908519853928">Ya kawaida</translation>
-<translation id="1666326070478924810">Mipangilio ya chagua ili Izungumze</translation>
+<translation id="1666326070478924810">Mipangilio ya Chagua ili Izungumze</translation>
 <translation id="1966649499058910679">Angazia kila neno wakati linatamkwa</translation>
 <translation id="2089387485033699258">sw</translation>
 <translation id="2714180132046334502">Mandhari-nyuma meusi</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ta.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ta.xtb
index 01e2d72..fac8dcf 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_ta.xtb
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">குரலைத் தேர்ந்தெடுக்கவும்:</translation>
 <translation id="7019805045859631636">வேகமான</translation>
 <translation id="7304030187361489308">அதிகமானது</translation>
-<translation id="7768784765476638775">தேர்ந்தெடுப்பதைப் படிக்கும்</translation>
+<translation id="7768784765476638775">பேசும் திரை</translation>
 <translation id="7914870167134465181">தனிப்படுத்திக் காட்டுதல்</translation>
 <translation id="8044899503464538266">மெதுவான</translation>
 <translation id="9030754204056345429">அதிவேகம்</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_th.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_th.xtb
index b10e255..2d90bfa5 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_th.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_th.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">เร็วที่สุด</translation>
 <translation id="1555130319947370107">สีน้ำเงิน</translation>
 <translation id="1588438908519853928">ปกติ</translation>
-<translation id="1666326070478924810">การตั้งค่าการเลือกเพื่อพูด</translation>
+<translation id="1666326070478924810">การตั้งค่าการเลือกเพื่อให้อ่าน</translation>
 <translation id="1966649499058910679">ไฮไลต์แต่ละคำในขณะที่พูด</translation>
 <translation id="2089387485033699258">th</translation>
 <translation id="2714180132046334502">พื้นหลังสีเข้ม</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">เลือกเสียง:</translation>
 <translation id="7019805045859631636">เร็ว</translation>
 <translation id="7304030187361489308">สูง</translation>
-<translation id="7768784765476638775">เลือกเพื่อพูด</translation>
+<translation id="7768784765476638775">เลือกเพื่อให้อ่าน</translation>
 <translation id="7914870167134465181">การไฮไลต์</translation>
 <translation id="8044899503464538266">ช้า</translation>
 <translation id="9030754204056345429">เร็วขึ้น</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_uk.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_uk.xtb
index e8abc7d..466bc78 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_uk.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_uk.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">найшвидше</translation>
 <translation id="1555130319947370107">Синій</translation>
 <translation id="1588438908519853928">Звичайний</translation>
-<translation id="1666326070478924810">Налаштування функції читання з екрана</translation>
+<translation id="1666326070478924810">Налаштування служби Читання з екрана</translation>
 <translation id="1966649499058910679">Виділяти кожне слово, яке озвучується</translation>
 <translation id="2089387485033699258">uk</translation>
 <translation id="2714180132046334502">Темний фон</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">Виберіть голос:</translation>
 <translation id="7019805045859631636">Швидка</translation>
 <translation id="7304030187361489308">Високий</translation>
-<translation id="7768784765476638775">Вибрати, щоб озвучити</translation>
+<translation id="7768784765476638775">Читання з екрана</translation>
 <translation id="7914870167134465181">Виділення</translation>
 <translation id="8044899503464538266">Повільна</translation>
 <translation id="9030754204056345429">швидше</translation>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_zh-TW.xtb
index cae6768f..9b80468 100644
--- a/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_zh-TW.xtb
+++ b/chrome/browser/resources/chromeos/select_to_speak/strings/select_to_speak_strings_zh-TW.xtb
@@ -5,7 +5,7 @@
 <translation id="1224275271335624810">最快</translation>
 <translation id="1555130319947370107">藍色</translation>
 <translation id="1588438908519853928">一般</translation>
-<translation id="1666326070478924810">朗讀所選文字設定</translation>
+<translation id="1666326070478924810">隨選朗讀設定</translation>
 <translation id="1966649499058910679">醒目顯示每個朗讀的字詞</translation>
 <translation id="2089387485033699258">en</translation>
 <translation id="2714180132046334502">深色背景</translation>
@@ -24,7 +24,7 @@
 <translation id="6837853484260746864">選擇語音:</translation>
 <translation id="7019805045859631636">快</translation>
 <translation id="7304030187361489308">高</translation>
-<translation id="7768784765476638775">朗讀所選文字</translation>
+<translation id="7768784765476638775">隨選朗讀</translation>
 <translation id="7914870167134465181">醒目顯示</translation>
 <translation id="8044899503464538266">慢</translation>
 <translation id="9030754204056345429">較快</translation>
diff --git a/chrome/browser/resources/print_preview/OWNERS b/chrome/browser/resources/print_preview/OWNERS
index ef10fbb9..e542f208 100644
--- a/chrome/browser/resources/print_preview/OWNERS
+++ b/chrome/browser/resources/print_preview/OWNERS
@@ -1,5 +1,3 @@
-dpapad@chromium.org
-gene@chromium.org
-vitalybuka@chromium.org
+file://printing/OWNERS
 
 # COMPONENT: UI>Browser>PrintPreview
diff --git a/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.js b/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.js
index 9dee9d3..e165f699 100644
--- a/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.js
+++ b/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.js
@@ -45,8 +45,10 @@
    * @private
    */
   onAndroidAppsInfoUpdate_: function() {
-    if (!this.androidAppsInfo.playStoreEnabled)
+    if (!this.androidAppsInfo.playStoreEnabled &&
+        settings.getCurrentRoute() == settings.routes.ANDROID_APPS_DETAILS) {
       settings.navigateToPreviousRoute();
+    }
   },
 
   /**
diff --git a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
index ec8cc5a..7a31f0ee 100644
--- a/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
+++ b/chrome/browser/resources/settings/chrome_cleanup_page/chrome_cleanup_page.js
@@ -767,14 +767,14 @@
       },
 
       DISMISS_CLEANUP_SUCCESS: {
-        label: this.i18n('chromeCleanupDoneButtonLabel'),
+        label: this.i18n('done'),
         doAction: this.dismiss_.bind(
             this,
             settings.ChromeCleanupDismissSource.CLEANUP_SUCCESS_DONE_BUTTON),
       },
 
       DISMISS_CLEANUP_FAILURE: {
-        label: this.i18n('chromeCleanupDoneButtonLabel'),
+        label: this.i18n('done'),
         doAction: this.dismiss_.bind(
             this,
             settings.ChromeCleanupDismissSource.CLEANUP_FAILURE_DONE_BUTTON),
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
index 0a08146..7b314c1 100644
--- a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
+++ b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
@@ -69,7 +69,7 @@
       </div>
       <div slot="button-container">
         <paper-button class="action-button" on-tap="onActionButtonTap_">
-          $i18n{passwordsDone}
+          $i18n{done}
         </paper-button>
       </div>
     </dialog>
diff --git a/chrome/browser/resources/settings/people_page/people_page.html b/chrome/browser/resources/settings/people_page/people_page.html
index 4ab0dfc..96d4682 100644
--- a/chrome/browser/resources/settings/people_page/people_page.html
+++ b/chrome/browser/resources/settings/people_page/people_page.html
@@ -109,7 +109,7 @@
             </div>
 <if expr="not chromeos">
             <div class="middle two-line no-min-width"
-                on-tap="onProfileNameTap_" actionable>
+                on-tap="onProfileTap_" actionable>
 </if>
 <if expr="chromeos">
             <div class="middle two-line no-min-width" on-tap="onPictureTap_"
@@ -168,6 +168,14 @@
         </template>
 
 <if expr="not chromeos">
+        <template is="dom-if" if="[[diceEnabled_]]">
+          <div class="settings-box" id="edit-profile" on-tap="onProfileTap_"
+              actionable>
+            <div class="start">$i18n{profileNameAndPicture}</div>
+            <button class="subpage-arrow" is="paper-icon-button-light"
+                aria-label="$i18n{editPerson}"></button>
+          </div>
+        </template>
         <template is="dom-if" if="[[syncStatus.domain]]">
           <div class="settings-box">
             <div class="icon-container">
diff --git a/chrome/browser/resources/settings/people_page/people_page.js b/chrome/browser/resources/settings/people_page/people_page.js
index 60555a4e..e167e516 100644
--- a/chrome/browser/resources/settings/people_page/people_page.js
+++ b/chrome/browser/resources/settings/people_page/people_page.js
@@ -25,6 +25,22 @@
       notify: true,
     },
 
+    // <if expr="not chromeos">
+    /**
+     * This flag is used to conditionally show a set of new sign-in UIs to the
+     * profiles that have been migrated to be consistent with the web sign-ins.
+     * TODO(scottchen): In the future when all profiles are completely migrated,
+     * this should be removed, and UIs hidden behind it should become default.
+     * @private
+     */
+    diceEnabled_: {
+      type: Boolean,
+      value: function() {
+        return loadTimeData.getBoolean('diceEnabled');
+      },
+    },
+    // </if>
+
     /**
      * The current sync status, supplied by SyncBrowserProxy.
      * @type {?settings.SyncStatus}
@@ -262,7 +278,7 @@
 
   // <if expr="not chromeos">
   /** @private */
-  onProfileNameTap_: function() {
+  onProfileTap_: function() {
     settings.navigateTo(settings.routes.MANAGE_PROFILE);
   },
   // </if>
diff --git a/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js b/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
index 7922b78..4b9ca54 100644
--- a/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
+++ b/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
@@ -259,7 +259,7 @@
    */
   getCloseButtonText_: function(step) {
     if (step == settings.FingerprintSetupStep.READY)
-      return this.i18n('configureFingerprintDoneButton');
+      return this.i18n('done');
 
     return this.i18n('cancel');
   },
diff --git a/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html b/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
index 797f6fe..f5fabb1 100644
--- a/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
+++ b/chrome/browser/resources/settings/printing_page/cups_add_printer_dialog_util.html
@@ -39,6 +39,10 @@
         width: 270px;
       }
 
+      iron-dropdown {
+        height: 270px;
+      }
+
       iron-dropdown .dropdown-content {
         background-color: white;
         box-shadow: 0 2px 6px var(--paper-grey-500);
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
index 238b118..e642a860 100644
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
@@ -132,12 +132,6 @@
           id="midiDevices" label="$i18n{siteSettingsMidiDevices}">
       </site-details-permission>
       <site-details-permission
-          category="{{ContentSettingsTypes.CLIPBOARD}}"
-          icon="settings:clipboard" id="clipboard"
-          label="$i18n{siteSettingsClipboard}"
-          hidden$="[[!enableClipboardContentSetting_]]">
-      </site-details-permission>
-      <site-details-permission
           category="{{ContentSettingsTypes.UNSANDBOXED_PLUGINS}}"
           icon="cr:extension" id="unsandboxedPlugins"
           label="$i18n{siteSettingsUnsandboxedPlugins}">
@@ -155,6 +149,12 @@
         label="$i18n{siteSettingsSensors}"
         hidden$="[[!enableSensorsContentSetting_]]">
     </site-details-permission>
+      <site-details-permission
+          category="{{ContentSettingsTypes.CLIPBOARD}}"
+          icon="settings:clipboard" id="clipboard"
+          label="$i18n{siteSettingsClipboard}"
+          hidden$="[[!enableClipboardContentSetting_]]">
+      </site-details-permission>
     </div>
 
     <div id="clearAndReset" class="settings-box"
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 38a6e68..8e420c0 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
@@ -317,26 +317,6 @@
           aria-label="$i18n{siteSettingsMidiDevices}"
           aria-describedby="midiDevicesSecondary"></button>
     </div>
-    <template is="dom-if" if="[[enableClipboardContentSetting_]]">
-      <div id="clipboard" class="settings-box two-line"
-           category$="[[ContentSettingsTypes.CLIPBOARD]]"
-           data-route="SITE_SETTINGS_CLIPBOARD" on-tap="onTapNavigate_"
-           actionable>
-        <iron-icon icon="settings:clipboard"></iron-icon>
-        <div class="middle">
-          $i18n{siteSettingsClipboard}
-          <div class="secondary" id="clipboardSecondary">
-            [[defaultSettingLabel_(
-                default_.clipboard,
-                '$i18nPolymer{siteSettingsAskBeforeAccessing}',
-                '$i18nPolymer{siteSettingsBlocked}')]]
-          </div>
-        </div>
-        <button class="subpage-arrow" is="paper-icon-button-light"
-            aria-label="$i18n{siteSettingsClipboard}"
-            aria-describedby="clipboardSecondary"></button>
-      </div>
-    </template>
     <div id="zoom-levels" class="settings-box"
         category$="[[ContentSettingsTypes.ZOOM_LEVELS]]"
         data-route="SITE_SETTINGS_ZOOM_LEVELS" on-tap="onTapNavigate_"
@@ -391,6 +371,26 @@
             aria-describedby="sensorsSecondary"></button>
       </div>
     </template>
+    <template is="dom-if" if="[[enableClipboardContentSetting_]]">
+      <div id="clipboard" class="settings-box two-line"
+           category$="[[ContentSettingsTypes.CLIPBOARD]]"
+           data-route="SITE_SETTINGS_CLIPBOARD" on-tap="onTapNavigate_"
+           actionable>
+        <iron-icon icon="settings:clipboard"></iron-icon>
+        <div class="middle">
+          $i18n{siteSettingsClipboard}
+          <div class="secondary" id="clipboardSecondary">
+            [[defaultSettingLabel_(
+                default_.clipboard,
+                '$i18nPolymer{siteSettingsAskBeforeAccessing}',
+                '$i18nPolymer{siteSettingsBlocked}')]]
+          </div>
+        </div>
+        <button class="subpage-arrow" is="paper-icon-button-light"
+            aria-label="$i18n{siteSettingsClipboard}"
+            aria-describedby="clipboardSecondary"></button>
+      </div>
+    </template>
   </template>
   <script src="site_settings_page.js"></script>
 </dom-module>
diff --git a/chrome/browser/search_provider_logos/logo_service_factory.cc b/chrome/browser/search_provider_logos/logo_service_factory.cc
index 2af3340..85f3ea3b 100644
--- a/chrome/browser/search_provider_logos/logo_service_factory.cc
+++ b/chrome/browser/search_provider_logos/logo_service_factory.cc
@@ -30,7 +30,7 @@
 
 bool UseGrayLogo() {
 #if defined(OS_ANDROID)
-  return !chrome::android::GetIsChromeHomeEnabled();
+  return !chrome::android::GetIsChromeModernDesignEnabled();
 #else
   return false;
 #endif
diff --git a/chrome/browser/spellchecker/spellcheck_service.cc b/chrome/browser/spellchecker/spellcheck_service.cc
index 2b139903..8c20211 100644
--- a/chrome/browser/spellchecker/spellcheck_service.cc
+++ b/chrome/browser/spellchecker/spellcheck_service.cc
@@ -13,8 +13,10 @@
 #include "base/synchronization/waitable_event.h"
 #include "base/values.h"
 #include "build/build_config.h"
+#include "chrome/browser/chrome_service.h"
 #include "chrome/browser/spellchecker/spellcheck_factory.h"
 #include "chrome/browser/spellchecker/spellcheck_hunspell_dictionary.h"
+#include "chrome/common/constants.mojom.h"
 #include "chrome/common/pref_names.h"
 #include "components/prefs/pref_member.h"
 #include "components/prefs/pref_service.h"
@@ -202,8 +204,10 @@
   }
 
   spellcheck::mojom::SpellCheckerPtr spellchecker;
-  content::BindInterface(
-      content::RenderProcessHost::FromRendererIdentity(renderer_identity),
+  ChromeService::GetInstance()->connector()->BindInterface(
+      service_manager::Identity(chrome::mojom::kRendererServiceName,
+                                renderer_identity.user_id(),
+                                renderer_identity.instance()),
       &spellchecker);
   spellchecker->Initialize(std::move(dictionaries), custom_words, enable);
 }
@@ -287,8 +291,14 @@
   const std::vector<std::string> deletions(change.to_remove().begin(),
                                            change.to_remove().end());
   while (!process_hosts.IsAtEnd()) {
+    service_manager::Identity renderer_identity =
+        process_hosts.GetCurrentValue()->GetChildIdentity();
     spellcheck::mojom::SpellCheckerPtr spellchecker;
-    content::BindInterface(process_hosts.GetCurrentValue(), &spellchecker);
+    ChromeService::GetInstance()->connector()->BindInterface(
+        service_manager::Identity(chrome::mojom::kRendererServiceName,
+                                  renderer_identity.user_id(),
+                                  renderer_identity.instance()),
+        &spellchecker);
     spellchecker->CustomDictionaryChanged(additions, deletions);
     process_hosts.Advance();
   }
diff --git a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
index 854b69c..6f31078 100644
--- a/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
+++ b/chrome/browser/spellchecker/spellcheck_service_browsertest.cc
@@ -18,12 +18,14 @@
 #include "base/test/histogram_tester.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/values.h"
+#include "chrome/browser/chrome_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/spellchecker/spell_check_host_chrome_impl.h"
 #include "chrome/browser/spellchecker/spellcheck_factory.h"
 #include "chrome/browser/spellchecker/spellcheck_service.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/common/chrome_paths.h"
+#include "chrome/common/constants.mojom.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/in_process_browser_test.h"
 #include "components/prefs/pref_service.h"
@@ -74,13 +76,19 @@
                           base::SPLIT_WANT_NONEMPTY));
     prefs_->Set(spellcheck::prefs::kSpellCheckDictionaries, dictionaries_value);
 
+    service_manager::Identity renderer_identity = renderer_->GetChildIdentity();
     SpellcheckService* spellcheck =
-        SpellcheckServiceFactory::GetForRenderer(renderer_->GetChildIdentity());
+        SpellcheckServiceFactory::GetForRenderer(renderer_identity);
     ASSERT_NE(nullptr, spellcheck);
 
-    // Override |renderer_| requests for the spellcheck::mojom::SpellChecker
+    // Override requests for the spellcheck::mojom::SpellChecker
     // interface so we can test the SpellChecker request flow.
-    renderer_->OverrideBinderForTesting(
+    service_manager::Connector::TestApi test_api(
+        ChromeService::GetInstance()->connector());
+    test_api.OverrideBinderForTesting(
+        service_manager::Identity(chrome::mojom::kRendererServiceName,
+                                  renderer_identity.user_id(),
+                                  renderer_identity.instance()),
         spellcheck::mojom::SpellChecker::Name_,
         base::BindRepeating(&SpellcheckServiceBrowserTest::Bind,
                             base::Unretained(this)));
diff --git a/chrome/browser/spellchecker/test/spellcheck_content_browser_client.cc b/chrome/browser/spellchecker/test/spellcheck_content_browser_client.cc
index e3cce89..cc50ee57 100644
--- a/chrome/browser/spellchecker/test/spellcheck_content_browser_client.cc
+++ b/chrome/browser/spellchecker/test/spellcheck_content_browser_client.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/spellchecker/test/spellcheck_content_browser_client.h"
 
 #include "content/public/browser/browser_thread.h"
+#include "content/public/common/service_names.mojom.h"
 #include "services/service_manager/public/cpp/bind_source_info.h"
 
 namespace spellcheck {
@@ -50,8 +51,11 @@
 void SpellCheckContentBrowserClient::BindSpellCheckPanelHostRequest(
     spellcheck::mojom::SpellCheckPanelHostRequest request,
     const service_manager::BindSourceInfo& source_info) {
+  service_manager::Identity renderer_identity(
+      content::mojom::kRendererServiceName, source_info.identity.user_id(),
+      source_info.identity.instance());
   content::RenderProcessHost* render_process_host =
-      content::RenderProcessHost::FromRendererIdentity(source_info.identity);
+      content::RenderProcessHost::FromRendererIdentity(renderer_identity);
   auto spell_check_panel_host =
       std::make_unique<SpellCheckMockPanelHost>(render_process_host);
   spell_check_panel_host->SpellCheckPanelHostRequest(std::move(request));
diff --git a/chrome/browser/subresource_filter/subresource_filter_test_harness.cc b/chrome/browser/subresource_filter/subresource_filter_test_harness.cc
index 088e9af..f60760da 100644
--- a/chrome/browser/subresource_filter/subresource_filter_test_harness.cc
+++ b/chrome/browser/subresource_filter/subresource_filter_test_harness.cc
@@ -75,12 +75,23 @@
   ASSERT_TRUE(ruleset_service_dir_.CreateUniqueTempDir());
   subresource_filter::IndexedRulesetVersion::RegisterPrefs(
       pref_service_.registry());
+  // TODO(csharrison): having separated blocking and background task runners
+  // for |ContentRulesetService| and |RulesetService| would be a good idea, but
+  // external unit tests code implicitly uses knowledge that blocking and
+  // background task runners are initiazlied from
+  // |base::ThreadTaskRunnerHandle::Get()|:
+  // 1. |TestRulesetPublisher| uses this knowledge in |SetRuleset| method. It
+  //    is waiting for the ruleset published callback.
+  // 2. Navigation simulator uses this knowledge. It knows that
+  //    |AsyncDocumentSubresourceFilter| posts core initialization tasks on
+  //    blocking task runner and this it is the current thread task runner.
   auto content_service =
       base::MakeUnique<subresource_filter::ContentRulesetService>(
           base::ThreadTaskRunnerHandle::Get());
   auto ruleset_service = base::MakeUnique<subresource_filter::RulesetService>(
       &pref_service_, base::ThreadTaskRunnerHandle::Get(),
-      content_service.get(), ruleset_service_dir_.GetPath());
+      base::ThreadTaskRunnerHandle::Get(), content_service.get(),
+      ruleset_service_dir_.GetPath());
   content_service->set_ruleset_service(std::move(ruleset_service));
   TestingBrowserProcess::GetGlobal()->SetRulesetService(
       std::move(content_service));
diff --git a/chrome/browser/tracing/crash_service_uploader.cc b/chrome/browser/tracing/crash_service_uploader.cc
index b8a16a87..12ba5a9 100644
--- a/chrome/browser/tracing/crash_service_uploader.cc
+++ b/chrome/browser/tracing/crash_service_uploader.cc
@@ -26,8 +26,8 @@
 #include "net/base/mime_util.h"
 #include "net/base/network_delegate.h"
 #include "net/http/http_status_code.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request_context.h"
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 1621bcd..612f143 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -1231,6 +1231,8 @@
       "ash/ime_controller_client.h",
       "ash/keyboard_ui_service.cc",
       "ash/keyboard_ui_service.h",
+      "ash/ksv/keyboard_shortcut_viewer_util.cc",
+      "ash/ksv/keyboard_shortcut_viewer_util.h",
       "ash/launcher/app_shortcut_launcher_item_controller.cc",
       "ash/launcher/app_shortcut_launcher_item_controller.h",
       "ash/launcher/app_window_launcher_controller.cc",
@@ -1562,6 +1564,7 @@
       "//ui/base/ime",
       "//ui/chromeos",
       "//ui/chromeos/events",
+      "//ui/chromeos/ksv",
       "//ui/keyboard:mojom",
     ]
     allow_circular_includes_from += [ "//chrome/browser/chromeos" ]
diff --git a/chrome/browser/ui/android/toolbar/toolbar_model_android.cc b/chrome/browser/ui/android/toolbar/toolbar_model_android.cc
index 1396cdb..d03f8e1 100644
--- a/chrome/browser/ui/android/toolbar/toolbar_model_android.cc
+++ b/chrome/browser/ui/android/toolbar/toolbar_model_android.cc
@@ -31,7 +31,7 @@
     JNIEnv* env,
     const JavaParamRef<jobject>& obj) {
   return base::android::ConvertUTF16ToJavaString(
-      env, toolbar_model_->GetFormattedURL(nullptr));
+      env, toolbar_model_->GetFormattedFullURL());
 }
 
 content::WebContents* ToolbarModelAndroid::GetActiveWebContents() const {
diff --git a/chrome/browser/ui/ash/chrome_new_window_client.cc b/chrome/browser/ui/ash/chrome_new_window_client.cc
index 61f41cb..0dcc071d 100644
--- a/chrome/browser/ui/ash/chrome_new_window_client.cc
+++ b/chrome/browser/ui/ash/chrome_new_window_client.cc
@@ -14,7 +14,7 @@
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
 #include "chrome/browser/profiles/profile_manager.h"
 #include "chrome/browser/sessions/tab_restore_service_factory.h"
-#include "chrome/browser/ui/ash/chrome_shell_delegate.h"
+#include "chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_commands.h"
 #include "chrome/browser/ui/browser_finder.h"
@@ -213,6 +213,7 @@
   }
 }
 
+// TODO(crbug.com/755448): Remove this when the new shortcut viewer is enabled.
 void ChromeNewWindowClient::ShowKeyboardOverlay() {
   // TODO(mazda): Move the show logic to ash (http://crbug.com/124222).
   Profile* profile = ProfileManager::GetActiveUserProfile();
@@ -221,6 +222,10 @@
                                        GURL(url));
 }
 
+void ChromeNewWindowClient::ShowKeyboardShortcutViewer() {
+  keyboard_shortcut_viewer_util::ShowKeyboardShortcutViewer();
+}
+
 void ChromeNewWindowClient::ShowTaskManager() {
   chrome::OpenTaskManager(nullptr);
 }
diff --git a/chrome/browser/ui/ash/chrome_new_window_client.h b/chrome/browser/ui/ash/chrome_new_window_client.h
index 57c6a22..141258c 100644
--- a/chrome/browser/ui/ash/chrome_new_window_client.h
+++ b/chrome/browser/ui/ash/chrome_new_window_client.h
@@ -26,6 +26,7 @@
   void OpenGetHelp() override;
   void RestoreTab() override;
   void ShowKeyboardOverlay() override;
+  void ShowKeyboardShortcutViewer() override;
   void ShowTaskManager() override;
   void OpenFeedbackPage() override;
 
diff --git a/chrome/browser/ui/ash/ksv/DEPS b/chrome/browser/ui/ash/ksv/DEPS
new file mode 100644
index 0000000..b7331e009
--- /dev/null
+++ b/chrome/browser/ui/ash/ksv/DEPS
@@ -0,0 +1,16 @@
+include_rules = [
+  # Restrict access to //ash and //chrome in order to make it easy to migrate
+  # the KSV launching code and unittest in the future if we want KSV to be a
+  # completely independent mojo app under mustash.
+  "-ash",
+  "-chrome",
+  "+chrome/browser/ui/ash/ksv",
+  "+ui/chromeos/ksv",
+]
+
+specific_include_rules = {
+  "keyboard_shortcut_viewer_metadata_unittest\.cc": [
+    "+ash/accelerators",
+    "+chrome/browser/ui/views",
+  ],
+}
diff --git a/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_metadata_unittest.cc b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_metadata_unittest.cc
new file mode 100644
index 0000000..838db31
--- /dev/null
+++ b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_metadata_unittest.cc
@@ -0,0 +1,131 @@
+// 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 <set>
+#include <string>
+#include <vector>
+
+#include "ash/accelerators/accelerator_table.h"
+#include "base/macros.h"
+#include "base/strings/string_util.h"
+#include "base/strings/stringprintf.h"
+#include "chrome/browser/ui/views/accelerator_table.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/chromeos/ksv/keyboard_shortcut_item.h"
+#include "ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.h"
+
+namespace {
+
+std::string AcceleratorIdToString(
+    const keyboard_shortcut_viewer::AcceleratorId& accelerator_id) {
+  return base::StringPrintf(
+      "keycode=%d shift=%s control=%s alt=%s search=%s", accelerator_id.keycode,
+      (accelerator_id.modifiers & ui::EF_SHIFT_DOWN) ? "true" : "false",
+      (accelerator_id.modifiers & ui::EF_CONTROL_DOWN) ? "true" : "false",
+      (accelerator_id.modifiers & ui::EF_ALT_DOWN) ? "true" : "false",
+      (accelerator_id.modifiers & ui::EF_COMMAND_DOWN) ? "true" : "false");
+}
+
+std::string AcceleratorIdsToString(
+    const std::vector<keyboard_shortcut_viewer::AcceleratorId>&
+        accelerator_ids) {
+  std::vector<std::string> msgs;
+  for (const auto& id : accelerator_ids)
+    msgs.emplace_back(AcceleratorIdToString(id));
+  return base::JoinString(msgs, ", ");
+}
+
+class KeyboardShortcutViewerMetadataTest : public testing::Test {
+ public:
+  KeyboardShortcutViewerMetadataTest() = default;
+  ~KeyboardShortcutViewerMetadataTest() override = default;
+
+  void SetUp() override {
+    for (size_t i = 0; i < ash::kAcceleratorDataLength; ++i) {
+      const ash::AcceleratorData& accel_data = ash::kAcceleratorData[i];
+      ash_accelerator_ids_.insert({accel_data.keycode, accel_data.modifiers});
+    }
+
+    for (const auto& accel_mapping : GetAcceleratorList()) {
+      chrome_accelerator_ids_.insert(
+          {accel_mapping.keycode, accel_mapping.modifiers});
+    }
+
+    testing::Test::SetUp();
+  }
+
+ protected:
+  // Ash accelerator ids.
+  std::set<keyboard_shortcut_viewer::AcceleratorId> ash_accelerator_ids_;
+
+  // Chrome accelerator ids.
+  std::set<keyboard_shortcut_viewer::AcceleratorId> chrome_accelerator_ids_;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(KeyboardShortcutViewerMetadataTest);
+};
+
+}  // namespace
+
+// Test that AcceleratorId has at least one corresponding accelerators in ash or
+// chrome. Some |accelerator_id| might exist in both accelerator_tables, such as
+// new window and new tab.
+TEST_F(KeyboardShortcutViewerMetadataTest, CheckAcceleratorIdHasAccelerator) {
+  for (const auto& shortcut_item :
+       keyboard_shortcut_viewer::GetKeyboardShortcutItemList()) {
+    for (const auto& accelerator_id : shortcut_item.accelerator_ids) {
+      int number_of_accelerator = ash_accelerator_ids_.count(accelerator_id) +
+                                  chrome_accelerator_ids_.count(accelerator_id);
+      EXPECT_GE(number_of_accelerator, 1)
+          << "accelerator_id has no corresponding accelerator: "
+          << AcceleratorIdToString(accelerator_id);
+    }
+  }
+}
+
+// Test that AcceleratorIds have no duplicates.
+TEST_F(KeyboardShortcutViewerMetadataTest, CheckAcceleratorIdsNoDuplicates) {
+  std::set<keyboard_shortcut_viewer::AcceleratorId> accelerator_ids;
+  for (const auto& shortcut_item :
+       keyboard_shortcut_viewer::GetKeyboardShortcutItemList()) {
+    for (const auto& accelerator_id : shortcut_item.accelerator_ids) {
+      EXPECT_TRUE(accelerator_ids.insert(accelerator_id).second)
+          << "Has duplicated accelerator_id: "
+          << AcceleratorIdToString(accelerator_id);
+    }
+  }
+}
+
+// Test that |shortcut_key_codes| and |accelerator_ids| cannot be both empty.
+TEST_F(KeyboardShortcutViewerMetadataTest,
+       CheckShortcutKeyCodesAndAcceleratorIdsNotBothEmpty) {
+  for (const auto& shortcut_item :
+       keyboard_shortcut_viewer::GetKeyboardShortcutItemList()) {
+    EXPECT_TRUE(!shortcut_item.shortcut_key_codes.empty() ||
+                !shortcut_item.accelerator_ids.empty())
+        << "shortcut_key_codes and accelerator_ids cannot be both empty.";
+  }
+}
+
+// Test that metadata with empty |shortcut_key_codes| and grouped AcceleratorIds
+// should have the same modifiers.
+TEST_F(KeyboardShortcutViewerMetadataTest,
+       CheckModifiersEqualForGroupedAcceleratorIdsWithEmptyShortcutKeyCodes) {
+  for (const auto& shortcut_item :
+       keyboard_shortcut_viewer::GetKeyboardShortcutItemList()) {
+    // This test only checks metadata with empty |shortcut_key_codes| and
+    // grouped |accelerator_ids|.
+    if (!shortcut_item.shortcut_key_codes.empty() ||
+        shortcut_item.accelerator_ids.size() <= 1)
+      continue;
+
+    const int modifiers = shortcut_item.accelerator_ids[0].modifiers;
+    for (const auto& accelerator_id : shortcut_item.accelerator_ids) {
+      EXPECT_EQ(modifiers, accelerator_id.modifiers)
+          << "Grouped accelerator_ids with empty shortcut_key_codes should "
+             "have same modifiers: "
+          << AcceleratorIdsToString(shortcut_item.accelerator_ids);
+    }
+  }
+}
diff --git a/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.cc b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.cc
new file mode 100644
index 0000000..77ab7b3
--- /dev/null
+++ b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.cc
@@ -0,0 +1,13 @@
+// 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/ash/ksv/keyboard_shortcut_viewer_util.h"
+
+namespace keyboard_shortcut_viewer_util {
+
+void ShowKeyboardShortcutViewer() {
+  // TODO(wutao): create KSV window.
+}
+
+}  // namespace keyboard_shortcut_viewer_util
diff --git a/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.h b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.h
new file mode 100644
index 0000000..a8794c2
--- /dev/null
+++ b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_util.h
@@ -0,0 +1,15 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_UI_ASH_KSV_KEYBOARD_SHORTCUT_VIEWER_UTIL_H_
+#define CHROME_BROWSER_UI_ASH_KSV_KEYBOARD_SHORTCUT_VIEWER_UTIL_H_
+
+namespace keyboard_shortcut_viewer_util {
+
+// Show the keyboard shortcut viewer.
+void ShowKeyboardShortcutViewer();
+
+}  // namespace keyboard_shortcut_viewer_util
+
+#endif  // CHROME_BROWSER_UI_ASH_KSV_KEYBOARD_SHORTCUT_VIEWER_UTIL_H_
diff --git a/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc b/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
index 2c33fc97..ed3932f 100644
--- a/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
+++ b/chrome/browser/ui/blocked_content/popup_opener_tab_helper_unittest.cc
@@ -201,14 +201,14 @@
   histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
 }
 
-TEST_F(PopupOpenerTabHelperTest, VisibleNavigation_NoLogging) {
+TEST_F(PopupOpenerTabHelperTest, VisibleNavigation_LogsMetrics) {
   NavigateAndCommitWithoutGesture(GURL("https://first.test/"));
   SimulatePopup();
   web_contents()->WasShown();
   NavigateAndCommitWithoutGesture(GURL("https://example.test/"));
   raw_clock()->Advance(base::TimeDelta::FromMinutes(1));
   DeleteContents();
-  histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 0);
+  histogram_tester()->ExpectTotalCount(kTabUnderVisibleTime, 1);
 }
 
 // This is counter intuitive, but we want to log metrics in the dry-run state if
@@ -478,35 +478,6 @@
   ExpectUIShown(true);
 }
 
-// Ensure that even though the *redirect* occurred in the background, if the
-// navigation started in the foreground there is no blocking.
-TEST_F(BlockTabUnderTest,
-       TabUnderCrossOriginRedirectFromForeground_IsNotBlocked) {
-  EXPECT_TRUE(NavigateAndCommitWithoutGesture(GURL("https://first.test/")));
-  SimulatePopup();
-
-  web_contents()->WasShown();
-
-  // Navigate to a same-origin URL that redirects cross origin.
-  const GURL same_origin("https://first.test/path");
-  const GURL cross_origin("https://example.test/");
-  std::unique_ptr<content::NavigationSimulator> simulator =
-      content::NavigationSimulator::CreateRendererInitiated(same_origin,
-                                                            main_rfh());
-  simulator->SetHasUserGesture(false);
-  simulator->Start();
-  EXPECT_EQ(content::NavigationThrottle::PROCEED,
-            simulator->GetLastThrottleCheckResult());
-
-  web_contents()->WasHidden();
-
-  simulator->Redirect(cross_origin);
-  EXPECT_EQ(content::NavigationThrottle::PROCEED,
-            simulator->GetLastThrottleCheckResult());
-  simulator->Commit();
-  ExpectUIShown(false);
-}
-
 // There is no time limit to this intervention. Explicitly test that navigations
 // will be blocked for even days until the tab receives another user gesture.
 TEST_F(BlockTabUnderTest, TabUnderWithLongWait_IsBlocked) {
diff --git a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
index d58e5b87..67ca35c 100644
--- a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
+++ b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker.cc
@@ -36,8 +36,8 @@
 
 using safe_browsing::SubresourceFilterLevel;
 
-const base::Feature kAbusiveExperienceEnforce{
-    "AbusiveExperienceEnforce", base::FEATURE_DISABLED_BY_DEFAULT};
+const base::Feature kAbusiveExperienceEnforce{"AbusiveExperienceEnforce",
+                                              base::FEATURE_ENABLED_BY_DEFAULT};
 
 SafeBrowsingTriggeredPopupBlocker::PageData::PageData() = default;
 
diff --git a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc
index 78803aa..992bd6f 100644
--- a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc
+++ b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_browsertest.cc
@@ -259,7 +259,7 @@
                        NoFeature_AllowCreatingNewWindows) {
   // Disable Abusive enforcement.
   base::test::ScopedFeatureList scoped_feature_list;
-  scoped_feature_list.InitFromCommandLine("", "AbusiveAdEnforcement");
+  scoped_feature_list.InitAndDisableFeature(kAbusiveExperienceEnforce);
   // Open a new tab to ensure it has the right variation params.
   chrome::NewTab(browser());
   ASSERT_NO_FATAL_FAILURE(content::WaitForLoadStop(web_contents()));
@@ -337,7 +337,7 @@
   // SubresourceFilter.
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitFromCommandLine("SubresourceFilter",
-                                          "AbusiveAdEnforcement");
+                                          "AbusiveExperienceEnforce");
   // Open a new tab to ensure it has the right variation params.
   chrome::NewTab(browser());
   ASSERT_NO_FATAL_FAILURE(content::WaitForLoadStop(web_contents()));
diff --git a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
index fa300fe..ad73bb7 100644
--- a/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
+++ b/chrome/browser/ui/blocked_content/safe_browsing_triggered_popup_blocker_unittest.cc
@@ -198,10 +198,11 @@
   EXPECT_TRUE(GetMainFrameConsoleMessages().empty());
 }
 
-TEST_F(SafeBrowsingTriggeredPopupBlockerTest, NoFeature_NoCreating) {
+TEST_F(SafeBrowsingTriggeredPopupBlockerTest, FeatureEnabledByDefault) {
+  ResetFeatureAndGet();
   EXPECT_NE(nullptr,
             SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents()));
-  ResetFeatureAndGet();
+  ResetFeatureAndGet()->InitAndDisableFeature(kAbusiveExperienceEnforce);
   EXPECT_EQ(nullptr,
             SafeBrowsingTriggeredPopupBlocker::MaybeCreate(web_contents()));
 }
diff --git a/chrome/browser/ui/blocked_content/tab_under_blocker_browsertest.cc b/chrome/browser/ui/blocked_content/tab_under_blocker_browsertest.cc
index 5544f1b4..57723c4 100644
--- a/chrome/browser/ui/blocked_content/tab_under_blocker_browsertest.cc
+++ b/chrome/browser/ui/blocked_content/tab_under_blocker_browsertest.cc
@@ -142,3 +142,35 @@
   EXPECT_TRUE(console_observer.message().empty());
   EXPECT_FALSE(IsUiShownForUrl(opener, cross_origin_url));
 }
+
+// Test for crbug.com/733736, where a spoof shift-click does not trigger
+// tab-under because the subsequent navigation is not considered to be in the
+// background.
+IN_PROC_BROWSER_TEST_F(TabUnderBlockerBrowserTest,
+                       SpoofShiftClickTabUnder_IsBlocked) {
+  content::WebContents* opener =
+      browser()->tab_strip_model()->GetActiveWebContents();
+  ui_test_utils::NavigateToURL(browser(),
+                               embedded_test_server()->GetURL("/links.html"));
+  const std::string cross_origin_url =
+      embedded_test_server()->GetURL("a.com", "/title1.html").spec();
+
+  const std::string script = R"(
+    var evt = new MouseEvent("click", {
+      view : window,
+      shiftKey : true
+    });
+    document.getElementById("title1").dispatchEvent(evt);
+    window.location = "%s";
+  )";
+
+  content::TestNavigationObserver navigation_observer(nullptr, 1);
+  content::TestNavigationObserver tab_under_observer(opener, 1);
+  navigation_observer.StartWatchingNewWebContents();
+  EXPECT_TRUE(content::ExecuteScript(
+      opener,
+      base::StringPrintf(script.c_str(), cross_origin_url.c_str()).c_str()));
+  navigation_observer.Wait();
+  tab_under_observer.Wait();
+  EXPECT_FALSE(tab_under_observer.last_navigation_succeeded());
+}
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
index fdc1e511..5ace024 100644
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.cc
@@ -130,12 +130,11 @@
 
 // static
 bool TabUnderNavigationThrottle::IsSuspiciousClientRedirect(
-    content::NavigationHandle* navigation_handle,
-    bool started_in_background) {
+    content::NavigationHandle* navigation_handle) {
   // Some browser initiated navigations have HasUserGesture set to false. This
   // should eventually be fixed in crbug.com/617904. In the meantime, just dont
   // block browser initiated ones.
-  if (!started_in_background || !navigation_handle->IsInMainFrame() ||
+  if (!navigation_handle->IsInMainFrame() ||
       navigation_handle->HasUserGesture() ||
       !navigation_handle->IsRendererInitiated()) {
     return false;
@@ -167,7 +166,7 @@
 
   if (!seen_tab_under_ && popup_opener &&
       popup_opener->has_opened_popup_since_last_user_gesture() &&
-      IsSuspiciousClientRedirect(navigation_handle(), started_in_background_)) {
+      IsSuspiciousClientRedirect(navigation_handle())) {
     seen_tab_under_ = true;
     popup_opener->OnDidTabUnder();
 
@@ -210,7 +209,6 @@
 content::NavigationThrottle::ThrottleCheckResult
 TabUnderNavigationThrottle::WillStartRequest() {
   LogAction(Action::kStarted, off_the_record_);
-  started_in_background_ = !navigation_handle()->GetWebContents()->IsVisible();
   return MaybeBlockNavigation();
 }
 
diff --git a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.h b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.h
index 3f65fbc..c5a55a7 100644
--- a/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.h
+++ b/chrome/browser/ui/blocked_content/tab_under_navigation_throttle.h
@@ -70,14 +70,9 @@
 
   // This method is described at the top of this file.
   //
-  // Note: Pass in |started_in_background| because depending on the state the
-  // navigation is in, we need additional data to determine whether it started
-  // in the background.
-  //
   // Note: This method should be robust to navigations at any stage.
   static bool IsSuspiciousClientRedirect(
-      content::NavigationHandle* navigation_handle,
-      bool started_in_background);
+      content::NavigationHandle* navigation_handle);
 
   content::NavigationThrottle::ThrottleCheckResult MaybeBlockNavigation();
   void ShowUI();
@@ -92,8 +87,6 @@
   // the time.
   bool off_the_record_ = false;
 
-  bool started_in_background_ = false;
-
   // True if the experiment is turned on and the class should actually attempt
   // to block tab-unders.
   bool block_ = false;
diff --git a/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc b/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc
index 7112521..4d5deeaa 100644
--- a/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc
+++ b/chrome/browser/ui/bluetooth/bluetooth_chooser_controller.cc
@@ -45,7 +45,7 @@
 BluetoothChooserController::~BluetoothChooserController() {}
 
 bool BluetoothChooserController::ShouldShowIconBeforeText() const {
-  return true;
+  return devices_.size() > 0;
 }
 
 bool BluetoothChooserController::ShouldShowReScanButton() const {
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index bf2e95a2..31f3e73 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -179,14 +179,11 @@
 }
 
 #if BUILDFLAG(ENABLE_EXTENSIONS)
-bool GetBookmarkOverrideCommand(
-    Profile* profile,
-    const extensions::Extension** extension,
-    extensions::Command* command,
-    extensions::CommandService::ExtensionCommandType* command_type) {
+bool GetBookmarkOverrideCommand(Profile* profile,
+                                const extensions::Extension** extension,
+                                extensions::Command* command) {
   DCHECK(extension);
   DCHECK(command);
-  DCHECK(command_type);
 
   ui::Accelerator bookmark_page_accelerator =
       chrome::GetPrimaryChromeAcceleratorForCommandId(IDC_BOOKMARK_PAGE);
@@ -201,13 +198,10 @@
        i != extension_set.end();
        ++i) {
     extensions::Command prospective_command;
-    extensions::CommandService::ExtensionCommandType prospective_command_type;
     if (command_service->GetSuggestedExtensionCommand(
-            (*i)->id(), bookmark_page_accelerator, &prospective_command,
-            &prospective_command_type)) {
+            (*i)->id(), bookmark_page_accelerator, &prospective_command)) {
       *extension = i->get();
       *command = prospective_command;
-      *command_type = prospective_command_type;
       return true;
     }
   }
@@ -801,17 +795,13 @@
 #if BUILDFLAG(ENABLE_EXTENSIONS)
   const extensions::Extension* extension = NULL;
   extensions::Command command;
-  extensions::CommandService::ExtensionCommandType command_type;
-  if (GetBookmarkOverrideCommand(browser->profile(),
-                                 &extension,
-                                 &command,
-                                 &command_type)) {
-    switch (command_type) {
-      case extensions::CommandService::NAMED:
+  if (GetBookmarkOverrideCommand(browser->profile(), &extension, &command)) {
+    switch (command.type()) {
+      case extensions::Command::Type::kNamed:
         browser->window()->ExecuteExtensionCommand(extension, command);
         break;
-      case extensions::CommandService::BROWSER_ACTION:
-      case extensions::CommandService::PAGE_ACTION:
+      case extensions::Command::Type::kBrowserAction:
+      case extensions::Command::Type::kPageAction:
         // BookmarkCurrentPage is called through a user gesture, so it is safe
         // to grant the active tab permission.
         extensions::ExtensionActionAPI::Get(browser->profile())->
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index 14983e3..7673864 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -145,10 +145,14 @@
              browser_it != BrowserList::GetInstance()->end_last_active();
              ++browser_it) {
           Browser* browser = *browser_it;
-          // Only look at same profile (and anonymity level).
+          // When tab switching, only look at same profile and anonymity
+          // level. Allow SINGLETON to transition from incognito mode.
           if (browser->profile()->IsSameProfile(profile) &&
-              browser->profile()->GetProfileType() ==
-                  profile->GetProfileType()) {
+              (browser->profile()->GetProfileType() ==
+                   profile->GetProfileType() ||
+               (params.disposition == WindowOpenDisposition::SINGLETON_TAB &&
+                profile->GetProfileType() ==
+                    Profile::ProfileType::INCOGNITO_PROFILE))) {
             int index = GetIndexOfExistingTab(browser, params);
             if (index >= 0)
               return {browser, index};
diff --git a/chrome/browser/ui/browser_navigator_browsertest.cc b/chrome/browser/ui/browser_navigator_browsertest.cc
index 38fb35e..4bb96f3 100644
--- a/chrome/browser/ui/browser_navigator_browsertest.cc
+++ b/chrome/browser/ui/browser_navigator_browsertest.cc
@@ -219,6 +219,18 @@
   ++created_tab_contents_count_;
 }
 
+Browser* BrowserNavigatorTest::NavigateHelper(
+    const GURL& url,
+    Browser* browser,
+    WindowOpenDisposition disposition) {
+  NavigateParams params(MakeNavigateParams(browser));
+  params.disposition = disposition;
+  params.url = url;
+  params.window_action = NavigateParams::SHOW_WINDOW;
+  Navigate(&params);
+  return params.browser;
+}
+
 namespace {
 
 // This test verifies that when a navigation occurs within a tab, the tab count
@@ -638,70 +650,117 @@
 // switch to. It verifies that we don't recommend the active tab, and that,
 // when switching, we don't mistakenly pick the current browser.
 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, SingletonCorrectWindow) {
-  // Make singleton tab.
-  NavigateParams params1(MakeNavigateParams());
-  params1.disposition = WindowOpenDisposition::CURRENT_TAB;
-  params1.url = GURL("http://maps.google.com/");
-  params1.window_action = NavigateParams::SHOW_WINDOW;
-  Navigate(&params1);
-  Browser* save_browser = browser();
+  GURL singleton_url("http://maps.google.com/");
 
-  // Make a new window.
-  NavigateParams params2(MakeNavigateParams());
-  params2.disposition = WindowOpenDisposition::NEW_WINDOW;
-  params2.window_action = NavigateParams::SHOW_WINDOW;
-  Navigate(&params2);
+  // Make singleton tab.
+  Browser* orig_browser = NavigateHelper(singleton_url, browser(),
+                                         WindowOpenDisposition::CURRENT_TAB);
+
+  // Make a new window with different URL.
+  NavigateHelper(GURL("http://www.google.com/"), browser(),
+                 WindowOpenDisposition::NEW_WINDOW);
 
   ChromeAutocompleteProviderClient client(browser()->profile());
   // We avoid recommending the active tab, because during navigation, we
   // actively avoid it (because the user almost certainly doesn't want to
   // switch to the tab they're already on). While we are not on the target
-  // tab, make sure the provider client recommends our it.
-  EXPECT_TRUE(client.IsTabOpenWithURL(params1.url));
+  // tab, make sure the provider client recommends our other window.
+  EXPECT_TRUE(client.IsTabOpenWithURL(singleton_url));
 
   // Navigate to the singleton again.
-  params1.disposition = WindowOpenDisposition::SINGLETON_TAB;
-  Navigate(&params1);
+  Browser* test_browser = NavigateHelper(singleton_url, browser(),
+                                         WindowOpenDisposition::SINGLETON_TAB);
 
   // Make sure we chose the browser with the tab, not simply the current
   // browser.
-  EXPECT_EQ(save_browser, browser());
+  EXPECT_EQ(orig_browser, test_browser);
   // Now that we're on the tab, make sure the provider client doesn't
   // recommend it.
-  EXPECT_FALSE(client.IsTabOpenWithURL(params1.url));
+  EXPECT_FALSE(client.IsTabOpenWithURL(singleton_url));
 }
 
 // This test verifies that navigation to a singleton prefers the latest
 // used browser, if multiple exist.
 IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, SingletonLatestWindow) {
   // Navigate to a site.
-  NavigateParams params1(MakeNavigateParams());
-  params1.disposition = WindowOpenDisposition::CURRENT_TAB;
-  params1.url = GURL("http://maps.google.com/");
-  params1.window_action = NavigateParams::SHOW_WINDOW;
-  Navigate(&params1);
+  NavigateHelper(GURL("http://maps.google.com/"), browser(),
+                 WindowOpenDisposition::CURRENT_TAB);
 
   // Navigate to a new window.
-  NavigateParams params2(MakeNavigateParams());
-  params2.disposition = WindowOpenDisposition::NEW_WINDOW;
-  params2.url = GURL("http://maps.google.com/");
-  params2.window_action = NavigateParams::SHOW_WINDOW;
-  Navigate(&params2);
-  Browser* save_browser = browser();
+  Browser* browser1 = NavigateHelper(GURL("http://maps.google.com/"), browser(),
+                                     WindowOpenDisposition::NEW_WINDOW);
 
   // Make yet another window.
-  NavigateParams params3(MakeNavigateParams());
-  params3.disposition = WindowOpenDisposition::NEW_WINDOW;
-  params3.window_action = NavigateParams::SHOW_WINDOW;
-  Navigate(&params3);
+  Browser* browser2 = NavigateHelper(GURL("http://maps.google.com/"), browser(),
+                                     WindowOpenDisposition::NEW_WINDOW);
 
   // Navigate to the latest copy of the URL, in spite of specifying
-  // the current browser.
-  params2.browser = browser();
-  params2.disposition = WindowOpenDisposition::SINGLETON_TAB;
-  Navigate(&params2);
+  // the previous browser.
+  Browser* test_browser =
+      NavigateHelper(GURL("http://maps.google.com/"), browser1,
+                     WindowOpenDisposition::SINGLETON_TAB);
 
-  EXPECT_EQ(save_browser, browser());
+  EXPECT_EQ(browser2, test_browser);
+}
+
+// Tests that a disposition of SINGLETON_TAB can "see" non-incognito
+// tab URLs from incognito mode, but not vice versa, and that a
+// disposition of SWITCH_TO_TAB can't transition either direction.
+IN_PROC_BROWSER_TEST_F(BrowserNavigatorTest, SingletonProfileLeak) {
+  // Navigate to a site.
+  NavigateHelper(GURL("http://maps.google.com/"), browser(),
+                 WindowOpenDisposition::CURRENT_TAB);
+
+  // Open settings for finding later.
+  NavigateHelper(GURL("chrome://settings"), browser(),
+                 WindowOpenDisposition::NEW_FOREGROUND_TAB);
+
+  // Also open about for searching too.
+  NavigateHelper(GURL("chrome://about"), browser(),
+                 WindowOpenDisposition::NEW_FOREGROUND_TAB);
+
+  // Sanity check that the above created 3 separate tabs.
+  EXPECT_EQ(3, browser()->tab_strip_model()->count());
+
+  Browser* test_browser;
+
+  {
+    Browser* incognito_browser = CreateIncognitoBrowser();
+
+    test_browser = NavigateHelper(GURL("chrome://downloads"), incognito_browser,
+                                  WindowOpenDisposition::OFF_THE_RECORD);
+    // Sanity check where OTR tab landed.
+    EXPECT_NE(browser(), test_browser);
+    EXPECT_EQ(incognito_browser, test_browser);
+
+    // Make another for switch-to-tab to try and find.
+    NavigateHelper(GURL("chrome://history"), incognito_browser,
+                   WindowOpenDisposition::NEW_FOREGROUND_TAB);
+
+    // Try to open the original chrome://about via switch-to-tab. Should not
+    // find copy in regular browser, and open new tab in incognito.
+    test_browser = NavigateHelper(GURL("chrome://about"), incognito_browser,
+                                  WindowOpenDisposition::SWITCH_TO_TAB);
+    EXPECT_EQ(incognito_browser, test_browser);
+
+    // Open settings singleton. Should find in regular browser and switch
+    // to it.
+    test_browser = NavigateHelper(GURL("chrome://settings"), incognito_browser,
+                                  WindowOpenDisposition::SINGLETON_TAB);
+    EXPECT_EQ(browser(), test_browser);
+  }
+
+  // Open downloads singleton. Should not search OTR browser and
+  // should open in regular browser.
+  test_browser = NavigateHelper(GURL("chrome://downloads"), browser(),
+                                WindowOpenDisposition::SINGLETON_TAB);
+  EXPECT_EQ(browser(), test_browser);
+
+  // Likewise, switch-to-tab shouldn't find the incognito tab either,
+  // and open new one in current browser.
+  test_browser = NavigateHelper(GURL("chrome://history"), browser(),
+                                WindowOpenDisposition::SWITCH_TO_TAB);
+  EXPECT_EQ(browser(), test_browser);
 }
 
 #if defined(OS_MACOSX) && defined(ADDRESS_SANITIZER)
diff --git a/chrome/browser/ui/browser_navigator_browsertest.h b/chrome/browser/ui/browser_navigator_browsertest.h
index 37d7a9d..732a1ab5 100644
--- a/chrome/browser/ui/browser_navigator_browsertest.h
+++ b/chrome/browser/ui/browser_navigator_browsertest.h
@@ -48,6 +48,10 @@
                                                 bool is_browser_initiated,
                                                 base::string16* title);
 
+  Browser* NavigateHelper(const GURL& url,
+                          Browser* browser,
+                          WindowOpenDisposition disposition);
+
   size_t created_tab_contents_count_;
 };
 
diff --git a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
index e5d501b..594ea77 100644
--- a/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
+++ b/chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.mm
@@ -215,9 +215,8 @@
 
 void OmniboxViewMac::OnTabChanged(const WebContents* web_contents) {
   const OmniboxViewMacState* state = GetStateFromTab(web_contents);
-  model()->RestoreState(
-      controller()->GetToolbarModel()->GetFormattedURL(nullptr),
-      state ? &state->model_state : NULL);
+  model()->RestoreState(controller()->GetToolbarModel()->GetFormattedFullURL(),
+                        state ? &state->model_state : NULL);
   // Restore focus and selection if they were present when the tab
   // was switched away.
   if (state && state->has_focus) {
@@ -239,7 +238,7 @@
 
 void OmniboxViewMac::Update() {
   if (model()->SetPermanentText(
-          controller()->GetToolbarModel()->GetFormattedURL(nullptr))) {
+          controller()->GetToolbarModel()->GetFormattedFullURL())) {
     // Restore everything to the baseline look.
     RevertAll();
 
diff --git a/chrome/browser/ui/cocoa/status_bubble_mac.mm b/chrome/browser/ui/cocoa/status_bubble_mac.mm
index f70d9ae..92dccb9b 100644
--- a/chrome/browser/ui/cocoa/status_bubble_mac.mm
+++ b/chrome/browser/ui/cocoa/status_bubble_mac.mm
@@ -201,8 +201,8 @@
       gfx::Font(gfx::PlatformFont::CreateFromNativeFont(font)));
 
   base::string16 original_url_text = url_formatter::FormatUrl(url);
-  base::string16 status =
-      url_formatter::ElideUrl(url, font_list_chr, text_width);
+  base::string16 status = url_formatter::ElideUrl(
+      url, font_list_chr, text_width, gfx::Typesetter::BROWSER);
 
   SetText(status, true);
 
@@ -669,7 +669,7 @@
   gfx::FontList font_list_chr(
       gfx::Font(gfx::PlatformFont::CreateFromNativeFont(font)));
   base::string16 expanded_url = url_formatter::ElideUrl(
-      url_, font_list_chr, max_bubble_width);
+      url_, font_list_chr, max_bubble_width, gfx::Typesetter::BROWSER);
 
   // Scale width from gfx::Font in view coordinates to window coordinates.
   int required_width_for_string =
diff --git a/chrome/browser/ui/content_settings/content_setting_bubble_model_browsertest.cc b/chrome/browser/ui/content_settings/content_setting_bubble_model_browsertest.cc
index a70e500..4f143f0 100644
--- a/chrome/browser/ui/content_settings/content_setting_bubble_model_browsertest.cc
+++ b/chrome/browser/ui/content_settings/content_setting_bubble_model_browsertest.cc
@@ -301,12 +301,11 @@
   }
 };
 
-// TODO: Flaking test crbug.com/802281
 // Tests that a MIXEDSCRIPT type ContentSettingBubbleModel sends appropriate
 // IPCs to allow the renderer to load unsafe scripts inside out-of-processs
 // iframes.
 IN_PROC_BROWSER_TEST_F(ContentSettingBubbleModelMixedScriptOopifTest,
-                       DISABLED_MixedContentInCrossSiteIframe) {
+                       MixedContentInCrossSiteIframe) {
   // Create a URL for the mixed content document and append it as a query
   // string to the main URL. This approach is taken because the test servers
   // run on random ports each time and it is not possible to use a static
diff --git a/chrome/browser/ui/global_error/global_error_browsertest.cc b/chrome/browser/ui/global_error/global_error_browsertest.cc
index 130a835b..f8cba1a 100644
--- a/chrome/browser/ui/global_error/global_error_browsertest.cc
+++ b/chrome/browser/ui/global_error/global_error_browsertest.cc
@@ -9,7 +9,6 @@
 #include "build/build_config.h"
 #include "chrome/browser/browser_process.h"
 #include "chrome/browser/chrome_notification_types.h"
-#include "chrome/browser/extensions/extension_creator.h"
 #include "chrome/browser/extensions/extension_disabled_ui.h"
 #include "chrome/browser/extensions/extension_error_controller.h"
 #include "chrome/browser/extensions/extension_error_ui_default.h"
@@ -25,6 +24,7 @@
 #include "chrome/common/chrome_paths.h"
 #include "chrome/common/pref_names.h"
 #include "content/public/test/test_utils.h"
+#include "extensions/browser/extension_creator.h"
 #include "extensions/browser/extension_prefs.h"
 #include "extensions/browser/extension_registry.h"
 #include "extensions/browser/extension_system.h"
diff --git a/chrome/browser/ui/tabs/tab_ukm_test_helper.cc b/chrome/browser/ui/tabs/tab_ukm_test_helper.cc
index 115e8c32..ef1af81 100644
--- a/chrome/browser/ui/tabs/tab_ukm_test_helper.cc
+++ b/chrome/browser/ui/tabs/tab_ukm_test_helper.cc
@@ -119,9 +119,12 @@
   num_entries_[entry_name]++;  // There should only be 1 more entry than before.
   std::vector<const ukm::mojom::UkmEntry*> entries =
       ukm_recorder_.GetEntriesByName(entry_name);
-  EXPECT_EQ(NumEntries(entry_name), entries.size());
+  EXPECT_EQ(num_entries_[entry_name], entries.size())
+      << "Expected " << num_entries_[entry_name] << " entries, found "
+      << entries.size() << " for " << entry_name;
 
   // Verify the entry is associated with the correct URL.
+  ASSERT_FALSE(entries.empty());
   const ukm::mojom::UkmEntry* entry = entries.back();
   if (!source_url.is_empty())
     ukm_recorder_.ExpectEntrySourceHasUrl(entry, source_url);
diff --git a/chrome/browser/ui/tabs/window_activity_watcher.cc b/chrome/browser/ui/tabs/window_activity_watcher.cc
index bb093ee..e2bde563 100644
--- a/chrome/browser/ui/tabs/window_activity_watcher.cc
+++ b/chrome/browser/ui/tabs/window_activity_watcher.cc
@@ -4,21 +4,27 @@
 
 #include "chrome/browser/ui/tabs/window_activity_watcher.h"
 
+#include "base/optional.h"
+#include "base/scoped_observer.h"
+#include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/browser_window.h"
 #include "chrome/browser/ui/tabs/tab_metrics_event.pb.h"
+#include "services/metrics/public/cpp/metrics_utils.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/cpp/ukm_recorder.h"
 #include "services/metrics/public/cpp/ukm_source_id.h"
 
-using WindowMetrics = WindowActivityWatcher::WindowMetrics;
 using metrics::WindowMetricsEvent;
 
-struct WindowActivityWatcher::WindowMetrics {
+namespace {
+
+struct WindowMetrics {
   bool operator==(const WindowMetrics& other) {
-    return window_id == other.window_id && show_state == other.show_state &&
-           type == other.type;
+    return window_id == other.window_id && type == other.type &&
+           show_state == other.show_state && is_active == other.is_active &&
+           tab_count == other.tab_count;
   }
 
   bool operator!=(const WindowMetrics& other) { return !operator==(other); }
@@ -28,9 +34,28 @@
   WindowMetricsEvent::Type type;
   // TODO(michaelpg): Observe the show state and log when it changes.
   WindowMetricsEvent::ShowState show_state;
+
+  // True if this is the active (frontmost) window.
+  bool is_active;
+
+  // Number of tabs in the tab strip.
+  int tab_count;
 };
 
-namespace {
+// Sets metric values that are dependent on the current window state.
+void UpdateMetrics(const Browser* browser, WindowMetrics* window_metrics) {
+  if (browser->window()->IsFullscreen())
+    window_metrics->show_state = WindowMetricsEvent::SHOW_STATE_FULLSCREEN;
+  else if (browser->window()->IsMinimized())
+    window_metrics->show_state = WindowMetricsEvent::SHOW_STATE_MINIMIZED;
+  else if (browser->window()->IsMaximized())
+    window_metrics->show_state = WindowMetricsEvent::SHOW_STATE_MAXIMIZED;
+  else
+    window_metrics->show_state = WindowMetricsEvent::SHOW_STATE_NORMAL;
+
+  window_metrics->is_active = browser->window()->IsActive();
+  window_metrics->tab_count = browser->tab_strip_model()->count();
+}
 
 // Returns a populated WindowMetrics for the browser.
 WindowMetrics CreateMetrics(const Browser* browser) {
@@ -46,77 +71,135 @@
       break;
   }
 
-  if (browser->window()->IsFullscreen())
-    window_metrics.show_state = WindowMetricsEvent::SHOW_STATE_FULLSCREEN;
-  else if (browser->window()->IsMinimized())
-    window_metrics.show_state = WindowMetricsEvent::SHOW_STATE_MINIMIZED;
-  else if (browser->window()->IsMaximized())
-    window_metrics.show_state = WindowMetricsEvent::SHOW_STATE_MAXIMIZED;
-  else
-    window_metrics.show_state = WindowMetricsEvent::SHOW_STATE_NORMAL;
+  UpdateMetrics(browser, &window_metrics);
   return window_metrics;
 }
 
-// Logs a UKM entry with the corresponding metrics.
-void LogUkmEntry(const WindowMetrics& window_metrics) {
+// Logs a UKM entry with the metrics from |window_metrics|.
+void LogWindowMetricsUkmEntry(const WindowMetrics& window_metrics) {
   ukm::UkmRecorder* ukm_recorder = ukm::UkmRecorder::Get();
   if (!ukm_recorder)
     return;
 
   ukm::builders::TabManager_WindowMetrics entry(ukm::AssignNewSourceId());
   entry.SetWindowId(window_metrics.window_id)
+      .SetIsActive(window_metrics.is_active)
       .SetShowState(window_metrics.show_state)
-      .SetType(window_metrics.type)
-      .Record(ukm_recorder);
+      .SetType(window_metrics.type);
+
+  // Bucketize values for privacy considerations. Use a spacing factor that
+  // ensures values up to 3 can be logged exactly; after that, the precise
+  // number becomes less significant.
+  int tab_count = window_metrics.tab_count;
+  if (tab_count > 3)
+    tab_count = ukm::GetExponentialBucketMin(tab_count, 1.5);
+  entry.SetTabCount(tab_count);
+
+  entry.Record(ukm_recorder);
 }
 
 }  // namespace
 
+// Observes a browser window's tab strip and logs a WindowMetrics UKM event for
+// the window upon changes to metrics like TabCount.
+class WindowActivityWatcher::BrowserWatcher : public TabStripModelObserver {
+ public:
+  explicit BrowserWatcher(Browser* browser)
+      : browser_(browser), observer_(this) {
+    DCHECK(!browser->profile()->IsOffTheRecord());
+    MaybeLogWindowMetricsUkmEntry();
+    observer_.Add(browser->tab_strip_model());
+  }
+
+  ~BrowserWatcher() override = default;
+
+  // Logs a new WindowMetrics entry to the UKM recorder if the entry would be
+  // different than the last one we logged.
+  void MaybeLogWindowMetricsUkmEntry() {
+    // Do nothing if the window has no tabs (which can happen when a window is
+    // opened, before a tab is added) or is being closed.
+    if (browser_->tab_strip_model()->empty() ||
+        browser_->tab_strip_model()->closing_all()) {
+      return;
+    }
+
+    if (!last_window_metrics_) {
+      last_window_metrics_ = CreateMetrics(browser_);
+      LogWindowMetricsUkmEntry(last_window_metrics_.value());
+      return;
+    }
+
+    // Copy old state to compare with.
+    WindowMetrics old_metrics = last_window_metrics_.value();
+    UpdateMetrics(browser_, &last_window_metrics_.value());
+
+    // We only need to create a new UKM entry if the metrics have changed.
+    if (old_metrics != last_window_metrics_.value())
+      LogWindowMetricsUkmEntry(last_window_metrics_.value());
+  }
+
+ private:
+  // TabStripModelObserver:
+  void TabInsertedAt(TabStripModel* tab_strip_model,
+                     content::WebContents* contents,
+                     int index,
+                     bool foreground) override {
+    MaybeLogWindowMetricsUkmEntry();
+  }
+  void TabDetachedAt(content::WebContents* contents, int index) override {
+    MaybeLogWindowMetricsUkmEntry();
+  }
+
+  // The browser whose tab strip we track. WindowActivityWatcher should ensure
+  // this outlives us.
+  Browser* browser_;
+
+  // The most recent WindowMetrics entry logged. We only log a new UKM entry if
+  // some metric value has changed.
+  base::Optional<WindowMetrics> last_window_metrics_;
+
+  // Used to update the tab count for browser windows.
+  ScopedObserver<TabStripModel, TabStripModelObserver> observer_;
+
+  DISALLOW_COPY_AND_ASSIGN(BrowserWatcher);
+};
+
 // static
 WindowActivityWatcher* WindowActivityWatcher::GetInstance() {
   CR_DEFINE_STATIC_LOCAL(WindowActivityWatcher, instance, ());
   return &instance;
 }
 
-void WindowActivityWatcher::CreateOrUpdateWindowMetrics(
-    const Browser* browser) {
-  DCHECK(!browser->profile()->IsOffTheRecord());
-  SessionID::id_type window_id = browser->session_id().id();
-  const auto& existing_metrics_it = window_metrics_.find(window_id);
-
-  // We only need to create a new UKM entry if the metrics have changed or
-  // this browser hasn't been logged yet.
-  WindowMetrics new_metrics = CreateMetrics(browser);
-  if (existing_metrics_it == window_metrics_.end() ||
-      existing_metrics_it->second != new_metrics) {
-    LogUkmEntry(new_metrics);
-    window_metrics_[window_id] = new_metrics;
-  }
+WindowActivityWatcher::WindowActivityWatcher() {
+  BrowserList::AddObserver(this);
+  for (Browser* browser : *BrowserList::GetInstance())
+    OnBrowserAdded(browser);
 }
 
-WindowActivityWatcher::WindowActivityWatcher() : browser_list_observer_(this) {
-  browser_list_observer_.Add(BrowserList::GetInstance());
+WindowActivityWatcher::~WindowActivityWatcher() {
+  BrowserList::RemoveObserver(this);
 }
 
-WindowActivityWatcher::~WindowActivityWatcher() = default;
+bool WindowActivityWatcher::ShouldTrackBrowser(Browser* browser) {
+  // Don't track incognito browsers. This is also enforced by UKM.
+  return !browser->profile()->IsOffTheRecord();
+}
 
 void WindowActivityWatcher::OnBrowserAdded(Browser* browser) {
-  // Don't track incognito browsers. This is also enforced by UKM.
-  if (!browser->profile()->IsOffTheRecord())
-    CreateOrUpdateWindowMetrics(browser);
+  if (ShouldTrackBrowser(browser))
+    browser_watchers_[browser] = std::make_unique<BrowserWatcher>(browser);
 }
 
 void WindowActivityWatcher::OnBrowserRemoved(Browser* browser) {
-  if (!browser->profile()->IsOffTheRecord())
-    window_metrics_.erase(browser->session_id().id());
+  browser_watchers_.erase(browser);
 }
 
 void WindowActivityWatcher::OnBrowserSetLastActive(Browser* browser) {
-  if (!browser->profile()->IsOffTheRecord())
-    CreateOrUpdateWindowMetrics(browser);
+  if (ShouldTrackBrowser(browser))
+    browser_watchers_[browser]->MaybeLogWindowMetricsUkmEntry();
 }
 
 void WindowActivityWatcher::OnBrowserNoLongerActive(Browser* browser) {
-  if (!browser->profile()->IsOffTheRecord())
-    CreateOrUpdateWindowMetrics(browser);
+  if (ShouldTrackBrowser(browser))
+    browser_watchers_[browser]->MaybeLogWindowMetricsUkmEntry();
 }
diff --git a/chrome/browser/ui/tabs/window_activity_watcher.h b/chrome/browser/ui/tabs/window_activity_watcher.h
index 7c93cce..1d01221 100644
--- a/chrome/browser/ui/tabs/window_activity_watcher.h
+++ b/chrome/browser/ui/tabs/window_activity_watcher.h
@@ -5,15 +5,11 @@
 #ifndef CHROME_BROWSER_UI_TABS_WINDOW_ACTIVITY_WATCHER_H_
 #define CHROME_BROWSER_UI_TABS_WINDOW_ACTIVITY_WATCHER_H_
 
-#include <stddef.h>
+#include <memory>
 
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
-#include "base/scoped_observer.h"
 #include "chrome/browser/ui/browser_list_observer.h"
-#include "components/sessions/core/session_id.h"
-
-class BrowserList;
 
 // Observes browser window activity in order to log WindowMetrics UKMs for
 // browser events relative to tab activation and discarding.
@@ -22,32 +18,26 @@
 // TODO(michaelpg): Observe app and ARC++ windows as well.
 class WindowActivityWatcher : public BrowserListObserver {
  public:
-  // Represents a UKM entry for window metrics.
-  struct WindowMetrics;
+  class BrowserWatcher;
 
   // Returns the single instance, creating it if necessary.
   static WindowActivityWatcher* GetInstance();
 
-  // Ensures the window's current stats are logged.
-  // A new UKM entry will only be logged if an existing entry for the same
-  // window doesn't exist yet or has stale properties.
-  void CreateOrUpdateWindowMetrics(const Browser* browser);
-
  private:
   WindowActivityWatcher();
   ~WindowActivityWatcher() override;
 
+  bool ShouldTrackBrowser(Browser* browser);
+
   // BrowserListObserver:
   void OnBrowserAdded(Browser* browser) override;
   void OnBrowserRemoved(Browser* browser) override;
   void OnBrowserSetLastActive(Browser* browser) override;
   void OnBrowserNoLongerActive(Browser* browser) override;
 
-  ScopedObserver<BrowserList, BrowserListObserver> browser_list_observer_;
-
-  // Cache of WindowMetrics logged for each window. Used to avoid logging
-  // duplicate identical UKM events.
-  base::flat_map<SessionID::id_type, WindowMetrics> window_metrics_;
+  // Per-browser observers responsible for tracking the tab strip and logging
+  // new UKM entries on changes.
+  base::flat_map<Browser*, std::unique_ptr<BrowserWatcher>> browser_watchers_;
 
   DISALLOW_COPY_AND_ASSIGN(WindowActivityWatcher);
 };
diff --git a/chrome/browser/ui/tabs/window_activity_watcher_unittest.cc b/chrome/browser/ui/tabs/window_activity_watcher_unittest.cc
index 2eaca94..3820da30 100644
--- a/chrome/browser/ui/tabs/window_activity_watcher_unittest.cc
+++ b/chrome/browser/ui/tabs/window_activity_watcher_unittest.cc
@@ -5,15 +5,18 @@
 #include "chrome/browser/ui/tabs/window_activity_watcher.h"
 
 #include <memory>
+#include <vector>
 
 #include "base/macros.h"
+#include "base/memory/ptr_util.h"
+#include "base/strings/stringprintf.h"
 #include "chrome/browser/ui/browser.h"
 #include "chrome/browser/ui/browser_list.h"
 #include "chrome/browser/ui/tabs/tab_metrics_event.pb.h"
+#include "chrome/browser/ui/tabs/tab_ukm_test_helper.h"
 #include "chrome/test/base/test_browser_window.h"
 #include "chrome/test/base/testing_profile.h"
-#include "components/ukm/test_ukm_recorder.h"
-#include "content/public/test/test_browser_thread_bundle.h"
+#include "content/public/test/web_contents_tester.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "services/metrics/public/interfaces/ukm_interface.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -22,13 +25,10 @@
 using metrics::WindowMetricsEvent;
 using ukm::builders::TabManager_WindowMetrics;
 
-// A UKM entry consists of named metrics with int64_t values. Use a map to
-// specify expected metrics to test against an actual entry for tests.
-using UkmMetricMap = std::map<const char*, int64_t>;
-
 namespace {
 
 const char* kEntryName = TabManager_WindowMetrics::kEntryName;
+const char* kTestUrl = "https://example.com/";
 
 // TestBrowserWindow whose show state can be modified.
 class FakeBrowserWindow : public TestBrowserWindow {
@@ -48,28 +48,49 @@
     params->window = window;
     auto browser = std::make_unique<Browser>(*params);
     window->browser_ = browser.get();
+    window->Activate();
     return browser;
   }
 
   // TestBrowserWindow:
+  void Activate() override {
+    if (is_active_)
+      return;
+    is_active_ = true;
+    // With a real view, activating would update the BrowserList.
+    BrowserList::SetLastActive(browser_);
+  }
+  void Deactivate() override {
+    if (!is_active_)
+      return;
+    is_active_ = false;
+    // With a real view, deactivating would notify the BrowserList.
+    BrowserList::NotifyBrowserNoLongerActive(browser_);
+  }
+  bool IsActive() const override { return is_active_; }
   bool IsMaximized() const override {
     return show_state_ == ui::SHOW_STATE_MAXIMIZED;
   }
   bool IsMinimized() const override {
     return show_state_ == ui::SHOW_STATE_MINIMIZED;
   }
-  void Maximize() override { show_state_ = ui::SHOW_STATE_MAXIMIZED; }
+  void Maximize() override {
+    show_state_ = ui::SHOW_STATE_MAXIMIZED;
+    Activate();
+  }
   void Minimize() override {
     show_state_ = ui::SHOW_STATE_MINIMIZED;
-    BrowserList::NotifyBrowserNoLongerActive(browser_);
+    Deactivate();
   }
   void Restore() override {
     // This isn't true "restore" behavior.
     show_state_ = ui::SHOW_STATE_NORMAL;
+    Activate();
   }
 
  private:
   Browser* browser_;
+  bool is_active_ = false;
   ui::WindowShowState show_state_ = ui::SHOW_STATE_NORMAL;
 
   DISALLOW_COPY_AND_ASSIGN(FakeBrowserWindow);
@@ -79,73 +100,69 @@
 
 // Tests UKM entries generated by WindowMetricsLogger at the request of
 // WindowActivityWatcher.
-class WindowActivityWatcherTest : public testing::Test {
+class WindowActivityWatcherTest : public TabActivityTestBase {
  protected:
   WindowActivityWatcherTest() = default;
+  ~WindowActivityWatcherTest() override { EXPECT_FALSE(WasNewEntryRecorded()); }
 
-  // Expects that exactly one new TabManager.WindowMetrics entry has been
-  // recorded, and that it matches the values.
-  void ExpectNewEntry(const UkmMetricMap& expected_metrics) {
-    num_entries_++;  // There should only be 1 more entry than before.
-    std::vector<const ukm::mojom::UkmEntry*> entries =
-        ukm_recorder()->GetEntriesByName(kEntryName);
-    ASSERT_EQ(num_entries_, entries.size());
-
-    // Each expected metric should match a named value in the UKM entry.
-    const ukm::mojom::UkmEntry* entry = entries.back();
-    for (const std::pair<const char*, uint64_t>& pair : expected_metrics)
-      ukm::TestUkmRecorder::ExpectEntryMetric(entry, pair.first, pair.second);
+  // Adds a tab and simulates a basic navigation.
+  void AddTab(Browser* browser) {
+    content::WebContentsTester::For(
+        AddWebContentsAndNavigate(browser->tab_strip_model(), GURL(kTestUrl)))
+        ->TestSetIsLoading(false);
   }
 
   bool WasNewEntryRecorded() {
-    return ukm_recorder()->GetEntriesByName(kEntryName).size() > num_entries_;
+    return ukm_entry_checker_.NumNewEntriesRecorded(kEntryName) > 0;
   }
 
-  ukm::TestUkmRecorder* ukm_recorder() { return &ukm_recorder_; }
-  Profile* profile() { return &profile_; }
+  UkmEntryChecker* ukm_entry_checker() { return &ukm_entry_checker_; }
 
  private:
-  content::TestBrowserThreadBundle test_browser_thread_bundle_;
-  ukm::TestAutoSetUkmRecorder ukm_recorder_;
-  TestingProfile profile_;
-
-  // Tracks the expected number of entries to ensure we don't log duplicate or
-  // incorrect entries.
-  size_t num_entries_ = 0;
+  UkmEntryChecker ukm_entry_checker_;
 
   DISALLOW_COPY_AND_ASSIGN(WindowActivityWatcherTest);
 };
 
+// Tests UKM logging of two browser windows.
 TEST_F(WindowActivityWatcherTest, Basic) {
-  WindowActivityWatcher* watcher = WindowActivityWatcher::GetInstance();
-
   Browser::CreateParams params(profile(), true);
   std::unique_ptr<Browser> browser =
       FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  AddTab(browser.get());
 
-  watcher->CreateOrUpdateWindowMetrics(browser.get());
   UkmMetricMap expected_metrics({
       {TabManager_WindowMetrics::kWindowIdName, browser->session_id().id()},
       {TabManager_WindowMetrics::kShowStateName,
        WindowMetricsEvent::SHOW_STATE_NORMAL},
       {TabManager_WindowMetrics::kTypeName, WindowMetricsEvent::TYPE_TABBED},
+      {TabManager_WindowMetrics::kIsActiveName, 1},
+      {TabManager_WindowMetrics::kTabCountName, 1},
   });
   {
     SCOPED_TRACE("");
-    ExpectNewEntry(expected_metrics);
+    // Window UKMs are not expected to be associated with any particular URL.
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  AddTab(browser.get());
+  expected_metrics[TabManager_WindowMetrics::kTabCountName].value()++;
+  {
+    SCOPED_TRACE("");
+    // Window UKMs are not expected to be associated with any particular URL.
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
   }
 
   browser->window()->Minimize();
-  EXPECT_TRUE(browser->window()->IsMinimized());
   expected_metrics[TabManager_WindowMetrics::kShowStateName] =
       WindowMetricsEvent::SHOW_STATE_MINIMIZED;
+  expected_metrics[TabManager_WindowMetrics::kIsActiveName] = 0;
   {
     SCOPED_TRACE("");
-    ExpectNewEntry(expected_metrics);
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
   }
 
   // A new entry is not created if nothing changes.
-  watcher->CreateOrUpdateWindowMetrics(browser.get());
   EXPECT_FALSE(WasNewEntryRecorded());
 
   // A second browser can be logged.
@@ -153,15 +170,185 @@
   std::unique_ptr<Browser> browser_2 =
       FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params_2);
 
-  watcher->CreateOrUpdateWindowMetrics(browser_2.get());
+  // An entry is not logged until a tab is added to the new window.
+  EXPECT_FALSE(WasNewEntryRecorded());
+
+  AddTab(browser_2.get());
   UkmMetricMap expected_metrics_2({
       {TabManager_WindowMetrics::kWindowIdName, browser_2->session_id().id()},
       {TabManager_WindowMetrics::kShowStateName,
        WindowMetricsEvent::SHOW_STATE_NORMAL},
       {TabManager_WindowMetrics::kTypeName, WindowMetricsEvent::TYPE_POPUP},
+      {TabManager_WindowMetrics::kIsActiveName, 1},
+      {TabManager_WindowMetrics::kTabCountName, 1},
   });
   {
     SCOPED_TRACE("");
-    ExpectNewEntry(expected_metrics_2);
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics_2);
   }
+
+  // Switching the active browser logs two events.
+  browser_2->window()->Deactivate();
+  expected_metrics_2[TabManager_WindowMetrics::kIsActiveName] = 0;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics_2);
+  }
+
+  browser->window()->Restore();
+  expected_metrics[TabManager_WindowMetrics::kShowStateName] =
+      WindowMetricsEvent::SHOW_STATE_NORMAL;
+  expected_metrics[TabManager_WindowMetrics::kIsActiveName] = 1;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  browser->tab_strip_model()->CloseAllTabs();
+  browser_2->tab_strip_model()->CloseAllTabs();
+}
+
+// Tests moving a tab between browser windows.
+TEST_F(WindowActivityWatcherTest, MoveTabToOtherWindow) {
+  Browser::CreateParams params(profile(), true);
+  std::unique_ptr<Browser> starting_browser =
+      FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  AddTab(starting_browser.get());
+  UkmMetricMap starting_browser_metrics({
+      {TabManager_WindowMetrics::kWindowIdName,
+       starting_browser->session_id().id()},
+      {TabManager_WindowMetrics::kIsActiveName, 1},
+      {TabManager_WindowMetrics::kTabCountName, 1},
+  });
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(),
+                                        starting_browser_metrics);
+  }
+
+  // Add a second tab, so we can detach it while leaving the original window
+  // behind.
+  AddTab(starting_browser.get());
+  starting_browser_metrics[TabManager_WindowMetrics::kTabCountName].value() = 2;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(),
+                                        starting_browser_metrics);
+  }
+
+  // Drag the tab out of its window.
+  content::WebContents* dragged_tab =
+      starting_browser->tab_strip_model()->DetachWebContentsAt(1);
+  starting_browser_metrics[TabManager_WindowMetrics::kTabCountName].value() = 1;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(),
+                                        starting_browser_metrics);
+  }
+  starting_browser->window()->Deactivate();
+  starting_browser_metrics[TabManager_WindowMetrics::kIsActiveName].value() =
+      false;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(),
+                                        starting_browser_metrics);
+  }
+
+  // Create a new Browser for the tab.
+  std::unique_ptr<Browser> created_browser =
+      FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  created_browser->window()->Activate();
+  created_browser->tab_strip_model()->InsertWebContentsAt(
+      0, dragged_tab, TabStripModel::ADD_ACTIVE);
+  UkmMetricMap created_browser_metrics({
+      {TabManager_WindowMetrics::kWindowIdName,
+       created_browser->session_id().id()},
+      {TabManager_WindowMetrics::kIsActiveName, 1},
+      {TabManager_WindowMetrics::kTabCountName, 1},
+  });
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(),
+                                        created_browser_metrics);
+  }
+
+  starting_browser->tab_strip_model()->CloseAllTabs();
+  created_browser->tab_strip_model()->CloseAllTabs();
+}
+
+// Tests that a replaced tab still causes event logging upon being detached.
+TEST_F(WindowActivityWatcherTest, ReplaceTab) {
+  Browser::CreateParams params(profile(), true);
+  std::unique_ptr<Browser> browser =
+      FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  AddTab(browser.get());
+  UkmMetricMap expected_metrics({
+      {TabManager_WindowMetrics::kWindowIdName, browser->session_id().id()},
+      {TabManager_WindowMetrics::kTabCountName, 1},
+  });
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  // Add a tab that will be replaced.
+  AddTab(browser.get());
+  expected_metrics[TabManager_WindowMetrics::kTabCountName].value() = 2;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  // Replace the tab.
+  content::WebContents::CreateParams web_contents_params(profile(), nullptr);
+  content::WebContents* new_contents =
+      content::WebContentsTester::CreateTestWebContents(web_contents_params);
+  std::unique_ptr<content::WebContents> old_contents = base::WrapUnique(
+      browser->tab_strip_model()->ReplaceWebContentsAt(1, new_contents));
+
+  // Close the replaced tab. This should log an event with an updated TabCount.
+  browser->tab_strip_model()->CloseWebContentsAt(1, TabStripModel::CLOSE_NONE);
+  expected_metrics[TabManager_WindowMetrics::kTabCountName].value() = 1;
+  {
+    SCOPED_TRACE("");
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  browser->tab_strip_model()->CloseAllTabs();
+}
+
+// Tests that counts are properly bucketized.
+TEST_F(WindowActivityWatcherTest, Counts) {
+  Browser::CreateParams params(profile(), true);
+  std::unique_ptr<Browser> browser =
+      FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  UkmMetricMap expected_metrics;
+
+  // Expected buckets for each tab count using a spacing factor of 1.5.
+  std::vector<int> expected_buckets = {
+      0,        // Not actually tested, since we don't log windows with 0 tabs.
+      1, 2, 3,  // Values up to 3 should be represented exactly.
+      4, 4, 6, 6, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 18,
+  };
+
+  for (size_t i = 1; i < expected_buckets.size(); i++) {
+    SCOPED_TRACE(base::StringPrintf("Tab count: %zd", i));
+    AddTab(browser.get());
+    expected_metrics[TabManager_WindowMetrics::kTabCountName] =
+        expected_buckets[i];
+    ukm_entry_checker()->ExpectNewEntry(kEntryName, GURL(), expected_metrics);
+  }
+
+  browser->tab_strip_model()->CloseAllTabs();
+}
+
+// Tests that incognito windows are ignored.
+TEST_F(WindowActivityWatcherTest, Incognito) {
+  Browser::CreateParams params(profile()->GetOffTheRecordProfile(), true);
+  std::unique_ptr<Browser> browser =
+      FakeBrowserWindow::CreateBrowserWithFakeWindowForParams(&params);
+  AddTab(browser.get());
+  EXPECT_EQ(0u, ukm_entry_checker()->NumEntries(kEntryName));
+
+  browser->tab_strip_model()->CloseAllTabs();
 }
diff --git a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
index b60efaa..bd5151e 100644
--- a/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
+++ b/chrome/browser/ui/toolbar/toolbar_model_unittest.cc
@@ -33,46 +33,46 @@
 
 struct TestItem {
   GURL url;
-  base::string16 expected_text;
+  const char* expected_formatted_full_url;
+  const char* expected_elided_url_for_display = expected_formatted_full_url;
 } test_items[] = {
     {
-        GURL("view-source:http://www.google.com"),
-        base::ASCIIToUTF16("view-source:www.google.com"),
+        GURL("view-source:http://www.google.com"), "view-source:www.google.com",
+        "view-source:google.com",
     },
     {
-        GURL("chrome://newtab/"), base::string16(),
+        GURL("chrome://newtab/"), "",
     },
     {
-        GURL("view-source:chrome://newtab/"),
-        base::ASCIIToUTF16("view-source:chrome://newtab"),
+        GURL("view-source:chrome://newtab/"), "view-source:chrome://newtab",
     },
     {
-        GURL("chrome-search://local-ntp/local-ntp.html"), base::string16(),
+        GURL("chrome-search://local-ntp/local-ntp.html"), "",
     },
     {
         GURL("view-source:chrome-search://local-ntp/local-ntp.html"),
-        base::ASCIIToUTF16(
-            "view-source:chrome-search://local-ntp/local-ntp.html"),
+        "view-source:chrome-search://local-ntp/local-ntp.html",
     },
     {
         GURL("chrome-extension://fooooooooooooooooooooooooooooooo/bar.html"),
-        base::ASCIIToUTF16(
-            "chrome-extension://fooooooooooooooooooooooooooooooo/bar.html"),
+        "chrome-extension://fooooooooooooooooooooooooooooooo/bar.html",
     },
     {
-        GURL(url::kAboutBlankURL), base::ASCIIToUTF16(url::kAboutBlankURL),
+        GURL(url::kAboutBlankURL), url::kAboutBlankURL,
     },
     {
         GURL("http://searchurl/?q=tractor+supply"),
-        base::ASCIIToUTF16("searchurl/?q=tractor+supply"),
+        "searchurl/?q=tractor+supply",
     },
     {
-        GURL("http://google.com/search?q=tractor+supply"),
-        base::ASCIIToUTF16("google.com/search?q=tractor+supply"),
+        GURL("http://www.google.com/search?q=tractor+supply"),
+        "www.google.com/search?q=tractor+supply",
+        "google.com/search?q=tractor+supply",
     },
     {
-        GURL("https://google.ca/search?q=tractor+supply"),
-        base::ASCIIToUTF16("https://google.ca/search?q=tractor+supply"),
+        GURL("https://m.google.ca/search?q=tractor+supply"),
+        "https://m.google.ca/search?q=tractor+supply",
+        "google.ca/search?q=tractor+supply",
     },
 };
 
@@ -90,8 +90,10 @@
   void SetUp() override;
 
  protected:
-  void NavigateAndCheckText(const GURL& url,
-                            const base::string16& expected_text);
+  void NavigateAndCheckText(
+      const GURL& url,
+      const base::string16& expected_formatted_full_url,
+      const base::string16& expected_elided_url_for_display);
   void NavigateAndCheckElided(const GURL& https_url);
 
  private:
@@ -128,20 +130,25 @@
 
 void ToolbarModelTest::NavigateAndCheckText(
     const GURL& url,
-    const base::string16& expected_text) {
+    const base::string16& expected_formatted_full_url,
+    const base::string16& expected_elided_url_for_display) {
   // Check while loading.
   content::NavigationController* controller =
       &browser()->tab_strip_model()->GetActiveWebContents()->GetController();
   controller->LoadURL(url, content::Referrer(), ui::PAGE_TRANSITION_LINK,
                       std::string());
   ToolbarModel* toolbar_model = browser()->toolbar_model();
-  EXPECT_EQ(expected_text, toolbar_model->GetFormattedURL(nullptr));
-  EXPECT_NE(expected_text.empty(), toolbar_model->ShouldDisplayURL());
+  EXPECT_EQ(expected_formatted_full_url, toolbar_model->GetFormattedFullURL());
+  EXPECT_NE(expected_formatted_full_url.empty(),
+            toolbar_model->ShouldDisplayURL());
+  EXPECT_EQ(expected_elided_url_for_display, toolbar_model->GetURLForDisplay());
 
   // Check after commit.
   CommitPendingLoad(controller);
-  EXPECT_EQ(expected_text, toolbar_model->GetFormattedURL(nullptr));
-  EXPECT_NE(expected_text.empty(), toolbar_model->ShouldDisplayURL());
+  EXPECT_EQ(expected_formatted_full_url, toolbar_model->GetFormattedFullURL());
+  EXPECT_NE(expected_formatted_full_url.empty(),
+            toolbar_model->ShouldDisplayURL());
+  EXPECT_EQ(expected_elided_url_for_display, toolbar_model->GetURLForDisplay());
 }
 
 void ToolbarModelTest::NavigateAndCheckElided(const GURL& url) {
@@ -151,18 +158,29 @@
   controller->LoadURL(url, content::Referrer(), ui::PAGE_TRANSITION_LINK,
                       std::string());
   ToolbarModel* toolbar_model = browser()->toolbar_model();
-  const base::string16 toolbar_text_before(
-      toolbar_model->GetFormattedURL(nullptr));
-  EXPECT_LT(toolbar_text_before.size(), url.spec().size());
-  EXPECT_TRUE(base::EndsWith(toolbar_text_before,
+  const base::string16 formatted_full_url_before(
+      toolbar_model->GetFormattedFullURL());
+  EXPECT_LT(formatted_full_url_before.size(), url.spec().size());
+  EXPECT_TRUE(base::EndsWith(formatted_full_url_before,
                              base::string16(gfx::kEllipsisUTF16),
                              base::CompareCase::SENSITIVE));
+  const base::string16 display_url_before(toolbar_model->GetURLForDisplay());
+  EXPECT_LT(display_url_before.size(), url.spec().size());
+  EXPECT_TRUE(base::EndsWith(display_url_before,
+                             base::string16(gfx::kEllipsisUTF16),
+                             base::CompareCase::SENSITIVE));
+
   // Check after commit.
   CommitPendingLoad(controller);
-  const base::string16 toolbar_text_after(
-      toolbar_model->GetFormattedURL(nullptr));
-  EXPECT_LT(toolbar_text_after.size(), url.spec().size());
-  EXPECT_TRUE(base::EndsWith(toolbar_text_after,
+  const base::string16 formatted_full_url_after(
+      toolbar_model->GetFormattedFullURL());
+  EXPECT_LT(formatted_full_url_after.size(), url.spec().size());
+  EXPECT_TRUE(base::EndsWith(formatted_full_url_after,
+                             base::string16(gfx::kEllipsisUTF16),
+                             base::CompareCase::SENSITIVE));
+  const base::string16 display_url_after(toolbar_model->GetURLForDisplay());
+  EXPECT_LT(display_url_after.size(), url.spec().size());
+  EXPECT_TRUE(base::EndsWith(display_url_after,
                              base::string16(gfx::kEllipsisUTF16),
                              base::CompareCase::SENSITIVE));
 }
@@ -174,7 +192,10 @@
   AddTab(browser(), GURL(url::kAboutBlankURL));
 
   for (const TestItem& test_item : test_items) {
-    NavigateAndCheckText(test_item.url, test_item.expected_text);
+    NavigateAndCheckText(
+        test_item.url,
+        base::ASCIIToUTF16(test_item.expected_formatted_full_url),
+        base::ASCIIToUTF16(test_item.expected_elided_url_for_display));
   }
 }
 
@@ -193,7 +214,7 @@
   // Open an NTP. Its URL should not be displayed.
   AddTab(browser(), GURL("chrome://newtab"));
   ASSERT_FALSE(toolbar_model->ShouldDisplayURL());
-  ASSERT_TRUE(toolbar_model->GetFormattedURL(nullptr).empty());
+  ASSERT_TRUE(toolbar_model->GetFormattedFullURL().empty());
 
   const std::string other_url = "https://www.foo.com";
 
@@ -205,11 +226,11 @@
                       ui::PAGE_TRANSITION_LINK, std::string());
   EXPECT_TRUE(toolbar_model->ShouldDisplayURL());
   EXPECT_EQ(base::ASCIIToUTF16(other_url),
-            toolbar_model->GetFormattedURL(nullptr));
+            toolbar_model->GetFormattedFullURL());
 
   // Of course the same should still hold after committing.
   CommitPendingLoad(controller);
   EXPECT_TRUE(toolbar_model->ShouldDisplayURL());
   EXPECT_EQ(base::ASCIIToUTF16(other_url),
-            toolbar_model->GetFormattedURL(nullptr));
+            toolbar_model->GetFormattedFullURL());
 }
diff --git a/chrome/browser/ui/views/autofill/save_card_bubble_views.cc b/chrome/browser/ui/views/autofill/save_card_bubble_views.cc
index 17049f2..1602253 100644
--- a/chrome/browser/ui/views/autofill/save_card_bubble_views.cc
+++ b/chrome/browser/ui/views/autofill/save_card_bubble_views.cc
@@ -213,6 +213,13 @@
 }
 
 gfx::Size SaveCardBubbleViews::CalculatePreferredSize() const {
+  if (base::FeatureList::IsEnabled(
+          features::kAutofillUpstreamUseGooglePayBranding)) {
+    const int width = ChromeLayoutProvider::Get()->GetDistanceMetric(
+                          DISTANCE_BUBBLE_PREFERRED_WIDTH) -
+                      margins().width();
+    return gfx::Size(width, GetHeightForWidth(width));
+  }
   return gfx::Size(kBubbleWidth, GetHeightForWidth(kBubbleWidth));
 }
 
diff --git a/chrome/browser/ui/views/device_chooser_content_view.cc b/chrome/browser/ui/views/device_chooser_content_view.cc
index 77c672a..5824887 100644
--- a/chrome/browser/ui/views/device_chooser_content_view.cc
+++ b/chrome/browser/ui/views/device_chooser_content_view.cc
@@ -147,12 +147,12 @@
   size_t offset = 0;
   base::string16 text = l10n_util::GetStringFUTF16(
       IDS_BLUETOOTH_DEVICE_CHOOSER_TURN_ADAPTER_OFF, link_text, &offset);
-  turn_adapter_off_help_ = new views::StyledLabel(text, this);
-  turn_adapter_off_help_->AddStyleRange(
+  adapter_off_help_ = new views::StyledLabel(text, this);
+  adapter_off_help_->AddStyleRange(
       gfx::Range(0, link_text.size()),
       views::StyledLabel::RangeStyleInfo::CreateForLink());
-  turn_adapter_off_help_->SetVisible(false);
-  AddChildView(turn_adapter_off_help_);
+  adapter_off_help_->SetVisible(false);
+  AddChildView(adapter_off_help_);
 }
 
 DeviceChooserContentView::~DeviceChooserContentView() {
@@ -170,15 +170,13 @@
   gfx::Rect rect(GetContentsBounds());
   table_parent_->SetBoundsRect(rect);
 
-  // Set the adapter off message in the center of the chooser.
-  // The adapter off message will only be shown when the adapter is off,
-  // and in that case, the system won't be able to scan for devices, so
-  // the throbber won't be shown at the same time.
-  turn_adapter_off_help_->SetPosition(
-      gfx::Point((rect.width() - turn_adapter_off_help_->width()) / 2,
-                 (rect.height() - turn_adapter_off_help_->height()) / 2));
-  turn_adapter_off_help_->SizeToFit(rect.width() -
-                                    2 * kAdapterOffHelpLinkPadding);
+  // Set the adapter off message in the center of the chooser. It will only be
+  // shown when the adapter is off.
+  adapter_off_help_->SetPosition(
+      gfx::Point((width() - adapter_off_help_->width()) / 2,
+                 (height() - adapter_off_help_->height()) / 2));
+  adapter_off_help_->SizeToFit(table_view_->width() -
+                               2 * kAdapterOffHelpLinkPadding);
   views::View::Layout();
 }
 
@@ -268,7 +266,7 @@
   table_view_->Select(-1);
   UpdateTableView();
   table_view_->SetVisible(enabled);
-  turn_adapter_off_help_->SetVisible(!enabled);
+  adapter_off_help_->SetVisible(!enabled);
 
   bluetooth_status_container_->ShowReScanButton(enabled);
   refreshing_ = false;
@@ -297,7 +295,7 @@
 void DeviceChooserContentView::StyledLabelLinkClicked(views::StyledLabel* label,
                                                       const gfx::Range& range,
                                                       int event_flags) {
-  DCHECK_EQ(turn_adapter_off_help_, label);
+  DCHECK_EQ(adapter_off_help_, label);
   chooser_controller_->OpenAdapterOffHelpUrl();
 }
 
diff --git a/chrome/browser/ui/views/device_chooser_content_view.h b/chrome/browser/ui/views/device_chooser_content_view.h
index 1f3522eb..1a7db3b 100644
--- a/chrome/browser/ui/views/device_chooser_content_view.h
+++ b/chrome/browser/ui/views/device_chooser_content_view.h
@@ -114,7 +114,7 @@
 
   views::TableView* table_view_ = nullptr;
   views::View* table_parent_ = nullptr;
-  views::StyledLabel* turn_adapter_off_help_ = nullptr;
+  views::StyledLabel* adapter_off_help_ = nullptr;
   BluetoothStatusContainer* bluetooth_status_container_ = nullptr;
 
   DISALLOW_COPY_AND_ASSIGN(DeviceChooserContentView);
diff --git a/chrome/browser/ui/views/device_chooser_content_view_unittest.cc b/chrome/browser/ui/views/device_chooser_content_view_unittest.cc
index 954f77e..ce6c172 100644
--- a/chrome/browser/ui/views/device_chooser_content_view_unittest.cc
+++ b/chrome/browser/ui/views/device_chooser_content_view_unittest.cc
@@ -64,7 +64,7 @@
   views::TableView* table_view() { return content_view().table_view_; }
   ui::TableModel* table_model() { return table_view()->model(); }
   views::StyledLabel* adapter_off_help_link() {
-    return content_view().turn_adapter_off_help_;
+    return content_view().adapter_off_help_;
   }
   views::LabelButton* re_scan_button() {
     return content_view().bluetooth_status_container_->re_scan_button();
diff --git a/chrome/browser/ui/views/extensions/extension_installed_bubble_view.cc b/chrome/browser/ui/views/extensions/extension_installed_bubble_view.cc
index a5ccfaa..559e3d1 100644
--- a/chrome/browser/ui/views/extensions/extension_installed_bubble_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_installed_bubble_view.cc
@@ -51,6 +51,12 @@
 #include "chrome/browser/ui/views/toolbar/toolbar_view.h"
 #endif
 
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
+#include "chrome/browser/signin/account_consistency_mode_manager.h"
+#include "chrome/browser/signin/signin_ui_util.h"
+#include "chrome/browser/ui/views/sync/dice_bubble_sync_promo_view.h"
+#endif
+
 using extensions::Extension;
 
 namespace {
@@ -223,9 +229,24 @@
   if (!(controller_->options() & ExtensionInstalledBubble::SIGN_IN_PROMO))
     return nullptr;
 
+  base::RecordAction(
+      base::UserMetricsAction("Signin_Impression_FromExtensionInstallBubble"));
+#if BUILDFLAG(ENABLE_DICE_SUPPORT)
+  Profile* profile = browser()->profile();
+  if (AccountConsistencyModeManager::IsDiceEnabledForProfile(profile)) {
+    return new DiceBubbleSyncPromoView(
+        profile, this, IDS_EXTENSION_INSTALLED_DICE_PROMO_SIGNIN_MESSAGE,
+        IDS_EXTENSION_INSTALLED_DICE_PROMO_SYNC_MESSAGE);
+  } else {
+    return new BubbleSyncPromoView(this,
+                                   IDS_EXTENSION_INSTALLED_SYNC_PROMO_LINK_NEW,
+                                   IDS_EXTENSION_INSTALLED_SYNC_PROMO_NEW);
+  }
+#else
   return new BubbleSyncPromoView(this,
                                  IDS_EXTENSION_INSTALLED_SYNC_PROMO_LINK_NEW,
                                  IDS_EXTENSION_INSTALLED_SYNC_PROMO_NEW);
+#endif
 }
 
 int ExtensionInstalledBubbleView::GetDialogButtons() const {
@@ -297,8 +318,10 @@
 
 #if BUILDFLAG(ENABLE_DICE_SUPPORT)
 void ExtensionInstalledBubbleView::EnableSync(const AccountInfo& account) {
-  NOTREACHED() << "Extension installl bubble does not display the DICE "
-               << "personalized sign-in promo asking the user to enable sync.";
+  signin_ui_util::EnableSync(
+      browser(), account,
+      signin_metrics::AccessPoint::ACCESS_POINT_EXTENSION_INSTALL_BUBBLE);
+  CloseBubble(BUBBLE_CLOSE_NAVIGATED);
 }
 #endif
 
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
index ab55a514..f24d730 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
@@ -344,11 +344,7 @@
 
 void BrowserNonClientFrameViewAsh::ChildPreferredSizeChanged(
     views::View* child) {
-  // FrameCaptionButtonContainerView animates the visibility changes in
-  // UpdateSizeButtonVisibility(false). Due to this a new size is not available
-  // until the completion of the animation. Layout in response to the preferred
-  // size changes.
-  if (browser_view()->initialized() && (child == caption_button_container_)) {
+  if (browser_view()->initialized()) {
     InvalidateLayout();
     frame()->GetRootView()->Layout();
   }
diff --git a/chrome/browser/ui/views/frame/hosted_app_button_container.cc b/chrome/browser/ui/views/frame/hosted_app_button_container.cc
index d2a5f0c..b136919 100644
--- a/chrome/browser/ui/views/frame/hosted_app_button_container.cc
+++ b/chrome/browser/ui/views/frame/hosted_app_button_container.cc
@@ -112,7 +112,7 @@
 
 void HostedAppButtonContainer::ChildVisibilityChanged(views::View* child) {
   // Changes to layout need to be taken into account by the frame view.
-  browser_view_->frame()->GetFrameView()->Layout();
+  PreferredSizeChanged();
 }
 
 void HostedAppButtonContainer::SetPaintAsActive(bool active) {
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
index 9c9ea89d..bf93f7a 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.cc
@@ -195,9 +195,8 @@
   UpdateSecurityLevel();
   const OmniboxState* state = static_cast<OmniboxState*>(
       web_contents->GetUserData(&OmniboxState::kKey));
-  model()->RestoreState(
-      controller()->GetToolbarModel()->GetFormattedURL(nullptr),
-      state ? &state->model_state : NULL);
+  model()->RestoreState(controller()->GetToolbarModel()->GetFormattedFullURL(),
+                        state ? &state->model_state : NULL);
   if (state) {
     // This assumes that the omnibox has already been focused or blurred as
     // appropriate; otherwise, a subsequent OnFocus() or OnBlur() call could
@@ -219,7 +218,7 @@
   const security_state::SecurityLevel old_security_level = security_level_;
   UpdateSecurityLevel();
   if (model()->SetPermanentText(
-          controller()->GetToolbarModel()->GetFormattedURL(nullptr))) {
+          controller()->GetToolbarModel()->GetFormattedFullURL())) {
     RevertAll();
 
     // Only select all when we have focus.  If we don't have focus, selecting
@@ -831,7 +830,7 @@
 void OmniboxViewViews::OnFocus() {
   views::Textfield::OnFocus();
   model()->SetPermanentText(
-      controller()->GetToolbarModel()->GetFormattedURL(nullptr));
+      controller()->GetToolbarModel()->GetFormattedFullURL());
   // TODO(oshima): Get control key state.
   model()->OnSetFocus(false);
   // Don't call controller()->OnSetFocus, this view has already acquired focus.
@@ -1150,30 +1149,26 @@
   if (HasTextBeingDragged())
     return ui::DragDropTypes::DRAG_NONE;
 
+  base::string16 text;
   if (data.HasURL(ui::OSExchangeData::CONVERT_FILENAMES)) {
     GURL url;
     base::string16 title;
     if (data.GetURLAndTitle(
             ui::OSExchangeData::CONVERT_FILENAMES, &url, &title)) {
-      base::string16 text(
-          StripJavascriptSchemas(base::UTF8ToUTF16(url.spec())));
-      if (model()->CanPasteAndGo(text)) {
-        model()->PasteAndGo(text);
-        return ui::DragDropTypes::DRAG_COPY;
-      }
+      text = StripJavascriptSchemas(base::UTF8ToUTF16(url.spec()));
     }
-  } else if (data.HasString()) {
-    base::string16 text;
-    if (data.GetString(&text)) {
-      base::string16 collapsed_text(
-          StripJavascriptSchemas(base::CollapseWhitespace(text, true)));
-      if (model()->CanPasteAndGo(collapsed_text))
-        model()->PasteAndGo(collapsed_text);
-      return ui::DragDropTypes::DRAG_COPY;
-    }
+  } else if (data.HasString() && data.GetString(&text)) {
+    text = StripJavascriptSchemas(base::CollapseWhitespace(text, true));
   }
 
-  return ui::DragDropTypes::DRAG_NONE;
+  if (text.empty())
+    return ui::DragDropTypes::DRAG_NONE;
+
+  SetUserText(text);
+  if (!HasFocus())
+    RequestFocus();
+  SelectAll(false);
+  return ui::DragDropTypes::DRAG_COPY;
 }
 
 void OmniboxViewViews::UpdateContextMenu(ui::SimpleMenuModel* menu_contents) {
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views.h b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
index 3d402d0f..8b49fe86 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views.h
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views.h
@@ -122,6 +122,7 @@
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsTest, AccessiblePopup);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsTest, MaintainCursorAfterFocusCycle);
   FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsTest, OnBlur);
+  FRIEND_TEST_ALL_PREFIXES(OmniboxViewViewsTest, DoNotNavigateOnDrop);
 
   // Update the field with |text| and set the selection.
   void SetTextAndSelectedRange(const base::string16& text,
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
index 312e210..6c33b7d2 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
@@ -24,6 +24,7 @@
 #include "chrome/test/base/interactive_test_utils.h"
 #include "components/omnibox/browser/omnibox_popup_model.h"
 #include "components/omnibox/browser/test_scheme_classifier.h"
+#include "content/public/browser/web_contents.h"
 #include "ui/accessibility/ax_action_data.h"
 #include "ui/accessibility/ax_node_data.h"
 #include "ui/base/clipboard/clipboard.h"
@@ -133,6 +134,25 @@
   EXPECT_FALSE(view->model()->popup_model()->IsOpen());
 }
 
+IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, DoNotNavigateOnDrop) {
+  OmniboxView* view = NULL;
+  ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
+  OmniboxViewViews* omnibox_view_views = static_cast<OmniboxViewViews*>(view);
+
+  OSExchangeData data;
+  base::string16 input = base::ASCIIToUTF16("Foo bar baz");
+  EXPECT_FALSE(data.HasString());
+  data.SetString(input);
+  EXPECT_TRUE(data.HasString());
+
+  omnibox_view_views->OnDrop(data);
+  EXPECT_EQ(input, omnibox_view_views->text());
+  EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_OMNIBOX));
+  EXPECT_TRUE(omnibox_view_views->IsSelectAll());
+  EXPECT_FALSE(
+      browser()->tab_strip_model()->GetActiveWebContents()->IsLoading());
+}
+
 // If this flakes, disable and log details in http://crbug.com/523255.
 IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, SelectAllOnClick) {
   OmniboxView* omnibox_view = NULL;
diff --git a/chrome/browser/ui/views/page_info/permission_selector_row.cc b/chrome/browser/ui/views/page_info/permission_selector_row.cc
index 21275ca..37a2617 100644
--- a/chrome/browser/ui/views/page_info/permission_selector_row.cc
+++ b/chrome/browser/ui/views/page_info/permission_selector_row.cc
@@ -416,9 +416,8 @@
 void PermissionSelectorRow::PermissionChanged(
     const PageInfoUI::PermissionInfo& permission) {
   // Change the permission icon to reflect the selected setting.
-  icon_->SetImage(PageInfoUI::GetPermissionIcon(
-      permission,
-      color_utils::DeriveDefaultIconColor(label_->enabled_color())));
+  icon_->SetImage(
+      PageInfoUI::GetPermissionIcon(permission, label_->enabled_color()));
 
   // Update the menu button text to reflect the new setting.
   if (menu_button_) {
diff --git a/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc b/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
index 88a3a34e..30170138 100644
--- a/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/certificate_manager_localized_strings_provider.cc
@@ -39,7 +39,6 @@
        IDS_SETTINGS_CERTIFICATE_MANAGER_IMPORT_AND_BIND},
       {"certificateManagerExport", IDS_SETTINGS_CERTIFICATE_MANAGER_EXPORT},
       {"certificateManagerDelete", IDS_SETTINGS_CERTIFICATE_MANAGER_DELETE},
-      {"certificateManagerDone", IDS_SETTINGS_CERTIFICATE_MANAGER_DONE},
       {"certificateManagerUntrusted",
        IDS_SETTINGS_CERTIFICATE_MANAGER_UNTRUSTED},
       // CA trust edit dialog.
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 ac0fc32..f055f9c 100644
--- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
@@ -355,11 +355,11 @@
     return &NewWebUI<PasswordManagerInternalsUI>;
   if (url.host_piece() == chrome::kChromeUIPredictorsHost)
     return &NewWebUI<PredictorsUI>;
-  if (url.host() == chrome::kChromeUIQuotaInternalsHost)
+  if (url.host_piece() == chrome::kChromeUIQuotaInternalsHost)
     return &NewWebUI<QuotaInternalsUI>;
-  if (url.host() == safe_browsing::kChromeUISafeBrowsingHost)
+  if (url.host_piece() == safe_browsing::kChromeUISafeBrowsingHost)
     return &NewWebUI<safe_browsing::SafeBrowsingUI>;
-  if (url.host() == chrome::kChromeUISignInInternalsHost)
+  if (url.host_piece() == chrome::kChromeUISignInInternalsHost)
     return &NewWebUI<SignInInternalsUI>;
   if (url.host_piece() == chrome::kChromeUISuggestionsHost)
     return &NewWebUI<suggestions::SuggestionsUI>;
@@ -664,7 +664,7 @@
   // All extensions but the bookmark manager get their favicon from the icons
   // part of the manifest.
   if (url.SchemeIs(extensions::kExtensionScheme) &&
-      url.host() != extension_misc::kBookmarkManagerId) {
+      url.host_piece() != extension_misc::kBookmarkManagerId) {
     ExtensionWebUI::GetFaviconForURL(profile, url, callback);
     return;
   }
diff --git a/chrome/browser/ui/webui/chromeos/internet_config_dialog.cc b/chrome/browser/ui/webui/chromeos/internet_config_dialog.cc
index b52f1ba7..858c2e8 100644
--- a/chrome/browser/ui/webui/chromeos/internet_config_dialog.cc
+++ b/chrome/browser/ui/webui/chromeos/internet_config_dialog.cc
@@ -23,7 +23,8 @@
 namespace {
 
 // Dialog height for configured networks that only require a passphrase.
-constexpr int kDialogHeightPasswordOnly = 320;
+// This height includes room for a 'connecting' or error message.
+constexpr int kDialogHeightPasswordOnly = 365;
 
 void AddInternetStrings(content::WebUIDataSource* html_source) {
   // Add default strings first.
diff --git a/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc b/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc
index e235b926..5bf72ab8 100644
--- a/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc
+++ b/chrome/browser/ui/webui/chromeos/login/network_state_informer.cc
@@ -17,7 +17,7 @@
 #include "chromeos/network/proxy/ui_proxy_config_service.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_prefs.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
 namespace chromeos {
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
index 78027b4..41d6a2e 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc
@@ -1441,7 +1441,7 @@
     // On slow devices, the wallpaper animation is not shown initially, so we
     // must explicitly load the wallpaper. This is also the case for the
     // account-picker and gaia-signin UI states.
-    delegate_->LoadSigninWallpaper();
+    LoginDisplayHost::default_host()->LoadSigninWallpaper();
     HandleToggleKioskAutolaunchScreen();
     return;
   }
@@ -1486,7 +1486,7 @@
                                           ime_state_.get());
     lock_screen_utils::SetKeyboardSettings(account_id);
     if (delegate_ && load_wallpaper)
-      delegate_->LoadWallpaper(account_id);
+      LoginDisplayHost::default_host()->LoadWallpaper(account_id);
 
     bool use_24hour_clock = false;
     if (user_manager::known_user::GetBooleanPref(
diff --git a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
index d63b0652f..6d09d96 100644
--- a/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
+++ b/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h
@@ -143,18 +143,10 @@
   // Signs out if the screen is currently locked.
   virtual void Signout() = 0;
 
-  // --------------- Account creation methods.
-  // Confirms sign up by provided credentials in |user_context|.
-  // Used for new user login via GAIA extension.
-  virtual void CompleteLogin(const UserContext& user_context) = 0;
-
   // --------------- Shared with login display methods.
   // Notify the delegate when the sign-in UI is finished loading.
   virtual void OnSigninScreenReady() = 0;
 
-  // Notify the delegate when the GAIA UI is finished loading.
-  virtual void OnGaiaScreenReady() = 0;
-
   // Shows Enterprise Enrollment screen.
   virtual void ShowEnterpriseEnrollmentScreen() = 0;
 
@@ -173,26 +165,10 @@
   // Show update required screen.
   virtual void ShowUpdateRequiredScreen() = 0;
 
-  // Sets the displayed email for the next login attempt. If it succeeds,
-  // user's displayed email value will be updated to |email|.
-  virtual void SetDisplayEmail(const std::string& email) = 0;
-
-  // Sets the displayed name and given name for the next login attempt. If it
-  // succeeds, user's displayed name and give name values will be updated to
-  // |display_name| and |given_name|.
-  virtual void SetDisplayAndGivenName(const std::string& display_name,
-                                      const std::string& given_name) = 0;
-
   // --------------- Rest of the methods.
   // Cancels user adding.
   virtual void CancelUserAdding() = 0;
 
-  // Load wallpaper for given |account_id|.
-  virtual void LoadWallpaper(const AccountId& account_id) = 0;
-
-  // Loads the default sign-in wallpaper.
-  virtual void LoadSigninWallpaper() = 0;
-
   // Attempts to remove given user.
   virtual void RemoveUser(const AccountId& account_id) = 0;
 
@@ -224,9 +200,6 @@
   // Runs an OAuth token validation check for user.
   virtual void CheckUserStatus(const AccountId& account_id) = 0;
 
-  // Returns true if user is allowed to log in by domain policy.
-  virtual bool IsUserWhitelisted(const AccountId& account_id) = 0;
-
  protected:
   virtual ~SigninScreenHandlerDelegate() {}
 };
diff --git a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
index 86ac00c..8d789bd1 100644
--- a/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.cc
@@ -296,26 +296,29 @@
     html_source->AddLocalizedString(entry.name, entry.id);
 
   // Include Shill errors.
-  const char* shill_errors[] = {shill::kErrorOutOfRange,
-                                shill::kErrorPinMissing,
-                                shill::kErrorDhcpFailed,
-                                shill::kErrorConnectFailed,
-                                shill::kErrorBadPassphrase,
-                                shill::kErrorBadWEPKey,
-                                shill::kErrorActivationFailed,
-                                shill::kErrorNeedEvdo,
-                                shill::kErrorNeedHomeNetwork,
-                                shill::kErrorOtaspFailed,
-                                shill::kErrorAaaFailed,
-                                shill::kErrorInternal,
-                                shill::kErrorDNSLookupFailed,
-                                shill::kErrorHTTPGetFailed,
-                                shill::kErrorIpsecPskAuthFailed,
-                                shill::kErrorIpsecCertAuthFailed,
-                                shill::kErrorEapAuthenticationFailed,
-                                shill::kErrorEapLocalTlsFailed,
-                                shill::kErrorEapRemoteTlsFailed,
-                                shill::kErrorPppAuthFailed};
+  const char* shill_errors[] = {
+      shill::kErrorOutOfRange,
+      shill::kErrorPinMissing,
+      shill::kErrorDhcpFailed,
+      shill::kErrorConnectFailed,
+      shill::kErrorBadPassphrase,
+      shill::kErrorBadWEPKey,
+      shill::kErrorActivationFailed,
+      shill::kErrorNeedEvdo,
+      shill::kErrorNeedHomeNetwork,
+      shill::kErrorOtaspFailed,
+      shill::kErrorAaaFailed,
+      shill::kErrorInternal,
+      shill::kErrorDNSLookupFailed,
+      shill::kErrorHTTPGetFailed,
+      shill::kErrorIpsecPskAuthFailed,
+      shill::kErrorIpsecCertAuthFailed,
+      shill::kErrorEapAuthenticationFailed,
+      shill::kErrorEapLocalTlsFailed,
+      shill::kErrorEapRemoteTlsFailed,
+      shill::kErrorPppAuthFailed,
+      shill::kErrorResultInvalidPassphrase,
+  };
   for (const auto* error : shill_errors) {
     html_source->AddString(
         error, base::UTF16ToUTF8(shill_error::GetShillErrorString(error, "")));
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
index f99e3ff..cc973a0 100644
--- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
+++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -72,7 +72,7 @@
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_entry.h"
 #include "net/log/net_log_util.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
 
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
index cd9632ae..056330b 100644
--- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -770,8 +770,6 @@
        IDS_SETTINGS_RESET_CLEANUP_DETAILS_FILES_AND_PROGRAMS},
       {"chromeCleanupDetailsRegistryEntries",
        IDS_SETTINGS_RESET_CLEANUP_DETAILS_REGISTRY_ENTRIES},
-      {"chromeCleanupDoneButtonLabel",
-       IDS_SETTINGS_RESET_CLEANUP_DONE_BUTTON_LABEL},
       {"chromeCleanupExplanationCleanupError",
        IDS_SETTINGS_RESET_CLEANUP_EXPLANATION_CLEANUP_ERROR},
       {"chromeCleanupExplanationFindAndRemove",
@@ -1284,7 +1282,6 @@
       {"savedPasswordsHeading", IDS_SETTINGS_PASSWORDS_SAVED_HEADING},
       {"passwordExceptionsHeading", IDS_SETTINGS_PASSWORDS_EXCEPTIONS_HEADING},
       {"deletePasswordException", IDS_SETTINGS_PASSWORDS_DELETE_EXCEPTION},
-      {"passwordsDone", IDS_SETTINGS_PASSWORD_DONE},
       {"removePassword", IDS_SETTINGS_PASSWORD_REMOVE},
       {"searchPasswords", IDS_SETTINGS_PASSWORD_SEARCH},
       {"showPassword", IDS_SETTINGS_PASSWORD_SHOW},
@@ -1351,8 +1348,6 @@
      IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_FINGER_TOO_FAST},
     {"configureFingerprintImmobile",
      IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_FINGER_IMMOBILE},
-    {"configureFingerprintDoneButton",
-     IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_DONE_BUTTON},
     {"configureFingerprintAddAnotherButton",
      IDS_SETTINGS_ADD_FINGERPRINT_DIALOG_ADD_ANOTHER_BUTTON},
     {"configurePinChoosePinTitle",
@@ -1427,6 +1422,7 @@
 #else   // !defined(OS_CHROMEOS)
     {"domainManagedProfile", IDS_SETTINGS_PEOPLE_DOMAIN_MANAGED_PROFILE},
     {"editPerson", IDS_SETTINGS_EDIT_PERSON},
+    {"profileNameAndPicture", IDS_SETTINGS_PROFILE_NAME_AND_PICTURE},
     {"showShortcutLabel", IDS_SETTINGS_PROFILE_SHORTCUT_TOGGLE_LABEL},
 #endif  // defined(OS_CHROMEOS)
     {"syncOverview", IDS_SETTINGS_SYNC_OVERVIEW},
diff --git a/chrome/browser/ui/webui/settings/md_settings_ui.cc b/chrome/browser/ui/webui/settings/md_settings_ui.cc
index 30779ac..6a6072da 100644
--- a/chrome/browser/ui/webui/settings/md_settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/md_settings_ui.cc
@@ -88,6 +88,7 @@
 #include "chrome/browser/ui/webui/settings/settings_default_browser_handler.h"
 #include "chrome/browser/ui/webui/settings/settings_manage_profile_handler.h"
 #include "chrome/browser/ui/webui/settings/system_handler.h"
+#include "components/signin/core/browser/profile_management_switches.h"
 #endif  // defined(OS_CHROMEOS)
 
 #if defined(USE_NSS_CERTS)
@@ -222,7 +223,6 @@
   // should never change while Chrome is open.
   html_source->AddBoolean("userInitiatedCleanupsEnabled",
                           userInitiatedCleanupsEnabled);
-
 #endif  // defined(OS_WIN)
 
   bool password_protection_available = false;
@@ -281,7 +281,10 @@
     AddSettingsPageUIHandler(std::make_unique<chromeos::settings::PowerHandler>(
         profile->GetPrefs()));
   }
-#endif
+#else   // !defined(OS_CHROMEOS)
+  html_source->AddBoolean("diceEnabled",
+                          signin::IsDiceEnabledForProfile(profile->GetPrefs()));
+#endif  // defined(OS_CHROMEOS)
 
   html_source->AddBoolean("showExportPasswords",
                           base::FeatureList::IsEnabled(
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn
index 95b8c47..4087b87 100644
--- a/chrome/browser/vr/BUILD.gn
+++ b/chrome/browser/vr/BUILD.gn
@@ -135,6 +135,7 @@
     "model/assets.cc",
     "model/assets.h",
     "model/camera_model.h",
+    "model/capturing_state_model.h",
     "model/color_scheme.cc",
     "model/color_scheme.h",
     "model/controller_model.cc",
@@ -145,7 +146,6 @@
     "model/model.h",
     "model/omnibox_suggestions.cc",
     "model/omnibox_suggestions.h",
-    "model/permissions_model.h",
     "model/reticle_model.h",
     "model/speech_recognition_model.h",
     "model/text_input_info.cc",
@@ -204,8 +204,6 @@
     "ui_unsupported_mode.h",
     "vr_gl_util.cc",
     "vr_gl_util.h",
-    "web_contents_event_forwarder.cc",
-    "web_contents_event_forwarder.h",
   ]
 
   public_deps = [
diff --git a/chrome/browser/vr/browser_ui_interface.h b/chrome/browser/vr/browser_ui_interface.h
index 5375121..7ec0870f 100644
--- a/chrome/browser/vr/browser_ui_interface.h
+++ b/chrome/browser/vr/browser_ui_interface.h
@@ -31,7 +31,7 @@
   virtual void SetScreenCaptureEnabled(bool enabled) = 0;
   virtual void SetAudioCaptureEnabled(bool enabled) = 0;
   virtual void SetBluetoothConnected(bool enabled) = 0;
-  virtual void SetLocationAccess(bool enabled) = 0;
+  virtual void SetLocationAccessEnabled(bool enabled) = 0;
   virtual void SetExitVrPromptEnabled(bool enabled,
                                       UiUnsupportedMode reason) = 0;
   virtual void SetSpeechRecognitionEnabled(bool enabled) = 0;
diff --git a/chrome/browser/vr/elements/content_element.cc b/chrome/browser/vr/elements/content_element.cc
index 2e6b305..6de1ba9 100644
--- a/chrome/browser/vr/elements/content_element.cc
+++ b/chrome/browser/vr/elements/content_element.cc
@@ -46,13 +46,19 @@
 
 void ContentElement::Render(UiElementRenderer* renderer,
                             const CameraModel& model) const {
-  if (!texture_id_)
-    return;
   gfx::RectF copy_rect(0, 0, 1, 1);
-  renderer->DrawTexturedQuad(texture_id_, texture_location_,
-                             model.view_proj_matrix * world_space_transform(),
-                             copy_rect, computed_opacity(), size(),
-                             corner_radius());
+  if (texture_id_) {
+    renderer->DrawTexturedQuad(texture_id_, texture_location_,
+                               model.view_proj_matrix * world_space_transform(),
+                               copy_rect, computed_opacity(), size(),
+                               corner_radius());
+  }
+  if (overlay_texture_id_) {
+    renderer->DrawTexturedQuad(overlay_texture_id_, overlay_texture_location_,
+                               model.view_proj_matrix * world_space_transform(),
+                               copy_rect, computed_opacity(), size(),
+                               corner_radius());
+  }
 }
 
 void ContentElement::OnHoverEnter(const gfx::PointF& position) {
@@ -80,21 +86,25 @@
     const gfx::PointF& position) {
   delegate_->OnContentFlingStart(std::move(gesture), position);
 }
+
 void ContentElement::OnFlingCancel(
     std::unique_ptr<blink::WebGestureEvent> gesture,
     const gfx::PointF& position) {
   delegate_->OnContentFlingCancel(std::move(gesture), position);
 }
+
 void ContentElement::OnScrollBegin(
     std::unique_ptr<blink::WebGestureEvent> gesture,
     const gfx::PointF& position) {
   delegate_->OnContentScrollBegin(std::move(gesture), position);
 }
+
 void ContentElement::OnScrollUpdate(
     std::unique_ptr<blink::WebGestureEvent> gesture,
     const gfx::PointF& position) {
   delegate_->OnContentScrollUpdate(std::move(gesture), position);
 }
+
 void ContentElement::OnScrollEnd(
     std::unique_ptr<blink::WebGestureEvent> gesture,
     const gfx::PointF& position) {
@@ -110,6 +120,15 @@
   texture_location_ = location;
 }
 
+void ContentElement::SetOverlayTextureId(unsigned int texture_id) {
+  overlay_texture_id_ = texture_id;
+}
+
+void ContentElement::SetOverlayTextureLocation(
+    UiElementRenderer::TextureLocation location) {
+  overlay_texture_location_ = location;
+}
+
 void ContentElement::SetProjectionMatrix(const gfx::Transform& matrix) {
   projection_matrix_ = matrix;
 }
diff --git a/chrome/browser/vr/elements/content_element.h b/chrome/browser/vr/elements/content_element.h
index 4ce3f45..355898a 100644
--- a/chrome/browser/vr/elements/content_element.h
+++ b/chrome/browser/vr/elements/content_element.h
@@ -43,6 +43,8 @@
 
   void SetTextureId(unsigned int texture_id);
   void SetTextureLocation(UiElementRenderer::TextureLocation location);
+  void SetOverlayTextureId(unsigned int texture_id);
+  void SetOverlayTextureLocation(UiElementRenderer::TextureLocation location);
   void SetProjectionMatrix(const gfx::Transform& matrix);
 
  private:
@@ -51,6 +53,9 @@
   unsigned int texture_id_ = 0;
   UiElementRenderer::TextureLocation texture_location_ =
       UiElementRenderer::kTextureLocationExternal;
+  unsigned int overlay_texture_id_ = 0;
+  UiElementRenderer::TextureLocation overlay_texture_location_ =
+      UiElementRenderer::kTextureLocationExternal;
   gfx::SizeF last_content_screen_bounds_;
   float last_content_aspect_ratio_ = 0.0f;
   gfx::Transform projection_matrix_;
diff --git a/chrome/browser/vr/elements/omnibox_formatting.cc b/chrome/browser/vr/elements/omnibox_formatting.cc
index 185d880..5ddc59bd 100644
--- a/chrome/browser/vr/elements/omnibox_formatting.cc
+++ b/chrome/browser/vr/elements/omnibox_formatting.cc
@@ -6,6 +6,7 @@
 
 #include "ui/gfx/font.h"
 #include "ui/gfx/range/range.h"
+#include "ui/gfx/render_text.h"
 #include "ui/gfx/text_constants.h"
 
 namespace vr {
@@ -53,4 +54,48 @@
   return formatting;
 }
 
+url_formatter::FormatUrlTypes GetVrFormatUrlTypes() {
+  return url_formatter::kFormatUrlOmitDefaults |
+         url_formatter::kFormatUrlOmitHTTPS |
+         url_formatter::kFormatUrlOmitTrivialSubdomains;
+}
+
+ElisionParameters GetElisionParameters(const GURL& gurl,
+                                       const url::Parsed& parsed,
+                                       gfx::RenderText* render_text,
+                                       int min_path_pixels) {
+  // In situations where there is no host, do not attempt to position the TLD.
+  bool allow_offset =
+      gurl.IsStandard() && !gurl.SchemeIsFile() && parsed.host.is_nonempty();
+  int total_width = render_text->GetContentWidth();
+
+  ElisionParameters result;
+
+  // Find the rightmost extent of the host portion. To safely handle RTL,
+  // compute the union of all rendered host segments.
+  gfx::Range range(0, parsed.CountCharactersBefore(url::Parsed::PATH, false));
+  std::vector<gfx::Rect> rects = render_text->GetSubstringBounds(range);
+  gfx::Rect host_bounds;
+  for (const auto& rect : rects)
+    host_bounds.Union(rect);
+
+  // Choose a right-edge cutoff point.  If there is nothing after the host, then
+  // it's the end of the host.  If there is a path, then include a limited
+  // portion of the path.
+  int path_width = total_width - host_bounds.width();
+  int field_width = render_text->display_rect().width();
+  int anchor_point =
+      host_bounds.width() + std::min(min_path_pixels, path_width);
+
+  if (allow_offset && anchor_point > field_width) {
+    result.offset = field_width - anchor_point;
+    result.fade_left = true;
+  }
+  if (total_width + result.offset > field_width) {
+    result.fade_right = true;
+  }
+
+  return result;
+}
+
 }  // namespace vr
diff --git a/chrome/browser/vr/elements/omnibox_formatting.h b/chrome/browser/vr/elements/omnibox_formatting.h
index 5dd396a..9b808c8 100644
--- a/chrome/browser/vr/elements/omnibox_formatting.h
+++ b/chrome/browser/vr/elements/omnibox_formatting.h
@@ -11,13 +11,41 @@
 #include "chrome/browser/vr/model/color_scheme.h"
 #include "components/omnibox/browser/autocomplete_match.h"
 
+namespace gfx {
+class RenderText;
+}
+
 namespace vr {
 
+// Convert Autocomplete's suggestion formatting to generic VR text formatting.
 TextFormatting ConvertClassification(
     const ACMatchClassifications& classifications,
     size_t text_length,
     const ColorScheme& color_scheme);
 
+url_formatter::FormatUrlTypes GetVrFormatUrlTypes();
+
+struct ElisionParameters {
+  // The horizontal pixel offset to be applied to URL text, such that the right
+  // edge of the domain (along with at least a small amount of path) is visible
+  // within the available text field space.
+  int offset = 0;
+
+  // Flags indicating that either edge of the URL overflows the ends of the text
+  // field, after offsetting, and that fading must be applied.
+  bool fade_left = false;
+  bool fade_right = false;
+};
+
+// Based on a URL and the RenderText that will draw it, determine the required
+// elision parameters.  This means computing an offset such that the rightmost
+// portion of the TLD is visible (along with a small part of the path), and
+// fading either edge if they overflow available space.
+ElisionParameters GetElisionParameters(const GURL& gurl,
+                                       const url::Parsed& parsed,
+                                       gfx::RenderText* render_text,
+                                       int min_path_pixels);
+
 }  // namespace vr
 
 #endif  // CHROME_BROWSER_VR_ELEMENTS_OMNIBOX_FORMATTING_H_
diff --git a/chrome/browser/vr/elements/omnibox_formatting_unittest.cc b/chrome/browser/vr/elements/omnibox_formatting_unittest.cc
index b3e838c..1c60d35 100644
--- a/chrome/browser/vr/elements/omnibox_formatting_unittest.cc
+++ b/chrome/browser/vr/elements/omnibox_formatting_unittest.cc
@@ -4,8 +4,11 @@
 
 #include "chrome/browser/vr/elements/omnibox_formatting.h"
 
+#include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/vr/model/color_scheme.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "ui/gfx/render_text.h"
+#include "ui/gfx/text_utils.h"
 
 namespace vr {
 
@@ -15,6 +18,9 @@
 constexpr SkColor kDimColor = 0xFF000002;
 constexpr SkColor kUrlColor = 0xFF000003;
 
+constexpr bool kNoOffset = false;
+constexpr bool kHasOffset = true;
+
 }  // namespace
 
 TEST(OmniboxFormatting, MultiLine) {
@@ -63,4 +69,81 @@
   EXPECT_EQ(formatting[5].range(), gfx::Range(4, 5));
 }
 
+struct ElisionTestcase {
+  std::string url_string;
+  std::string reference_url_string;
+  bool has_offset;
+  bool fade_left;
+  bool fade_right;
+};
+
+class ElisionTest : public ::testing::TestWithParam<ElisionTestcase> {};
+
+TEST_P(ElisionTest, ProperOffsetAndFading) {
+  // Use the reference URL to compute a text field width into which the actual
+  // URL will be rendered.
+  GURL reference_gurl(base::UTF8ToUTF16(GetParam().reference_url_string));
+  ASSERT_TRUE(reference_gurl.is_valid());
+  const base::string16 reference_text = url_formatter::FormatUrl(
+      reference_gurl, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, nullptr,
+      nullptr, nullptr);
+  gfx::FontList font_list;
+  auto field_width = gfx::GetStringWidth(reference_text, font_list);
+  gfx::Rect field(field_width, font_list.GetHeight());
+
+  // Format the actual test URL.
+  GURL gurl(base::UTF8ToUTF16(GetParam().url_string));
+  ASSERT_TRUE(gurl.is_valid());
+  url::Parsed parsed;
+  const base::string16 text = url_formatter::FormatUrl(
+      gurl, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, &parsed, nullptr,
+      nullptr);
+
+  auto render_text = gfx::RenderText::CreateHarfBuzzInstance();
+  render_text->SetFontList(font_list);
+  render_text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
+  render_text->SetDirectionalityMode(gfx::DIRECTIONALITY_AS_URL);
+  render_text->SetText(text);
+  render_text->SetDisplayRect(field);
+  render_text->SetCursorEnabled(false);
+
+  auto min_path_width =
+      gfx::GetStringWidth(base::UTF8ToUTF16("aaa"), font_list);
+  ElisionParameters result =
+      GetElisionParameters(gurl, parsed, render_text.get(), min_path_width);
+
+  EXPECT_EQ(result.offset != 0, GetParam().has_offset);
+  EXPECT_EQ(result.fade_left, GetParam().fade_left);
+  EXPECT_EQ(result.fade_right, GetParam().fade_right);
+}
+
+const std::vector<ElisionTestcase> elision_test_cases = {
+    // URL exactly matches the field width.
+    {"http://abc.com", "http://abc.com", kNoOffset, false, false},
+    {"http://abc.com/aaa", "http://abc.com/aaa", kNoOffset, false, false},
+    // URL is narrower than the field.
+    {"http://abc.com/a", "http://abc.com/aaa", kNoOffset, false, false},
+    // A really long path should not interfere with a short domain.
+    {"http://abc.com/aaaaaaaaaaaaaaaaaaaaaaaaa", "http://abc.com/aaa",
+     kNoOffset, false, true},
+    // A long domain should be offset and fade on the left.
+    {"http://aaaaaaaaaaaaaaaaaaaaaaaa.abc.com", "http://abc.com/aaa",
+     kHasOffset, true, false},
+    // A long domain with a tiny path should preserve the path.
+    {"http://aaaaaaaaaaaaaaaaaaaaaaaa.abc.com/a", "http://abc.com/aaa",
+     kHasOffset, true, false},
+    // A long domain and path should see fading at both ends.
+    {"http://aaaaaaaaaaaaaaaaaaaaaaaa.abc.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+     "http://abc.com/aaa", kHasOffset, true, true},
+    // A file URL should always fade to the right.
+    {"file://filer/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "file://filer/aaa",
+     kNoOffset, false, true},
+    {"data:text/plain;charset=UTF-8;aaaaaaaaaaaaaaaaaaa", "data:text/plain",
+     kNoOffset, false, true},
+};
+
+INSTANTIATE_TEST_CASE_P(ElisionTestCases,
+                        ElisionTest,
+                        ::testing::ValuesIn(elision_test_cases));
+
 }  // namespace vr
diff --git a/chrome/browser/vr/elements/ui_texture.cc b/chrome/browser/vr/elements/ui_texture.cc
index 3fd1a47..a2202789 100644
--- a/chrome/browser/vr/elements/ui_texture.cc
+++ b/chrome/browser/vr/elements/ui_texture.cc
@@ -158,6 +158,9 @@
 std::unique_ptr<gfx::RenderText> UiTexture::CreateRenderText() {
   auto render_text = gfx::RenderText::CreateHarfBuzzInstance();
 
+  // Disable the cursor to avoid reserving width for a trailing caret.
+  render_text->SetCursorEnabled(false);
+
   // Subpixel rendering is counterproductive when drawing VR textures.
   render_text->set_subpixel_rendering_suppressed(true);
 
diff --git a/chrome/browser/vr/elements/url_bar_texture.cc b/chrome/browser/vr/elements/url_bar_texture.cc
index 34e04e0..3a33f22 100644
--- a/chrome/browser/vr/elements/url_bar_texture.cc
+++ b/chrome/browser/vr/elements/url_bar_texture.cc
@@ -15,6 +15,7 @@
 #include "components/url_formatter/elide_url.h"
 #include "components/url_formatter/url_formatter.h"
 #include "components/vector_icons/vector_icons.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
 #include "ui/gfx/canvas.h"
 #include "ui/gfx/font.h"
 #include "ui/gfx/font_list.h"
@@ -69,6 +70,41 @@
   return gfx::PointF(percent.x() * kWidth, percent.y() * kHeight);
 }
 
+void ApplyUrlFading(SkCanvas* canvas,
+                    const gfx::Rect& text_bounds,
+                    float fade_width,
+                    bool fade_left,
+                    bool fade_right) {
+  if (!fade_left && !fade_right)
+    return;
+
+  SkPoint fade_points[2] = {SkPoint::Make(0.0f, 0.0f),
+                            SkPoint::Make(fade_width, 0.0f)};
+  SkColor fade_colors[2] = {SK_ColorTRANSPARENT, SK_ColorBLACK};
+
+  SkPaint overlay;
+  overlay.setShader(
+      SkGradientShader::MakeLinear(fade_points, fade_colors, nullptr, 2,
+                                   SkShader::kClamp_TileMode, 0, nullptr));
+  if (fade_left) {
+    canvas->save();
+    canvas->translate(text_bounds.x(), 0);
+    canvas->clipRect(SkRect::MakeWH(fade_width, text_bounds.height()));
+    overlay.setBlendMode(SkBlendMode::kDstIn);
+    canvas->drawPaint(overlay);
+    canvas->restore();
+  }
+
+  if (fade_right) {
+    canvas->save();
+    canvas->translate(text_bounds.right() - fade_width, 0);
+    canvas->clipRect(SkRect::MakeWH(fade_width, text_bounds.height()));
+    overlay.setBlendMode(SkBlendMode::kDstOut);
+    canvas->drawPaint(overlay);
+    canvas->restore();
+  }
+}
+
 }  // namespace
 
 UrlBarTexture::UrlBarTexture(
@@ -181,15 +217,24 @@
 
   if (state_.should_display_url) {
     left_edge += kUrlBarFieldSpacingDMM;
-    float url_x = left_edge;
+
     if (!url_render_text_ || url_dirty_) {
-      float url_width = kWidth - url_x;
-      gfx::Rect text_bounds(ToPixels(url_x), 0, ToPixels(url_width),
+      float url_width = kWidth - left_edge;
+      gfx::Rect text_bounds(ToPixels(left_edge), 0, ToPixels(url_width),
                             ToPixels(kHeight));
       RenderUrl(texture_size, text_bounds);
       url_dirty_ = false;
     }
+
+    // TODO(cjgrant): Now that this element is only origin information, and not
+    // the entire URL bar, eliminate this unnecessary caching and simply draw
+    // everything when generating the texture.
     url_render_text_->Draw(&gfx_canvas);
+    float fade_width = ToPixels(kUrlBarOriginFadeWidth);
+    ApplyUrlFading(canvas, url_render_text_->display_rect(), fade_width,
+                   elision_parameters_.fade_left,
+                   elision_parameters_.fade_right);
+
     rendered_url_text_ = url_render_text_->text();
     rendered_url_text_rect_ = url_render_text_->display_rect();
   }
@@ -197,30 +242,21 @@
 
 void UrlBarTexture::RenderUrl(const gfx::Size& texture_size,
                               const gfx::Rect& text_bounds) {
-  url_formatter::FormatUrlTypes format_types =
-      url_formatter::kFormatUrlOmitDefaults |
-      url_formatter::kFormatUrlOmitHTTPS |
-      url_formatter::kFormatUrlOmitTrivialSubdomains;
-
   url::Parsed parsed;
-  const base::string16 unelided_url = url_formatter::FormatUrl(
-      state_.gurl, format_types, net::UnescapeRule::NORMAL, &parsed, nullptr,
-      nullptr);
+  const base::string16 text = url_formatter::FormatUrl(
+      state_.gurl, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, &parsed,
+      nullptr, nullptr);
 
   int pixel_font_height =
       texture_size.height() * kUrlBarFontHeightDMM / kHeight;
   gfx::FontList font_list;
-  if (!GetDefaultFontList(pixel_font_height, unelided_url, &font_list))
+  if (!GetDefaultFontList(pixel_font_height, text, &font_list))
     failure_callback_.Run(UiUnsupportedMode::kUnhandledCodePoint);
 
-  const base::string16 text = url_formatter::ElideUrlSimple(
-      state_.gurl, unelided_url, font_list, text_bounds.width(), &parsed);
-
   std::unique_ptr<gfx::RenderText> render_text(CreateRenderText());
   render_text->SetFontList(font_list);
   render_text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
-  render_text->SetElideBehavior(gfx::TRUNCATE);
-  render_text->SetDirectionalityMode(gfx::DIRECTIONALITY_FORCE_LTR);
+  render_text->SetDirectionalityMode(gfx::DIRECTIONALITY_AS_URL);
   render_text->SetText(text);
   render_text->SetDisplayRect(text_bounds);
 
@@ -228,7 +264,13 @@
   ApplyUrlStyling(text, parsed, state_.security_level, &vr_render_text,
                   colors_);
 
+  ElisionParameters elision_parameters =
+      GetElisionParameters(state_.gurl, parsed, render_text.get(),
+                           ToPixels(kUrlBarOriginMinimumPathWidth));
+  render_text->SetDisplayOffset(elision_parameters.offset);
+
   url_render_text_ = std::move(render_text);
+  elision_parameters_ = elision_parameters;
 }
 
 // static
diff --git a/chrome/browser/vr/elements/url_bar_texture.h b/chrome/browser/vr/elements/url_bar_texture.h
index a045ad2..38ebe529 100644
--- a/chrome/browser/vr/elements/url_bar_texture.h
+++ b/chrome/browser/vr/elements/url_bar_texture.h
@@ -10,6 +10,7 @@
 
 #include "base/callback.h"
 #include "base/macros.h"
+#include "chrome/browser/vr/elements/omnibox_formatting.h"
 #include "chrome/browser/vr/elements/ui_texture.h"
 #include "chrome/browser/vr/model/color_scheme.h"
 #include "chrome/browser/vr/model/toolbar_state.h"
@@ -54,6 +55,7 @@
   bool url_dirty() const { return url_dirty_; }
 
   std::unique_ptr<gfx::RenderText> url_render_text_;
+  ElisionParameters elision_parameters_;
 
   // Rendered state for test purposes. The text rectangles represent regions
   // available to text, not the smaller area of the actual rendered text.
diff --git a/chrome/browser/vr/elements/url_bar_texture_unittest.cc b/chrome/browser/vr/elements/url_bar_texture_unittest.cc
index 3251daa..898faaa3 100644
--- a/chrome/browser/vr/elements/url_bar_texture_unittest.cc
+++ b/chrome/browser/vr/elements/url_bar_texture_unittest.cc
@@ -9,6 +9,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
+#include "chrome/browser/vr/elements/omnibox_formatting.h"
 #include "chrome/browser/vr/elements/render_text_wrapper.h"
 #include "chrome/browser/vr/model/color_scheme.h"
 #include "chrome/browser/vr/model/toolbar_state.h"
@@ -73,8 +74,8 @@
   size_t GetNumberOfFontFallbacksForURL(const GURL& gurl) {
     url::Parsed parsed;
     const base::string16 text = url_formatter::FormatUrl(
-        gurl, url_formatter::kFormatUrlOmitDefaults, net::UnescapeRule::NORMAL,
-        &parsed, nullptr, nullptr);
+        gurl, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, &parsed,
+        nullptr, nullptr);
 
     gfx::Size texture_size = GetPreferredTextureSize(kUrlWidthPixels);
     gfx::FontList font_list;
@@ -121,11 +122,8 @@
     GURL url(base::UTF8ToUTF16(url_string));
     url::Parsed parsed;
     const base::string16 formatted_url = url_formatter::FormatUrl(
-        url,
-        url_formatter::kFormatUrlOmitDefaults |
-            url_formatter::kFormatUrlOmitHTTPS |
-            url_formatter::kFormatUrlOmitTrivialSubdomains,
-        net::UnescapeRule::NORMAL, &parsed, nullptr, nullptr);
+        url, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, &parsed, nullptr,
+        nullptr);
     EXPECT_EQ(formatted_url, base::UTF8ToUTF16(expected_string));
     TestUrlBarTexture::TestUrlStyling(
         formatted_url, parsed, level, &mock_,
@@ -220,10 +218,9 @@
   gfx::Range spoofed_range(position, position + spoofed_16.size());
 
   // Extract the pixel locations at which hostnames were actually rendered.
-  auto real_bounds =
-      texture.url_render_text()->GetSubstringBoundsForTesting(real_range);
+  auto real_bounds = texture.url_render_text()->GetSubstringBounds(real_range);
   auto spoofed_bounds =
-      texture.url_render_text()->GetSubstringBoundsForTesting(spoofed_range);
+      texture.url_render_text()->GetSubstringBounds(spoofed_range);
   EXPECT_EQ(real_bounds.size(), 1u);
   EXPECT_GE(spoofed_bounds.size(), 1u);
 
diff --git a/chrome/browser/vr/elements/webvr_url_toast_texture.cc b/chrome/browser/vr/elements/webvr_url_toast_texture.cc
index 58ae2082..2b89ca4 100644
--- a/chrome/browser/vr/elements/webvr_url_toast_texture.cc
+++ b/chrome/browser/vr/elements/webvr_url_toast_texture.cc
@@ -5,6 +5,7 @@
 #include "chrome/browser/vr/elements/webvr_url_toast_texture.h"
 
 #include "cc/paint/skia_paint_canvas.h"
+#include "chrome/browser/vr/elements/omnibox_formatting.h"
 #include "chrome/browser/vr/elements/vector_icon.h"
 #include "components/url_formatter/url_formatter.h"
 #include "ui/gfx/canvas.h"
@@ -98,12 +99,9 @@
   int pixel_font_height = texture_size.height() * kFontHeight / kHeight;
 
   url::Parsed parsed;
-  url_formatter::FormatUrlTypes format_types =
-      url_formatter::kFormatUrlOmitDefaults;
-  format_types |= url_formatter::kFormatUrlOmitHTTPS;
   const base::string16 formatted_url = url_formatter::FormatUrl(
-      state_.gurl, format_types, net::UnescapeRule::NORMAL, &parsed, nullptr,
-      nullptr);
+      state_.gurl, GetVrFormatUrlTypes(), net::UnescapeRule::NORMAL, &parsed,
+      nullptr, nullptr);
 
   base::string16 url;
   if (parsed.host.is_valid())
@@ -125,7 +123,7 @@
   render_text->SetColor(foreground_color());
   render_text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
   render_text->SetElideBehavior(gfx::ELIDE_HEAD);
-  render_text->SetDirectionalityMode(gfx::DIRECTIONALITY_FORCE_LTR);
+  render_text->SetDirectionalityMode(gfx::DIRECTIONALITY_AS_URL);
   render_text->SetText(url);
 
   url_render_text_ = std::move(render_text);
diff --git a/chrome/browser/vr/model/capturing_state_model.h b/chrome/browser/vr/model/capturing_state_model.h
new file mode 100644
index 0000000..374fd351
--- /dev/null
+++ b/chrome/browser/vr/model/capturing_state_model.h
@@ -0,0 +1,20 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_VR_MODEL_CAPTURING_STATE_MODEL_H_
+#define CHROME_BROWSER_VR_MODEL_CAPTURING_STATE_MODEL_H_
+
+namespace vr {
+
+struct CapturingStateModel {
+  bool audio_capture_enabled = false;
+  bool video_capture_enabled = false;
+  bool screen_capture_enabled = false;
+  bool location_access_enabled = false;
+  bool bluetooth_connected = false;
+};
+
+}  // namespace vr
+
+#endif  // CHROME_BROWSER_VR_MODEL_CAPTURING_STATE_MODEL_H_
diff --git a/chrome/browser/vr/model/model.h b/chrome/browser/vr/model/model.h
index c79ca889..db7b006 100644
--- a/chrome/browser/vr/model/model.h
+++ b/chrome/browser/vr/model/model.h
@@ -5,11 +5,11 @@
 #ifndef CHROME_BROWSER_VR_MODEL_MODEL_H_
 #define CHROME_BROWSER_VR_MODEL_MODEL_H_
 
+#include "chrome/browser/vr/model/capturing_state_model.h"
 #include "chrome/browser/vr/model/color_scheme.h"
 #include "chrome/browser/vr/model/controller_model.h"
 #include "chrome/browser/vr/model/modal_prompt_type.h"
 #include "chrome/browser/vr/model/omnibox_suggestions.h"
-#include "chrome/browser/vr/model/permissions_model.h"
 #include "chrome/browser/vr/model/reticle_model.h"
 #include "chrome/browser/vr/model/speech_recognition_model.h"
 #include "chrome/browser/vr/model/text_input_info.h"
@@ -38,8 +38,11 @@
   const ColorScheme& color_scheme() const;
   gfx::Transform projection_matrix;
   unsigned int content_texture_id = 0;
+  unsigned int content_overlay_texture_id = 0;
   UiElementRenderer::TextureLocation content_location =
       UiElementRenderer::kTextureLocationLocal;
+  UiElementRenderer::TextureLocation content_overlay_location =
+      UiElementRenderer::kTextureLocationLocal;
   bool background_available = false;
   bool can_apply_new_background = false;
   bool background_loaded = false;
@@ -73,7 +76,7 @@
 
   // State affecting both VR browsing and WebVR.
   ModalPromptType active_modal_prompt_type = kModalPromptTypeNone;
-  PermissionsModel permissions;
+  CapturingStateModel capturing_state;
   bool experimental_features_enabled = false;
   bool skips_redraw_when_not_dirty = false;
   bool exiting_vr = false;
diff --git a/chrome/browser/vr/model/permissions_model.h b/chrome/browser/vr/model/permissions_model.h
deleted file mode 100644
index 696aa108..0000000
--- a/chrome/browser/vr/model/permissions_model.h
+++ /dev/null
@@ -1,20 +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_VR_MODEL_PERMISSIONS_MODEL_H_
-#define CHROME_BROWSER_VR_MODEL_PERMISSIONS_MODEL_H_
-
-namespace vr {
-
-struct PermissionsModel {
-  bool audio_capture_enabled = false;
-  bool video_capture_enabled = false;
-  bool screen_capture_enabled = false;
-  bool location_access = false;
-  bool bluetooth_connected = false;
-};
-
-}  // namespace vr
-
-#endif  // CHROME_BROWSER_VR_MODEL_PERMISSIONS_MODEL_H_
diff --git a/chrome/browser/vr/test/mock_browser_ui_interface.h b/chrome/browser/vr/test/mock_browser_ui_interface.h
index 224a7990..64bd147 100644
--- a/chrome/browser/vr/test/mock_browser_ui_interface.h
+++ b/chrome/browser/vr/test/mock_browser_ui_interface.h
@@ -31,7 +31,7 @@
   MOCK_METHOD1(SetScreenCaptureEnabled, void(bool enabled));
   MOCK_METHOD1(SetAudioCaptureEnabled, void(bool enabled));
   MOCK_METHOD1(SetBluetoothConnected, void(bool enabled));
-  MOCK_METHOD1(SetLocationAccess, void(bool enabled));
+  MOCK_METHOD1(SetLocationAccessEnabled, void(bool enabled));
   MOCK_METHOD2(SetExitVrPromptEnabled,
                void(bool enabled, UiUnsupportedMode reason));
   MOCK_METHOD1(SetSpeechRecognitionEnabled, void(bool enabled));
diff --git a/chrome/browser/vr/test/ui_pixel_test.cc b/chrome/browser/vr/test/ui_pixel_test.cc
index 8aeebb7..189b9d9 100644
--- a/chrome/browser/vr/test/ui_pixel_test.cc
+++ b/chrome/browser/vr/test/ui_pixel_test.cc
@@ -35,6 +35,8 @@
 
   // Make content texture.
   content_texture_ = gl::GLTestHelper::CreateTexture(GL_TEXTURE_2D);
+  content_overlay_texture_ = gl::GLTestHelper::CreateTexture(GL_TEXTURE_2D);
+
   // TODO(tiborg): Make GL_TEXTURE_EXTERNAL_OES texture for content and fill it
   // with fake content.
   ASSERT_EQ(glGetError(), (GLenum)GL_NO_ERROR);
@@ -58,6 +60,8 @@
   ui_ = std::make_unique<Ui>(browser_.get(), nullptr, nullptr, nullptr,
                              ui_initial_state);
   ui_->OnGlInitialized(content_texture_,
+                       vr::UiElementRenderer::kTextureLocationLocal,
+                       content_overlay_texture_,
                        vr::UiElementRenderer::kTextureLocationLocal, true);
   ui_->GetBrowserUiWeakPtr()->SetToolbarState(toolbar_state);
 }
diff --git a/chrome/browser/vr/test/ui_pixel_test.h b/chrome/browser/vr/test/ui_pixel_test.h
index a4758e7..70919c1 100644
--- a/chrome/browser/vr/test/ui_pixel_test.h
+++ b/chrome/browser/vr/test/ui_pixel_test.h
@@ -43,6 +43,7 @@
   std::unique_ptr<MockUiBrowserInterface> browser_;
   std::unique_ptr<MockContentInputDelegate> content_input_delegate_;
   GLuint content_texture_ = 0;
+  GLuint content_overlay_texture_ = 0;
   gfx::Size frame_buffer_size_;
   std::unique_ptr<Ui> ui_;
 };
diff --git a/chrome/browser/vr/testapp/vr_test_context.cc b/chrome/browser/vr/testapp/vr_test_context.cc
index 9d227fd..25b87b8 100644
--- a/chrome/browser/vr/testapp/vr_test_context.cc
+++ b/chrome/browser/vr/testapp/vr_test_context.cc
@@ -113,7 +113,7 @@
   ui_->SetScreenCaptureEnabled(true);
   ui_->SetAudioCaptureEnabled(true);
   ui_->SetBluetoothConnected(true);
-  ui_->SetLocationAccess(true);
+  ui_->SetLocationAccessEnabled(true);
   ui_->input_manager()->set_hit_test_strategy(
       UiInputManager::PROJECT_TO_LASER_ORIGIN_FOR_TEST);
 }
@@ -346,8 +346,9 @@
 void VrTestContext::OnGlInitialized() {
   unsigned int content_texture_id = CreateFakeContentTexture();
 
-  ui_->OnGlInitialized(content_texture_id,
-                       UiElementRenderer::kTextureLocationLocal, false);
+  ui_->OnGlInitialized(
+      content_texture_id, UiElementRenderer::kTextureLocationLocal,
+      content_texture_id, UiElementRenderer::kTextureLocationLocal, false);
 
   keyboard_delegate_->Initialize(ui_->scene()->SurfaceProviderForTesting(),
                                  ui_->ui_element_renderer());
@@ -531,10 +532,31 @@
 
 void VrTestContext::CycleOrigin() {
   const std::vector<ToolbarState> states = {
-      {GURL("http://www.domain.com/path/segment/directory/file.html"),
+      {GURL("http://domain.com"),
        security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
        base::string16(), true, false},
-      {GURL("http://www.domain.com/"),
+      {GURL("http://domaaaaaaaaaaain.com"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaain.com"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domain.com/a/"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domain.com/aaaaaaa/"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domain.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domaaaaaaaaaaaaaaaaain.com/aaaaaaaaaaaaaaaaaaaaaaaaaaaaa/"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://domaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaain.com/aaaaaaaaaa/"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("http://www.domain.com/path/segment/directory/file.html"),
        security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
        base::string16(), true, false},
       {GURL("http://subdomain.domain.com/"),
@@ -549,6 +571,12 @@
       {GURL("https://www.domain.com/path/segment/directory/file.html"),
        security_state::SecurityLevel::HTTP_SHOW_WARNING,
        &toolbar::kOfflinePinIcon, base::UTF8ToUTF16("Offline"), true, true},
+      {GURL("file:///C:/path/filename"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
+      {GURL("file:///C:/path/path/path/path/path/path/path/path"),
+       security_state::SecurityLevel::HTTP_SHOW_WARNING, &toolbar::kHttpIcon,
+       base::string16(), true, false},
   };
 
   static int state = 0;
diff --git a/chrome/browser/vr/ui.cc b/chrome/browser/vr/ui.cc
index 70efb8cc..e90c3f8 100644
--- a/chrome/browser/vr/ui.cc
+++ b/chrome/browser/vr/ui.cc
@@ -112,23 +112,23 @@
 }
 
 void Ui::SetVideoCaptureEnabled(bool enabled) {
-  model_->permissions.video_capture_enabled = enabled;
+  model_->capturing_state.video_capture_enabled = enabled;
 }
 
 void Ui::SetScreenCaptureEnabled(bool enabled) {
-  model_->permissions.screen_capture_enabled = enabled;
+  model_->capturing_state.screen_capture_enabled = enabled;
 }
 
 void Ui::SetAudioCaptureEnabled(bool enabled) {
-  model_->permissions.audio_capture_enabled = enabled;
+  model_->capturing_state.audio_capture_enabled = enabled;
 }
 
 void Ui::SetBluetoothConnected(bool enabled) {
-  model_->permissions.bluetooth_connected = enabled;
+  model_->capturing_state.bluetooth_connected = enabled;
 }
 
-void Ui::SetLocationAccess(bool enabled) {
-  model_->permissions.location_access = enabled;
+void Ui::SetLocationAccessEnabled(bool enabled) {
+  model_->capturing_state.location_access_enabled = enabled;
 }
 
 void Ui::SetExitVrPromptEnabled(bool enabled, UiUnsupportedMode reason) {
@@ -201,9 +201,12 @@
   return model_->web_vr.has_produced_frames();
 }
 
-void Ui::OnGlInitialized(unsigned int content_texture_id,
-                         UiElementRenderer::TextureLocation content_location,
-                         bool use_ganesh) {
+void Ui::OnGlInitialized(
+    unsigned int content_texture_id,
+    UiElementRenderer::TextureLocation content_location,
+    unsigned int content_overlay_texture_id,
+    UiElementRenderer::TextureLocation content_overlay_location,
+    bool use_ganesh) {
   ui_element_renderer_ = std::make_unique<UiElementRenderer>();
   ui_renderer_ =
       std::make_unique<UiRenderer>(scene_.get(), ui_element_renderer_.get());
@@ -214,7 +217,9 @@
   }
   scene_->OnGlInitialized(provider_.get());
   model_->content_texture_id = content_texture_id;
+  model_->content_overlay_texture_id = content_overlay_texture_id;
   model_->content_location = content_location;
+  model_->content_overlay_location = content_overlay_location;
 }
 
 void Ui::RequestFocus(int element_id) {
diff --git a/chrome/browser/vr/ui.h b/chrome/browser/vr/ui.h
index 495b6584..f52216cf 100644
--- a/chrome/browser/vr/ui.h
+++ b/chrome/browser/vr/ui.h
@@ -84,7 +84,7 @@
   void SetScreenCaptureEnabled(bool enabled) override;
   void SetAudioCaptureEnabled(bool enabled) override;
   void SetBluetoothConnected(bool enabled) override;
-  void SetLocationAccess(bool enabled) override;
+  void SetLocationAccessEnabled(bool enabled) override;
   void SetExitVrPromptEnabled(bool enabled, UiUnsupportedMode reason) override;
   void SetSpeechRecognitionEnabled(bool enabled) override;
   void SetRecognitionResult(const base::string16& result) override;
@@ -98,9 +98,12 @@
 
   void OnAssetsLoading();
   bool ShouldRenderWebVr();
-  void OnGlInitialized(unsigned int content_texture_id,
-                       UiElementRenderer::TextureLocation content_location,
-                       bool use_ganesh);
+  void OnGlInitialized(
+      unsigned int content_texture_id,
+      UiElementRenderer::TextureLocation content_location,
+      unsigned int content_overlay_texture_id,
+      UiElementRenderer::TextureLocation content_overlay_location,
+      bool use_ganesh);
   void OnAppButtonClicked();
   void OnAppButtonGesturePerformed(
       PlatformController::SwipeDirection direction);
diff --git a/chrome/browser/vr/ui_scene_constants.h b/chrome/browser/vr/ui_scene_constants.h
index 50c9fc76..19a0b3e 100644
--- a/chrome/browser/vr/ui_scene_constants.h
+++ b/chrome/browser/vr/ui_scene_constants.h
@@ -66,11 +66,13 @@
 static constexpr float kUrlBarBackButtonIconOffsetDMM = 0.0045f;
 static constexpr float kUrlBarSeparatorWidthDMM = 0.002f;
 static constexpr float kUrlBarOriginRegionWidthDMM = 0.583f;
-static constexpr float kUrlBarOriginContentWidthDMM = 0.556f;
+static constexpr float kUrlBarOriginContentWidthDMM = 0.536f;
 static constexpr float kUrlBarOriginContentOffsetDMM = 0.007f;
 static constexpr float kUrlBarFieldSpacingDMM = 0.008f;
 static constexpr float kUrlBarOfflineIconTextSpacingDMM = 0.004f;
 static constexpr float kUrlBarSecuritySeparatorHeightDMM = 0.026f;
+static constexpr float kUrlBarOriginFadeWidth = 0.044f;
+static constexpr float kUrlBarOriginMinimumPathWidth = 0.044f;
 
 static constexpr float kOverlayPlaneDistance = 2.3f;
 
diff --git a/chrome/browser/vr/ui_scene_creator.cc b/chrome/browser/vr/ui_scene_creator.cc
index 9c0fb8e2..3d35aea 100644
--- a/chrome/browser/vr/ui_scene_creator.cc
+++ b/chrome/browser/vr/ui_scene_creator.cc
@@ -647,22 +647,22 @@
     UiElementName name;
     const gfx::VectorIcon& icon;
     int resource_string;
-    bool PermissionsModel::*signal;
+    bool CapturingStateModel::*signal;
   };
   const std::vector<Indicator> indicators = {
       {kAudioCaptureIndicator, vector_icons::kMicIcon,
        IDS_AUDIO_CALL_NOTIFICATION_TEXT_2,
-       &PermissionsModel::audio_capture_enabled},
+       &CapturingStateModel::audio_capture_enabled},
       {kVideoCaptureIndicator, vector_icons::kVideocamIcon,
        IDS_VIDEO_CALL_NOTIFICATION_TEXT_2,
-       &PermissionsModel::video_capture_enabled},
+       &CapturingStateModel::video_capture_enabled},
       {kScreenCaptureIndicator, vector_icons::kScreenShareIcon,
        IDS_SCREEN_CAPTURE_NOTIFICATION_TEXT_2,
-       &PermissionsModel::screen_capture_enabled},
+       &CapturingStateModel::screen_capture_enabled},
       {kBluetoothConnectedIndicator, vector_icons::kBluetoothConnectedIcon, 0,
-       &PermissionsModel::bluetooth_connected},
+       &CapturingStateModel::bluetooth_connected},
       {kLocationAccessIndicator, vector_icons::kLocationOnIcon, 0,
-       &PermissionsModel::location_access},
+       &CapturingStateModel::location_access_enabled},
   };
 
   std::unique_ptr<LinearLayout> indicator_layout =
@@ -697,8 +697,8 @@
                   &Toast::SetForegroundColor);
     element->AddBinding(std::make_unique<Binding<bool>>(
         VR_BIND_LAMBDA(
-            [](Model* m, bool PermissionsModel::*permission) {
-              return m->permissions.*permission;
+            [](Model* m, bool CapturingStateModel::*permission) {
+              return m->capturing_state.*permission;
             },
             base::Unretained(model_), indicator.signal),
         VR_BIND_LAMBDA(
@@ -751,6 +751,13 @@
                                         Model, model_, model->content_location,
                                         ContentElement, main_content.get(),
                                         SetTextureLocation));
+  main_content->AddBinding(VR_BIND_FUNC(
+      unsigned int, Model, model_, model->content_overlay_texture_id,
+      ContentElement, main_content.get(), SetOverlayTextureId));
+  main_content->AddBinding(
+      VR_BIND_FUNC(UiElementRenderer::TextureLocation, Model, model_,
+                   model->content_overlay_location, ContentElement,
+                   main_content.get(), SetOverlayTextureLocation));
 
   shadow->AddChild(std::move(main_content));
   scene_->AddUiElement(k2dBrowsingContentGroup, std::move(shadow));
@@ -1066,9 +1073,10 @@
   voice_search_button->set_y_anchoring(BOTTOM);
   voice_search_button->set_y_centering(TOP);
   voice_search_button->set_contributes_to_parent_bounds(false);
-  VR_BIND_VISIBILITY(
-      voice_search_button,
-      model->speech.has_or_can_request_audio_permission && !model->incognito);
+  VR_BIND_VISIBILITY(voice_search_button,
+                     model->speech.has_or_can_request_audio_permission &&
+                         !model->incognito &&
+                         !model->capturing_state.audio_capture_enabled);
   VR_BIND_BUTTON_COLORS(model_, voice_search_button.get(),
                         &ColorScheme::button_colors,
                         &DiscButton::SetButtonColors);
diff --git a/chrome/browser/vr/ui_unittest.cc b/chrome/browser/vr/ui_unittest.cc
index e084d0b..12f05a5 100644
--- a/chrome/browser/vr/ui_unittest.cc
+++ b/chrome/browser/vr/ui_unittest.cc
@@ -263,6 +263,19 @@
   EXPECT_FALSE(IsVisible(kVoiceSearchButton));
 }
 
+TEST_F(UiTest, VoiceSearchHiddenWhenContentCapturingAudio) {
+  CreateScene(kNotInCct, kNotInWebVr);
+
+  model_->speech.has_or_can_request_audio_permission = true;
+  model_->capturing_state.audio_capture_enabled = false;
+  EXPECT_TRUE(OnBeginFrame());
+  EXPECT_TRUE(IsVisible(kVoiceSearchButton));
+
+  model_->capturing_state.audio_capture_enabled = true;
+  EXPECT_TRUE(OnBeginFrame());
+  EXPECT_FALSE(IsVisible(kVoiceSearchButton));
+}
+
 TEST_F(UiTest, UiModeWebVr) {
   CreateScene(kNotInCct, kNotInWebVr);
 
@@ -577,11 +590,11 @@
 TEST_F(UiTest, UiUpdatesForWebVR) {
   CreateScene(kNotInCct, kInWebVr);
 
-  model_->permissions.audio_capture_enabled = true;
-  model_->permissions.video_capture_enabled = true;
-  model_->permissions.screen_capture_enabled = true;
-  model_->permissions.location_access = true;
-  model_->permissions.bluetooth_connected = true;
+  model_->capturing_state.audio_capture_enabled = true;
+  model_->capturing_state.video_capture_enabled = true;
+  model_->capturing_state.screen_capture_enabled = true;
+  model_->capturing_state.location_access_enabled = true;
+  model_->capturing_state.bluetooth_connected = true;
 
   VerifyOnlyElementsVisible("Elements hidden",
                             std::set<UiElementName>{kWebVrBackground});
@@ -606,11 +619,11 @@
 
 TEST_F(UiTest, UiUpdateTransitionToWebVR) {
   CreateScene(kNotInCct, kNotInWebVr);
-  model_->permissions.audio_capture_enabled = true;
-  model_->permissions.video_capture_enabled = true;
-  model_->permissions.screen_capture_enabled = true;
-  model_->permissions.location_access = true;
-  model_->permissions.bluetooth_connected = true;
+  model_->capturing_state.audio_capture_enabled = true;
+  model_->capturing_state.video_capture_enabled = true;
+  model_->capturing_state.screen_capture_enabled = true;
+  model_->capturing_state.location_access_enabled = true;
+  model_->capturing_state.bluetooth_connected = true;
 
   // Transition to WebVR mode
   ui_->SetWebVrMode(true, false);
@@ -631,11 +644,11 @@
   EXPECT_TRUE(VerifyVisibility(indicators, false));
   EXPECT_TRUE(VerifyRequiresLayout(indicators, false));
 
-  model_->permissions.audio_capture_enabled = true;
-  model_->permissions.video_capture_enabled = true;
-  model_->permissions.screen_capture_enabled = true;
-  model_->permissions.location_access = true;
-  model_->permissions.bluetooth_connected = true;
+  model_->capturing_state.audio_capture_enabled = true;
+  model_->capturing_state.video_capture_enabled = true;
+  model_->capturing_state.screen_capture_enabled = true;
+  model_->capturing_state.location_access_enabled = true;
+  model_->capturing_state.bluetooth_connected = true;
   EXPECT_TRUE(VerifyVisibility(indicators, true));
   EXPECT_TRUE(VerifyRequiresLayout(indicators, true));
 
@@ -652,11 +665,11 @@
   EXPECT_TRUE(VerifyRequiresLayout(indicators, true));
 
   // Ensure they can be turned off.
-  model_->permissions.audio_capture_enabled = false;
-  model_->permissions.video_capture_enabled = false;
-  model_->permissions.screen_capture_enabled = false;
-  model_->permissions.location_access = false;
-  model_->permissions.bluetooth_connected = false;
+  model_->capturing_state.audio_capture_enabled = false;
+  model_->capturing_state.video_capture_enabled = false;
+  model_->capturing_state.screen_capture_enabled = false;
+  model_->capturing_state.location_access_enabled = false;
+  model_->capturing_state.bluetooth_connected = false;
   EXPECT_TRUE(VerifyRequiresLayout(indicators, false));
 }
 
diff --git a/chrome/browser/vr/web_contents_event_forwarder.cc b/chrome/browser/vr/web_contents_event_forwarder.cc
deleted file mode 100644
index 08db1a0..0000000
--- a/chrome/browser/vr/web_contents_event_forwarder.cc
+++ /dev/null
@@ -1,43 +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.
-
-#include "chrome/browser/vr/web_contents_event_forwarder.h"
-
-#include "content/public/browser/render_widget_host.h"
-#include "content/public/browser/render_widget_host_view.h"
-#include "content/public/browser/web_contents.h"
-#include "third_party/WebKit/public/platform/WebGestureEvent.h"
-#include "third_party/WebKit/public/platform/WebMouseEvent.h"
-
-using blink::WebGestureEvent;
-using blink::WebMouseEvent;
-using blink::WebInputEvent;
-
-namespace vr {
-
-WebContentsEventForwarder::WebContentsEventForwarder(
-    content::WebContents* web_contents)
-    : web_contents_(web_contents) {}
-
-WebContentsEventForwarder::~WebContentsEventForwarder() = default;
-
-void WebContentsEventForwarder::ForwardEvent(
-    std::unique_ptr<WebInputEvent> event) {
-  if (!web_contents_->GetRenderWidgetHostView()) {
-    return;
-  }
-  content::RenderWidgetHost* rwh =
-      web_contents_->GetRenderWidgetHostView()->GetRenderWidgetHost();
-  if (!rwh) {
-    return;
-  }
-
-  if (WebInputEvent::IsMouseEventType(event->GetType())) {
-    rwh->ForwardMouseEvent(static_cast<const WebMouseEvent&>(*event));
-  } else if (WebInputEvent::IsGestureEventType(event->GetType())) {
-    rwh->ForwardGestureEvent(static_cast<const WebGestureEvent&>(*event));
-  }
-}
-
-}  // namespace vr
diff --git a/chrome/browser/vr/web_contents_event_forwarder.h b/chrome/browser/vr/web_contents_event_forwarder.h
deleted file mode 100644
index 3e03b67..0000000
--- a/chrome/browser/vr/web_contents_event_forwarder.h
+++ /dev/null
@@ -1,39 +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_VR_WEB_CONTENTS_EVENT_FORWARDER_H_
-#define CHROME_BROWSER_VR_WEB_CONTENTS_EVENT_FORWARDER_H_
-
-#include <memory>
-
-#include "base/macros.h"
-#include "base/memory/weak_ptr.h"
-#include "third_party/WebKit/public/platform/WebInputEvent.h"
-
-namespace content {
-class WebContents;
-}
-
-namespace vr {
-
-// Class used to forward events generated by events in VR down to
-// |web_contents_|.
-// Note: This class is not thread safe and must only be used from the main
-// thread.
-class WebContentsEventForwarder {
- public:
-  explicit WebContentsEventForwarder(content::WebContents* web_contents);
-  ~WebContentsEventForwarder();
-
-  void ForwardEvent(std::unique_ptr<blink::WebInputEvent> event);
-
- private:
-  content::WebContents* web_contents_;
-
-  DISALLOW_COPY_AND_ASSIGN(WebContentsEventForwarder);
-};
-
-}  // namespace vr
-
-#endif  // CHROME_BROWSER_VR_WEB_CONTENTS_EVENT_FORWARDER_H_
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
index bc000f1..d3616051 100644
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
@@ -609,7 +609,7 @@
 // Specifies a list of hosts for whom we bypass proxy settings and use direct
 // connections. Ignored if --proxy-auto-detect or --no-proxy-server are also
 // specified. This is a comma-separated list of bypass rules. See:
-// "net/proxy/proxy_bypass_rules.h" for the format of these rules.
+// "net/proxy_resolution/proxy_bypass_rules.h" for the format of these rules.
 const char kProxyBypassList[]               = "proxy-bypass-list";
 
 // Uses the pac script at the given URL
diff --git a/chrome/common/constants.mojom b/chrome/common/constants.mojom
index 83904dc..881a179 100644
--- a/chrome/common/constants.mojom
+++ b/chrome/common/constants.mojom
@@ -5,3 +5,5 @@
 module chrome.mojom;
 
 const string kServiceName = "chrome";
+
+const string kRendererServiceName = "chrome_renderer";
diff --git a/chrome/common/extensions/command.cc b/chrome/common/extensions/command.cc
index 8640e45..1bc2d4a 100644
--- a/chrome/common/extensions/command.cc
+++ b/chrome/common/extensions/command.cc
@@ -38,9 +38,16 @@
 static const int kMaxTokenSize = 3;
 #endif  // OS_CHROMEOS
 
+Command::Type GetCommandType(const std::string& command_name) {
+  if (command_name == values::kPageActionCommandEvent)
+    return Command::Type::kPageAction;
+  if (command_name == values::kBrowserActionCommandEvent)
+    return Command::Type::kBrowserAction;
+  return Command::Type::kNamed;
+}
+
 bool IsNamedCommand(const std::string& command_name) {
-  return command_name != values::kPageActionCommandEvent &&
-         command_name != values::kBrowserActionCommandEvent;
+  return GetCommandType(command_name) == Command::Type::kNamed;
 }
 
 bool DoesRequireModifier(const std::string& accelerator) {
@@ -277,7 +284,7 @@
 
 }  // namespace
 
-Command::Command() : global_(false) {}
+Command::Command() : global_(false), type_(Type::kNamed) {}
 
 Command::Command(const std::string& command_name,
                  const base::string16& description,
@@ -285,10 +292,11 @@
                  bool global)
     : command_name_(command_name),
       description_(description),
-      global_(global) {
+      global_(global),
+      type_(GetCommandType(command_name)) {
   base::string16 error;
   accelerator_ = ParseImpl(accelerator, CommandPlatform(), 0,
-                           IsNamedCommand(command_name), &error);
+                           type_ == Type::kNamed, &error);
 }
 
 Command::Command(const Command& other) = default;
@@ -549,6 +557,7 @@
       command_name_ = command_name;
       description_ = description;
       global_ = global;
+      type_ = GetCommandType(command_name);
     }
   }
   return true;
diff --git a/chrome/common/extensions/command.h b/chrome/common/extensions/command.h
index a4b9a57..11a86fb 100644
--- a/chrome/common/extensions/command.h
+++ b/chrome/common/extensions/command.h
@@ -19,6 +19,12 @@
 
 class Command {
  public:
+  enum class Type {
+    kBrowserAction,
+    kPageAction,
+    kNamed,
+  };
+
   Command();
   Command(const std::string& command_name,
           const base::string16& description,
@@ -55,6 +61,7 @@
   const ui::Accelerator& accelerator() const { return accelerator_; }
   const base::string16& description() const { return description_; }
   bool global() const { return global_; }
+  Type type() const { return type_; }
 
   // Setter:
   void set_accelerator(const ui::Accelerator& accelerator) {
@@ -69,6 +76,7 @@
   ui::Accelerator accelerator_;
   base::string16 description_;
   bool global_;
+  Type type_;
 };
 
 // A mapping of command name (std::string) to a command object.
diff --git a/chrome/common/extensions/command_unittest.cc b/chrome/common/extensions/command_unittest.cc
index ec6d011..f914e7a 100644
--- a/chrome/common/extensions/command_unittest.cc
+++ b/chrome/common/extensions/command_unittest.cc
@@ -11,6 +11,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
+#include "base/optional.h"
 #include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
@@ -19,16 +20,18 @@
 #include "build/build_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
-class CommandTest : public testing::Test {
-};
+namespace extensions {
 
-typedef const struct {
+using CommandTest = testing::Test;
+
+struct ConstCommandsTestData {
   bool expected_result;
   ui::Accelerator accelerator;
   const char* command_name;
   const char* key;
   const char* description;
-} ConstCommandsTestData;
+  base::Optional<Command::Type> type;
+};
 
 // Checks the |suggested_key| value parses into a command when specified as a
 // string or dictionary of platform specific keys. If
@@ -90,6 +93,8 @@
                    base::UTF16ToASCII(command.description()).c_str());
       EXPECT_STREQ(data.command_name, command.command_name().c_str());
       EXPECT_EQ(data.accelerator, command.accelerator());
+      ASSERT_TRUE(data.type) << "Parsed commands must specify an expected type";
+      EXPECT_EQ(*data.type, command.type());
     }
   }
 }
@@ -150,43 +155,67 @@
       {false, shift_f, "command", "Shift+F", "description"},
       {false, shift_f, "command", "F+Shift", "description"},
       // Basic tests.
-      {true, none, "command", "", "description"},
-      {true, ctrl_f, "command", "Ctrl+F", "description"},
-      {true, alt_f, "command", "Alt+F", "description"},
-      {true, ctrl_shift_f, "command", "Ctrl+Shift+F", "description"},
-      {true, alt_shift_f, "command", "Alt+Shift+F", "description"},
-      {true, ctrl_1, "command", "Ctrl+1", "description"},
+      {true, none, "command", "", "description", Command::Type::kNamed},
+      {true, ctrl_f, "command", "Ctrl+F", "description", Command::Type::kNamed},
+      {true, alt_f, "command", "Alt+F", "description", Command::Type::kNamed},
+      {true, ctrl_shift_f, "command", "Ctrl+Shift+F", "description",
+       Command::Type::kNamed},
+      {true, alt_shift_f, "command", "Alt+Shift+F", "description",
+       Command::Type::kNamed},
+      {true, ctrl_1, "command", "Ctrl+1", "description", Command::Type::kNamed},
       // Shortcut token order tests.
-      {true, ctrl_f, "command", "F+Ctrl", "description"},
-      {true, alt_f, "command", "F+Alt", "description"},
-      {true, ctrl_shift_f, "command", "F+Ctrl+Shift", "description"},
-      {true, ctrl_shift_f, "command", "F+Shift+Ctrl", "description"},
-      {true, alt_shift_f, "command", "F+Alt+Shift", "description"},
-      {true, alt_shift_f, "command", "F+Shift+Alt", "description"},
+      {true, ctrl_f, "command", "F+Ctrl", "description", Command::Type::kNamed},
+      {true, alt_f, "command", "F+Alt", "description", Command::Type::kNamed},
+      {true, ctrl_shift_f, "command", "F+Ctrl+Shift", "description",
+       Command::Type::kNamed},
+      {true, ctrl_shift_f, "command", "F+Shift+Ctrl", "description",
+       Command::Type::kNamed},
+      {true, alt_shift_f, "command", "F+Alt+Shift", "description",
+       Command::Type::kNamed},
+      {true, alt_shift_f, "command", "F+Shift+Alt", "description",
+       Command::Type::kNamed},
       // Case insensitivity is not OK.
       {false, ctrl_f, "command", "Ctrl+f", "description"},
       {false, ctrl_f, "command", "cTrL+F", "description"},
       // Skipping description is OK for browser- and pageActions.
-      {true, ctrl_f, "_execute_browser_action", "Ctrl+F", ""},
-      {true, ctrl_f, "_execute_page_action", "Ctrl+F", ""},
+      {true, ctrl_f, "_execute_browser_action", "Ctrl+F", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_f, "_execute_page_action", "Ctrl+F", "",
+       Command::Type::kPageAction},
       // Home, End, Arrow keys, etc.
-      {true, ctrl_comma, "_execute_browser_action", "Ctrl+Comma", ""},
-      {true, ctrl_dot, "_execute_browser_action", "Ctrl+Period", ""},
-      {true, ctrl_left, "_execute_browser_action", "Ctrl+Left", ""},
-      {true, ctrl_right, "_execute_browser_action", "Ctrl+Right", ""},
-      {true, ctrl_up, "_execute_browser_action", "Ctrl+Up", ""},
-      {true, ctrl_down, "_execute_browser_action", "Ctrl+Down", ""},
-      {true, ctrl_ins, "_execute_browser_action", "Ctrl+Insert", ""},
-      {true, ctrl_del, "_execute_browser_action", "Ctrl+Delete", ""},
-      {true, ctrl_home, "_execute_browser_action", "Ctrl+Home", ""},
-      {true, ctrl_end, "_execute_browser_action", "Ctrl+End", ""},
-      {true, ctrl_pgup, "_execute_browser_action", "Ctrl+PageUp", ""},
-      {true, ctrl_pgdwn, "_execute_browser_action", "Ctrl+PageDown", ""},
+      {true, ctrl_comma, "_execute_browser_action", "Ctrl+Comma", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_dot, "_execute_browser_action", "Ctrl+Period", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_left, "_execute_browser_action", "Ctrl+Left", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_right, "_execute_browser_action", "Ctrl+Right", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_up, "_execute_browser_action", "Ctrl+Up", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_down, "_execute_browser_action", "Ctrl+Down", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_ins, "_execute_browser_action", "Ctrl+Insert", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_del, "_execute_browser_action", "Ctrl+Delete", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_home, "_execute_browser_action", "Ctrl+Home", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_end, "_execute_browser_action", "Ctrl+End", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_pgup, "_execute_browser_action", "Ctrl+PageUp", "",
+       Command::Type::kBrowserAction},
+      {true, ctrl_pgdwn, "_execute_browser_action", "Ctrl+PageDown", "",
+       Command::Type::kBrowserAction},
       // Media keys.
-      {true, next_track, "command", "MediaNextTrack", "description"},
-      {true, play_pause, "command", "MediaPlayPause", "description"},
-      {true, prev_track, "command", "MediaPrevTrack", "description"},
-      {true, stop, "command", "MediaStop", "description"},
+      {true, next_track, "command", "MediaNextTrack", "description",
+       Command::Type::kNamed},
+      {true, play_pause, "command", "MediaPlayPause", "description",
+       Command::Type::kNamed},
+      {true, prev_track, "command", "MediaPrevTrack", "description",
+       Command::Type::kNamed},
+      {true, stop, "command", "MediaStop", "description",
+       Command::Type::kNamed},
       {false, none, "_execute_browser_action", "MediaNextTrack", ""},
       {false, none, "_execute_page_action", "MediaPrevTrack", ""},
       {false, none, "command", "Ctrl+Shift+MediaPrevTrack", "description"},
@@ -292,8 +321,10 @@
                                  ui::EF_COMMAND_DOWN | ui::EF_SHIFT_DOWN);
 
   ConstCommandsTestData kChromeOsTests[] = {
-      {true, search_shift_z, "command", "Search+Shift+Z", "description"},
-      {true, search_a, "command", "Search+A", "description"},
+      {true, search_shift_z, "command", "Search+Shift+Z", "description",
+       Command::Type::kNamed},
+      {true, search_a, "command", "Search+A", "description",
+       Command::Type::kNamed},
       // Command is not valid on Chrome OS.
       {false, search_shift_z, "command", "Command+Shift+Z", "description"},
   };
@@ -315,3 +346,5 @@
   for (size_t i = 0; i < arraysize(kNonChromeOsSearchTests); ++i)
     CheckParse(kNonChromeOsSearchTests[i], i, true, non_chromeos);
 }
+
+}  // namespace extensions
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc
index 24bec16..f1b098fb 100644
--- a/chrome/common/pref_names.cc
+++ b/chrome/common/pref_names.cc
@@ -1411,6 +1411,13 @@
     "download.open_pdf_in_system_reader";
 #endif
 
+#if defined(OS_ANDROID)
+// Boolean which specifies whether we should ask the user if we should download
+// a file (true) or just download it automatically, specifically for Android.
+// This is set to true as the prompt is intially shown to all Android users.
+const char kPromptForDownloadAndroid[] = "download.prompt_for_download_android";
+#endif
+
 // String which specifies where to save html files to by default.
 const char kSaveFileDefaultDirectory[] = "savefile.default_directory";
 
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h
index a88ebd8..d31e99b 100644
--- a/chrome/common/pref_names.h
+++ b/chrome/common/pref_names.h
@@ -501,6 +501,9 @@
 #if defined(OS_WIN) || defined(OS_LINUX) || defined(OS_MACOSX)
 extern const char kOpenPdfDownloadInSystemReader[];
 #endif
+#if defined(OS_ANDROID)
+extern const char kPromptForDownloadAndroid[];
+#endif
 
 extern const char kSaveFileDefaultDirectory[];
 extern const char kSaveFileType[];
diff --git a/chrome/common/url_constants.cc b/chrome/common/url_constants.cc
index 5bccb5f..dcfdf71 100644
--- a/chrome/common/url_constants.cc
+++ b/chrome/common/url_constants.cc
@@ -6,9 +6,6 @@
 
 namespace chrome {
 
-const char kAppLauncherHelpURL[] =
-    "https://support.google.com/chrome_webstore/?p=cws_app_launcher";
-
 const char kAutomaticSettingsResetLearnMoreURL[] =
     "https://support.google.com/chrome/?p=ui_automatic_settings_reset";
 
@@ -147,9 +144,6 @@
     "https://support.google.com/chrome/topic/1678461";
 #endif
 
-const char kLearnMoreRegisterProtocolHandlerURL[] =
-    "https://support.google.com/chrome/?p=ib_protocol_handler";
-
 const char kLearnMoreReportingURL[] =
     "https://support.google.com/chrome/?p=ui_usagestat";
 
@@ -158,9 +152,6 @@
 const char kLegacySupervisedUserManagementURL[] =
     "https://www.chrome.com/manage";
 
-const char kMediaAccessLearnMoreUrl[] =
-    "https://support.google.com/chrome/?p=ib_access_cam_mic";
-
 const char kMyActivityUrlInClearBrowsingData[] =
     "https://myactivity.google.com/myactivity/?utm_source=chrome_cbd";
 
@@ -221,9 +212,6 @@
 const char kSyncErrorsHelpURL[] =
     "https://support.google.com/chrome/?p=settings_sync_error";
 
-const char kSyncEverythingLearnMoreURL[] =
-    "https://support.google.com/chrome/?p=settings_sync_all";
-
 const char kSyncGoogleDashboardURL[] =
     "https://www.google.com/settings/chrome/sync/";
 
@@ -252,13 +240,8 @@
 const char kAndroidAppsLearnMoreURL[] =
     "https://support.google.com/chromebook/?p=playapps";
 
-const char kAttestationForContentProtectionLearnMoreURL[] =
-    "https://support.google.com/chromebook/?p=verified_access";
-
 const char kChromeAccessibilityHelpURL[] =
     "https://support.google.com/chromebook/topic/6323347";
-const char kChromeAccessibilitySettingsURL[] =
-    "/chromevox/background/options.html";
 
 const char kChromeOSAssetHost[] = "chromeos-asset";
 const char kChromeOSAssetPath[] = "/usr/share/chromeos-assets/";
@@ -269,9 +252,6 @@
 const char kChromePaletteHelpURL[] =
     "https://support.google.com/chromebook?p=stylus_help";
 
-const char kCrosPrintingLearnMoreURL[] =
-    "https://support.google.com/chromebook?p=chromebook_printing";
-
 const char kCrosScheme[] = "cros";
 
 const char kCupsPrintLearnMoreURL[] =
@@ -311,9 +291,6 @@
 const char kChromeCleanerLearnMoreURL[] =
     "https://support.google.com/chrome/?p=chrome_cleanup_tool";
 
-const char kNotificationsHelpURL[] =
-    "https://support.google.com/chrome/?p=ui_notifications";
-
 const char kWindowsXPVistaDeprecationURL[] =
     "https://chrome.blogspot.com/2015/11/updates-to-chrome-platform-support.html";
 #endif
@@ -321,9 +298,6 @@
 #if BUILDFLAG(ENABLE_ONE_CLICK_SIGNIN)
 const char kChromeSyncLearnMoreURL[] =
     "https://support.google.com/chrome/answer/165139";
-
-const char kChromeSyncMergeTroubleshootingURL[] =
-    "https://support.google.com/chrome/answer/1181420#merge";
 #endif  // BUILDFLAG(ENABLE_ONE_CLICK_SIGNIN)
 
 #if BUILDFLAG(ENABLE_PLUGINS)
diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h
index 0864753..ba9da53 100644
--- a/chrome/common/url_constants.h
+++ b/chrome/common/url_constants.h
@@ -24,9 +24,6 @@
 
 namespace chrome {
 
-// The URL for information on how to use the app launcher.
-extern const char kAppLauncherHelpURL[];
-
 // "Learn more" URL for when profile settings are automatically reset.
 extern const char kAutomaticSettingsResetLearnMoreURL[];
 
@@ -128,9 +125,6 @@
 // TODO(michaelpg): Compile on Chrome OS only when Options is removed.
 extern const char kLanguageSettingsLearnMoreUrl[];
 
-// The URL for the "Learn more" page for register protocol handler infobars.
-extern const char kLearnMoreRegisterProtocolHandlerURL[];
-
 // The URL for the "Learn more" page for the usage/crash reporting option in the
 // first run dialog.
 extern const char kLearnMoreReportingURL[];
@@ -142,9 +136,6 @@
 // Management URL for Chrome Supervised Users.
 extern const char kLegacySupervisedUserManagementURL[];
 
-// The URL for the "Learn more" link in the media access infobar.
-extern const char kMediaAccessLearnMoreUrl[];
-
 // "myactivity.google.com" URL for the history checkbox in ClearBrowsingData.
 extern const char kMyActivityUrlInClearBrowsingData[];
 
@@ -180,10 +171,6 @@
 // The URL for the "Learn more" link when there is a sync error.
 extern const char kSyncErrorsHelpURL[];
 
-// The URL for the "Learn more" page on the sync setup dialog, when syncing
-// everything.
-extern const char kSyncEverythingLearnMoreURL[];
-
 extern const char kSyncGoogleDashboardURL[];
 
 // The URL for the "Learn more" page for sync setup on the personal stuff page.
@@ -204,15 +191,9 @@
 // The URL for the "learn more" link for Google Play Store (ARC) settings.
 extern const char kAndroidAppsLearnMoreURL[];
 
-// "Learn more" URL for the attestation of content protection setting.
-extern const char kAttestationForContentProtectionLearnMoreURL[];
-
 // Accessibility help link for Chrome.
 extern const char kChromeAccessibilityHelpURL[];
 
-// Accessibility settings link for Chrome.
-extern const char kChromeAccessibilitySettingsURL[];
-
 extern const char kChromeOSAssetHost[];
 extern const char kChromeOSAssetPath[];
 
@@ -221,9 +202,6 @@
 // Palette help link for Chrome.
 extern const char kChromePaletteHelpURL[];
 
-// "Learn more" URL for the Printing section under Options.
-extern const char kCrosPrintingLearnMoreURL[];
-
 extern const char kCrosScheme[];
 
 extern const char kCupsPrintLearnMoreURL[];
@@ -262,8 +240,6 @@
 // The URL for the Learn More link in the Chrome Cleanup settings card.
 extern const char kChromeCleanerLearnMoreURL[];
 
-extern const char kNotificationsHelpURL[];
-
 // The URL for the Windows XP/Vista deprecation help center article.
 extern const char kWindowsXPVistaDeprecationURL[];
 #endif
@@ -271,10 +247,6 @@
 #if BUILDFLAG(ENABLE_ONE_CLICK_SIGNIN)
 // "Learn more" URL for the one click signin infobar.
 extern const char kChromeSyncLearnMoreURL[];
-
-// "Learn more" URL for the "Sign in with a different account" confirmation
-// dialog.
-extern const char kChromeSyncMergeTroubleshootingURL[];
 #endif
 
 #if BUILDFLAG(ENABLE_PLUGINS)
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 47aceed..d62178c 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -111,6 +111,7 @@
 #include "printing/features/features.h"
 #include "services/service_manager/public/cpp/connector.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
+#include "services/service_manager/public/cpp/service_context.h"
 #include "third_party/WebKit/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/URLConversion.h"
@@ -270,30 +271,6 @@
 }
 #endif  // BUILDFLAG(ENABLE_PLUGINS)
 
-#if BUILDFLAG(ENABLE_SPELLCHECK)
-class SpellCheckReplacer : public content::RenderFrameVisitor {
- public:
-  explicit SpellCheckReplacer(SpellCheck* spellcheck)
-      : spellcheck_(spellcheck) {}
-  ~SpellCheckReplacer() override;
-  bool Visit(content::RenderFrame* render_frame) override;
-
- private:
-  // New shared spellcheck for all frames. Weak Ptr.
-  SpellCheck* const spellcheck_;
-  DISALLOW_COPY_AND_ASSIGN(SpellCheckReplacer);
-};
-
-bool SpellCheckReplacer::Visit(content::RenderFrame* render_frame) {
-  SpellCheckProvider* provider = SpellCheckProvider::Get(render_frame);
-  DCHECK(provider);
-  provider->set_spellcheck(spellcheck_);
-  return true;
-}
-
-SpellCheckReplacer::~SpellCheckReplacer() = default;
-#endif
-
 bool IsStandaloneExtensionProcess() {
 #if !BUILDFLAG(ENABLE_EXTENSIONS)
   return false;
@@ -404,8 +381,8 @@
 
   {
     startup_metric_utils::mojom::StartupMetricHostPtr startup_metric_host;
-    thread->GetConnector()->BindInterface(chrome::mojom::kServiceName,
-                                          &startup_metric_host);
+    GetConnector()->BindInterface(chrome::mojom::kServiceName,
+                                  &startup_metric_host);
     startup_metric_host->RecordRendererMainEntryTime(main_entry_time_);
   }
 
@@ -441,12 +418,8 @@
   prescient_networking_dispatcher_.reset(
       new network_hints::PrescientNetworkingDispatcher());
 #if BUILDFLAG(ENABLE_SPELLCHECK)
-  // ChromeRenderViewTest::SetUp() creates a Spellcheck and injects it using
-  // SetSpellcheck(). Don't overwrite it.
-  if (!spellcheck_) {
-    spellcheck_.reset(new SpellCheck(this));
-    thread->AddObserver(spellcheck_.get());
-  }
+  if (!spellcheck_)
+    InitSpellCheck();
 #endif
 #if defined(FULL_SAFE_BROWSING)
   phishing_classifier_.reset(safe_browsing::PhishingClassifierFilter::Create());
@@ -1062,10 +1035,24 @@
   return GURL();
 }
 
+void ChromeContentRendererClient::OnStart() {
+  context()->connector()->BindConnectorRequest(std::move(connector_request_));
+}
+
+void ChromeContentRendererClient::OnBindInterface(
+    const service_manager::BindSourceInfo& remote_info,
+    const std::string& name,
+    mojo::ScopedMessagePipeHandle handle) {
+  registry_.TryBindInterface(name, &handle);
+}
+
 void ChromeContentRendererClient::GetInterface(
     const std::string& interface_name,
     mojo::ScopedMessagePipeHandle interface_pipe) {
-  RenderThread::Get()->GetConnector()->BindInterface(
+  // In some tests, this may not be configured.
+  if (!connector_)
+    return;
+  connector_->BindInterface(
       service_manager::Identity(chrome::mojom::kServiceName), interface_name,
       std::move(interface_pipe));
 }
@@ -1361,19 +1348,6 @@
   return true;
 }
 
-#if BUILDFLAG(ENABLE_SPELLCHECK)
-void ChromeContentRendererClient::SetSpellcheck(SpellCheck* spellcheck) {
-  RenderThread* thread = RenderThread::Get();
-  if (spellcheck_.get() && thread)
-    thread->RemoveObserver(spellcheck_.get());
-  spellcheck_.reset(spellcheck);
-  SpellCheckReplacer replacer(spellcheck_.get());
-  content::RenderFrame::ForEach(&replacer);
-  if (thread)
-    thread->AddObserver(spellcheck_.get());
-}
-#endif
-
 bool ChromeContentRendererClient::IsExternalPepperPlugin(
     const std::string& module_name) {
   // TODO(bbudge) remove this when the trusted NaCl plugin has been removed.
@@ -1392,6 +1366,12 @@
 }
 #endif
 
+#if BUILDFLAG(ENABLE_SPELLCHECK)
+void ChromeContentRendererClient::InitSpellCheck() {
+  spellcheck_ = std::make_unique<SpellCheck>(&registry_, this);
+}
+#endif
+
 std::unique_ptr<blink::WebSocketHandshakeThrottle>
 ChromeContentRendererClient::CreateWebSocketHandshakeThrottle() {
   InitSafeBrowsingIfNecessary();
@@ -1713,6 +1693,19 @@
   return true;
 }
 
+void ChromeContentRendererClient::CreateRendererService(
+    service_manager::mojom::ServiceRequest service_request) {
+  service_context_ = std::make_unique<service_manager::ServiceContext>(
+      std::make_unique<service_manager::ForwardingService>(this),
+      std::move(service_request));
+}
+
+service_manager::Connector* ChromeContentRendererClient::GetConnector() {
+  if (!connector_)
+    connector_ = service_manager::Connector::Create(&connector_request_);
+  return connector_.get();
+}
+
 std::unique_ptr<content::URLLoaderThrottleProvider>
 ChromeContentRendererClient::CreateURLLoaderThrottleProvider(
     content::URLLoaderThrottleProviderType provider_type) {
diff --git a/chrome/renderer/chrome_content_renderer_client.h b/chrome/renderer/chrome_content_renderer_client.h
index 691d07f..88cf6bda 100644
--- a/chrome/renderer/chrome_content_renderer_client.h
+++ b/chrome/renderer/chrome_content_renderer_client.h
@@ -29,7 +29,10 @@
 #include "media/media_features.h"
 #include "ppapi/features/features.h"
 #include "printing/features/features.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
+#include "services/service_manager/public/cpp/connector.h"
 #include "services/service_manager/public/cpp/local_interface_provider.h"
+#include "services/service_manager/public/cpp/service.h"
 #include "v8/include/v8.h"
 
 #if defined (OS_CHROMEOS)
@@ -109,6 +112,7 @@
 
 class ChromeContentRendererClient
     : public content::ContentRendererClient,
+      public service_manager::Service,
       public service_manager::LocalInterfaceProvider {
  public:
   ChromeContentRendererClient();
@@ -220,18 +224,14 @@
       const GURL& url,
       base::Time cert_validity_start,
       std::string* console_messsage) override;
+  void CreateRendererService(
+      service_manager::mojom::ServiceRequest service_request) override;
   std::unique_ptr<content::URLLoaderThrottleProvider>
   CreateURLLoaderThrottleProvider(
       content::URLLoaderThrottleProviderType provider_type) override;
   blink::WebFrame* FindFrame(blink::WebLocalFrame* relative_to_frame,
                              const std::string& name) override;
 
-#if BUILDFLAG(ENABLE_SPELLCHECK)
-  // Sets a new |spellcheck|. Used for testing only.
-  // Takes ownership of |spellcheck|.
-  void SetSpellcheck(SpellCheck* spellcheck);
-#endif
-
 #if BUILDFLAG(ENABLE_PLUGINS)
   static chrome::mojom::PluginInfoHostAssociatedPtr& GetPluginInfoHost();
 
@@ -247,6 +247,10 @@
       const std::set<std::string>& whitelist);
 #endif
 
+#if BUILDFLAG(ENABLE_SPELLCHECK)
+  void InitSpellCheck();
+#endif
+
   prerender::PrerenderDispatcher* prerender_dispatcher() const {
     return prerender_dispatcher_.get();
   }
@@ -259,6 +263,12 @@
   static GURL GetNaClContentHandlerURL(const std::string& actual_mime_type,
                                        const content::WebPluginInfo& plugin);
 
+  // service_manager::Service:
+  void OnStart() override;
+  void OnBindInterface(const service_manager::BindSourceInfo& remote_info,
+                       const std::string& name,
+                       mojo::ScopedMessagePipeHandle handle) override;
+
   // service_manager::LocalInterfaceProvider:
   void GetInterface(const std::string& name,
                     mojo::ScopedMessagePipeHandle request_handle) override;
@@ -286,6 +296,8 @@
                             blink::WebPluginParams* params);
 #endif
 
+  service_manager::Connector* GetConnector();
+
   rappor::mojom::RapporRecorderPtr rappor_recorder_;
 
   std::unique_ptr<ChromeRenderThreadObserver> chrome_observer_;
@@ -327,6 +339,11 @@
   mojom::ModuleEventSinkPtr module_event_sink_;
 #endif
 
+  std::unique_ptr<service_manager::Connector> connector_;
+  service_manager::mojom::ConnectorRequest connector_request_;
+  std::unique_ptr<service_manager::ServiceContext> service_context_;
+  service_manager::BinderRegistry registry_;
+
   DISALLOW_COPY_AND_ASSIGN(ChromeContentRendererClient);
 };
 
diff --git a/chrome/service/net/service_url_request_context_getter.cc b/chrome/service/net/service_url_request_context_getter.cc
index 8c94a29..c11444a 100644
--- a/chrome/service/net/service_url_request_context_getter.cc
+++ b/chrome/service/net/service_url_request_context_getter.cc
@@ -14,8 +14,8 @@
 #include "build/build_config.h"
 #include "chrome/service/service_process.h"
 #include "components/version_info/version_info.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_context_builder.h"
 
 #if defined(OS_POSIX) && !defined(OS_MACOSX)
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 8e8ba28..1f93d7472 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -3098,6 +3098,7 @@
       "../browser/ui/ash/auto_connect_notifier_unittest.cc",
       "../browser/ui/ash/chrome_keyboard_ui_unittest.cc",
       "../browser/ui/ash/ime_controller_client_unittest.cc",
+      "../browser/ui/ash/ksv/keyboard_shortcut_viewer_metadata_unittest.cc",
       "../browser/ui/ash/launcher/arc_app_shelf_id_unittest.cc",
       "../browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc",
       "../browser/ui/ash/launcher/launcher_context_menu_unittest.cc",
@@ -3276,7 +3277,6 @@
       "../browser/extensions/extension_api_unittest.cc",
       "../browser/extensions/extension_api_unittest.h",
       "../browser/extensions/extension_context_menu_model_unittest.cc",
-      "../browser/extensions/extension_creator_filter_unittest.cc",
       "../browser/extensions/extension_error_controller_unittest.cc",
       "../browser/extensions/extension_function_test_utils.cc",
       "../browser/extensions/extension_function_test_utils.h",
diff --git a/chrome/test/base/chrome_render_view_test.cc b/chrome/test/base/chrome_render_view_test.cc
index 6e0402d3..4757888 100644
--- a/chrome/test/base/chrome_render_view_test.cc
+++ b/chrome/test/base/chrome_render_view_test.cc
@@ -170,8 +170,9 @@
       base::MakeUnique<extensions::Dispatcher>(
           std::make_unique<ChromeExtensionsDispatcherDelegate>()));
 #endif
+
 #if BUILDFLAG(ENABLE_SPELLCHECK)
-  client->SetSpellcheck(new SpellCheck(nullptr));
+  client->InitSpellCheck();
 #endif
 }
 
diff --git a/chrome/test/chromedriver/chrome/version.cc b/chrome/test/chromedriver/chrome/version.cc
index 4375bbc..96bbe33d 100644
--- a/chrome/test/chromedriver/chrome/version.cc
+++ b/chrome/test/chromedriver/chrome/version.cc
@@ -9,7 +9,7 @@
 namespace {
 
 // This variable must be able to be found and parsed by the upload script.
-const int kMinimumSupportedChromeVersion[] = {62, 0, 3202, 0};
+const int kMinimumSupportedChromeVersion[] = {63, 0, 3239, 0};
 
 }  // namespace
 
diff --git a/chrome/test/chromedriver/net/url_request_context_getter.cc b/chrome/test/chromedriver/net/url_request_context_getter.cc
index 15a6f47..a8335fa 100644
--- a/chrome/test/chromedriver/net/url_request_context_getter.cc
+++ b/chrome/test/chromedriver/net/url_request_context_getter.cc
@@ -9,7 +9,7 @@
 
 #include "base/memory/ptr_util.h"
 #include "base/single_thread_task_runner.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 
diff --git a/chrome/test/chromedriver/test/run_all_tests.py b/chrome/test/chromedriver/test/run_all_tests.py
index 4a45c15d..1ec83de2 100755
--- a/chrome/test/chromedriver/test/run_all_tests.py
+++ b/chrome/test/chromedriver/test/run_all_tests.py
@@ -202,21 +202,21 @@
 
     # Linux64 build numbers
     elif util.IsLinux():
-          versions['64'] = '520842'
-          versions['63'] = '508578'
-          versions['62'] = '499100'
+      versions['65'] = '530372'
+      versions['64'] = '520842'
+      versions['63'] = '508578'
 
     # Mac build numbers
     elif util.IsMac():
-          versions['64'] = '520840'
-          versions['63'] = '508578'
-          versions['62'] = '499098'
+      versions['65'] = '530368'
+      versions['64'] = '520840'
+      versions['63'] = '508578'
 
     # Windows build numbers
     elif util.IsWindows():
-          versions['64'] = '520840'
-          versions['63'] = '508578'
-          versions['62'] = '499101'
+      versions['65'] = '530366'
+      versions['64'] = '520840'
+      versions['63'] = '508578'
 
     code = 0
     for version, revision in versions.iteritems():
diff --git a/chrome/test/chromedriver/test/run_py_tests.py b/chrome/test/chromedriver/test/run_py_tests.py
index 8a8b648..768305bc 100755
--- a/chrome/test/chromedriver/test/run_py_tests.py
+++ b/chrome/test/chromedriver/test/run_py_tests.py
@@ -107,10 +107,6 @@
     'ChromeDriverPageLoadTimeoutTest.testRefreshWithPageLoadTimeout',
 ]
 
-_VERSION_SPECIFIC_FILTER['62'] = [
-    # These tests are implemented to run on the latest versions of Chrome > 64
-    'HeadlessInvalidCertificateTest.*',
-]
 
 _OS_SPECIFIC_FILTER = {}
 _OS_SPECIFIC_FILTER['win'] = [
diff --git a/chrome/test/data/devtools/emulate_network_conditions.html b/chrome/test/data/devtools/emulate_network_conditions.html
index f820d58b..425b173 100644
--- a/chrome/test/data/devtools/emulate_network_conditions.html
+++ b/chrome/test/data/devtools/emulate_network_conditions.html
@@ -3,7 +3,9 @@
 <script>
 window.addEventListener("online", () => console.log("online event: online = " + navigator.onLine), false);
 window.addEventListener("offline", () => console.log("offline event: online = " + navigator.onLine), false);
-navigator.connection.onchange = () => console.log("connection change event: type = " + navigator.connection.type + "; downlinkMax = " + navigator.connection.downlinkMax);
+navigator.connection.onchange = () => console.log("connection change event: type = " + navigator.connection.type
+    + "; downlinkMax = " + navigator.connection.downlinkMax
+    + "; effectiveType = " + navigator.connection.effectiveType);
 </script>
 </head>
 <body>
diff --git a/chrome/test/data/vr/e2e_test_files/html/generic_webxr_page.html b/chrome/test/data/vr/e2e_test_files/html/generic_webxr_page.html
new file mode 100644
index 0000000..e76777a
--- /dev/null
+++ b/chrome/test/data/vr/e2e_test_files/html/generic_webxr_page.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<!--
+WebXR page without any code specific to one test
+-->
+<html>
+  <head>
+    <link rel="stylesheet" type="text/css" href="../resources/webxr_e2e.css">
+  </head>
+  <body>
+    <canvas id="webgl-canvas"></canvas>
+    <script src="../../../../../../third_party/WebKit/LayoutTests/resources/testharness.js"></script>
+    <script src="../resources/webxr_e2e.js"></script>
+    <script src="../resources/webxr_boilerplate.js"></script>
+  </body>
+</html>
diff --git a/chrome/test/data/vr/e2e_test_files/resources/webxr_boilerplate.js b/chrome/test/data/vr/e2e_test_files/resources/webxr_boilerplate.js
new file mode 100644
index 0000000..127aeca
--- /dev/null
+++ b/chrome/test/data/vr/e2e_test_files/resources/webxr_boilerplate.js
@@ -0,0 +1,128 @@
+// 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.
+
+// Add additional setup steps to the object from webvr_e2e.js if it exists.
+if (typeof initializationSteps !== 'undefined') {
+  initializationSteps['getXRDevice'] = false;
+  initializationSteps['magicWindowStarted'] = false;
+} else {
+  // Create here if it doesn't exist so we can access it later without checking
+  // if it's defined.
+  var initializationSteps = {};
+}
+
+var webglCanvas = document.getElementById('webgl-canvas');
+var glAttribs = {
+  alpha: false,
+};
+var gl = null;
+var xrDevice = null;
+var onMagicWindowXRFrameCallback = null;
+var onExclusiveXRFrameCallback = null;
+var shouldSubmitFrame = true;
+
+var magicWindowSession = null;
+var magicWindowFrameOfRef = null;
+var exclusiveSession = null;
+var exclusiveFrameOfRef = null;
+
+function onRequestSession() {
+  xrDevice.requestSession({exclusive: true}).then( (session) => {
+    exclusiveSession = session;
+    onSessionStarted(session);
+  });
+}
+
+function onSessionStarted(session) {
+  // Initialize the WebGL context for use with XR if it hasn't been already
+  if (!gl) {
+    glAttribs['compatibleXrDevice'] = session.device;
+
+    // Create an offscreen canvas and get its context
+    let offscreenCanvas = document.createElement('canvas');
+    gl = offscreenCanvas.getContext('webgl', glAttribs);
+    if (!gl) {
+      console.error('Failed to get WebGL context');
+    }
+    gl.clearColor(0.0, 1.0, 0.0, 1.0);
+    gl.enable(gl.DEPTH_TEST);
+    gl.enable(gl.CULL_FACE);
+  }
+
+  session.baseLayer = new XRWebGLLayer(session, gl);
+  session.requestFrameOfReference('eyeLevel').then( (frameOfRef) => {
+    if (session.exclusive) {
+      exclusiveFrameOfRef = frameOfRef;
+    } else {
+      magicWindowFrameOfRef = frameOfRef;
+    }
+    session.requestAnimationFrame(onXRFrame);
+  });
+}
+
+function onSessionEnded(event) {
+  if (event.session.exclusive)
+    exclusiveSession = null
+  else
+    magicWindowSession = null;
+}
+
+function onXRFrame(t, frame) {
+  let session = frame.session;
+  session.requestAnimationFrame(onXRFrame);
+  let frameOfRef = session.exclusive ?
+                   exclusiveFrameOfRef :
+                   magicWindowFrameOfRef;
+  let pose = frame.getDevicePose(frameOfRef);
+
+  // Exiting the rAF callback without dirtying the GL context is interpreted
+  // as not submitting a frame
+  if (!shouldSubmitFrame) {
+    return;
+  }
+
+  gl.bindFramebuffer(gl.FRAMEBUFFER, session.baseLayer.framebuffer);
+
+  // If in an exclusive session, set canvas to blue. Otherwise, red.
+  if (session.exclusive) {
+    if (onExclusiveXRFrameCallback) {
+      onExclusiveXRFrameCallback(session);
+    }
+    gl.clearColor(0.0, 0.0, 1.0, 1.0);
+  } else {
+    if (onMagicWindowXRFrameCallback) {
+      onMagicWindowXRFrameCallback(session);
+    }
+    gl.clearcolor(1.0, 0.0, 0.0, 1.0);
+  }
+  gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
+}
+
+// Try to get an XRDevice and set up a non-exclusive session with it
+if (navigator.xr) {
+  navigator.xr.requestDevice().then( (device) => {
+    xrDevice = device;
+    if (!device)
+      return;
+
+    // Set up the device to have a non-exclusive session (magic window) drawing
+    // into the full screen canvas on the page
+    let ctx = webglCanvas.getContext('xrpresent');
+    // TODO(bsheedy): Enable and test this once non-exclusive session support
+    // is actually added to the implementation.
+    /*device.requestSession({outputContext: ctx}).then( (session) => {
+      onSessionStarted(session);
+    }).then( () => {
+      initializationSteps['magicWindowStarted'] = true;
+    });*/
+    initializationSteps['magicWindowStarted'] = true;
+  }).then( () => {
+    initializationSteps['getXRDevice'] = true;
+  });
+} else {
+  initializationSteps['getXRDevice'] = true;
+  initializationSteps['magicWindowStarted'] = true;
+}
+
+webglCanvas.onclick = onRequestSession;
diff --git a/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.css b/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.css
new file mode 100644
index 0000000..f37e434
--- /dev/null
+++ b/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.css
@@ -0,0 +1,22 @@
+/* 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.
+ */
+html, body {
+  margin: 0;
+  padding: 0;
+  width: 100%;
+  height: 100%;
+}
+#webgl-canvas {
+  box-sizing: border-box;
+  height: 100%;
+  left: 0;
+  margin: 0;
+  position: absolute;
+  top: 0;
+  width: 100%;
+}
+#log {
+  display: none;
+}
diff --git a/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.js b/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.js
new file mode 100644
index 0000000..a56a5f0
--- /dev/null
+++ b/chrome/test/data/vr/e2e_test_files/resources/webxr_e2e.js
@@ -0,0 +1,60 @@
+// 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.
+
+var testPassed = false;
+var resultString = "";
+var javascriptDone = false;
+var initializationSteps = {load: false};
+
+function finishJavaScriptStep() {
+  javascriptDone = true;
+}
+
+// Used to check when JavaScript is in an acceptable state to start testing
+// after a page load, as Chrome thinking that the page has finished loading
+// is not always sufficient. By default waits until the load event is fired.
+function isInitializationComplete() {
+  for (var step in initializationSteps) {
+    if (!initializationSteps[step]) {
+      return false;
+    }
+  }
+  return true;
+}
+
+window.addEventListener("load",
+    () => {initializationSteps["load"] = true;}, false);
+
+function checkResultsForFailures(tests, harness_status) {
+  testPassed = true;
+  if (harness_status["status"] != 0) {
+    testPassed = false;
+    resultString += "Harness failed due to " +
+                    (harness_status["status"] == 1 ? "error" : "timeout")
+                    + ". ";
+  }
+  for (var test in tests) {
+    let passed = (tests[test]["status"] == 0);
+    if (!passed) {
+      testPassed = false;
+      resultString += "FAIL ";
+    } else {
+      resultString += "PASS ";
+    }
+    resultString += tests[test]["name"] +
+                    (passed ? "" : (": " + tests[test]["message"])) +
+                    ". ";
+  }
+}
+
+// Only interact with testharness.js if it was actually included on the page
+// before this file
+if (typeof add_completion_callback !== "undefined") {
+  add_completion_callback( (tests, harness_status) => {
+    checkResultsForFailures(tests, harness_status);
+    console.debug("Test result: " + (testPassed ? "Pass" : "Fail"));
+    console.debug("Test result string: " + resultString);
+    finishJavaScriptStep();
+  });
+}
diff --git a/chrome/test/data/webui/cr_components/network_config_test.js b/chrome/test/data/webui/cr_components/network_config_test.js
index 977e9d1..5f7ddbeb 100644
--- a/chrome/test/data/webui/cr_components/network_config_test.js
+++ b/chrome/test/data/webui/cr_components/network_config_test.js
@@ -28,6 +28,9 @@
     networkConfig = document.createElement('network-config');
     networkConfig.networkingPrivate = api_;
     networkConfig.networkProperties = networkProperties;
+  }
+
+  function initNetworkConfig() {
     document.body.appendChild(networkConfig);
     networkConfig.init();
     Polymer.dom.flush();
@@ -44,6 +47,7 @@
     setup(function() {
       api_.resetForTest();
       setNetworkConfig({GUID: '', Name: '', Type: 'WiFi'});
+      initNetworkConfig();
     });
 
     teardown(function() {
@@ -69,6 +73,7 @@
       };
       api_.addNetworksForTest([network]);
       setNetworkConfig({GUID: 'someguid', Name: '', Type: 'WiFi'});
+      initNetworkConfig();
     });
 
     teardown(function() {
@@ -116,10 +121,11 @@
     }
 
     test('New Config: Login or guest', function() {
-      setNetworkConfig({GUID: '', Name: '', Type: 'WiFi'});
-      setLoginOrGuest();
       // Insecure networks are always shared so test a secure config.
-      networkConfig.security_ = 'WEP-PSK';
+      setNetworkConfig(
+          {GUID: '', Name: '', Type: 'WiFi', WiFi: {Security: 'WEP-PSK'}});
+      setLoginOrGuest();
+      initNetworkConfig();
       return flushAsync().then(() => {
         let share = networkConfig.$$('#share');
         assertTrue(!!share);
@@ -129,10 +135,11 @@
     });
 
     test('New Config: Kiosk', function() {
-      setNetworkConfig({GUID: '', Name: '', Type: 'WiFi'});
-      setKiosk();
       // Insecure networks are always shared so test a secure config.
-      networkConfig.security_ = 'WEP-PSK';
+      setNetworkConfig(
+          {GUID: '', Name: '', Type: 'WiFi', WiFi: {Security: 'WEP-PSK'}});
+      setKiosk();
+      initNetworkConfig();
       return flushAsync().then(() => {
         let share = networkConfig.$$('#share');
         assertTrue(!!share);
@@ -142,8 +149,10 @@
     });
 
     test('New Config: Authenticated, Not secure', function() {
-      setNetworkConfig({GUID: '', Name: '', Type: 'WiFi'});
+      setNetworkConfig(
+          {GUID: '', Name: '', Type: 'WiFi', WiFi: {Security: 'None'}});
       setAuthenticated();
+      initNetworkConfig();
       return flushAsync().then(() => {
         let share = networkConfig.$$('#share');
         assertTrue(!!share);
@@ -153,9 +162,10 @@
     });
 
     test('New Config: Authenticated, Secure', function() {
-      setNetworkConfig({GUID: '', Name: '', Type: 'WiFi'});
+      setNetworkConfig(
+          {GUID: '', Name: '', Type: 'WiFi', WiFi: {Security: 'WEP-PSK'}});
       setAuthenticated();
-      networkConfig.security_ = 'WEP-PSK';
+      initNetworkConfig();
       return flushAsync().then(() => {
         let share = networkConfig.$$('#share');
         assertTrue(!!share);
@@ -176,6 +186,7 @@
       api_.addNetworksForTest([network]);
       setNetworkConfig({GUID: 'someguid', Name: '', Type: 'WiFi'});
       setAuthenticated();
+      initNetworkConfig();
       return flushAsync().then(() => {
         assertFalse(!!networkConfig.$$('#share'));
       });
@@ -190,6 +201,7 @@
       };
       api_.addNetworksForTest([ethernet]);
       setNetworkConfig({GUID: 'ethernetguid', Name: '', Type: 'Ethernet'});
+      initNetworkConfig();
       return flushAsync().then(() => {
         assertEquals('ethernetguid', networkConfig.guid);
         assertEquals('None', networkConfig.security_);
@@ -216,6 +228,7 @@
       };
       api_.addNetworksForTest([ethernet, ethernetEap]);
       setNetworkConfig({GUID: 'ethernetguid', Name: '', Type: 'Ethernet'});
+      initNetworkConfig();
       return flushAsync().then(() => {
         assertEquals('eapguid', networkConfig.guid);
         assertEquals('WPA-EAP', networkConfig.security_);
diff --git a/chrome/test/data/webui/extensions/cr_extensions_browsertest.js b/chrome/test/data/webui/extensions/cr_extensions_browsertest.js
index 850c1b2c..e4df6b1 100644
--- a/chrome/test/data/webui/extensions/cr_extensions_browsertest.js
+++ b/chrome/test/data/webui/extensions/cr_extensions_browsertest.js
@@ -738,4 +738,24 @@
   this.runMochaTest(extension_kiosk_mode_tests.TestNames.AddButton);
 });
 
+TEST_F('CrExtensionsKioskModeTest', 'Layout', function() {
+  this.runMochaTest(extension_kiosk_mode_tests.TestNames.Layout);
+});
+
+TEST_F('CrExtensionsKioskModeTest', 'AutoLaunch', function() {
+  this.runMochaTest(extension_kiosk_mode_tests.TestNames.AutoLaunch);
+});
+
+TEST_F('CrExtensionsKioskModeTest', 'Bailout', function() {
+  this.runMochaTest(extension_kiosk_mode_tests.TestNames.Bailout);
+});
+
+TEST_F('CrExtensionsKioskModeTest', 'Updated', function() {
+  this.runMochaTest(extension_kiosk_mode_tests.TestNames.Updated);
+});
+
+TEST_F('CrExtensionsKioskModeTest', 'AddError', function() {
+  this.runMochaTest(extension_kiosk_mode_tests.TestNames.AddError);
+});
+
 GEN('#endif');
diff --git a/chrome/test/data/webui/extensions/extension_kiosk_mode_test.js b/chrome/test/data/webui/extensions/extension_kiosk_mode_test.js
index 4e9ad5b..95046a9 100644
--- a/chrome/test/data/webui/extensions/extension_kiosk_mode_test.js
+++ b/chrome/test/data/webui/extensions/extension_kiosk_mode_test.js
@@ -7,24 +7,198 @@
   /** @enum {string} */
   let TestNames = {
     AddButton: 'AddButton',
+    AddError: 'AddError',
+    AutoLaunch: 'AutoLaunch',
+    Bailout: 'Bailout',
+    Layout: 'Layout',
+    Updated: 'Updated',
   };
 
+
   let suiteName = 'kioskModeTests';
 
   suite(suiteName, function() {
-    let browserProxy = null;
-    let dialog = null;
 
-    setup(function() {
+    /** @type {extensions.KioskBrowserProxy} */
+    let browserProxy;
+
+    /** @type {extensions.KioskDialog} */
+    let dialog;
+
+    /** @type {!Array<!KioskApp>} */
+    const basicApps = [
+      {
+        id: 'app_1',
+        name: 'App1 Name',
+        iconURL: '',
+        autoLaunch: false,
+        isLoading: false,
+      },
+      {
+        id: 'app_2',
+        name: 'App2 Name',
+        iconURL: '',
+        autoLaunch: false,
+        isLoading: false,
+      },
+    ];
+
+    /** @param {!KioskAppSettings} */
+    function setAppSettings(settings) {
+      const appSettings = {
+        apps: [],
+        disableBailout: false,
+        hasAutoLaunchApp: false,
+      };
+
+      browserProxy.setAppSettings(Object.assign({}, appSettings, settings));
+    }
+
+    /** @param {!KioskSettings} */
+    function setInitialSettings(settings) {
+      const initialSettings = {
+        kioskEnabled: true,
+        autoLaunchEnabled: false,
+      };
+
+      browserProxy.setInitialSettings(
+          Object.assign({}, initialSettings, settings));
+    }
+
+    /** @return {!Promise} */
+    function initPage() {
       PolymerTest.clearBody();
-
-      browserProxy = new TestKioskBrowserProxy();
-      extensions.KioskBrowserProxyImpl.instance_ = browserProxy;
-
+      browserProxy.reset();
       dialog = document.createElement('extensions-kiosk-dialog');
       document.body.appendChild(dialog);
 
-      Polymer.dom.flush();
+      return browserProxy.whenCalled('getKioskAppSettings')
+          .then(() => PolymerTest.flushTasks());
+    }
+
+    setup(function() {
+      browserProxy = new TestKioskBrowserProxy();
+      setAppSettings({apps: basicApps.slice(0)});
+      extensions.KioskBrowserProxyImpl.instance_ = browserProxy;
+
+      return initPage();
+    });
+
+    test(assert(TestNames.Layout), function() {
+      const apps = basicApps.slice(0);
+      apps[1].autoLaunch = true;
+      apps[1].isLoading = true;
+      setAppSettings({apps: apps, hasAutoLaunchApp: true});
+
+      return initPage()
+          .then(() => {
+            const items = dialog.shadowRoot.querySelectorAll('.list-item');
+            expectEquals(items.length, 2);
+            expectTrue(items[0].textContent.includes(basicApps[0].name));
+            expectTrue(items[1].textContent.includes(basicApps[1].name));
+            // Second item should show the auto-lauch label.
+            expectTrue(items[0].querySelector('span').hidden);
+            expectFalse(items[1].querySelector('span').hidden);
+            // No permission to edit auto-launch so buttons should be hidden.
+            expectTrue(items[0].querySelector('paper-button').hidden);
+            expectTrue(items[1].querySelector('paper-button').hidden);
+            // Bailout checkbox should be hidden when auto-launch editing
+            // disabled.
+            expectTrue(dialog.$$('paper-checkbox').hidden);
+
+            MockInteractions.tap(items[0].querySelector('.icon-delete-gray'));
+            Polymer.dom.flush();
+            return browserProxy.whenCalled('removeKioskApp');
+          })
+          .then(appId => {
+            expectEquals(appId, basicApps[0].id);
+          });
+    });
+
+    test(assert(TestNames.AutoLaunch), function() {
+      const apps = basicApps.slice(0);
+      apps[1].autoLaunch = true;
+      setAppSettings({apps: apps, hasAutoLaunchApp: true});
+      setInitialSettings({autoLaunchEnabled: true});
+
+      let buttons;
+      return initPage()
+          .then(() => {
+            buttons =
+                dialog.shadowRoot.querySelectorAll('.list-item paper-button');
+            // Has permission to edit auto-launch so buttons should be seen.
+            expectFalse(buttons[0].hidden);
+            expectFalse(buttons[1].hidden);
+
+            MockInteractions.tap(buttons[0]);
+            return browserProxy.whenCalled('enableKioskAutoLaunch');
+          })
+          .then(appId => {
+            expectEquals(appId, basicApps[0].id);
+
+            MockInteractions.tap(buttons[1]);
+            return browserProxy.whenCalled('disableKioskAutoLaunch');
+          })
+          .then(appId => {
+            expectEquals(appId, basicApps[1].id);
+          });
+    });
+
+    test(assert(TestNames.Bailout), function() {
+      const apps = basicApps.slice(0);
+      apps[1].autoLaunch = true;
+      setAppSettings({apps: apps, hasAutoLaunchApp: true});
+      setInitialSettings({autoLaunchEnabled: true});
+
+      expectFalse(dialog.$['confirm-dialog'].open);
+
+      let bailoutCheckbox;
+      return initPage()
+          .then(() => {
+            bailoutCheckbox = dialog.$$('paper-checkbox');
+            // Bailout checkbox should be usable when auto-launching.
+            expectFalse(bailoutCheckbox.hidden);
+            expectFalse(bailoutCheckbox.disabled);
+            expectFalse(bailoutCheckbox.checked);
+
+            // Making sure canceling doesn't change anything.
+            bailoutCheckbox.dispatchEvent(new PointerEvent('pointerdown'));
+            Polymer.dom.flush();
+            expectTrue(dialog.$['confirm-dialog'].open);
+
+            MockInteractions.tap(
+                dialog.$['confirm-dialog'].querySelector('.cancel-button'));
+            Polymer.dom.flush();
+            expectFalse(bailoutCheckbox.checked);
+            expectFalse(dialog.$['confirm-dialog'].open);
+            expectTrue(dialog.$.dialog.open);
+
+            // Accepting confirmation dialog should trigger browserProxy call.
+            bailoutCheckbox.dispatchEvent(new PointerEvent('pointerdown'));
+            Polymer.dom.flush();
+            expectTrue(dialog.$['confirm-dialog'].open);
+
+            MockInteractions.tap(
+                dialog.$['confirm-dialog'].querySelector('.action-button'));
+            Polymer.dom.flush();
+            expectTrue(bailoutCheckbox.checked);
+            expectFalse(dialog.$['confirm-dialog'].open);
+            expectTrue(dialog.$.dialog.open);
+            return browserProxy.whenCalled('setDisableBailoutShortcut');
+          })
+          .then(disabled => {
+            expectTrue(disabled);
+
+            // Test clicking on checkbox again should simply re-enable bailout.
+            browserProxy.reset();
+            bailoutCheckbox.dispatchEvent(new PointerEvent('pointerdown'));
+            expectFalse(bailoutCheckbox.checked);
+            expectFalse(dialog.$['confirm-dialog'].open);
+            return browserProxy.whenCalled('setDisableBailoutShortcut');
+          })
+          .then(disabled => {
+            expectFalse(disabled);
+          });
     });
 
     test(assert(TestNames.AddButton), function() {
@@ -41,6 +215,34 @@
         expectEquals(appId, 'blah');
       });
     });
+
+    test(assert(TestNames.Updated), function() {
+      const items = dialog.shadowRoot.querySelectorAll('.list-item');
+      expectTrue(items[0].textContent.includes(basicApps[0].name));
+
+      const newName = 'completely different name';
+
+      cr.webUIListenerCallback('kiosk-app-updated', {
+        id: basicApps[0].id,
+        name: newName,
+        iconURL: '',
+        autoLaunch: false,
+        isLoading: false,
+      });
+
+      expectFalse(items[0].textContent.includes(basicApps[0].name));
+      expectTrue(items[0].textContent.includes(newName));
+    });
+
+    test(assert(TestNames.AddError), function() {
+      const addInput = dialog.$['add-input'];
+
+      expectFalse(!!addInput.invalid);
+      cr.webUIListenerCallback('kiosk-app-error', basicApps[0].id);
+
+      expectTrue(!!addInput.invalid);
+      expectTrue(addInput.errorMessage.includes(basicApps[0].id));
+    });
   });
 
   return {
diff --git a/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js b/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
index 5b5ac96..a4f3105 100644
--- a/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
+++ b/chrome/test/data/webui/extensions/test_kiosk_browser_proxy.js
@@ -14,25 +14,41 @@
       'removeKioskApp',
       'setDisableBailoutShortcut',
     ]);
+
+    /** @private {!KioskSettings} */
+    this.initialSettings_ = {
+      kioskEnabled: true,
+      autoLaunchEnabled: false,
+    };
+
+    /** @private {!KioskAppSettings} */
+    this.appSettings_ = {
+      apps: [],
+      disableBailout: false,
+      hasAutoLaunchApp: false,
+    };
+  }
+
+  /** @param {!KioskAppSettings} */
+  setAppSettings(settings) {
+    this.appSettings_ = settings;
+  }
+
+  /** @param {!KioskSettings} */
+  setInitialSettings(settings) {
+    this.initialSettings_ = settings;
   }
 
   /** @override */
   initializeKioskAppSettings() {
     this.methodCalled('initializeKioskAppSettings');
-    return Promise.resolve({
-      kioskEnabled: true,
-      autoLaunchEnabled: false
-    });
+    return Promise.resolve(this.initialSettings_);
   }
 
   /** @override */
   getKioskAppSettings() {
     this.methodCalled('getKioskAppSettings');
-    return Promise.resolve({
-      apps: [],
-      disableBailout: false,
-      hasAutoLaunchApp: false
-    });
+    return Promise.resolve(this.appSettings_);
   }
 
   /** @override */
diff --git a/chrome/test/data/webui/settings/people_page_test.js b/chrome/test/data/webui/settings/people_page_test.js
index 50d53a6..744c3b1 100644
--- a/chrome/test/data/webui/settings/people_page_test.js
+++ b/chrome/test/data/webui/settings/people_page_test.js
@@ -98,6 +98,14 @@
 
       teardown(function() { peoplePage.remove(); });
 
+      // This makes sure UI meant for DICE-enabled profiles are not leaked to
+      // non-dice profiles.
+      // TODO(scottchen): This should be removed once all profiles are fully
+      // migrated.
+      test('NoManageProfileRow', function() {
+        assertFalse(!!peoplePage.$$('#edit-profile'));
+      });
+
       test('GetProfileInfo', function() {
         let disconnectButton = null;
         return browserProxy.whenCalled('getSyncStatus').then(function() {
@@ -327,5 +335,39 @@
         });
       });
     });
+
+    suite('DiceUITest', function() {
+      let peoplePage = null;
+      let browserProxy = null;
+      let profileInfoBrowserProxy = null;
+
+      suiteSetup(function() {
+        // Force UIs to think DICE is enabled for this profile.
+        loadTimeData.overrideValues({
+          diceEnabled: true,
+        });
+      });
+
+      setup(function() {
+        browserProxy = new TestSyncBrowserProxy();
+        settings.SyncBrowserProxyImpl.instance_ = browserProxy;
+
+        profileInfoBrowserProxy = new TestProfileInfoBrowserProxy();
+        settings.ProfileInfoBrowserProxyImpl.instance_ =
+            profileInfoBrowserProxy;
+
+        PolymerTest.clearBody();
+        peoplePage = document.createElement('settings-people-page');
+        document.body.appendChild(peoplePage);
+
+        Polymer.dom.flush();
+      });
+
+      teardown(function() { peoplePage.remove(); });
+
+      test('ManageProfileRow', function() {
+        assertTrue(!!peoplePage.$$('#edit-profile'));
+      });
+    });
   }
 });
diff --git a/chrome/utility/chrome_content_utility_client.cc b/chrome/utility/chrome_content_utility_client.cc
index ffaa2821..ae1958f 100644
--- a/chrome/utility/chrome_content_utility_client.cc
+++ b/chrome/utility/chrome_content_utility_client.cc
@@ -38,7 +38,7 @@
 #include "chrome/utility/importer/profile_import_impl.h"
 #include "chrome/utility/importer/profile_import_service.h"
 #include "content/public/network/url_request_context_builder_mojo.h"
-#include "net/proxy/proxy_resolver_v8.h"
+#include "net/proxy_resolution/proxy_resolver_v8.h"
 #include "services/proxy_resolver/proxy_resolver_service.h"  // nogncheck
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"  // nogncheck
 #endif  // !defined(OS_ANDROID)
diff --git a/chrome_elf/nt_registry/nt_registry.cc b/chrome_elf/nt_registry/nt_registry.cc
index f716b56..cca08a2 100644
--- a/chrome_elf/nt_registry/nt_registry.cc
+++ b/chrome_elf/nt_registry/nt_registry.cc
@@ -8,6 +8,7 @@
 #include <stdlib.h>
 
 #include <memory>
+#include <string>
 
 namespace {
 
diff --git a/chrome_elf/whitelist/whitelist_ime.cc b/chrome_elf/whitelist/whitelist_ime.cc
index 5395fac..3f12c7f 100644
--- a/chrome_elf/whitelist/whitelist_ime.cc
+++ b/chrome_elf/whitelist/whitelist_ime.cc
@@ -9,6 +9,7 @@
 
 #include <algorithm>
 #include <memory>
+#include <string>
 #include <vector>
 
 #include "chrome_elf/nt_registry/nt_registry.h"
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
index 0e3bd7e..466c075 100644
--- a/chromecast/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -313,7 +313,8 @@
 }
 
 void CastContentBrowserClient::RenderProcessWillLaunch(
-    content::RenderProcessHost* host) {
+    content::RenderProcessHost* host,
+    service_manager::mojom::ServiceRequest* service_request) {
   // Forcibly trigger I/O-thread URLRequestContext initialization before
   // getting HostResolver.
   content::BrowserThread::PostTaskAndReplyWithResult(
diff --git a/chromecast/browser/cast_content_browser_client.h b/chromecast/browser/cast_content_browser_client.h
index 3ca44d2..afb90dcc6 100644
--- a/chromecast/browser/cast_content_browser_client.h
+++ b/chromecast/browser/cast_content_browser_client.h
@@ -113,7 +113,9 @@
   // content::ContentBrowserClient implementation:
   content::BrowserMainParts* CreateBrowserMainParts(
       const content::MainFunctionParams& parameters) override;
-  void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
+  void RenderProcessWillLaunch(
+      content::RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) override;
   bool IsHandledURL(const GURL& url) override;
   void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
                                       int child_process_id) override;
diff --git a/chromecast/browser/url_request_context_factory.cc b/chromecast/browser/url_request_context_factory.cc
index 79c10767..b62b6d8e 100644
--- a/chromecast/browser/url_request_context_factory.cc
+++ b/chromecast/browser/url_request_context_factory.cc
@@ -34,7 +34,7 @@
 #include "net/http/http_network_layer.h"
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/http_stream_factory.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/ssl/ssl_config_service_defaults.h"
diff --git a/chromecast/graphics/cast_screen.cc b/chromecast/graphics/cast_screen.cc
index d620179..7e3c689 100644
--- a/chromecast/graphics/cast_screen.cc
+++ b/chromecast/graphics/cast_screen.cc
@@ -8,6 +8,7 @@
 
 #include "base/command_line.h"
 #include "base/feature_list.h"
+#include "base/strings/string_number_conversions.h"
 #include "chromecast/base/cast_features.h"
 #include "chromecast/public/graphics_properties_shlib.h"
 #include "ui/aura/env.h"
@@ -21,20 +22,32 @@
 namespace {
 
 const int64_t kDisplayId = 1;
+constexpr char kCastGraphicsHeight[] = "cast-graphics-height";
+constexpr char kCastGraphicsWidth[] = "cast-graphics-width";
 constexpr char kDisplayRotation[] = "display-rotation";
 
 // Helper to return the screen resolution (device pixels)
 // to use.
 gfx::Size GetScreenResolution() {
-  if (base::FeatureList::IsEnabled(kTripleBuffer720)) {
-    return gfx::Size(1280, 720);
-  } else if (GraphicsPropertiesShlib::IsSupported(
-                 GraphicsPropertiesShlib::k1080p,
-                 base::CommandLine::ForCurrentProcess()->argv())) {
-    return gfx::Size(1920, 1080);
-  } else {
-    return gfx::Size(1280, 720);
+  gfx::Size res(1280, 720);
+  const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
+  if (!base::FeatureList::IsEnabled(kTripleBuffer720) &&
+      GraphicsPropertiesShlib::IsSupported(GraphicsPropertiesShlib::k1080p,
+                                           cmd_line->argv())) {
+    res = gfx::Size(1920, 1080);
   }
+
+  int cast_gfx_width = 0;
+  int cast_gfx_height = 0;
+  if (base::StringToInt(cmd_line->GetSwitchValueASCII(kCastGraphicsWidth),
+                        &cast_gfx_width) &&
+      base::StringToInt(cmd_line->GetSwitchValueASCII(kCastGraphicsHeight),
+                        &cast_gfx_height) &&
+      cast_gfx_width > 0 && cast_gfx_height > 0) {
+    res.set_width(cast_gfx_width);
+    res.set_height(cast_gfx_height);
+  }
+  return res;
 }
 
 display::Display::Rotation GetRotationFromCommandLine() {
diff --git a/chromecast/media/cdm/cast_cdm.cc b/chromecast/media/cdm/cast_cdm.cc
index a8d6d81..a326b8c 100644
--- a/chromecast/media/cdm/cast_cdm.cc
+++ b/chromecast/media/cdm/cast_cdm.cc
@@ -23,6 +23,8 @@
 namespace chromecast {
 namespace media {
 namespace {
+constexpr size_t kKeyStatusCount =
+    static_cast<size_t>(::media::CdmKeyInformation::KEY_STATUS_MAX) + 1;
 
 class CastCdmContextImpl : public CastCdmContext {
  public:
@@ -167,7 +169,7 @@
                                   ::media::CdmKeysInfo keys_info) {
   logging::LogMessage log_message(__FILE__, __LINE__, logging::LOG_INFO);
   log_message.stream() << "keystatuseschange ";
-  int status_count[::media::CdmKeyInformation::KEY_STATUS_MAX] = {0};
+  int status_count[kKeyStatusCount] = {0};
   for (const auto& key_info : keys_info) {
     status_count[key_info->status]++;
   }
diff --git a/chromeos/BUILD.gn b/chromeos/BUILD.gn
index 467c53e1..d03d64e 100644
--- a/chromeos/BUILD.gn
+++ b/chromeos/BUILD.gn
@@ -658,6 +658,7 @@
     "audio/audio_devices_pref_handler_impl_unittest.cc",
     "audio/cras_audio_handler_unittest.cc",
     "cert_loader_unittest.cc",
+    "cryptohome/cryptohome_util_unittest.cc",
     "cryptohome/homedir_methods_unittest.cc",
     "cryptohome/system_salt_getter_unittest.cc",
     "dbus/biod/biod_client_unittest.cc",
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM
index 54d8d22..5f1c159 100644
--- a/chromeos/CHROMEOS_LKGM
+++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@
-10330.0.0
\ No newline at end of file
+10333.0.0
\ No newline at end of file
diff --git a/chromeos/cryptohome/cryptohome_util.cc b/chromeos/cryptohome/cryptohome_util.cc
index 846326a..35677c3 100644
--- a/chromeos/cryptohome/cryptohome_util.cc
+++ b/chromeos/cryptohome/cryptohome_util.cc
@@ -13,8 +13,6 @@
 #include "components/device_event_log/device_event_log.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 
-// TODO(crbug.com/797848): Add unit tests for this file.
-
 namespace cryptohome {
 
 namespace {
@@ -27,6 +25,53 @@
   return false;
 }
 
+void KeyDefPrivilegesToKeyPrivileges(int key_def_privileges,
+                                     KeyPrivileges* privileges) {
+  privileges->set_mount(key_def_privileges & PRIV_MOUNT);
+  privileges->set_add(key_def_privileges & PRIV_ADD);
+  privileges->set_remove(key_def_privileges & PRIV_REMOVE);
+  privileges->set_update(key_def_privileges & PRIV_MIGRATE);
+  privileges->set_authorized_update(key_def_privileges &
+                                    PRIV_AUTHORIZED_UPDATE);
+}
+
+// TODO(crbug.com/797848): Add tests that cover this logic.
+void KeyDefSecretToKeyAuthorizationSecret(
+    const KeyDefinition::AuthorizationData::Secret& key_def_secret,
+    KeyAuthorizationSecret* secret) {
+  secret->mutable_usage()->set_encrypt(key_def_secret.encrypt);
+  secret->mutable_usage()->set_sign(key_def_secret.sign);
+  secret->set_wrapped(key_def_secret.wrapped);
+  if (!key_def_secret.symmetric_key.empty())
+    secret->set_symmetric_key(key_def_secret.symmetric_key);
+
+  if (!key_def_secret.public_key.empty())
+    secret->set_public_key(key_def_secret.public_key);
+}
+
+// TODO(crbug.com/797848): Add tests that cover this logic.
+void KeyDefProviderDataToKeyProviderDataEntry(
+    const KeyDefinition::ProviderData& provider_data,
+    KeyProviderData::Entry* entry) {
+  entry->set_name(provider_data.name);
+  if (provider_data.number)
+    entry->set_number(*provider_data.number);
+
+  if (provider_data.bytes)
+    entry->set_bytes(*provider_data.bytes);
+}
+
+// TODO(crbug.com/797848): Add tests that cover this logic.
+KeyAuthorizationData::KeyAuthorizationType GetKeyAuthDataType(
+    KeyDefinition::AuthorizationData::Type key_def_auth_data_type) {
+  switch (key_def_auth_data_type) {
+    case KeyDefinition::AuthorizationData::TYPE_HMACSHA256:
+      return KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_HMACSHA256;
+    case KeyDefinition::AuthorizationData::TYPE_AES256CBC_HMACSHA256:
+      return KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_AES256CBC_HMACSHA256;
+  }
+}
+
 }  // namespace
 
 MountError MountExReplyToMountError(const base::Optional<BaseReply>& reply) {
@@ -62,6 +107,7 @@
   return auth_request;
 }
 
+// TODO(crbug.com/797848): Finish testing this method.
 void KeyDefinitionToKey(const KeyDefinition& key_def, Key* key) {
   key->set_secret(key_def.secret);
   KeyData* data = key->mutable_data();
@@ -73,52 +119,26 @@
     data->set_revision(key_def.revision);
 
   if (key_def.privileges != 0) {
-    KeyPrivileges* privileges = data->mutable_privileges();
-    privileges->set_mount(key_def.privileges & PRIV_MOUNT);
-    privileges->set_add(key_def.privileges & PRIV_ADD);
-    privileges->set_remove(key_def.privileges & PRIV_REMOVE);
-    privileges->set_update(key_def.privileges & PRIV_MIGRATE);
-    privileges->set_authorized_update(key_def.privileges &
-                                      PRIV_AUTHORIZED_UPDATE);
+    KeyDefPrivilegesToKeyPrivileges(key_def.privileges,
+                                    data->mutable_privileges());
   }
 
-  for (const auto& current_auth_data : key_def.authorization_data) {
+  for (const auto& key_def_auth_data : key_def.authorization_data) {
     KeyAuthorizationData* auth_data = data->add_authorization_data();
-    switch (current_auth_data.type) {
-      case KeyDefinition::AuthorizationData::TYPE_HMACSHA256:
-        auth_data->set_type(
-            KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_HMACSHA256);
-        break;
-      case KeyDefinition::AuthorizationData::TYPE_AES256CBC_HMACSHA256:
-        auth_data->set_type(
-            KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_AES256CBC_HMACSHA256);
-        break;
-    }
-
-    for (const auto& current_secret : current_auth_data.secrets) {
-      KeyAuthorizationSecret* secret = auth_data->add_secrets();
-      secret->mutable_usage()->set_encrypt(current_secret.encrypt);
-      secret->mutable_usage()->set_sign(current_secret.sign);
-      secret->set_wrapped(current_secret.wrapped);
-      if (!current_secret.symmetric_key.empty())
-        secret->set_symmetric_key(current_secret.symmetric_key);
-
-      if (!current_secret.public_key.empty())
-        secret->set_public_key(current_secret.public_key);
+    auth_data->set_type(GetKeyAuthDataType(key_def_auth_data.type));
+    for (const auto& key_def_secret : key_def_auth_data.secrets) {
+      KeyDefSecretToKeyAuthorizationSecret(key_def_secret,
+                                           auth_data->add_secrets());
     }
   }
 
   for (const auto& provider_data : key_def.provider_data) {
-    KeyProviderData::Entry* entry = data->mutable_provider_data()->add_entry();
-    entry->set_name(provider_data.name);
-    if (provider_data.number)
-      entry->set_number(*provider_data.number);
-
-    if (provider_data.bytes)
-      entry->set_bytes(*provider_data.bytes);
+    KeyDefProviderDataToKeyProviderDataEntry(
+        provider_data, data->mutable_provider_data()->add_entry());
   }
 }
 
+// TODO(crbug.com/797848): Finish testing this method.
 MountError CryptohomeErrorToMountError(CryptohomeErrorCode code) {
   switch (code) {
     case CRYPTOHOME_ERROR_NOT_SET:
diff --git a/chromeos/cryptohome/cryptohome_util_unittest.cc b/chromeos/cryptohome/cryptohome_util_unittest.cc
new file mode 100644
index 0000000..02d0fd3
--- /dev/null
+++ b/chromeos/cryptohome/cryptohome_util_unittest.cc
@@ -0,0 +1,336 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chromeos/cryptohome/cryptohome_util.h"
+
+#include <string>
+
+#include "base/optional.h"
+#include "chromeos/cryptohome/cryptohome_parameters.h"
+#include "chromeos/dbus/cryptohome/key.pb.h"
+#include "chromeos/dbus/cryptohome/rpc.pb.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace cryptohome {
+
+TEST(CryptohomeUtilTest, CreateAuthorizationRequestEmptyLabel) {
+  const std::string kExpectedSecret = "secret";
+
+  const AuthorizationRequest auth_request =
+      CreateAuthorizationRequest(std::string(), kExpectedSecret);
+
+  EXPECT_FALSE(auth_request.key().data().has_label());
+  EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
+}
+
+TEST(CryptohomeUtilTest, CreateAuthorizationRequestWithLabel) {
+  const std::string kExpectedLabel = "some_label";
+  const std::string kExpectedSecret = "some_secret";
+
+  const AuthorizationRequest auth_request =
+      CreateAuthorizationRequest(kExpectedLabel, kExpectedSecret);
+
+  EXPECT_EQ(auth_request.key().data().label(), kExpectedLabel);
+  EXPECT_EQ(auth_request.key().secret(), kExpectedSecret);
+}
+
+TEST(CryptohomeUtilTest, BaseReplyToMountErrorNullOptional) {
+  const base::Optional<BaseReply> reply = base::nullopt;
+
+  MountError actual_error = BaseReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_FATAL);
+}
+
+TEST(CryptohomeUtilTest, BaseReplyToMountErrorEmptyReply) {
+  const base::Optional<BaseReply> reply(base::in_place);
+
+  MountError actual_error = BaseReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_NONE);
+}
+
+TEST(CryptohomeUtilTest, BaseReplyToMountErrorNoError) {
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_NOT_SET);
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = BaseReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_NONE);
+}
+
+TEST(CryptohomeUtilTest, BaseReplyToMountErrorAuthFailure) {
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_AUTHORIZATION_KEY_NOT_FOUND);
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = BaseReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_KEY_FAILURE);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountErrorNullOptional) {
+  const base::Optional<BaseReply> reply = base::nullopt;
+
+  MountError actual_error = MountExReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_FATAL);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountErrorEmptyReply) {
+  BaseReply result;
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = MountExReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_FATAL);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountErrorNoExtension) {
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_NOT_SET);
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = MountExReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_FATAL);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountErrorNoError) {
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_NOT_SET);
+  result.MutableExtension(MountReply::reply);
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = MountExReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_NONE);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountErrorAuthFailure) {
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_AUTHORIZATION_KEY_NOT_FOUND);
+  result.MutableExtension(MountReply::reply);
+  const base::Optional<BaseReply> reply = std::move(result);
+
+  MountError actual_error = MountExReplyToMountError(reply);
+
+  EXPECT_EQ(actual_error, MOUNT_ERROR_KEY_FAILURE);
+}
+
+TEST(CryptohomeUtilTest, MountExReplyToMountHash) {
+  const std::string expected_hash = "username";
+  BaseReply result;
+  result.set_error(CRYPTOHOME_ERROR_NOT_SET);
+  MountReply* mount = result.MutableExtension(MountReply::reply);
+  mount->set_sanitized_username(expected_hash);
+
+  const std::string actual_hash = MountExReplyToMountHash(result);
+
+  EXPECT_EQ(actual_hash, expected_hash);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyType) {
+  Key key;
+
+  KeyDefinitionToKey(KeyDefinition(), &key);
+
+  EXPECT_EQ(key.data().type(), KeyData::KEY_TYPE_PASSWORD);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeySecret) {
+  const std::string kExpectedSecret = "my_dog_ate_my_homework";
+  KeyDefinition key_def;
+  key_def.secret = kExpectedSecret;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+
+  EXPECT_EQ(key.secret(), kExpectedSecret);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyLabel) {
+  const std::string kExpectedLabel = "millenials hate labels";
+  KeyDefinition key_def;
+  key_def.label = kExpectedLabel;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+
+  EXPECT_EQ(key.data().label(), kExpectedLabel);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyNonpositiveRevision) {
+  KeyDefinition key_def;
+  key_def.revision = -1;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+
+  EXPECT_EQ(key.data().revision(), 0);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyPositiveRevision) {
+  constexpr int kExpectedRevision = 10;
+  KeyDefinition key_def;
+  key_def.revision = kExpectedRevision;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+
+  EXPECT_EQ(key.data().revision(), kExpectedRevision);
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyDefaultPrivileges) {
+  KeyDefinition key_def;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_TRUE(privileges.mount());
+  EXPECT_TRUE(privileges.add());
+  EXPECT_TRUE(privileges.remove());
+  EXPECT_TRUE(privileges.update());
+  EXPECT_FALSE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyMountPrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_MOUNT;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_TRUE(privileges.mount());
+  EXPECT_FALSE(privileges.add());
+  EXPECT_FALSE(privileges.remove());
+  EXPECT_FALSE(privileges.update());
+  EXPECT_FALSE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyAddPrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_ADD;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_FALSE(privileges.mount());
+  EXPECT_TRUE(privileges.add());
+  EXPECT_FALSE(privileges.remove());
+  EXPECT_FALSE(privileges.update());
+  EXPECT_FALSE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyRemovePrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_REMOVE;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_FALSE(privileges.mount());
+  EXPECT_FALSE(privileges.add());
+  EXPECT_TRUE(privileges.remove());
+  EXPECT_FALSE(privileges.update());
+  EXPECT_FALSE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyUpdatePrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_MIGRATE;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_FALSE(privileges.mount());
+  EXPECT_FALSE(privileges.add());
+  EXPECT_FALSE(privileges.remove());
+  EXPECT_TRUE(privileges.update());
+  EXPECT_FALSE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyAuthorizedUpdatePrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_AUTHORIZED_UPDATE;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_FALSE(privileges.mount());
+  EXPECT_FALSE(privileges.add());
+  EXPECT_FALSE(privileges.remove());
+  EXPECT_FALSE(privileges.update());
+  EXPECT_TRUE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyDefinitionToKeyAllPrivileges) {
+  KeyDefinition key_def;
+  key_def.privileges = PRIV_DEFAULT | PRIV_AUTHORIZED_UPDATE;
+  Key key;
+
+  KeyDefinitionToKey(key_def, &key);
+  KeyPrivileges privileges = key.data().privileges();
+
+  EXPECT_TRUE(privileges.mount());
+  EXPECT_TRUE(privileges.add());
+  EXPECT_TRUE(privileges.remove());
+  EXPECT_TRUE(privileges.update());
+  EXPECT_TRUE(privileges.authorized_update());
+}
+
+TEST(CryptohomeUtilTest, KeyAuthorizationDataToAuthorizationDataHmacSha256) {
+  KeyAuthorizationData auth_data_proto;
+  auth_data_proto.set_type(
+      KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_HMACSHA256);
+  KeyDefinition::AuthorizationData auth_data;
+
+  KeyAuthorizationDataToAuthorizationData(auth_data_proto, &auth_data);
+
+  EXPECT_EQ(auth_data.type, KeyDefinition::AuthorizationData::TYPE_HMACSHA256);
+}
+
+TEST(CryptohomeUtilTest, KeyAuthorizationDataToAuthorizationDataAes256Cbc) {
+  KeyAuthorizationData auth_data_proto;
+  auth_data_proto.set_type(
+      KeyAuthorizationData::KEY_AUTHORIZATION_TYPE_AES256CBC_HMACSHA256);
+  KeyDefinition::AuthorizationData auth_data;
+
+  KeyAuthorizationDataToAuthorizationData(auth_data_proto, &auth_data);
+
+  EXPECT_EQ(auth_data.type,
+            KeyDefinition::AuthorizationData::TYPE_AES256CBC_HMACSHA256);
+}
+
+TEST(CryptohomeUtilTest, KeyAuthorizationDataToAuthorizationDataSecret) {
+  constexpr bool kEncrypt = true;
+  constexpr bool kSign = false;
+  constexpr bool kWrapped = true;
+  const std::string kSymmetricKey = "symmetric_key";
+  const std::string kPublicKey = "public_key";
+  KeyAuthorizationData auth_data_proto;
+  KeyAuthorizationSecret* secret = auth_data_proto.add_secrets();
+  KeyAuthorizationSecretUsage* usage = secret->mutable_usage();
+  usage->set_encrypt(kEncrypt);
+  usage->set_sign(kSign);
+  secret->set_wrapped(kWrapped);
+  secret->set_symmetric_key(kSymmetricKey);
+  secret->set_public_key(kPublicKey);
+  KeyDefinition::AuthorizationData::Secret expected_secret(
+      kEncrypt, kSign, kSymmetricKey, kPublicKey, kWrapped);
+  KeyDefinition::AuthorizationData auth_data;
+
+  KeyAuthorizationDataToAuthorizationData(auth_data_proto, &auth_data);
+
+  EXPECT_EQ(auth_data.secrets.back(), expected_secret);
+}
+
+}  // namespace cryptohome
diff --git a/chromeos/dbus/fake_power_manager_client.cc b/chromeos/dbus/fake_power_manager_client.cc
index 225b3835d..1ab7281 100644
--- a/chromeos/dbus/fake_power_manager_client.cc
+++ b/chromeos/dbus/fake_power_manager_client.cc
@@ -178,9 +178,9 @@
       FROM_HERE, base::BindOnce(std::move(callback), inactivity_delays_));
 }
 
-base::Closure FakePowerManagerClient::GetSuspendReadinessCallback() {
+base::Closure FakePowerManagerClient::GetSuspendReadinessCallback(
+    const base::Location& from_where) {
   ++num_pending_suspend_readiness_callbacks_;
-
   return base::Bind(&FakePowerManagerClient::HandleSuspendReadiness,
                     base::Unretained(this));
 }
diff --git a/chromeos/dbus/fake_power_manager_client.h b/chromeos/dbus/fake_power_manager_client.h
index f5ad5d8fd..854a875 100644
--- a/chromeos/dbus/fake_power_manager_client.h
+++ b/chromeos/dbus/fake_power_manager_client.h
@@ -90,7 +90,8 @@
   void GetInactivityDelays(
       DBusMethodCallback<power_manager::PowerManagementPolicy::Delays> callback)
       override;
-  base::Closure GetSuspendReadinessCallback() override;
+  base::Closure GetSuspendReadinessCallback(
+      const base::Location& from_where) override;
   int GetNumPendingSuspendReadinessCallbacks() override;
 
   // Pops the first report from |video_activity_reports_|, returning whether the
diff --git a/chromeos/dbus/fake_smb_provider_client.cc b/chromeos/dbus/fake_smb_provider_client.cc
index 0e068b3..f45d3889 100644
--- a/chromeos/dbus/fake_smb_provider_client.cc
+++ b/chromeos/dbus/fake_smb_provider_client.cc
@@ -81,4 +81,11 @@
       FROM_HERE, base::BindOnce(std::move(callback), smbprovider::ERROR_OK));
 }
 
+void FakeSmbProviderClient::CreateFile(int32_t mount_id,
+                                       const base::FilePath& file_path,
+                                       StatusCallback callback) {
+  base::ThreadTaskRunnerHandle::Get()->PostTask(
+      FROM_HERE, base::BindOnce(std::move(callback), smbprovider::ERROR_OK));
+}
+
 }  // namespace chromeos
diff --git a/chromeos/dbus/fake_smb_provider_client.h b/chromeos/dbus/fake_smb_provider_client.h
index b88b63bd..392068f7 100644
--- a/chromeos/dbus/fake_smb_provider_client.h
+++ b/chromeos/dbus/fake_smb_provider_client.h
@@ -45,6 +45,10 @@
                    bool recursive,
                    StatusCallback callback) override;
 
+  void CreateFile(int32_t mount_id,
+                  const base::FilePath& file_path,
+                  StatusCallback callback) override;
+
  private:
   DISALLOW_COPY_AND_ASSIGN(FakeSmbProviderClient);
 };
diff --git a/chromeos/dbus/power_manager_client.cc b/chromeos/dbus/power_manager_client.cc
index 894ff1c6..f40568f0 100644
--- a/chromeos/dbus/power_manager_client.cc
+++ b/chromeos/dbus/power_manager_client.cc
@@ -95,7 +95,7 @@
         pending_suspend_id_(-1),
         suspend_is_pending_(false),
         suspending_from_dark_resume_(false),
-        num_pending_suspend_readiness_callbacks_(0),
+        next_suspend_readiness_callback_id_(1),
         notifying_observers_about_suspend_imminent_(false),
         last_is_projecting_(false),
         weak_ptr_factory_(this) {}
@@ -335,17 +335,20 @@
                        weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
   }
 
-  base::Closure GetSuspendReadinessCallback() override {
+  base::Closure GetSuspendReadinessCallback(
+      const base::Location& from_where) override {
     DCHECK(OnOriginThread());
     DCHECK(suspend_is_pending_);
-    num_pending_suspend_readiness_callbacks_++;
+
+    const int callback_id = next_suspend_readiness_callback_id_++;
+    pending_suspend_readiness_callbacks_[callback_id] = from_where;
     return base::Bind(&PowerManagerClientImpl::HandleObserverSuspendReadiness,
                       weak_ptr_factory_.GetWeakPtr(), pending_suspend_id_,
-                      suspending_from_dark_resume_);
+                      suspending_from_dark_resume_, callback_id);
   }
 
   int GetNumPendingSuspendReadinessCallbacks() override {
-    return num_pending_suspend_readiness_callbacks_;
+    return pending_suspend_readiness_callbacks_.size();
   }
 
  protected:
@@ -769,7 +772,7 @@
     pending_suspend_id_ = proto.suspend_id();
     suspend_is_pending_ = true;
     suspending_from_dark_resume_ = in_dark_resume;
-    num_pending_suspend_readiness_callbacks_ = 0;
+    pending_suspend_readiness_callbacks_.clear();
 
     // Record the fact that observers are being notified to ensure that we don't
     // report readiness prematurely if one of them calls
@@ -820,7 +823,14 @@
     pending_suspend_id_ = -1;
     suspend_is_pending_ = false;
     suspending_from_dark_resume_ = false;
-    num_pending_suspend_readiness_callbacks_ = 0;
+
+    // powerd gives clients a limited amount of time to report suspend
+    // readiness. Log the stragglers within Chrome to aid in debugging.
+    for (const auto it : pending_suspend_readiness_callbacks_) {
+      LOG(WARNING) << "Didn't report suspend readiness due to "
+                   << it.second.ToString();
+    }
+    pending_suspend_readiness_callbacks_.clear();
 
     for (auto& observer : observers_)
       observer.SuspendDone(duration);
@@ -953,13 +963,15 @@
   // that was blocking a pending suspend attempt and possibly reports
   // suspend readiness to powerd.  Called by callbacks returned via
   // GetSuspendReadinessCallback().
-  void HandleObserverSuspendReadiness(int32_t suspend_id, bool in_dark_resume) {
+  void HandleObserverSuspendReadiness(int32_t suspend_id,
+                                      bool in_dark_resume,
+                                      int callback_id) {
     DCHECK(OnOriginThread());
     if (!suspend_is_pending_ || suspend_id != pending_suspend_id_ ||
         in_dark_resume != suspending_from_dark_resume_)
       return;
 
-    num_pending_suspend_readiness_callbacks_--;
+    pending_suspend_readiness_callbacks_.erase(callback_id);
     MaybeReportSuspendReadiness();
   }
 
@@ -973,7 +985,7 @@
     if (notifying_observers_about_suspend_imminent_)
       return;
 
-    if (num_pending_suspend_readiness_callbacks_ > 0)
+    if (GetNumPendingSuspendReadinessCallbacks() > 0)
       return;
 
     std::string method_name;
@@ -1037,10 +1049,13 @@
   // helps distinguish the context within which these variables are being used.
   bool suspending_from_dark_resume_;
 
-  // Number of callbacks that have been returned by
-  // GetSuspendReadinessCallback() during the currently-pending suspend
-  // attempt but have not yet been called.
-  int num_pending_suspend_readiness_callbacks_;
+  // Next ID to be assigned to a callback returned via
+  // GetSuspendReadinessCallback().
+  int next_suspend_readiness_callback_id_;
+
+  // Map from suspend readiness callback ID to the location of the code that
+  // requested the callback.
+  std::map<int, base::Location> pending_suspend_readiness_callbacks_;
 
   // Inspected by MaybeReportSuspendReadiness() to avoid prematurely notifying
   // powerd about suspend readiness while |observers_|' SuspendImminent()
diff --git a/chromeos/dbus/power_manager_client.h b/chromeos/dbus/power_manager_client.h
index 193679f1..bf4e2d1 100644
--- a/chromeos/dbus/power_manager_client.h
+++ b/chromeos/dbus/power_manager_client.h
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "base/callback.h"
+#include "base/location.h"
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "base/time/time.h"
@@ -243,9 +244,10 @@
       DBusMethodCallback<power_manager::PowerManagementPolicy::Delays>
           callback) = 0;
 
-  // Returns a callback that can be called by an observer to report
-  // readiness for suspend.  See Observer::SuspendImminent().
-  virtual base::Closure GetSuspendReadinessCallback() = 0;
+  // Returns a callback that can be called by an observer to report readiness
+  // for suspend. See Observer::SuspendImminent().
+  virtual base::Closure GetSuspendReadinessCallback(
+      const base::Location& from_where) = 0;
 
   // Returns the number of callbacks returned by GetSuspendReadinessCallback()
   // for the current suspend attempt but not yet called. Used by tests.
diff --git a/chromeos/dbus/power_manager_client_unittest.cc b/chromeos/dbus/power_manager_client_unittest.cc
index 588c809..012f4631 100644
--- a/chromeos/dbus/power_manager_client_unittest.cc
+++ b/chromeos/dbus/power_manager_client_unittest.cc
@@ -10,6 +10,7 @@
 #include <utility>
 
 #include "base/bind.h"
+#include "base/location.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
@@ -116,8 +117,10 @@
   // PowerManagerClient::Observer:
   void SuspendImminent(power_manager::SuspendImminent::Reason reason) override {
     num_suspend_imminent_++;
-    if (take_suspend_readiness_callback_)
-      suspend_readiness_callback_ = client_->GetSuspendReadinessCallback();
+    if (take_suspend_readiness_callback_) {
+      suspend_readiness_callback_ =
+          client_->GetSuspendReadinessCallback(FROM_HERE);
+    }
     if (run_suspend_readiness_callback_immediately_)
       CHECK(RunSuspendReadinessCallback());
   }
@@ -126,8 +129,10 @@
   }
   void DarkSuspendImminent() override {
     num_dark_suspend_imminent_++;
-    if (take_suspend_readiness_callback_)
-      suspend_readiness_callback_ = client_->GetSuspendReadinessCallback();
+    if (take_suspend_readiness_callback_) {
+      suspend_readiness_callback_ =
+          client_->GetSuspendReadinessCallback(FROM_HERE);
+    }
     if (run_suspend_readiness_callback_immediately_)
       CHECK(RunSuspendReadinessCallback());
   }
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider.cc b/chromeos/dbus/services/proxy_resolution_service_provider.cc
index cf61b7d..a756042d 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider.cc
+++ b/chromeos/dbus/services/proxy_resolution_service_provider.cc
@@ -15,8 +15,8 @@
 #include "dbus/message.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc b/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc
index 7f5aa4e..2d8b9a451 100644
--- a/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc
+++ b/chromeos/dbus/services/proxy_resolution_service_provider_unittest.cc
@@ -20,10 +20,10 @@
 #include "dbus/message.h"
 #include "dbus/object_path.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_test_util.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
diff --git a/chromeos/dbus/smb_provider_client.cc b/chromeos/dbus/smb_provider_client.cc
index 8564be5..ad83a5cd 100644
--- a/chromeos/dbus/smb_provider_client.cc
+++ b/chromeos/dbus/smb_provider_client.cc
@@ -138,6 +138,16 @@
                &SmbProviderClientImpl::HandleDeleteEntryCallback, &callback);
   }
 
+  void CreateFile(int32_t mount_id,
+                  const base::FilePath& file_path,
+                  StatusCallback callback) override {
+    smbprovider::CreateFileOptions options;
+    options.set_mount_id(mount_id);
+    options.set_file_path(file_path.value());
+    CallMethod(smbprovider::kCreateFileMethod, options,
+               &SmbProviderClientImpl::HandleCreateFileCallback, &callback);
+  }
+
  protected:
   // DBusClient override.
   void Init(dbus::Bus* bus) override {
@@ -266,6 +276,17 @@
     std::move(callback).Run(GetErrorFromReader(&reader));
   }
 
+  // Handles D-Bus callback for CreateFile.
+  void HandleCreateFileCallback(StatusCallback callback,
+                                dbus::Response* response) {
+    if (!response) {
+      DLOG(ERROR) << "CreateFile: failed to call smbprovider";
+      std::move(callback).Run(smbprovider::ERROR_DBUS_PARSE_FAILED);
+    }
+    dbus::MessageReader reader(response);
+    std::move(callback).Run(GetErrorFromReader(&reader));
+  }
+
   // Handles D-Bus responses for methods that return an error and a protobuf
   // object.
   template <class T>
diff --git a/chromeos/dbus/smb_provider_client.h b/chromeos/dbus/smb_provider_client.h
index 6178388..c072b67 100644
--- a/chromeos/dbus/smb_provider_client.h
+++ b/chromeos/dbus/smb_provider_client.h
@@ -96,6 +96,12 @@
                            bool recursive,
                            StatusCallback callback) = 0;
 
+  // Calls CreateFile. Using the corresponding mount |mount_id|, this creates
+  // the file in the specified |file_path|.
+  virtual void CreateFile(int32_t mount_id,
+                          const base::FilePath& file_path,
+                          StatusCallback callback) = 0;
+
  protected:
   // Create() should be used instead.
   SmbProviderClient();
diff --git a/chromeos/disks/suspend_unmount_manager.cc b/chromeos/disks/suspend_unmount_manager.cc
index c966885..761dd71 100644
--- a/chromeos/disks/suspend_unmount_manager.cc
+++ b/chromeos/disks/suspend_unmount_manager.cc
@@ -5,6 +5,7 @@
 #include "chromeos/disks/suspend_unmount_manager.h"
 
 #include "base/bind.h"
+#include "base/location.h"
 #include "chromeos/disks/disk_mount_manager.h"
 
 namespace chromeos {
@@ -46,7 +47,7 @@
   for (const auto& mount_path : mount_paths) {
     if (suspend_readiness_callback_.is_null()) {
       suspend_readiness_callback_ =
-          power_manager_client_->GetSuspendReadinessCallback();
+          power_manager_client_->GetSuspendReadinessCallback(FROM_HERE);
     }
     disk_mount_manager_->UnmountPath(
         mount_path, UNMOUNT_OPTIONS_NONE,
diff --git a/chromeos/network/dhcp_pac_file_fetcher_chromeos.cc b/chromeos/network/dhcp_pac_file_fetcher_chromeos.cc
index 341cdfa..ff02714 100644
--- a/chromeos/network/dhcp_pac_file_fetcher_chromeos.cc
+++ b/chromeos/network/dhcp_pac_file_fetcher_chromeos.cc
@@ -10,8 +10,8 @@
 #include "chromeos/network/network_handler.h"
 #include "chromeos/network/network_state.h"
 #include "chromeos/network/network_state_handler.h"
-#include "net/proxy/pac_file_fetcher.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
 #include "net/url_request/url_request_context.h"
 
 namespace chromeos {
diff --git a/chromeos/network/dhcp_pac_file_fetcher_chromeos.h b/chromeos/network/dhcp_pac_file_fetcher_chromeos.h
index 36acc485..8c7bd68 100644
--- a/chromeos/network/dhcp_pac_file_fetcher_chromeos.h
+++ b/chromeos/network/dhcp_pac_file_fetcher_chromeos.h
@@ -11,7 +11,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
 #include "chromeos/chromeos_export.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/chromeos/network/dhcp_pac_file_fetcher_factory_chromeos.h b/chromeos/network/dhcp_pac_file_fetcher_factory_chromeos.h
index ef57f68..b670727 100644
--- a/chromeos/network/dhcp_pac_file_fetcher_factory_chromeos.h
+++ b/chromeos/network/dhcp_pac_file_fetcher_factory_chromeos.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "chromeos/chromeos_export.h"
-#include "net/proxy/dhcp_pac_file_fetcher_factory.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_factory.h"
 
 namespace net {
 class DhcpProxyScriptFetcher;
diff --git a/chromeos/network/network_configuration_handler.cc b/chromeos/network/network_configuration_handler.cc
index 481446de..0262d73 100644
--- a/chromeos/network/network_configuration_handler.cc
+++ b/chromeos/network/network_configuration_handler.cc
@@ -73,6 +73,16 @@
   }
 }
 
+// Returns recognized dbus error names or |default_error_name|.
+// TODO(stevenjb): Expand this list and update
+// network_element::AddErrorLocalizedStrings.
+std::string GetErrorName(const std::string& dbus_error_name,
+                         const std::string& default_error_name) {
+  if (dbus_error_name == shill::kErrorResultInvalidPassphrase)
+    return dbus_error_name;
+  return default_error_name;
+}
+
 }  // namespace
 
 // Helper class to request from Shill the profile entries associated with a
@@ -362,8 +372,8 @@
       base::Bind(&NetworkConfigurationHandler::ConfigurationCompleted,
                  weak_ptr_factory_.GetWeakPtr(), profile_path, source,
                  base::Passed(&properties_copy), callback),
-      base::Bind(&network_handler::ShillErrorCallbackFunction,
-                 "Config.CreateConfiguration Failed", "", error_callback));
+      base::Bind(&NetworkConfigurationHandler::ConfigurationFailed,
+                 weak_ptr_factory_.GetWeakPtr(), error_callback));
 }
 
 void NetworkConfigurationHandler::RemoveConfiguration(
@@ -480,6 +490,16 @@
   network_state_handler_->AddObserver(this, FROM_HERE);
 }
 
+void NetworkConfigurationHandler::ConfigurationFailed(
+    const network_handler::ErrorCallback& error_callback,
+    const std::string& dbus_error_name,
+    const std::string& dbus_error_message) {
+  std::string error_name =
+      GetErrorName(dbus_error_name, "Config.CreateConfiguration Failed");
+  network_handler::ShillErrorCallbackFunction(
+      error_name, "", error_callback, dbus_error_name, dbus_error_message);
+}
+
 void NetworkConfigurationHandler::ConfigurationCompleted(
     const std::string& profile_path,
     NetworkConfigurationObserver::Source source,
@@ -596,9 +616,11 @@
     const network_handler::ErrorCallback& error_callback,
     const std::string& dbus_error_name,
     const std::string& dbus_error_message) {
-  network_handler::ShillErrorCallbackFunction(
-      "Config.SetProperties Failed", service_path, error_callback,
-      dbus_error_name, dbus_error_message);
+  std::string error_name =
+      GetErrorName(dbus_error_name, "Config.SetProperties Failed");
+  network_handler::ShillErrorCallbackFunction(error_name, service_path,
+                                              error_callback, dbus_error_name,
+                                              dbus_error_message);
   // Some properties may have changed so request an update regardless.
   network_state_handler_->RequestUpdateForNetwork(service_path);
 }
diff --git a/chromeos/network/network_configuration_handler.h b/chromeos/network/network_configuration_handler.h
index e809051..ba96b77 100644
--- a/chromeos/network/network_configuration_handler.h
+++ b/chromeos/network/network_configuration_handler.h
@@ -161,6 +161,10 @@
       const network_handler::ServiceResultCallback& callback,
       const dbus::ObjectPath& service_path);
 
+  void ConfigurationFailed(const network_handler::ErrorCallback& error_callback,
+                           const std::string& dbus_error_name,
+                           const std::string& dbus_error_message);
+
   // Called from ProfileEntryDeleter instances when they complete causing
   // this class to delete the instance.
   void ProfileEntryDeleterCompleted(const std::string& service_path,
diff --git a/chromeos/network/onc/onc_utils.cc b/chromeos/network/onc/onc_utils.cc
index c3ab9331..8d935b7 100644
--- a/chromeos/network/onc/onc_utils.cc
+++ b/chromeos/network/onc/onc_utils.cc
@@ -48,12 +48,12 @@
 #include "crypto/hmac.h"
 #include "crypto/symmetric_key.h"
 #include "net/base/host_port_pair.h"
+#include "net/base/proxy_server.h"
 #include "net/cert/pem_tokenizer.h"
 #include "net/cert/x509_certificate.h"
 #include "net/cert/x509_util_nss.h"
-#include "net/proxy/proxy_bypass_rules.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "third_party/cros_system_api/dbus/service_constants.h"
 #include "url/gurl.h"
 #include "url/url_constants.h"
diff --git a/chromeos/network/proxy/ui_proxy_config.cc b/chromeos/network/proxy/ui_proxy_config.cc
index ddd4a1a..8611ca4 100644
--- a/chromeos/network/proxy/ui_proxy_config.cc
+++ b/chromeos/network/proxy/ui_proxy_config.cc
@@ -7,7 +7,7 @@
 #include "base/logging.h"
 #include "base/values.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "url/url_constants.h"
 
 namespace {
diff --git a/chromeos/network/proxy/ui_proxy_config.h b/chromeos/network/proxy/ui_proxy_config.h
index cf05536..e9c8649 100644
--- a/chromeos/network/proxy/ui_proxy_config.h
+++ b/chromeos/network/proxy/ui_proxy_config.h
@@ -10,8 +10,8 @@
 
 #include "chromeos/chromeos_export.h"
 #include "components/proxy_config/proxy_prefs.h"
-#include "net/proxy/proxy_bypass_rules.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/chromeos/network/proxy/ui_proxy_config_service.cc b/chromeos/network/proxy/ui_proxy_config_service.cc
index 026764b..3a584b38 100644
--- a/chromeos/network/proxy/ui_proxy_config_service.cc
+++ b/chromeos/network/proxy/ui_proxy_config_service.cc
@@ -19,7 +19,7 @@
 #include "components/device_event_log/device_event_log.h"
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace chromeos {
 
diff --git a/chromeos/printing/ppd_provider.cc b/chromeos/printing/ppd_provider.cc
index f4bd2b0b..52052ee 100644
--- a/chromeos/printing/ppd_provider.cc
+++ b/chromeos/printing/ppd_provider.cc
@@ -219,6 +219,15 @@
   if (!reference.effective_make_and_model.empty()) {
     ++filled_fields;
   }
+
+  // All effective-make-and-model strings should be lowercased, since v2.
+  // Since make-and-model strings could include non-Latin chars, only checking
+  // that it excludes all upper-case chars A-Z.
+  if (!std::all_of(reference.effective_make_and_model.begin(),
+                   reference.effective_make_and_model.end(),
+                   [](char c) -> bool { return !base::IsAsciiUpper(c); })) {
+    return false;
+  }
   // Should have exactly one non-empty field.
   return filled_fields == 1;
 }
@@ -528,19 +537,24 @@
 
   void ResolvePpd(const Printer::PpdReference& reference,
                   ResolvePpdCallback cb) override {
+    // In v2 metadata, we work with lowercased effective_make_and_models.
+    Printer::PpdReference lowercase_reference(reference);
+    lowercase_reference.effective_make_and_model =
+        base::ToLowerASCII(lowercase_reference.effective_make_and_model);
+
     // Do a sanity check here, so we can assume |reference| is well-formed in
     // the rest of this class.
-    if (!PpdReferenceIsWellFormed(reference)) {
+    if (!PpdReferenceIsWellFormed(lowercase_reference)) {
       FinishPpdResolution(std::move(cb), PpdProvider::INTERNAL_ERROR,
                           std::string());
       return;
     }
     // First step, check the cache.  If the cache lookup fails, we'll (try to)
     // consult the server.
-    ppd_cache_->Find(
-        PpdReferenceToCacheKey(reference),
-        base::BindOnce(&PpdProviderImpl::ResolvePpdCacheLookupDone,
-                       weak_factory_.GetWeakPtr(), reference, std::move(cb)));
+    ppd_cache_->Find(PpdReferenceToCacheKey(lowercase_reference),
+                     base::BindOnce(&PpdProviderImpl::ResolvePpdCacheLookupDone,
+                                    weak_factory_.GetWeakPtr(),
+                                    lowercase_reference, std::move(cb)));
   }
 
   void ReverseLookup(const std::string& effective_make_and_model,
diff --git a/components/arc/power/arc_power_bridge.cc b/components/arc/power/arc_power_bridge.cc
index b584cd6..a470cb57 100644
--- a/components/arc/power/arc_power_bridge.cc
+++ b/components/arc/power/arc_power_bridge.cc
@@ -8,6 +8,7 @@
 #include <utility>
 
 #include "ash/shell.h"
+#include "base/location.h"
 #include "base/logging.h"
 #include "base/memory/singleton.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -175,9 +176,9 @@
   if (!power_instance)
     return;
 
-  power_instance->Suspend(
-      chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->
-        GetSuspendReadinessCallback());
+  power_instance->Suspend(chromeos::DBusThreadManager::Get()
+                              ->GetPowerManagerClient()
+                              ->GetSuspendReadinessCallback(FROM_HERE));
 }
 
 void ArcPowerBridge::SuspendDone(const base::TimeDelta& sleep_duration) {
diff --git a/components/cbor/cbor_reader.cc b/components/cbor/cbor_reader.cc
index c21f4df..3a084cf 100644
--- a/components/cbor/cbor_reader.cc
+++ b/components/cbor/cbor_reader.cc
@@ -5,6 +5,7 @@
 #include "components/cbor/cbor_reader.h"
 
 #include <math.h>
+
 #include <utility>
 
 #include "base/numerics/checked_math.h"
@@ -54,15 +55,16 @@
 
 }  // namespace
 
-CBORReader::CBORReader(Bytes::const_iterator it, Bytes::const_iterator end)
+CBORReader::CBORReader(base::span<const uint8_t>::const_iterator it,
+                       const base::span<const uint8_t>::const_iterator end)
     : it_(it), end_(end), error_code_(DecoderError::CBOR_NO_ERROR) {}
 CBORReader::~CBORReader() {}
 
 // static
-base::Optional<CBORValue> CBORReader::Read(const Bytes& data,
+base::Optional<CBORValue> CBORReader::Read(base::span<uint8_t const> data,
                                            DecoderError* error_code_out,
                                            int max_nesting_level) {
-  CBORReader reader(data.begin(), data.end());
+  CBORReader reader(data.cbegin(), data.cend());
   base::Optional<CBORValue> decoded_cbor = reader.DecodeCBOR(max_nesting_level);
 
   if (decoded_cbor)
@@ -212,7 +214,7 @@
     return base::nullopt;
   }
 
-  Bytes cbor_byte_string(it_, it_ + num_bytes);
+  std::vector<uint8_t> cbor_byte_string(it_, it_ + num_bytes);
   it_ += num_bytes;
 
   return CBORValue(std::move(cbor_byte_string));
diff --git a/components/cbor/cbor_reader.h b/components/cbor/cbor_reader.h
index 35558891..71c7702 100644
--- a/components/cbor/cbor_reader.h
+++ b/components/cbor/cbor_reader.h
@@ -6,9 +6,11 @@
 #define COMPONENTS_CBOR_CBOR_READER_H_
 
 #include <stddef.h>
+
 #include <string>
 #include <vector>
 
+#include "base/containers/span.h"
 #include "base/optional.h"
 #include "components/cbor/cbor_export.h"
 #include "components/cbor/cbor_values.h"
@@ -50,8 +52,6 @@
 
 class CBOR_EXPORT CBORReader {
  public:
-  using Bytes = std::vector<uint8_t>;
-
   enum class DecoderError {
     CBOR_NO_ERROR = 0,
     UNSUPPORTED_MAJOR_TYPE,
@@ -79,7 +79,7 @@
   // CBOR data- then an empty optional is returned. Optional |error_code_out|
   // can be provided by the caller to obtain additional information about
   // decoding failures.
-  static base::Optional<CBORValue> Read(const Bytes& input_data,
+  static base::Optional<CBORValue> Read(base::span<const uint8_t> input_data,
                                         DecoderError* error_code_out = nullptr,
                                         int max_nesting_level = kCBORMaxDepth);
 
@@ -87,7 +87,8 @@
   static const char* ErrorCodeToString(DecoderError error_code);
 
  private:
-  CBORReader(Bytes::const_iterator it, const Bytes::const_iterator end);
+  CBORReader(base::span<const uint8_t>::const_iterator it,
+             const base::span<const uint8_t>::const_iterator end);
   base::Optional<CBORValue> DecodeCBOR(int max_nesting_level);
   base::Optional<CBORValue> DecodeValueToNegative(uint64_t value);
   base::Optional<CBORValue> DecodeValueToUnsigned(uint64_t value);
@@ -108,8 +109,8 @@
 
   DecoderError GetErrorCode();
 
-  Bytes::const_iterator it_;
-  const Bytes::const_iterator end_;
+  base::span<const uint8_t>::const_iterator it_;
+  const base::span<const uint8_t>::const_iterator end_;
   DecoderError error_code_;
 
   DISALLOW_COPY_AND_ASSIGN(CBORReader);
diff --git a/components/cbor/cbor_values.cc b/components/cbor/cbor_values.cc
index b4517650..837b5c5 100644
--- a/components/cbor/cbor_values.cc
+++ b/components/cbor/cbor_values.cc
@@ -46,6 +46,16 @@
   NOTREACHED();
 }
 
+CBORValue::CBORValue(SimpleValue in_simple)
+    : type_(Type::SIMPLE_VALUE), simple_value_(in_simple) {
+  CHECK(static_cast<int>(in_simple) >= 20 && static_cast<int>(in_simple) <= 23);
+}
+
+CBORValue::CBORValue(bool boolean_value) : type_(Type::SIMPLE_VALUE) {
+  simple_value_ = boolean_value ? CBORValue::SimpleValue::TRUE_VALUE
+                                : CBORValue::SimpleValue::FALSE_VALUE;
+}
+
 CBORValue::CBORValue(int integer_value)
     : CBORValue(base::checked_cast<int64_t>(integer_value)) {}
 
@@ -90,11 +100,6 @@
 CBORValue::CBORValue(MapValue&& in_map) noexcept
     : type_(Type::MAP), map_value_(std::move(in_map)) {}
 
-CBORValue::CBORValue(SimpleValue in_simple)
-    : type_(Type::SIMPLE_VALUE), simple_value_(in_simple) {
-  CHECK(static_cast<int>(in_simple) >= 20 && static_cast<int>(in_simple) <= 23);
-}
-
 CBORValue& CBORValue::operator=(CBORValue&& that) noexcept {
   InternalCleanup();
   InternalMoveConstructFrom(std::move(that));
@@ -129,6 +134,16 @@
   return CBORValue();
 }
 
+CBORValue::SimpleValue CBORValue::GetSimpleValue() const {
+  CHECK(is_simple());
+  return simple_value_;
+}
+
+bool CBORValue::GetBool() const {
+  CHECK(is_bool());
+  return simple_value_ == SimpleValue::TRUE_VALUE;
+}
+
 const int64_t& CBORValue::GetInteger() const {
   CHECK(is_integer());
   return integer_value_;
@@ -166,11 +181,6 @@
   return map_value_;
 }
 
-CBORValue::SimpleValue CBORValue::GetSimpleValue() const {
-  CHECK(is_simple());
-  return simple_value_;
-}
-
 void CBORValue::InternalMoveConstructFrom(CBORValue&& that) {
   type_ = that.type_;
 
diff --git a/components/cbor/cbor_values.h b/components/cbor/cbor_values.h
index 53eea21..af752f9 100644
--- a/components/cbor/cbor_values.h
+++ b/components/cbor/cbor_values.h
@@ -6,6 +6,7 @@
 #define COMPONENTS_CBOR_CBOR_VALUES_H_
 
 #include <stdint.h>
+
 #include <string>
 #include <tuple>
 #include <vector>
@@ -96,6 +97,10 @@
   CBORValue() noexcept;  // A NONE value.
 
   explicit CBORValue(Type type);
+
+  explicit CBORValue(SimpleValue in_simple);
+  explicit CBORValue(bool boolean_value);
+
   explicit CBORValue(int integer_value);
   explicit CBORValue(int64_t integer_value);
   explicit CBORValue(uint64_t integer_value) = delete;
@@ -113,8 +118,6 @@
   explicit CBORValue(const MapValue& in_map);
   explicit CBORValue(MapValue&& in_map) noexcept;
 
-  explicit CBORValue(SimpleValue in_simple);
-
   CBORValue& operator=(CBORValue&& that) noexcept;
 
   ~CBORValue();
@@ -129,6 +132,11 @@
   // Returns true if the current object represents a given type.
   bool is_type(Type type) const { return type == type_; }
   bool is_none() const { return type() == Type::NONE; }
+  bool is_simple() const { return type() == Type::SIMPLE_VALUE; }
+  bool is_bool() const {
+    return is_simple() && (simple_value_ == SimpleValue::TRUE_VALUE ||
+                           simple_value_ == SimpleValue::FALSE_VALUE);
+  }
   bool is_unsigned() const { return type() == Type::UNSIGNED; }
   bool is_negative() const { return type() == Type::NEGATIVE; }
   bool is_integer() const { return is_unsigned() || is_negative(); }
@@ -136,10 +144,10 @@
   bool is_string() const { return type() == Type::STRING; }
   bool is_array() const { return type() == Type::ARRAY; }
   bool is_map() const { return type() == Type::MAP; }
-  bool is_simple() const { return type() == Type::SIMPLE_VALUE; }
 
   // These will all fatally assert if the type doesn't match.
   SimpleValue GetSimpleValue() const;
+  bool GetBool() const;
   const int64_t& GetInteger() const;
   const int64_t& GetUnsigned() const;
   const int64_t& GetNegative() const;
diff --git a/components/cbor/cbor_values_unittest.cc b/components/cbor/cbor_values_unittest.cc
index b003e83..fbeebc3 100644
--- a/components/cbor/cbor_values_unittest.cc
+++ b/components/cbor/cbor_values_unittest.cc
@@ -133,6 +133,16 @@
             undefined_value.GetSimpleValue());
 }
 
+TEST(CBORValuesTest, ConstructSimpleBooleanValue) {
+  CBORValue true_value(true);
+  ASSERT_EQ(CBORValue::Type::SIMPLE_VALUE, true_value.type());
+  EXPECT_TRUE(true_value.GetBool());
+
+  CBORValue false_value(false);
+  ASSERT_EQ(CBORValue::Type::SIMPLE_VALUE, false_value.type());
+  EXPECT_FALSE(false_value.GetBool());
+}
+
 // Test copy constructors
 TEST(CBORValuesTest, CopyUnsigned) {
   CBORValue value(74);
diff --git a/components/cronet/android/cronet_library_loader.cc b/components/cronet/android/cronet_library_loader.cc
index f2ea77b..de6553eb 100644
--- a/components/cronet/android/cronet_library_loader.cc
+++ b/components/cronet/android/cronet_library_loader.cc
@@ -27,8 +27,8 @@
 #include "jni/CronetLibraryLoader_jni.h"
 #include "net/android/network_change_notifier_factory_android.h"
 #include "net/base/network_change_notifier.h"
-#include "net/proxy/proxy_config_service_android.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "url/url_features.h"
 #include "url/url_util.h"
 
diff --git a/components/cronet/android/cronet_url_request_adapter.cc b/components/cronet/android/cronet_url_request_adapter.cc
index 15e8bcc..195d306b 100644
--- a/components/cronet/android/cronet_url_request_adapter.cc
+++ b/components/cronet/android/cronet_url_request_adapter.cc
@@ -19,12 +19,12 @@
 #include "net/base/load_flags.h"
 #include "net/base/load_states.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/cert/cert_status_flags.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/quic/core/quic_packets.h"
 #include "net/ssl/ssl_info.h"
 #include "net/url_request/redirect_info.h"
diff --git a/components/cronet/android/cronet_url_request_context_adapter.cc b/components/cronet/android/cronet_url_request_context_adapter.cc
index c08058f9..38f6d87 100644
--- a/components/cronet/android/cronet_url_request_context_adapter.cc
+++ b/components/cronet/android/cronet_url_request_context_adapter.cc
@@ -54,8 +54,8 @@
 #include "net/log/net_log_util.h"
 #include "net/nqe/external_estimate_provider.h"
 #include "net/nqe/network_quality_estimator_params.h"
-#include "net/proxy/proxy_config_service_android.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/core/quic_versions.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/url_request/url_request_context.h"
diff --git a/components/cronet/cronet_url_request.cc b/components/cronet/cronet_url_request.cc
index 395c977b..07ada11 100644
--- a/components/cronet/cronet_url_request.cc
+++ b/components/cronet/cronet_url_request.cc
@@ -15,12 +15,12 @@
 #include "net/base/load_flags.h"
 #include "net/base/load_states.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/cert/cert_status_flags.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/quic/core/quic_packets.h"
 #include "net/ssl/ssl_info.h"
 #include "net/url_request/redirect_info.h"
diff --git a/components/cronet/cronet_url_request_context.cc b/components/cronet/cronet_url_request_context.cc
index cd11ad6..6c89568 100644
--- a/components/cronet/cronet_url_request_context.cc
+++ b/components/cronet/cronet_url_request_context.cc
@@ -49,7 +49,7 @@
 #include "net/log/net_log_util.h"
 #include "net/nqe/external_estimate_provider.h"
 #include "net/nqe/network_quality_estimator_params.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/core/quic_versions.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/url_request/url_request_context.h"
diff --git a/components/cronet/ios/cronet_environment.mm b/components/cronet/ios/cronet_environment.mm
index 4573e5ee..922a0bb 100644
--- a/components/cronet/ios/cronet_environment.mm
+++ b/components/cronet/ios/cronet_environment.mm
@@ -43,7 +43,7 @@
 #include "net/log/net_log.h"
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_util.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/core/quic_versions.h"
 #include "net/socket/ssl_client_socket.h"
 #include "net/ssl/channel_id_service.h"
diff --git a/components/cronet/stale_host_resolver_unittest.cc b/components/cronet/stale_host_resolver_unittest.cc
index c2b3b98..e1c8be4 100644
--- a/components/cronet/stale_host_resolver_unittest.cc
+++ b/components/cronet/stale_host_resolver_unittest.cc
@@ -26,8 +26,8 @@
 #include "net/http/http_network_session.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/cronet/url_request_context_config_unittest.cc b/components/cronet/url_request_context_config_unittest.cc
index 20f938c..85154cd 100644
--- a/components/cronet/url_request_context_config_unittest.cc
+++ b/components/cronet/url_request_context_config_unittest.cc
@@ -12,8 +12,8 @@
 #include "net/http/http_network_session.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc
index a552b05..4c3f2c4 100644
--- a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc
+++ b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.cc
@@ -44,6 +44,7 @@
 const int kGattCharacteristicsTimeoutSeconds = 10;
 const int kNotifySessionTimeoutSeconds = 5;
 const int kConnectionResponseTimeoutSeconds = 2;
+const int kSendingMessageTimeoutSeconds = 5;
 
 }  // namespace
 
@@ -100,6 +101,8 @@
       return base::TimeDelta::FromSeconds(kGattCharacteristicsTimeoutSeconds);
     case SubStatus::WAITING_NOTIFY_SESSION:
       return base::TimeDelta::FromSeconds(kNotifySessionTimeoutSeconds);
+    case SubStatus::CONNECTED_AND_SENDING_MESSAGE:
+      return base::TimeDelta::FromSeconds(kSendingMessageTimeoutSeconds);
     default:
       // Max signifies that there should be no timeout.
       return base::TimeDelta::Max();
@@ -126,8 +129,10 @@
       return "[notify session is ready]";
     case SubStatus::WAITING_CONNECTION_RESPONSE:
       return "[waiting for \"connection response\" uWeave packet]";
-    case SubStatus::CONNECTED:
-      return "[connected]";
+    case SubStatus::CONNECTED_AND_IDLE:
+      return "[connected and idle]";
+    case SubStatus::CONNECTED_AND_SENDING_MESSAGE:
+      return "[connected and sending message]";
     default:
       return "[invalid state]";
   }
@@ -227,7 +232,7 @@
 }
 
 void BluetoothLowEnergyWeaveClientConnection::Disconnect() {
-  if (sub_status_ == SubStatus::CONNECTED) {
+  if (IsConnected()) {
     PA_LOG(INFO) << "Disconnection requested; sending \"connection close\" "
                  << "uWeave packet to " << GetDeviceInfoLogString() << ".";
 
@@ -292,25 +297,31 @@
   }
 
   // Sets the status of base class Connection.
-  if (new_sub_status == SubStatus::CONNECTED)
-    SetStatus(Status::CONNECTED);
-  else if (new_sub_status == SubStatus::DISCONNECTED)
-    SetStatus(Status::DISCONNECTED);
-  else
-    SetStatus(Status::IN_PROGRESS);
+  switch (new_sub_status) {
+    case SubStatus::CONNECTED_AND_IDLE:
+    case SubStatus::CONNECTED_AND_SENDING_MESSAGE:
+      SetStatus(Status::CONNECTED);
+      break;
+    case SubStatus::DISCONNECTED:
+      SetStatus(Status::DISCONNECTED);
+      break;
+    default:
+      SetStatus(Status::IN_PROGRESS);
+  }
 }
 
 void BluetoothLowEnergyWeaveClientConnection::OnTimeoutForSubStatus(
-    SubStatus status) {
-  // Ensure that |sub_status| is still the active status.
-  DCHECK(status == sub_status());
+    SubStatus timed_out_sub_status) {
+  // Ensure that |timed_out_sub_status| is still the active status.
+  DCHECK(timed_out_sub_status == sub_status());
 
   PA_LOG(ERROR) << "Timed out waiting during SubStatus "
-                << SubStatusToString(status) << ". Destroying connection.";
+                << SubStatusToString(timed_out_sub_status) << ". "
+                << "Destroying connection.";
 
   BleWeaveConnectionResult result =
       BleWeaveConnectionResult::BLE_WEAVE_CONNECTION_RESULT_MAX;
-  switch (status) {
+  switch (timed_out_sub_status) {
     case SubStatus::WAITING_CONNECTION_LATENCY:
       result = BleWeaveConnectionResult::
           BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_SETTING_CONNECTION_LATENCY;
@@ -331,9 +342,14 @@
       result = BleWeaveConnectionResult::
           BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_WAITING_FOR_CONNECTION_RESPONSE;
       break;
+    case SubStatus::CONNECTED_AND_SENDING_MESSAGE:
+      result = BleWeaveConnectionResult::
+          BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_WAITING_FOR_MESSAGE_TO_SEND;
+      break;
     default:
       NOTREACHED();
   }
+
   DestroyConnection(result);
 }
 
@@ -350,7 +366,7 @@
 
 void BluetoothLowEnergyWeaveClientConnection::SendMessageImpl(
     std::unique_ptr<WireMessage> message) {
-  DCHECK(sub_status() == SubStatus::CONNECTED);
+  DCHECK(IsConnected());
 
   // Split |message| up into multiple packets which can be sent as one uWeave
   // message.
@@ -421,7 +437,7 @@
     return;
 
   if (sub_status() != SubStatus::WAITING_CONNECTION_RESPONSE &&
-      sub_status() != SubStatus::CONNECTED) {
+      !IsConnected()) {
     PA_LOG(WARNING) << "Received message from " << GetDeviceInfoLogString()
                     << ", but was not expecting one. sub_status() = "
                     << sub_status();
@@ -459,7 +475,6 @@
 
 void BluetoothLowEnergyWeaveClientConnection::CompleteConnection() {
   DCHECK(sub_status() == SubStatus::WAITING_CONNECTION_RESPONSE);
-  SetSubStatus(SubStatus::CONNECTED);
 
   uint16_t max_packet_size = packet_receiver_->GetMaxPacketSize();
   PA_LOG(INFO) << "Received uWeave \"connection response\" packet; connection "
@@ -470,6 +485,8 @@
   // |packet_receiver_| should have received a max packet size from the GATT
   // server.
   packet_generator_->SetMaxPacketSize(max_packet_size);
+
+  SetSubStatus(SubStatus::CONNECTED_AND_IDLE);
 }
 
 void BluetoothLowEnergyWeaveClientConnection::OnSetConnectionLatencyError() {
@@ -664,6 +681,13 @@
     return;
   }
 
+  // If the current status is CONNECTED_AND_IDLE, transition to
+  // CONNECTED_AND_SENDING_MESSAGE. This function also runs when the status is
+  // WAITING_CONNECTION_RESPONSE; in that case, the status should remain
+  // unchanged until the connection response has been received.
+  if (sub_status() == SubStatus::CONNECTED_AND_IDLE)
+    SetSubStatus(SubStatus::CONNECTED_AND_SENDING_MESSAGE);
+
   characteristic->WriteRemoteCharacteristic(
       pending_write_request_->value,
       base::Bind(&BluetoothLowEnergyWeaveClientConnection::
@@ -676,7 +700,9 @@
 
 void BluetoothLowEnergyWeaveClientConnection::OnRemoteCharacteristicWritten() {
   DCHECK(sub_status() == SubStatus::WAITING_CONNECTION_RESPONSE ||
-         sub_status() == SubStatus::CONNECTED);
+         sub_status() == SubStatus::CONNECTED_AND_SENDING_MESSAGE);
+  if (sub_status() == SubStatus::CONNECTED_AND_SENDING_MESSAGE)
+    SetSubStatus(SubStatus::CONNECTED_AND_IDLE);
 
   RecordGattWriteCharacteristicResult(
       GattServiceOperationResult::GATT_SERVICE_OPERATION_RESULT_SUCCESS);
@@ -735,7 +761,9 @@
 void BluetoothLowEnergyWeaveClientConnection::OnWriteRemoteCharacteristicError(
     device::BluetoothRemoteGattService::GattErrorCode error) {
   DCHECK(sub_status() == SubStatus::WAITING_CONNECTION_RESPONSE ||
-         sub_status() == SubStatus::CONNECTED);
+         sub_status() == SubStatus::CONNECTED_AND_SENDING_MESSAGE);
+  if (sub_status() == SubStatus::CONNECTED_AND_SENDING_MESSAGE)
+    SetSubStatus(SubStatus::CONNECTED_AND_IDLE);
 
   RecordGattWriteCharacteristicResult(
       BluetoothRemoteDeviceGattServiceGattErrorCodeToGattServiceOperationResult(
@@ -795,7 +823,7 @@
 void BluetoothLowEnergyWeaveClientConnection::
     ClearQueueAndSendConnectionClose() {
   DCHECK(sub_status() == SubStatus::WAITING_CONNECTION_RESPONSE ||
-         sub_status() == SubStatus::CONNECTED);
+         IsConnected());
 
   // The connection is now in an invalid state. Clear queued writes.
   while (!queued_write_requests_.empty())
diff --git a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.h b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.h
index b1e43f1b..75d76e3 100644
--- a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.h
+++ b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection.h
@@ -84,7 +84,8 @@
     WAITING_NOTIFY_SESSION,
     NOTIFY_SESSION_READY,
     WAITING_CONNECTION_RESPONSE,
-    CONNECTED,
+    CONNECTED_AND_IDLE,
+    CONNECTED_AND_SENDING_MESSAGE,
   };
 
   // Constructs the Connection object; a subsequent call to Connect() is
@@ -120,6 +121,7 @@
     BLE_WEAVE_CONNECTION_RESULT_ERROR_WRITE_QUEUE_OUT_OF_SYNC = 12,
     BLE_WEAVE_CONNECTION_RESULT_ERROR_DEVICE_LOST = 13,
     BLE_WEAVE_CONNECTION_RESULT_ERROR_CONNECTION_DROPPED = 14,
+    BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_WAITING_FOR_MESSAGE_TO_SEND = 15,
     BLE_WEAVE_CONNECTION_RESULT_MAX
   };
 
@@ -225,7 +227,8 @@
                            Timeout_NotifySession);
   FRIEND_TEST_ALL_PREFIXES(CryptAuthBluetoothLowEnergyWeaveClientConnectionTest,
                            Timeout_ConnectionResponse);
-
+  FRIEND_TEST_ALL_PREFIXES(CryptAuthBluetoothLowEnergyWeaveClientConnectionTest,
+                           Timeout_SendingMessage);
   enum WriteRequestType {
     REGULAR,
     MESSAGE_COMPLETE,
diff --git a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc
index 75a46dc..b6700096 100644
--- a/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc
+++ b/components/cryptauth/ble/bluetooth_low_energy_weave_client_connection_unittest.cc
@@ -546,14 +546,14 @@
       NOTREACHED();
     }
 
-    EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED);
+    EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_IDLE);
     EXPECT_EQ(connection->status(), Connection::CONNECTED);
   }
 
   // Transitions |connection| to a DISCONNECTED state regardless of its initial
   // state.
   void Disconnect(TestBluetoothLowEnergyWeaveClientConnection* connection) {
-    if (connection->sub_status() == SubStatus::CONNECTED) {
+    if (connection->IsConnected()) {
       EXPECT_CALL(*tx_characteristic_, WriteRemoteCharacteristic(_, _, _))
           .WillOnce(
               DoAll(SaveArg<0>(&last_value_written_on_tx_characteristic_),
@@ -563,7 +563,7 @@
 
     connection->Disconnect();
 
-    if (connection->sub_status() == SubStatus::CONNECTED) {
+    if (connection->IsConnected()) {
       connection->DestroyConnection(
           BluetoothLowEnergyWeaveClientConnection::BleWeaveConnectionResult::
               BLE_WEAVE_CONNECTION_RESULT_CLOSED_NORMALLY);
@@ -733,7 +733,7 @@
   std::unique_ptr<TestBluetoothLowEnergyWeaveClientConnection> connection(
       CreateConnection(true /* should_set_low_connection_latency */));
   InitializeConnection(connection.get(), kDefaultMaxPacketSize);
-  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED);
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_IDLE);
   Disconnect(connection.get());
 
   VerifyBleWeaveConnectionResult(
@@ -746,7 +746,7 @@
   std::unique_ptr<TestBluetoothLowEnergyWeaveClientConnection> connection(
       CreateConnection(false /* should_set_low_connection_latency */));
   InitializeConnection(connection.get(), kDefaultMaxPacketSize);
-  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED);
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_IDLE);
   Disconnect(connection.get());
 
   VerifyBleWeaveConnectionResult(
@@ -1244,7 +1244,7 @@
       CreateConnection(true /* should_set_low_connection_latency */));
 
   InitializeConnection(connection.get(), kDefaultMaxPacketSize);
-  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED);
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_IDLE);
 
   EXPECT_CALL(*tx_characteristic_, WriteRemoteCharacteristic(_, _, _))
       .WillOnce(
@@ -1252,7 +1252,7 @@
                 SaveArg<1>(&write_remote_characteristic_success_callback_),
                 SaveArg<2>(&write_remote_characteristic_error_callback_)));
   connection->Disconnect();
-  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED);
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_SENDING_MESSAGE);
 
   for (int i = 0; i < kMaxNumberOfTries; i++) {
     EXPECT_EQ(last_value_written_on_tx_characteristic_,
@@ -1508,6 +1508,30 @@
           BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_WAITING_FOR_CONNECTION_RESPONSE);
 }
 
+TEST_F(CryptAuthBluetoothLowEnergyWeaveClientConnectionTest,
+       Timeout_SendingMessage) {
+  std::unique_ptr<TestBluetoothLowEnergyWeaveClientConnection> connection(
+      CreateConnection(true /* should_set_low_connection_latency */));
+
+  InitializeConnection(connection.get(), kDefaultMaxPacketSize);
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_IDLE);
+  EXPECT_CALL(*tx_characteristic_, WriteRemoteCharacteristic(_, _, _));
+
+  connection->SendMessage(
+      std::make_unique<FakeWireMessage>(kSmallMessage, kTestFeature));
+  EXPECT_EQ(connection->sub_status(), SubStatus::CONNECTED_AND_SENDING_MESSAGE);
+
+  // Simulate a timeout.
+  test_timer_->Fire();
+
+  EXPECT_EQ(connection->sub_status(), SubStatus::DISCONNECTED);
+  EXPECT_EQ(connection->status(), Connection::DISCONNECTED);
+
+  VerifyBleWeaveConnectionResult(
+      BluetoothLowEnergyWeaveClientConnection::BleWeaveConnectionResult::
+          BLE_WEAVE_CONNECTION_RESULT_TIMEOUT_WAITING_FOR_MESSAGE_TO_SEND);
+}
+
 }  // namespace weave
 
 }  // namespace cryptauth
diff --git a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
index 1f1af66..ed6203c 100644
--- a/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
+++ b/components/data_reduction_proxy/content/browser/content_lofi_decider_unittest.cc
@@ -32,8 +32,8 @@
 #include "net/base/load_flags.h"
 #include "net/base/network_delegate_impl.h"
 #include "net/http/http_request_headers.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "net/socket/socket_test_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
index 2dddf208..0a51d7e8 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol.cc
@@ -17,14 +17,14 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
 #include "net/base/load_flags.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_list.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_list.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_status.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol_unittest.cc
index 8d44693..2f8e414 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_protocol_unittest.cc
@@ -32,11 +32,11 @@
 #include "net/base/network_change_notifier.h"
 #include "net/base/network_delegate.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_transaction_test_util.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_response.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc
index 070c52ae..cdccc778 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats.cc
@@ -13,10 +13,10 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_util.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc
index 7211148..2bd7a91 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_bypass_stats_unittest.cc
@@ -35,11 +35,11 @@
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
index 7d4257c..527d9cd8 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.cc
@@ -39,9 +39,9 @@
 #include "net/base/load_flags.h"
 #include "net/base/network_change_notifier.h"
 #include "net/base/network_interfaces.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log_source_type.h"
 #include "net/nqe/effective_connection_type.h"
-#include "net/proxy/proxy_server.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_fetcher_delegate.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
index 327562e..f9d6fd2 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h
@@ -25,8 +25,8 @@
 #include "components/previews/core/previews_experiments.h"
 #include "net/base/network_change_notifier.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 namespace base {
 class SingleThreadTaskRunner;
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
index 55ffcb8..a8f07c65 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client.cc
@@ -37,12 +37,12 @@
 #include "net/base/load_flags.h"
 #include "net/base/load_timing_info.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_network_session.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/log/net_log_source_type.h"
-#include "net/proxy/proxy_server.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request_status.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
index e486763..a6df388 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_client_unittest.cc
@@ -32,9 +32,9 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
 #include "net/base/network_change_notifier.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request_context_storage.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
index 3e40a19..6e1758a 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_unittest.cc
@@ -47,12 +47,12 @@
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/base/network_change_notifier.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_status_code.h"
 #include "net/log/test_net_log.h"
 #include "net/nqe/effective_connection_type.h"
 #include "net/nqe/external_estimate_provider.h"
 #include "net/nqe/network_quality_estimator_test_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/test_url_fetcher_factory.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
index 105d17d..2164c0f 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.cc
@@ -14,7 +14,7 @@
 #include "components/data_reduction_proxy/core/browser/network_properties_manager.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_util.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace data_reduction_proxy {
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h
index 8ddf7f7..3a8ea5d 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator.h
@@ -12,7 +12,7 @@
 #include "base/macros.h"
 #include "base/threading/thread_checker.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace net {
 class NetLog;
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator_unittest.cc
index 836f478f..bbd82e9 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_configurator_unittest.cc
@@ -17,7 +17,7 @@
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
 #include "components/prefs/pref_registry_simple.h"
 #include "components/prefs/testing_pref_service.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
index 98eac81f..122b1d9 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.cc
@@ -20,11 +20,11 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_util.h"
 #include "net/base/host_port_pair.h"
+#include "net/base/proxy_server.h"
 #include "net/base/url_util.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 namespace data_reduction_proxy {
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
index eb84ef4f..ebc5e576 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate.h
@@ -11,7 +11,7 @@
 #include "base/threading/thread_checker.h"
 #include "net/base/network_change_notifier.h"
 #include "net/base/proxy_delegate.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
index 2d63b09..83101f0 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_delegate_unittest.cc
@@ -43,11 +43,11 @@
 #include "net/base/net_errors.h"
 #include "net/base/network_change_notifier.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "net/socket/socket_test_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor_unittest.cc
index b1fdde2..d5b3cd4d 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_interceptor_unittest.cc
@@ -27,10 +27,10 @@
 #include "components/prefs/pref_service.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/http/http_response_headers.h"
 #include "net/log/test_net_log.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
index e758e893..6c8ca425 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
@@ -26,8 +26,8 @@
 #include "net/http/http_network_session.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.cc
index beff82d85..edf466af 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.cc
@@ -7,11 +7,11 @@
 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h"
 #include "net/base/load_flags.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_response_info.h"
 #include "net/http/http_status_code.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
 #include "url/url_constants.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics_unittest.cc
index 5860fde..dc71586 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics_unittest.cc
@@ -16,10 +16,10 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params_test_utils.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
 #include "net/base/load_flags.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log_source_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values.h
index a749d00..145db2b 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values.h
@@ -10,7 +10,7 @@
 #include "base/macros.h"
 #include "base/threading/thread_checker.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_config_values.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "url/gurl.h"
 
 namespace data_reduction_proxy {
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values_unittest.cc
index c9b6229..bfea492 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_mutable_config_values_unittest.cc
@@ -12,7 +12,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace data_reduction_proxy {
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
index 4e11978..fd6666d 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.cc
@@ -27,13 +27,13 @@
 #include "components/data_reduction_proxy/core/common/lofi_decider.h"
 #include "net/base/load_flags.h"
 #include "net/base/mime_util.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
 #include "net/nqe/effective_connection_type.h"
 #include "net/nqe/network_quality_estimator.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_status.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h
index 68342475..cbe18a6 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate.h
@@ -17,7 +17,7 @@
 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_metrics.h"
 #include "net/base/completion_callback.h"
 #include "net/base/layered_network_delegate.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 class GURL;
 
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
index 4724c138..46b269d7 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_network_delegate_unittest.cc
@@ -50,16 +50,16 @@
 #include "net/base/host_port_pair.h"
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
 #include "net/http/http_util.h"
 #include "net/nqe/effective_connection_type.h"
 #include "net/nqe/network_quality_estimator_test_util.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/cert_test_util.h"
 #include "net/test/gtest_util.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
index da23635..fc20bdc 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options.cc
@@ -29,7 +29,7 @@
 #include "crypto/random.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/load_flags.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "net/url_request/url_request.h"
 
 #if defined(USE_GOOGLE_API_KEYS_FOR_AUTH_KEY)
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
index 1a4883c..dcf0efb 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_request_options_unittest.cc
@@ -25,7 +25,7 @@
 #include "net/base/auth.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/load_flags.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
index 5b072d5..6b10e58 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_unittest.cc
@@ -30,7 +30,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_pref_names.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/prefs/pref_registry_simple.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
index 7f8d401..f3a2beb 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.cc
@@ -36,9 +36,9 @@
 #include "components/prefs/testing_pref_service.h"
 #include "net/base/network_delegate_impl.h"
 #include "net/nqe/network_quality_estimator_test_util.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "net/socket/socket_test_util.h"
 #include "net/url_request/url_request_context_storage.h"
 #include "net/url_request/url_request_intercepting_job_factory.h"
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
index f586606..5a63e583 100644
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
+++ b/components/data_reduction_proxy/core/browser/data_reduction_proxy_test_utils.h
@@ -28,8 +28,8 @@
 #include "components/data_reduction_proxy/core/browser/data_reduction_proxy_settings_test_utils.h"
 #include "components/data_reduction_proxy/core/browser/data_store.h"
 #include "net/base/backoff_entry.h"
+#include "net/base/proxy_server.h"
 #include "net/log/test_net_log.h"
-#include "net/proxy/proxy_server.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
diff --git a/components/data_reduction_proxy/core/browser/warmup_url_fetcher_unittest.cc b/components/data_reduction_proxy/core/browser/warmup_url_fetcher_unittest.cc
index ec8d654..4785f0f9 100644
--- a/components/data_reduction_proxy/core/browser/warmup_url_fetcher_unittest.cc
+++ b/components/data_reduction_proxy/core/browser/warmup_url_fetcher_unittest.cc
@@ -18,9 +18,9 @@
 #include "base/threading/platform_thread.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_util.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_status_code.h"
 #include "net/nqe/network_quality_estimator_test_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/socket_test_util.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request_context_getter.h"
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.cc
index f915a6b..08fe674 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_event_creator.cc
@@ -11,11 +11,11 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/time/time.h"
 #include "base/values.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_entry.h"
 #include "net/log/net_log_source.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 
 namespace data_reduction_proxy {
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_event_store_unittest.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_event_store_unittest.cc
index c5c8178..51d95b9 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_event_store_unittest.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_event_store_unittest.cc
@@ -27,6 +27,7 @@
 #include "components/prefs/testing_pref_service.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_status_code.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_event_type.h"
@@ -34,7 +35,6 @@
 #include "net/log/net_log_with_source.h"
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
-#include "net/proxy/proxy_server.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace data_reduction_proxy {
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h
index 00c2d36..29865459 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_headers.h
@@ -13,7 +13,7 @@
 #include "base/time/time.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 class GURL;
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_headers_unittest.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_headers_unittest.cc
index b3d602f..28d104f 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_headers_unittest.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_headers_unittest.cc
@@ -19,7 +19,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_headers_test_utils.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
index 49f2027b..ee8da1e 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params.cc
@@ -18,7 +18,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_server.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/variations/variations_associated_data.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "url/url_constants.h"
 
 #if defined(OS_ANDROID)
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
index 187a7f6..3c67824 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_params_unittest.cc
@@ -20,7 +20,7 @@
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_switches.h"
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
 #include "components/variations/variations_associated_data.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_server.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_server.h
index 7712db2d..629b61c3 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_server.h
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_server.h
@@ -9,7 +9,7 @@
 
 #include "components/data_reduction_proxy/core/common/resource_type_provider.h"
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 
 namespace data_reduction_proxy {
 
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_util.cc b/components/data_reduction_proxy/core/common/data_reduction_proxy_util.cc
index 1dee69f..f1fd1409 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_util.cc
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_util.cc
@@ -17,8 +17,8 @@
 #include "net/http/http_response_headers.h"
 #include "net/http/http_status_code.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/url_request/url_request.h"
 
 #if defined(USE_GOOGLE_API_KEYS)
diff --git a/components/data_reduction_proxy/core/common/data_reduction_proxy_util.h b/components/data_reduction_proxy/core/common/data_reduction_proxy_util.h
index a40f358..c446fe0 100644
--- a/components/data_reduction_proxy/core/common/data_reduction_proxy_util.h
+++ b/components/data_reduction_proxy/core/common/data_reduction_proxy_util.h
@@ -10,9 +10,9 @@
 
 #include "components/data_reduction_proxy/proto/client_config.pb.h"
 #include "components/data_reduction_proxy/proto/pageload_metrics.pb.h"
+#include "net/base/proxy_server.h"
 #include "net/nqe/effective_connection_type.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java b/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
index 98229f1a..1478be1 100644
--- a/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
+++ b/components/dom_distiller/core/android/java/src/org/chromium/components/dom_distiller/core/DomDistillerUrlUtils.java
@@ -53,17 +53,6 @@
         return nativeIsDistilledPage(url);
     }
 
-    public static boolean isUrlDistillable(String url) {
-        if (TextUtils.isEmpty(url)) return false;
-        return nativeIsUrlDistillable(url);
-    }
-
-    // TODO(yfriedman): Change method so that it takes in a WebContents and a
-    // callback.
-    public static String getIsDistillableJs() {
-        return nativeGetIsDistillableJs();
-    }
-
     public static String getValueForKeyInUrl(String url, String key) {
         assert key != null;
         if (TextUtils.isEmpty(url)) return null;
@@ -71,9 +60,7 @@
     }
 
     private static native String nativeGetDistillerViewUrlFromUrl(String scheme, String url);
-    private static native String nativeGetIsDistillableJs();
     private static native String nativeGetOriginalUrlFromDistillerUrl(String viewerUrl);
     private static native boolean nativeIsDistilledPage(String url);
-    private static native boolean nativeIsUrlDistillable(String url);
     private static native String nativeGetValueForKeyInUrl(String url, String key);
 }
diff --git a/components/dom_distiller/core/url_utils.cc b/components/dom_distiller/core/url_utils.cc
index bb4ba5a..c34ec2932 100644
--- a/components/dom_distiller/core/url_utils.cc
+++ b/components/dom_distiller/core/url_utils.cc
@@ -92,11 +92,6 @@
   return url.is_valid() && url.scheme() == kDomDistillerScheme;
 }
 
-base::StringPiece GetIsDistillableJs() {
-  return ui::ResourceBundle::GetSharedInstance().GetRawDataResource(
-      IDR_IS_DISTILLABLE_JS);
-}
-
 }  // namespace url_utils
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/url_utils.h b/components/dom_distiller/core/url_utils.h
index 4255a5b6..d0beeb8 100644
--- a/components/dom_distiller/core/url_utils.h
+++ b/components/dom_distiller/core/url_utils.h
@@ -48,10 +48,6 @@
 // Returns whether the given |url| is for a distilled page.
 bool IsDistilledPage(const GURL& url);
 
-// Returns a JavaScript snippet that returns whether or not a page should be
-// used with DomDistillerService and can be executed in a live page.
-base::StringPiece GetIsDistillableJs();
-
 }  // namespace url_utils
 
 }  // namespace dom_distiller
diff --git a/components/dom_distiller/core/url_utils_android.cc b/components/dom_distiller/core/url_utils_android.cc
index db431e3..990b2cad 100644
--- a/components/dom_distiller/core/url_utils_android.cc
+++ b/components/dom_distiller/core/url_utils_android.cc
@@ -63,21 +63,6 @@
   return dom_distiller::url_utils::IsDistilledPage(url);
 }
 
-jboolean JNI_DomDistillerUrlUtils_IsUrlDistillable(
-    JNIEnv* env,
-    const JavaParamRef<jclass>& clazz,
-    const JavaParamRef<jstring>& j_url) {
-  GURL url(base::android::ConvertJavaStringToUTF8(env, j_url));
-  return dom_distiller::url_utils::IsUrlDistillable(url);
-}
-
-ScopedJavaLocalRef<jstring> JNI_DomDistillerUrlUtils_GetIsDistillableJs(
-    JNIEnv* env,
-    const JavaParamRef<jclass>& clazz) {
-  return base::android::ConvertUTF8ToJavaString(
-      env, dom_distiller::url_utils::GetIsDistillableJs());
-}
-
 ScopedJavaLocalRef<jstring> JNI_DomDistillerUrlUtils_GetValueForKeyInUrl(
     JNIEnv* env,
     const JavaParamRef<jclass>& clazz,
diff --git a/components/domain_reliability/quic_error_mapping.cc b/components/domain_reliability/quic_error_mapping.cc
index f322b47..f7d54f6 100644
--- a/components/domain_reliability/quic_error_mapping.cc
+++ b/components/domain_reliability/quic_error_mapping.cc
@@ -232,6 +232,13 @@
     // Network changed, but connection had one or more non-migratable streams.
     {net::QUIC_CONNECTION_MIGRATION_NON_MIGRATABLE_STREAM,
      "quic.connection_migration_non_migratable_stream"},
+    // Network changed, but connection migration was disabled by config.
+    {net::QUIC_CONNECTION_MIGRATION_DISABLED_BY_CONFIG,
+     "quic.connection_migration_disabled_by_config"},
+    // Network changed, but error was encountered on the alternative network.
+    {net::QUIC_CONNECTION_MIGRATION_INTERNAL_ERROR,
+     "quic.connection_migration_internal_error"},
+
     // Stream frame overlaps with buffered data.
     {net::QUIC_OVERLAPPING_STREAM_DATA, "quic.overlapping_stream_data"},
     // Stream frames arrived too discontiguously so that stream sequencer buffer
diff --git a/components/download/internal/blob_task_proxy.cc b/components/download/internal/blob_task_proxy.cc
index b641414..2f3400e 100644
--- a/components/download/internal/blob_task_proxy.cc
+++ b/components/download/internal/blob_task_proxy.cc
@@ -6,6 +6,7 @@
 
 #include "base/guid.h"
 #include "base/task_runner_util.h"
+#include "base/threading/thread_task_runner_handle.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/blob/blob_storage_context.h"
diff --git a/components/language/content/browser/geo_language_provider_unittest.cc b/components/language/content/browser/geo_language_provider_unittest.cc
index bb73e412..8ed519b 100644
--- a/components/language/content/browser/geo_language_provider_unittest.cc
+++ b/components/language/content/browser/geo_language_provider_unittest.cc
@@ -93,7 +93,7 @@
     connector_ = service_manager::Connector::Create(&request);
     service_manager::Connector::TestApi test_api(connector_.get());
     test_api.OverrideBinderForTesting(
-        device::mojom::kServiceName,
+        service_manager::Identity(device::mojom::kServiceName),
         device::mojom::PublicIpAddressGeolocationProvider::Name_,
         base::BindRepeating(&MockIpGeoLocationProvider::Bind,
                             base::Unretained(&mock_ip_geo_location_provider_)));
diff --git a/components/ntp_snippets/content_suggestions_service.cc b/components/ntp_snippets/content_suggestions_service.cc
index 8acf41e..a88be7e 100644
--- a/components/ntp_snippets/content_suggestions_service.cc
+++ b/components/ntp_snippets/content_suggestions_service.cc
@@ -434,22 +434,6 @@
   }
 }
 
-void ContentSuggestionsService::OnChromeHomeStatusChanged(
-    bool is_chrome_home_enabled) {
-  debug_logger_->Log(
-      FROM_HERE, base::StringPrintf("Chrome Home enabled: %s",
-                                    is_chrome_home_enabled ? "true" : "false"));
-  if (is_chrome_home_enabled) {
-    // TODO(vitaliii): Make this code more general and do not hardcode specific
-    // categories.
-    DestroyCategoryAndItsProvider(
-        Category::FromKnownCategory(KnownCategories::BOOKMARKS));
-    DestroyCategoryAndItsProvider(
-        Category::FromKnownCategory(KnownCategories::DOWNLOADS));
-  }
-  // TODO(vitaliii): Recreate providers when Chrome Home is turned off.
-}
-
 bool ContentSuggestionsService::AreRemoteSuggestionsEnabled() const {
   return remote_suggestions_provider_ &&
          !remote_suggestions_provider_->IsDisabled();
diff --git a/components/ntp_snippets/content_suggestions_service.h b/components/ntp_snippets/content_suggestions_service.h
index 212298b..798f90e9 100644
--- a/components/ntp_snippets/content_suggestions_service.h
+++ b/components/ntp_snippets/content_suggestions_service.h
@@ -186,9 +186,6 @@
   // meantime).
   void ReloadSuggestions();
 
-  // Must be called when Chrome Home is turned on or off.
-  void OnChromeHomeStatusChanged(bool is_chrome_home_enabled);
-
   // Observer accessors.
   void AddObserver(Observer* observer);
   void RemoveObserver(Observer* observer);
diff --git a/components/ntp_snippets/content_suggestions_service_unittest.cc b/components/ntp_snippets/content_suggestions_service_unittest.cc
index 53cf0f6..edde2ab7 100644
--- a/components/ntp_snippets/content_suggestions_service_unittest.cc
+++ b/components/ntp_snippets/content_suggestions_service_unittest.cc
@@ -819,130 +819,4 @@
   service()->DismissCategory(category);
 }
 
-TEST_F(ContentSuggestionsServiceTest,
-       ShouldDestroyBookmarksProviderWhenChromeHomeIsEnabled) {
-  // Create and register the provider.
-  Category bookmarks_category =
-      Category::FromKnownCategory(KnownCategories::BOOKMARKS);
-  MockContentSuggestionsProvider* bookmarks_provider =
-      MakeRegisteredMockProvider(bookmarks_category);
-  bookmarks_provider->FireSuggestionsChanged(
-      bookmarks_category, CreateSuggestions(bookmarks_category, {1}));
-  bookmarks_provider->FireCategoryStatusChangedWithCurrentStatus(
-      bookmarks_category);
-  ASSERT_THAT(service()->GetCategories(),
-              UnorderedElementsAre(bookmarks_category));
-  ASSERT_THAT(service()->GetCategoryStatus(bookmarks_category),
-              Eq(CategoryStatus::AVAILABLE));
-  ASSERT_THAT(service()->GetSuggestionsForCategory(bookmarks_category),
-              SizeIs(1));
-
-  // Set destructor callback to expect the destruction.
-  base::MockCallback<MockContentSuggestionsProvider::DestructorCallback>
-      mock_destructor_callback;
-  bookmarks_provider->SetDestructorCallback(mock_destructor_callback.Get());
-
-  MockServiceObserver observer;
-  service()->AddObserver(&observer);
-
-  // The provider must be destructed and the category status must change.
-  EXPECT_CALL(mock_destructor_callback, Run());
-  EXPECT_CALL(observer, OnCategoryStatusChanged(bookmarks_category,
-                                                CategoryStatus::NOT_PROVIDED));
-  service()->OnChromeHomeStatusChanged(/*is_chrome_home_enabled=*/true);
-
-  EXPECT_THAT(service()->GetCategories(), IsEmpty());
-  EXPECT_THAT(service()->GetCategoryStatus(bookmarks_category),
-              Eq(CategoryStatus::NOT_PROVIDED));
-  EXPECT_THAT(service()->GetSuggestionsForCategory(bookmarks_category),
-              IsEmpty());
-
-  service()->RemoveObserver(&observer);
-}
-
-TEST_F(ContentSuggestionsServiceTest,
-       ShouldDestroyDownloadsProviderWhenChromeHomeIsEnabled) {
-  // Create and register the provider.
-  Category downloads_category =
-      Category::FromKnownCategory(KnownCategories::DOWNLOADS);
-  MockContentSuggestionsProvider* downloads_provider =
-      MakeRegisteredMockProvider(downloads_category);
-  downloads_provider->FireSuggestionsChanged(
-      downloads_category, CreateSuggestions(downloads_category, {1}));
-  downloads_provider->FireCategoryStatusChangedWithCurrentStatus(
-      downloads_category);
-  ASSERT_THAT(service()->GetCategories(),
-              UnorderedElementsAre(downloads_category));
-  ASSERT_THAT(service()->GetCategoryStatus(downloads_category),
-              Eq(CategoryStatus::AVAILABLE));
-  ASSERT_THAT(service()->GetSuggestionsForCategory(downloads_category),
-              SizeIs(1));
-
-  // Set destructor callback to expect the destruction.
-  base::MockCallback<MockContentSuggestionsProvider::DestructorCallback>
-      mock_destructor_callback;
-  downloads_provider->SetDestructorCallback(mock_destructor_callback.Get());
-
-  MockServiceObserver observer;
-  service()->AddObserver(&observer);
-
-  // The provider must be destructed and the category status must change.
-  EXPECT_CALL(mock_destructor_callback, Run());
-  EXPECT_CALL(observer, OnCategoryStatusChanged(downloads_category,
-                                                CategoryStatus::NOT_PROVIDED));
-  service()->OnChromeHomeStatusChanged(/*is_chrome_home_enabled=*/true);
-
-  EXPECT_THAT(service()->GetCategories(), IsEmpty());
-  EXPECT_THAT(service()->GetCategoryStatus(downloads_category),
-              Eq(CategoryStatus::NOT_PROVIDED));
-  EXPECT_THAT(service()->GetSuggestionsForCategory(downloads_category),
-              IsEmpty());
-
-  service()->RemoveObserver(&observer);
-}
-
-TEST_F(ContentSuggestionsServiceTest,
-       ShouldNotDestroyArticlesProviderWhenChromeHomeIsEnabled) {
-  // Create and register the provider.
-  Category articles_category =
-      Category::FromKnownCategory(KnownCategories::ARTICLES);
-  MockContentSuggestionsProvider* articles_provider =
-      MakeRegisteredMockProvider(articles_category);
-  articles_provider->FireSuggestionsChanged(
-      articles_category, CreateSuggestions(articles_category, {1}));
-  articles_provider->FireCategoryStatusChangedWithCurrentStatus(
-      articles_category);
-  ASSERT_THAT(service()->GetCategories(),
-              UnorderedElementsAre(articles_category));
-  ASSERT_THAT(service()->GetCategoryStatus(articles_category),
-              Eq(CategoryStatus::AVAILABLE));
-  ASSERT_THAT(service()->GetSuggestionsForCategory(articles_category),
-              SizeIs(1));
-
-  // Set destructor callback to ensure no destruction.
-  base::MockCallback<MockContentSuggestionsProvider::DestructorCallback>
-      mock_destructor_callback;
-  articles_provider->SetDestructorCallback(mock_destructor_callback.Get());
-
-  MockServiceObserver observer;
-  service()->AddObserver(&observer);
-
-  // The provider must not be destructed and the category status must not
-  // change, because Articles are enabled in Chrome Home.
-  EXPECT_CALL(mock_destructor_callback, Run()).Times(0);
-  EXPECT_CALL(observer, OnCategoryStatusChanged(articles_category, _)).Times(0);
-  service()->OnChromeHomeStatusChanged(/*is_chrome_home_enabled=*/true);
-
-  EXPECT_THAT(service()->GetCategories(),
-              UnorderedElementsAre(articles_category));
-  EXPECT_THAT(service()->GetCategoryStatus(articles_category),
-              Eq(CategoryStatus::AVAILABLE));
-  EXPECT_THAT(service()->GetSuggestionsForCategory(articles_category),
-              SizeIs(1));
-
-  articles_provider->SetDestructorCallback(
-      MockContentSuggestionsProvider::DestructorCallback());
-  service()->RemoveObserver(&observer);
-}
-
 }  // namespace ntp_snippets
diff --git a/components/offline_pages/core/client_policy_controller.cc b/components/offline_pages/core/client_policy_controller.cc
index 4f7b57ba..97f9ce8 100644
--- a/components/offline_pages/core/client_policy_controller.cc
+++ b/components/offline_pages/core/client_policy_controller.cc
@@ -76,6 +76,7 @@
                                      kUnlimitedPages)
           .SetIsRemovedOnCacheReset(false)
           .SetIsSupportedByDownload(true)
+          .SetShouldAllowDownload(true)
           .Build()));
 
   // Fallback policy.
@@ -214,6 +215,11 @@
   return GetPolicy(name_space).feature_policy.is_suggested;
 }
 
+bool ClientPolicyController::ShouldAllowDownloads(
+    const std::string& name_space) const {
+  return GetPolicy(name_space).feature_policy.should_allow_download;
+}
+
 void ClientPolicyController::AddPolicyForTest(
     const std::string& name_space,
     const OfflinePageClientPolicyBuilder& builder) {
diff --git a/components/offline_pages/core/client_policy_controller.h b/components/offline_pages/core/client_policy_controller.h
index a3d969a..4d3f34c 100644
--- a/components/offline_pages/core/client_policy_controller.h
+++ b/components/offline_pages/core/client_policy_controller.h
@@ -65,6 +65,10 @@
   // are downloaded on behalf of user.
   bool IsSuggested(const std::string& name_space) const;
 
+  // Returns whether we should allow pages for |name_space| to trigger
+  // downloads.
+  bool ShouldAllowDownloads(const std::string& name_space) const;
+
   void AddPolicyForTest(const std::string& name_space,
                         const OfflinePageClientPolicyBuilder& builder);
 
diff --git a/components/offline_pages/core/model/offline_page_model_taskified.cc b/components/offline_pages/core/model/offline_page_model_taskified.cc
index f7510a2..71acda3 100644
--- a/components/offline_pages/core/model/offline_page_model_taskified.cc
+++ b/components/offline_pages/core/model/offline_page_model_taskified.cc
@@ -480,6 +480,7 @@
         base::Bind(&OfflinePageModelTaskified::PostClearCachedPagesTask,
                    weak_ptr_factory_.GetWeakPtr(), false),
         kInitializingTaskDelay);
+    return;
   }
 
   // If not enough time has passed, do not post the task.
diff --git a/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc b/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
index c60f7927..dde297a 100644
--- a/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
+++ b/components/offline_pages/core/model/offline_page_model_taskified_unittest.cc
@@ -1301,10 +1301,12 @@
   BuildModel();
 
   PumpLoop();
-  EXPECT_EQ(task_runner()->Now(), last_clear_page_time());
+  // The clear storage task will be delayed on initialization.
+  EXPECT_EQ(base::Time(), last_clear_page_time());
 
-  // Only 5 minutes passed and the last clear page time should not be changed
-  // since the clear page will not be triggered.
+  // 5 minutes passed and the last clear page time should be
+  // |now - 5mins + 30seconds| since the clear page will be triggered with a 30
+  // seconds delay. The delay is a hard-coded value in the model.
   const base::TimeDelta short_delta = base::TimeDelta::FromMinutes(5);
   task_runner()->FastForwardBy(short_delta);
   auto archiver = BuildArchiver(kTestUrl, ArchiverResult::SUCCESSFULLY_CREATED);
@@ -1312,7 +1314,9 @@
       kTestUrl, kTestClientId1, kTestUrl2, kEmptyRequestOrigin,
       std::move(archiver), SavePageResult::SUCCESS);
   PumpLoop();
-  EXPECT_EQ(task_runner()->Now() - short_delta, last_clear_page_time());
+  EXPECT_EQ(
+      task_runner()->Now() - short_delta + base::TimeDelta::FromSeconds(30),
+      last_clear_page_time());
 
   task_runner()->FastForwardBy(
       OfflinePageModelTaskified::kClearStorageInterval);
diff --git a/components/offline_pages/core/offline_page_client_policy.h b/components/offline_pages/core/offline_page_client_policy.h
index 07e800c..c2881f1d 100644
--- a/components/offline_pages/core/offline_page_client_policy.h
+++ b/components/offline_pages/core/offline_page_client_policy.h
@@ -60,6 +60,8 @@
   bool disabled_when_prefetch_disabled;
   // Whether the pages originated from suggestions by zine or elsewhere.
   bool is_suggested;
+  // whether we should allow pages to trigger downloads.
+  bool should_allow_download;
 
   FeaturePolicy()
       : is_supported_by_download(false),
@@ -67,7 +69,8 @@
         only_shown_in_original_tab(false),
         is_removed_on_cache_reset(true),
         disabled_when_prefetch_disabled(false),
-        is_suggested(false) {}
+        is_suggested(false),
+        should_allow_download(false) {}
 };
 
 // The struct describing policies for various namespaces (Bookmark, Last-N etc.)
@@ -163,6 +166,12 @@
     return *this;
   }
 
+  OfflinePageClientPolicyBuilder& SetShouldAllowDownload(
+      const bool should_allow_download) {
+    policy_.feature_policy.should_allow_download = should_allow_download;
+    return *this;
+  }
+
  private:
   OfflinePageClientPolicy policy_;
 
diff --git a/components/policy/resources/policy_templates_am.xtb b/components/policy/resources/policy_templates_am.xtb
index ca75d5b..ceac3e3 100644
--- a/components/policy/resources/policy_templates_am.xtb
+++ b/components/policy/resources/policy_templates_am.xtb
@@ -2309,9 +2309,6 @@
 <translation id="8344454543174932833">የመጀመሪያው አሂድ ላይ ዕልባቶችን ከነባሪው አሳሽ ያስመጣል</translation>
 <translation id="8359734107661430198">የExampleDeprecatedFeature ኤፒአይ እስከ 2008/09/02 ድረስ አንቃ</translation>
 <translation id="8369602308428138533">በሶኬት ኃይል ላይ ሲሆን የማያ ገጽ መጥፋት መዘግየት</translation>
-<translation id="8370471134641900314">ይህ መመሪያ ወደ እውነት ከተዋቀረ ተጠቃሚ አሳሹን መጠቀም ከመቻላቸው በፊት በመገለጫቸው ወደ <ph name="PRODUCT_NAME" /> መግባት አለባቸው። እና የBrowserGuestModeEnabled ነባሪው እሴት ወደ ሐሰት ይዋቀራል።
-
-      ይህ መመሪያ ወደ ሐሰት ወይም እንዳልተዋቀረ ከተተወ ተጠቃሚው ወደ <ph name="PRODUCT_NAME" /> መግባት ሳይኖርባቸው አሳሹን መጠቀም ይችላሉ።</translation>
 <translation id="8382184662529825177">ለመሣሪያው የይዘት ጥበቃ የርቀት ማስረገጥ መጠቀምን ያንቁ</translation>
 <translation id="838870586332499308">የውሂብ ዝውውርን ያንቁ</translation>
 <translation id="8390049129576938611">በ<ph name="PRODUCT_NAME" /> ውስጥ ውስጣዊውን የተሰቅ መመልከቻን ያሰናክላል። በምትኩ እንደ ውርድ ያስተናግደው እና ተጠቃሚው ተሰቅ ፋይሎችን በነባሪው መተግበሪያ እንዲከፍት ይፈቅድለታል።
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb
index 3561a98..3a565816 100644
--- a/components/policy/resources/policy_templates_ar.xtb
+++ b/components/policy/resources/policy_templates_ar.xtb
@@ -2172,9 +2172,6 @@
 <translation id="8344454543174932833">استيراد الإشارات المرجعية من المتصفح الافتراضي عند التشغيل أول مرة</translation>
 <translation id="8359734107661430198">‏تمكين واجهة برمجة تطبيقات ExampleDeprecatedFeature من خلال 2008/09/02</translation>
 <translation id="8369602308428138533">مهلة إيقاف تشغيل الشاشة عند استخدام طاقة التيار المتردد</translation>
-<translation id="8370471134641900314">‏في حالة تعيين هذه السياسة على "true"، يجب على المستخدم تسجيل الدخول إلى <ph name="PRODUCT_NAME" /> باستخدام الملف الشخصي التابع له قبل استخدام المتصفح. وسيتم تعيين القيمة الافتراضية لـ BrowserGuestModeEnabled على "false".
-
-      في حالة تعيين هذه السياسة على "false" أو عدم تهيئتها، يمكن للمستخدم استخدام المتصفح بدون تسجيل الدخول إلى <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">تمكين استخدام المصادقة عن بُعد لحماية المحتوى بالجهاز</translation>
 <translation id="838870586332499308">تمكين تجوال البيانات</translation>
 <translation id="8390049129576938611">‏تعطيل عارض PDF الداخلي في <ph name="PRODUCT_NAME" />. وبدلاً من ذلك يتم التعامل معه كتنزيل مع السماح للمستخدم بفتح ملفات PDF باستخدام التطبيق الافتراضي.
diff --git a/components/policy/resources/policy_templates_bg.xtb b/components/policy/resources/policy_templates_bg.xtb
index 3e322040f..b7168534 100644
--- a/components/policy/resources/policy_templates_bg.xtb
+++ b/components/policy/resources/policy_templates_bg.xtb
@@ -2189,9 +2189,6 @@
 <translation id="8344454543174932833">Импортиране на отметките от браузъра по подразбиране при първото изпълнение</translation>
 <translation id="8359734107661430198">Активиране на приложния програмен интерфейс (API) ExampleDeprecatedFeature за периода до 02.09.2008 г. включително.</translation>
 <translation id="8369602308428138533">Забавяне преди изключване на екрана при работа на променлив ток</translation>
-<translation id="8370471134641900314">Ако това правило е true, потребителите ще трябва да влизат в <ph name="PRODUCT_NAME" /> със съответните си потребителски профили, преди да използват браузъра, а за стандартната стойност на BrowserGuestModeEnabled ще бъде зададено false.
-
-В случай че правилото е false или не е конфигурирано, потребителите ще могат да ползват браузъра, без да влизат в <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Активиране на използването на отдалечено удостоверяване за защита на съдържание за устройството</translation>
 <translation id="838870586332499308">Активиране на роуминга за данни</translation>
 <translation id="8390049129576938611">Деактивира вътрешния визуализатор за PDF файлове в <ph name="PRODUCT_NAME" />. Вместо това тези файлове се третират като такива за изтегляне и на потребителя се дава възможност да ги отвори със стандартното приложение.
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb
index d88a882..6c31a37b 100644
--- a/components/policy/resources/policy_templates_bn.xtb
+++ b/components/policy/resources/policy_templates_bn.xtb
@@ -1098,7 +1098,7 @@
 
       এই নীতিটি কনফিগার না করা হলে <ph name="PRODUCT_NAME" /> একটি ডিফল্ট সর্বোচ্চ নীতি ব্যবহার করবে।
 
-      অন্যথায়, একে নিম্নোলিখিত কোনও একটি মানে সেট করা হতে পারে: "tls1.2" অথবা "tls1.3"। এটি সেট করা থাকলে <ph name="PRODUCT_NAME" /> নির্দিষ্ট করে দেওয়া ভার্সনের উর্ধ্বের কোনও SSL/TLS ভার্সন ব্যবহার করবে না। শনাক্ত করা হয়নি সেইসব মান উপেক্ষা করা হবে।</translation>
+      অন্যথায়, একে নিম্নোলিখিত কোনও একটি মানে সেট করা হতে পারে: "tls1.2" অথবা "tls1.3"। এটি সেট করা থাকলে <ph name="PRODUCT_NAME" /> নির্দিষ্ট করে দেওয়া ভার্সনের উপরের কোনও SSL/TLS ভার্সন ব্যবহার করবে না। শনাক্ত করা হয়নি সেইসব মান উপেক্ষা করা হবে।</translation>
 <translation id="4121350739760194865">নতুন ট্যাব পৃষ্ঠাটিতে উপস্থিত হওয়া থেকে অ্যাপ প্রচারগুলিকে প্রতিহত করুন</translation>
 <translation id="4125606414556046117">এই নীতি আপনাকে ডেস্কটপে এবং ব্যবহারকারীর জন্য লগ-ইনের স্ক্রিনের ব্যাকগ্রাউন্ডে প্রদর্শিত ওয়ালপেপারের ফটোটিকে কনফিগার করতে দেয়। নীতি যে URL থেকে <ph name="PRODUCT_OS_NAME" /> ওয়ালপেপারের ফটো ডাউনলোড করতে পারে তাতে নির্দিষ্ট করার মাধ্যমে সেট করা হয়ে থাকে এবং ডাউনলোডের অখণ্ডতা যাচাই করার জন্য একটি ক্রিপ্টোগ্র্যাফিক হ্যাশ ব্যবহৃত হয়। ফটোটিকে অবশ্যই JPEG ফর্ম্যাটে হতে হবে, এর সাইজ ১৬MB এর বেশি হতে পারবে না। URLটি কোনও প্রমাণীকরণ ছাড়াই অ্যাক্সেসযোগ্য হতে হবে।
 
@@ -2662,9 +2662,6 @@
 <translation id="8357681633047935212">একটি ব্যবহারকারীর সেশনের সময় পর্ব সীমিত করুন</translation>
 <translation id="8359734107661430198">২০০৮/০৯/০২ এর মধ্যের ExampleDeprecatedFeature API সক্ষম করুন</translation>
 <translation id="8369602308428138533">AC পাওয়ার চলাকালীন স্ক্রীন বন্ধে বিলম্ব</translation>
-<translation id="8370471134641900314">এই নীতিটি সত্যতে সেট করা থাকলে, ব্রাউজার ব্যবহার করার আগে ব্যবহারকারীকে তার প্রোফাইলের মাধ্যমে <ph name="PRODUCT_NAME" /> এ প্রবেশ করতে হবে। এছাড়া, ‘ব্রাউজার অতিথি মোড সক্ষমিত’ এর ডিফল্ট মান মিথ্যাতে সেট করা হবে।
-
-      এই নীতিটি মিথ্যাতে সেট করা থাকলে বা কনফিগার করা না হলে, ব্যবহারকারী <ph name="PRODUCT_NAME" /> এ প্রবেশ না করে ব্রাউজারটি ব্যবহার করতে পারবেন।</translation>
 <translation id="8380490658357556620">যখন দূরবর্তী ক্লায়েন্ট এই মেশিনের সঙ্গে একটি সংযোগ স্থাপনের চেষ্টা করে তখন রিলে সার্ভারগুলিকে সক্ষম করে।
 
           যদি এই সেটিং সক্ষম থাকে এবং যখন একটি সরাসরি সংযোগ (উদাঃ ফায়ারওয়াল জনিত নিষেধাজ্ঞার কারণে) উপলব্ধ থাকে না তখন দূরবর্তী ক্লায়েন্ট এই মেশিনে সংযোগ করতে রিলে সার্ভারগুলি ব্যবহার করবে।
diff --git a/components/policy/resources/policy_templates_ca.xtb b/components/policy/resources/policy_templates_ca.xtb
index a405f76..84596d8 100644
--- a/components/policy/resources/policy_templates_ca.xtb
+++ b/components/policy/resources/policy_templates_ca.xtb
@@ -2168,9 +2168,6 @@
 <translation id="8344454543174932833">Importació de les adreces d'interès des del navegador predeterminat en la primera execució</translation>
 <translation id="8359734107661430198">Activa l'API de ExampleDeprecatedFeature fins al 02/09/2008</translation>
 <translation id="8369602308428138533">Retard de la desactivació de pantalla quan s'utilitza alimentació</translation>
-<translation id="8370471134641900314">Si aquesta política s'estableix en "true", l'usuari ha d'iniciar la sessió a <ph name="PRODUCT_NAME" /> amb el seu perfil abans d'utilitzar el navegador. El valor predeterminat de BrowserGuestModeEnabled és "false".
-
-      Si aquesta política s'estableix en "false" o no es configura, l'usuari pot utilitzar el navegador sense iniciar la sessió a <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Activa l'ús del testimoni remot del contingut protegit al dispositiu.</translation>
 <translation id="838870586332499308">Activa la itinerància de dades</translation>
 <translation id="8390049129576938611">Desactiva el lector de PDF intern a <ph name="PRODUCT_NAME" />. En el seu lloc, tracta els fitxers PDF com una baixada i permet que l'usuari els obri amb l'aplicació predeterminada.
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb
index c1b46ad..0788a57 100644
--- a/components/policy/resources/policy_templates_cs.xtb
+++ b/components/policy/resources/policy_templates_cs.xtb
@@ -2263,9 +2263,6 @@
 <translation id="8344454543174932833">Importování záložek z výchozího prohlížeče při prvním spuštění</translation>
 <translation id="8359734107661430198">Aktivovat API PříkladZastaraléFunkce do 2. 9. 2008</translation>
 <translation id="8369602308428138533">Prodleva vypnutí obrazovky při napájení ze sítě</translation>
-<translation id="8370471134641900314">Pokud je tato zásada nastavena na hodnotu True, uživatel se do prohlížeče <ph name="PRODUCT_NAME" /> před použitím musí přihlásit pomocí svého profilu. Výchozí hodnota zásady BrowserGuestModeEnabled v tomto případě bude nastavena na False.
-
-      Pokud je tato zásada nastavena na hodnotu False nebo není nakonfigurována, může uživatel prohlížeč <ph name="PRODUCT_NAME" /> používat bez přihlášení.</translation>
 <translation id="8382184662529825177">Povolit použití vzdáleného ověření identity k ochraně obsahu v zařízení</translation>
 <translation id="838870586332499308">Povolit datový roaming</translation>
 <translation id="8390049129576938611">Zakáže v prohlížeči <ph name="PRODUCT_NAME" /> interní prohlížeč souborů PDF. Soubory PDF se budou stahovat a uživatel je bude moci otevřít ve výchozí aplikaci.
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb
index 29cc437..0b6d60a 100644
--- a/components/policy/resources/policy_templates_da.xtb
+++ b/components/policy/resources/policy_templates_da.xtb
@@ -2179,9 +2179,6 @@
 <translation id="8344454543174932833">Importer bogmærker fra standardbrowser ved første visning</translation>
 <translation id="8359734107661430198">Aktivér ExampleDeprecatedFeature API frem til 02/09/2008</translation>
 <translation id="8369602308428138533">Skærmslukforsinkelse, når strømforsyning er tilsluttet</translation>
-<translation id="8370471134641900314">Hvis denne politik er angivet som sand, skal brugeren logge ind på <ph name="PRODUCT_NAME" /> med sin profil, inden browseren anvendes. Standardværdien for BrowserGuestModeEnabled angives dermed til falsk.
-
-      Hvis denne politik er angivet som falsk eller ikke er konfigureret, kan brugeren benytte browseren uden at logge ind på <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Aktivér brug af fjernattestering til indholdsbeskyttelse for enheden.</translation>
 <translation id="838870586332499308">Aktivér dataroaming</translation>
 <translation id="8390049129576938611">Deaktiverer den interne PDF-fremviser i <ph name="PRODUCT_NAME" />. Behandler den i stedet som download og gør det muligt for brugeren at åbne PDF-filer via standardapplikationen.
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index e11abd6..f23cfdd8 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -2195,9 +2195,6 @@
 <translation id="8344454543174932833">Lesezeichen bei erster Ausführung aus Standardbrowser importieren</translation>
 <translation id="8359734107661430198">ExampleDeprecatedFeature API bis zum 02.09.2008 aktivieren</translation>
 <translation id="8369602308428138533">Verzögerung für die Bildschirmabschaltung im Netzbetrieb</translation>
-<translation id="8370471134641900314">Wenn diese Richtlinie auf "true" gesetzt ist, muss sich der Nutzer mit seinem Profil in <ph name="PRODUCT_NAME" /> anmelden, um den Browser zu nutzen. Der Standardwert von BrowserGuestModeEnabled wird auf "false" gesetzt.
-
-      Ist die Richtlinie auf "false" gesetzt oder nicht konfiguriert, kann der Nutzer den Browser verwenden, ohne sich in <ph name="PRODUCT_NAME" /> anzumelden.</translation>
 <translation id="8382184662529825177">Verwendung von Remote-Bescheinigung (Remote Attestation) zum Schutz von Inhalten für das Gerät aktivieren</translation>
 <translation id="838870586332499308">Daten-Roaming aktivieren</translation>
 <translation id="8390049129576938611">Deaktiviert den internen PDF-Viewer in <ph name="PRODUCT_NAME" />. Stattdessen werden PDF-Dateien als Download behandelt und der Nutzer kann sie mit der Standard-Anwendung öffnen.
diff --git a/components/policy/resources/policy_templates_el.xtb b/components/policy/resources/policy_templates_el.xtb
index 01d8002..4e96dd4 100644
--- a/components/policy/resources/policy_templates_el.xtb
+++ b/components/policy/resources/policy_templates_el.xtb
@@ -2312,9 +2312,6 @@
 <translation id="8344454543174932833">Εισαγωγή σελιδοδεικτών από το προεπιλεγμένο πρόγραμμα περιήγησης στην πρώτη εκτέλεση</translation>
 <translation id="8359734107661430198">Ενεργοποίηση ExampleDeprecatedFeature API έως 2008/09/02</translation>
 <translation id="8369602308428138533">Καθυστέρηση απενεργοποίησης οθόνης κατά τη λειτουργία με εναλλασσόμενο ρεύμα</translation>
-<translation id="8370471134641900314">Αν αυτή η πολιτική έχει οριστεί ως αληθής, ο χρήστης πρέπει να συνδεθεί στο <ph name="PRODUCT_NAME" /> με το προφίλ του προτού χρησιμοποιήσει το πρόγραμμα περιήγησης. Η προεπιλεγμένη τιμή του BrowserGuestModeEnabled θα οριστεί ως ψευδής.
-
-      Αν αυτή η πολιτική δεν έχει διαμορφωθεί ή οριστεί ως ψευδής, ο χρήστης μπορεί να χρησιμοποιήσει το πρόγραμμα περιήγησης χωρίς να συνδεθεί στο <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Ενεργοποίηση της χρήσης απομακρυσμένης διαβεβαίωσης για την προστασία περιεχομένου της συσκευής</translation>
 <translation id="838870586332499308">Ενεργοποίηση περιαγωγής δεδομένων</translation>
 <translation id="8390049129576938611">Απενεργοποιεί το εσωτερικό πρόγραμμα προβολής PDF στο <ph name="PRODUCT_NAME" />. Αντ' αυτού, το αντιμετωπίζει ως λήψη και επιτρέπει στον χρήστη να ανοίγει αρχεία PDF με το προεπιλεγμένο πρόγραμμα.
diff --git a/components/policy/resources/policy_templates_en-GB.xtb b/components/policy/resources/policy_templates_en-GB.xtb
index c903d9e..c85353e 100644
--- a/components/policy/resources/policy_templates_en-GB.xtb
+++ b/components/policy/resources/policy_templates_en-GB.xtb
@@ -2324,9 +2324,6 @@
 <translation id="8344454543174932833">Import bookmarks from default browser on first run</translation>
 <translation id="8359734107661430198">Enable ExampleDeprecatedFeature API through 2008/09/02</translation>
 <translation id="8369602308428138533">Screen off delay when running on AC power</translation>
-<translation id="8370471134641900314">If this policy is set to true, user has to sign in to <ph name="PRODUCT_NAME" /> with their profile before using the browser. And the default value of BrowserGuestModeEnabled will be set to false.
-
-      If this policy is set to false or not configured, user can use the browser without sign in to <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Enable the use of remote attestation for content protection for the device</translation>
 <translation id="838870586332499308">Enable data roaming</translation>
 <translation id="8390049129576938611">Disables the internal PDF viewer in <ph name="PRODUCT_NAME" />. Instead, it treats it as download and allows the user to open PDF files with the default application.
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index f5b0e0f..ee27d198 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -928,11 +928,11 @@
 
           El valor de la política debe especificarse en milisegundos.</translation>
 <translation id="4105989332710272578">Inhabilitar la aplicación del Certificado de transparencia para una lista de URL</translation>
-<translation id="4111405663956464686">Advertencia: La política de la versión de TLS máxima se quitará por completo de <ph name="PRODUCT_NAME" /> en la versión 72 aproximadamente (alrededor de enero de 2019).
+<translation id="4111405663956464686">Advertencia: La política de la versión máxima de TLS se quitará por completo de <ph name="PRODUCT_NAME" /> en la versión 72 aproximadamente (alrededor de enero de 2019).
 
-      Si para ese momento no se configura la política, <ph name="PRODUCT_NAME" /> usará la versión máxima predeterminada.
+      Si para ese momento no se configuró la política, <ph name="PRODUCT_NAME" /> usará la versión máxima predeterminada.
 
-      De lo contrario, se podrá establecer en uno de los siguientes valores: "tls1.2" or "tls1.3". De esta manera, <ph name="PRODUCT_NAME" /> no usará las versiones de SSL/TLS posteriores a la versión especificada. Se ignorarán los valores que no se reconozcan.</translation>
+      De lo contrario, se podrá establecer como uno de los siguientes valores: "tls1.2" o "tls1.3". De esta manera, <ph name="PRODUCT_NAME" /> no usará versiones de SSL/TLS posteriores a la especificada. Se ignorarán los valores no reconocidos.</translation>
 <translation id="4121350739760194865">Impedir que aparezcan las promociones de aplicaciones en la página de la nueva pestaña</translation>
 <translation id="4157003184375321727">Informar la versión de firmware y SO.</translation>
 <translation id="4183229833636799228">Configuración predeterminada de <ph name="FLASH_PLUGIN_NAME" /></translation>
@@ -993,7 +993,7 @@
 <translation id="4325690621216251241">Agregar un botón para cerrar sesión en la bandeja del sistema</translation>
 <translation id="4346674324214534449">Te permite establecer si se bloquearán los anuncios en sitios con anuncios intrusivos.
 
-      Si se establece esta política en 2, se bloquearán los anuncios en sitios con anuncios intrusivos.
+      Si se establece esta política como 2, se bloquearán los anuncios en sitios con anuncios intrusivos.
       Sin embargo, este comportamiento no se activará si la política SafeBrowsingEnabled se establece como falsa.
       Si se establece como 1, no se bloquearán los anuncios en sitios con anuncios intrusivos.
       Si no se establece, se usará 2.</translation>
@@ -2211,9 +2211,6 @@
 <translation id="8344454543174932833">Importar favoritos del navegador predeterminado en la primera ejecución</translation>
 <translation id="8359734107661430198">Habilitar la API ExampleDeprecatedFeature hasta el 02/09/2008</translation>
 <translation id="8369602308428138533">Demora de pantalla apagada con alimentación de CA</translation>
-<translation id="8370471134641900314">Si esta política se establece como verdadera, el usuario deberá acceder a <ph name="PRODUCT_NAME" /> con su perfil antes de usar el navegador. El valor predeterminado BrowserGuestModeEnabled se establecerá como falso.
-
-      Si esta política se establece como falsa o no se configura, el usuario podrá usar el navegador sin acceder a <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Habilita el uso de la atestación remota para la protección de contenido del dispositivo.</translation>
 <translation id="838870586332499308">Activar la itinerancia de datos</translation>
 <translation id="8390049129576938611">Inhabilita la app interna para ver archivos PDF <ph name="PRODUCT_NAME" />. Los considera archivos de descarga y le permite al usuario abrirlos con la aplicación predeterminada.
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 92fdbd6c..854fb41 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -970,7 +970,7 @@
 
           El valor de la política se debe especificar en milisegundos.</translation>
 <translation id="4105989332710272578">No permite que se aplique la Transparencia en Certificados a una lista de URLs</translation>
-<translation id="4111405663956464686">Advertencia: La política de la versión máxima de TLS se retirará por completo de <ph name="PRODUCT_NAME" /> aproximadamente en la versión 72 (sobre enero del 2019).
+<translation id="4111405663956464686">Advertencia: La política de la versión máxima de TLS se retirará por completo de <ph name="PRODUCT_NAME" /> aproximadamente en la versión 72 (en torno a enero del 2019).
 
       Si esta política no se configura, <ph name="PRODUCT_NAME" /> usa la versión máxima predeterminada.
 
@@ -1036,7 +1036,7 @@
 <translation id="4346674324214534449">Te permite decidir si se deberían bloquear los anuncios en los sitios web con anuncios invasivos.
 
       Si se le asigna el valor 2 a esta política, se bloquearán los anuncios en los sitios web con anuncios invasivos.
-      No obstante, no se activará este comportamiento si se ha asignado el valor False a la política SafeBrowsingEnabled.
+      No obstante, no se activará este comportamiento si se ha asignado el valor "False" a la política SafeBrowsingEnabled.
       Si se le asigna el valor 1 a esta política, no se bloquearán los anuncios en los sitios web con anuncios invasivos.
       Si no se asigna ningún valor a esta política, se usará el valor 2.</translation>
 <translation id="4347908978527632940">Si la política está activada y se trata de un usuario supervisado, otras aplicaciones de Android pueden consultar las restricciones web del usuario a través de un proveedor de contenido.
@@ -2320,9 +2320,6 @@
 <translation id="8344454543174932833">Importa los marcadores desde el navegador predeterminado en la primera ejecución.</translation>
 <translation id="8359734107661430198">Habilitar el API ExampleDeprecatedFeature hasta el 02/09/2008</translation>
 <translation id="8369602308428138533">Retraso de desconexión de la pantalla cuando el dispositivo está conectado a la red</translation>
-<translation id="8370471134641900314">Si se asigna el valor true a esta política, el usuario deberá iniciar sesión en <ph name="PRODUCT_NAME" /> con su perfil antes de utilizar el navegador. El valor predeterminado que se asigna a BrowserGuestModeEnabled es false.
-
-      Si se asigna el valor false a esta política o no se configura, el usuario podrá utilizar el navegador sin iniciar sesión en <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Habilitar el uso de la confirmación remota para la protección del contenido del dispositivo</translation>
 <translation id="838870586332499308">Habilitar la itinerancia de datos</translation>
 <translation id="8390049129576938611">Inhabilita el visor de PDF interno en <ph name="PRODUCT_NAME" />. En su lugar, trata el archivo PDF como una descarga y permite al usuario abrir archivos PDF con la aplicación predeterminada.
diff --git a/components/policy/resources/policy_templates_et.xtb b/components/policy/resources/policy_templates_et.xtb
index 7ee22fe..82571d63 100644
--- a/components/policy/resources/policy_templates_et.xtb
+++ b/components/policy/resources/policy_templates_et.xtb
@@ -2316,9 +2316,6 @@
 <translation id="8344454543174932833">Impordi järjehoidjad vaikebrauserist esmakordsel käitamisel</translation>
 <translation id="8359734107661430198">Luba ExampleDeprecatedFeature API kuni 02.09.2008</translation>
 <translation id="8369602308428138533">Ekraani väljalülitamise viiteaeg võrgutoite kasutamisel</translation>
-<translation id="8370471134641900314">Kui reegel määratakse väärtusele Tõene, peab kasutaja enne brauseri kasutamist rakendusse <ph name="PRODUCT_NAME" /> oma profiiliga sisse logima. Samuti määratakse reegli BrowserGuestModeEnabled vaikeväärtuseks Väär.
-
-      Kui reegel määratakse väärtusele Väär või jäetakse seadistamata, saab kasutaja brauserit rakendusse <ph name="PRODUCT_NAME" /> sisse logimata kasutada.</translation>
 <translation id="8382184662529825177">Kaugatesteerimise lubamine seadme sisu kaitsmiseks</translation>
 <translation id="838870586332499308">Luba andmeside rändlusteenus</translation>
 <translation id="8390049129576938611">Keelab sisemise PDF-vaaturi rakenduses <ph name="PRODUCT_NAME" />. Selle asemel koheldakse seda allalaadimisena ja kasutaja saab PDF-faile vaikerakendusega avada.
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb
index 406c6e72..f9d20fd 100644
--- a/components/policy/resources/policy_templates_fa.xtb
+++ b/components/policy/resources/policy_templates_fa.xtb
@@ -2188,9 +2188,6 @@
 <translation id="8344454543174932833">وارد کردن نشانک‌ها از مرورگر پیش‌فرض در اولین اجرا</translation>
 <translation id="8359734107661430198">‏فعال‌سازی ExampleDeprecatedFeature API از ‏‎۲۰۰۸/۰۹/۰۲</translation>
 <translation id="8369602308428138533">تأخیر خاموش شدن صفحه هنگام کار با برق</translation>
-<translation id="8370471134641900314">‏اگر این خط‌مشی روی درست تنظیم شود، کاربر باید قبل از استفاده از مرورگر با نمایه‌اش به سیستم <ph name="PRODUCT_NAME" /> وارد شود و مقدار پیش‌‌فرض BrowserGuestModeEnabled روی نادرست تنظیم خواهد شد.
-
-      اگر این خط‌مشی روی نادرست تنظیم شود یا پیکربندی نشود، کاربر می‌تواند بدون ورود به سیستم <ph name="PRODUCT_NAME" />، از مرورگر استفاده کند.</translation>
 <translation id="8382184662529825177">فعال کردن استفاده از اعطای گواهی راه دور برای محافظت از محتوا برای دستگاه</translation>
 <translation id="838870586332499308">رومینگ داده‌ها فعال شود</translation>
 <translation id="8390049129576938611">‏نمایشگر PDF داخلی را در <ph name="PRODUCT_NAME" /> غیرفعال می‌کند. درعوض، با آن مثل بارگیری رفتار می‌کند و به کاربر امکان می‌دهد تا فایل‌های PDF را با برنامه پیش‌فرض باز کند.
diff --git a/components/policy/resources/policy_templates_fi.xtb b/components/policy/resources/policy_templates_fi.xtb
index 334b37a..f8ec5f9 100644
--- a/components/policy/resources/policy_templates_fi.xtb
+++ b/components/policy/resources/policy_templates_fi.xtb
@@ -2198,9 +2198,6 @@
 <translation id="8344454543174932833">Tuo kirjanmerkit oletusselaimesta ensimmäisellä käyttökerralla</translation>
 <translation id="8359734107661430198">Ota käyttöön ExampleDeprecatedFeature-sovellusliittymä 2.9.2008 saakka</translation>
 <translation id="8369602308428138533">Ruudun sammutuksen viive käytettäessä laitetta verkkovirralla</translation>
-<translation id="8370471134641900314">Jos tämän käytännön arvoksi on määritetty tosi, käyttäjän on kirjauduttava kohteeseen <ph name="PRODUCT_NAME" /> omalla profiilillaan ennen selaimen käyttämistä ja BrowserGuestModeEnabled-arvon oletukseksi määritetään epätosi.
-
-      Jos tämän käytännön arvoksi on määritetty epätosi tai sitä ei ole määritetty, selainta voi käyttää kirjautumatta kohteeseen <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Poista käytöstä etävahvistuksen käyttö laitteen sisällön suojauksen vuoksi</translation>
 <translation id="838870586332499308">Ota mobiilitiedonsiirto käyttöön roaming-tilassa</translation>
 <translation id="8390049129576938611">Poista käytöstä tuotteen <ph name="PRODUCT_NAME" /> sisäinen PDF-katseluohjelma. Tuote kohtelee PDF-tiedostoja latauksina ja sallii niiden avaamisen käyttäjän valitsemalla oletussovelluksella.
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb
index 42cabfd..9e2194a5e 100644
--- a/components/policy/resources/policy_templates_fil.xtb
+++ b/components/policy/resources/policy_templates_fil.xtb
@@ -2315,9 +2315,6 @@
 <translation id="8344454543174932833">Mag-import ng mga bookmark mula sa default na browser sa unang pagtakbo</translation>
 <translation id="8359734107661430198">I-enable ang ExampleDeprecatedFeature API sa 2008/09/02</translation>
 <translation id="8369602308428138533">Delay ng pag-off ng screen kapag tumatakbo habang nakasaksak sa kuryente</translation>
-<translation id="8370471134641900314">Kung nakatakda sa true ang patakarang ito, kailangang mag-sign in ng user sa <ph name="PRODUCT_NAME" /> gamit ang kanyang profile bago magamit ang browser. At itatakda sa false ang default na value ng BrowserGuestModeEnabled.
-
-      Kung nakatakda sa false o hindi naka-configure ang patakarang ito, maaaring gamitin ng user ang browser nang hindi nagsa-sign in sa <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">I-enable ang paggamit ng malayuang pagpapatotoo para sa pagprotekta sa nilalaman para sa device</translation>
 <translation id="838870586332499308">Payagan ang roaming ng data</translation>
 <translation id="8390049129576938611">Dini-disable ang internal PDF viewer sa <ph name="PRODUCT_NAME" />. Sa halip, itinuturing nito ito bilang download at pinapayagan ang user na magbukas ng mga PDF na file gamit ang default na application.
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 2f6a986f..d7a9ce3a 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -2343,9 +2343,6 @@
 <translation id="8344454543174932833">Importer les favoris du navigateur par défaut à la première exécution</translation>
 <translation id="8359734107661430198">Activer l'API ExampleDeprecatedFeature jusqu'au 09/02/2008</translation>
 <translation id="8369602308428138533">Délai d'arrêt de l'écran (secteur)</translation>
-<translation id="8370471134641900314">Si cette règle est définie sur "True", l'utilisateur doit se connecter à <ph name="PRODUCT_NAME" /> avec son propre profil pour pouvoir utiliser le navigateur. La valeur par défaut de BrowserGuestModeEnabled sera définie sur "False".
-
-      Si cette règle est définie sur "False" ou si elle n'est pas configurée, l'utilisateur peut employer le navigateur sans se connecter à <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Autoriser l'utilisation de l'attestation à distance pour assurer la protection du contenu de l'appareil</translation>
 <translation id="838870586332499308">Activer l'itinérance des données</translation>
 <translation id="8390049129576938611">Désactive la visionneuse de documents PDF intégrée dans <ph name="PRODUCT_NAME" />. Les fichiers PDF sont alors traités comme des téléchargements que l'utilisateur peut ouvrir avec l'application par défaut.
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb
index 26f38ea..9ac8064 100644
--- a/components/policy/resources/policy_templates_gu.xtb
+++ b/components/policy/resources/policy_templates_gu.xtb
@@ -2669,9 +2669,6 @@
 <translation id="8357681633047935212">વપરાશકર્તા સત્રની લંબાઈ મર્યાદિત કરો</translation>
 <translation id="8359734107661430198">2008/09/02 મારફતે ExampleDeprecatedFeature API સક્ષમ કરો</translation>
 <translation id="8369602308428138533">AC પાવર પર ચાલી રહ્યું હોય ત્યારે સ્ક્રીન બંધ વિલંબ</translation>
-<translation id="8370471134641900314">જો આ નીતિ true પર સેટ કરેલ હોય, તો વપરાશકર્તાએ બ્રાઉઝરનો ઉપયોગ કરતાં પહેલાં તેમની પ્રોફાઇલ સાથે <ph name="PRODUCT_NAME" /> માં સાઇન ઇન કરવાનું રહેશે. અને BrowserGuestModeEnabled નું ડિફૉલ્ટ મૂલ્ય false પર સેટ કરવામાં આવશે.
-
-      જો આ નીતિ false પર સેટ કરેલ હોય અથવા તો ગોઠવેલ ન હોય, તો વપરાશકર્તા <ph name="PRODUCT_NAME" /> પર સાઇન ઇન કર્યા વિના બ્રાઉઝરનો ઉપયોગ કરી શકે છે.</translation>
 <translation id="8380490658357556620">જ્યારે રિમોટ ક્લાયન્ટ આ મશીન પર કનેક્શન સ્થાપિત કરવાનો પ્રયાસ કરી રહ્યાં હોય ત્યારે રીલે સર્વરના ઉપયોગને સક્ષમ કરે છે.
 
           જો આ સેટિંગ સક્ષમ કરેલ હોય, તો પછી જ્યારે પ્રત્યક્ષ કનેક્શન ઉપલબ્ધ ન હોય (દા.ત. ફાયરવૉલ પ્રતિબંધોને કારણે) ત્યારે આ મશીનથી કનેક્ટ કરવા માટે રિમોટ ક્લાયન્ટ, રીલે સર્વરનો ઉપયોગ કરી શકે છે.
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb
index 39709ea62..7f047b8 100644
--- a/components/policy/resources/policy_templates_hi.xtb
+++ b/components/policy/resources/policy_templates_hi.xtb
@@ -2291,9 +2291,6 @@
 <translation id="8344454543174932833">पहली बार चलाने पर सामान्य ब्राउज़र से बुकमार्क आयात करें</translation>
 <translation id="8359734107661430198">02/09/2008 से ExampleDeprecatedFeature API सक्षम है</translation>
 <translation id="8369602308428138533">AC पावर पर चलते समय स्क्रीन बंद विलंब</translation>
-<translation id="8370471134641900314">यदि यह नीति सही पर सेट की जाती है, तो उपयोगकर्ता को ब्राउज़र का उपयोग करने से पहले अपनी प्रोफ़ाइल के माध्यम से <ph name="PRODUCT_NAME" /> में प्रवेश करना होगा. और BrowserGuestModeEnabled के डिफ़ॉल्ट मान को गलत पर सेट कर दिया जाएगा.
-
-      यदि यह नीति गलत पर सेट की जाती है या कॉन्फ़िगर नहीं की जाती है, तो उपयोगकर्ता <ph name="PRODUCT_NAME" /> में प्रवेश किए बिना ब्राउज़र का उपयोग कर सकता है.</translation>
 <translation id="8382184662529825177">डिवाइस के लिए सामग्री सुरक्षा के लिए दूरस्थ अनुप्रमाणन के उपयोग को सक्षम करें</translation>
 <translation id="838870586332499308">डेटा रोमिंग सक्षम करें</translation>
 <translation id="8390049129576938611"><ph name="PRODUCT_NAME" /> में आंतरिक PDF व्यूअर अक्षम करती है. इसके बजाय यह इसे डाउनलोड के रूप में देखता है और उपयोगकर्ता को डिफ़ॉल्ट ऐप्लिकेशन से PDF फ़ाइलें खोलने की अनुमति देता है.
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb
index 19c339d3..2e7cf5f0 100644
--- a/components/policy/resources/policy_templates_hr.xtb
+++ b/components/policy/resources/policy_templates_hr.xtb
@@ -2195,9 +2195,6 @@
 <translation id="8344454543174932833">Uvoz oznaka iz zadanog preglednika pri prvom pokretanju</translation>
 <translation id="8359734107661430198">Omogući ExampleDeprecatedFeature API do 2008/09/02</translation>
 <translation id="8369602308428138533">Odgoda isključivanja zaslona za vrijeme napajanja izmjeničnom strujom</translation>
-<translation id="8370471134641900314">Ako se to pravilo postavi na True, korisnik se mora prijaviti na <ph name="PRODUCT_NAME" /> svojim profilom da bi mogao upotrebljavati preglednik. Zadana vrijednost za BrowserGuestModeEnabled bit će postavljena na False.
-
-      Ako se to pravilo postavi na False ili se ne konfigurira, korisnik može upotrebljavati preglednik bez prijave na <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Omogući upotrebu daljinske ovjere za zaštitu sadržaja za uređaj</translation>
 <translation id="838870586332499308">Omogući roaming podataka</translation>
 <translation id="8390049129576938611">Onemogućuje interni preglednik PDF-ova na usluzi <ph name="PRODUCT_NAME" />. Tretira ga kao preuzimanje i omogućuje uređaju da otvara PDF datoteke zadanom aplikacijom.
diff --git a/components/policy/resources/policy_templates_hu.xtb b/components/policy/resources/policy_templates_hu.xtb
index a2688d0..c93bdddb4b 100644
--- a/components/policy/resources/policy_templates_hu.xtb
+++ b/components/policy/resources/policy_templates_hu.xtb
@@ -2197,9 +2197,6 @@
 <translation id="8344454543174932833">Könyvjelzők importálása az alapértelmezett böngészőből az első indításkor</translation>
 <translation id="8359734107661430198">Az ExampleDeprecatedFeature API engedélyezése 2008. 09. 02-ig</translation>
 <translation id="8369602308428138533">Képernyő kikapcsolásának késleltetése hálózati áramról való működés során</translation>
-<translation id="8370471134641900314">Ha a házirend értéke igaz, akkor a felhasználónak be kell jelentkeznie a <ph name="PRODUCT_NAME" /> böngészőbe a profiljával, hogy használhassa. A BrowserGuestModeEnabled házirend alapértelmezett értéke hamisra lesz állítva.
-
-      Ha a házirend értéke hamis, vagy ha nincs konfigurálva, a felhasználó bejelentkezés nélkül is használhatja a <ph name="PRODUCT_NAME" /> böngészőt.</translation>
 <translation id="8382184662529825177">Távoli hitelesítés engedélyezése az eszközön lévő tartalmak védelme érdekében</translation>
 <translation id="838870586332499308">Adatbarangolás engedélyezése</translation>
 <translation id="8390049129576938611">Kikapcsolja a belső PDF-olvasót a(z) <ph name="PRODUCT_NAME" /> termékben. Ehelyett letöltésként kezeli, és engedélyezi a felhasználó számára PDF-fájlok megnyitását az alapértelmezett alkalmazással.
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index 598a6bd..18510fb 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -937,7 +937,7 @@
 
       Jika kebijakan ini tidak dikonfigurasi <ph name="PRODUCT_NAME" /> akan menggunakan versi maksimum default.
 
-      Jika tidak, kebijakan akan disetel ke salah satu nilai berikut: "tls1.2" atau "tls1.3". Jika disetel, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih besar dari versi yang ditentukan. Nilai yang tidak dikenal akan diabaikan.</translation>
+      Jika dikonfigurasi, kebijakan dapat disetel ke salah satu nilai berikut: "tls1.2" atau "tls1.3". Jika disetel, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih besar daripada versi yang ditentukan. Nilai yang tidak dikenal akan diabaikan.</translation>
 <translation id="4121350739760194865">Mencegah promosi apl muncul di halaman tab baru</translation>
 <translation id="4157003184375321727">Laporkan versi OS dan firmware</translation>
 <translation id="4183229833636799228">Setelan <ph name="FLASH_PLUGIN_NAME" /> default</translation>
@@ -999,7 +999,7 @@
 <translation id="4346674324214534449">Memungkinkan Anda menyetel apakah iklan harus diblokir di situs yang menayangkan iklan mengganggu.
 
       Jika kebijakan ini disetel ke 2, iklan akan diblokir di situs yang menayangkan iklan mengganggu.
-      Namun perilaku ini tidak akan memicu jika kebijakan SafeBrowsingEnabled disetel ke False.
+      Namun perilaku ini tidak akan terpicu jika kebijakan SafeBrowsingEnabled disetel ke False.
       Jika kebijakan ini disetel ke 1, iklan tidak akan diblokir di situs yang menayangkan iklan mengganggu.
       Jika kebijakan ini tidak disetel, 2 akan digunakan.</translation>
 <translation id="4347908978527632940">Jika nilai disetel ke "true" dan pengguna adalah pengguna yang dilindungi, aplikasi Android lainnya dapat mengajukan kueri batasan web pengguna melalui penyedia konten.
@@ -2201,9 +2201,6 @@
 <translation id="8344454543174932833">Impor bookmark dari browser default saat pertama kali dijalankan</translation>
 <translation id="8359734107661430198">Aktifkan API ExampleDeprecatedFeature hingga 02/09/2008</translation>
 <translation id="8369602308428138533">Penundaan mematikan layar saat menggunakan daya AC</translation>
-<translation id="8370471134641900314">Jika kebijakan ini disetel ke true, pengguna harus login ke <ph name="PRODUCT_NAME" /> dengan profilnya sebelum menggunakan browser. Nilai default BrowserGuestModeEnabled akan disetel ke false.
-
-      Jika kebijakan ini disetel ke false atau tidak dikonfigurasi, pengguna dapat menggunakan browser tanpa harus login ke <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Mengaktifkan penggunaan pengesahan jarak jauh untuk perlindungan konten bagi perangkat</translation>
 <translation id="838870586332499308">Aktifkan roaming data</translation>
 <translation id="8390049129576938611">Menonaktifkan penampil PDF internal di <ph name="PRODUCT_NAME" />. Bukan memperlakukannya sebagai download dan mengizinkan membuka file PDF menggunakan aplikasi default.
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 56474401..de0178a1 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -2140,9 +2140,6 @@
 <translation id="8344454543174932833">Importa Preferiti dal browser predefinito alla prima esecuzione</translation>
 <translation id="8359734107661430198">Attiva l'API ExampleDeprecatedFeature valida fino al 02/09/2008</translation>
 <translation id="8369602308428138533">Ritardo disattivazione schermo in caso di utilizzo di CA</translation>
-<translation id="8370471134641900314">Se la norma viene impostata su true, l'utente deve accedere a <ph name="PRODUCT_NAME" /> con il proprio profilo per utilizzare il browser e il valore predefinito BrowserGuestModeEnabled viene impostato su false.
-
-Se la norma viene impostata su false o non viene configurata, l'utente può utilizzare il browser senza accedere a <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Attiva l'utilizzo dell'attestazione remota per la protezione dei contenuti per il dispositivo</translation>
 <translation id="838870586332499308">Attiva roaming dati</translation>
 <translation id="8390049129576938611">Consente di disattivare il visualizzatore di PDF interno di <ph name="PRODUCT_NAME" />. I file PDF vengono gestiti come download che l'utente può aprire con l'applicazione predefinita.
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb
index d7cf03c..b6e2dacc 100644
--- a/components/policy/resources/policy_templates_iw.xtb
+++ b/components/policy/resources/policy_templates_iw.xtb
@@ -995,7 +995,7 @@
 <translation id="4346674324214534449">‏המדיניות הזו מאפשרת לך להגדיר אם צריך לחסום מודעות באתרים עם מודעות שמפריעות.
 
       אם המדיניות מקבלת את הערך 2, מודעות באתרים עם מודעות שמפריעות ייחסמו.
-      עם זאת, ההתנהגות הזו לא תופעל אם המדיניות SafeBrowsingEnabled קיבלה את הערך 'לא נכון'.
+      עם זאת, ההתנהגות הזו לא תופעל אם המדיניות SafeBrowsingEnabled קיבלה את הערך False.
       אם המדיניות מקבלת את הערך 1, מודעות באתרים עם מודעות שמפריעות לא ייחסמו.
       אם המדיניות לא מוגדרת, המערכת תשתמש בערך 2.</translation>
 <translation id="4347908978527632940">‏אם הערך הוא true וזהו משתמש בפיקוח, אפליקציות Android נוספות יכולות לבצע שאילתות ביחס להגבלות האינטרנט של המשתמש באמצעות ספק תוכן.
@@ -2205,9 +2205,6 @@
 <translation id="8344454543174932833">ייבא ​​סימניות מדפדפן ברירת המחדל בהפעלה הראשונה</translation>
 <translation id="8359734107661430198">‏הפעל את ממשק ה-API ‏של ExampleDeprecatedFeature עד 2.9.2008</translation>
 <translation id="8369602308428138533">השהיה של כיבוי מסך כשנעשה שימוש בשקע חשמל</translation>
-<translation id="8370471134641900314">‏אם המדיניות הזו מוגדרת ל-true, המשתמשים נדרשים להיכנס אל <ph name="PRODUCT_NAME" /> באמצעות הפרופיל האישי שלהם כדי להשתמש בדפדפן. ערך ברירת המחדל של BrowserGuestModeEnabled יוגדר ל-false.
-
-      אם המדיניות הזו מוגדרת ל-false או אם היא לא מוגדרת, אפשר להשתמש בדפדפן בלי להיכנס אל <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">הפעל את השימוש בהזדהות מרחוק להגנה על תוכן עבור המכשיר הזה</translation>
 <translation id="838870586332499308">הפעל נתוני נדידה</translation>
 <translation id="8390049129576938611">‏משבית את מציג ה-PDF הפנימי של <ph name="PRODUCT_NAME" />. במקום להשתמש במציג הפנימי, המערכת מתייחסת לקובצי PDF כהורדה ומאפשרת למשתמש לפתוח אותם באפליקציה המוגדרת כברירת מחדל.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index 7bc9dc5d..eabb8a0 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -2197,9 +2197,6 @@
 <translation id="8344454543174932833">初回実行時にデフォルトのブラウザからブックマークをインポートする</translation>
 <translation id="8359734107661430198">ExampleDeprecatedFeature API を 2008 年 9 月 2 日いっぱい有効にする</translation>
 <translation id="8369602308428138533">画面がオフになるまでの時間(AC 電源での実行時)</translation>
-<translation id="8370471134641900314">このポリシーを true に設定した場合、ユーザーがブラウザを使用するには自分のプロフィールで <ph name="PRODUCT_NAME" /> にログインする必要があります。また、BrowserGuestModeEnabled の既定値は false に設定されます。
-
-      このポリシーを false に設定するか未設定のままにした場合、ユーザーは <ph name="PRODUCT_NAME" /> にログインしなくてもブラウザを使用できます。</translation>
 <translation id="8382184662529825177">デバイスのコンテンツ保護に関するリモート認証の使用を有効にする</translation>
 <translation id="838870586332499308">データ ローミングを有効にする</translation>
 <translation id="8390049129576938611"><ph name="PRODUCT_NAME" /> で内部 PDF ビューアを無効にします。この場合、ユーザーはダウンロードしたファイルと同じように、PDF ファイルをデフォルトのアプリで開くことができます。
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb
index 74f6c222..71fc1fc 100644
--- a/components/policy/resources/policy_templates_kn.xtb
+++ b/components/policy/resources/policy_templates_kn.xtb
@@ -2443,9 +2443,6 @@
 <translation id="8357681633047935212">ಬಳಕೆದಾರ ಸೆಶನ್‌ ಅಳತೆಯನ್ನು ಮಿತಿಯಲ್ಲಿಡಿ</translation>
 <translation id="8359734107661430198">2008/09/02 ಮೂಲಕ ಉದಾಹರಣೆಗೆ ಅಸಮ್ಮತಿಸಿದ API ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="8369602308428138533">AC ಪವರ್‌ನಲ್ಲಿರನ್‌ ಆಗುತ್ತಿರುವಾಗ ಪರದೆ ಆಫ್ ವಿಳಂಬವಾಗುತ್ತದೆ</translation>
-<translation id="8370471134641900314">ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದರೆ, ಬಳಕೆದಾರರು ಬ್ರೌಸರ್ ಬಳಸುವ ಮೊದಲು ತಮ್ಮ ಪ್ರೊಫೈಲ್ ಮೂಲಕ <ph name="PRODUCT_NAME" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕು. ಮತ್ತು BrowserGuestModeEnabled ನ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಲಾಗುತ್ತದೆ.
-
-      ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡದೇ ಇದ್ದರೆ, ಬಳಕೆದಾರರು <ph name="PRODUCT_NAME" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡದೇ ಬ್ರೌಸರ್ ಅನ್ನು ಬಳಸಬಹುದು.</translation>
 <translation id="8380490658357556620">ರಿಮೋಟ್ ಕ್ಲೈಂಟ್‌ಗಳು ಈ ಯಂತ್ರಕ್ಕೆ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವಾಗ ಅವಲಂಬಿತ ಸರ್ವರ್‌ಗಳ ಬಳಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
 
           ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ನೇರ ಸಂಪರ್ಕ ಲಭ್ಯವಿರದ ಸಂದರ್ಭದಲ್ಲಿ ರಿಮೋಟ್ ಕ್ಲೈಂಟ್‌ಗಳು ಈ ಯಂತ್ರಕ್ಕೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ಅವಲಂಬಿತ ಸರ್ವರ್‌ಗಳನ್ನು ಬಳಸಬಹುದು (ಉದಾ, ಫೈರ್‌ವಾಲ್ ನಿರ್ಬಂಧನೆಗಳ ಕಾರಣ).
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index abe371c..0fa6bb01 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -2317,9 +2317,6 @@
 <translation id="8344454543174932833">처음 실행 시 기본 브라우저에서 북마크 가져오기</translation>
 <translation id="8359734107661430198">ExampleDeprecatedFeature API를 2008년 9월 2일까지 사용하도록 설정</translation>
 <translation id="8369602308428138533">AC 전원으로 실행할 때 화면 꺼짐 지연</translation>
-<translation id="8370471134641900314">이 정책이 true로 설정되어 있으면 사용자가 브라우저를 사용하기 전에 자신의 프로필을 사용해 <ph name="PRODUCT_NAME" />에 로그인해야 합니다. BrowserGuestModeEnabled의 기본값은 false로 설정됩니다.
-
-      이 정책이 false로 설정되거나 설정되어 있지 않은 경우 사용자는 <ph name="PRODUCT_NAME" />에 로그인하지 않고도 브라우저를 사용할 수 있습니다.</translation>
 <translation id="8382184662529825177">기기의 콘텐츠 보호에 원격 인증을 사용합니다.</translation>
 <translation id="838870586332499308">데이터 로밍 사용</translation>
 <translation id="8390049129576938611"><ph name="PRODUCT_NAME" />의 내부 PDF 뷰어를 사용 중지합니다. 대신 이를 다운로드 파일로 처리해 사용자가 기본 애플리케이션으로 PDF 파일을 열 수 있도록 합니다.
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb
index 195b1c2..68dd86b7 100644
--- a/components/policy/resources/policy_templates_lt.xtb
+++ b/components/policy/resources/policy_templates_lt.xtb
@@ -2326,9 +2326,6 @@
 <translation id="8344454543174932833">Importuoti žymes iš numatytosios naršyklės paleidžiant pirmą kartą</translation>
 <translation id="8359734107661430198">Įgalinkite „ExampleDeprecatedFeature“ API iki 2008-09-02</translation>
 <translation id="8369602308428138533">Ekrano išjungimo delsa, kai naudojama kintamosios srovės energija</translation>
-<translation id="8370471134641900314">Jei ši politika nustatyta į „true“, naudotojas naršyklėje turi prisijungti prie „<ph name="PRODUCT_NAME" />“ naudodamas savo profilį. O numatytoji „BrowserGuestModeEnabled“ vertė bus nustatyta į „false“.
-
-      Jei ši politika nustatyta į „false“ arba nesukonfigūruota, naudotojas galės naudoti naršyklę neprisijungęs prie „<ph name="PRODUCT_NAME" />“.</translation>
 <translation id="8382184662529825177">Įgalinti nuotolinio patvirtinimo naudojimą siekiant apsaugoti įrenginio turinį</translation>
 <translation id="838870586332499308">Įgalinti duomenų tarptinklinį ryšį</translation>
 <translation id="8390049129576938611">Išjungiama vidinė PDF peržiūros priemonė „<ph name="PRODUCT_NAME" />“. Failai laikomi atsisiuntimu ir naudotojui leidžiama atidaryti PDF failus naudojant numatytąją programą.
diff --git a/components/policy/resources/policy_templates_lv.xtb b/components/policy/resources/policy_templates_lv.xtb
index 605d809d..c31a536 100644
--- a/components/policy/resources/policy_templates_lv.xtb
+++ b/components/policy/resources/policy_templates_lv.xtb
@@ -2321,9 +2321,6 @@
 <translation id="8344454543174932833">Grāmatzīmju importēšana no noklusējuma pārlūka pirmajā palaišanas reizē</translation>
 <translation id="8359734107661430198">Iespējot ExampleDeprecatedFeature API, kas bija derīgs līdz 02.09.2008.</translation>
 <translation id="8369602308428138533">Aizkave līdz ekrāna izslēgšanai, ja ierīce darbojas ar maiņstrāvu</translation>
-<translation id="8370471134641900314">Ja šai politikai ir iestatīta vērtība “true”, lietotājam pirms pārlūka <ph name="PRODUCT_NAME" /> lietošanas ir jāpierakstās savā profilā. Šādā gadījumā politikai BrowserGuestModeEnabled tiek iestatīta noklusējuma vērtība “false”.
-
-      Ja šai politikai ir iestatīta vērtība “false” vai politika nav konfigurēta, lietotājs var lietot pārlūku <ph name="PRODUCT_NAME" /> bez pierakstīšanās.</translation>
 <translation id="8382184662529825177">Iespējot attālās apstiprināšanas lietošanu ierīces satura aizsardzībai</translation>
 <translation id="838870586332499308">Iespējot datu viesabonēšanu</translation>
 <translation id="8390049129576938611">Atspējo <ph name="PRODUCT_NAME" /> iekšējo PDF skatītāju. Tā vietā PDF faili tiek apstrādāti kā lejupielādes, un lietotājs tos var atvērt noklusējuma lietojumprogrammā.
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb
index d7587504..5b0d9ab5 100644
--- a/components/policy/resources/policy_templates_ml.xtb
+++ b/components/policy/resources/policy_templates_ml.xtb
@@ -2649,9 +2649,6 @@
 <translation id="8357681633047935212">ഒരു ഉപയോക്തൃ സെഷന്റെ ദൈർഘ്യം പരിമിതപ്പെടുത്തുക</translation>
 <translation id="8359734107661430198">2008/09/02 എന്നതിലൂടെ ExampleDeprecatedFeature API പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="8369602308428138533"> AC പവറിൽ പ്രവർത്തിക്കുമ്പോഴുള്ള സ്‌ക്രീൻ ഓഫ് കാലതാമസം</translation>
-<translation id="8370471134641900314">ഈ നയം 'ശരി'യെന്ന് സജ്ജമാക്കുകയാണെങ്കിൽ, ബ്രൗസർ ഉപയോഗിക്കുന്നതിന് മുമ്പ് ഉപയോക്താക്കൾ അവരുടെ പ്രൊഫൈൽ ഉപയോഗിച്ച് <ph name="PRODUCT_NAME" /> എന്നതിൽ സൈൻ ഇൻ ചെയ്യേണ്ടതുണ്ട്. ഒപ്പം BrowserGuestModeEnabled എന്നതിന്റെ ഡിഫോൾട്ട് മൂല്യം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയും ചെയ്യും.
-
-      ഈ നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയോ കോൺഫിഗർ ചെയ്യാതിരിക്കുകയോ ആണെങ്കിൽ, ഉപയോക്താവിന് <ph name="PRODUCT_NAME" /> എന്നതിൽ സൈൻ ഇൻ ചെയ്യാതെ തന്നെ ബ്രൗസർ ഉപയോഗിക്കാനാവും.</translation>
 <translation id="8380490658357556620">വിദൂര ക്ലയന്റുകൾ ഈ മെഷീനിൽ ഒരു കണക്ഷൻ സ്ഥാപിക്കാൻ ശ്രമിക്കുമ്പോൾ, റിലേ സെർവറുകളുടെ ഉപയോഗം പ്രവർത്തനക്ഷമമാക്കുന്നു.
 
           ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, തുടർന്ന് നേരിട്ടുള്ള ഒരു കണക്ഷൻ ലഭ്യമല്ലാത്തപ്പോൾ ഈ മെഷീനിൽ കണക്‌റ്റുചെയ്യാൻ വിദൂര ക്ലയന്റുകൾക്ക് റിലേ സെർവറുകൾ ഉപയോഗിക്കാനാവും (ഉദാ. ഫയർവാൾ നിയന്ത്രണങ്ങൾ കാരണം).
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb
index 25e71ae..bdd400e 100644
--- a/components/policy/resources/policy_templates_mr.xtb
+++ b/components/policy/resources/policy_templates_mr.xtb
@@ -248,7 +248,7 @@
 <translation id="1803646570632580723">लाँचर मध्‍ये दर्शविण्‍यासाठी पिन केलेल्या अनुप्रयोगांची सूची</translation>
 <translation id="1808715480127969042">या साइटवरील कुकीज अवरोधित करा </translation>
 <translation id="1827523283178827583">निश्चित केलेले प्रॉक्सी सर्व्हर वापरा</translation>
-<translation id="1843117931376765605">वापरकर्ता धोरणासाठी रेट रीफ्रेश करा</translation>
+<translation id="1843117931376765605">वापरकर्ता धोरणासाठी रेट रिफ्रेश करा</translation>
 <translation id="1844620919405873871">द्रुत अनलॉक संबधी धोरणे कॉन्फिगर करते.</translation>
 <translation id="1847960418907100918">POST सह झटपट शोध करताना वापरलेले प्राचल निर्दिष्ट करते. हे स्वल्पविरामाने-विभक्त केलेल्या नाव/मूल्य जोड्यांचे बनलेले असते. मूल्य हे टेम्पलेट प्राचल असल्यास, वरील उदाहरणातील {searchTerms} प्रमाणे, ते खर्‍या शोध संज्ञा डेटासह पुनर्स्थित केले जाईल.
 
@@ -311,11 +311,11 @@
 <translation id="201557587962247231">डिव्‍हाइस स्थिती अहवाल अपलोडची वारंवारता</translation>
 <translation id="2018836497795982119">डिव्हाइस व्यवस्‍थापन सेवेकडे वापरकर्ता धोरण माहितीसाठी क्वेरी करण्‍यात आली तो कालावधी मि‍लीसेकंदात निर्दिष्‍ट करते. 
 
-हे धोरण सेट केल्याने 3 तासांचे डीफॉल्ट मूल्य ओलांडले जाते. या धोरणासाठी वैध मूल्ये 1800000 (30 मिनिटे) ते 86400000 (1 दिवसाच्या) श्रेणीत आहेत. या श्रेणीत नसणारी कोणतीही मूल्ये अनुक्रमे सीमारेखांवर बद्ध करण्‍यात येतील. प्लॅटफॉर्म धोरण सूचनांचे समर्थन करत असल्यास, रीफ्रेश विलंब 24 तासांसाठी सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रीफ्रेश करण्याची सक्ती केली जाईल.
+हे धोरण सेट केल्याने 3 तासांचे डीफॉल्ट मूल्य ओलांडले जाते. या धोरणासाठी वैध मूल्ये 1800000 (30 मिनिटे) ते 86400000 (1 दिवसाच्या) श्रेणीत आहेत. या श्रेणीत नसणारी कोणतीही मूल्ये अनुक्रमे सीमारेखांवर बद्ध करण्‍यात येतील. प्लॅटफॉर्म धोरण सूचनांचे समर्थन करत असल्यास, रिफ्रेश विलंब 24 तासांसाठी सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रिफ्रेश करण्याची सक्ती केली जाईल.
 
       हे धोरण सेट न करता सोडल्यास <ph name="PRODUCT_NAME" /> 3 तासांच्या डीफॉल्ट मूल्याचा वापर करेल.
 
-      लक्षात ठेवा की प्लॅटफॉर्म धोरण सूचनांचे समर्थन करीत असल्यास, रीफ्रेश विलंब 24 तासांसाठी (सर्व डीफॉल्ट आणि धोरणाचे मूल्य दुर्लक्षित करून) सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रीफ्रेश करण्याची सक्ती केली जाईल, जे वारंवार केल्या जाणार्‍या रीफ्रेश क्रिया अनावश्यक बनविते.</translation>
+      लक्षात ठेवा की प्लॅटफॉर्म धोरण सूचनांचे समर्थन करीत असल्यास, रिफ्रेश विलंब 24 तासांसाठी (सर्व डीफॉल्ट आणि धोरणाचे मूल्य दुर्लक्षित करून) सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रिफ्रेश करण्याची सक्ती केली जाईल, जे वारंवार केल्या जाणार्‍या रिफ्रेश क्रिया अनावश्यक बनविते.</translation>
 <translation id="2024476116966025075">दूरस्थ प्रवेश क्लायंटसाठी आवश्यक असलेले डोमेन नाव कॉन्फिगर करा</translation>
 <translation id="2030905906517501646">डीफॉल्ट शोध प्रदाता कीवर्ड</translation>
 <translation id="203096360153626918">या धोरणाचा Android अॅप्सवर प्रभाव नसतो. हे धोरण <ph name="FALSE" /> वर सेट केले असले तरी देखील ते पूर्ण स्क्रीनमोड मध्ये प्रवेश करण्यात सक्षम असतील.</translation>
@@ -1417,7 +1417,7 @@
           'DefaultSearchProviderEnabled' धोरण सक्षम असल्यासच या धोरणाचा फक्त आदर केला जातो.</translation>
 <translation id="489803897780524242">डीफॉल्ट शोध प्रदात्याकरिता शोध संज्ञा स्थान नियोजन नियंत्रणासाठी मापदंड</translation>
 <translation id="4899708173828500852">सुरक्षित ब्राउझिंग सक्षम करा</translation>
-<translation id="4906194810004762807">डिव्हाइस धोरणाबद्दल रेट रीफ्रेश करा</translation>
+<translation id="4906194810004762807">डिव्हाइस धोरणाबद्दल रेट रिफ्रेश करा</translation>
 <translation id="494613465159630803">Cast रीसीव्हर</translation>
 <translation id="4962262530309732070">हे धोरण सत्य म्हणून सेट केले असल्‍यास किंवा कॉन्फिगर केले नसल्‍यास, <ph name="PRODUCT_NAME" /> वापरकर्ता व्यवस्थापकाकडून व्यक्ती जोडण्यास अनुमती देईल.
 
@@ -1632,7 +1632,7 @@
 
       हे धोरण सेट न करता सोडल्यास <ph name="PRODUCT_OS_NAME" /> 3 तासांच्या डीफॉल्ट मूल्याचा वापर करेल.
 
-      लक्षात ठेवा की प्लॅटफॉर्म धोरण सूचनांचे समर्थन करीत असल्यास, रीफ्रेश विलंब 24 तासांसाठी (सर्व डीफॉल्ट आणि धोरणाचे मूल्य दुर्लक्षित करून) सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रीफ्रेश करण्याची सक्ती केली जाईल, जे वारंवार केल्या जाणार्‍या रीफ्रेश क्रिया थांबविते.</translation>
+      लक्षात ठेवा की प्लॅटफॉर्म धोरण सूचनांचे समर्थन करीत असल्यास, रिफ्रेश विलंब 24 तासांसाठी (सर्व डीफॉल्ट आणि धोरणाचे मूल्य दुर्लक्षित करून) सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रिफ्रेश करण्याची सक्ती केली जाईल, जे वारंवार केल्या जाणार्‍या रिफ्रेश क्रिया थांबविते.</translation>
 <translation id="5530347722229944744">संभाव्यत: धोकादायक डाउनलोड ब्लॉक करा</translation>
 <translation id="5535973522252703021">Kerberos प्रतिनिधी सर्व्हर श्वेतसूची</translation>
 <translation id="555077880566103058">सर्व साइटना <ph name="FLASH_PLUGIN_NAME" /> प्लगइन आपोआप चालविण्याची परवानगी द्या</translation>
@@ -2329,7 +2329,7 @@
 <translation id="7632724434767231364">GSSAPI लायब्ररी नाव</translation>
 <translation id="7635471475589566552"><ph name="PRODUCT_NAME" /> मध्ये अॅप्लिकेशन लोकॅल कॉन्फिगर करते आणि वापरकर्त्यांना लोकॅल बदलण्यापासून प्रतिबंधित करते. आपण हे सेटिंग सक्षम केल्यास, <ph name="PRODUCT_NAME" /> निर्दिष्ट केलेले लोकॅल वापरते. कॉन्फिगर केलेले लोकॅल समर्थित नसल्यास, त्याऐवजी 'en-US' वापरले जाते. हे सेटिंग अक्षम केलेले किंवा कॉन्फिगर केलेले नसल्यास, <ph name="PRODUCT_NAME" /> वापरकर्त्याने-निर्दिष्ट केलेले लोकॅल (कॉन्फिगर असल्यास), सिस्टम लोकॅल किंवा फॉलबॅक लोकॅल 'en-US' पैकी एक वापरेल.</translation>
 <translation id="7651739109954974365">डिव्हाइससाठी डेटा रोमिंग सक्षम करावे किंवा नाही हे निर्धारित करते. खरे वर सेट केल्यास, डेटा रोमिंगला अनुमती दिली जाते. तो कॉन्फिगर न करता सोडल्यास किंवा चुकीचे वर सेट केल्यास, डेटा रोमिंग उपलब्ध असणार नाही.</translation>
-<translation id="7683777542468165012">वैविध्यतापूर्ण धोरण रीफ्रेश </translation>
+<translation id="7683777542468165012">वैविध्यतापूर्ण धोरण रिफ्रेश </translation>
 <translation id="7687943045976362719">हे धोरण सेट केले असल्यास निर्दिष्ट आशय प्रकार <ph name="PRODUCT_FRAME_NAME" /> द्वारे हाताळले जातात.
 
           हे धोरण सेट केले नसल्यास, सर्व साइटसाठी डीफॉल्ट प्रस्तुतकर्ता वापरला जाईल. (<ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> धोरण डीफॉल्ट प्रस्तुतकर्त्यास कॉन्फिगर करण्यासाठी वापरले जाऊ शकते.)</translation>
@@ -2409,7 +2409,7 @@
 <translation id="7822837118545582721">हे धोरण जेव्हा सत्यवर सेट केले असते तेव्हा, वापरकर्ते बाह्य संचय डिव्हाइसवर काहीही लिहू शकत नाहीत.
       हे सेटिंग असत्यवर सेट केले असल्यास किंवा कॉन्फिगर केले नसल्यास, वापरकर्ते बाह्य संचय डिव्हाइसच्या फायली तयार आणि सुधारित करू शकतात ज्या वास्तविकपणे लिहिण्यायोग्य असतात.
       या धोरणापेक्षा ExternalStorageDisabled धोरणास प्राधान्य मिळते - ExternalStorageDisabled सत्यवर सेट केल्यास, बाह्य संचयामधील सर्व प्रवेश अक्षम केला जातो आणि परिणामी हे धोरण दुर्लक्षित केले जाते.
-      या धोरणाचे गतीशील रीफ्रेश करणे M56 आणि त्यानंतरच्या आवृत्तीमध्ये समर्थित आहे.</translation>
+      या धोरणाचे गतीशील रिफ्रेश करणे M56 आणि त्यानंतरच्या आवृत्तीमध्ये समर्थित आहे.</translation>
 <translation id="7831595031698917016">धोरण रद्द करणे प्राप्त करण्यात आणि डिव्हाइस व्यवस्थापन सेवेकडील नवीन धोरण आणताना कमाल विलंब मिलिसेकंदांमध्ये निर्दिष्ट करते.
 
       हे धोरण सेट करण्याने 5000 मिलिसेकंदांचे डीफॉल्ट मूल्य अधिलिखित होते. या धोरणाकरिता वैध मूल्ये ही 1000 (1 सेकंद) पासून 300000 (5 मिनिटे) पर्यंतच्या श्रेणीमध्ये असतात. या श्रेणीतील कोणतीही मूल्ये संबंधित सीमेवर जोडली जातील.
@@ -2603,9 +2603,6 @@
 <translation id="8357681633047935212">वापरकर्ता सत्राची लांबी मर्यादित करा</translation>
 <translation id="8359734107661430198">2008/09/02 द्वारे ExampleDeprecatedFeature API सक्षम करा</translation>
 <translation id="8369602308428138533">AC उर्जेवर चालताना स्क्रीन बंद विलंब</translation>
-<translation id="8370471134641900314">हे धोरण सत्य वर सेट केल्यास, ब्राउझर वापरण्यापूर्वी वापरकर्त्यास <ph name="PRODUCT_NAME" /> मध्ये त्यांच्या प्रोफाईलसह साइन इन करावे लागेल आणि BrowserGuestModeEnabled चे डीफॉल्ट मूल्य असत्यवर सेट केले जाईल.
-
-      हे धोरण असत्य वर सेट केल्यास किंवा कॉन्फिगर केले नसल्यास, वापरकर्ता <ph name="PRODUCT_NAME" /> मध्ये साइन इन न करता ब्राउझर वापरू शकतो.</translation>
 <translation id="8380490658357556620">जेव्हा या मशीनवर कनेक्शन इंस्टॉल करण्यासाठी रीमोट क्लायंट प्रयत्न करतात तेव्हा रीले सर्व्हरचा वापर चालू करते.
 
           ही सेटिंग चालू असल्यास, जेव्हा थेट कनेक्शन उपलब्ध नसते, तेव्हा या मशीनवर कनेक्ट करण्यासाठी रीमोट क्लायंट रीले सर्व्हर वापरू शकतात (उदा. फायरवॉल प्रतिबंधांमुळे).
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb
index 514a249..b14edb7 100644
--- a/components/policy/resources/policy_templates_ms.xtb
+++ b/components/policy/resources/policy_templates_ms.xtb
@@ -2321,9 +2321,6 @@
 <translation id="8344454543174932833">Import penanda halaman daripada penyemak imbas lalai pada kali pertama menjalankannya</translation>
 <translation id="8359734107661430198">Dayakan API ExampleDeprecatedFeature sehingga 2008/09/02</translation>
 <translation id="8369602308428138533">Kelewatan pemadaman skrin apabila dijalankan dengan kuasa AC</translation>
-<translation id="8370471134641900314">Jika dasar ini ditetapkan kepada benar, pengguna perlu mengelog masuk ke <ph name="PRODUCT_NAME" /> menggunakan profil mereka sebelum menggunakan penyemak imbas. Selain itu, nilai lalai BrowserGuestModeEnabled akan ditetapkan kepada palsu.
-
-      Jika dasar ini ditetapkan kepada palsu atau tidak dikonfigurasikan, pengguna boleh menggunakan penyemak imbas tanpa perlu mengelog masuk ke <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Dayakan penggunaan pembuktian jauh untuk perlindungan kandungan bagi peranti</translation>
 <translation id="838870586332499308">Dayakan perayauan data</translation>
 <translation id="8390049129576938611">Melumpuhkan pemapar PDF dalaman dalam <ph name="PRODUCT_NAME" />. Sebaliknya, dasar ini menganggapnya sebagai muat turun dan membenarkan pengguna membuka fail PDF dengan aplikasi lalai.
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 15daf0c..341796c6 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -970,7 +970,7 @@
 <translation id="4105989332710272578">Handhaving van Certificaattransparantie voor een lijst met URL's uitschakelen</translation>
 <translation id="4111405663956464686">Waarschuwing: Het beleid voor de maximale TLS-versie wordt rond versie 72 (rond januari 2019) volledig verwijderd uit <ph name="PRODUCT_NAME" />.
 
-      Als dit beleid niet is geconfigureerd, gebruikt <ph name="PRODUCT_NAME" /> de standaard maximumversie.
+      Als dit beleid niet is geconfigureerd, gebruikt <ph name="PRODUCT_NAME" /> de standaard maximale versie.
 
       Dit beleid kan ook worden ingesteld op een van de volgende waarden: 'tls1.2' of 'tls1.3'. Wanneer dit beleid is ingesteld, gebruikt <ph name="PRODUCT_NAME" /> geen hogere SSL-/TLS-versies dan de opgegeven versie. Als er een waarde wordt ingesteld die niet wordt herkend, wordt deze genegeerd.</translation>
 <translation id="4121350739760194865">Voorkomen dat app-promoties worden weergegeven op de pagina 'Nieuw tabblad'</translation>
@@ -2293,9 +2293,6 @@
 <translation id="8344454543174932833">Bladwijzers importeren uit standaardbrowser bij eerste uitvoering</translation>
 <translation id="8359734107661430198">API voor ExampleDeprecatedFeature tot en met 02-09-2008 inschakelen</translation>
 <translation id="8369602308428138533">Vertraging van scherm uitschakelen wanneer op netstroom wordt gewerkt</translation>
-<translation id="8370471134641900314">Als dit beleid is ingesteld op 'true' (waar), moet de gebruiker inloggen bij <ph name="PRODUCT_NAME" /> met zijn profiel voordat hij de browser gebruikt. De standaardwaarde van BrowserGuestModeEnabled wordt ingesteld op 'false' (onwaar).
-
-      Als dit beleid is ingesteld op 'false' (onwaar) of niet is geconfigureerd, kan de gebruiker de browser gebruiken zonder in te loggen bij <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Het gebruik van externe verificatie inschakelen voor het beveiligen van content voor het apparaat</translation>
 <translation id="838870586332499308">Dataroaming inschakelen</translation>
 <translation id="8390049129576938611">Hiermee wordt de interne pdf-viewer in <ph name="PRODUCT_NAME" /> uitgeschakeld. In plaats daarvan wordt dit beschouwd als download. De gebruiker kan pdf-bestanden openen met de standaard-app.
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb
index d96ad5d..ab18f68 100644
--- a/components/policy/resources/policy_templates_no.xtb
+++ b/components/policy/resources/policy_templates_no.xtb
@@ -1007,7 +1007,7 @@
 <translation id="4346674324214534449">Lar deg angi om annonser skal blokkeres på nettsteder med forstyrrende annonser.
 
       Hvis denne regelen er satt til «2», blokkeres annonser på nettsteder med forstyrrende annonser.
-      Denne atferden utløses imidlertid ikke hvis SafeBrowsingEnabled-regelen er satt til «Usann».
+      Denne funksjonaliteten utløses imidlertid ikke hvis SafeBrowsingEnabled-regelen er satt til «Usann».
       Hvis denne regelen er satt til «1», blokkeres ikke annonser på nettsteder med forstyrrende annonser.
       Hvis denne regelen ikke er angitt, brukes «2».</translation>
 <translation id="4347908978527632940">Hvis verdien er «true» (sann) og brukeren er en administrert bruker, kan andre Android-apper sende forespørsler om brukerens nettbegrensninger gjennom en innholdsleverandør.
@@ -1295,7 +1295,7 @@
 <translation id="5365946944967967336">Vis startsideknappen på verktøylinjen</translation>
 <translation id="5366745336748853475">Gjør det mulig å spesifisere en liste over nettadressemønstre som angir hvilke nettsteder det automatisk skal velges et klientsertifikat for. Dette skjer på påloggingsskjermen i rammen som er vert for SAML-flyten, hvis nettstedet krever et sertifikat. Et eksempel på bruk er å konfigurere et enhetsgjeldende sertifikat som skal presenteres til SAML IdP.
 
-      Verdien må være en matrise med JSON-kataloger i strengformat. Hver katalog må ha formen { "mønster": "$URL_PATTERN", "filter" : $FILTER }, der $URL_PATTERN er et mønster for spesifisering av innhold. $FILTER begrenser klientsertifikatene nettleseren automatisk velger fra. Uavhengig av hvilket filter som brukes, blir det bare valgt sertifikater som samsvarer med tjenerens sertifikatforespørsel. Hvis $FILTER har formen { "ISSUER": { "CN": "$ISSUER_CN" } }, velges det bare klientsertifikater som er utstedt av et sertifikat med CommonName $ISSUER_CN. Hvis $FILTER er den tomme katalogen {}, brukes det ikke ytterligere begrensninger for valg av klientsertifikater.
+      Verdien må være en matrise med JSON-kataloger i strengformat. Hver katalog må ha formen { "pattern": "$URL_PATTERN", "filter" : $FILTER }, der $URL_PATTERN er et mønster for spesifisering av innhold. $FILTER begrenser klientsertifikatene nettleseren automatisk velger fra. Uavhengig av hvilket filter som brukes, blir det bare valgt sertifikater som samsvarer med tjenerens sertifikatforespørsel. Hvis $FILTER har formen { "ISSUER": { "CN": "$ISSUER_CN" } }, velges det bare klientsertifikater som er utstedt av et sertifikat med CommonName $ISSUER_CN. Hvis $FILTER er den tomme katalogen {}, brukes det ikke ytterligere begrensninger for valg av klientsertifikater.
 
       Hvis du ikke spesifiserer denne regelen, blir det ikke valgt klientsertifikat automatisk for noen nettsteder.</translation>
 <translation id="5366977351895725771">Hvis angitt til «false» kan ikke denne brukeren opprette administrerte brukere. Eksisterende administrerte brukere er fortsatt tilgjengelige.
@@ -1775,7 +1775,7 @@
       logge på kontoene sine fra andre domener, men de får opp en feil
       når de prøver å bruke G Suite med disse kontoene.
 
-      Hvis du lar denne innstillingen stå tom / ikke konfigurerer den, har brukerne
+      Hvis du lar denne innstillingen stå tom / ikke konfigurert, har brukerne
       tilgang til G Suite med hvilken som helst konto.
 
       Denne regelen gjør at hodeelementet X-GoogApps-Allowed-Domains blir lagt til i
@@ -2259,9 +2259,6 @@
 <translation id="8344454543174932833">Importer bokmerker fra standard nettleser ved første kjøring</translation>
 <translation id="8359734107661430198">Slå på ExampleDeprecatedFeature API frem til og med 2008/09/02</translation>
 <translation id="8369602308428138533">Forsinkelse for avslått skjerm når du bruker strømadapteren</translation>
-<translation id="8370471134641900314">Hvis denne regelen angitt som «true» (sann), må brukeren logge på <ph name="PRODUCT_NAME" /> med profilen sin før vedkommende bruker nettleseren. Standardverdien for BrowserGuestModeEnabled er «false» (usann).
-
-      Hvis denne regelen er satt til «false» eller ikke er konfigurert, kan brukeren bruke nettleseren uten å logge på <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Slå på bruken av ekstern attestasjon for innholdsbeskyttelse på enheten</translation>
 <translation id="838870586332499308">Aktiver datastreifing</translation>
 <translation id="8390049129576938611">Slår av den interne appen for visning av PDF-filer i <ph name="PRODUCT_NAME" />. PDF-filer blir i stedet lastet ned, og brukeren kan åpne dem med standardappen.
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb
index 475559e..5f2ea81 100644
--- a/components/policy/resources/policy_templates_pl.xtb
+++ b/components/policy/resources/policy_templates_pl.xtb
@@ -2180,9 +2180,6 @@
 <translation id="8344454543174932833">Importuj zakładki z przeglądarki domyślnej przy pierwszym uruchomieniu</translation>
 <translation id="8359734107661430198">Włącz interfejs API ExampleDeprecatedFeature od 2 września 2008 r.</translation>
 <translation id="8369602308428138533">Opóźnienie wyłączenia ekranu przy zasilaniu sieciowym</translation>
-<translation id="8370471134641900314">Po włączeniu tej zasady użytkownik może korzystać z przeglądarki, pod warunkiem, że zaloguje się w: <ph name="PRODUCT_NAME" /> za pomocą swojego profilu. Domyślnie zasada BrowserGuestModeEnabled jest wyłączona.
-
-      Gdy ta zasada jest wyłączona lub nie została skonfigurowana, użytkownik może korzystać z przeglądarki bez logowania się w: <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Włącz używanie zaświadczania zdalnego do ochrony treści na urządzeniu</translation>
 <translation id="838870586332499308">Włącz dane w roamingu</translation>
 <translation id="8390049129576938611">Wyłącza wewnętrzną przeglądarkę plików PDF w <ph name="PRODUCT_NAME" />. Pliki PDF będą traktowane jako pobrane i użytkownik będzie mógł je otwierać w aplikacji domyślnej.
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 5c90df6..227db38 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -2185,9 +2185,6 @@
 <translation id="8344454543174932833">Importar favoritos do navegador padrão na primeira execução</translation>
 <translation id="8359734107661430198">Ativar a API ExampleDeprecatedFeature até 02/09/2008</translation>
 <translation id="8369602308428138533">Intervalo de desligamento da tela no funcionamento com alimentação CA</translation>
-<translation id="8370471134641900314">Se esta política for definida como true, o usuário precisará fazer login no <ph name="PRODUCT_NAME" /> com o próprio perfil antes de usar o navegador. O valor padrão de BrowserGuestModeEnabled será definido como false.
-
-      Se esta política for definida como false ou não for configurada, o usuário poderá usar o navegador sem fazer login no <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Permitir o uso de declaração remota para proteção de conteúdo no dispositivo</translation>
 <translation id="838870586332499308">Ativa roaming de dados</translation>
 <translation id="8390049129576938611">Desativa o visualizador de PDF interno no <ph name="PRODUCT_NAME" />. Em vez disso, ela o trata como um download e permite que o usuário abra os arquivos em PDF com o aplicativo padrão.
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb
index 07841164..ae1c9798 100644
--- a/components/policy/resources/policy_templates_pt-PT.xtb
+++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -2227,9 +2227,6 @@
 <translation id="8344454543174932833">Importar marcadores a partir do navegador predefinido na primeira execução</translation>
 <translation id="8359734107661430198">Ativar a API ExampleDeprecatedFeature através de 2008/09/02</translation>
 <translation id="8369602308428138533">Atraso para desligar o ecrã quando o dispositivo está ligado à eletricidade</translation>
-<translation id="8370471134641900314">Se esta política estiver definida como verdadeira, o utilizador tem de iniciar sessão no <ph name="PRODUCT_NAME" /> com o respetivo perfil antes de utilizar o navegador e o valor predefinido de BrowserGuestModeEnabled é definido como falso.
-
-      Se esta política for definida como falsa ou não for configurada, o utilizador pode utilizar o navegador sem iniciar sessão no <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Ativar a utilização da comprovação remota para proteção de conteúdo no dispositivo</translation>
 <translation id="838870586332499308">Ativar roaming de dados</translation>
 <translation id="8390049129576938611">Desativa o visualizador de PDF interno no <ph name="PRODUCT_NAME" />. Em vez disso, trata-o como uma transferência e permite ao utilizador abrir ficheiros PDF com a aplicação predefinida.
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb
index 67e2b53..f3514b98 100644
--- a/components/policy/resources/policy_templates_ro.xtb
+++ b/components/policy/resources/policy_templates_ro.xtb
@@ -2214,9 +2214,6 @@
 <translation id="8344454543174932833">Importați marcaje din browserul prestabilit, la prima rulare</translation>
 <translation id="8359734107661430198">Activează API-ul ExampleDeprecatedFeature până pe 02.09.2008</translation>
 <translation id="8369602308428138533">Interval până la oprirea ecranului la funcționarea pe c.a.</translation>
-<translation id="8370471134641900314">Dacă această politică este activată, utilizatorul trebuie să se conecteze la <ph name="PRODUCT_NAME" /> cu profilul său înainte de a folosi browserul. Iar politica BrowserGuestModeEnabled va fi în mod prestabilit dezactivată.
-
-      Dacă această politică este dezactivată sau nu este configurată, utilizatorul poate folosi browserul fără să se conecteze la <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Permiteți utilizarea atestării la distanță pentru protejarea conținutului pe dispozitiv</translation>
 <translation id="838870586332499308">Activează roamingul de date</translation>
 <translation id="8390049129576938611">Dezactivează vizualizatorul PDF intern în <ph name="PRODUCT_NAME" />. Îl tratează ca pe o descărcare și permite utilizatorului să deschidă fișierele PDF folosind aplicația prestabilită.
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 462600b..f60f9afd 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -2172,9 +2172,6 @@
 <translation id="8344454543174932833">Импорт закладок из браузера, используемого по умолчанию, при первом запуске</translation>
 <translation id="8359734107661430198">Включить ExampleDeprecatedFeature API (2008/09/02)</translation>
 <translation id="8369602308428138533">Задержка отключения экрана при работе от сети</translation>
-<translation id="8370471134641900314">Когда правило включено, пользователь должен войти в аккаунт в <ph name="PRODUCT_NAME" />, чтобы работать в браузере. При этом для параметра BrowserGuestModeEnabled устанавливается значение False.
-
-      Когда правило отключено или не настроено, <ph name="PRODUCT_NAME" /> можно использовать, не входя в аккаунт.</translation>
 <translation id="8382184662529825177">Включает удаленную проверку защиты контента для устройства</translation>
 <translation id="838870586332499308">Включить роуминг данных</translation>
 <translation id="8390049129576938611">Отключить встроенное средство просмотра PDF-файлов в <ph name="PRODUCT_NAME" /> и разрешить пользователю открывать их в приложении, установленном по умолчанию.
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb
index 0176d2a..3fa5344 100644
--- a/components/policy/resources/policy_templates_sk.xtb
+++ b/components/policy/resources/policy_templates_sk.xtb
@@ -2310,9 +2310,6 @@
 <translation id="8344454543174932833">Importovanie záložiek z predvoleného prehliadača pri prvom spustení</translation>
 <translation id="8359734107661430198">Povoliť rozhranie ExampleDeprecatedFeature API platné do 2. 9. 2008</translation>
 <translation id="8369602308428138533">Oneskorenie vypnutia obrazovky pri používaní napájacieho zdroja</translation>
-<translation id="8370471134641900314">Ak toto pravidlo nastavíte na možnosť True, používateľ sa musí prihlásiť do prehliadača <ph name="PRODUCT_NAME" /> pomocou svojho profilu ešte predtým, ako ho začne používať. Predvolená hodnota parametra BrowserGuestModeEnabled bude nastavená na možnosť False.
-
-      Ak toto pravidlo nastavíte na možnosť False alebo ho nenakonfigurujete, používateľ môže používať prehliadač <ph name="PRODUCT_NAME" /> bez prihlásenia.</translation>
 <translation id="8382184662529825177">Povoliť použitie vzdialeného overenia na ochranu obsahu pre zariadenie</translation>
 <translation id="838870586332499308">Povoliť roaming pre dátové prenosy</translation>
 <translation id="8390049129576938611">Zakáže v prehliadači <ph name="PRODUCT_NAME" /> interný zobrazovač súborov PDF. Súbory PDF sa budú sťahovať a používateľ ich bude môcť otvoriť v predvolenej aplikácii.
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb
index 88306d9..fa47f05b 100644
--- a/components/policy/resources/policy_templates_sl.xtb
+++ b/components/policy/resources/policy_templates_sl.xtb
@@ -2326,9 +2326,6 @@
 <translation id="8344454543174932833">Uvoz zaznamkov privzetega brskalnika ob prvem zagonu</translation>
 <translation id="8359734107661430198">Omogočanje API-ja ExampleDeprecatedFeature API do vključno 2. 9. 2008</translation>
 <translation id="8369602308428138533">Časovni zamik izklopa zaslona, če se napaja iz električnega omrežja</translation>
-<translation id="8370471134641900314">Če je ta pravilnik omogočen, se mora uporabnik s svojim profilom prijaviti v brskalnik <ph name="PRODUCT_NAME" />, preden ga lahko uporablja. Privzeta vrednost za pravilnik BrowserGuestModeEnabled bo nastavljena na onemogočeno.
-
-      Če je ta pravilnik onemogočen ali ni konfiguriran, lahko uporabnik uporablja brskalnik brez prijave v brskalnik <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Omogoči uporabo oddaljenega potrjevanja za zaščito vsebine za napravo</translation>
 <translation id="838870586332499308">Omogoči podatkovno gostovanje</translation>
 <translation id="8390049129576938611">V brskalniku <ph name="PRODUCT_NAME" /> onemogoči notranji pregledovalnik PDF-jev. Namesto tega datoteke PDF obravnava kot prenose in uporabniku omogoča njihovo odpiranje s privzeto aplikacijo.
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb
index 08a3b3b..7f7c07e 100644
--- a/components/policy/resources/policy_templates_sr.xtb
+++ b/components/policy/resources/policy_templates_sr.xtb
@@ -2323,9 +2323,6 @@
 <translation id="8344454543174932833">Увези обележиваче из подразумеваног прегледача при првом покретању</translation>
 <translation id="8359734107661430198">Омогући ExampleDeprecatedFeature API за 2.9.2008.</translation>
 <translation id="8369602308428138533">Време до искључивања екрана када је уређај прикључен на струју</translation>
-<translation id="8370471134641900314">Ако сте подесили ове смернице на Тачно, корисник мора да се пријави у <ph name="PRODUCT_NAME" /> помоћу свог профила да би користио прегледач. Подразумевана вредност за BrowserGuestModeEnabled биће подешена на „Нетачно“.
-
-      Ако подесите ове смернице на „Нетачно“ или их не конфигуришете, корисник може да користи прегледач без пријављивања у <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Омогућавање коришћења даљинске провере за заштиту садржаја за уређај</translation>
 <translation id="838870586332499308">Омогућавање роминга за податке</translation>
 <translation id="8390049129576938611">Онемогућава интерни PDF приказивач у <ph name="PRODUCT_NAME" />-у. Уместо тога га посматра као преузимање и омогућава кориснику да отвара PDF датотеке помоћу подразумеване апликације.
diff --git a/components/policy/resources/policy_templates_sv.xtb b/components/policy/resources/policy_templates_sv.xtb
index c1ed465..58b8e27a 100644
--- a/components/policy/resources/policy_templates_sv.xtb
+++ b/components/policy/resources/policy_templates_sv.xtb
@@ -2329,9 +2329,6 @@
 <translation id="8344454543174932833">Importera bokmärken från standardwebbläsaren första gången den körs</translation>
 <translation id="8359734107661430198">Aktivera API:et ExampleDeprecatedFeature sedan 2008-09-02.</translation>
 <translation id="8369602308428138533">Skärmavstängningstid när enheten är ansluten till elnätet</translation>
-<translation id="8370471134641900314">Om principen är inställd på sant måste användaren logga in i <ph name="PRODUCT_NAME" /> med sin profil för att kunna använda webbläsaren. Dessutom anges falskt som standardvärde för BrowserGuestModeEnabled.
-
-      Om principen är inställd på falskt eller om den inte har konfigurerats kan användaren använda webbläsaren utan att logga in i <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Aktivera användning av fjärrattestering för innehållsskydd för enheten</translation>
 <translation id="838870586332499308">Aktivera dataroaming</translation>
 <translation id="8390049129576938611">Inaktiverar den interna PDF-läsaren i <ph name="PRODUCT_NAME" />. PDF-filer behandlas i stället som nedladdningar så att användaren kan öppna dem med standardappen.
diff --git a/components/policy/resources/policy_templates_sw.xtb b/components/policy/resources/policy_templates_sw.xtb
index b667d95d..fd4e4e5 100644
--- a/components/policy/resources/policy_templates_sw.xtb
+++ b/components/policy/resources/policy_templates_sw.xtb
@@ -768,7 +768,7 @@
 <translation id="3512226956150568738">Ikiwa muundo wa kifaa teja tayari unatumia ARC kabla ya kuhamishiwa kwenye ext4 ili kutumia ARC na sera ya ArcEnabled imewekwa kuwa ndivyo, chaguo hili litafanya kazi kama AskUser (thamani ya 3). Katika hali zingine zote (ikiwa muundo wa kifaa haukuwa unatumia ARC hapo awali, au kama sera ya ArcEnabled imewekwa kuwa sivyo), thamani hii inalingana na DisallowArc (thamani ya 0).</translation>
 <translation id="3528000905991875314">Wezesha kurasa badala za hitilafu</translation>
 <translation id="3547954654003013442">Mipangilio ya proksi</translation>
-<translation id="3577251398714997599">Mipangilio ya matangazo ya tovuti zilizo na matangazo yanayokatiza matumizi</translation>
+<translation id="3577251398714997599">Mipangilio ya matangazo kwa tovuti zilizo na matangazo yanayokatiza matumizi</translation>
 <translation id="3591584750136265240">Weka mipangilio ya tabia ya kithibitishaji cha kuingia katika akaunti</translation>
 <translation id="3627678165642179114">Wezesha au lemaza huduma ya wavuti ya ukaguzi tahajia</translation>
 <translation id="3646859102161347133">Weka aina ya kikuza skrini</translation>
@@ -1022,7 +1022,7 @@
 <translation id="4346674324214534449">Inakuruhusu kubaini ikiwa matangazo yanapaswa kuzuiliwa kwenye tovuti zilizo na matangazo yanayokatiza matumizi. 
 Ikiwa sera hii imewekwa kuwa 2, matangazo yatazuiliwa kwenye tovuti zilizo na matangazo yanayozuia matumizi. 
 Hata hivyo, utendaji huu hautafanyika ikiwa sera ya SafeBrowsingEnabled imewekwa kuwa Sivyo.
-Ikiwa sera hii imewekwa kuwa1, matangazo hayatazuiliwa kwenye tovuti zilizo na matangazo yanayokatiza matumizi. 
+Ikiwa sera hii imewekwa kuwa 1, matangazo hayatazuiliwa kwenye tovuti zilizo na matangazo yanayokatiza matumizi. 
 Ikiwa sera hii haijawekwa, thamani ya 2 itatumika.</translation>
 <translation id="4347908978527632940">Ikiwa ndivyo na mtumiaji ni anayesimamiwa, basi programu nyingine za Android zinaweza kudadisi vikwazo vya wavuti vya mtumiaji kupitia kwa mtoa huduma za maudhui.
 
@@ -2271,9 +2271,6 @@
 <translation id="8344454543174932833">Ingiza alamisho kutoka kivinjari chaguo-msingi wakati wa uendeshaji wa kwanza</translation>
 <translation id="8359734107661430198">Washa API ya ExampleDeprecatedFeature kupitia 2008/09/02</translation>
 <translation id="8369602308428138533">Kuchelewa kwa kuzima skirini wakati nishati ya AC inapotumika</translation>
-<translation id="8370471134641900314">Sera hii ikiwekwa kuwa ndivyo, lazima mtumiaji aingie katika <ph name="PRODUCT_NAME" /> kwa kutumia wasifu wake kabla ya kutumia kivinjari. Na thamani chaguo-msingi ya BrowserGuestModeEnabled itawekwa kuwa sivyo.
-
-      Sera hii ikiwekwa kuwa sivyo au isipowekwa, mtumiaji anaweza kutumia kivinjari bila kuingia katika <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Washa matumizi ya usahihishaji wa mbali wa kulinda maudhui ya kifaa</translation>
 <translation id="838870586332499308">Wezesha utumiaji wa data nje ya mtandao wako wa kawaida</translation>
 <translation id="8390049129576938611">Huzima programu ya ndani ya kusoma PDF katika <ph name="PRODUCT_NAME" />. Badala yake huichukulia kama kupakuliwa na huruhusu mtumiaji kufungua faili za PDF kwa kutumia programu chaguo-msingi.
diff --git a/components/policy/resources/policy_templates_ta.xtb b/components/policy/resources/policy_templates_ta.xtb
index 67e7eae0..c9ab111 100644
--- a/components/policy/resources/policy_templates_ta.xtb
+++ b/components/policy/resources/policy_templates_ta.xtb
@@ -2166,9 +2166,6 @@
 <translation id="8344454543174932833">முதல் இயக்கத்தின்போதே இயல்புநிலை உலாவலிருந்து புக்மார்க்ஸை இறக்குமதி செய்</translation>
 <translation id="8359734107661430198">2008/09/02 வரை ExampleDeprecatedFeature API ஐ இயக்கு</translation>
 <translation id="8369602308428138533">AC சக்தியில் இயங்கும்போது திரை முடக்கம் தாமதமாகும்</translation>
-<translation id="8370471134641900314">இந்தக் கொள்கையை "சரி" என அமைத்தால், உலாவியைப் பயன்படுத்தும் முன், பயனர் தனது சுயவிவரத்தின் மூலம் <ph name="PRODUCT_NAME" /> இல் உள்நுழைய வேண்டும். அத்துடன், BrowserGuestModeEnabled இன் இயல்பு மதிப்பானது ”தவறு” என அமைக்கப்படும்.
-
-      இந்தக் கொள்கையை ”தவறு” என அமைத்தாலோ அல்லது உள்ளமைக்கவில்லை என்றாலோ, <ph name="PRODUCT_NAME" /> இல் உள்நுழையாமலே உலாவியைப் பயனர் பயன்படுத்தலாம்.</translation>
 <translation id="8382184662529825177">சாதனத்தின் உள்ளடக்கப் பாதுகாப்பிற்கான தொலைநிலைச் சான்றொப்பப் பயன்பாட்டை இயக்கவும்</translation>
 <translation id="838870586332499308">தரவு ரோமிங்கை இயக்கு</translation>
 <translation id="8390049129576938611"><ph name="PRODUCT_NAME" /> இல் அக PDF வியூவரை முடக்கும். அதற்குப் பதிலாக, அதைப் பதிவிறக்கமாகக் கருதி, இயல்புப் பயன்பாட்டில் PDF கோப்புகளைத் திறக்க பயனரை அனுமதிக்கும்.
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb
index 064426c..9fecfbb 100644
--- a/components/policy/resources/policy_templates_te.xtb
+++ b/components/policy/resources/policy_templates_te.xtb
@@ -878,7 +878,7 @@
 Quirks Serverని సంప్రదించి, అందుబాటులో ఉన్న పక్షంలో కాన్ఫిగరేషన్ ఫైల్‌లను డౌన్‌లోడ్ చేసి, ఆపై వాటిని పరికరంలో నిల్వ చేస్తుంది. అటువంటి ఫైల్‌లు జోడించబడిన మానిటర్‌ల డిస్‌ప్లే నాణ్యతను మెరుగుపరచడం మొదలైన వాటి కోసం ఉపయోగించబడవచ్చు.</translation>
 <translation id="3528000905991875314">ప్రత్యామ్నాయ లోప పేజీలని ప్రారంభించు</translation>
 <translation id="3547954654003013442">ప్రాక్సీ సెట్టింగ్‌లు</translation>
-<translation id="3577251398714997599">అనుచిత ప్రకటనలతో ఉన్న సైట్‌ల కోసం సెట్టింగ్‌లు</translation>
+<translation id="3577251398714997599">అనుచిత ప్రకటనల సైట్‌ల కోసం ప్రకటనల సెట్టింగ్</translation>
 <translation id="3591584750136265240">లాగిన్ ప్రామాణీకరణ ప్రవర్తనను కాన్ఫిగర్ చేయండి</translation>
 <translation id="3627678165642179114">అక్షరక్రమాన్ని తనిఖీ చేసే వెబ్ సేవను ప్రారంభిస్తుంది లేదా నిలిపివేస్తుంది</translation>
 <translation id="3631099945620529777">తప్పుకు సెట్ చేస్తే, విధి నిర్వాహికిలో 'ప్రాసెస్‌ను ముగించు' బటన్ నిలిపివేయబడుతుంది.
@@ -1176,11 +1176,11 @@
 <translation id="4320376026953250541">Microsoft Windows XP SP2 లేదా తర్వాత</translation>
 <translation id="4322842393287974810"><ph name="PRODUCT_OS_NAME" /> సంస్కరణను నియంత్రించడం కోసం సున్నా జాప్యంతో స్వయంచాలకంగా ప్రారంభించబడిన కియోస్క్ అనువర్తనాన్ని అనుమతించండి</translation>
 <translation id="4325690621216251241">సిస్టమ్ ట్రేకు లాగ్‌అవుట్ బటన్‌ను జోడించండి</translation>
-<translation id="4346674324214534449">అనుచిత ప్రకటనలతో సైట్‌లలో ప్రకటనలు బ్లాక్ చేయాలా వద్దా అనే దాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
+<translation id="4346674324214534449">అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయాలా వద్దా అనే దాన్ని సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది.
 
-      ఈ విధానం 2కి సెట్ చేయబడితే, అనుచిత ప్రకటనలతో సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడతాయి.
-      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానం అబద్ధంకి సెట్ చేయబడితే ఈ ప్రవర్తన ప్రారంభించబడదు.
-     ఈ విధానాన్ని 1కి సెట్ చేయబడితే, అనుచిత ప్రకటనలతో సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడవు.
+      ఈ విధానం 2కి సెట్ చేయబడితే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడతాయి.
+      ఏదేమైనప్పటికీ SafeBrowsingEnabled విధానం తప్పుకు సెట్ చేయబడితే ఈ ప్రవర్తన ప్రారంభించబడదు.
+     ఈ విధానాన్ని 1కి సెట్ చేయబడితే, అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలు బ్లాక్ చేయబడవు.
       ఈ విధానాన్ని సెట్ చేయకుండా వదిలిపెడితే, 2 ఉపయోగించబడుతుంది.</translation>
 <translation id="4347908978527632940">ఒప్పు అయితే మరియు వినియోగదారు పర్యవేక్షించబడే వినియోగదారు అయితే, అప్పుడు ఇతర Android అనువర్తనాలు కంటెంట్ ప్రదాత ద్వారా వినియోగదారు వెబ్ నియంత్రణలను ప్రశ్నించవచ్చు.
 
@@ -1555,7 +1555,7 @@
 <translation id="5469484020713359236">కుక్కీలను సెట్ చేయడానికి అనుమతించబడే సైట్‌లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానాన్ని సెట్ చేయకుండా వదిలి పెడితే అన్ని సైట్‌లకు సార్వజనీన డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultCookiesSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation>
 <translation id="5469825884154817306">ఈ సైట్‌లలో చిత్రాలని బ్లాక్ చెయ్యి</translation>
 <translation id="5475361623548884387">ముద్రించడాన్ని ప్రారంభించు</translation>
-<translation id="547601067149622666">అనుచిత ప్రకటనలతో ఉన్న సైట్‌లలో ప్రకటనలను అనుమతించవద్దు</translation>
+<translation id="547601067149622666">అనుచిత ప్రకటనల సైట్‌లలో ప్రకటనలను అనుమతించవద్దు</translation>
 <translation id="5483777239978559943">ఈ విధానం నిలిపివేయబడింది. దయచేసి Flash ప్లగిన్ యొక్క అందుబాటును నియంత్రించడానికి <ph name="DEFAULT_PLUGINS_SETTING_POLICY_NAME" />ని మరియు PDF ఫైల్‌లను తెరిచేందుకు ఏకీకరించిన PDF వ్యూయర్‌ని ఉపయోగించాలా లేదా అనేది నియంత్రించడానికి <ph name="ALWAYS_OPEN_PDF_EXTERNALLY_POLICY_NAME" />ని ఉపయోగించండి.
 
 <ph name="PRODUCT_NAME" />లో వినియోగదారులు ప్రారంభించగల లేదా ఆపివేయగల ప్లగిన్‌ల జాబితాని పేర్కొంటుంది.
@@ -2556,9 +2556,6 @@
 <translation id="8357681633047935212">వినియోగదారు సెషన్ నిడివిని పరిమితం చేస్తుంది</translation>
 <translation id="8359734107661430198">2008/09/02 ద్వారా ExampleDeprecatedFeature APIని ప్రారంభించండి</translation>
 <translation id="8369602308428138533">AC శక్తితో అమలవుతున్నప్పుడు స్క్రీన్ ఆపివేత ఆలస్యం</translation>
-<translation id="8370471134641900314">ఈ విధానాన్ని ఒప్పుకు సెట్ చేస్తే, వినియోగదారు బ్రౌజర్‌ను ఉపయోగించడానికి ముందు వారి ప్రొఫైల్‌తో <ph name="PRODUCT_NAME" />కి సైన్ ఇన్ చేయాల్సి ఉంటుంది. అలాగే, BrowserGuestModeEnabled డిఫాల్ట్ విలువ తప్పుకు సెట్ చేయబడుతుంది.
-
-      ఈ విధానాన్ని తప్పుకు సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, వినియోగదారు <ph name="PRODUCT_NAME" />కి సైన్ ఇన్ చేయకుండానే బ్రౌజర్‌ను ఉపయోగించవచ్చు.</translation>
 <translation id="8380490658357556620">రిమోట్ క్లయింట్‌లు ఈ మెషీన్‌కి కనెక్షన్‌ను ఏర్పాటు చేయడానికి ప్రయత్నించేటప్పుడు రిలే సర్వర్‌ల వినియోగాన్ని ప్రారంభిస్తుంది.
 
 ఈ సెట్టింగ్ ప్రారంభించబడితే, అప్పుడు రిమోట్ క్లయింట్‌లు ప్రత్యక్ష కనెక్షన్ అందుబాటులో లేనప్పుడు (ఉదా. ఫైర్‌వాల్ పరిమితుల కారణంగా) ఈ మెషీన్‌కు కనెక్ట్ చేయడానికి రిలే సర్వర్‌లను ఉపయోగించవచ్చు.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index 87384474..298fa3c3 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -2190,9 +2190,6 @@
 <translation id="8344454543174932833">นำเข้าบุ๊กมาร์กจากเบราว์เซอร์เริ่มต้นในการเรียกใช้งานครั้งแรก</translation>
 <translation id="8359734107661430198">เปิดใช้ ExampleDeprecatedFeature API ได้ถึง 02/09/2008</translation>
 <translation id="8369602308428138533">ระยะหน่วงเวลาการปิดหน้าจอเมื่อทำงานโดยใช้ไฟ AC</translation>
-<translation id="8370471134641900314">หากตั้งค่านโยบายนี้เป็น True ผู้ใช้ต้องลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" /> ด้วยโปรไฟล์ของตนก่อนใช้เบราว์เซอร์ และระบบจะตั้งค่าเริ่มต้นของ BrowserGuestModeEnabled เป็น False
-
-      หากตั้งค่านโยบายนี้เป็น False หรือไม่กำหนดค่า ผู้ใช้จะใช้เบราว์เซอร์ได้โดยไม่ต้องลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" /></translation>
 <translation id="8382184662529825177">เปิดใช้การใช้งานการรับรองระยะไกลสำหรับการปกป้องเนื้อหาสำหรับอุปกรณ์</translation>
 <translation id="838870586332499308">เปิดใช้งานการโรมมิ่งข้อมูล</translation>
 <translation id="8390049129576938611">ปิดใช้โปรแกรมดู PDF ภายใน <ph name="PRODUCT_NAME" /> โดยจะปฏิบัติต่อไฟล์ PDF เป็นไฟล์ที่ดาวน์โหลดแทนและอนุญาตให้ผู้ใช้เปิดไฟล์ PDF ด้วยแอปพลิเคชันเริ่มต้น
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 373c1de..afc3ab1 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -2334,9 +2334,6 @@
 <translation id="8344454543174932833">İlk çalıştırmada yer işaretlerini varsayılan tarayıcıdan içe aktar</translation>
 <translation id="8359734107661430198">ExampleDeprecatedFeature API'sını 02.09.2008'e kadar etkinleştirin</translation>
 <translation id="8369602308428138533">AC güçle çalışırken ekran kapatma gecikmesi</translation>
-<translation id="8370471134641900314">Bu politika doğru (true) değerine ayarlanırsa kullanıcının tarayıcıyı kullanmadan önce <ph name="PRODUCT_NAME" /> ürününde kendi profiliyle oturum açması gerekir. BrowserGuestModeEnabled varsayılan değeri yanlış (false) olarak ayarlanır.
-
-      Bu politika yanlış (false) olarak ayarlanır veya yapılandırılmazsa kullanıcı <ph name="PRODUCT_NAME" /> ürününde oturum açmadan tarayıcıyı kullanabilir.</translation>
 <translation id="8382184662529825177">Cihazda içerik koruma için uzak onay kullanımını etkinleştir</translation>
 <translation id="838870586332499308">Veri dolaşımını etkinleştir</translation>
 <translation id="8390049129576938611"><ph name="PRODUCT_NAME" /> içindeki dahili PDF görüntüleyiciyi devre dışı bırakır. Bunun yerine, dosyayı indirilecek dosya olarak ele alır ve kullanıcının PDF dosyalarını varsayılan uygulamayla açmasına olanak tanır.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index c7c673aa..1b89c1f 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -2189,9 +2189,6 @@
 <translation id="8344454543174932833">Імпорт закладок із веб-переглядача за умовчанням під час першого запуску</translation>
 <translation id="8359734107661430198">Увімкнути API функції ExampleDeprecatedFeature, що підтримувалася до 02.09.2008.</translation>
 <translation id="8369602308428138533">Затримка вимкнення екрана, коли використовується живлення від мережі</translation>
-<translation id="8370471134641900314">Якщо для цього правила вибрано значення "true", користувач має ввійти у свій профіль в <ph name="PRODUCT_NAME" />, щоб відкрити веб-переглядач. Для правила BrowserGuestModeEnabled за умовчанням буде вибрано значення "false".
-
-     Якщо це правило не налаштовано або вибрано значення "false", користувач може відкрити веб-переглядач, не входячи в обліковий запис <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Вмикає використання віддаленого підтвердження даних для захисту вмісту пристрою</translation>
 <translation id="838870586332499308">Увімкнути роумінг даних</translation>
 <translation id="8390049129576938611">Вимикає вбудований переглядач PDF в <ph name="PRODUCT_NAME" />.Дозволяє користувачам відкривати файли PDF за допомогою додатка за умовчанням.
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index c6c1771..9f00e50 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -785,7 +785,7 @@
 <translation id="3512226956150568738">Nếu cần có kiểu thiết bị khách đã hỗ trợ ARC trước khi di chuyển sang ext4 để chạy ARC và nếu chính sách ArcEnabled được đặt thành true thì tùy chọn này sẽ hoạt động giống như AskUser (giá trị 3). Trong tất cả các trường hợp khác (nếu kiểu thiết bị không hỗ trợ ARC từ trước hoặc nếu chính sách ArcEnabled được đặt thành false), thì giá trị này sẽ tương đương với DisallowArc (giá trị 0).</translation>
 <translation id="3528000905991875314">Bật các trang lỗi thay thế</translation>
 <translation id="3547954654003013442">Cài đặt proxy</translation>
-<translation id="3577251398714997599">Cài đặt quảng cáo cho các trang web có quảng cáo xâm nhập</translation>
+<translation id="3577251398714997599">Cài đặt quảng cáo cho các trang web chứa quảng cáo xâm nhập</translation>
 <translation id="3591584750136265240">Định cấu hình hành vi xác thực thông tin đăng nhập</translation>
 <translation id="3627678165642179114">Bật hoặc tắt dịch vụ web kiểm tra lỗi chính tả</translation>
 <translation id="3646859102161347133">Đặt loại kính lúp màn hình</translation>
@@ -1030,11 +1030,11 @@
 <translation id="4320376026953250541">Microsoft Windows XP SP2 hoặc mới hơn</translation>
 <translation id="4322842393287974810">Cho phép ứng dụng kiosk tự động khởi chạy với độ trễ bằng không kiểm soát phiên bản <ph name="PRODUCT_OS_NAME" /></translation>
 <translation id="4325690621216251241">Thêm một nút đăng xuất vào khay hệ thống</translation>
-<translation id="4346674324214534449">Cho phép bạn thiết lập xem có chặn quảng cáo trên các trang web có quảng cáo xâm nhập hay không.
+<translation id="4346674324214534449">Cho phép bạn thiết lập xem có chặn quảng cáo trên các trang web chứa quảng cáo xâm nhập hay không.
 
-      Nếu bạn đặt chính sách này thành 2, quảng cáo sẽ bị chặn trên các trang web có quảng cáo xâm nhập.
+      Nếu bạn đặt chính sách này thành 2, quảng cáo sẽ bị chặn trên các trang web chứa quảng cáo xâm nhập.
       Tuy nhiên, hành vi này sẽ không kích hoạt nếu bạn đặt chính sách SafeBrowsingEnabled thành False.
-      Nếu bạn đặt chính sách này thành 1, quảng cáo sẽ không bị chặn trên các trang web có quảng cáo xâm nhập.
+      Nếu bạn đặt chính sách này thành 1, quảng cáo sẽ không bị chặn trên các trang web chứa quảng cáo xâm nhập.
       Nếu bạn không đặt chính sách này, tùy chọn 2 sẽ được sử dụng.</translation>
 <translation id="4347908978527632940">Nếu đúng và người dùng là người dùng được giám sát thì các ứng dụng Android khác có thể truy vấn các giới hạn web của người dùng thông qua nhà cung cấp nội dung.
 
@@ -1389,7 +1389,7 @@
           Nếu không thiết lập chính sách này, giá trị mặc định chung từ chính sách 'DefaultCookiesSetting' nếu chính sách này được thiết lập hoặc từ cấu hình cá nhân của người dùng sẽ được sử dụng cho tất cả các trang web.</translation>
 <translation id="5469825884154817306">Chặn hình ảnh trên các trang web này</translation>
 <translation id="5475361623548884387">Bật tính năng in</translation>
-<translation id="547601067149622666">Không cho phép quảng cáo trên các trang web có quảng cáo xâm nhập</translation>
+<translation id="547601067149622666">Không cho phép quảng cáo trên các trang web chứa quảng cáo xâm nhập</translation>
 <translation id="5499375345075963939">Chính sách này chỉ hoạt động trong chế độ bán lẻ.
 
       Khi giá trị của chính sách này được đặt và giá trị đó khác 0, người dùng hiện được đăng nhập vào bản trình diễn sẽ tự động bị đăng xuất sau khi thời gian không hoạt động của khoảng thời gian đã chỉ định trôi qua.
@@ -2319,9 +2319,6 @@
 <translation id="8344454543174932833">Nhập dấu trang từ trình duyệt mặc định trong lần chạy đầu tiên</translation>
 <translation id="8359734107661430198">Bật API ExampleDeprecatedFeature đến ngày 2 tháng 9 năm 2008</translation>
 <translation id="8369602308428138533">Độ trễ tắt màn hình khi chạy trên nguồn AC</translation>
-<translation id="8370471134641900314">Nếu chính sách này được đặt thành true, người dùng phải đăng nhập vào <ph name="PRODUCT_NAME" /> bằng hồ sơ của họ trước khi sử dụng trình duyệt. Và giá trị mặc định của BrowserGuestModeEnabled sẽ được đặt thành false.
-
-      Nếu chính sách này được đặt thành false hoặc không được định cấu hình, người dùng có thể sử dụng trình duyệt mà không cần đăng nhập vào <ph name="PRODUCT_NAME" />.</translation>
 <translation id="8382184662529825177">Cho phép sử dụng chứng thực từ xa để bảo vệ nội dung cho thiết bị</translation>
 <translation id="838870586332499308">Bật chuyển vùng dữ liệu</translation>
 <translation id="8390049129576938611">Tắt trình xem PDF nội bộ trong <ph name="PRODUCT_NAME" />. Thay vào đó, thiết bị sẽ coi các tệp PDF là nội dung tải xuống và cho phép người dùng mở các tệp PDF này bằng ứng dụng mặc định.
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index 2895abb..9f8b806 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -730,7 +730,7 @@
 <translation id="3512226956150568738">如果客户端设备型号在需要迁移到 ext4 才能运行 ARC 之前就已支持 ARC,且 ArcEnabled 政策已设为 true,该选项的行为便会和 AskUser(值 3)的行为一样。在所有其他情形(如果相应的设备型号之前不支持 ARC,或者如果 ArcEnabled 政策被设为 false)下,此值将会等同于 DisallowArc(值 0)。</translation>
 <translation id="3528000905991875314">启用备用的错误页面</translation>
 <translation id="3547954654003013442">代理设置</translation>
-<translation id="3577251398714997599">针对展示侵扰性广告的网站指定广告设置</translation>
+<translation id="3577251398714997599">针对含侵扰性广告的网站的广告设置</translation>
 <translation id="3591584750136265240">配置登录身份验证行为</translation>
 <translation id="3627678165642179114">启用或停用拼写检查网络服务</translation>
 <translation id="3646859102161347133">设置放大镜类型</translation>
@@ -790,7 +790,7 @@
       如果此政策未设置,系统将使用默认的下载目录,并且用户可以更改此目录。</translation>
 <translation id="3805659594028420438">启用TLS网域绑定证书扩展程序(已弃用)</translation>
 <translation id="3808945828600697669">指定已停用插件的列表</translation>
-<translation id="3811562426301733860">允许在所有网站上显示广告</translation>
+<translation id="3811562426301733860">允许所有网站展示广告</translation>
 <translation id="3816312845600780067">启用停止自动登录的键盘快捷键</translation>
 <translation id="3820526221169548563">启用屏幕键盘辅助功能。
 
@@ -967,11 +967,11 @@
 <translation id="4320376026953250541">Microsoft Windows XP SP2 或更高版本</translation>
 <translation id="4322842393287974810">允许自动启动零延迟的自助服务终端应用控制 <ph name="PRODUCT_OS_NAME" />版本</translation>
 <translation id="4325690621216251241">向系统任务栏添加退出按钮</translation>
-<translation id="4346674324214534449">可让您设置是否应在展示侵扰性广告的网站上屏蔽广告。
+<translation id="4346674324214534449">可让您设置是否应禁止含侵扰性广告的网站展示广告。
 
-      如果此政策设为 2,系统将会在展示侵扰性广告的网站上屏蔽广告。
+      如果此政策设为 2,系统将禁止含侵扰性广告的网站展示广告。
       不过,如果 SafeBrowsingEnabled 政策设为 False,此行为便不会触发。
-      如果此政策设为 1,系统将不会在展示侵扰性广告的网站上屏蔽广告。
+      如果此政策设为 1,系统将不会禁止含侵扰性广告的网站展示广告。
       如果未设置此政策,系统的行为则会与将此政策设为 2 时一样。</translation>
 <translation id="4347908978527632940">如果设为 true 且该用户是受监管用户,则其他 Android 应用可以通过内容提供方查询该用户的网络限制。
 
@@ -1274,7 +1274,7 @@
 <translation id="5469484020713359236">可让您设置网址格式的列表,这些网址格式用于指定允许设置 Cookie 的网站。在未设置此政策的情况下,如果设置了“DefaultCookiesSetting”政策,那么将对该政策中的所有网站使用全局默认值,否则将对用户个人配置中的所有网站使用全局默认值。</translation>
 <translation id="5469825884154817306">在这些网站上阻止图片</translation>
 <translation id="5475361623548884387">启用打印功能</translation>
-<translation id="547601067149622666">不允许在展示侵扰性广告的网站上显示广告</translation>
+<translation id="547601067149622666">不允许含侵扰性广告的网站展示广告</translation>
 <translation id="5499375345075963939">此策略仅在零售模式下有效。
 
       当该策略值已设置,且不为零,那么当不活动期达到指定的时间期间后,当前登录的演示用户就会自动退出。
@@ -2137,9 +2137,6 @@
 <translation id="8344454543174932833">首次运行时,从默认浏览器导入书签</translation>
 <translation id="8359734107661430198">从 2008 年 9 月 2 日开始启用 ExampleDeprecatedFeature API</translation>
 <translation id="8369602308428138533">使用交流电源供电时的屏幕关闭延迟时间</translation>
-<translation id="8370471134641900314">如果此政策设为 true,用户必须先使用其个人资料登录 <ph name="PRODUCT_NAME" />,然后才能使用该浏览器。另外,BrowserGuestModeEnabled 的默认值将会设为 false。
-
-      如果此政策设为 false 或未配置,用户无需登录 <ph name="PRODUCT_NAME" /> 即可使用该浏览器。</translation>
 <translation id="8382184662529825177">允许为设备使用远程认证来保护内容</translation>
 <translation id="838870586332499308">启用数据漫游</translation>
 <translation id="8390049129576938611">在 <ph name="PRODUCT_NAME" /> 中停用内部 PDF 查看器。改为将此 PDF 查看器视为下载项,并允许用户使用此默认应用打开 PDF 文件。
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index ee73144..2a046651 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -933,11 +933,11 @@
 
           指定政策值時需以毫秒為單位。</translation>
 <translation id="4105989332710272578">不針對列出的網址強制執行憑證透明化政策</translation>
-<translation id="4111405663956464686">警告:自 <ph name="PRODUCT_NAME" /> 版本 72 (2019 年 1 月左右推出) 起,我們將全面停止支援 TLS 最高版本政策。
+<translation id="4111405663956464686">警告:自 <ph name="PRODUCT_NAME" /> 版本 72 (2019 年 1 月左右推出) 起,我們將全面移除 TLS 最高版本政策。
 
       如果未設定這項政策,<ph name="PRODUCT_NAME" /> 會使用預設最高版本。
 
-      這項政策可使用的設定值包括:「tls1.2」或「tls1.3」。設定時,<ph name="PRODUCT_NAME" /> 不會使用高於指定版本的 SSL/TLS 版本。系統會忽略無法辨識的值。</translation>
+      這項政策可使用的設定值包括:「tls1.2」或「tls1.3」。設定後,<ph name="PRODUCT_NAME" /> 就不會使用高於指定版本的 SSL/TLS 版本。系統會忽略無法辨識的值。</translation>
 <translation id="4121350739760194865">阻止應用程式宣傳資訊在新分頁上顯示</translation>
 <translation id="4157003184375321727">回報作業系統和韌體版本</translation>
 <translation id="4183229833636799228"><ph name="FLASH_PLUGIN_NAME" /> 預設設定</translation>
@@ -2190,9 +2190,6 @@
 <translation id="8344454543174932833">第一次執行時從預設瀏覽器匯入書籤</translation>
 <translation id="8359734107661430198">從 2008 年 9 月 2 日開始啟用 ExampleDeprecatedFeature API</translation>
 <translation id="8369602308428138533">在 AC 供電環境下執行時的螢幕關閉延遲時間</translation>
-<translation id="8370471134641900314">如果將這項政策設為 True,使用者必須以個人設定檔登入 <ph name="PRODUCT_NAME" />,才能使用瀏覽器。此外,BrowserGuestModeEnabled 的預設值將設為 False。
-
-      如果將這項政策設為 False 或不予設定,使用者不需登入 <ph name="PRODUCT_NAME" /> 也能使用瀏覽器。</translation>
 <translation id="8382184662529825177">啟用可用於保護裝置內容的遠端認證機制</translation>
 <translation id="838870586332499308">啟用數據漫遊</translation>
 <translation id="8390049129576938611">停用 <ph name="PRODUCT_NAME" /> 的內部 PDF 檢視器。改為將 PDF 檔案視為下載項目,允許使用者使用預設的應用程式開啟。
diff --git a/components/proxy_config/ios/DEPS b/components/proxy_config/ios/DEPS
index c11101cf..d39f540 100644
--- a/components/proxy_config/ios/DEPS
+++ b/components/proxy_config/ios/DEPS
@@ -1,5 +1,5 @@
 include_rules = [
   "+ios/public/provider/web",
   "+ios/web/public",
-  "+net/proxy"
+  "+net/proxy_resolution"
 ]
diff --git a/components/proxy_config/ios/proxy_service_factory.cc b/components/proxy_config/ios/proxy_service_factory.cc
index b65b044..79ababc 100644
--- a/components/proxy_config/ios/proxy_service_factory.cc
+++ b/components/proxy_config/ios/proxy_service_factory.cc
@@ -9,8 +9,8 @@
 #include "base/memory/ptr_util.h"
 #include "components/proxy_config/pref_proxy_config_tracker_impl.h"
 #include "ios/web/public/web_thread.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 // static
 std::unique_ptr<net::ProxyConfigService>
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/components/proxy_config/pref_proxy_config_tracker_impl.cc
index c39d5e4..07e151d 100644
--- a/components/proxy_config/pref_proxy_config_tracker_impl.cc
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.cc
@@ -17,7 +17,7 @@
 #include "components/prefs/pref_service.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "url/gurl.h"
 
 //============================= ProxyConfigServiceImpl =======================
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.h b/components/proxy_config/pref_proxy_config_tracker_impl.h
index 4a5b7f5e..65f467a5 100644
--- a/components/proxy_config/pref_proxy_config_tracker_impl.h
+++ b/components/proxy_config/pref_proxy_config_tracker_impl.h
@@ -14,8 +14,8 @@
 #include "components/prefs/pref_change_registrar.h"
 #include "components/proxy_config/pref_proxy_config_tracker.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 class PrefService;
 class PrefRegistrySimple;
diff --git a/components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc b/components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc
index 3dbaba5..a636f25a 100644
--- a/components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc
+++ b/components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc
@@ -15,8 +15,8 @@
 #include "components/prefs/testing_pref_service.h"
 #include "components/proxy_config/proxy_config_dictionary.h"
 #include "components/proxy_config/proxy_config_pref_names.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
diff --git a/components/proxy_config/proxy_config_dictionary.cc b/components/proxy_config/proxy_config_dictionary.cc
index a55133c..230039b 100644
--- a/components/proxy_config/proxy_config_dictionary.cc
+++ b/components/proxy_config/proxy_config_dictionary.cc
@@ -9,7 +9,7 @@
 #include "base/logging.h"
 #include "base/memory/ptr_util.h"
 #include "base/values.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace {
 
diff --git a/components/spellcheck/renderer/spellcheck.cc b/components/spellcheck/renderer/spellcheck.cc
index 387beca7..e40d886 100644
--- a/components/spellcheck/renderer/spellcheck.cc
+++ b/components/spellcheck/renderer/spellcheck.cc
@@ -30,7 +30,6 @@
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_frame_visitor.h"
 #include "content/public/renderer/render_thread.h"
-#include "services/service_manager/public/cpp/binder_registry.h"
 #include "third_party/WebKit/public/platform/WebString.h"
 #include "third_party/WebKit/public/platform/WebVector.h"
 #include "third_party/WebKit/public/web/WebLocalFrame.h"
@@ -171,22 +170,16 @@
 // values.
 // TODO(groby): Simplify this.
 SpellCheck::SpellCheck(
+    service_manager::BinderRegistry* registry,
     service_manager::LocalInterfaceProvider* embedder_provider)
-    : embedder_provider_(embedder_provider), spellcheck_enabled_(true) {
-  if (!content::ChildThread::Get())
+    : embedder_provider_(embedder_provider),
+      spellcheck_enabled_(true),
+      weak_factory_(this) {
+  if (!registry)
     return;  // Can be NULL in tests.
-
-  auto* service_manager_connection =
-      content::ChildThread::Get()->GetServiceManagerConnection();
-  DCHECK(service_manager_connection);
-
-  auto registry = base::MakeUnique<service_manager::BinderRegistry>();
   registry->AddInterface(base::BindRepeating(&SpellCheck::SpellCheckerRequest,
-                                             base::Unretained(this)),
+                                             weak_factory_.GetWeakPtr()),
                          base::ThreadTaskRunnerHandle::Get());
-
-  service_manager_connection->AddConnectionFilter(
-      base::MakeUnique<content::SimpleConnectionFilter>(std::move(registry)));
 }
 
 SpellCheck::~SpellCheck() {
diff --git a/components/spellcheck/renderer/spellcheck.h b/components/spellcheck/renderer/spellcheck.h
index b7ec4aa7..630b479 100644
--- a/components/spellcheck/renderer/spellcheck.h
+++ b/components/spellcheck/renderer/spellcheck.h
@@ -18,8 +18,8 @@
 #include "components/spellcheck/common/spellcheck.mojom.h"
 #include "components/spellcheck/renderer/custom_dictionary_engine.h"
 #include "components/spellcheck/spellcheck_build_features.h"
-#include "content/public/renderer/render_thread_observer.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
 
 class SpellcheckLanguage;
 struct SpellCheckResult;
@@ -38,8 +38,7 @@
 // See http://crbug.com/73699.
 // Shared spellchecking logic/data for a RenderProcess. All RenderViews use
 // this object to perform spellchecking tasks.
-class SpellCheck : public content::RenderThreadObserver,
-                   public base::SupportsWeakPtr<SpellCheck>,
+class SpellCheck : public base::SupportsWeakPtr<SpellCheck>,
                    public spellcheck::mojom::SpellChecker {
  public:
   // TODO(groby): I wonder if this can be private, non-mac only.
@@ -49,8 +48,8 @@
     USE_NATIVE_CHECKER,  // Use native checker to double-check.
   };
 
-  explicit SpellCheck(
-      service_manager::LocalInterfaceProvider* embedder_provider);
+  SpellCheck(service_manager::BinderRegistry* registry,
+             service_manager::LocalInterfaceProvider* embedder_provider);
   ~SpellCheck() override;
 
   void AddSpellcheckLanguage(base::File file, const std::string& language);
@@ -167,6 +166,8 @@
   // Remember state for spellchecking.
   bool spellcheck_enabled_;
 
+  base::WeakPtrFactory<SpellCheck> weak_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(SpellCheck);
 };
 
diff --git a/components/spellcheck/renderer/spellcheck_multilingual_unittest.cc b/components/spellcheck/renderer/spellcheck_multilingual_unittest.cc
index 3dd2a5c3..5eadf28 100644
--- a/components/spellcheck/renderer/spellcheck_multilingual_unittest.cc
+++ b/components/spellcheck/renderer/spellcheck_multilingual_unittest.cc
@@ -50,7 +50,7 @@
   MultilingualSpellCheckTest() {}
 
   void ReinitializeSpellCheck(const std::string& unsplit_languages) {
-    spellcheck_ = new SpellCheck(nullptr);
+    spellcheck_ = new SpellCheck(nullptr, nullptr);
     provider_.reset(new TestingSpellCheckProvider(spellcheck_));
     InitializeSpellCheck(unsplit_languages);
   }
diff --git a/components/spellcheck/renderer/spellcheck_provider_test.cc b/components/spellcheck/renderer/spellcheck_provider_test.cc
index 779c881..aedc463 100644
--- a/components/spellcheck/renderer/spellcheck_provider_test.cc
+++ b/components/spellcheck/renderer/spellcheck_provider_test.cc
@@ -29,7 +29,7 @@
 }
 
 TestingSpellCheckProvider::TestingSpellCheckProvider()
-    : SpellCheckProvider(nullptr, new SpellCheck(nullptr), nullptr),
+    : SpellCheckProvider(nullptr, new SpellCheck(nullptr, nullptr), nullptr),
       spelling_service_call_count_(0),
       binding_(this) {}
 
diff --git a/components/spellcheck/renderer/spellcheck_unittest.cc b/components/spellcheck/renderer/spellcheck_unittest.cc
index d608849..8e8f3ed 100644
--- a/components/spellcheck/renderer/spellcheck_unittest.cc
+++ b/components/spellcheck/renderer/spellcheck_unittest.cc
@@ -59,7 +59,7 @@
   }
 
   void UninitializeSpellCheck() {
-    spell_check_ = std::make_unique<SpellCheck>(nullptr);
+    spell_check_ = std::make_unique<SpellCheck>(nullptr, nullptr);
   }
 
   bool InitializeIfNeeded() {
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index 57899ff46..8ea8ff39 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -259,7 +259,7 @@
 <translation id="2826760142808435982"><ph name="CIPHER" /> ব্যবহার করে এই সংযোগটি এনক্রিপ্টেড এবং প্রমাণীকৃত করা হয়েছে এবং কী এক্সচেঞ্জ প্রক্রিয়া হিসাবে <ph name="KX" /> ব্যবহার করে৷</translation>
 <translation id="2835170189407361413">ফর্ম সাফ করুন</translation>
 <translation id="2851634818064021665">এই সাইট দেখার জন্য আপনার অনুমতির প্রয়োজন</translation>
-<translation id="2856444702002559011">আক্রমণকারীরা হয়ত <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> থেকে আপনার তথ্য (যেমন পাসওয়ার্ড, মেসেজ বা ক্রেডিট কার্ড) চুরি করার চেষ্টা করছে। <ph name="BEGIN_LEARN_MORE_LINK" />আরও জানুন<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2856444702002559011">আক্রমণকারীরা হয়তো <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> থেকে আপনার তথ্য (যেমন পাসওয়ার্ড, মেসেজ বা ক্রেডিট কার্ড) চুরি করার চেষ্টা করছে। <ph name="BEGIN_LEARN_MORE_LINK" />আরও জানুন<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="2909946352844186028">একটি নেটওয়ার্ক পরিবর্তন সনাক্ত হয়েছে৷</translation>
 <translation id="2916038427272391327">অন্যান্য প্রোগ্রামগুলি বন্ধ করুন</translation>
 <translation id="2922350208395188000">সার্ভারের শংসাপত্র চেক করা যাবে না৷</translation>
@@ -568,7 +568,7 @@
 <translation id="5190835502935405962">বুকমার্ক দণ্ড</translation>
 <translation id="5205222826937269299">নাম প্রয়োজন</translation>
 <translation id="5222812217790122047">ইমেল প্রয়োজন</translation>
-<translation id="522700295135997067">এই সাইট হয়ত আপনার পাসওয়ার্ড চুরি করেছে</translation>
+<translation id="522700295135997067">এই সাইট হয়তো আপনার পাসওয়ার্ড চুরি করেছে</translation>
 <translation id="5230733896359313003">শিপিংয়ের ঠিকানা</translation>
 <translation id="5251803541071282808">ক্লাউড</translation>
 <translation id="5277279256032773186">কর্মক্ষেত্রে Chrome ব্যবহার করছেন? ব্যবসাগুলো তাদের কর্মচারীদের জন্য Chrome সেটিংস পরিচালনা করতে পারে। আরও জানুন</translation>
@@ -613,7 +613,7 @@
     আপনার সিস্টেম প্রশাসকের সাথে যোগাযোগের চেষ্টা করুন।</translation>
 <translation id="5499929369096410817"><ph name="CREDIT_CARD" /> এর নিরাপত্তা কোড লিখুন। এই কোডটি সেভ করা হবে না।</translation>
 <translation id="5509780412636533143">পরিচালিত বুকমার্কগুলি</translation>
-<translation id="5510766032865166053">এটি হয়ত সরানো বা মুছে ফেলা হয়েছে।</translation>
+<translation id="5510766032865166053">এটি হয়তো সরানো বা মুছে ফেলা হয়েছে।</translation>
 <translation id="5523118979700054094">নীতি নাম</translation>
 <translation id="552553974213252141">পাঠ্য কি সঠিকভাবে প্রাপ্ত হয়েছে?</translation>
 <translation id="5540224163453853">অনুরোধকৃত নিবন্ধ খুঁজে পাওয়া যায়নি৷</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 72804831..a86c37c 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -94,7 +94,7 @@
 <translation id="1644184664548287040">नेटवर्क कॉन्फिगरेशन अवैध आहे आणि आयात केले जाऊ शकले नाही.</translation>
 <translation id="1644574205037202324">इतिहास</translation>
 <translation id="1645368109819982629">असमर्थित प्रोटोकॉल</translation>
-<translation id="1655462015569774233">{1,plural, =1{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र काल कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रीफ्रेश करा.}one{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रीफ्रेश करा.}other{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रीफ्रेश करा.}}</translation>
+<translation id="1655462015569774233">{1,plural, =1{हा सर्व्हर हे <ph name="DOMAIN" /> असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र काल कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}one{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}other{हा सर्व्हर हे <ph name="DOMAIN" />असल्याचे सिद्ध करू शकला नाही; त्याचे सुरक्षा प्रमाणपत्र # दिवसांपूर्वी कालबाह्य झाले. हे कदाचित एका चुकीच्या कॉन्फिगरेशनमुळे किंवा आक्रमणकर्त्याने आपले कनेक्शन आंतरखंडित केल्यामुळे झाले असू शकते. आपले संगणक सध्या <ph name="CURRENT_DATE" /> वर सेट आहे. ते योग्य दिसते आहे? नसल्यास, आपण आपल्या सिस्टीमचे घड्याळ दुरूस्त करावे आणि त्यानंतर हे पृष्ठ रिफ्रेश करा.}}</translation>
 <translation id="1656489000284462475">घेणे</translation>
 <translation id="1663943134801823270">कार्ड आणि पत्ते Chrome कडील आहेत. आपण त्यांना <ph name="BEGIN_LINK" />सेटिंग्‍ज<ph name="END_LINK" /> मधून व्यवस्थापित करू शकता.</translation>
 <translation id="1676269943528358898"><ph name="SITE" /> आपली माहिती संरक्षित करण्यासाठी सामान्यतः कूटबद्धीकरण वापरते. Google Chrome ने यावेळी <ph name="SITE" /> शी कनेक्‍ट करण्‍याचा प्रयत्न केला तेव्‍हा, वेबसाइटने असामान्य आणि अयोग्य क्रेडेन्शियल परत पाठविले. एकतर आक्रमणकर्ता <ph name="SITE" /> असल्याची बतावणी करण्याचा प्रयत्न करतो तेव्‍हा किंवा Wi-Fi साइन इन स्क्रीनने कनेक्शनमध्ये व्यत्यय आणले तेव्‍हा हे घडू शकते. कोणत्याही डेटाची अदलाबदल करण्यापूर्वी Google Chrome ने कनेक्शन थांबविल्यामुळे आपली माहिती अद्याप सुरक्षित आहे.</translation>
@@ -799,7 +799,7 @@
 <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}one{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}other{<ph name="PAYMENT_METHOD_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" /> आणखी}}</translation>
 <translation id="7155487117670177674">पेमेंट सुरक्षित नाही</translation>
 <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}one{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}other{<ph name="SHIPPING_OPTION_PREVIEW" /> आणि <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" /> आणखी}}</translation>
-<translation id="7180611975245234373">रीफ्रेश करा</translation>
+<translation id="7180611975245234373">रिफ्रेश करा</translation>
 <translation id="7182878459783632708">कोणतीही धोरणे सेट नाहीत</translation>
 <translation id="7186367841673660872">हे पृष्ठ<ph name="ORIGINAL_LANGUAGE" />मधून<ph name="LANGUAGE_LANGUAGE" />मध्ये अनुवादित केले गेले आहे</translation>
 <translation id="7192203810768312527"><ph name="SIZE" /> जागा मोकळी करते. काही साइट तुमच्या पुढील भेटीच्या वेळी आणखी धीम्या गतीने लोड होऊ शकतात.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index a0f44dec..4165bb7 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -940,7 +940,7 @@
 <translation id="8225771182978767009">A pessoa que configurou este computador optou por bloquear este site.</translation>
 <translation id="822964464349305906"><ph name="TYPE_1" />, <ph name="TYPE_2" /></translation>
 <translation id="8238581221633243064">Abrir página num novo separador anónimo</translation>
-<translation id="8241707690549784388">A página que procura utilizou informações introduzidas por si. Regressar a essa página poderá originar a repetição de qualquer acção que tenha efetuado. Pretende continuar?</translation>
+<translation id="8241707690549784388">A página que procura utilizou informações introduzidas por si. Regressar a essa página poderá originar a repetição de qualquer ação que tenha efetuado. Pretende continuar?</translation>
 <translation id="8241712895048303527">Bloquear neste site</translation>
 <translation id="8249320324621329438">Última obtenção:</translation>
 <translation id="8253091569723639551">É necessário um endereço de faturação</translation>
diff --git a/components/subresource_filter/core/browser/ruleset_service.cc b/components/subresource_filter/core/browser/ruleset_service.cc
index 896b289d..f7b22ac 100644
--- a/components/subresource_filter/core/browser/ruleset_service.cc
+++ b/components/subresource_filter/core/browser/ruleset_service.cc
@@ -215,10 +215,12 @@
 RulesetService::RulesetService(
     PrefService* local_state,
     scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
+    scoped_refptr<base::SequencedTaskRunner> background_task_runner,
     RulesetServiceDelegate* delegate,
     const base::FilePath& indexed_ruleset_base_dir)
     : local_state_(local_state),
-      blocking_task_runner_(blocking_task_runner),
+      blocking_task_runner_(std::move(blocking_task_runner)),
+      background_task_runner_(std::move(background_task_runner)),
       delegate_(delegate),
       is_after_startup_(false),
       indexed_ruleset_base_dir_(indexed_ruleset_base_dir) {
@@ -434,7 +436,7 @@
 
   IndexedRulesetVersion most_recently_indexed_version;
   most_recently_indexed_version.ReadFromPrefs(local_state_);
-  blocking_task_runner_->PostTask(
+  background_task_runner_->PostTask(
       FROM_HERE,
       base::Bind(&IndexedRulesetLocator::DeleteObsoleteRulesets,
                  indexed_ruleset_base_dir_, most_recently_indexed_version));
@@ -452,7 +454,7 @@
     const WriteRulesetCallback& success_callback) {
   DCHECK(!unindexed_ruleset_info.content_version.empty());
   base::PostTaskAndReplyWithResult(
-      blocking_task_runner_.get(), FROM_HERE,
+      background_task_runner_.get(), FROM_HERE,
       base::Bind(&RulesetService::IndexAndWriteRuleset,
                  indexed_ruleset_base_dir_, unindexed_ruleset_info),
       base::Bind(&RulesetService::OnWrittenRuleset, AsWeakPtr(),
diff --git a/components/subresource_filter/core/browser/ruleset_service.h b/components/subresource_filter/core/browser/ruleset_service.h
index 51e12321..99becdd1 100644
--- a/components/subresource_filter/core/browser/ruleset_service.h
+++ b/components/subresource_filter/core/browser/ruleset_service.h
@@ -124,7 +124,7 @@
   // versions, keeping only:
   //  -- the |most_recent_version|, if it is valid,
   //  -- versions of the current format that have a sentinel file present.
-  // To be called on the |blocking_task_runner_|.
+  // To be called on the |background_task_runner_|.
   static void DeleteObsoleteRulesets(
       const base::FilePath& indexed_ruleset_base_dir,
       const IndexedRulesetVersion& most_recent_version);
@@ -141,7 +141,13 @@
 // version. The version information of the most recent successfully stored
 // ruleset is written into |local_state|. The invariant is maintained that the
 // version pointed to by preferences, if valid, will exist on disk at any point
-// in time. All file operations are posted to |blocking_task_runner|.
+// in time.
+//
+// Ruleset file opening is a critical for user experience operation. It is
+// posted to |blocking_task_runner|. Obsolete files deletion and rulesets
+// indexing are not critical for user experience. These tasks are posted to
+// |background_task_runner|. Since the two task runners are distinct you cannot
+// make guarantees about task ordering between them.
 class RulesetService : public base::SupportsWeakPtr<RulesetService> {
  public:
   // Enumerates the possible outcomes of indexing a ruleset and writing it to
@@ -168,10 +174,12 @@
   // Creates a new instance that will immediately publish the most recently
   // indexed version of the ruleset if one is available according to prefs.
   // See class comments for details of arguments.
-  RulesetService(PrefService* local_state,
-                 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
-                 RulesetServiceDelegate* delegate,
-                 const base::FilePath& indexed_ruleset_base_dir);
+  RulesetService(
+      PrefService* local_state,
+      scoped_refptr<base::SequencedTaskRunner> blocking_task_runner,
+      scoped_refptr<base::SequencedTaskRunner> background_task_runner,
+      RulesetServiceDelegate* delegate,
+      const base::FilePath& indexed_ruleset_base_dir);
   virtual ~RulesetService();
 
   // Indexes, stores, and publishes the given unindexed ruleset, unless its
@@ -202,7 +210,7 @@
   // Reads the ruleset described in |unindexed_ruleset_info|, indexes it, and
   // calls WriteRuleset() to persist the indexed ruleset. Returns the resulting
   // indexed ruleset version, or an invalid version on error. To be called on
-  // the |blocking_task_runner_|.
+  // the |background_task_runner|.
   static IndexedRulesetVersion IndexAndWriteRuleset(
       const base::FilePath& indexed_ruleset_base_dir,
       const UnindexedRulesetInfo& unindexed_ruleset_info);
@@ -217,7 +225,7 @@
   // More specifically, it writes:
   //  -- the |indexed_ruleset_data| of the given |indexed_ruleset_size|,
   //  -- a copy of the LICENSE file at |license_path|, if exists.
-  // Returns true on success. To be called on the |blocking_task_runner_|.
+  // Returns true on success. To be called on the |background_task_runner|.
   // Attempts not to leave an incomplete copy in the target directory.
   //
   // Writing is factored out into this separate function so it can be
@@ -236,10 +244,10 @@
   // Performs indexing of the queued unindexed ruleset (if any) after start-up.
   void InitializeAfterStartup();
 
-  // Posts a task to the |blocking_task_runner_| to index and persist the given
-  // unindexed ruleset. Then, on success, updates the most recently indexed
-  // version in preferences and invokes |success_callback| on the calling
-  // thread. There is no callback on failure.
+  // Posts a task to the |background_task_runner| to index and persist the
+  // given unindexed ruleset. Then, on success, updates the most recently
+  // indexed version in preferences and invokes |success_callback| on the
+  // calling thread. There is no callback on failure.
   void IndexAndStoreRuleset(const UnindexedRulesetInfo& unindexed_ruleset_info,
                             const WriteRulesetCallback& success_callback);
 
@@ -250,8 +258,16 @@
   void OnOpenedRuleset(base::File::Error error);
 
   PrefService* const local_state_;
+
+  // Task runner for tasks critical for user experience. The current ruleset
+  // file opening should be done on this task runner so as it throttles the
+  // first page load.
   scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_;
 
+  // Task runner for tasks that don't influence user experience. Obsolete files
+  // deletion and ruleset indexing should be done on this task runner.
+  scoped_refptr<base::SequencedTaskRunner> background_task_runner_;
+
   // Must outlive |this| object.
   RulesetServiceDelegate* delegate_;
 
diff --git a/components/subresource_filter/core/browser/ruleset_service_unittest.cc b/components/subresource_filter/core/browser/ruleset_service_unittest.cc
index bc35d4d7..4cb09b82 100644
--- a/components/subresource_filter/core/browser/ruleset_service_unittest.cc
+++ b/components/subresource_filter/core/browser/ruleset_service_unittest.cc
@@ -17,12 +17,13 @@
 #include "base/files/file_util.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/macros.h"
+#include "base/memory/scoped_refptr.h"
 #include "base/numerics/safe_conversions.h"
 #include "base/run_loop.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/test/histogram_tester.h"
+#include "base/test/scoped_task_environment.h"
 #include "base/test/test_simple_task_runner.h"
-#include "base/threading/thread_task_runner_handle.h"
 #include "build/build_config.h"
 #include "components/prefs/testing_pref_service.h"
 #include "components/subresource_filter/core/browser/ruleset_service_delegate.h"
@@ -144,8 +145,10 @@
 class SubresourceFilteringRulesetServiceTest : public ::testing::Test {
  public:
   SubresourceFilteringRulesetServiceTest()
-      : task_runner_(new base::TestSimpleTaskRunner),
-        task_runner_handle_(task_runner_) {}
+      : blocking_task_runner_(
+            base::MakeRefCounted<base::TestSimpleTaskRunner>()),
+        background_task_runner_(
+            base::MakeRefCounted<base::TestSimpleTaskRunner>()) {}
 
  protected:
   void SetUp() override {
@@ -153,7 +156,7 @@
 
     SetUpTempDir();
     ResetRulesetService();
-    RunUntilIdle();
+    RunBlockingUntilIdle();
 
     ASSERT_NO_FATAL_FAILURE(
         ruleset_creator_.CreateRulesetToDisallowURLsWithPathSuffix(
@@ -173,7 +176,8 @@
   void ResetRulesetService() {
     mock_delegate_ = std::make_unique<MockRulesetServiceDelegate>();
     service_ = std::make_unique<RulesetService>(
-        &pref_service_, task_runner_, mock_delegate_.get(), base_dir());
+        &pref_service_, blocking_task_runner_, background_task_runner_,
+        mock_delegate_.get(), base_dir());
   }
 
   void ClearRulesetService() {
@@ -203,6 +207,32 @@
     service()->IndexAndStoreAndPublishRulesetIfNeeded(ruleset_info);
   }
 
+  void WaitForIndexAndStoreAndPublishUpdatedRuleset(
+      const TestRulesetPair& test_ruleset_pair,
+      const std::string& new_content_version,
+      const base::FilePath& license_path = base::FilePath()) {
+    IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_pair,
+                                          new_content_version, license_path);
+    // Wait for indexing on background task runner.
+    RunBackgroundUntilIdle();
+    // Wait for file to be opened on blocking task runner.
+    RunBlockingUntilIdle();
+  }
+
+  void SimulateStartupCompletedAndWaitForTasks() {
+    DCHECK(mock_delegate());
+
+    mock_delegate()->SimulateStartupCompleted();
+
+    // Wait for |DeleteObsoleteFiles| and possible |IndexAndWriteRuleset|'s on
+    // background task runner.
+    RunBackgroundUntilIdle();
+
+    // Wait for possible |CreateOrOpen| ruleset file for publishing on blocking
+    // task runner.
+    RunBlockingUntilIdle();
+  }
+
   bool WriteRuleset(const TestRulesetPair& test_ruleset_pair,
                     const IndexedRulesetVersion& indexed_version,
                     const base::FilePath& license_path = base::FilePath()) {
@@ -243,11 +273,19 @@
         GetExpectedVersionDirPath(version));
   }
 
-  void RunUntilIdle() { task_runner_->RunUntilIdle(); }
+  void RunBlockingUntilIdle() {
+    blocking_task_runner_->RunUntilIdle();
+    base::RunLoop().RunUntilIdle();
+  }
 
-  void RunPendingTasksNTimes(size_t n) {
+  void RunBackgroundUntilIdle() {
+    background_task_runner_->RunUntilIdle();
+    base::RunLoop().RunUntilIdle();
+  }
+
+  void RunBackgroundPendingTasksNTimes(size_t n) {
     while (n--)
-      task_runner_->RunPendingTasks();
+      background_task_runner_->RunPendingTasks();
   }
 
   void AssertValidRulesetFileWithContents(
@@ -263,7 +301,13 @@
     ASSERT_EQ(-1, file->Write(0, kTest, sizeof(kTest)));
   }
 
-  void AssertNoPendingTasks() { ASSERT_FALSE(task_runner_->HasPendingTask()); }
+  base::TestSimpleTaskRunner* blocking_task_runner() const {
+    return blocking_task_runner_.get();
+  }
+
+  base::TestSimpleTaskRunner* background_task_runner() const {
+    return background_task_runner_.get();
+  }
 
   PrefService* prefs() { return &pref_service_; }
   RulesetService* service() { return service_.get(); }
@@ -282,10 +326,11 @@
   }
 
  private:
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
   base::ScopedTempDir scoped_temp_dir_;
 
-  scoped_refptr<base::TestSimpleTaskRunner> task_runner_;
-  base::ThreadTaskRunnerHandle task_runner_handle_;
+  scoped_refptr<base::TestSimpleTaskRunner> blocking_task_runner_;
+  scoped_refptr<base::TestSimpleTaskRunner> background_task_runner_;
   TestingPrefServiceSimple pref_service_;
 
   TestRulesetCreator ruleset_creator_;
@@ -466,7 +511,7 @@
 }
 
 TEST_F(SubresourceFilteringRulesetServiceTest, Startup_NoRulesetNotPublished) {
-  RunUntilIdle();
+  RunBlockingUntilIdle();
   EXPECT_EQ(0u, mock_delegate()->published_rulesets().size());
 }
 
@@ -481,7 +526,7 @@
   current_version.SaveToPrefs(prefs());
 
   ResetRulesetService();
-  RunUntilIdle();
+  RunBlockingUntilIdle();
   EXPECT_EQ(0u, mock_delegate()->published_rulesets().size());
 }
 
@@ -497,11 +542,10 @@
   ASSERT_FALSE(base::IsDirectoryEmpty(base_dir()));
 
   ResetRulesetService();
-  RunUntilIdle();
+  RunBackgroundUntilIdle();
   EXPECT_EQ(0u, mock_delegate()->published_rulesets().size());
 
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -517,15 +561,14 @@
   WriteRuleset(test_ruleset_1(), current_version);
 
   ResetRulesetService();
-  RunUntilIdle();
+  RunBlockingUntilIdle();
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
       &mock_delegate()->published_rulesets()[0],
       test_ruleset_1().indexed.contents));
 
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   EXPECT_EQ(1u, mock_delegate()->published_rulesets().size());
   EXPECT_TRUE(
@@ -533,9 +576,9 @@
 }
 
 TEST_F(SubresourceFilteringRulesetServiceTest, NewRuleset_Published) {
-  mock_delegate()->SimulateStartupCompleted();
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
@@ -545,22 +588,20 @@
 
 TEST_F(SubresourceFilteringRulesetServiceTest,
        NewRulesetWithEmptyVersion_NotPublished) {
-  mock_delegate()->SimulateStartupCompleted();
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), std::string());
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), std::string());
 
   ASSERT_EQ(0u, mock_delegate()->published_rulesets().size());
 }
 
 TEST_F(SubresourceFilteringRulesetServiceTest,
        NewRulesetEarly_PublishedAfterStartupCompleted) {
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   ASSERT_EQ(0u, mock_delegate()->published_rulesets().size());
 
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
@@ -579,8 +620,7 @@
   // Indexing should be queued, and will be performed in a deferred manner,
   // after start-up, at the same time with cleaning up obsoleted rulesets. Make
   // sure it does not get immediately deleted.
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -599,15 +639,14 @@
   EXPECT_EQ(kTestLicenseContents, actual_license_contents);
 
   ResetRulesetService();
-  RunUntilIdle();
+  RunBlockingUntilIdle();
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
       &mock_delegate()->published_rulesets()[0],
       test_ruleset_1().indexed.contents));
 
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   EXPECT_TRUE(base::PathExists(GetExpectedRulesetDataFilePath(stored_version)));
 
@@ -638,8 +677,8 @@
       kTestContentVersion1, IndexedRulesetVersion::CurrentFormatVersion());
   WriteRuleset(test_ruleset_2(), same_version_but_incomplete);
 
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -666,9 +705,8 @@
   ASSERT_NO_FATAL_FAILURE(
       test_ruleset_creator()->CreateUnindexedRulesetWithRules(
           {unfilled_rule}, &ruleset_with_unsupported_rule.unindexed));
-  IndexAndStoreAndPublishUpdatedRuleset(ruleset_with_unsupported_rule,
-                                        kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(ruleset_with_unsupported_rule,
+                                               kTestContentVersion1);
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -697,7 +735,8 @@
   ruleset_info.ruleset_path = base::FilePath();  // Non-existent.
   ruleset_info.content_version = kTestContentVersion1;
   service()->IndexAndStoreAndPublishRulesetIfNeeded(ruleset_info);
-  RunUntilIdle();
+  RunBackgroundUntilIdle();
+  RunBlockingUntilIdle();
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -726,8 +765,8 @@
   ASSERT_TRUE(base::AppendToFile(test_ruleset_1().unindexed.path,
                                  kGarbage.data(),
                                  static_cast<int>(kGarbage.size())));
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -759,16 +798,15 @@
       &RulesetService::g_index_ruleset_func, &MockCrashingIndexRuleset));
   EXPECT_DEATH(
       {
-        IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
-                                              kTestContentVersion1);
-        RunUntilIdle();
+        WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                                     kTestContentVersion1);
       },
       "Synthetic crash");
 #else
   auto scoped_override(OverrideFunctionForScope(
       &RulesetService::g_index_ruleset_func, &MockFailingIndexRuleset));
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 #endif
 
   // Expect that a sentinel file is left behind as a warning not to attempt
@@ -783,14 +821,13 @@
 
   base::HistogramTester histogram_tester;
   ResetRulesetService();
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   ASSERT_EQ(0u, mock_delegate()->published_rulesets().size());
 
   // The subsequent indexing attempt should be aborted.
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -811,8 +848,8 @@
   auto scoped_override(OverrideFunctionForScope(
       &RulesetService::g_replace_file_func, &MockFailingReplaceFile));
 
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   IndexedRulesetVersion stored_version;
   stored_version.ReadFromPrefs(prefs());
@@ -842,11 +879,10 @@
 TEST_F(SubresourceFilteringRulesetServiceTest,
        NewRulesetTwice_SecondRulesetPrevails) {
   mock_delegate()->SimulateStartupCompleted();
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
-
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(), kTestContentVersion2);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(),
+                                               kTestContentVersion2);
 
   // This verifies that the contents from the first version of the ruleset file
   // can still be read after it has been deprecated.
@@ -866,13 +902,13 @@
 TEST_F(SubresourceFilteringRulesetServiceTest,
        NewRulesetTwiceWithTheSameVersion_SecondIsIgnored) {
   mock_delegate()->SimulateStartupCompleted();
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   // For good measure, also violate the requirement that versions should
   // uniquely identify the contents.
   IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(), kTestContentVersion1);
-  ASSERT_NO_FATAL_FAILURE(AssertNoPendingTasks());
+  ASSERT_FALSE(background_task_runner()->HasPendingTask());
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
@@ -898,8 +934,7 @@
   IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_3(), kTestContentVersion3);
   IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
 
-  mock_delegate()->SimulateStartupCompleted();
-  RunUntilIdle();
+  SimulateStartupCompletedAndWaitForTasks();
 
   // Optionally permit the publication of the pre-existing ruleset, but the last
   // published ruleset must be the one that was set the latest (and with a
@@ -922,14 +957,13 @@
        ++num_tasks_inbetween) {
     SCOPED_TRACE(::testing::Message() << "#Tasks: " << num_tasks_inbetween);
 
-    mock_delegate()->SimulateStartupCompleted();
-    RunUntilIdle();
+    SimulateStartupCompletedAndWaitForTasks();
 
     IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
                                           kTestContentVersion1);
-    RunPendingTasksNTimes(num_tasks_inbetween);
+    RunBackgroundPendingTasksNTimes(num_tasks_inbetween);
     ClearRulesetService();
-    RunUntilIdle();
+    RunBlockingUntilIdle();
 
     EXPECT_TRUE(base::DeleteFile(base_dir(), true));
     ResetRulesetService();
@@ -937,7 +971,8 @@
 
   // Must pump out PostTaskWithReply tasks that are referencing the very same
   // task runner to avoid circular dependencies and leaks on shutdown.
-  RunUntilIdle();
+  RunBackgroundUntilIdle();
+  RunBlockingUntilIdle();
 }
 
 TEST_F(SubresourceFilteringRulesetServiceTest,
@@ -946,15 +981,13 @@
        ++num_tasks_inbetween) {
     SCOPED_TRACE(::testing::Message() << "#Tasks: " << num_tasks_inbetween);
 
-    mock_delegate()->SimulateStartupCompleted();
-    RunUntilIdle();
+    SimulateStartupCompletedAndWaitForTasks();
 
     IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
                                           kTestContentVersion1);
-    RunPendingTasksNTimes(num_tasks_inbetween);
-    IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(),
-                                          kTestContentVersion2);
-    RunUntilIdle();
+    RunBackgroundPendingTasksNTimes(num_tasks_inbetween);
+    WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(),
+                                                 kTestContentVersion2);
 
     // Optionally permit a "hazardous" publication of either the old or new
     // version of the ruleset, but the last ruleset message must be the new one.
@@ -977,7 +1010,7 @@
     EXPECT_EQ(kTestContentVersion2, stored_version.content_version);
 
     ClearRulesetService();
-    RunUntilIdle();
+    RunBlockingUntilIdle();
 
     EXPECT_TRUE(base::DeleteFile(base_dir(), true));
     IndexedRulesetVersion().SaveToPrefs(prefs());
@@ -987,12 +1020,44 @@
 
 TEST_F(SubresourceFilteringRulesetServiceTest, RulesetIsReadonly) {
   mock_delegate()->SimulateStartupCompleted();
-  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
-  RunUntilIdle();
+  WaitForIndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(),
+                                               kTestContentVersion1);
 
   ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
   ASSERT_NO_FATAL_FAILURE(
       AssertReadonlyRulesetFile(&mock_delegate()->published_rulesets()[0]));
 }
 
+TEST_F(SubresourceFilteringRulesetServiceTest,
+       ParallelOpenOfTwoFilesPublishesOnlyLastOne) {
+  // Test emulates bail out situation when ruleset file opening is cheduled
+  // during another file opening.
+  SimulateStartupCompletedAndWaitForTasks();
+
+  // Schedule two indexing tasks on background task runner.
+  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_1(), kTestContentVersion1);
+  IndexAndStoreAndPublishUpdatedRuleset(test_ruleset_2(), kTestContentVersion2);
+  ASSERT_EQ(2u, background_task_runner()->NumPendingTasks());
+
+  // Run indexing. Responses are scheduled on the current thread task runner.
+  background_task_runner()->RunPendingTasks();
+
+  // Process both responses. Each one should schedule files opening on blocking
+  // task runner.
+  base::RunLoop().RunUntilIdle();
+  ASSERT_EQ(2u, blocking_task_runner()->NumPendingTasks());
+
+  // Run opening. Responses are scheduled on the current thread task runner.
+  blocking_task_runner()->RunPendingTasks();
+
+  // Process both respones.
+  base::RunLoop().RunUntilIdle();
+
+  // Only the last one should fire callback.
+  ASSERT_EQ(1u, mock_delegate()->published_rulesets().size());
+  ASSERT_NO_FATAL_FAILURE(AssertValidRulesetFileWithContents(
+      &mock_delegate()->published_rulesets()[0],
+      test_ruleset_2().indexed.contents));
+}
+
 }  // namespace subresource_filter
diff --git a/components/toolbar/test_toolbar_model.cc b/components/toolbar/test_toolbar_model.cc
index 59a81d9..a465092 100644
--- a/components/toolbar/test_toolbar_model.cc
+++ b/components/toolbar/test_toolbar_model.cc
@@ -18,7 +18,11 @@
 
 TestToolbarModel::~TestToolbarModel() {}
 
-base::string16 TestToolbarModel::GetFormattedURL(size_t* prefix_end) const {
+base::string16 TestToolbarModel::GetFormattedFullURL() const {
+  return text_;
+}
+
+base::string16 TestToolbarModel::GetURLForDisplay() const {
   return text_;
 }
 
diff --git a/components/toolbar/test_toolbar_model.h b/components/toolbar/test_toolbar_model.h
index 0484b07..639332d 100644
--- a/components/toolbar/test_toolbar_model.h
+++ b/components/toolbar/test_toolbar_model.h
@@ -23,7 +23,8 @@
  public:
   TestToolbarModel();
   ~TestToolbarModel() override;
-  base::string16 GetFormattedURL(size_t* prefix_end) const override;
+  base::string16 GetFormattedFullURL() const override;
+  base::string16 GetURLForDisplay() const override;
   GURL GetURL() const override;
   security_state::SecurityLevel GetSecurityLevel(
       bool ignore_editing) const override;
diff --git a/components/toolbar/toolbar_model.h b/components/toolbar/toolbar_model.h
index 0564882..299a910d 100644
--- a/components/toolbar/toolbar_model.h
+++ b/components/toolbar/toolbar_model.h
@@ -25,13 +25,18 @@
  public:
   virtual ~ToolbarModel() = default;
 
-  // Returns a formatted URL for display in the toolbar. The formatting
-  // includes:
+  // Returns the formatted full URL for the toolbar. The formatting includes:
   //   - Some characters may be unescaped.
   //   - The scheme and/or trailing slash may be dropped.
-  // If |prefix_end| is non-NULL, it is set to the length of the pre-hostname
-  // portion of the resulting URL.
-  virtual base::string16 GetFormattedURL(size_t* prefix_end) const = 0;
+  // This method specifically keeps the URL suitable for editing by not
+  // applying any elisions that change the meaning of the URL.
+  virtual base::string16 GetFormattedFullURL() const = 0;
+
+  // Returns a simplified URL for display (but not editing) on the toolbar.
+  // This formatting is generally a superset of GetFormattedFullURL, and may
+  // include some destructive elisions that change the meaning of the URL.
+  // The returned string is not suitable for editing, and is for display only.
+  virtual base::string16 GetURLForDisplay() const = 0;
 
   // Returns the URL of the current navigation entry.
   virtual GURL GetURL() const = 0;
diff --git a/components/toolbar/toolbar_model_impl.cc b/components/toolbar/toolbar_model_impl.cc
index 1d42c34..5278ad6 100644
--- a/components/toolbar/toolbar_model_impl.cc
+++ b/components/toolbar/toolbar_model_impl.cc
@@ -37,7 +37,7 @@
 }
 
 // ToolbarModelImpl Implementation.
-base::string16 ToolbarModelImpl::GetFormattedURL(size_t* prefix_end) const {
+base::string16 ToolbarModelImpl::GetFormattedFullURL() const {
   GURL url(GetURL());
   // Note that we can't unescape spaces here, because if the user copies this
   // and pastes it into another program, that program may think the URL ends at
@@ -46,18 +46,28 @@
       delegate_->FormattedStringWithEquivalentMeaning(
           url, url_formatter::FormatUrl(
                    url, url_formatter::kFormatUrlOmitDefaults,
-                   net::UnescapeRule::NORMAL, nullptr, prefix_end, nullptr));
-  if (formatted_text.length() <= max_url_display_chars_)
-    return formatted_text;
+                   net::UnescapeRule::NORMAL, nullptr, nullptr, nullptr));
 
   // Truncating the URL breaks editing and then pressing enter, but hopefully
   // people won't try to do much with such enormous URLs anyway. If this becomes
   // a real problem, we could perhaps try to keep some sort of different "elided
   // visible URL" where editing affects and reloads the "real underlying URL",
   // but this seems very tricky for little gain.
-  return gfx::TruncateString(formatted_text, max_url_display_chars_ - 1,
-                             gfx::CHARACTER_BREAK) +
-         gfx::kEllipsisUTF16;
+  return gfx::TruncateString(formatted_text, max_url_display_chars_,
+                             gfx::CHARACTER_BREAK);
+}
+
+base::string16 ToolbarModelImpl::GetURLForDisplay() const {
+  url_formatter::FormatUrlTypes format_types =
+      url_formatter::kFormatUrlOmitDefaults |
+      url_formatter::kFormatUrlOmitHTTPS |
+      url_formatter::kFormatUrlOmitTrivialSubdomains;
+  base::string16 result = url_formatter::FormatUrl(GetURL(), format_types,
+                                                   net::UnescapeRule::NORMAL,
+                                                   nullptr, nullptr, nullptr);
+
+  return gfx::TruncateString(result, max_url_display_chars_,
+                             gfx::CHARACTER_BREAK);
 }
 
 GURL ToolbarModelImpl::GetURL() const {
diff --git a/components/toolbar/toolbar_model_impl.h b/components/toolbar/toolbar_model_impl.h
index 6bbf45a..2e2a744 100644
--- a/components/toolbar/toolbar_model_impl.h
+++ b/components/toolbar/toolbar_model_impl.h
@@ -28,7 +28,8 @@
 
  private:
   // ToolbarModel:
-  base::string16 GetFormattedURL(size_t* prefix_end) const override;
+  base::string16 GetFormattedFullURL() const override;
+  base::string16 GetURLForDisplay() const override;
   GURL GetURL() const override;
   security_state::SecurityLevel GetSecurityLevel(
       bool ignore_editing) const override;
diff --git a/components/url_formatter/elide_url.cc b/components/url_formatter/elide_url.cc
index 38d9870..9e9ba3d 100644
--- a/components/url_formatter/elide_url.cc
+++ b/components/url_formatter/elide_url.cc
@@ -63,7 +63,8 @@
     const base::string16& url_filename,
     const base::string16& url_query,
     const gfx::FontList& font_list,
-    float available_pixel_width) {
+    float available_pixel_width,
+    gfx::Typesetter typesetter) {
   const size_t url_path_number_of_elements = url_path_elements.size();
 
   CHECK(url_path_number_of_elements);
@@ -71,10 +72,9 @@
     base::string16 elided_path = BuildPathFromComponents(
         url_path_prefix, url_path_elements, url_filename, i);
     if (available_pixel_width >=
-        gfx::GetStringWidthF(elided_path, font_list, gfx::Typesetter::BROWSER))
+        gfx::GetStringWidthF(elided_path, font_list, typesetter))
       return gfx::ElideText(elided_path + url_query, font_list,
-                            available_pixel_width, gfx::ELIDE_TAIL,
-                            gfx::Typesetter::BROWSER);
+                            available_pixel_width, gfx::ELIDE_TAIL, typesetter);
   }
 
   return base::string16();
@@ -176,12 +176,12 @@
                                     const gfx::FontList& font_list,
                                     float available_pixel_width,
                                     gfx::ElideBehavior behavior,
+                                    gfx::Typesetter typesetter,
                                     url::Parsed* parsed) {
   DCHECK(behavior == gfx::ELIDE_TAIL || behavior == gfx::ELIDE_HEAD);
 
-  base::string16 elided =
-      gfx::ElideText(original, font_list, available_pixel_width, behavior,
-                     gfx::Typesetter::BROWSER);
+  base::string16 elided = gfx::ElideText(
+      original, font_list, available_pixel_width, behavior, typesetter);
   if (elided == original)
     return elided;
 
@@ -202,6 +202,7 @@
 bool ElideAfterHost(base::string16* url_string,
                     const gfx::FontList& font_list,
                     float available_pixel_width,
+                    gfx::Typesetter typesetter,
                     url::Parsed* parsed) {
   DCHECK(parsed->host.is_nonempty());
   DCHECK(parsed->path.is_nonempty() || parsed->query.is_nonempty() ||
@@ -210,9 +211,11 @@
   const base::string16 shortest = url_string->substr(0, parsed->host.end()) +
                                   gfx::kForwardSlash +
                                   base::string16(gfx::kEllipsisUTF16);
-  if (available_pixel_width >= gfx::GetStringWidthF(shortest, font_list)) {
-    *url_string = ElideParsedUrlString(
-        *url_string, font_list, available_pixel_width, gfx::ELIDE_TAIL, parsed);
+  if (available_pixel_width >=
+      gfx::GetStringWidthF(shortest, font_list, typesetter)) {
+    *url_string =
+        ElideParsedUrlString(*url_string, font_list, available_pixel_width,
+                             gfx::ELIDE_TAIL, typesetter, parsed);
     return true;
   }
   return false;
@@ -230,7 +233,8 @@
 // suspect it could be made simpler.
 base::string16 ElideUrl(const GURL& url,
                         const gfx::FontList& font_list,
-                        float available_pixel_width) {
+                        float available_pixel_width,
+                        gfx::Typesetter typesetter) {
   // Get a formatted string and corresponding parsing of the url.
   url::Parsed parsed;
   const base::string16 url_string = url_formatter::FormatUrl(
@@ -241,13 +245,13 @@
 
   if (!url.IsStandard()) {
     return gfx::ElideText(url_string, font_list, available_pixel_width,
-                          gfx::ELIDE_TAIL, gfx::Typesetter::BROWSER);
+                          gfx::ELIDE_TAIL, typesetter);
   }
 
   // Now start eliding url_string to fit within available pixel width.
   // Fist pass - check to see whether entire url_string fits.
   const float pixel_width_url_string =
-      gfx::GetStringWidthF(url_string, font_list, gfx::Typesetter::BROWSER);
+      gfx::GetStringWidthF(url_string, font_list, typesetter);
   if (available_pixel_width >= pixel_width_url_string)
     return url_string;
 
@@ -264,10 +268,10 @@
   // Return general elided text if url minus the query fits.
   const base::string16 url_minus_query =
       url_string.substr(0, path_start_index + path_len);
-  if (available_pixel_width >= gfx::GetStringWidthF(url_minus_query, font_list,
-                                                    gfx::Typesetter::BROWSER)) {
+  if (available_pixel_width >=
+      gfx::GetStringWidthF(url_minus_query, font_list, typesetter)) {
     return gfx::ElideText(url_string, font_list, available_pixel_width,
-                          gfx::ELIDE_TAIL, gfx::Typesetter::BROWSER);
+                          gfx::ELIDE_TAIL, typesetter);
   }
 
   base::string16 url_host;
@@ -295,17 +299,17 @@
 
   // Second Pass - remove scheme - the rest fits.
   const float pixel_width_url_host =
-      gfx::GetStringWidthF(url_host, font_list, gfx::Typesetter::BROWSER);
-  const float pixel_width_url_path = gfx::GetStringWidthF(
-      url_path_query_etc, font_list, gfx::Typesetter::BROWSER);
+      gfx::GetStringWidthF(url_host, font_list, typesetter);
+  const float pixel_width_url_path =
+      gfx::GetStringWidthF(url_path_query_etc, font_list, typesetter);
   if (available_pixel_width >= pixel_width_url_host + pixel_width_url_path)
     return url_host + url_path_query_etc;
 
   // Third Pass: Subdomain, domain and entire path fits.
   const float pixel_width_url_domain =
-      gfx::GetStringWidthF(url_domain, font_list, gfx::Typesetter::BROWSER);
+      gfx::GetStringWidthF(url_domain, font_list, typesetter);
   const float pixel_width_url_subdomain =
-      gfx::GetStringWidthF(url_subdomain, font_list, gfx::Typesetter::BROWSER);
+      gfx::GetStringWidthF(url_subdomain, font_list, typesetter);
   if (available_pixel_width >=
       pixel_width_url_subdomain + pixel_width_url_domain + pixel_width_url_path)
     return url_subdomain + url_domain + url_path_query_etc;
@@ -313,17 +317,16 @@
   // Query element.
   base::string16 url_query;
   const float kPixelWidthDotsTrailer = gfx::GetStringWidthF(
-      base::string16(gfx::kEllipsisUTF16), font_list, gfx::Typesetter::BROWSER);
+      base::string16(gfx::kEllipsisUTF16), font_list, typesetter);
   if (parsed.query.is_nonempty()) {
     url_query = base::UTF8ToUTF16("?") + url_string.substr(parsed.query.begin);
     if (available_pixel_width >=
         (pixel_width_url_subdomain + pixel_width_url_domain +
          pixel_width_url_path -
-         gfx::GetStringWidthF(url_query, font_list,
-                              gfx::Typesetter::BROWSER))) {
+         gfx::GetStringWidthF(url_query, font_list, typesetter))) {
       return gfx::ElideText(url_subdomain + url_domain + url_path_query_etc,
                             font_list, available_pixel_width, gfx::ELIDE_TAIL,
-                            gfx::Typesetter::BROWSER);
+                            typesetter);
     }
   }
 
@@ -354,20 +357,20 @@
     // chop off the TLD. https://crbug.com/739975.
     return gfx::ElideText(url_subdomain + url_domain + url_path_query_etc,
                           font_list, available_pixel_width, gfx::ELIDE_TAIL,
-                          gfx::Typesetter::BROWSER);
+                          typesetter);
   }
 
   // Start eliding the path and replacing elements by ".../".
   const base::string16 kEllipsisAndSlash =
       base::string16(gfx::kEllipsisUTF16) + gfx::kForwardSlash;
-  const float pixel_width_ellipsis_slash = gfx::GetStringWidthF(
-      kEllipsisAndSlash, font_list, gfx::Typesetter::BROWSER);
+  const float pixel_width_ellipsis_slash =
+      gfx::GetStringWidthF(kEllipsisAndSlash, font_list, typesetter);
 
   // Check with both subdomain and domain.
   if (url_path_number_of_elements > 0) {
     base::string16 elided_path = ElideComponentizedPath(
         url_subdomain + url_domain, url_path_elements, url_filename, url_query,
-        font_list, available_pixel_width);
+        font_list, available_pixel_width, typesetter);
     if (!elided_path.empty())
       return elided_path;
   }
@@ -387,7 +390,7 @@
     if (url_path_number_of_elements > 0) {
       base::string16 elided_path = ElideComponentizedPath(
           url_elided_domain, url_path_elements, url_filename, url_query,
-          font_list, available_pixel_width);
+          font_list, available_pixel_width, typesetter);
       if (!elided_path.empty())
         return elided_path;
     }
@@ -395,15 +398,15 @@
 
   // Return elided domain/.../filename anyway.
   base::string16 final_elided_url_string(url_elided_domain);
-  const float url_elided_domain_width = gfx::GetStringWidthF(
-      url_elided_domain, font_list, gfx::Typesetter::BROWSER);
+  const float url_elided_domain_width =
+      gfx::GetStringWidthF(url_elided_domain, font_list, typesetter);
 
   // A hack to prevent trailing ".../...".
   if (url_path_number_of_elements > 0 &&
       url_elided_domain_width + pixel_width_ellipsis_slash +
               kPixelWidthDotsTrailer +
               gfx::GetStringWidthF(base::ASCIIToUTF16("UV"), font_list,
-                                   gfx::Typesetter::BROWSER) <
+                                   typesetter) <
           available_pixel_width) {
     final_elided_url_string += BuildPathFromComponents(
         base::string16(), url_path_elements, url_filename, 1);
@@ -412,8 +415,7 @@
   }
 
   return gfx::ElideText(final_elided_url_string, font_list,
-                        available_pixel_width, gfx::ELIDE_TAIL,
-                        gfx::Typesetter::BROWSER);
+                        available_pixel_width, gfx::ELIDE_TAIL, typesetter);
 }
 
 base::string16 ElideHost(const GURL& url,
@@ -425,7 +427,8 @@
   base::string16 url_subdomain;
   SplitHost(url, &url_host, &url_domain, &url_subdomain);
 
-  const float pixel_width_url_host = gfx::GetStringWidthF(url_host, font_list);
+  const float pixel_width_url_host =
+      gfx::GetStringWidthF(url_host, font_list, typesetter);
   if (available_pixel_width >= pixel_width_url_host)
     return url_host;
 
@@ -518,18 +521,23 @@
                               const gfx::FontList& font_list,
                               float available_pixel_width,
                               url::Parsed* parsed) {
+  // Note the typesetter only matters for Mac, where this function is only used
+  // in tests. Using BROWSER keeps the behavior consistent with other tests.
+  const gfx::Typesetter typesetter = gfx::Typesetter::BROWSER;
+
   DCHECK_NE(parsed, nullptr);
   base::string16 url_string = unelided_url_string;
 
   if (available_pixel_width <= 0 ||
-      available_pixel_width >= gfx::GetStringWidthF(url_string, font_list)) {
+      available_pixel_width >=
+          gfx::GetStringWidthF(url_string, font_list, typesetter)) {
     return url_string;
   }
 
   // If non-standard, a file, or there is no host, simply elide from the right.
   if (!url.IsStandard() || url.SchemeIsFile() || !parsed->host.is_nonempty()) {
     return ElideParsedUrlString(url_string, font_list, available_pixel_width,
-                                gfx::ELIDE_TAIL, parsed);
+                                gfx::ELIDE_TAIL, typesetter, parsed);
   }
 
   bool has_path_ref_query = parsed->path.is_nonempty() ||
@@ -538,7 +546,8 @@
 
   // Try fitting the host with scheme preserved.
   if (has_path_ref_query &&
-      ElideAfterHost(&url_string, font_list, available_pixel_width, parsed)) {
+      ElideAfterHost(&url_string, font_list, available_pixel_width, typesetter,
+                     parsed)) {
     return url_string;
   }
 
@@ -548,7 +557,8 @@
     AdjustParsed(url_string.size(), parsed->host.begin, parsed);
 
     if (has_path_ref_query &&
-        ElideAfterHost(&url_string, font_list, available_pixel_width, parsed)) {
+        ElideAfterHost(&url_string, font_list, available_pixel_width,
+                       typesetter, parsed)) {
       return url_string;
     }
   }
@@ -562,7 +572,7 @@
 
   // Only host remains, so elide from the left.
   return ElideParsedUrlString(url_string, font_list, available_pixel_width,
-                              gfx::ELIDE_HEAD, parsed);
+                              gfx::ELIDE_HEAD, typesetter, parsed);
 }
 
 }  // namespace url_formatter
diff --git a/components/url_formatter/elide_url.h b/components/url_formatter/elide_url.h
index cc86db3..d991b3cd 100644
--- a/components/url_formatter/elide_url.h
+++ b/components/url_formatter/elide_url.h
@@ -42,7 +42,8 @@
 // http://crbug.com/6487 for more information.
 base::string16 ElideUrl(const GURL& url,
                         const gfx::FontList& font_list,
-                        float available_pixel_width);
+                        float available_pixel_width,
+                        gfx::Typesetter typesetter = gfx::Typesetter::DEFAULT);
 
 // This function takes a GURL object and elides the host to fit within
 // the given width. The function will never elide past the TLD+1 point,
diff --git a/components/url_formatter/elide_url_unittest.cc b/components/url_formatter/elide_url_unittest.cc
index 5e66ef7..09d3746 100644
--- a/components/url_formatter/elide_url_unittest.cc
+++ b/components/url_formatter/elide_url_unittest.cc
@@ -49,6 +49,18 @@
   const std::vector<UrlComponent> components;
 };
 
+// Returns the width of a utf8 or utf16 string using the BROWSER typesetter and
+// default UI font, or the provided |font_list|.
+float GetWidth(const std::string& utf8,
+               const gfx::FontList& font_list = gfx::FontList()) {
+  return gfx::GetStringWidthF(base::UTF8ToUTF16(utf8), font_list,
+                              gfx::Typesetter::BROWSER);
+}
+float GetWidth(const base::string16& utf16,
+               const gfx::FontList& font_list = gfx::FontList()) {
+  return gfx::GetStringWidthF(utf16, font_list, gfx::Typesetter::BROWSER);
+}
+
 base::string16 FormatAndElideUrlSimple(const GURL& url,
                                        const gfx::FontList& font_list,
                                        float available_pixel_width,
@@ -71,7 +83,10 @@
     }
 #if !defined(OS_ANDROID)
     case kMethodOriginal:
-      return url_formatter::ElideUrl(url, font_list, available_width);
+      // Test with the BROWSER typesetter, since that's what the only consumer
+      // on Mac wants (and it makes no difference on other platforms).
+      return url_formatter::ElideUrl(url, font_list, available_width,
+                                     gfx::Typesetter::BROWSER);
 #endif
     default:
       NOTREACHED();
@@ -130,10 +145,8 @@
     // Occasionally, a parsed URL can grow in length before elision, such as
     // when parsing a Windows file path with missing slashes.
     ASSERT_FALSE(testcase.output.empty());
-    float width = std::max(
-        gfx::GetStringWidthF(base::UTF8ToUTF16(testcase.input), font_list),
-        gfx::GetStringWidthF(base::UTF8ToUTF16(testcase.output.front()),
-                             font_list));
+    float width = std::max(GetWidth(testcase.input, font_list),
+                           GetWidth(testcase.output.front(), font_list));
 
     // Ideally, this test would iterate through all available field widths on a
     // per-pixel basis, but this is slow. Instead, compute the next input field
@@ -157,7 +170,7 @@
         break;
       }
       mismatches = 0;
-      float new_width = gfx::GetStringWidthF(elided, font_list);
+      float new_width = GetWidth(elided, font_list);
       // Elision rounds fractional available widths up.
       EXPECT_LE(new_width, std::ceil(width)) << " at " << elided;
       width = new_width - 1.0f;
@@ -172,21 +185,15 @@
   for (const auto& testcase : testcases) {
     SCOPED_TRACE("Eliding " + testcase.input);
     const GURL url(testcase.input);
-    const float available_width =
-        gfx::GetStringWidthF(base::UTF8ToUTF16(testcase.output), font_list);
+    const float available_width = GetWidth(testcase.output, font_list);
     EXPECT_EQ(base::UTF8ToUTF16(testcase.output),
-              url_formatter::ElideUrl(url, font_list, available_width));
+              url_formatter::ElideUrl(url, font_list, available_width,
+                                      gfx::Typesetter::BROWSER));
   }
 }
 
 // Test eliding of commonplace URLs.
-// Disabled on Mac for the typesetter migration. http://crbug.com/803354.
-#if defined(OS_MACOSX)
-#define MAYBE_TestGeneralEliding DISABLED_TestGeneralEliding
-#else
-#define MAYBE_TestGeneralEliding TestGeneralEliding
-#endif
-TEST(TextEliderTest, MAYBE_TestGeneralEliding) {
+TEST(TextEliderTest, TestGeneralEliding) {
   const std::string kEllipsisStr(gfx::kEllipsis);
   const std::vector<ProgressiveTestcase> progressive_testcases = {
       // Elide a non-www URL (www URLs are handled differently). In this first
@@ -283,34 +290,32 @@
   // Very little space, would cause double ellipsis.
   gfx::FontList font_list;
   GURL url("http://battersbox.com/directory/foo/peter_paul_and_mary.html");
-  float available_width = gfx::GetStringWidthF(
-      base::UTF8ToUTF16("battersbox.com/" + kEllipsisStr + "/" + kEllipsisStr),
-      font_list);
+  float available_width = GetWidth(
+      "battersbox.com/" + kEllipsisStr + "/" + kEllipsisStr, font_list);
 
   // Create the expected string, after elision. Depending on font size, the
   // directory might become /dir... or /di... or/d... - it never should be
   // shorter than that. (If it is, the font considers d... to be longer
   // than .../... -  that should never happen).
-  ASSERT_GT(
-      gfx::GetStringWidthF(base::UTF8ToUTF16(kEllipsisStr + "/" + kEllipsisStr),
-                           font_list),
-      gfx::GetStringWidthF(base::UTF8ToUTF16("d" + kEllipsisStr), font_list));
+  ASSERT_GT(GetWidth(kEllipsisStr + "/" + kEllipsisStr, font_list),
+            GetWidth("d" + kEllipsisStr, font_list));
   GURL long_url("http://battersbox.com/directorynameisreallylongtoforcetrunc");
   base::string16 expected = url_formatter::ElideUrl(
-      long_url, font_list, available_width);
+      long_url, font_list, available_width, gfx::Typesetter::BROWSER);
   // Ensure that the expected result still contains part of the directory name.
   ASSERT_GT(expected.length(), std::string("battersbox.com/d").length());
-  EXPECT_EQ(expected, url_formatter::ElideUrl(url, font_list, available_width));
+  EXPECT_EQ(expected, url_formatter::ElideUrl(url, font_list, available_width,
+                                              gfx::Typesetter::BROWSER));
 
   // Regression test for https://crbug.com/756717. An empty path, eliding to a
   // width in between the full domain ("www.angelfire.lycos.com") and a bit
   // longer than the ETLD+1 ("…lycos.com…/…UV"). This previously crashed due to
   // the path being empty.
   url = GURL("http://www.angelfire.lycos.com/");
-  available_width = gfx::GetStringWidthF(
-      base::UTF8ToUTF16(kEllipsisStr + "angelfire.lycos.com"), font_list);
+  available_width = GetWidth(kEllipsisStr + "angelfire.lycos.com", font_list);
   EXPECT_EQ(base::UTF8ToUTF16(kEllipsisStr + "lycos.com"),
-            url_formatter::ElideUrl(url, font_list, available_width));
+            url_formatter::ElideUrl(url, font_list, available_width,
+                                    gfx::Typesetter::BROWSER));
 
   // More space available - elide directories, partially elide filename.
   const std::vector<Testcase> testcases = {
@@ -369,13 +374,7 @@
 }
 
 // Test eliding of file: URLs.
-// Disabled on Mac for the typesetter migration. http://crbug.com/803354.
-#if defined(OS_MACOSX)
-#define MAYBE_TestFileURLEliding DISABLED_TestFileURLEliding
-#else
-#define MAYBE_TestFileURLEliding TestFileURLEliding
-#endif
-TEST(TextEliderTest, MAYBE_TestFileURLEliding) {
+TEST(TextEliderTest, TestFileURLEliding) {
   const std::string kEllipsisStr(gfx::kEllipsis);
   const std::vector<ProgressiveTestcase> progressive_testcases = {
     {"file:///C:/path1/path2/path3/filename",
@@ -446,6 +445,8 @@
   };
 
   for (size_t i = 0; i < arraysize(testcases); ++i) {
+    // Note this does not use GetWidth(), so typesetting will be done with
+    // gfx::Typesetter::DEFAULT. ElideHost() supports either typesetter on Mac.
     const float available_width = gfx::GetStringWidthF(
         base::UTF8ToUTF16(testcases[i].output), gfx::FontList());
     EXPECT_EQ(base::UTF8ToUTF16(testcases[i].output),
@@ -755,13 +756,7 @@
       << "Explicitly test the url::Origin which takes an empty, invalid URL";
 }
 
-// Disabled on Mac for the typesetter migration. http://crbug.com/803354.
-#if defined(OS_MACOSX)
-#define MAYBE_TestSimpleElisionMethod DISABLED_TestSimpleElisionMethod
-#else
-#define MAYBE_TestSimpleElisionMethod TestSimpleElisionMethod
-#endif
-TEST(TextEliderTest, MAYBE_TestSimpleElisionMethod) {
+TEST(TextEliderTest, TestSimpleElisionMethod) {
   const std::string kEllipsisStr(gfx::kEllipsis);
   const std::vector<ProgressiveTestcase> testcases = {
       {"https://www.abc.com/def/",
@@ -820,8 +815,7 @@
     SCOPED_TRACE(testcase.input + " to " + testcase.output);
 
     const GURL url(testcase.input);
-    const float available_width =
-        gfx::GetStringWidthF(base::UTF8ToUTF16(testcase.output), font_list);
+    const float available_width = GetWidth(testcase.output, font_list);
 
     url::Parsed parsed;
     auto elided =
@@ -853,14 +847,7 @@
 }
 
 // Verify that during elision, the parsed URL components are properly modified.
-// Disabled on Mac for the typesetter migration. http://crbug.com/803354.
-#if defined(OS_MACOSX)
-#define MAYBE_TestElisionParsingAdjustments \
-  DISABLED_TestElisionParsingAdjustments
-#else
-#define MAYBE_TestElisionParsingAdjustments TestElisionParsingAdjustments
-#endif
-TEST(TextEliderTest, MAYBE_TestElisionParsingAdjustments) {
+TEST(TextEliderTest, TestElisionParsingAdjustments) {
   const std::string kEllipsisStr(gfx::kEllipsis);
   const std::vector<ParsingTestcase> testcases = {
       // HTTPS with path.
diff --git a/components/viz/common/BUILD.gn b/components/viz/common/BUILD.gn
index 51b18d6..a010938 100644
--- a/components/viz/common/BUILD.gn
+++ b/components/viz/common/BUILD.gn
@@ -146,6 +146,7 @@
     "//gpu",
     "//gpu/command_buffer/client:gles2_implementation",
     "//gpu/command_buffer/client:gles2_interface",
+    "//gpu/command_buffer/client:raster",
     "//gpu/command_buffer/service",
     "//gpu/ipc:gl_in_process_context",
     "//gpu/skia_bindings:skia_bindings",
diff --git a/components/viz/host/hit_test/hit_test_query.cc b/components/viz/host/hit_test/hit_test_query.cc
index fc514ee..8723582 100644
--- a/components/viz/host/hit_test/hit_test_query.cc
+++ b/components/viz/host/hit_test/hit_test_query.cc
@@ -121,16 +121,12 @@
           : (region->flags & mojom::kHitTestMouse) != 0u;
   if (!match_touch_or_mouse_region)
     return false;
-  if (region->flags & mojom::kHitTestMine) {
+  if (region->flags & (mojom::kHitTestMine | mojom::kHitTestAsk)) {
     target->frame_sink_id = region->frame_sink_id;
     target->location_in_target = location_in_target;
     target->flags = region->flags;
     return true;
   }
-  if (region->flags & mojom::kHitTestAsk) {
-    target->flags = region->flags;
-    return true;
-  }
   return false;
 }
 
diff --git a/components/viz/host/hit_test/hit_test_query_unittest.cc b/components/viz/host/hit_test/hit_test_query_unittest.cc
index fc6f4fbc..260157ac 100644
--- a/components/viz/host/hit_test/hit_test_query_unittest.cc
+++ b/components/viz/host/hit_test/hit_test_query_unittest.cc
@@ -928,8 +928,8 @@
   // point1 is inside e but we have to ask clients for targeting.
   Target target1 =
       hit_test_query().FindTargetForLocation(EventSource::MOUSE, point1);
-  EXPECT_EQ(target1.frame_sink_id, FrameSinkId());
-  EXPECT_EQ(target1.location_in_target, gfx::Point());
+  EXPECT_EQ(target1.frame_sink_id, e_id);
+  EXPECT_EQ(target1.location_in_target, point1);
   EXPECT_EQ(target1.flags, mojom::kHitTestAsk | mojom::kHitTestMouse);
 
   // point2 is on the bounds of e so no target found.
@@ -992,8 +992,8 @@
   // shouldn't go back to e.
   Target target3 =
       hit_test_query().FindTargetForLocation(EventSource::MOUSE, point3);
-  EXPECT_EQ(target3.frame_sink_id, FrameSinkId());
-  EXPECT_EQ(target3.location_in_target, gfx::Point());
+  EXPECT_EQ(target3.frame_sink_id, c2_id);
+  EXPECT_EQ(target3.location_in_target, gfx::Point(100, 100));
   EXPECT_EQ(target3.flags, mojom::kHitTestAsk | mojom::kHitTestMouse);
 }
 
diff --git a/components/viz/host/host_frame_sink_manager.cc b/components/viz/host/host_frame_sink_manager.cc
index 6df9d7f..e96bcc2e 100644
--- a/components/viz/host/host_frame_sink_manager.cc
+++ b/components/viz/host/host_frame_sink_manager.cc
@@ -98,6 +98,9 @@
 
 void HostFrameSinkManager::CreateRootCompositorFrameSink(
     mojom::RootCompositorFrameSinkParamsPtr params) {
+  // Should only be used with an out-of-process display compositor.
+  DCHECK(frame_sink_manager_ptr_);
+
   FrameSinkId frame_sink_id = params->frame_sink_id;
   FrameSinkData& data = frame_sink_data_map_[frame_sink_id];
   DCHECK(data.IsFrameSinkRegistered());
@@ -227,6 +230,9 @@
   data.support = support.get();
   data.is_root = is_root;
 
+  if (is_root)
+    display_hit_test_query_[frame_sink_id] = std::make_unique<HitTestQuery>();
+
   return support;
 }
 
diff --git a/components/viz/host/host_frame_sink_manager_unittest.cc b/components/viz/host/host_frame_sink_manager_unittest.cc
index 67cf6e47..1590d21 100644
--- a/components/viz/host/host_frame_sink_manager_unittest.cc
+++ b/components/viz/host/host_frame_sink_manager_unittest.cc
@@ -502,13 +502,12 @@
   EXPECT_TRUE(FrameSinkDataExists(kFrameSinkChild1));
 
   EXPECT_FALSE(DisplayHitTestQueryExists(kFrameSinkChild1));
-  auto params = mojom::RootCompositorFrameSinkParams::New();
-  params->frame_sink_id = kFrameSinkChild1;
-  params->widget = 0;
-  host().CreateRootCompositorFrameSink(std::move(params));
+  auto support =
+      CreateCompositorFrameSinkSupport(kFrameSinkChild1, true /* is_root */);
   EXPECT_TRUE(DisplayHitTestQueryExists(kFrameSinkChild1));
 
   host().InvalidateFrameSinkId(kFrameSinkChild1);
+  support.reset();
   EXPECT_FALSE(FrameSinkDataExists(kFrameSinkChild1));
   EXPECT_FALSE(DisplayHitTestQueryExists(kFrameSinkChild1));
 }
diff --git a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
index 50c187e..c9f0bef 100644
--- a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
+++ b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.cc
@@ -70,6 +70,9 @@
       capture_weak_factory_(this) {
   DCHECK(frame_sink_manager_);
 
+  // Instantiate a default base::OneShotTimer instance.
+  refresh_frame_retry_timer_.emplace();
+
   if (request.is_pending()) {
     binding_.Bind(std::move(request));
     binding_.set_connection_error_handler(
@@ -93,32 +96,32 @@
     return;
   }
 
+  const bool refresh_was_scheduled = refresh_frame_retry_timer_->IsRunning();
+
   if (resolved_target_) {
     resolved_target_->DetachCaptureClient(this);
   }
   resolved_target_ = target;
   if (resolved_target_) {
     resolved_target_->AttachCaptureClient(this);
-    const gfx::Size& source_size = resolved_target_->GetSurfaceSize();
-    if (source_size != oracle_.source_size()) {
-      oracle_.SetSourceSize(source_size);
-    }
-    MaybeCaptureFrame(VideoCaptureOracle::kActiveRefreshRequest,
-                      gfx::Rect(source_size), clock_->NowTicks());
   } else {
     // Not calling consumer_->OnTargetLost() because SetResolvedTarget() should
     // be called by FrameSinkManagerImpl with a valid target very soon.
   }
+
+  // Since the target has changed, re-schedule the frame refresh as an active
+  // one, just in case a passive one was scheduled. This ensures the next frame
+  // delivered to the consumer will contain content for the new target instead
+  // of the old (from a resurrected buffer).
+  if (refresh_was_scheduled) {
+    ScheduleRefreshFrame(VideoCaptureOracle::kActiveRefreshRequest);
+  }
 }
 
 void FrameSinkVideoCapturerImpl::OnTargetWillGoAway() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  if (!resolved_target_) {
-    return;
-  }
-  resolved_target_->DetachCaptureClient(this);
-  resolved_target_ = nullptr;
+  SetResolvedTarget(nullptr);
 
   if (requested_target_.is_valid()) {
     if (consumer_) {
@@ -216,14 +219,13 @@
   // Stop(), make that call on its behalf.
   consumer_.set_connection_error_handler(base::BindOnce(
       &FrameSinkVideoCapturerImpl::Stop, base::Unretained(this)));
-  MaybeCaptureFrame(VideoCaptureOracle::kActiveRefreshRequest,
-                    gfx::Rect(oracle_.source_size()), clock_->NowTicks());
+  ScheduleRefreshFrame(VideoCaptureOracle::kActiveRefreshRequest);
 }
 
 void FrameSinkVideoCapturerImpl::Stop() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  refresh_frame_retry_timer_.Stop();
+  refresh_frame_retry_timer_->Stop();
 
   // Cancel any captures in-flight and any captured frames pending delivery.
   capture_weak_factory_.InvalidateWeakPtrs();
@@ -242,8 +244,48 @@
 void FrameSinkVideoCapturerImpl::RequestRefreshFrame() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  MaybeCaptureFrame(VideoCaptureOracle::kPassiveRefreshRequest,
-                    gfx::Rect(oracle_.source_size()), clock_->NowTicks());
+  if (!consumer_ || refresh_frame_retry_timer_->IsRunning()) {
+    return;
+  }
+  ScheduleRefreshFrame(VideoCaptureOracle::kPassiveRefreshRequest);
+}
+
+void FrameSinkVideoCapturerImpl::ScheduleRefreshFrame(
+    VideoCaptureOracle::Event event) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  refresh_frame_retry_timer_->Start(
+      FROM_HERE,
+      std::max(kRefreshFrameRetryInterval, oracle_.min_capture_period()),
+      base::BindRepeating(&FrameSinkVideoCapturerImpl::RefreshOrReschedule,
+                          base::Unretained(this), event));
+}
+
+void FrameSinkVideoCapturerImpl::RefreshOrReschedule(
+    VideoCaptureOracle::Event event) {
+  DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+
+  // If the capture target has not yet been resolved, the refresh must be
+  // attempted later.
+  if (!resolved_target_) {
+    ScheduleRefreshFrame(VideoCaptureOracle::kActiveRefreshRequest);
+    return;
+  }
+
+  // If the target's surface size is empty, that indicates it has not yet had
+  // its first frame composited. Since having content is obviously a requirement
+  // for video capture, the refresh must be attempted later.
+  const gfx::Size& source_size = resolved_target_->GetSurfaceSize();
+  if (source_size.IsEmpty()) {
+    ScheduleRefreshFrame(VideoCaptureOracle::kActiveRefreshRequest);
+    return;
+  }
+
+  if (source_size != oracle_.source_size()) {
+    oracle_.SetSourceSize(source_size);
+  }
+  MaybeCaptureFrame(event, gfx::Rect(oracle_.source_size()),
+                    clock_->NowTicks());
 }
 
 void FrameSinkVideoCapturerImpl::OnBeginFrame(const BeginFrameArgs& args) {
@@ -313,13 +355,14 @@
     const gfx::Rect& damage_rect,
     base::TimeTicks event_time) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  DCHECK(resolved_target_);
 
   // Consult the oracle to determine whether this frame should be captured.
   if (oracle_.ObserveEventAndDecideCapture(event, damage_rect, event_time)) {
     // Regardless of the type of |event|, there is no longer a need for the
     // refresh frame retry timer to fire. The following is a no-op, if the timer
     // was not running.
-    refresh_frame_retry_timer_.Stop();
+    refresh_frame_retry_timer_->Stop();
   } else {
     TRACE_EVENT_INSTANT1("gpu.capture", "FpsRateLimited",
                          TRACE_EVENT_SCOPE_THREAD, "trigger",
@@ -328,17 +371,7 @@
     // If the oracle rejected a "refresh frame" request, schedule a later retry.
     if (event == VideoCaptureOracle::kPassiveRefreshRequest ||
         event == VideoCaptureOracle::kActiveRefreshRequest) {
-      refresh_frame_retry_timer_.Start(
-          FROM_HERE,
-          std::max(kRefreshFrameRetryInterval, oracle_.min_capture_period()),
-          base::BindRepeating(
-              [](FrameSinkVideoCapturerImpl* self,
-                 VideoCaptureOracle::Event event) {
-                self->MaybeCaptureFrame(event,
-                                        gfx::Rect(self->oracle_.source_size()),
-                                        self->clock_->NowTicks());
-              },
-              this, event));
+      ScheduleRefreshFrame(event);
     }
     return;
   }
@@ -420,19 +453,19 @@
                            "frame_number", frame_number, "trigger",
                            VideoCaptureOracle::EventAsString(event));
 
-  // If there is currently no resolved target (or the target has zero area),
-  // deliver a blank black frame.
   const gfx::Size& source_size = oracle_.source_size();
-  if (!resolved_target_ || source_size.IsEmpty()) {
+  DCHECK(!source_size.IsEmpty());
+  const gfx::Rect content_rect =
+      media::ComputeLetterboxRegionForI420(frame->visible_rect(), source_size);
+  // Extreme edge-case: If somehow the source size is so tiny that the content
+  // region becomes empty, just deliver a frame filled with black.
+  if (content_rect.IsEmpty()) {
     media::FillYUV(frame.get(), 0x00, 0x80, 0x80);
     DidCaptureFrame(frame_number, oracle_frame_number, std::move(frame),
                     gfx::Rect());
     return;
   }
 
-  const gfx::Rect content_rect =
-      media::ComputeLetterboxRegionForI420(frame->visible_rect(), source_size);
-
   // For passive refresh requests, just deliver the resurrected frame.
   if (event == VideoCaptureOracle::kPassiveRefreshRequest) {
     DidCaptureFrame(frame_number, oracle_frame_number, std::move(frame),
diff --git a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
index 5aa90f39..9c4fdc2 100644
--- a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
+++ b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl.h
@@ -136,6 +136,17 @@
   using OracleFrameNumber =
       decltype(std::declval<media::VideoCaptureOracle>().next_frame_number());
 
+  // Starts the refresh frame timer to guarantee a frame representing the most
+  // up-to-date content will be sent to the consumer in the near future. This
+  // refresh operation will be canceled if a compositing event triggers a frame
+  // capture in the meantime.
+  void ScheduleRefreshFrame(media::VideoCaptureOracle::Event event);
+
+  // Executes the refresh capture, if conditions permit. Otherwise, schedules a
+  // later retry. Note that the retry "polling" should be a short-term state,
+  // since it only occurs when the capture target hasn't yet been resolved.
+  void RefreshOrReschedule(media::VideoCaptureOracle::Event event);
+
   // CapturableFrameSink::Client implementation:
   void OnBeginFrame(const BeginFrameArgs& args) final;
   void OnFrameDamaged(const BeginFrameAck& ack,
@@ -221,10 +232,13 @@
   int64_t next_capture_frame_number_ = 0;
   int64_t next_delivery_frame_number_ = 0;
 
-  // When the oracle rejects a "refresh frame" request, this timer is set to
-  // auto-retry the refresh at a later point. This ensures refresh frame
-  // requests eventually result in a frame being delivered to the consumer.
-  base::OneShotTimer refresh_frame_retry_timer_;
+  // When the oracle rejects a "refresh frame" request, or a target is not yet
+  // resolved, this timer is set to auto-retry the refresh at a later point.
+  // This ensures refresh frame requests eventually result in a frame being
+  // delivered to the consumer.
+  //
+  // Note: This is always set, but the instance is overridden for unit testing.
+  base::Optional<base::OneShotTimer> refresh_frame_retry_timer_;
 
   // Provides a pool of VideoFrames that can be efficiently delivered across
   // processes. The size of this pool is used to limit the maximum number of
diff --git a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
index 62e6faa..ca8a273 100644
--- a/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
+++ b/components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
@@ -8,8 +8,7 @@
 #include "base/callback.h"
 #include "base/optional.h"
 #include "base/run_loop.h"
-#include "base/test/simple_test_tick_clock.h"
-#include "base/test/test_simple_task_runner.h"
+#include "base/test/test_mock_time_task_runner.h"
 #include "base/time/time.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "components/viz/common/frame_sinks/copy_output_request.h"
@@ -273,19 +272,23 @@
 class FrameSinkVideoCapturerTest : public testing::Test {
  public:
   FrameSinkVideoCapturerTest()
-      : retry_timer_task_runner_(new base::TestSimpleTaskRunner()),
-        capturer_(&frame_sink_manager_,
+      : capturer_(&frame_sink_manager_,
                   mojom::FrameSinkVideoCapturerRequest()) {}
 
   void SetUp() override {
-    // Override the capturer's TickClock with the one controlled by the tests.
-    start_time_ = base::TimeTicks() + base::TimeDelta::FromSeconds(1);
-    clock_.SetNowTicks(start_time_);
-    capturer_.clock_ = &clock_;
+    // Override the capturer's TickClock with a virtual clock managed by a
+    // manually-driven task runner.
+    task_runner_ = new base::TestMockTimeTaskRunner(
+        base::Time::Now(), base::TimeTicks() + base::TimeDelta::FromSeconds(1),
+        base::TestMockTimeTaskRunner::Type::kStandalone);
+    start_time_ = task_runner_->NowTicks();
+    clock_ = task_runner_->GetMockTickClock();
+    capturer_.clock_ = clock_.get();
 
-    // Point the retry timer at this test's manually-controlled task runner.
-    capturer_.refresh_frame_retry_timer_.SetTaskRunner(
-        retry_timer_task_runner_);
+    // Replace the retry timer with one that uses this test's fake clock and
+    // task runner.
+    capturer_.refresh_frame_retry_timer_.emplace(clock_.get());
+    capturer_.refresh_frame_retry_timer_->SetTaskRunner(task_runner_);
 
     // Before setting the format, ensure the defaults are in-place. Then, for
     // these tests, set a specific format and color space.
@@ -307,7 +310,7 @@
     capturer_.SetResolutionConstraints(kCaptureSize, kCaptureSize, false);
   }
 
-  void TearDown() override { retry_timer_task_runner_->ClearPendingTasks(); }
+  void TearDown() override { task_runner_->ClearPendingTasks(); }
 
   void StartCapture(MockConsumer* consumer) {
     capturer_.Start(consumer->BindVideoConsumer());
@@ -320,17 +323,17 @@
   }
 
   void AdvanceClockToNextVsync() {
-    const auto num_vsyncs_elapsed =
-        (clock_.NowTicks() - start_time_) / kVsyncInterval;
+    const auto now = task_runner_->NowTicks();
+    const auto num_vsyncs_elapsed = (now - start_time_) / kVsyncInterval;
     const auto advance_to_time =
         start_time_ + (num_vsyncs_elapsed + 1) * kVsyncInterval;
-    clock_.Advance(advance_to_time - clock_.NowTicks());
+    task_runner_->FastForwardBy(advance_to_time - now);
   }
 
   void NotifyBeginFrame(int source_id, int frame_number) {
     BeginFrameArgs args;
     args.interval = kVsyncInterval;
-    args.frame_time = clock_.NowTicks();
+    args.frame_time = task_runner_->NowTicks();
     args.sequence_number = BeginFrameArgs::kStartingFrameNumber + frame_number;
     args.source_id = source_id;
     capturer_.OnBeginFrame(args);
@@ -349,13 +352,13 @@
   }
 
   bool IsRefreshRetryTimerRunning() {
-    return capturer_.refresh_frame_retry_timer_.IsRunning();
+    return capturer_.refresh_frame_retry_timer_->IsRunning();
   }
 
-  void FireRefreshRetryTimer() {
-    ASSERT_TRUE(IsRefreshRetryTimerRunning());
-    ASSERT_TRUE(retry_timer_task_runner_->HasPendingTask());
-    retry_timer_task_runner_->RunPendingTasks();
+  void AdvanceClockForRefreshTimer() {
+    task_runner_->FastForwardBy(
+        FrameSinkVideoCapturerImpl::kRefreshFrameRetryInterval);
+    PropagateMojoTasks();
   }
 
   bool HasCacheEntryForSource(int source_id) {
@@ -368,9 +371,9 @@
   }
 
  protected:
+  scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
   base::TimeTicks start_time_;
-  base::SimpleTestTickClock clock_;
-  scoped_refptr<base::TestSimpleTaskRunner> retry_timer_task_runner_;
+  std::unique_ptr<base::TickClock> clock_;
   MockFrameSinkManager frame_sink_manager_;
   FakeCapturableFrameSink frame_sink_;
   FrameSinkVideoCapturerImpl capturer_;
@@ -416,46 +419,65 @@
   NiceMock<MockConsumer> consumer;
   EXPECT_CALL(consumer, OnTargetLost(kPriorFrameSinkId)).Times(1);
   StartCapture(&consumer);
+  // The refresh timer should be running, to ensure capture of an initial frame.
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   capturer_.ChangeTarget(kPriorFrameSinkId);
   EXPECT_EQ(kPriorFrameSinkId, capturer_.requested_target());
   EXPECT_EQ(&capturer_, prior_frame_sink.attached_client());
   EXPECT_EQ(nullptr, frame_sink_.attached_client());
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   NotifyTargetWentAway();
   EXPECT_EQ(nullptr, prior_frame_sink.attached_client());
   EXPECT_EQ(nullptr, frame_sink_.attached_client());
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   capturer_.ChangeTarget(kFrameSinkId);
   EXPECT_EQ(kFrameSinkId, capturer_.requested_target());
   EXPECT_EQ(nullptr, prior_frame_sink.attached_client());
   EXPECT_EQ(&capturer_, frame_sink_.attached_client());
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   StopCapture();
+  EXPECT_FALSE(IsRefreshRetryTimerRunning());
 }
 
-// Tests that an initial black frame is sent, in the case where a target is not
-// resolved at the time Start() is called.
-TEST_F(FrameSinkVideoCapturerTest, SendsBlackFrameOnStartWithoutATarget) {
+// Tests that no initial frame is sent after Start() is called until after the
+// target has been resolved.
+TEST_F(FrameSinkVideoCapturerTest, PostponesCaptureWithoutATarget) {
   EXPECT_CALL(frame_sink_manager_, FindCapturableFrameSink(kFrameSinkId))
       .WillRepeatedly(Return(&frame_sink_));
 
   MockConsumer consumer;
-  EXPECT_CALL(
-      consumer,
-      OnFrameCapturedMock(IsLetterboxedFrame(YUVColor{0x00, 0x80, 0x80}), _, _))
-      .Times(1);
+  EXPECT_CALL(consumer, OnFrameCapturedMock(_, _, _)).Times(0);
   EXPECT_CALL(consumer, OnTargetLost(kFrameSinkId)).Times(0);
   EXPECT_CALL(consumer, OnStopped()).Times(1);
 
   StartCapture(&consumer);
-  // A copy request was not necessary.
+  // No copy requests should have been issued/executed.
   EXPECT_EQ(0, frame_sink_.num_copy_results());
-  // The initial black frame is the initial refresh frame. Since that was
-  // supposed to have been sent, the timer should not be running to retry
-  // later.
+  // The refresh timer is running, which represents the need for an initial
+  // frame to be sent.
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
+
+  // Simulate several refresh timer intervals elapsing and the timer firing.
+  // Nothing should happen because the capture target was never set.
+  for (int i = 0; i < 5; ++i) {
+    AdvanceClockForRefreshTimer();
+    ASSERT_EQ(0, frame_sink_.num_copy_results());
+    ASSERT_TRUE(IsRefreshRetryTimerRunning());
+  }
+
+  // Now, set the target and advance the clock. The refresh timer should fire
+  // and this should trigger a copy request.
+  capturer_.ChangeTarget(kFrameSinkId);
+  AdvanceClockForRefreshTimer();
+  EXPECT_EQ(1, frame_sink_.num_copy_results());
   EXPECT_FALSE(IsRefreshRetryTimerRunning());
+
   StopCapture();
+  EXPECT_FALSE(IsRefreshRetryTimerRunning());
 }
 
 // An end-to-end pipeline test where compositor updates trigger the capturer to
@@ -467,6 +489,7 @@
       .WillRepeatedly(Return(&frame_sink_));
 
   capturer_.ChangeTarget(kFrameSinkId);
+  EXPECT_FALSE(IsRefreshRetryTimerRunning());
 
   MockConsumer consumer;
   const int num_refresh_frames = 1;
@@ -477,12 +500,17 @@
   EXPECT_CALL(consumer, OnTargetLost(_)).Times(0);
   EXPECT_CALL(consumer, OnStopped()).Times(1);
   StartCapture(&consumer);
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
-  // To start, the capturer will make a copy request for the initial refresh
-  // frame. Simulate a copy result and expect to see the refresh frame delivered
-  // to the consumer.
+  // Simulate that the source content is not changing, which means there aren't
+  // any compositor updates triggering capture. The refresh timer will fire to
+  // force capture of the initial frame.
+  AdvanceClockForRefreshTimer();
   ASSERT_EQ(num_refresh_frames, frame_sink_.num_copy_results());
   EXPECT_FALSE(IsRefreshRetryTimerRunning());
+
+  // Simulate execution of the copy request and expect to see the initial
+  // refresh frame delivered to the consumer.
   frame_sink_.SendCopyOutputResult(0);
   ASSERT_EQ(num_refresh_frames, consumer.num_frames_received());
   EXPECT_THAT(consumer.TakeFrame(0),
@@ -499,23 +527,24 @@
     // compositing of the frame has begun.
     AdvanceClockToNextVsync();
     const base::TimeTicks expected_reference_time =
-        clock_.NowTicks() + kVsyncInterval;
+        task_runner_->NowTicks() + kVsyncInterval;
     NotifyBeginFrame(1, i);
 
     // Change the content of the frame sink and notify the capturer of the
     // damage.
     const YUVColor color = {i << 4, (i << 4) + 0x10, (i << 4) + 0x20};
     frame_sink_.SetCopyOutputColor(color);
-    clock_.Advance(kVsyncInterval / 4);
-    const base::TimeTicks expected_capture_begin_time = clock_.NowTicks();
+    task_runner_->FastForwardBy(kVsyncInterval / 4);
+    const base::TimeTicks expected_capture_begin_time =
+        task_runner_->NowTicks();
     NotifyFrameDamaged(1, i);
 
     // The frame sink should have received a CopyOutputRequest. Simulate a short
     // pause before the result is sent back to the capturer, and the capturer
     // should then deliver the frame.
     ASSERT_EQ(i + 1, frame_sink_.num_copy_results());
-    clock_.Advance(kVsyncInterval / 4);
-    const base::TimeTicks expected_capture_end_time = clock_.NowTicks();
+    task_runner_->FastForwardBy(kVsyncInterval / 4);
+    const base::TimeTicks expected_capture_end_time = task_runner_->NowTicks();
     frame_sink_.SendCopyOutputResult(i);
     ASSERT_EQ(i + 1, consumer.num_frames_received());
 
@@ -574,14 +603,17 @@
 
   NiceMock<MockConsumer> consumer;
   StartCapture(&consumer);
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   // Saturate the pipeline with CopyOutputRequests that have not yet executed.
-  const int num_refresh_frames = 1;
   int num_frames = FrameSinkVideoCapturerImpl::kDesignLimitMaxFrames;
-  for (int i = num_refresh_frames; i < num_frames; ++i) {
+  for (int i = 0; i < num_frames; ++i) {
     AdvanceClockToNextVsync();
     NotifyBeginFrame(1, i);
     NotifyFrameDamaged(1, i);
+    // Compositor updates should have caused cancellation of the initial refresh
+    // frame.
+    EXPECT_FALSE(IsRefreshRetryTimerRunning());
   }
   ASSERT_EQ(num_frames, frame_sink_.num_copy_results());
 
@@ -660,9 +692,6 @@
 // Tests that copy requests completed out-of-order are accounted for by the
 // capturer, with results delivered to the consumer in-order.
 TEST_F(FrameSinkVideoCapturerTest, DeliversFramesInOrder) {
-  std::vector<YUVColor> colors;
-  colors.push_back(YUVColor{0x00, 0x80, 0x80});
-  frame_sink_.SetCopyOutputColor(colors.back());
   EXPECT_CALL(frame_sink_manager_, FindCapturableFrameSink(kFrameSinkId))
       .WillRepeatedly(Return(&frame_sink_));
 
@@ -671,13 +700,13 @@
   NiceMock<MockConsumer> consumer;
   StartCapture(&consumer);
 
-  // Issue five CopyOutputRequests (1 refresh frame plus 4 compositor
-  // updates). Each composited frame has its content region set to a different
-  // color to check that the video frames are being delivered in-order.
-  const int num_refresh_frames = 1;
-  int num_frames = 5;
-  ASSERT_EQ(num_refresh_frames, frame_sink_.num_copy_results());
-  for (int i = num_refresh_frames; i < num_frames; ++i) {
+  // Simulate five compositor updates. Each composited frame has its content
+  // region set to a different color to check that the video frames are being
+  // delivered in-order.
+  constexpr int kNumComposites = 5;
+  ASSERT_EQ(0, frame_sink_.num_copy_results());
+  std::vector<YUVColor> colors;
+  for (int i = 0; i < kNumComposites; ++i) {
     colors.push_back(YUVColor{static_cast<uint8_t>(i << 4),
                               static_cast<uint8_t>((i << 4) + 0x10),
                               static_cast<uint8_t>((i << 4) + 0x20)});
@@ -686,7 +715,7 @@
     NotifyBeginFrame(1, i);
     NotifyFrameDamaged(1, i);
   }
-  ASSERT_EQ(num_frames, frame_sink_.num_copy_results());
+  ASSERT_EQ(kNumComposites, frame_sink_.num_copy_results());
 
   // Complete the copy requests out-of-order. Check that frames are not
   // delivered until they can all be delivered in-order, and that the content of
@@ -728,12 +757,10 @@
   EXPECT_CALL(consumer, OnStopped()).Times(1);
   StartCapture(&consumer);
 
-  // Issue three additional CopyOutputRequests. With the initial refresh frame,
-  // the total should be four.
-  int num_refresh_frames = 1;
-  ASSERT_EQ(num_refresh_frames, frame_sink_.num_copy_results());
-  int num_copy_requests = 4;
-  for (int i = num_refresh_frames; i < num_copy_requests; ++i) {
+  // Simulate three compositor updates.
+  ASSERT_EQ(0, frame_sink_.num_copy_results());
+  int num_copy_requests = 3;
+  for (int i = 0; i < num_copy_requests; ++i) {
     SCOPED_TRACE(testing::Message() << "frame #" << i);
     AdvanceClockToNextVsync();
     NotifyBeginFrame(1, i);
@@ -763,6 +790,9 @@
   EXPECT_CALL(consumer2, OnTargetLost(_)).Times(0);
   EXPECT_CALL(consumer2, OnStopped()).Times(1);
   StartCapture(&consumer2);
+  // The refresh timer should be running, to ensure the new consumer gets an
+  // initial frame.
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   // Complete the copy requests for the first consumer. Expect that they have no
   // effect on the second consumer.
@@ -772,17 +802,14 @@
   }
   num_completed_captures = 0;
 
-  // Note: Because the clock hasn't advanced while switching consumers, the
-  // capturer won't send a refresh frame. This is because the VideoCaptureOracle
-  // thinks the frame rate would be too fast. However, the refresh frame retry
-  // timer should be running. It will be canceled when the next composite-
-  // triggered capture occurs (in the loop below).
-  num_refresh_frames = 0;
+  // The canceled copy request should not have affected the state of the refresh
+  // timer. It will be canceled when the next composite-triggered capture occurs
+  // (in the loop below).
   EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   // From here, any new copy requests should be executed with video frames
   // delivered to the consumer containing |color2|.
-  for (int i = num_refresh_frames; i < num_captures_for_second_consumer; ++i) {
+  for (int i = 0; i < num_captures_for_second_consumer; ++i) {
     AdvanceClockToNextVsync();
     NotifyBeginFrame(1, num_copy_requests);
     NotifyFrameDamaged(1, num_copy_requests);
@@ -816,11 +843,12 @@
   EXPECT_CALL(consumer, OnTargetLost(_)).Times(0);
   EXPECT_CALL(consumer, OnStopped()).Times(1);
   StartCapture(&consumer);
+  EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
   // To start, the capturer will make a copy request for the initial refresh
   // frame. Simulate a copy result and expect to see the refresh frame delivered
-  // to the consumer. The capturer should not have started the retry timer for
-  // this initial refresh frame.
+  // to the consumer.
+  AdvanceClockForRefreshTimer();
   ASSERT_EQ(1, frame_sink_.num_copy_results());
   EXPECT_FALSE(IsRefreshRetryTimerRunning());
   frame_sink_.SendCopyOutputResult(0);
@@ -834,28 +862,23 @@
     NotifyBeginFrame(1, i);
     NotifyFrameDamaged(1, i);
     ASSERT_EQ(i + 1, frame_sink_.num_copy_results());
+    ASSERT_FALSE(IsRefreshRetryTimerRunning());
     frame_sink_.SendCopyOutputResult(i);
     ASSERT_EQ(i + 1, consumer.num_frames_received());
     consumer.SendDoneNotification(i);
   }
 
-  // Without advancing the clock, request a refresh frame. The oracle will
-  // reject the request, and the retry timer will be started.
+  // Request a refresh frame and expect the retry timer to be started.
   capturer_.RequestRefreshFrame();
   ASSERT_EQ(num_frames, frame_sink_.num_copy_results());
   EXPECT_TRUE(IsRefreshRetryTimerRunning());
 
-  // Simulate the elapse of time and the firing of the refresh retry timer. The
-  // oracle should allow this later retry request and deliver a refresh frame.
-  clock_.Advance(FrameSinkVideoCapturerImpl::kRefreshFrameRetryInterval);
-  FireRefreshRetryTimer();
-  if (frame_sink_.num_copy_results() == num_frames + 1) {
-    frame_sink_.SendCopyOutputResult(num_frames);
-  } else {
-    // No copy request was made, because the implementation successfully
-    // resurrected the buffer from the prior capture.
-  }
-  ASSERT_EQ(num_frames, consumer.num_frames_received());
+  // Simulate the elapse of time and the firing of the refresh retry timer. This
+  // will execute a passive refresh, which resurrects the last buffer instead of
+  // spawning an additional copy request.
+  AdvanceClockForRefreshTimer();
+  ASSERT_EQ(num_frames, frame_sink_.num_copy_results());
+  ASSERT_EQ(num_frames + 1, consumer.num_frames_received());
   EXPECT_FALSE(IsRefreshRetryTimerRunning());
 
   StopCapture();
@@ -881,10 +904,10 @@
   // Make a sequence of OnBeginFrame() calls for source_id=2. The cache entries
   // for both sources should remain.
   const base::TimeTicks end_time =
-      clock_.NowTicks() + GetDisplayTimeCacheKeepAliveInterval();
+      task_runner_->NowTicks() + GetDisplayTimeCacheKeepAliveInterval();
   int seq = 2;
-  while (clock_.NowTicks() < end_time) {
-    clock_.Advance(kVsyncInterval);
+  while (task_runner_->NowTicks() < end_time) {
+    task_runner_->FastForwardBy(kVsyncInterval);
     NotifyBeginFrame(2, seq++);
     ASSERT_TRUE(HasCacheEntryForSource(1));
     ASSERT_TRUE(HasCacheEntryForSource(2));
diff --git a/content/app/strings/translations/content_strings_ca.xtb b/content/app/strings/translations/content_strings_ca.xtb
index 6143cc3..5242684a 100644
--- a/content/app/strings/translations/content_strings_ca.xtb
+++ b/content/app/strings/translations/content_strings_ca.xtb
@@ -6,7 +6,7 @@
 <translation id="10623998915015855">botó de commutació</translation>
 <translation id="1088086359088493902">Segons</translation>
 <translation id="1171774979989969504">Introduïu una adreça electrònica.</translation>
-<translation id="1178581264944972037">Pausa</translation>
+<translation id="1178581264944972037">Posa en pausa</translation>
 <translation id="1188858454923323853">complementari</translation>
 <translation id="1206619573307042055">marquee</translation>
 <translation id="1206693055195146388">control lliscant</translation>
@@ -150,7 +150,7 @@
 <translation id="7720026100085573005">temps restant</translation>
 <translation id="7740016676195725605">deixa de mostrar subtítols ocults</translation>
 <translation id="7740050170769002709">Contingut HTML</translation>
-<translation id="7789962463072032349">pausa</translation>
+<translation id="7789962463072032349">posa en pausa</translation>
 <translation id="7802800022689234070">triangle desplegable</translation>
 <translation id="7888071071722539607">Incloeu el símbol "<ph name="ATSIGN" />" a l'adreça electrònica. Al camp "<ph name="INVALIDADDRESS" />" falta el símbol "<ph name="ATSIGN" />".</translation>
 <translation id="7891486169920085145">divisor</translation>
diff --git a/content/app/strings/translations/content_strings_sk.xtb b/content/app/strings/translations/content_strings_sk.xtb
index a3a28d7..85d9a87 100644
--- a/content/app/strings/translations/content_strings_sk.xtb
+++ b/content/app/strings/translations/content_strings_sk.xtb
@@ -75,7 +75,7 @@
 <translation id="4151657705144244502">grafika</translation>
 <translation id="4201051445878709314">Zobraziť predchádzajúci mesiac</translation>
 <translation id="421884353938374759">výber farieb</translation>
-<translation id="4248100235867064564">panel ponuky</translation>
+<translation id="4248100235867064564">panel s ponukami</translation>
 <translation id="4254339807215791271">informácie o obsahu</translation>
 <translation id="4360991593054037559">Zadajte platnú hodnotu. Najbližšie platné hodnoty sú <ph name="VALID_VALUE_LOW" /> a <ph name="VALID_VALUE_HIGHER" />.</translation>
 <translation id="4413860115965805769">tlačidlo ponuky</translation>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
index 12246fd..bab78bca 100644
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
@@ -1012,8 +1012,6 @@
     "loader/resource_request_info_impl.h",
     "loader/resource_requester_info.cc",
     "loader/resource_requester_info.h",
-    "loader/resource_scheduler.cc",
-    "loader/resource_scheduler.h",
     "loader/resource_scheduler_filter.cc",
     "loader/resource_scheduler_filter.h",
     "loader/stream_resource_handler.cc",
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc
index 369edfda..9fbb14c0 100644
--- a/content/browser/accessibility/browser_accessibility_manager.cc
+++ b/content/browser/accessibility/browser_accessibility_manager.cc
@@ -12,6 +12,7 @@
 #include "build/build_config.h"
 #include "content/browser/accessibility/browser_accessibility.h"
 #include "content/common/accessibility_messages.h"
+#include "content/public/common/use_zoom_for_dsf_policy.h"
 #include "ui/accessibility/ax_tree_data.h"
 #include "ui/accessibility/ax_tree_serializer.h"
 
@@ -1202,20 +1203,25 @@
 
 BrowserAccessibility* BrowserAccessibilityManager::CachingAsyncHitTest(
     const gfx::Point& screen_point) {
+  gfx::Point scaled_point =
+      UseZoomForDSFEnabled()
+          ? ScaleToRoundedPoint(screen_point, device_scale_factor())
+          : screen_point;
+
   BrowserAccessibilityManager* root_manager = GetRootManager();
   if (root_manager && root_manager != this)
-    return root_manager->CachingAsyncHitTest(screen_point);
+    return root_manager->CachingAsyncHitTest(scaled_point);
 
   if (delegate()) {
     // This triggers an asynchronous request to compute the true object that's
-    // under |screen_point|.
-    HitTest(screen_point - GetViewBounds().OffsetFromOrigin());
+    // under |scaled_point|.
+    HitTest(scaled_point - GetViewBounds().OffsetFromOrigin());
 
     // Unfortunately we still have to return an answer synchronously because
     // the APIs were designed that way. The best case scenario is that the
     // screen point is within the bounds of the last result we got from a
     // call to AccessibilityHitTest - in that case, we can return that object!
-    if (last_hover_bounds_.Contains(screen_point)) {
+    if (last_hover_bounds_.Contains(scaled_point)) {
       BrowserAccessibilityManager* manager =
           BrowserAccessibilityManager::FromID(last_hover_ax_tree_id_);
       if (manager) {
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.cc b/content/browser/accessibility/browser_accessibility_manager_android.cc
index aff0ed4..e5a68d70 100644
--- a/content/browser/accessibility/browser_accessibility_manager_android.cc
+++ b/content/browser/accessibility/browser_accessibility_manager_android.cc
@@ -8,6 +8,7 @@
 #include "content/browser/accessibility/browser_accessibility_android.h"
 #include "content/browser/accessibility/web_contents_accessibility_android.h"
 #include "content/common/accessibility_messages.h"
+#include "content/public/common/use_zoom_for_dsf_policy.h"
 #include "ui/accessibility/ax_role_properties.h"
 
 namespace content {
@@ -362,6 +363,19 @@
     wcax->HandleHover(android_node->unique_id());
 }
 
+gfx::Rect BrowserAccessibilityManagerAndroid::GetViewBounds() {
+  // We have to take the device scale factor into account on Android.
+  BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager();
+  if (delegate) {
+    gfx::Rect bounds = delegate->AccessibilityGetViewBounds();
+    if (UseZoomForDSFEnabled() && device_scale_factor() > 0.0 &&
+        device_scale_factor() != 1.0)
+      bounds = ScaleToEnclosingRect(bounds, device_scale_factor());
+    return bounds;
+  }
+  return gfx::Rect();
+}
+
 void BrowserAccessibilityManagerAndroid::OnAtomicUpdateFinished(
     ui::AXTree* tree,
     bool root_changed,
diff --git a/content/browser/accessibility/browser_accessibility_manager_android.h b/content/browser/accessibility/browser_accessibility_manager_android.h
index 355792f..5c6c03a 100644
--- a/content/browser/accessibility/browser_accessibility_manager_android.h
+++ b/content/browser/accessibility/browser_accessibility_manager_android.h
@@ -86,6 +86,7 @@
                       BrowserAccessibility* node) override;
   void FireGeneratedEvent(AXEventGenerator::Event event_type,
                           BrowserAccessibility* node) override;
+  gfx::Rect GetViewBounds() override;
 
   void FireLocationChanged(BrowserAccessibility* node);
 
diff --git a/content/browser/accessibility/hit_testing_browsertest.cc b/content/browser/accessibility/hit_testing_browsertest.cc
index 1d035ed..93d8aea 100644
--- a/content/browser/accessibility/hit_testing_browsertest.cc
+++ b/content/browser/accessibility/hit_testing_browsertest.cc
@@ -6,6 +6,7 @@
 #include "content/browser/accessibility/browser_accessibility.h"
 #include "content/browser/accessibility/browser_accessibility_manager.h"
 #include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/common/use_zoom_for_dsf_policy.h"
 #include "content/public/test/browser_test_utils.h"
 #include "content/public/test/content_browser_test.h"
 #include "content/public/test/content_browser_test_utils.h"
@@ -38,7 +39,10 @@
       event_waiter.ListenToAdditionalFrame(node->current_frame_host());
     ui::AXActionData action_data;
     action_data.action = ui::AX_ACTION_HIT_TEST;
-    action_data.target_point = point;
+    action_data.target_point =
+        UseZoomForDSFEnabled()
+            ? ScaleToRoundedPoint(point, manager->device_scale_factor())
+            : point;
     action_data.hit_test_event_to_fire = event_to_fire;
     manager->delegate()->AccessibilityPerformAction(action_data);
     event_waiter.WaitForNotification();
diff --git a/content/browser/accessibility/web_contents_accessibility_android.cc b/content/browser/accessibility/web_contents_accessibility_android.cc
index 38f4eb50..1e83187c 100644
--- a/content/browser/accessibility/web_contents_accessibility_android.cc
+++ b/content/browser/accessibility/web_contents_accessibility_android.cc
@@ -18,6 +18,7 @@
 #include "content/browser/renderer_host/render_widget_host_view_android.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/public/common/content_features.h"
+#include "content/public/common/use_zoom_for_dsf_policy.h"
 #include "jni/WebContentsAccessibility_jni.h"
 #include "ui/events/android/motion_event_android.h"
 
@@ -540,8 +541,12 @@
   // The response is handled by HandleHover when it returns.
   // Hover event was consumed by accessibility by now. Return true to
   // stop the event from proceeding.
-  if (event.GetAction() != ui::MotionEvent::ACTION_HOVER_EXIT && root_manager_)
-    root_manager_->HitTest(gfx::ToFlooredPoint(event.GetPoint()));
+  if (event.GetAction() != ui::MotionEvent::ACTION_HOVER_EXIT &&
+      root_manager_) {
+    gfx::PointF point =
+        UseZoomForDSFEnabled() ? event.GetPointPix() : event.GetPoint();
+    root_manager_->HitTest(gfx::ToFlooredPoint(point));
+  }
   return true;
 }
 
diff --git a/content/browser/cache_storage/cache_storage_cache_unittest.cc b/content/browser/cache_storage/cache_storage_cache_unittest.cc
index 84db5127..cba0e06e 100644
--- a/content/browser/cache_storage/cache_storage_cache_unittest.cc
+++ b/content/browser/cache_storage/cache_storage_cache_unittest.cc
@@ -50,6 +50,7 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 using blink::mojom::CacheStorageError;
+using storage::BlobDataItem;
 
 namespace content {
 namespace cache_storage_cache_unittest {
@@ -162,11 +163,11 @@
   const auto& items = data->items();
   for (const auto& item : items) {
     switch (item->type()) {
-      case network::DataElement::TYPE_BYTES: {
-        output->append(item->bytes(), item->length());
+      case BlobDataItem::Type::kBytes: {
+        output->append(item->bytes().data(), item->length());
         break;
       }
-      case network::DataElement::TYPE_DISK_CACHE_ENTRY: {
+      case BlobDataItem::Type::kDiskCacheEntry: {
         disk_cache::Entry* entry = item->disk_cache_entry();
         int32_t body_size = entry->GetDataSize(item->disk_cache_stream_index());
 
@@ -195,7 +196,7 @@
   const auto& items = data->items();
   ASSERT_EQ(1u, items.size());
   const auto& item = items[0];
-  ASSERT_EQ(network::DataElement::TYPE_DISK_CACHE_ENTRY, item->type());
+  ASSERT_EQ(BlobDataItem::Type::kDiskCacheEntry, item->type());
   ASSERT_EQ(CacheStorageCache::INDEX_SIDE_DATA,
             item->disk_cache_side_stream_index());
 
diff --git a/content/browser/compositor/surface_utils.cc b/content/browser/compositor/surface_utils.cc
index bebc999..7763676 100644
--- a/content/browser/compositor/surface_utils.cc
+++ b/content/browser/compositor/surface_utils.cc
@@ -6,7 +6,6 @@
 
 #include "base/bind.h"
 #include "base/callback_helpers.h"
-#include "base/sequenced_task_runner.h"
 #include "build/build_config.h"
 #include "components/viz/common/frame_sinks/copy_output_result.h"
 #include "components/viz/common/gl_helper.h"
@@ -236,29 +235,6 @@
 
 namespace surface_utils {
 
-void ConnectWithInProcessFrameSinkManager(
-    viz::HostFrameSinkManager* host,
-    viz::FrameSinkManagerImpl* manager,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
-  // A mojo pointer to |host| which is the FrameSinkManagerImpl's client.
-  viz::mojom::FrameSinkManagerClientPtr host_mojo;
-  // A mojo pointer to |manager|.
-  viz::mojom::FrameSinkManagerPtr manager_mojo;
-
-  // A request to bind to each of the above interfaces.
-  viz::mojom::FrameSinkManagerClientRequest host_mojo_request =
-      mojo::MakeRequest(&host_mojo);
-  viz::mojom::FrameSinkManagerRequest manager_mojo_request =
-      mojo::MakeRequest(&manager_mojo);
-
-  // Sets |manager_mojo| which is given to the |host|.
-  manager->BindAndSetClient(std::move(manager_mojo_request), task_runner,
-                            std::move(host_mojo));
-  // Sets |host_mojo| which was given to the |manager|.
-  host->BindAndSetManager(std::move(host_mojo_request), task_runner,
-                          std::move(manager_mojo));
-}
-
 void ConnectWithLocalFrameSinkManager(
     viz::HostFrameSinkManager* host_frame_sink_manager,
     viz::FrameSinkManagerImpl* frame_sink_manager_impl) {
diff --git a/content/browser/compositor/surface_utils.h b/content/browser/compositor/surface_utils.h
index 3e1bd89..75e9e48 100644
--- a/content/browser/compositor/surface_utils.h
+++ b/content/browser/compositor/surface_utils.h
@@ -7,22 +7,16 @@
 
 #include <memory>
 
-#include "base/memory/ref_counted.h"
 #include "components/viz/common/surfaces/frame_sink_id.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/readback_types.h"
 #include "third_party/skia/include/core/SkImageInfo.h"
 #include "ui/gfx/geometry/size.h"
 
-namespace base {
-class SingleThreadTaskRunner;
-}
-
 namespace viz {
 class CopyOutputResult;
 class FrameSinkManagerImpl;
 class HostFrameSinkManager;
-class FrameSinkManagerImpl;
 }
 
 namespace content {
@@ -46,12 +40,6 @@
     viz::HostFrameSinkManager* host_frame_sink_manager,
     viz::FrameSinkManagerImpl* frame_sink_manager_impl);
 
-// Connects HostFrameSinkManager to FrameSinkManagerImpl using in process Mojo.
-CONTENT_EXPORT void ConnectWithInProcessFrameSinkManager(
-    viz::HostFrameSinkManager* host_frame_sink_manager,
-    viz::FrameSinkManagerImpl* frame_sink_manager_impl,
-    scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
 }  // namespace surface_utils
 
 }  // namespace content
diff --git a/content/browser/device_sensors/device_sensor_browsertest.cc b/content/browser/device_sensors/device_sensor_browsertest.cc
index 9e1a2bc..ace1282 100644
--- a/content/browser/device_sensors/device_sensor_browsertest.cc
+++ b/content/browser/device_sensors/device_sensor_browsertest.cc
@@ -249,9 +249,11 @@
 
       mojo::MakeStrongBinding(std::move(sensor),
                               mojo::MakeRequest(&init_params->sensor));
-      std::move(callback).Run(std::move(init_params));
+      std::move(callback).Run(device::mojom::SensorCreationResult::SUCCESS,
+                              std::move(init_params));
     } else {
-      std::move(callback).Run(nullptr);
+      std::move(callback).Run(
+          device::mojom::SensorCreationResult::ERROR_NOT_AVAILABLE, nullptr);
     }
   }
 
diff --git a/content/browser/devtools/browser_devtools_agent_host.cc b/content/browser/devtools/browser_devtools_agent_host.cc
index 3f5e9da..bf913c6 100644
--- a/content/browser/devtools/browser_devtools_agent_host.cc
+++ b/content/browser/devtools/browser_devtools_agent_host.cc
@@ -49,6 +49,7 @@
 }
 
 void BrowserDevToolsAgentHost::AttachSession(DevToolsSession* session) {
+  session->SetBrowserOnly(true);
   session->AddHandler(base::WrapUnique(new protocol::TargetHandler()));
   if (only_discovery_)
     return;
@@ -92,13 +93,10 @@
 void BrowserDevToolsAgentHost::Reload() {
 }
 
-bool BrowserDevToolsAgentHost::DispatchProtocolMessage(
+void BrowserDevToolsAgentHost::DispatchProtocolMessage(
     DevToolsSession* session,
     const std::string& message) {
-  int call_id;
-  std::string method;
-  session->Dispatch(message, &call_id, &method);
-  return true;
+  session->DispatchProtocolMessage(message);
 }
 
 }  // content
diff --git a/content/browser/devtools/browser_devtools_agent_host.h b/content/browser/devtools/browser_devtools_agent_host.h
index 20108f7..b757613 100644
--- a/content/browser/devtools/browser_devtools_agent_host.h
+++ b/content/browser/devtools/browser_devtools_agent_host.h
@@ -21,9 +21,8 @@
   // DevToolsAgentHostImpl implementation.
   void AttachSession(DevToolsSession* session) override;
   void DetachSession(DevToolsSession* session) override;
-  bool DispatchProtocolMessage(
-      DevToolsSession* session,
-      const std::string& message) override;
+  void DispatchProtocolMessage(DevToolsSession* session,
+                               const std::string& message) override;
 
   // DevToolsAgentHost implementation.
   std::string GetType() override;
diff --git a/content/browser/devtools/devtools_agent_host_impl.cc b/content/browser/devtools/devtools_agent_host_impl.cc
index 612e282b..ffb7fb7c 100644
--- a/content/browser/devtools/devtools_agent_host_impl.cc
+++ b/content/browser/devtools/devtools_agent_host_impl.cc
@@ -219,7 +219,8 @@
   DevToolsSession* session = SessionByClient(client);
   if (!session)
     return false;
-  return DispatchProtocolMessage(session, message);
+  DispatchProtocolMessage(session, message);
+  return true;
 }
 
 void DevToolsAgentHostImpl::InnerDetachClient(DevToolsAgentHostClient* client) {
diff --git a/content/browser/devtools/devtools_agent_host_impl.h b/content/browser/devtools/devtools_agent_host_impl.h
index db91037d..17248eb 100644
--- a/content/browser/devtools/devtools_agent_host_impl.h
+++ b/content/browser/devtools/devtools_agent_host_impl.h
@@ -65,9 +65,8 @@
 
   virtual void AttachSession(DevToolsSession* session) = 0;
   virtual void DetachSession(DevToolsSession* session) = 0;
-  virtual bool DispatchProtocolMessage(
-      DevToolsSession* session,
-      const std::string& message) = 0;
+  virtual void DispatchProtocolMessage(DevToolsSession* session,
+                                       const std::string& message) = 0;
   virtual void InspectElement(DevToolsSession* session, int x, int y);
 
   void NotifyCreated();
diff --git a/content/browser/devtools/devtools_session.cc b/content/browser/devtools/devtools_session.cc
index 8535023..cf6e071 100644
--- a/content/browser/devtools/devtools_session.cc
+++ b/content/browser/devtools/devtools_session.cc
@@ -11,6 +11,7 @@
 #include "content/browser/devtools/render_frame_devtools_agent_host.h"
 #include "content/browser/frame_host/render_frame_host_impl.h"
 #include "content/public/browser/devtools_manager_delegate.h"
+#include "content/public/common/child_process_host.h"
 
 namespace content {
 
@@ -33,10 +34,12 @@
     : binding_(this),
       agent_host_(agent_host),
       client_(client),
-      process_(nullptr),
+      process_host_id_(ChildProcessHost::kInvalidUniqueID),
       host_(nullptr),
       dispatcher_(new protocol::UberDispatcher(this)),
-      weak_factory_(this) {}
+      weak_factory_(this) {
+  dispatcher_->setFallThroughForNotFound(true);
+}
 
 DevToolsSession::~DevToolsSession() {
   dispatcher_.reset();
@@ -48,20 +51,21 @@
 void DevToolsSession::AddHandler(
     std::unique_ptr<protocol::DevToolsDomainHandler> handler) {
   handler->Wire(dispatcher_.get());
-  handler->SetRenderer(process_, host_);
+  handler->SetRenderer(process_host_id_, host_);
   handlers_[handler->name()] = std::move(handler);
 }
 
-void DevToolsSession::SetRenderer(RenderProcessHost* process_host,
+void DevToolsSession::SetRenderer(int process_host_id,
                                   RenderFrameHostImpl* frame_host) {
-  process_ = process_host;
+  process_host_id_ = process_host_id;
   host_ = frame_host;
   for (auto& pair : handlers_)
-    pair.second->SetRenderer(process_, host_);
+    pair.second->SetRenderer(process_host_id_, host_);
 }
 
-void DevToolsSession::SetFallThroughForNotFound(bool value) {
-  dispatcher_->setFallThroughForNotFound(value);
+void DevToolsSession::SetBrowserOnly(bool browser_only) {
+  browser_only_ = browser_only;
+  dispatcher_->setFallThroughForNotFound(!browser_only);
 }
 
 void DevToolsSession::AttachToAgent(
@@ -70,20 +74,21 @@
   binding_.Bind(mojo::MakeRequest(&host_ptr_info));
   agent->AttachDevToolsSession(
       std::move(host_ptr_info), mojo::MakeRequest(&session_ptr_),
-      mojo::MakeRequest(&io_session_ptr_), base::Optional<std::string>());
-  session_ptr_.set_connection_error_handler(base::BindOnce(
-      &DevToolsSession::MojoConnectionDestroyed, base::Unretained(this)));
-}
-
-void DevToolsSession::ReattachToAgent(
-    const blink::mojom::DevToolsAgentAssociatedPtr& agent) {
-  blink::mojom::DevToolsSessionHostAssociatedPtrInfo host_ptr_info;
-  binding_.Bind(mojo::MakeRequest(&host_ptr_info));
-  agent->AttachDevToolsSession(
-      std::move(host_ptr_info), mojo::MakeRequest(&session_ptr_),
       mojo::MakeRequest(&io_session_ptr_), state_cookie_);
   session_ptr_.set_connection_error_handler(base::BindOnce(
       &DevToolsSession::MojoConnectionDestroyed, base::Unretained(this)));
+
+  if (!suspended_sending_messages_to_agent_) {
+    for (const auto& pair : waiting_for_response_messages_) {
+      int call_id = pair.first;
+      const WaitingMessage& message = pair.second;
+      DispatchProtocolMessageToAgent(call_id, message.method, message.message);
+    }
+  }
+
+  // Set cookie to an empty string to reattach next time instead of attaching.
+  if (!state_cookie_.has_value())
+    state_cookie_ = std::string();
 }
 
 void DevToolsSession::SendResponse(
@@ -99,10 +104,7 @@
   io_session_ptr_.reset();
 }
 
-protocol::Response::Status DevToolsSession::Dispatch(
-    const std::string& message,
-    int* call_id,
-    std::string* method) {
+void DevToolsSession::DispatchProtocolMessage(const std::string& message) {
   std::unique_ptr<base::Value> value = base::JSONReader::Read(message);
 
   DevToolsManagerDelegate* delegate =
@@ -112,23 +114,40 @@
         static_cast<base::DictionaryValue*>(value.get());
 
     if (delegate->HandleCommand(agent_host_, client_, dict_value))
-      return protocol::Response::kSuccess;
+      return;
 
     if (delegate->HandleAsyncCommand(agent_host_, client_, dict_value,
                                      base::Bind(&DevToolsSession::SendResponse,
                                                 weak_factory_.GetWeakPtr()))) {
-      return protocol::Response::kAsync;
+      return;
     }
   }
 
-  return dispatcher_->dispatch(protocol::toProtocolValue(value.get(), 1000),
-                               call_id, method);
+  int call_id;
+  std::string method;
+  if (dispatcher_->dispatch(protocol::toProtocolValue(value.get(), 1000),
+                            &call_id,
+                            &method) != protocol::Response::kFallThrough) {
+    return;
+  }
+
+  // In browser-only mode, we should've handled everything in dispatcher.
+  DCHECK(!browser_only_);
+
+  if (suspended_sending_messages_to_agent_) {
+    suspended_messages_.push_back({call_id, method, message});
+    return;
+  }
+
+  DispatchProtocolMessageToAgent(call_id, method, message);
+  waiting_for_response_messages_[call_id] = {method, message};
 }
 
 void DevToolsSession::DispatchProtocolMessageToAgent(
     int call_id,
     const std::string& method,
     const std::string& message) {
+  DCHECK(!browser_only_);
   if (ShouldSendOnIO(method)) {
     if (io_session_ptr_)
       io_session_ptr_->DispatchProtocolMessage(call_id, method, message);
@@ -138,6 +157,23 @@
   }
 }
 
+void DevToolsSession::SuspendSendingMessagesToAgent() {
+  DCHECK(!browser_only_);
+  suspended_sending_messages_to_agent_ = true;
+}
+
+void DevToolsSession::ResumeSendingMessagesToAgent() {
+  DCHECK(!browser_only_);
+  suspended_sending_messages_to_agent_ = false;
+  for (const SuspendedMessage& message : suspended_messages_) {
+    DispatchProtocolMessageToAgent(message.call_id, message.method,
+                                   message.message);
+    waiting_for_response_messages_[message.call_id] = {message.method,
+                                                       message.message};
+  }
+  suspended_messages_.clear();
+}
+
 void DevToolsSession::InspectElement(const gfx::Point& point) {
   if (session_ptr_)
     session_ptr_->InspectElement(point);
@@ -180,9 +216,10 @@
 
 void DevToolsSession::ReceivedBadMessage() {
   MojoConnectionDestroyed();
-  if (process_) {
+  RenderProcessHost* process = RenderProcessHost::FromID(process_host_id_);
+  if (process) {
     bad_message::ReceivedBadMessage(
-        process_, bad_message::RFH_INCONSISTENT_DEVTOOLS_MESSAGE);
+        process, bad_message::RFH_INCONSISTENT_DEVTOOLS_MESSAGE);
   }
 }
 
diff --git a/content/browser/devtools/devtools_session.h b/content/browser/devtools/devtools_session.h
index 5e1a9e2..72d19e4 100644
--- a/content/browser/devtools/devtools_session.h
+++ b/content/browser/devtools/devtools_session.h
@@ -9,10 +9,10 @@
 
 #include "base/containers/flat_map.h"
 #include "base/memory/weak_ptr.h"
+#include "base/optional.h"
 #include "base/values.h"
 #include "content/browser/devtools/devtools_agent_host_impl.h"
 #include "content/browser/devtools/protocol/devtools_domain_handler.h"
-#include "content/browser/devtools/protocol/protocol.h"
 #include "mojo/public/cpp/bindings/associated_binding.h"
 #include "third_party/WebKit/public/web/devtools_agent.mojom.h"
 
@@ -29,29 +29,20 @@
   ~DevToolsSession() override;
 
   DevToolsAgentHostClient* client() const { return client_; }
+
+  // Browser-only sessions do not talk to mojom::DevToolsAgent, but instead
+  // handle all protocol messages locally in the browser process.
+  void SetBrowserOnly(bool browser_only);
+
   void AddHandler(std::unique_ptr<protocol::DevToolsDomainHandler> handler);
-  void SetRenderer(RenderProcessHost* process_host,
-                   RenderFrameHostImpl* frame_host);
-  void SetFallThroughForNotFound(bool value);
+  // TODO(dgozman): maybe combine this with AttachToAgent?
+  void SetRenderer(int process_host_id, RenderFrameHostImpl* frame_host);
+
   void AttachToAgent(const blink::mojom::DevToolsAgentAssociatedPtr& agent);
-  void ReattachToAgent(const blink::mojom::DevToolsAgentAssociatedPtr& agent);
-
-  struct Message {
-    std::string method;
-    std::string message;
-  };
-  using MessageByCallId = std::map<int, Message>;
-  MessageByCallId& waiting_messages() { return waiting_for_response_messages_; }
-  const std::string& state_cookie() { return state_cookie_; }
-
-  protocol::Response::Status Dispatch(
-      const std::string& message,
-      int* call_id,
-      std::string* method);
-  void DispatchProtocolMessageToAgent(int call_id,
-                                      const std::string& method,
-                                      const std::string& message);
+  void DispatchProtocolMessage(const std::string& message);
   void InspectElement(const gfx::Point& point);
+  void SuspendSendingMessagesToAgent();
+  void ResumeSendingMessagesToAgent();
 
   template <typename Handler>
   static std::vector<Handler*> HandlersForAgentHost(
@@ -72,6 +63,9 @@
   void SendResponse(std::unique_ptr<base::DictionaryValue> response);
   void MojoConnectionDestroyed();
   void ReceivedBadMessage();
+  void DispatchProtocolMessageToAgent(int call_id,
+                                      const std::string& method,
+                                      const std::string& message);
 
   // protocol::FrontendChannel implementation.
   void sendProtocolResponse(
@@ -90,16 +84,34 @@
   blink::mojom::DevToolsSessionPtr io_session_ptr_;
   DevToolsAgentHostImpl* agent_host_;
   DevToolsAgentHostClient* client_;
+  bool browser_only_ = false;
   base::flat_map<std::string, std::unique_ptr<protocol::DevToolsDomainHandler>>
       handlers_;
-  RenderProcessHost* process_;
+  int process_host_id_;
   RenderFrameHostImpl* host_;
   std::unique_ptr<protocol::UberDispatcher> dispatcher_;
-  MessageByCallId waiting_for_response_messages_;
+
+  // These messages were queued after suspending, not sent to the agent,
+  // and will be sent after resuming.
+  struct SuspendedMessage {
+    int call_id;
+    std::string method;
+    std::string message;
+  };
+  std::vector<SuspendedMessage> suspended_messages_;
+  bool suspended_sending_messages_to_agent_ = false;
+
+  // These messages have been sent to agent, but did not get a response yet.
+  struct WaitingMessage {
+    std::string method;
+    std::string message;
+  };
+  std::map<int, WaitingMessage> waiting_for_response_messages_;
 
   // |state_cookie_| always corresponds to a state before
   // any of the waiting for response messages have been handled.
-  std::string state_cookie_;
+  // Note that |state_cookie_| is not present only before first attach.
+  base::Optional<std::string> state_cookie_;
   std::string response_message_buffer_;
 
   base::WeakPtrFactory<DevToolsSession> weak_factory_;
diff --git a/content/browser/devtools/devtools_url_interceptor_request_job.cc b/content/browser/devtools/devtools_url_interceptor_request_job.cc
index 3e905ba..ba7d135 100644
--- a/content/browser/devtools/devtools_url_interceptor_request_job.cc
+++ b/content/browser/devtools/devtools_url_interceptor_request_job.cc
@@ -112,6 +112,8 @@
       request_details.url, request_details.priority, this, traffic_annotation);
   request_->set_method(request_details.method);
   request_->SetExtraRequestHeaders(request_details.extra_request_headers);
+  request_->SetReferrer(request_details.referrer);
+  request_->set_referrer_policy(request_details.referrer_policy);
 
   // Mimic the ResourceRequestInfoImpl of the original request.
   const ResourceRequestInfoImpl* resource_request_info =
@@ -534,6 +536,8 @@
                        original_request->method(),
                        GetUploadData(original_request),
                        original_request->extra_request_headers(),
+                       original_request->referrer(),
+                       original_request->referrer_policy(),
                        original_request->priority(),
                        original_request->context()),
       waiting_for_user_response_(WaitingForUserResponse::NOT_WAITING),
@@ -1092,10 +1096,17 @@
       std::unique_ptr<protocol::DictionaryValue> headers =
           modifications->modified_headers.fromJust()->toValue();
       for (size_t i = 0; i < headers->size(); i++) {
+        protocol::DictionaryValue::Entry entry = headers->at(i);
         std::string value;
-        if (headers->at(i).second->asString(&value)) {
-          request_details_.extra_request_headers.SetHeader(headers->at(i).first,
-                                                           value);
+        if (!entry.second->asString(&value))
+          continue;
+        if (base::EqualsCaseInsensitiveASCII(
+                entry.first, net::HttpRequestHeaders::kReferer)) {
+          request_details_.referrer = value;
+          request_details_.referrer_policy =
+              net::URLRequest::NEVER_CLEAR_REFERRER;
+        } else {
+          request_details_.extra_request_headers.SetHeader(entry.first, value);
         }
       }
     }
@@ -1149,12 +1160,16 @@
     const std::string& method,
     std::unique_ptr<net::UploadDataStream> post_data,
     const net::HttpRequestHeaders& extra_request_headers,
+    const std::string& referrer,
+    net::URLRequest::ReferrerPolicy referrer_policy,
     const net::RequestPriority& priority,
     const net::URLRequestContext* url_request_context)
     : url(url),
       method(method),
       post_data(std::move(post_data)),
       extra_request_headers(extra_request_headers),
+      referrer(referrer),
+      referrer_policy(referrer_policy),
       priority(priority),
       url_request_context(url_request_context) {}
 
diff --git a/content/browser/devtools/devtools_url_interceptor_request_job.h b/content/browser/devtools/devtools_url_interceptor_request_job.h
index b8792cf..cd45193 100644
--- a/content/browser/devtools/devtools_url_interceptor_request_job.h
+++ b/content/browser/devtools/devtools_url_interceptor_request_job.h
@@ -91,6 +91,8 @@
                    const std::string& method,
                    std::unique_ptr<net::UploadDataStream> post_data,
                    const net::HttpRequestHeaders& extra_request_headers,
+                   const std::string& referrer,
+                   net::URLRequest::ReferrerPolicy referrer_policy,
                    const net::RequestPriority& priority,
                    const net::URLRequestContext* url_request_context);
     ~RequestDetails();
@@ -99,6 +101,8 @@
     std::string method;
     std::unique_ptr<net::UploadDataStream> post_data;
     net::HttpRequestHeaders extra_request_headers;
+    std::string referrer;
+    net::URLRequest::ReferrerPolicy referrer_policy;
     net::RequestPriority priority;
     const net::URLRequestContext* url_request_context;
   };
diff --git a/content/browser/devtools/forwarding_agent_host.cc b/content/browser/devtools/forwarding_agent_host.cc
index 729c86ec..51a7dd8 100644
--- a/content/browser/devtools/forwarding_agent_host.cc
+++ b/content/browser/devtools/forwarding_agent_host.cc
@@ -55,13 +55,11 @@
   session_proxies_.erase(session);
 }
 
-bool ForwardingAgentHost::DispatchProtocolMessage(
-    DevToolsSession* session,
-    const std::string& message) {
+void ForwardingAgentHost::DispatchProtocolMessage(DevToolsSession* session,
+                                                  const std::string& message) {
   auto it = session_proxies_.find(session);
   if (it != session_proxies_.end())
     delegate_->SendMessageToBackend(it->second.get(), message);
-  return true;
 }
 
 std::string ForwardingAgentHost::GetType() {
diff --git a/content/browser/devtools/forwarding_agent_host.h b/content/browser/devtools/forwarding_agent_host.h
index 9b5f407..307adc08 100644
--- a/content/browser/devtools/forwarding_agent_host.h
+++ b/content/browser/devtools/forwarding_agent_host.h
@@ -29,9 +29,8 @@
   // DevToolsAgentHostImpl implementation.
   void AttachSession(DevToolsSession* session) override;
   void DetachSession(DevToolsSession* session) override;
-  bool DispatchProtocolMessage(
-      DevToolsSession* session,
-      const std::string& message) override;
+  void DispatchProtocolMessage(DevToolsSession* session,
+                               const std::string& message) override;
 
   // DevToolsAgentHost implementation
   std::string GetType() override;
diff --git a/content/browser/devtools/protocol/devtools_domain_handler.cc b/content/browser/devtools/protocol/devtools_domain_handler.cc
index db31f7d..5290245 100644
--- a/content/browser/devtools/protocol/devtools_domain_handler.cc
+++ b/content/browser/devtools/protocol/devtools_domain_handler.cc
@@ -17,7 +17,7 @@
 DevToolsDomainHandler::~DevToolsDomainHandler() {
 }
 
-void DevToolsDomainHandler::SetRenderer(RenderProcessHost* process_host,
+void DevToolsDomainHandler::SetRenderer(int process_host_id,
                                         RenderFrameHostImpl* frame_host) {}
 
 void DevToolsDomainHandler::Wire(UberDispatcher* dispatcher) {
diff --git a/content/browser/devtools/protocol/devtools_domain_handler.h b/content/browser/devtools/protocol/devtools_domain_handler.h
index 8d8b4f12..ea48934a 100644
--- a/content/browser/devtools/protocol/devtools_domain_handler.h
+++ b/content/browser/devtools/protocol/devtools_domain_handler.h
@@ -10,7 +10,6 @@
 namespace content {
 
 class RenderFrameHostImpl;
-class RenderProcessHost;
 
 namespace protocol {
 
@@ -19,7 +18,7 @@
   explicit DevToolsDomainHandler(const std::string& name);
   virtual ~DevToolsDomainHandler();
 
-  virtual void SetRenderer(RenderProcessHost* process_host,
+  virtual void SetRenderer(int process_host_id,
                            RenderFrameHostImpl* frame_host);
   virtual void Wire(UberDispatcher* dispatcher);
   virtual Response Disable();
diff --git a/content/browser/devtools/protocol/dom_handler.cc b/content/browser/devtools/protocol/dom_handler.cc
index 9bf4e6e..2fc40a76 100644
--- a/content/browser/devtools/protocol/dom_handler.cc
+++ b/content/browser/devtools/protocol/dom_handler.cc
@@ -24,7 +24,7 @@
   DOM::Dispatcher::wire(dispatcher, this);
 }
 
-void DOMHandler::SetRenderer(RenderProcessHost* process_host,
+void DOMHandler::SetRenderer(int process_host_id,
                              RenderFrameHostImpl* frame_host) {
   host_ = frame_host;
 }
diff --git a/content/browser/devtools/protocol/dom_handler.h b/content/browser/devtools/protocol/dom_handler.h
index 0dfcd94..7c6bbc6 100644
--- a/content/browser/devtools/protocol/dom_handler.h
+++ b/content/browser/devtools/protocol/dom_handler.h
@@ -22,7 +22,7 @@
   ~DOMHandler() override;
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
   Response Disable() override;
 
diff --git a/content/browser/devtools/protocol/emulation_handler.cc b/content/browser/devtools/protocol/emulation_handler.cc
index b9b4992..3aa6d514 100644
--- a/content/browser/devtools/protocol/emulation_handler.cc
+++ b/content/browser/devtools/protocol/emulation_handler.cc
@@ -64,7 +64,7 @@
 EmulationHandler::~EmulationHandler() {
 }
 
-void EmulationHandler::SetRenderer(RenderProcessHost* process_host,
+void EmulationHandler::SetRenderer(int process_host_id,
                                    RenderFrameHostImpl* frame_host) {
   if (host_ == frame_host)
     return;
diff --git a/content/browser/devtools/protocol/emulation_handler.h b/content/browser/devtools/protocol/emulation_handler.h
index 423d18f..f322802 100644
--- a/content/browser/devtools/protocol/emulation_handler.h
+++ b/content/browser/devtools/protocol/emulation_handler.h
@@ -24,7 +24,7 @@
   ~EmulationHandler() override;
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   Response Disable() override;
diff --git a/content/browser/devtools/protocol/input_handler.cc b/content/browser/devtools/protocol/input_handler.cc
index af425ccb..92c7089 100644
--- a/content/browser/devtools/protocol/input_handler.cc
+++ b/content/browser/devtools/protocol/input_handler.cc
@@ -88,7 +88,7 @@
   return result;
 }
 
-base::TimeTicks GetEventTimeTicks(Maybe<double> timestamp) {
+base::TimeTicks GetEventTimeTicks(const Maybe<double>& timestamp) {
   // Convert timestamp, in seconds since unix epoch, to an event timestamp
   // which is time ticks since platform start time.
   return timestamp.isJust()
@@ -97,9 +97,8 @@
              : base::TimeTicks::Now();
 }
 
-double GetEventTimestamp(Maybe<double> timestamp) {
-  return (GetEventTimeTicks(std::move(timestamp)) - base::TimeTicks())
-      .InSecondsF();
+double GetEventTimestamp(const Maybe<double>& timestamp) {
+  return (GetEventTimeTicks(timestamp) - base::TimeTicks()).InSecondsF();
 }
 
 bool SetKeyboardEventText(blink::WebUChar* to, Maybe<std::string> from) {
@@ -268,7 +267,7 @@
       host, Input::Metainfo::domainName);
 }
 
-void InputHandler::SetRenderer(RenderProcessHost* process_host,
+void InputHandler::SetRenderer(int process_host_id,
                                RenderFrameHostImpl* frame_host) {
   if (frame_host == host_)
     return;
@@ -453,7 +452,7 @@
       maybe_modifiers.fromMaybe(blink::WebInputEvent::kNoModifiers), false,
       false, 0);
   modifiers |= button_modifiers;
-  double timestamp = GetEventTimestamp(std::move(maybe_timestamp));
+  double timestamp = GetEventTimestamp(maybe_timestamp);
 
   std::unique_ptr<blink::WebMouseEvent, ui::WebInputEventDeleter> mouse_event;
   blink::WebMouseWheelEvent* wheel_event = nullptr;
@@ -527,7 +526,7 @@
   int modifiers = GetEventModifiers(
       maybe_modifiers.fromMaybe(blink::WebInputEvent::kNoModifiers), false,
       false, 0);
-  double timestamp = GetEventTimestamp(std::move(maybe_timestamp));
+  double timestamp = GetEventTimestamp(maybe_timestamp);
 
   if ((type == blink::WebInputEvent::kTouchStart ||
        type == blink::WebInputEvent::kTouchMove) &&
@@ -649,8 +648,8 @@
 Response InputHandler::EmulateTouchFromMouseEvent(const std::string& type,
                                                   int x,
                                                   int y,
-                                                  double timestamp,
                                                   const std::string& button,
+                                                  Maybe<double> maybe_timestamp,
                                                   Maybe<double> delta_x,
                                                   Maybe<double> delta_y,
                                                   Maybe<int> modifiers,
@@ -686,7 +685,7 @@
             modifiers.fromMaybe(blink::WebInputEvent::kNoModifiers), false,
             false, 0) |
             button_modifiers,
-        GetEventTimestamp(timestamp));
+        GetEventTimestamp(maybe_timestamp));
     mouse_event = wheel_event;
     event.reset(wheel_event);
     wheel_event->delta_x = static_cast<float>(delta_x.fromJust());
@@ -702,7 +701,7 @@
             modifiers.fromMaybe(blink::WebInputEvent::kNoModifiers), false,
             false, 0) |
             button_modifiers,
-        GetEventTimestamp(timestamp));
+        GetEventTimestamp(maybe_timestamp));
     event.reset(mouse_event);
   }
 
diff --git a/content/browser/devtools/protocol/input_handler.h b/content/browser/devtools/protocol/input_handler.h
index e87dd647..6e0d79f 100644
--- a/content/browser/devtools/protocol/input_handler.h
+++ b/content/browser/devtools/protocol/input_handler.h
@@ -37,7 +37,7 @@
   static std::vector<InputHandler*> ForAgentHost(DevToolsAgentHostImpl* host);
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   void OnSwapCompositorFrame(
@@ -83,8 +83,8 @@
   Response EmulateTouchFromMouseEvent(const std::string& type,
                                       int x,
                                       int y,
-                                      double timestamp,
                                       const std::string& button,
+                                      Maybe<double> timestamp,
                                       Maybe<double> delta_x,
                                       Maybe<double> delta_y,
                                       Maybe<int> modifiers,
diff --git a/content/browser/devtools/protocol/inspector_handler.cc b/content/browser/devtools/protocol/inspector_handler.cc
index 480277ae..8d92ab68 100644
--- a/content/browser/devtools/protocol/inspector_handler.cc
+++ b/content/browser/devtools/protocol/inspector_handler.cc
@@ -30,7 +30,7 @@
   Inspector::Dispatcher::wire(dispatcher, this);
 }
 
-void InspectorHandler::SetRenderer(RenderProcessHost* process_host,
+void InspectorHandler::SetRenderer(int process_host_id,
                                    RenderFrameHostImpl* frame_host) {
   host_ = frame_host;
 }
diff --git a/content/browser/devtools/protocol/inspector_handler.h b/content/browser/devtools/protocol/inspector_handler.h
index 716364be..d419641 100644
--- a/content/browser/devtools/protocol/inspector_handler.h
+++ b/content/browser/devtools/protocol/inspector_handler.h
@@ -26,7 +26,7 @@
       DevToolsAgentHostImpl* host);
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   void TargetCrashed();
diff --git a/content/browser/devtools/protocol/io_handler.cc b/content/browser/devtools/protocol/io_handler.cc
index 9d3c0de..e01d5f29 100644
--- a/content/browser/devtools/protocol/io_handler.cc
+++ b/content/browser/devtools/protocol/io_handler.cc
@@ -25,7 +25,8 @@
 IOHandler::IOHandler(DevToolsIOContext* io_context)
     : DevToolsDomainHandler(IO::Metainfo::domainName),
       io_context_(io_context),
-      process_host_(nullptr),
+      browser_context_(nullptr),
+      storage_partition_(nullptr),
       weak_factory_(this) {}
 
 IOHandler::~IOHandler() {}
@@ -35,9 +36,16 @@
   IO::Dispatcher::wire(dispatcher, this);
 }
 
-void IOHandler::SetRenderer(RenderProcessHost* process_host,
+void IOHandler::SetRenderer(int process_host_id,
                             RenderFrameHostImpl* frame_host) {
-  process_host_ = process_host;
+  RenderProcessHost* process_host = RenderProcessHost::FromID(process_host_id);
+  if (process_host) {
+    browser_context_ = process_host->GetBrowserContext();
+    storage_partition_ = process_host->GetStoragePartition();
+  } else {
+    browser_context_ = nullptr;
+    storage_partition_ = nullptr;
+  }
 }
 
 void IOHandler::Read(
@@ -50,15 +58,13 @@
 
   scoped_refptr<DevToolsIOContext::ROStream> stream =
       io_context_->GetByHandle(handle);
-  if (!stream && process_host_ &&
+  if (!stream && browser_context_ &&
       StartsWith(handle, kBlobPrefix, base::CompareCase::SENSITIVE)) {
-    BrowserContext* browser_context = process_host_->GetBrowserContext();
     ChromeBlobStorageContext* blob_context =
-        ChromeBlobStorageContext::GetFor(browser_context);
-    StoragePartition* storage_partition = process_host_->GetStoragePartition();
+        ChromeBlobStorageContext::GetFor(browser_context_);
     std::string uuid = handle.substr(strlen(kBlobPrefix));
     stream =
-        io_context_->OpenBlob(blob_context, storage_partition, handle, uuid);
+        io_context_->OpenBlob(blob_context, storage_partition_, handle, uuid);
   }
 
   if (!stream) {
diff --git a/content/browser/devtools/protocol/io_handler.h b/content/browser/devtools/protocol/io_handler.h
index 3cee438..7a25cae 100644
--- a/content/browser/devtools/protocol/io_handler.h
+++ b/content/browser/devtools/protocol/io_handler.h
@@ -11,7 +11,9 @@
 #include "content/browser/devtools/protocol/io.h"
 
 namespace content {
+class BrowserContext;
 class DevToolsIOContext;
+class StoragePartition;
 
 namespace protocol {
 
@@ -22,7 +24,7 @@
   ~IOHandler() override;
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   // Protocol methods.
@@ -41,7 +43,8 @@
 
   std::unique_ptr<IO::Frontend> frontend_;
   DevToolsIOContext* io_context_;
-  RenderProcessHost* process_host_;
+  BrowserContext* browser_context_;
+  StoragePartition* storage_partition_;
   base::WeakPtrFactory<IOHandler> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(IOHandler);
diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
index 46a4e3ca..d1bdbb08 100644
--- a/content/browser/devtools/protocol/network_handler.cc
+++ b/content/browser/devtools/protocol/network_handler.cc
@@ -694,7 +694,8 @@
 
 NetworkHandler::NetworkHandler(const std::string& host_id)
     : DevToolsDomainHandler(Network::Metainfo::domainName),
-      process_(nullptr),
+      browser_context_(nullptr),
+      storage_partition_(nullptr),
       host_(nullptr),
       enabled_(false),
       host_id_(host_id),
@@ -724,9 +725,17 @@
   Network::Dispatcher::wire(dispatcher, this);
 }
 
-void NetworkHandler::SetRenderer(RenderProcessHost* process_host,
+void NetworkHandler::SetRenderer(int render_process_host_id,
                                  RenderFrameHostImpl* frame_host) {
-  process_ = process_host;
+  RenderProcessHost* process_host =
+      RenderProcessHost::FromID(render_process_host_id);
+  if (process_host) {
+    storage_partition_ = process_host->GetStoragePartition();
+    browser_context_ = process_host->GetBrowserContext();
+  } else {
+    storage_partition_ = nullptr;
+    browser_context_ = nullptr;
+  }
   host_ = frame_host;
 }
 
@@ -775,13 +784,12 @@
 
 void NetworkHandler::ClearBrowserCache(
     std::unique_ptr<ClearBrowserCacheCallback> callback) {
-  if (!process_) {
+  if (!browser_context_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
   content::BrowsingDataRemover* remover =
-      content::BrowserContext::GetBrowsingDataRemover(
-          process_->GetBrowserContext());
+      content::BrowserContext::GetBrowsingDataRemover(browser_context_);
   remover->RemoveAndReply(
       base::Time(), base::Time::Max(),
       content::BrowsingDataRemover::DATA_TYPE_CACHE,
@@ -791,7 +799,7 @@
 
 void NetworkHandler::ClearBrowserCookies(
     std::unique_ptr<ClearBrowserCookiesCallback> callback) {
-  if (!process_) {
+  if (!storage_partition_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
@@ -800,8 +808,7 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &ClearCookiesOnIO,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext()),
+          base::Unretained(storage_partition_->GetURLRequestContext()),
           std::move(callback)));
 }
 
@@ -820,14 +827,12 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &CookieRetriever::RetrieveCookiesOnIO, retriever,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext()),
-          urls));
+          base::Unretained(storage_partition_->GetURLRequestContext()), urls));
 }
 
 void NetworkHandler::GetAllCookies(
     std::unique_ptr<GetAllCookiesCallback> callback) {
-  if (!process_) {
+  if (!storage_partition_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
@@ -839,8 +844,7 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &CookieRetriever::RetrieveAllCookiesOnIO, retriever,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext())));
+          base::Unretained(storage_partition_->GetURLRequestContext())));
 }
 
 void NetworkHandler::SetCookie(const std::string& name,
@@ -853,7 +857,7 @@
                                Maybe<std::string> same_site,
                                Maybe<double> expires,
                                std::unique_ptr<SetCookieCallback> callback) {
-  if (!process_) {
+  if (!storage_partition_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
@@ -867,19 +871,17 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &SetCookieOnIO,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext()),
-          name, value, url.fromMaybe(""), domain.fromMaybe(""),
-          path.fromMaybe(""), secure.fromMaybe(false),
-          http_only.fromMaybe(false), same_site.fromMaybe(""),
-          expires.fromMaybe(-1),
+          base::Unretained(storage_partition_->GetURLRequestContext()), name,
+          value, url.fromMaybe(""), domain.fromMaybe(""), path.fromMaybe(""),
+          secure.fromMaybe(false), http_only.fromMaybe(false),
+          same_site.fromMaybe(""), expires.fromMaybe(-1),
           base::BindOnce(&CookieSetOnIO, std::move(callback))));
 }
 
 void NetworkHandler::SetCookies(
     std::unique_ptr<protocol::Array<Network::CookieParam>> cookies,
     std::unique_ptr<SetCookiesCallback> callback) {
-  if (!process_) {
+  if (!storage_partition_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
@@ -888,8 +890,7 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &SetCookiesOnIO,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext()),
+          base::Unretained(storage_partition_->GetURLRequestContext()),
           std::move(cookies),
           base::BindOnce(&CookiesSetOnIO, std::move(callback))));
 }
@@ -900,7 +901,7 @@
     Maybe<std::string> domain,
     Maybe<std::string> path,
     std::unique_ptr<DeleteCookiesCallback> callback) {
-  if (!process_) {
+  if (!storage_partition_) {
     callback->sendFailure(Response::InternalError());
     return;
   }
@@ -913,9 +914,8 @@
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(
           &DeleteCookiesOnIO,
-          base::Unretained(
-              process_->GetStoragePartition()->GetURLRequestContext()),
-          name, url.fromMaybe(""), domain.fromMaybe(""), path.fromMaybe(""),
+          base::Unretained(storage_partition_->GetURLRequestContext()), name,
+          url.fromMaybe(""), domain.fromMaybe(""), path.fromMaybe(""),
           base::BindOnce(&DeleteCookiesCallback::sendSuccess,
                          std::move(callback))));
 }
@@ -1217,8 +1217,7 @@
     Maybe<protocol::Network::AuthChallengeResponse> auth_challenge_response,
     std::unique_ptr<ContinueInterceptedRequestCallback> callback) {
   DevToolsInterceptorController* interceptor =
-      DevToolsInterceptorController::FromBrowserContext(
-          process_->GetBrowserContext());
+      DevToolsInterceptorController::FromBrowserContext(browser_context_);
   if (!interceptor) {
     callback->sendFailure(Response::InternalError());
     return;
@@ -1260,9 +1259,7 @@
     const String& interception_id,
     std::unique_ptr<GetResponseBodyForInterceptionCallback> callback) {
   DevToolsInterceptorController* interceptor =
-      DevToolsInterceptorController::FromBrowserContext(
-          process_->GetBrowserContext());
-
+      DevToolsInterceptorController::FromBrowserContext(browser_context_);
   if (!interceptor) {
     callback->sendFailure(Response::InternalError());
     return;
@@ -1287,6 +1284,10 @@
        it.GetNext();) {
     headers_dict->setString(it.name(), it.value());
   }
+  if (!request->referrer().empty()) {
+    headers_dict->setString(net::HttpRequestHeaders::kReferer,
+                            request->referrer());
+  }
   std::unique_ptr<protocol::Network::Request> request_object =
       Network::Request::Create()
           .SetUrl(ClearUrlRef(request->url()).spec())
@@ -1396,10 +1397,10 @@
 
 void NetworkHandler::SetNetworkConditions(
     network::mojom::NetworkConditionsPtr conditions) {
-  if (!process_)
+  if (!storage_partition_)
     return;
-  StoragePartition* partition = process_->GetStoragePartition();
-  network::mojom::NetworkContext* context = partition->GetNetworkContext();
+  network::mojom::NetworkContext* context =
+      storage_partition_->GetNetworkContext();
   context->SetNetworkConditions(host_id_, std::move(conditions));
 }
 
diff --git a/content/browser/devtools/protocol/network_handler.h b/content/browser/devtools/protocol/network_handler.h
index 4a92de4..e261fb8 100644
--- a/content/browser/devtools/protocol/network_handler.h
+++ b/content/browser/devtools/protocol/network_handler.h
@@ -28,13 +28,14 @@
 }  // namespace network
 
 namespace content {
+class BrowserContext;
 class DevToolsAgentHostImpl;
 class RenderFrameHostImpl;
-struct GlobalRequestID;
 class InterceptionHandle;
 class NavigationHandle;
 class NavigationRequest;
 class NavigationThrottle;
+class StoragePartition;
 struct GlobalRequestID;
 struct InterceptedRequestInfo;
 struct ResourceRequest;
@@ -50,7 +51,7 @@
   static std::vector<NetworkHandler*> ForAgentHost(DevToolsAgentHostImpl* host);
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int render_process_id,
                    RenderFrameHostImpl* frame_host) override;
 
   Response Enable(Maybe<int> max_total_size,
@@ -150,7 +151,8 @@
   void SetNetworkConditions(network::mojom::NetworkConditionsPtr conditions);
 
   std::unique_ptr<Network::Frontend> frontend_;
-  RenderProcessHost* process_;
+  BrowserContext* browser_context_;
+  StoragePartition* storage_partition_;
   RenderFrameHostImpl* host_;
   bool enabled_;
   std::string user_agent_;
diff --git a/content/browser/devtools/protocol/page_handler.cc b/content/browser/devtools/protocol/page_handler.cc
index 71ccf4a5..c02c2f4b 100644
--- a/content/browser/devtools/protocol/page_handler.cc
+++ b/content/browser/devtools/protocol/page_handler.cc
@@ -148,7 +148,7 @@
       host, Page::Metainfo::domainName);
 }
 
-void PageHandler::SetRenderer(RenderProcessHost* process_host,
+void PageHandler::SetRenderer(int process_host_id,
                               RenderFrameHostImpl* frame_host) {
   if (host_ == frame_host)
     return;
@@ -300,29 +300,23 @@
   return Response::FallThrough();
 }
 
-void PageHandler::Reload(Maybe<bool> bypassCache,
-                         Maybe<std::string> script_to_evaluate_on_load,
-                         std::unique_ptr<ReloadCallback> callback) {
+Response PageHandler::Reload(Maybe<bool> bypassCache,
+                             Maybe<std::string> script_to_evaluate_on_load) {
   WebContentsImpl* web_contents = GetWebContents();
-  if (!web_contents) {
-    callback->sendFailure(Response::InternalError());
-    return;
-  }
+  if (!web_contents)
+    return Response::InternalError();
   if (web_contents->IsCrashed() ||
       web_contents->GetURL().scheme() == url::kDataScheme ||
       (web_contents->GetController().GetVisibleEntry() &&
-       web_contents->GetController().GetVisibleEntry()->IsViewSourceMode()) ||
-      !script_to_evaluate_on_load.isJust()) {
-    if (reload_callback_)
-      reload_callback_->sendSuccess();
-    reload_callback_ = std::move(callback);
+       web_contents->GetController().GetVisibleEntry()->IsViewSourceMode())) {
     web_contents->GetController().Reload(bypassCache.fromMaybe(false)
                                              ? ReloadType::BYPASSING_CACHE
                                              : ReloadType::NORMAL,
-                                         true);
+                                         false);
+    return Response::OK();
   } else {
     // Handle reload in renderer except for crashed and view source mode.
-    callback->fallThrough();
+    return Response::FallThrough();
   }
 }
 
@@ -388,16 +382,9 @@
 }
 
 void PageHandler::NavigationReset(NavigationRequest* navigation_request) {
-  WebContentsImpl* web_contents = GetWebContents();
-  if (reload_callback_) {
-    if (!web_contents)
-      reload_callback_->sendFailure(Response::InternalError());
-    else
-      reload_callback_->sendSuccess();
-    reload_callback_.reset();
-  }
   if (!navigate_callback_)
     return;
+  WebContentsImpl* web_contents = GetWebContents();
   if (!web_contents) {
     navigate_callback_->sendFailure(Response::InternalError());
     return;
diff --git a/content/browser/devtools/protocol/page_handler.h b/content/browser/devtools/protocol/page_handler.h
index 7337c7f..9c02cad 100644
--- a/content/browser/devtools/protocol/page_handler.h
+++ b/content/browser/devtools/protocol/page_handler.h
@@ -61,7 +61,7 @@
   static std::vector<PageHandler*> ForAgentHost(DevToolsAgentHostImpl* host);
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
   void OnSwapCompositorFrame(viz::CompositorFrameMetadata frame_metadata);
   void OnSynchronousSwapCompositorFrame(
@@ -85,9 +85,8 @@
   Response Disable() override;
 
   Response Crash() override;
-  void Reload(Maybe<bool> bypassCache,
-              Maybe<std::string> script_to_evaluate_on_load,
-              std::unique_ptr<ReloadCallback>) override;
+  Response Reload(Maybe<bool> bypassCache,
+                  Maybe<std::string> script_to_evaluate_on_load) override;
   void Navigate(const std::string& url,
                 Maybe<std::string> referrer,
                 Maybe<std::string> transition_type,
@@ -196,7 +195,6 @@
   JavaScriptDialogCallback pending_dialog_;
   scoped_refptr<DevToolsDownloadManagerDelegate> download_manager_delegate_;
   std::unique_ptr<NavigateCallback> navigate_callback_;
-  std::unique_ptr<ReloadCallback> reload_callback_;
   base::WeakPtrFactory<PageHandler> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(PageHandler);
diff --git a/content/browser/devtools/protocol/security_handler.cc b/content/browser/devtools/protocol/security_handler.cc
index 7494e25..bd4a401 100644
--- a/content/browser/devtools/protocol/security_handler.cc
+++ b/content/browser/devtools/protocol/security_handler.cc
@@ -132,7 +132,7 @@
   DidChangeVisibleSecurityState();
 }
 
-void SecurityHandler::SetRenderer(RenderProcessHost* process_host,
+void SecurityHandler::SetRenderer(int process_host_id,
                                   RenderFrameHostImpl* frame_host) {
   host_ = frame_host;
   if (enabled_ && host_)
diff --git a/content/browser/devtools/protocol/security_handler.h b/content/browser/devtools/protocol/security_handler.h
index 30ff780..2e90a92 100644
--- a/content/browser/devtools/protocol/security_handler.h
+++ b/content/browser/devtools/protocol/security_handler.h
@@ -35,7 +35,7 @@
 
   // DevToolsDomainHandler overrides
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   // Security::Backend overrides.
diff --git a/content/browser/devtools/protocol/service_worker_handler.cc b/content/browser/devtools/protocol/service_worker_handler.cc
index 64dff1f..7962787 100644
--- a/content/browser/devtools/protocol/service_worker_handler.cc
+++ b/content/browser/devtools/protocol/service_worker_handler.cc
@@ -49,8 +49,6 @@
     ServiceWorkerStatusCode status) {
 }
 
-void PushDeliveryNoOp(mojom::PushDeliveryStatus status) {}
-
 const std::string GetVersionRunningStatusString(
     EmbeddedWorkerStatus running_status) {
   switch (running_status) {
@@ -158,7 +156,8 @@
 ServiceWorkerHandler::ServiceWorkerHandler()
     : DevToolsDomainHandler(ServiceWorker::Metainfo::domainName),
       enabled_(false),
-      process_(nullptr),
+      browser_context_(nullptr),
+      storage_partition_(nullptr),
       weak_factory_(this) {}
 
 ServiceWorkerHandler::~ServiceWorkerHandler() {
@@ -169,19 +168,21 @@
   ServiceWorker::Dispatcher::wire(dispatcher, this);
 }
 
-void ServiceWorkerHandler::SetRenderer(RenderProcessHost* process_host,
+void ServiceWorkerHandler::SetRenderer(int process_host_id,
                                        RenderFrameHostImpl* frame_host) {
-  process_ = process_host;
+  RenderProcessHost* process_host = RenderProcessHost::FromID(process_host_id);
   // Do not call UpdateHosts yet, wait for load to commit.
   if (!process_host) {
     ClearForceUpdate();
     context_ = nullptr;
     return;
   }
-  StoragePartition* partition = process_host->GetStoragePartition();
-  DCHECK(partition);
+
+  storage_partition_ =
+      static_cast<StoragePartitionImpl*>(process_host->GetStoragePartition());
+  DCHECK(storage_partition_);
   context_ = static_cast<ServiceWorkerContextWrapper*>(
-      partition->GetServiceWorkerContext());
+      storage_partition_->GetServiceWorkerContext());
 }
 
 Response ServiceWorkerHandler::Enable() {
@@ -310,7 +311,7 @@
     const std::string& data) {
   if (!enabled_)
     return CreateDomainNotEnabledErrorResponse();
-  if (!process_)
+  if (!browser_context_)
     return CreateContextErrorResponse();
   int64_t id = 0;
   if (!base::StringToInt64(registration_id, &id))
@@ -318,9 +319,10 @@
   PushEventPayload payload;
   if (data.size() > 0)
     payload.setData(data);
-  BrowserContext::DeliverPushMessage(process_->GetBrowserContext(),
-                                     GURL(origin), id, payload,
-                                     base::Bind(&PushDeliveryNoOp));
+  BrowserContext::DeliverPushMessage(
+      browser_context_, GURL(origin), id, payload,
+      base::BindRepeating([](mojom::PushDeliveryStatus status) {}));
+
   return Response::OK();
 }
 
@@ -331,15 +333,14 @@
     bool last_chance) {
   if (!enabled_)
     return CreateDomainNotEnabledErrorResponse();
-  if (!process_)
+  if (!storage_partition_)
     return CreateContextErrorResponse();
   int64_t id = 0;
   if (!base::StringToInt64(registration_id, &id))
     return CreateInvalidVersionIdErrorResponse();
 
-  StoragePartitionImpl* partition =
-      static_cast<StoragePartitionImpl*>(process_->GetStoragePartition());
-  BackgroundSyncContext* sync_context = partition->GetBackgroundSyncContext();
+  BackgroundSyncContext* sync_context =
+      storage_partition_->GetBackgroundSyncContext();
 
   BrowserThread::PostTask(BrowserThread::IO, FROM_HERE,
                           base::BindOnce(&DispatchSyncEventOnIO, context_,
diff --git a/content/browser/devtools/protocol/service_worker_handler.h b/content/browser/devtools/protocol/service_worker_handler.h
index 3de2f93..ec9ab86 100644
--- a/content/browser/devtools/protocol/service_worker_handler.h
+++ b/content/browser/devtools/protocol/service_worker_handler.h
@@ -20,9 +20,11 @@
 
 namespace content {
 
+class BrowserContext;
 class RenderFrameHostImpl;
 class ServiceWorkerContextWatcher;
 class ServiceWorkerContextWrapper;
+class StoragePartitionImpl;
 
 namespace protocol {
 
@@ -33,7 +35,7 @@
   ~ServiceWorkerHandler() override;
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
 
   Response Enable() override;
@@ -71,7 +73,8 @@
   std::unique_ptr<ServiceWorker::Frontend> frontend_;
   bool enabled_;
   scoped_refptr<ServiceWorkerContextWatcher> context_watcher_;
-  RenderProcessHost* process_;
+  BrowserContext* browser_context_;
+  StoragePartitionImpl* storage_partition_;
 
   base::WeakPtrFactory<ServiceWorkerHandler> weak_factory_;
 
diff --git a/content/browser/devtools/protocol/storage_handler.cc b/content/browser/devtools/protocol/storage_handler.cc
index 9e8d8d2..29eb1b7 100644
--- a/content/browser/devtools/protocol/storage_handler.cc
+++ b/content/browser/devtools/protocol/storage_handler.cc
@@ -239,7 +239,7 @@
 
 StorageHandler::StorageHandler()
     : DevToolsDomainHandler(Storage::Metainfo::domainName),
-      process_(nullptr),
+      storage_partition_(nullptr),
       weak_ptr_factory_(this) {}
 
 StorageHandler::~StorageHandler() {
@@ -252,9 +252,10 @@
   Storage::Dispatcher::wire(dispatcher, this);
 }
 
-void StorageHandler::SetRenderer(RenderProcessHost* process_host,
+void StorageHandler::SetRenderer(int process_host_id,
                                  RenderFrameHostImpl* frame_host) {
-  process_ = process_host;
+  RenderProcessHost* process = RenderProcessHost::FromID(process_host_id);
+  storage_partition_ = process ? process->GetStoragePartition() : nullptr;
 }
 
 Response StorageHandler::Disable() {
@@ -276,10 +277,9 @@
     const std::string& origin,
     const std::string& storage_types,
     std::unique_ptr<ClearDataForOriginCallback> callback) {
-  if (!process_)
+  if (!storage_partition_)
     return callback->sendFailure(Response::InternalError());
 
-  StoragePartition* partition = process_->GetStoragePartition();
   std::vector<std::string> types = base::SplitString(
       storage_types, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY);
   std::unordered_set<std::string> set(types.begin(), types.end());
@@ -310,18 +310,18 @@
         Response::InvalidParams("No valid storage type specified"));
   }
 
-  partition->ClearData(remove_mask,
-                       StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL,
-                       GURL(origin), StoragePartition::OriginMatcherFunction(),
-                       base::Time(), base::Time::Max(),
-                       base::BindOnce(&ClearDataForOriginCallback::sendSuccess,
-                                      std::move(callback)));
+  storage_partition_->ClearData(
+      remove_mask, StoragePartition::QUOTA_MANAGED_STORAGE_MASK_ALL,
+      GURL(origin), StoragePartition::OriginMatcherFunction(), base::Time(),
+      base::Time::Max(),
+      base::BindOnce(&ClearDataForOriginCallback::sendSuccess,
+                     std::move(callback)));
 }
 
 void StorageHandler::GetUsageAndQuota(
     const String& origin,
     std::unique_ptr<GetUsageAndQuotaCallback> callback) {
-  if (!process_)
+  if (!storage_partition_)
     return callback->sendFailure(Response::InternalError());
 
   GURL origin_url(origin);
@@ -330,8 +330,7 @@
         Response::Error(origin + " is not a valid URL"));
   }
 
-  storage::QuotaManager* manager =
-      process_->GetStoragePartition()->GetQuotaManager();
+  storage::QuotaManager* manager = storage_partition_->GetQuotaManager();
   BrowserThread::PostTask(
       BrowserThread::IO, FROM_HERE,
       base::BindOnce(&GetUsageAndQuotaOnIOThread, base::RetainedRef(manager),
@@ -339,7 +338,7 @@
 }
 
 Response StorageHandler::TrackCacheStorageForOrigin(const std::string& origin) {
-  if (!process_)
+  if (!storage_partition_)
     return Response::InternalError();
 
   GURL origin_url(origin);
@@ -356,7 +355,7 @@
 
 Response StorageHandler::UntrackCacheStorageForOrigin(
     const std::string& origin) {
-  if (!process_)
+  if (!storage_partition_)
     return Response::InternalError();
 
   GURL origin_url(origin);
@@ -372,7 +371,7 @@
 }
 
 Response StorageHandler::TrackIndexedDBForOrigin(const std::string& origin) {
-  if (!process_)
+  if (!storage_partition_)
     return Response::InternalError();
 
   GURL origin_url(origin);
@@ -387,7 +386,7 @@
 }
 
 Response StorageHandler::UntrackIndexedDBForOrigin(const std::string& origin) {
-  if (!process_)
+  if (!storage_partition_)
     return Response::InternalError();
 
   GURL origin_url(origin);
@@ -408,7 +407,7 @@
     cache_storage_observer_ = std::make_unique<CacheStorageObserver>(
         weak_ptr_factory_.GetWeakPtr(),
         static_cast<CacheStorageContextImpl*>(
-            process_->GetStoragePartition()->GetCacheStorageContext()));
+            storage_partition_->GetCacheStorageContext()));
   }
   return cache_storage_observer_.get();
 }
@@ -419,7 +418,7 @@
     indexed_db_observer_ = std::make_unique<IndexedDBObserver>(
         weak_ptr_factory_.GetWeakPtr(),
         static_cast<IndexedDBContextImpl*>(
-            process_->GetStoragePartition()->GetIndexedDBContext()));
+            storage_partition_->GetIndexedDBContext()));
   }
   return indexed_db_observer_.get();
 }
diff --git a/content/browser/devtools/protocol/storage_handler.h b/content/browser/devtools/protocol/storage_handler.h
index dc33e45..d9df1114 100644
--- a/content/browser/devtools/protocol/storage_handler.h
+++ b/content/browser/devtools/protocol/storage_handler.h
@@ -17,6 +17,8 @@
 #include "content/browser/indexed_db/indexed_db_context_impl.h"
 
 namespace content {
+class StoragePartition;
+
 namespace protocol {
 
 class StorageHandler : public DevToolsDomainHandler,
@@ -27,7 +29,7 @@
 
   // content::protocol::DevToolsDomainHandler
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
   Response Disable() override;
 
@@ -64,7 +66,7 @@
                                      const base::string16& object_store_name);
 
   std::unique_ptr<Storage::Frontend> frontend_;
-  RenderProcessHost* process_;
+  StoragePartition* storage_partition_;
   std::unique_ptr<CacheStorageObserver> cache_storage_observer_;
   std::unique_ptr<IndexedDBObserver> indexed_db_observer_;
 
diff --git a/content/browser/devtools/protocol/target_handler.cc b/content/browser/devtools/protocol/target_handler.cc
index a4d405f83..bdcbf7f 100644
--- a/content/browser/devtools/protocol/target_handler.cc
+++ b/content/browser/devtools/protocol/target_handler.cc
@@ -208,7 +208,7 @@
   Target::Dispatcher::wire(dispatcher, this);
 }
 
-void TargetHandler::SetRenderer(RenderProcessHost* process_host,
+void TargetHandler::SetRenderer(int process_host_id,
                                 RenderFrameHostImpl* frame_host) {
   auto_attacher_.SetRenderFrameHost(frame_host);
 }
diff --git a/content/browser/devtools/protocol/target_handler.h b/content/browser/devtools/protocol/target_handler.h
index d9d4a89..21adcd6 100644
--- a/content/browser/devtools/protocol/target_handler.h
+++ b/content/browser/devtools/protocol/target_handler.h
@@ -34,7 +34,7 @@
   static std::vector<TargetHandler*> ForAgentHost(DevToolsAgentHostImpl* host);
 
   void Wire(UberDispatcher* dispatcher) override;
-  void SetRenderer(RenderProcessHost* process_host,
+  void SetRenderer(int process_host_id,
                    RenderFrameHostImpl* frame_host) override;
   Response Disable() override;
 
diff --git a/content/browser/devtools/protocol_config.json b/content/browser/devtools/protocol_config.json
index 86a7f81..ada8d21 100644
--- a/content/browser/devtools/protocol_config.json
+++ b/content/browser/devtools/protocol_config.json
@@ -50,7 +50,7 @@
                     "startScreencast", "stopScreencast", "screencastFrameAck", "handleJavaScriptDialog", "setColorPickerEnabled", "requestAppBanner",
                     "printToPDF", "bringToFront", "setDownloadBehavior", "getAppManifest", "crash"],
                 "include_events": ["colorPicked", "interstitialShown", "interstitialHidden", "javascriptDialogOpening", "javascriptDialogClosed", "screencastVisibilityChanged", "screencastFrame"],
-                "async": ["captureScreenshot", "printToPDF", "reload", "navigate", "getAppManifest"]
+                "async": ["captureScreenshot", "printToPDF", "navigate", "getAppManifest"]
             },
             {
                 "domain": "Runtime",
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.cc b/content/browser/devtools/render_frame_devtools_agent_host.cc
index 027586e9b..f8ac27b 100644
--- a/content/browser/devtools/render_frame_devtools_agent_host.cc
+++ b/content/browser/devtools/render_frame_devtools_agent_host.cc
@@ -292,8 +292,8 @@
 }
 
 void RenderFrameDevToolsAgentHost::AttachSession(DevToolsSession* session) {
-  session->SetFallThroughForNotFound(true);
-  session->SetRenderer(frame_host_ ? frame_host_->GetProcess() : nullptr,
+  session->SetRenderer(frame_host_ ? frame_host_->GetProcess()->GetID()
+                                   : ChildProcessHost::kInvalidUniqueID,
                        frame_host_);
 
   protocol::EmulationHandler* emulation_handler =
@@ -334,7 +334,6 @@
 
 void RenderFrameDevToolsAgentHost::DetachSession(DevToolsSession* session) {
   // Destroying session automatically detaches in renderer.
-  suspended_messages_by_session_.erase(session);
   if (sessions().empty()) {
     frame_trace_recorder_.reset();
     RevokePolicy();
@@ -344,25 +343,10 @@
   }
 }
 
-bool RenderFrameDevToolsAgentHost::DispatchProtocolMessage(
+void RenderFrameDevToolsAgentHost::DispatchProtocolMessage(
     DevToolsSession* session,
     const std::string& message) {
-  int call_id = 0;
-  std::string method;
-  if (session->Dispatch(message, &call_id, &method) !=
-      protocol::Response::kFallThrough) {
-    return true;
-  }
-
-  if (!navigation_handles_.empty()) {
-    suspended_messages_by_session_[session].push_back(
-        {call_id, method, message});
-    return true;
-  }
-
-  session->DispatchProtocolMessageToAgent(call_id, method, message);
-  session->waiting_messages()[call_id] = {method, message};
-  return true;
+  session->DispatchProtocolMessage(message);
 }
 
 void RenderFrameDevToolsAgentHost::InspectElement(
@@ -425,16 +409,8 @@
   UpdateFrameHost(frame_tree_node_->current_frame_host());
 
   if (navigation_handles_.empty()) {
-    for (auto& pair : suspended_messages_by_session_) {
-      DevToolsSession* session = pair.first;
-      for (const Message& message : pair.second) {
-        session->DispatchProtocolMessageToAgent(message.call_id, message.method,
-                                                message.message);
-        session->waiting_messages()[message.call_id] = {message.method,
-                                                        message.message};
-      }
-    }
-    suspended_messages_by_session_.clear();
+    for (DevToolsSession* session : sessions())
+      session->ResumeSendingMessagesToAgent();
   }
   if (handle->HasCommitted()) {
     for (auto* target : protocol::TargetHandler::ForAgentHost(this))
@@ -466,7 +442,7 @@
   if (IsAttached()) {
     GrantPolicy();
     for (DevToolsSession* session : sessions()) {
-      session->SetRenderer(frame_host ? frame_host->GetProcess() : nullptr,
+      session->SetRenderer(frame_host ? frame_host->GetProcess()->GetID() : -1,
                            frame_host);
     }
     MaybeReattachToRenderFrame();
@@ -476,15 +452,8 @@
 void RenderFrameDevToolsAgentHost::MaybeReattachToRenderFrame() {
   if (!EnsureAgent())
     return;
-  for (DevToolsSession* session : sessions()) {
-    session->ReattachToAgent(agent_ptr_);
-    for (const auto& pair : session->waiting_messages()) {
-      int call_id = pair.first;
-      const DevToolsSession::Message& message = pair.second;
-      session->DispatchProtocolMessageToAgent(call_id, message.method,
-                                              message.message);
-    }
-  }
+  for (DevToolsSession* session : sessions())
+    session->AttachToAgent(agent_ptr_);
 }
 
 void RenderFrameDevToolsAgentHost::GrantPolicy() {
@@ -527,6 +496,10 @@
       static_cast<NavigationHandleImpl*>(navigation_handle);
   if (handle->frame_tree_node() != frame_tree_node_)
     return;
+  if (navigation_handles_.empty()) {
+    for (DevToolsSession* session : sessions())
+      session->SuspendSendingMessagesToAgent();
+  }
   navigation_handles_.insert(handle);
 }
 
@@ -655,8 +628,11 @@
   frame_tree_node_ = nullptr;
   navigation_handles_.clear();
   WebContentsObserver::Observe(nullptr);
-  UpdateFrameHost(nullptr);
   // UpdateFrameHost may destruct |this|.
+  scoped_refptr<RenderFrameDevToolsAgentHost> protect(this);
+  UpdateFrameHost(nullptr);
+  for (DevToolsSession* session : sessions())
+    session->ResumeSendingMessagesToAgent();
 }
 
 void RenderFrameDevToolsAgentHost::ConnectWebContents(WebContents* wc) {
diff --git a/content/browser/devtools/render_frame_devtools_agent_host.h b/content/browser/devtools/render_frame_devtools_agent_host.h
index 4ae4f609..a3e27e6 100644
--- a/content/browser/devtools/render_frame_devtools_agent_host.h
+++ b/content/browser/devtools/render_frame_devtools_agent_host.h
@@ -100,9 +100,8 @@
   void AttachSession(DevToolsSession* session) override;
   void DetachSession(DevToolsSession* session) override;
   void InspectElement(DevToolsSession* session, int x, int y) override;
-  bool DispatchProtocolMessage(
-      DevToolsSession* session,
-      const std::string& message) override;
+  void DispatchProtocolMessage(DevToolsSession* session,
+                               const std::string& message) override;
 
   // WebContentsObserver overrides.
   void DidStartNavigation(NavigationHandle* navigation_handle) override;
@@ -147,16 +146,6 @@
   base::flat_set<NavigationHandleImpl*> navigation_handles_;
   bool render_frame_alive_ = false;
 
-  // These messages were queued after suspending, not sent to the agent,
-  // and will be sent after resuming.
-  struct Message {
-    int call_id;
-    std::string method;
-    std::string message;
-  };
-  std::map<DevToolsSession*, std::vector<Message>>
-      suspended_messages_by_session_;
-
   // The FrameTreeNode associated with this agent.
   FrameTreeNode* frame_tree_node_;
 
diff --git a/content/browser/devtools/service_worker_devtools_agent_host.cc b/content/browser/devtools/service_worker_devtools_agent_host.cc
index 011935f..3cea99c 100644
--- a/content/browser/devtools/service_worker_devtools_agent_host.cc
+++ b/content/browser/devtools/service_worker_devtools_agent_host.cc
@@ -122,13 +122,9 @@
                               base::BindOnce(&SetDevToolsAttachedOnIO,
                                              context_weak_, version_id_, true));
     }
-    // RenderProcessHost should not be null here, but even if it _is_ null,
-    // session does not depend on the process to do messaging.
-    session->SetRenderer(RenderProcessHost::FromID(worker_process_id_),
-                         nullptr);
+    session->SetRenderer(worker_process_id_, nullptr);
     session->AttachToAgent(agent_ptr_);
   }
-  session->SetFallThroughForNotFound(true);
   session->AddHandler(base::WrapUnique(new protocol::InspectorHandler()));
   session->AddHandler(base::WrapUnique(new protocol::NetworkHandler(GetId())));
   session->AddHandler(base::WrapUnique(new protocol::SchemaHandler()));
@@ -143,19 +139,10 @@
   }
 }
 
-bool ServiceWorkerDevToolsAgentHost::DispatchProtocolMessage(
+void ServiceWorkerDevToolsAgentHost::DispatchProtocolMessage(
     DevToolsSession* session,
     const std::string& message) {
-  int call_id = 0;
-  std::string method;
-  if (session->Dispatch(message, &call_id, &method) !=
-      protocol::Response::kFallThrough) {
-    return true;
-  }
-
-  session->DispatchProtocolMessageToAgent(call_id, method, message);
-  session->waiting_messages()[call_id] = {method, message};
-  return true;
+  session->DispatchProtocolMessage(message);
 }
 
 void ServiceWorkerDevToolsAgentHost::WorkerReadyForInspection(
@@ -169,18 +156,9 @@
                                            context_weak_, version_id_, true));
   }
 
-  // RenderProcessHost should not be null here, but even if it _is_ null,
-  // session does not depend on the process to do messaging.
-  RenderProcessHost* host = RenderProcessHost::FromID(worker_process_id_);
   for (DevToolsSession* session : sessions()) {
-    session->SetRenderer(host, nullptr);
-    session->ReattachToAgent(agent_ptr_);
-    for (const auto& pair : session->waiting_messages()) {
-      int call_id = pair.first;
-      const DevToolsSession::Message& message = pair.second;
-      session->DispatchProtocolMessageToAgent(call_id, message.method,
-                                              message.message);
-    }
+    session->SetRenderer(worker_process_id_, nullptr);
+    session->AttachToAgent(agent_ptr_);
   }
 }
 
@@ -190,9 +168,8 @@
   state_ = WORKER_NOT_READY;
   worker_process_id_ = worker_process_id;
   worker_route_id_ = worker_route_id;
-  RenderProcessHost* host = RenderProcessHost::FromID(worker_process_id_);
   for (DevToolsSession* session : sessions())
-    session->SetRenderer(host, nullptr);
+    session->SetRenderer(worker_process_id_, nullptr);
 }
 
 void ServiceWorkerDevToolsAgentHost::WorkerDestroyed() {
@@ -202,7 +179,7 @@
   for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
     inspector->TargetCrashed();
   for (DevToolsSession* session : sessions())
-    session->SetRenderer(nullptr, nullptr);
+    session->SetRenderer(-1, nullptr);
 }
 
 }  // namespace content
diff --git a/content/browser/devtools/service_worker_devtools_agent_host.h b/content/browser/devtools/service_worker_devtools_agent_host.h
index fae2d09..59af144 100644
--- a/content/browser/devtools/service_worker_devtools_agent_host.h
+++ b/content/browser/devtools/service_worker_devtools_agent_host.h
@@ -49,7 +49,7 @@
   // DevToolsAgentHostImpl overrides.
   void AttachSession(DevToolsSession* session) override;
   void DetachSession(DevToolsSession* session) override;
-  bool DispatchProtocolMessage(DevToolsSession* session,
+  void DispatchProtocolMessage(DevToolsSession* session,
                                const std::string& message) override;
 
   void WorkerRestarted(int worker_process_id, int worker_route_id);
diff --git a/content/browser/devtools/shared_worker_devtools_agent_host.cc b/content/browser/devtools/shared_worker_devtools_agent_host.cc
index 976ad36..3fb5368 100644
--- a/content/browser/devtools/shared_worker_devtools_agent_host.cc
+++ b/content/browser/devtools/shared_worker_devtools_agent_host.cc
@@ -34,7 +34,10 @@
 }
 
 BrowserContext* SharedWorkerDevToolsAgentHost::GetBrowserContext() {
-  RenderProcessHost* rph = GetProcess();
+  if (!worker_host_)
+    return nullptr;
+  RenderProcessHost* rph =
+      RenderProcessHost::FromID(worker_host_->process_id());
   return rph ? rph->GetBrowserContext() : nullptr;
 }
 
@@ -64,11 +67,10 @@
 }
 
 void SharedWorkerDevToolsAgentHost::AttachSession(DevToolsSession* session) {
-  session->SetFallThroughForNotFound(true);
   session->AddHandler(std::make_unique<protocol::InspectorHandler>());
   session->AddHandler(std::make_unique<protocol::NetworkHandler>(GetId()));
   session->AddHandler(std::make_unique<protocol::SchemaHandler>());
-  session->SetRenderer(GetProcess(), nullptr);
+  session->SetRenderer(worker_host_ ? worker_host_->process_id() : -1, nullptr);
   if (state_ == WORKER_READY)
     session->AttachToAgent(EnsureAgent());
 }
@@ -77,19 +79,10 @@
   // Destroying session automatically detaches in renderer.
 }
 
-bool SharedWorkerDevToolsAgentHost::DispatchProtocolMessage(
+void SharedWorkerDevToolsAgentHost::DispatchProtocolMessage(
     DevToolsSession* session,
     const std::string& message) {
-  int call_id = 0;
-  std::string method;
-  if (session->Dispatch(message, &call_id, &method) !=
-      protocol::Response::kFallThrough) {
-    return true;
-  }
-
-  session->DispatchProtocolMessageToAgent(call_id, method, message);
-  session->waiting_messages()[call_id] = {method, message};
-  return true;
+  session->DispatchProtocolMessage(message);
 }
 
 bool SharedWorkerDevToolsAgentHost::Matches(SharedWorkerHost* worker_host) {
@@ -100,15 +93,8 @@
   DCHECK_EQ(WORKER_NOT_READY, state_);
   DCHECK(worker_host_);
   state_ = WORKER_READY;
-  for (DevToolsSession* session : sessions()) {
-    session->ReattachToAgent(EnsureAgent());
-    for (const auto& pair : session->waiting_messages()) {
-      int call_id = pair.first;
-      const DevToolsSession::Message& message = pair.second;
-      session->DispatchProtocolMessageToAgent(call_id, message.method,
-                                              message.message);
-    }
-  }
+  for (DevToolsSession* session : sessions())
+    session->AttachToAgent(EnsureAgent());
 }
 
 void SharedWorkerDevToolsAgentHost::WorkerRestarted(
@@ -118,7 +104,7 @@
   state_ = WORKER_NOT_READY;
   worker_host_ = worker_host;
   for (DevToolsSession* session : sessions())
-    session->SetRenderer(GetProcess(), nullptr);
+    session->SetRenderer(worker_host_->process_id(), nullptr);
 }
 
 void SharedWorkerDevToolsAgentHost::WorkerDestroyed() {
@@ -128,16 +114,11 @@
   for (auto* inspector : protocol::InspectorHandler::ForAgentHost(this))
     inspector->TargetCrashed();
   for (DevToolsSession* session : sessions())
-    session->SetRenderer(nullptr, nullptr);
+    session->SetRenderer(-1, nullptr);
   worker_host_ = nullptr;
   agent_ptr_.reset();
 }
 
-RenderProcessHost* SharedWorkerDevToolsAgentHost::GetProcess() {
-  return worker_host_ ? RenderProcessHost::FromID(worker_host_->process_id())
-                      : nullptr;
-}
-
 const blink::mojom::DevToolsAgentAssociatedPtr&
 SharedWorkerDevToolsAgentHost::EnsureAgent() {
   DCHECK_EQ(WORKER_READY, state_);
diff --git a/content/browser/devtools/shared_worker_devtools_agent_host.h b/content/browser/devtools/shared_worker_devtools_agent_host.h
index 87e7731..15c5de57 100644
--- a/content/browser/devtools/shared_worker_devtools_agent_host.h
+++ b/content/browser/devtools/shared_worker_devtools_agent_host.h
@@ -14,7 +14,6 @@
 
 class SharedWorkerInstance;
 class SharedWorkerHost;
-class RenderProcessHost;
 
 class SharedWorkerDevToolsAgentHost : public DevToolsAgentHostImpl {
  public:
@@ -36,7 +35,7 @@
   // DevToolsAgentHostImpl overrides.
   void AttachSession(DevToolsSession* session) override;
   void DetachSession(DevToolsSession* session) override;
-  bool DispatchProtocolMessage(DevToolsSession* session,
+  void DispatchProtocolMessage(DevToolsSession* session,
                                const std::string& message) override;
 
   bool Matches(SharedWorkerHost* worker_host);
@@ -50,7 +49,6 @@
 
  private:
   ~SharedWorkerDevToolsAgentHost() override;
-  RenderProcessHost* GetProcess();
   const blink::mojom::DevToolsAgentAssociatedPtr& EnsureAgent();
 
   enum WorkerState {
diff --git a/content/browser/dom_storage/session_storage_database.cc b/content/browser/dom_storage/session_storage_database.cc
index c27a11f..f9522bd 100644
--- a/content/browser/dom_storage/session_storage_database.cc
+++ b/content/browser/dom_storage/session_storage_database.cc
@@ -15,6 +15,7 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/stringprintf.h"
 #include "base/strings/utf_string_conversions.h"
+#include "base/threading/thread_restrictions.h"
 #include "base/trace_event/memory_dump_manager.h"
 #include "base/trace_event/process_memory_dump.h"
 #include "build/build_config.h"
@@ -115,6 +116,8 @@
 
 SessionStorageDatabase::~SessionStorageDatabase() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+  base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
+  db_.reset();
 }
 
 void SessionStorageDatabase::ReadAreaValues(
@@ -209,6 +212,7 @@
 
   WriteValuesToMap(map_id, changes, &batch);
 
+  base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
   leveldb::Status s = db_->Write(leveldb::WriteOptions(), &batch);
   UMA_HISTOGRAM_ENUMERATION("SessionStorageDatabase.Commit",
                             leveldb_env::GetLevelDBStatusUMAValue(s),
@@ -258,6 +262,7 @@
       return false;
     AddAreaToNamespace(new_namespace_id, origin, map_id, &batch);
   }
+  base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
   leveldb::Status s = db_->Write(leveldb::WriteOptions(), &batch);
   return DatabaseErrorCheck(s.ok());
 }
@@ -273,6 +278,7 @@
   leveldb::WriteBatch batch;
   if (!DeleteAreaHelper(namespace_id, origin.spec(), &batch))
     return false;
+  base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
   leveldb::Status s = db_->Write(leveldb::WriteOptions(), &batch);
   return DatabaseErrorCheck(s.ok());
 }
@@ -301,6 +307,7 @@
       return false;
   }
   batch.Delete(NamespaceStartKey(namespace_id));
+  base::ScopedAllowBaseSyncPrimitives allow_base_sync_primitives;
   leveldb::Status s = db_->Write(leveldb::WriteOptions(), &batch);
   return DatabaseErrorCheck(s.ok());
 }
diff --git a/content/browser/generic_sensor/sensor_provider_proxy_impl.cc b/content/browser/generic_sensor/sensor_provider_proxy_impl.cc
index 4eebf50..d7f70ec 100644
--- a/content/browser/generic_sensor/sensor_provider_proxy_impl.cc
+++ b/content/browser/generic_sensor/sensor_provider_proxy_impl.cc
@@ -16,6 +16,8 @@
 #include "services/device/public/interfaces/constants.mojom.h"
 #include "services/service_manager/public/cpp/connector.h"
 
+using device::mojom::SensorCreationResult;
+
 namespace content {
 
 SensorProviderProxyImpl::SensorProviderProxyImpl(
@@ -40,8 +42,13 @@
   ServiceManagerConnection* connection =
       ServiceManagerConnection::GetForProcess();
 
-  if (!connection || !CheckPermission(type)) {
-    std::move(callback).Run(nullptr);
+  if (!connection) {
+    std::move(callback).Run(SensorCreationResult::ERROR_NOT_AVAILABLE, nullptr);
+    return;
+  }
+
+  if (!CheckPermission(type)) {
+    std::move(callback).Run(SensorCreationResult::ERROR_NOT_ALLOWED, nullptr);
     return;
   }
 
diff --git a/content/browser/generic_sensor_browsertest.cc b/content/browser/generic_sensor_browsertest.cc
index b7f06a4..e0aecc40 100644
--- a/content/browser/generic_sensor_browsertest.cc
+++ b/content/browser/generic_sensor_browsertest.cc
@@ -157,7 +157,8 @@
 
         mojo::MakeStrongBinding(std::move(sensor),
                                 mojo::MakeRequest(&init_params->sensor));
-        std::move(callback).Run(std::move(init_params));
+        std::move(callback).Run(device::mojom::SensorCreationResult::SUCCESS,
+                                std::move(init_params));
         break;
       }
       default:
diff --git a/content/browser/loader/mojo_async_resource_handler.cc b/content/browser/loader/mojo_async_resource_handler.cc
index 5ef8e7a..6bc73c3e 100644
--- a/content/browser/loader/mojo_async_resource_handler.cc
+++ b/content/browser/loader/mojo_async_resource_handler.cc
@@ -18,7 +18,7 @@
 #include "content/browser/loader/resource_controller.h"
 #include "content/browser/loader/resource_dispatcher_host_impl.h"
 #include "content/browser/loader/resource_request_info_impl.h"
-#include "content/browser/loader/resource_scheduler.h"
+#include "content/network/resource_scheduler.h"
 #include "content/public/browser/global_request_id.h"
 #include "mojo/public/c/system/data_pipe.h"
 #include "mojo/public/cpp/bindings/message.h"
diff --git a/content/browser/loader/mojo_async_resource_handler_unittest.cc b/content/browser/loader/mojo_async_resource_handler_unittest.cc
index 4571f9b..04c7405 100644
--- a/content/browser/loader/mojo_async_resource_handler_unittest.cc
+++ b/content/browser/loader/mojo_async_resource_handler_unittest.cc
@@ -23,7 +23,7 @@
 #include "content/browser/loader/resource_controller.h"
 #include "content/browser/loader/resource_dispatcher_host_impl.h"
 #include "content/browser/loader/resource_request_info_impl.h"
-#include "content/browser/loader/resource_scheduler.h"
+#include "content/network/resource_scheduler.h"
 #include "content/public/browser/appcache_service.h"
 #include "content/public/browser/navigation_data.h"
 #include "content/public/browser/resource_context.h"
@@ -1035,7 +1035,7 @@
 TEST_F(MojoAsyncResourceHandlerTest, SetPriority) {
   constexpr int kIntraPriority = 5;
   ASSERT_TRUE(CallOnWillStartAndOnResponseStarted());
-  std::unique_ptr<ResourceThrottle> throttle =
+  auto throttle =
       ResourceDispatcherHostImpl::Get()->scheduler()->ScheduleRequest(
           kChildId, kRouteId, false, request_.get());
 
diff --git a/content/browser/loader/resource_dispatcher_host_impl.cc b/content/browser/loader/resource_dispatcher_host_impl.cc
index ce39b49..a3b18e99e 100644
--- a/content/browser/loader/resource_dispatcher_host_impl.cc
+++ b/content/browser/loader/resource_dispatcher_host_impl.cc
@@ -56,7 +56,6 @@
 #include "content/browser/loader/resource_message_filter.h"
 #include "content/browser/loader/resource_request_info_impl.h"
 #include "content/browser/loader/resource_requester_info.h"
-#include "content/browser/loader/resource_scheduler.h"
 #include "content/browser/loader/stream_resource_handler.h"
 #include "content/browser/loader/throttling_resource_handler.h"
 #include "content/browser/loader/upload_data_stream_builder.h"
@@ -71,6 +70,7 @@
 #include "content/browser/streams/stream_registry.h"
 #include "content/common/net/url_request_service_worker_data.h"
 #include "content/common/view_messages.h"
+#include "content/network/resource_scheduler.h"
 #include "content/public/browser/browser_child_process_host.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/child_process_data.h"
@@ -276,6 +276,27 @@
 
 }  // namespace
 
+class ResourceDispatcherHostImpl::ScheduledResourceRequestAdapter final
+    : public ResourceThrottle {
+ public:
+  explicit ScheduledResourceRequestAdapter(
+      std::unique_ptr<ResourceScheduler::ScheduledResourceRequest> request)
+      : request_(std::move(request)) {
+    request_->set_resume_callback(base::BindOnce(
+        &ScheduledResourceRequestAdapter::Resume, base::Unretained(this)));
+  }
+  ~ScheduledResourceRequestAdapter() override {}
+
+  // ResourceThrottle implementation
+  void WillStartRequest(bool* defer) override {
+    request_->WillStartRequest(defer);
+  }
+  const char* GetNameForLogging() const override { return "ResourceScheduler"; }
+
+ private:
+  std::unique_ptr<ResourceScheduler::ScheduledResourceRequest> request_;
+};
+
 ResourceDispatcherHostImpl::LoadInfo::LoadInfo() {}
 ResourceDispatcherHostImpl::LoadInfo::LoadInfo(const LoadInfo& other) = default;
 ResourceDispatcherHostImpl::LoadInfo::~LoadInfo() {}
@@ -1358,8 +1379,9 @@
 
   // TODO(ricea): Stop looking this up so much.
   ResourceRequestInfoImpl* info = ResourceRequestInfoImpl::ForRequest(request);
-  throttles.push_back(scheduler_->ScheduleRequest(child_id, route_id,
-                                                  info->IsAsync(), request));
+  throttles.push_back(std::make_unique<ScheduledResourceRequestAdapter>(
+      scheduler_->ScheduleRequest(child_id, route_id, info->IsAsync(),
+                                  request)));
 
   // Split the handler in two groups: the ones that need to execute
   // WillProcessResponse before mime sniffing and the others.
diff --git a/content/browser/loader/resource_dispatcher_host_impl.h b/content/browser/loader/resource_dispatcher_host_impl.h
index 1393215f..4d0962a 100644
--- a/content/browser/loader/resource_dispatcher_host_impl.h
+++ b/content/browser/loader/resource_dispatcher_host_impl.h
@@ -335,6 +335,7 @@
   }
 
  private:
+  class ScheduledResourceRequestAdapter;
   friend class ResourceDispatcherHostTest;
 
   FRIEND_TEST_ALL_PREFIXES(ResourceDispatcherHostTest,
diff --git a/content/browser/loader/resource_scheduler_filter.cc b/content/browser/loader/resource_scheduler_filter.cc
index 6852f22..2aeea74 100644
--- a/content/browser/loader/resource_scheduler_filter.cc
+++ b/content/browser/loader/resource_scheduler_filter.cc
@@ -5,8 +5,8 @@
 #include "content/browser/loader/resource_scheduler_filter.h"
 
 #include "content/browser/loader/resource_dispatcher_host_impl.h"
-#include "content/browser/loader/resource_scheduler.h"
 #include "content/common/frame_messages.h"
+#include "content/network/resource_scheduler.h"
 #include "ipc/ipc_message_macros.h"
 
 namespace content {
diff --git a/content/browser/manifest/manifest_browsertest.cc b/content/browser/manifest/manifest_browsertest.cc
index 990943f..66de94e 100644
--- a/content/browser/manifest/manifest_browsertest.cc
+++ b/content/browser/manifest/manifest_browsertest.cc
@@ -659,4 +659,34 @@
   EXPECT_TRUE(base::EqualsASCII(manifest().name.string(), "no cookies"));
 }
 
+// This tests that fetching a Manifest from a unique origin always fails,
+// regardless of the CORS headers on the manifest. It also tests that no
+// manifest change notifications are reported when the origin is unique.
+IN_PROC_BROWSER_TEST_F(ManifestBrowserTest, UniqueOrigin) {
+  GURL test_url = embedded_test_server()->GetURL("/manifest/sandboxed.html");
+
+  ASSERT_TRUE(NavigateToURL(shell(), test_url));
+  std::string manifest_link =
+      embedded_test_server()->GetURL("/manifest/dummy-manifest.json").spec();
+  ASSERT_TRUE(ExecuteScript(shell(), "setManifestTo('" + manifest_link + "')"));
+
+  // Same-origin manifest will not be fetched from a unique origin, regardless
+  // of CORS headers.
+  GetManifestAndWait();
+  EXPECT_TRUE(manifest().IsEmpty());
+  EXPECT_TRUE(manifest_url().is_empty());
+  EXPECT_EQ(0, GetConsoleErrorCount());
+  EXPECT_EQ(0u, reported_manifest_urls().size());
+
+  manifest_link =
+      embedded_test_server()->GetURL("/manifest/manifest-cors.json").spec();
+  ASSERT_TRUE(ExecuteScript(shell(), "setManifestTo('" + manifest_link + "')"));
+
+  GetManifestAndWait();
+  EXPECT_TRUE(manifest().IsEmpty());
+  EXPECT_TRUE(manifest_url().is_empty());
+  EXPECT_EQ(0, GetConsoleErrorCount());
+  EXPECT_EQ(0u, reported_manifest_urls().size());
+}
+
 } // namespace content
diff --git a/content/browser/renderer_host/input/input_router_impl_unittest.cc b/content/browser/renderer_host/input/input_router_impl_unittest.cc
index 8b2b7a1b..040e2feb 100644
--- a/content/browser/renderer_host/input/input_router_impl_unittest.cc
+++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc
@@ -2032,15 +2032,15 @@
     EXPECT_EQ(40, sent_event->touches[0].PositionInWidget().y);
     EXPECT_EQ(10, sent_event->touches[0].PositionInScreen().x);
     EXPECT_EQ(20, sent_event->touches[0].PositionInScreen().y);
-    EXPECT_EQ(2, sent_event->touches[0].radius_x);
-    EXPECT_EQ(2, sent_event->touches[0].radius_y);
+    EXPECT_EQ(40, sent_event->touches[0].radius_x);
+    EXPECT_EQ(40, sent_event->touches[0].radius_y);
 
     EXPECT_EQ(200, sent_event->touches[1].PositionInWidget().x);
     EXPECT_EQ(400, sent_event->touches[1].PositionInWidget().y);
     EXPECT_EQ(100, sent_event->touches[1].PositionInScreen().x);
     EXPECT_EQ(200, sent_event->touches[1].PositionInScreen().y);
-    EXPECT_EQ(2, sent_event->touches[1].radius_x);
-    EXPECT_EQ(2, sent_event->touches[1].radius_y);
+    EXPECT_EQ(40, sent_event->touches[1].radius_x);
+    EXPECT_EQ(40, sent_event->touches[1].radius_y);
 
     const WebTouchEvent* filter_event = GetFilterWebInputEvent<WebTouchEvent>();
     ASSERT_EQ(2u, filter_event->touches_length);
@@ -2048,15 +2048,15 @@
     EXPECT_EQ(20, filter_event->touches[0].PositionInWidget().y);
     EXPECT_EQ(10, filter_event->touches[0].PositionInScreen().x);
     EXPECT_EQ(20, filter_event->touches[0].PositionInScreen().y);
-    EXPECT_EQ(1, filter_event->touches[0].radius_x);
-    EXPECT_EQ(1, filter_event->touches[0].radius_y);
+    EXPECT_EQ(20, filter_event->touches[0].radius_x);
+    EXPECT_EQ(20, filter_event->touches[0].radius_y);
 
     EXPECT_EQ(100, filter_event->touches[1].PositionInWidget().x);
     EXPECT_EQ(200, filter_event->touches[1].PositionInWidget().y);
     EXPECT_EQ(100, filter_event->touches[1].PositionInScreen().x);
     EXPECT_EQ(200, filter_event->touches[1].PositionInScreen().y);
-    EXPECT_EQ(1, filter_event->touches[1].radius_x);
-    EXPECT_EQ(1, filter_event->touches[1].radius_y);
+    EXPECT_EQ(20, filter_event->touches[1].radius_x);
+    EXPECT_EQ(20, filter_event->touches[1].radius_y);
   }
 
   void FlushTouchEvent(WebInputEvent::Type type) {
diff --git a/content/browser/renderer_host/input/legacy_input_router_impl_unittest.cc b/content/browser/renderer_host/input/legacy_input_router_impl_unittest.cc
index ac99402..52422e8d 100644
--- a/content/browser/renderer_host/input/legacy_input_router_impl_unittest.cc
+++ b/content/browser/renderer_host/input/legacy_input_router_impl_unittest.cc
@@ -1991,15 +1991,15 @@
     EXPECT_EQ(40, sent_event->touches[0].PositionInWidget().y);
     EXPECT_EQ(10, sent_event->touches[0].PositionInScreen().x);
     EXPECT_EQ(20, sent_event->touches[0].PositionInScreen().y);
-    EXPECT_EQ(2, sent_event->touches[0].radius_x);
-    EXPECT_EQ(2, sent_event->touches[0].radius_y);
+    EXPECT_EQ(40, sent_event->touches[0].radius_x);
+    EXPECT_EQ(40, sent_event->touches[0].radius_y);
 
     EXPECT_EQ(200, sent_event->touches[1].PositionInWidget().x);
     EXPECT_EQ(400, sent_event->touches[1].PositionInWidget().y);
     EXPECT_EQ(100, sent_event->touches[1].PositionInScreen().x);
     EXPECT_EQ(200, sent_event->touches[1].PositionInScreen().y);
-    EXPECT_EQ(2, sent_event->touches[1].radius_x);
-    EXPECT_EQ(2, sent_event->touches[1].radius_y);
+    EXPECT_EQ(40, sent_event->touches[1].radius_x);
+    EXPECT_EQ(40, sent_event->touches[1].radius_y);
 
     const WebTouchEvent* filter_event = GetFilterWebInputEvent<WebTouchEvent>();
     ASSERT_EQ(2u, filter_event->touches_length);
@@ -2007,15 +2007,15 @@
     EXPECT_EQ(20, filter_event->touches[0].PositionInWidget().y);
     EXPECT_EQ(10, filter_event->touches[0].PositionInScreen().x);
     EXPECT_EQ(20, filter_event->touches[0].PositionInScreen().y);
-    EXPECT_EQ(1, filter_event->touches[0].radius_x);
-    EXPECT_EQ(1, filter_event->touches[0].radius_y);
+    EXPECT_EQ(20, filter_event->touches[0].radius_x);
+    EXPECT_EQ(20, filter_event->touches[0].radius_y);
 
     EXPECT_EQ(100, filter_event->touches[1].PositionInWidget().x);
     EXPECT_EQ(200, filter_event->touches[1].PositionInWidget().y);
     EXPECT_EQ(100, filter_event->touches[1].PositionInScreen().x);
     EXPECT_EQ(200, filter_event->touches[1].PositionInScreen().y);
-    EXPECT_EQ(1, filter_event->touches[1].radius_x);
-    EXPECT_EQ(1, filter_event->touches[1].radius_y);
+    EXPECT_EQ(20, filter_event->touches[1].radius_x);
+    EXPECT_EQ(20, filter_event->touches[1].radius_y);
   }
 
   void FlushTouchEvent(WebInputEvent::Type type) {
diff --git a/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc b/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
index d5f982e3..8168cf8d 100644
--- a/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
+++ b/content/browser/renderer_host/input/passthrough_touch_event_queue_unittest.cc
@@ -1685,7 +1685,7 @@
 
   // Do not really move any touch points, but use previous values.
   MoveTouchPoint(0, 10, 10);
-  ChangeTouchPointRadius(1, 1, 1);
+  ChangeTouchPointRadius(1, 20, 20);
   MoveTouchPoint(1, 2, 2);
   EXPECT_EQ(4U, queued_event_count());
   EXPECT_EQ(0U, GetAndResetSentEventCount());
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
index 1a70d69f..929d3950 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.cc
@@ -344,25 +344,4 @@
   }
 }
 
-void RenderWidgetHostLatencyTracker::ReportRapporScrollLatency(
-    const std::string& name,
-    const LatencyInfo::LatencyComponent& start_component,
-    const LatencyInfo::LatencyComponent& end_component) {
-  CONFIRM_EVENT_TIMES_EXIST(start_component, end_component)
-  rappor::RapporService* rappor_service =
-      GetContentClient()->browser()->GetRapporService();
-  if (rappor_service && render_widget_host_delegate_) {
-    std::unique_ptr<rappor::Sample> sample =
-        rappor_service->CreateSample(rappor::UMA_RAPPOR_TYPE);
-    render_widget_host_delegate_->AddDomainInfoToRapporSample(sample.get());
-    sample->SetUInt64Field(
-        "Latency",
-        std::max(static_cast<int64_t>(0), (end_component.last_event_time -
-                                           start_component.first_event_time)
-                                              .InMicroseconds()),
-        rappor::NO_NOISE);
-    rappor_service->RecordSample(name, std::move(sample));
-  }
-}
-
 }  // namespace content
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h b/content/browser/renderer_host/input/render_widget_host_latency_tracker.h
index 017f13c3..b0424d51 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker.h
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker.h
@@ -64,12 +64,6 @@
   int64_t latency_component_id() const { return latency_component_id_; }
 
  private:
-  // ui::LatencyTracker:
-  void ReportRapporScrollLatency(
-      const std::string& name,
-      const ui::LatencyInfo::LatencyComponent& start_component,
-      const ui::LatencyInfo::LatencyComponent& end_component) override;
-
   int64_t last_event_id_;
   int64_t latency_component_id_;
   bool has_seen_first_gesture_scroll_update_;
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
index b77cf6b..e1cbac9 100644
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc
@@ -77,18 +77,9 @@
   RenderWidgetHostLatencyTrackerTestBrowserClient() {}
   ~RenderWidgetHostLatencyTrackerTestBrowserClient() override {}
 
-  rappor::RapporService* GetRapporService() override {
-    return &rappor_service_;
-  }
-
-  rappor::TestRapporServiceImpl* getTestRapporService() {
-    return &rappor_service_;
-  }
-
   ukm::TestUkmRecorder* GetTestUkmRecorder() { return &test_ukm_recorder_; }
 
  private:
-  rappor::TestRapporServiceImpl rappor_service_;
   ukm::TestAutoSetUkmRecorder test_ukm_recorder_;
   DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostLatencyTrackerTestBrowserClient);
 };
@@ -100,49 +91,6 @@
     ResetHistograms();
   }
 
-  ::testing::AssertionResult RapporSampleAssert(const char* rappor_name,
-                                                int count) {
-    rappor::TestSample::Shadow* sample_obj =
-        test_browser_client_.getTestRapporService()->GetRecordedSampleForMetric(
-            rappor_name);
-    if (count) {
-      if (!sample_obj)
-        return ::testing::AssertionFailure()
-               << rappor_name << " rappor sample should not be null";
-
-      const auto& domain_it = sample_obj->string_fields.find("Domain");
-      if (domain_it == sample_obj->string_fields.end())
-        return ::testing::AssertionFailure()
-               << rappor_name << " rappor sample should contain the string "
-                                 "attribute \"Domain\"";
-      const auto& domain = domain_it->second;
-      if (domain != "bar.com")
-        return ::testing::AssertionFailure()
-               << rappor_name << " rappor expected bar.com domain but had "
-               << domain << " domain";
-
-      const auto& latency_it = sample_obj->uint64_fields.find("Latency");
-      if (latency_it == sample_obj->uint64_fields.end())
-        return ::testing::AssertionFailure()
-               << rappor_name << " rappor sample should contain the uint64 "
-                                 "attribute \"Latency\"";
-      const auto& latency_noise = latency_it->second.second;
-      if (latency_noise != rappor::NO_NOISE)
-        return ::testing::AssertionFailure()
-               << rappor_name
-               << " rappor expected rappor::NO_NOISE latency but had "
-               << latency_noise << " latency";
-
-      return ::testing::AssertionSuccess();
-    } else {
-      if (!sample_obj)
-        return ::testing::AssertionSuccess();
-      else
-        return ::testing::AssertionFailure() << rappor_name
-                                             << " rappor sample should be null";
-    }
-  }
-
   void ExpectUkmReported(const char* event_name,
                          const std::vector<std::string>& metric_names,
                          size_t expected_count) {
@@ -295,25 +243,6 @@
           "Event.ScrollBegin.Wheel",
           {"TimeToScrollUpdateSwapBegin", "TimeToHandled", "IsMainThread"},
           total_ukm_entry_count);
-      // Rappor metrics.
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollUpdate.Touch."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollUpdate.Wheel."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollBegin.Touch."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollBegin.Wheel."
-                             "TimeToScrollUpdateSwapBegin2",
-                             2));
-      EXPECT_EQ(2,
-                test_browser_client_.getTestRapporService()->GetReportsCount());
 
       // UMA histograms.
       EXPECT_TRUE(
@@ -410,25 +339,6 @@
           "Event.ScrollUpdate.Wheel",
           {"TimeToScrollUpdateSwapBegin", "TimeToHandled", "IsMainThread"},
           total_ukm_entry_count);
-      // Rappor metrics.
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollUpdate.Touch."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollUpdate.Wheel."
-                             "TimeToScrollUpdateSwapBegin2",
-                             2));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollBegin.Touch."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_TRUE(
-          RapporSampleAssert("Event.Latency.ScrollBegin.Wheel."
-                             "TimeToScrollUpdateSwapBegin2",
-                             0));
-      EXPECT_EQ(2,
-                test_browser_client_.getTestRapporService()->GetReportsCount());
 
       // UMA histograms.
       EXPECT_TRUE(
@@ -548,25 +458,6 @@
         "Event.ScrollBegin.Touch",
         {"TimeToScrollUpdateSwapBegin", "TimeToHandled", "IsMainThread"},
         total_ukm_entry_count);
-    // Rappor metrics.
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollUpdate.Touch."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollUpdate.Wheel."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollBegin.Touch."
-                           "TimeToScrollUpdateSwapBegin2",
-                           2));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollBegin.Wheel."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-    EXPECT_EQ(2,
-              test_browser_client_.getTestRapporService()->GetReportsCount());
 
     // UMA histograms.
     EXPECT_TRUE(HistogramSizeEq(
@@ -620,8 +511,6 @@
   size_t total_ukm_entry_count = 0;
   for (bool rendering_on_main : {false, true}) {
     ResetHistograms();
-    EXPECT_EQ(0,
-              test_browser_client_.getTestRapporService()->GetReportsCount());
     {
       auto scroll = SyntheticWebGestureEventBuilder::BuildScrollUpdate(
           5.f, -5.f, 0, blink::kWebGestureDeviceTouchscreen);
@@ -672,27 +561,6 @@
         {"TimeToScrollUpdateSwapBegin", "TimeToHandled", "IsMainThread"},
         total_ukm_entry_count);
 
-    // Rappor metrics.
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollUpdate.Touch."
-                           "TimeToScrollUpdateSwapBegin2",
-                           2));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollUpdate.Wheel."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollBegin.Touch."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-    EXPECT_TRUE(
-        RapporSampleAssert("Event.Latency.ScrollBegin.Wheel."
-                           "TimeToScrollUpdateSwapBegin2",
-                           0));
-
-    EXPECT_EQ(2,
-              test_browser_client_.getTestRapporService()->GetReportsCount());
-
     // UMA histograms.
     EXPECT_TRUE(HistogramSizeEq(
         "Event.Latency.ScrollBegin.Touch.TimeToScrollUpdateSwapBegin2", 0));
diff --git a/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc b/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
index b8e2d15..4dcdf4d 100644
--- a/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
+++ b/content/browser/renderer_host/pepper/pepper_network_proxy_host.cc
@@ -14,7 +14,7 @@
 #include "content/public/common/socket_permission_request.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "ppapi/c/pp_errors.h"
diff --git a/content/browser/renderer_host/pepper/pepper_network_proxy_host.h b/content/browser/renderer_host/pepper/pepper_network_proxy_host.h
index 3182f5bcd..780af3e 100644
--- a/content/browser/renderer_host/pepper/pepper_network_proxy_host.h
+++ b/content/browser/renderer_host/pepper/pepper_network_proxy_host.h
@@ -15,7 +15,7 @@
 #include "base/macros.h"
 #include "base/memory/weak_ptr.h"
 #include "content/common/content_export.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "ppapi/host/host_message_context.h"
 #include "ppapi/host/resource_host.h"
 
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 5af75c5..0e21e30 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1480,7 +1480,13 @@
   channel_->Unpause(false /* flush */);
 
   // Call the embedder first so that their IPC filters have priority.
-  GetContentClient()->browser()->RenderProcessWillLaunch(this);
+  service_manager::mojom::ServiceRequest service_request;
+  GetContentClient()->browser()->RenderProcessWillLaunch(this,
+                                                         &service_request);
+  if (service_request.is_pending()) {
+    GetRendererInterface()->CreateEmbedderRendererService(
+        std::move(service_request));
+  }
 
 #if !defined(OS_MACOSX)
   // Intentionally delay the hang monitor creation after the first renderer
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.cc b/content/browser/renderer_host/render_widget_host_input_event_router.cc
index 3bd3324b..5ba40e72 100644
--- a/content/browser/renderer_host/render_widget_host_input_event_router.cc
+++ b/content/browser/renderer_host/render_widget_host_input_event_router.cc
@@ -19,6 +19,7 @@
 #include "content/browser/renderer_host/render_widget_host_view_base.h"
 #include "content/browser/renderer_host/render_widget_host_view_child_frame.h"
 #include "content/common/frame_messages.h"
+#include "services/viz/public/interfaces/hit_test/hit_test_region_list.mojom.h"
 #include "third_party/WebKit/public/platform/WebInputEvent.h"
 
 namespace {
@@ -308,6 +309,8 @@
     } else {
       *transformed_point = point;
     }
+    if (target.flags & viz::mojom::kHitTestAsk)
+      query_renderer = true;
   } else {
     // Short circuit if owner_map has only one RenderWidgetHostView, no need for
     // hit testing.
diff --git a/content/browser/resolve_proxy_msg_helper.h b/content/browser/resolve_proxy_msg_helper.h
index 6312ff2..8a59d13 100644
--- a/content/browser/resolve_proxy_msg_helper.h
+++ b/content/browser/resolve_proxy_msg_helper.h
@@ -12,7 +12,7 @@
 #include "content/common/content_export.h"
 #include "content/public/browser/browser_message_filter.h"
 #include "net/base/completion_callback.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "url/gurl.h"
 
 namespace net {
diff --git a/content/browser/resolve_proxy_msg_helper_unittest.cc b/content/browser/resolve_proxy_msg_helper_unittest.cc
index 5058702..ec1d86b 100644
--- a/content/browser/resolve_proxy_msg_helper_unittest.cc
+++ b/content/browser/resolve_proxy_msg_helper_unittest.cc
@@ -11,9 +11,9 @@
 #include "content/public/test/test_browser_thread_bundle.h"
 #include "ipc/ipc_test_sink.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace content {
diff --git a/content/browser/service_worker/embedded_worker_test_helper.cc b/content/browser/service_worker/embedded_worker_test_helper.cc
index 750a251..f95f8c2 100644
--- a/content/browser/service_worker/embedded_worker_test_helper.cc
+++ b/content/browser/service_worker/embedded_worker_test_helper.cc
@@ -349,6 +349,10 @@
   }
 
  private:
+  void CreateEmbedderRendererService(
+      service_manager::mojom::ServiceRequest service_request) override {
+    NOTREACHED();
+  }
   void CreateView(mojom::CreateViewParamsPtr) override { NOTREACHED(); }
   void CreateFrame(mojom::CreateFrameParamsPtr) override { NOTREACHED(); }
   void SetUpEmbeddedWorkerChannelForServiceWorker(
diff --git a/content/browser/service_worker/service_worker_browsertest.cc b/content/browser/service_worker/service_worker_browsertest.cc
index 5ac5504..622427c 100644
--- a/content/browser/service_worker/service_worker_browsertest.cc
+++ b/content/browser/service_worker/service_worker_browsertest.cc
@@ -175,7 +175,8 @@
   std::unique_ptr<storage::BlobDataSnapshot> data =
       blob_data_handle->CreateSnapshot();
   ASSERT_EQ(1U, data->items().size());
-  *body = std::string(data->items()[0]->bytes(), data->items()[0]->length());
+  *body =
+      std::string(data->items()[0]->bytes().data(), data->items()[0]->length());
 }
 
 void ExpectResultAndRun(bool expected,
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
index 18e2c12c..7b86f3d7 100644
--- a/content/browser/service_worker/service_worker_version.cc
+++ b/content/browser/service_worker/service_worker_version.cc
@@ -1139,6 +1139,8 @@
   // running status can be STARTING here.
   if (running_status() != EmbeddedWorkerStatus::STARTING &&
       running_status() != EmbeddedWorkerStatus::RUNNING) {
+    std::move(callback).Run(
+        std::vector<blink::mojom::ServiceWorkerClientInfoPtr>());
     return;
   }
 
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc
index 4ace5f6..2c89ef1 100644
--- a/content/browser/site_per_process_browsertest.cc
+++ b/content/browser/site_per_process_browsertest.cc
@@ -2964,13 +2964,7 @@
       DepictFrameTree(root));
 }
 
-// The test has been found flaky on Windows: crbug.com/803627
-#if defined(OS_WIN)
-#define MAYBE_NavigateRemoteFrame DISABLED_NavigateRemoteFrame
-#else
-#define MAYBE_NavigateRemoteFrame NavigateRemoteFrame
-#endif
-IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_NavigateRemoteFrame) {
+IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, NavigateRemoteFrame) {
   GURL main_url(embedded_test_server()->GetURL(
       "a.com", "/cross_site_iframe_factory.html?a(a,a(a,a(a)))"));
   EXPECT_TRUE(NavigateToURL(shell(), main_url));
@@ -3764,16 +3758,8 @@
 // node1 is the root.
 // Initially, both node1.proxy_hosts_ and node3.proxy_hosts_ contain C.
 // After we kill B, make sure proxies for C are cleared.
-// Flaky on Windows: crbug.com/798476
-#if defined(OS_WIN)
-#define MAYBE_KillingRendererClearsDescendantProxies \
-  DISABLED_KillingRendererClearsDescendantProxies
-#else
-#define MAYBE_KillingRendererClearsDescendantProxies \
-  KillingRendererClearsDescendantProxies
-#endif
 IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
-                       MAYBE_KillingRendererClearsDescendantProxies) {
+                       KillingRendererClearsDescendantProxies) {
   GURL main_url(embedded_test_server()->GetURL(
       "a.com", "/frame_tree/page_with_two_frames_nested.html"));
   EXPECT_TRUE(NavigateToURL(shell(), main_url));
@@ -4271,8 +4257,7 @@
 // TODO(bokan): Pretty soon most/all platforms will use overlay scrollbars. This
 // test should find a better way to check for scrollability. crbug.com/662196.
 // Flaky on Linux. crbug.com/790929.
-// Flaky on Windows. crbug.com/803628.
-#if defined(OS_ANDROID) || defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_ANDROID) || defined(OS_LINUX)
 #define MAYBE_FrameOwnerPropertiesPropagationScrolling \
         DISABLED_FrameOwnerPropertiesPropagationScrolling
 #else
@@ -5639,13 +5624,7 @@
   EXPECT_EQ(1, GetReceivedMessages(child2));
 }
 
-// The test has been found flaky on Windows: crbug.com/803641
-#if defined(OS_WIN)
-#define MAYBE_RFPHDestruction DISABLED_RFPHDestruction
-#else
-#define MAYBE_RFPHDestruction RFPHDestruction
-#endif
-IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, MAYBE_RFPHDestruction) {
+IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, RFPHDestruction) {
   GURL main_url(embedded_test_server()->GetURL("/site_per_process_main.html"));
   EXPECT_TRUE(NavigateToURL(shell(), main_url));
 
@@ -6913,16 +6892,9 @@
   EXPECT_EQ(nullptr, router->wheel_target_.target);
 }
 
-// TODO: Flaking test crbug.com/802828 and related crbug.com/798476
 // Ensure that a cross-process subframe with a touch-handler can receive touch
 // events.
-#if defined(OS_WIN)
-#define MAYBE_SubframeTouchEventRouting DISABLED_SubframeTouchEventRouting
-#else
-#define MAYBE_SubframeTouchEventRouting SubframeTouchEventRouting
-#endif
-IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest,
-                       MAYBE_SubframeTouchEventRouting) {
+IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, SubframeTouchEventRouting) {
   GURL main_url(embedded_test_server()->GetURL(
       "/frame_tree/page_with_positioned_nested_frames.html"));
   EXPECT_TRUE(NavigateToURL(shell(), main_url));
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc
index 0c4242f8..f7eaef21 100644
--- a/content/browser/web_contents/web_contents_android.cc
+++ b/content/browser/web_contents/web_contents_android.cc
@@ -690,6 +690,18 @@
   web_contents_->GetNativeView()->OnSizeChanged(width, height);
 }
 
+int WebContentsAndroid::GetWidth(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jobject>& obj) {
+  return web_contents_->GetNativeView()->GetSize().width();
+}
+
+int WebContentsAndroid::GetHeight(
+    JNIEnv* env,
+    const base::android::JavaParamRef<jobject>& obj) {
+  return web_contents_->GetNativeView()->GetSize().height();
+}
+
 ScopedJavaLocalRef<jobject> WebContentsAndroid::GetOrCreateEventForwarder(
     JNIEnv* env,
     const base::android::JavaParamRef<jobject>& obj) {
diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h
index e86cca6..4354ec7 100644
--- a/content/browser/web_contents/web_contents_android.h
+++ b/content/browser/web_contents/web_contents_android.h
@@ -216,6 +216,8 @@
                const base::android::JavaParamRef<jobject>& obj,
                jint width,
                jint height);
+  int GetWidth(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
+  int GetHeight(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
 
   base::android::ScopedJavaLocalRef<jobject> GetOrCreateEventForwarder(
       JNIEnv* env,
diff --git a/content/browser/webauth/authenticator_impl_unittest.cc b/content/browser/webauth/authenticator_impl_unittest.cc
index 1339af7f..774c8ce 100644
--- a/content/browser/webauth/authenticator_impl_unittest.cc
+++ b/content/browser/webauth/authenticator_impl_unittest.cc
@@ -396,7 +396,8 @@
   auto connector = service_manager::Connector::Create(&request);
   service_manager::Connector::TestApi test_api(connector.get());
   test_api.OverrideBinderForTesting(
-      device::mojom::kServiceName, device::mojom::HidManager::Name_,
+      service_manager::Identity(device::mojom::kServiceName),
+      device::mojom::HidManager::Name_,
       base::Bind(&device::FakeHidManager::AddBinding,
                  base::Unretained(fake_hid_manager.get())));
 
@@ -451,7 +452,8 @@
   auto connector = service_manager::Connector::Create(&request);
   service_manager::Connector::TestApi test_api(connector.get());
   test_api.OverrideBinderForTesting(
-      device::mojom::kServiceName, device::mojom::HidManager::Name_,
+      service_manager::Identity(device::mojom::kServiceName),
+      device::mojom::HidManager::Name_,
       base::Bind(&device::FakeHidManager::AddBinding,
                  base::Unretained(fake_hid_manager.get())));
 
diff --git a/content/common/gpu_stream_constants.h b/content/common/gpu_stream_constants.h
index c262116..8ce61c4 100644
--- a/content/common/gpu_stream_constants.h
+++ b/content/common/gpu_stream_constants.h
@@ -12,12 +12,22 @@
 enum {
   kGpuStreamIdDefault,
   kGpuStreamIdWorker,
+  kGpuStreamIdMedia,
 };
 
+// Used for renderer compositor thread context, WebGL, canvas, etc.
 const gpu::SchedulingPriority kGpuStreamPriorityDefault =
     gpu::SchedulingPriority::kNormal;
+
+// Used for UI context and all other browser contexts in the same stream.
 const gpu::SchedulingPriority kGpuStreamPriorityUI =
     gpu::SchedulingPriority::kHigh;
+
+// Used for renderer video media context.
+const gpu::SchedulingPriority kGpuStreamPriorityMedia =
+    gpu::SchedulingPriority::kHigh;
+
+// Used for renderer raster worker context.
 const gpu::SchedulingPriority kGpuStreamPriorityWorker =
     gpu::SchedulingPriority::kLow;
 
diff --git a/content/common/input/synthetic_web_input_event_builders.cc b/content/common/input/synthetic_web_input_event_builders.cc
index b813a134..da8fa3d9 100644
--- a/content/common/input/synthetic_web_input_event_builders.cc
+++ b/content/common/input/synthetic_web_input_event_builders.cc
@@ -199,7 +199,8 @@
   point.SetPositionInWidget(x, y);
   point.SetPositionInScreen(x, y);
   point.state = WebTouchPoint::kStatePressed;
-  point.radius_x = point.radius_y = 1.f;
+  // Use radius != default(25.f) to test the value is propagated correctly
+  point.radius_x = point.radius_y = 20.f;
   point.rotation_angle = 1.f;
   point.force = 1.f;
   point.tilt_x = point.tilt_y = 0;
diff --git a/content/common/renderer.mojom b/content/common/renderer.mojom
index afee0da..bc7f4cf 100644
--- a/content/common/renderer.mojom
+++ b/content/common/renderer.mojom
@@ -11,6 +11,7 @@
 import "mojo/common/unguessable_token.mojom";
 import "services/network/public/interfaces/network_types.mojom";
 import "services/service_manager/public/interfaces/interface_provider.mojom";
+import "services/service_manager/public/interfaces/service.mojom";
 import "ui/gfx/geometry/mojo/geometry.mojom";
 import "ui/gfx/mojo/icc_profile.mojom";
 
@@ -177,6 +178,12 @@
 // This should be used for implementing browser-to-renderer control messages
 // which need to retain FIFO with respect to legacy IPC messages.
 interface Renderer {
+  // Tells the renderer to ask its embedder to bind |service_request| to an
+  // embedder-provided renderer-side service implementation. This is required to
+  // ensure that embedder-provided renderer-side service is initialized at the
+  // appropriate time.
+  CreateEmbedderRendererService(service_manager.mojom.Service& service_request);
+
   // Tells the renderer to create a new view.
   CreateView(CreateViewParams params);
 
diff --git a/content/network/BUILD.gn b/content/network/BUILD.gn
index 168a7ab..c1d8798 100644
--- a/content/network/BUILD.gn
+++ b/content/network/BUILD.gn
@@ -54,6 +54,8 @@
     "proxy_resolver_factory_mojo.h",
     "proxy_service_mojo.cc",
     "proxy_service_mojo.h",
+    "resource_scheduler.cc",
+    "resource_scheduler.h",
     "restricted_cookie_manager.cc",
     "restricted_cookie_manager.h",
     "throttling/network_conditions.cc",
@@ -94,6 +96,7 @@
     "//net:net_browser_services",
     "//services/network:network_service",
     "//services/network/public/cpp",
+    "//services/network/public/interfaces",
     "//services/proxy_resolver/public/interfaces",
     "//services/service_manager/public/cpp",
     "//services/service_manager/public/interfaces",
diff --git a/content/network/DEPS b/content/network/DEPS
index 697b0c2..fa48b11 100644
--- a/content/network/DEPS
+++ b/content/network/DEPS
@@ -10,6 +10,8 @@
   "+content/common/content_export.h",
   "+content/network",
   "+content/public/network",
+  # TODO(yhirano): Remove this dependency.
+  "+content/public/common/content_features.h",
   "+services/network",
   "+services/service_manager/public",
   "+services/service_manager/sandbox",
diff --git a/content/network/network_context.cc b/content/network/network_context.cc
index ddd2766..c0e3a8e7 100644
--- a/content/network/network_context.cc
+++ b/content/network/network_context.cc
@@ -5,6 +5,7 @@
 #include "content/network/network_context.h"
 
 #include <memory>
+#include <utility>
 
 #include "base/command_line.h"
 #include "base/logging.h"
@@ -42,13 +43,14 @@
 #include "net/http/http_server_properties.h"
 #include "net/http/http_server_properties_manager.h"
 #include "net/http/http_transaction_factory.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "services/network/proxy_config_service_mojo.h"
 #include "services/network/public/cpp/network_switches.h"
+#include "services/network/udp_socket_factory.h"
 
 namespace content {
 
@@ -430,6 +432,14 @@
                                       std::move(network_conditions));
 }
 
+void NetworkContext::CreateUDPSocket(
+    network::mojom::UDPSocketRequest request,
+    network::mojom::UDPSocketReceiverPtr receiver) {
+  if (!udp_socket_factory_)
+    udp_socket_factory_ = std::make_unique<network::UDPSocketFactory>();
+  udp_socket_factory_->CreateUDPSocket(std::move(request), std::move(receiver));
+}
+
 void NetworkContext::AddHSTSForTesting(const std::string& host,
                                        base::Time expiry,
                                        bool include_subdomains,
diff --git a/content/network/network_context.h b/content/network/network_context.h
index b3cc152..5ea8efaa 100644
--- a/content/network/network_context.h
+++ b/content/network/network_context.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 #include <set>
+#include <string>
 
 #include "base/callback.h"
 #include "base/macros.h"
@@ -19,6 +20,7 @@
 #include "mojo/public/cpp/bindings/strong_binding_set.h"
 #include "services/network/cookie_manager.h"
 #include "services/network/public/interfaces/network_service.mojom.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
 #include "services/network/public/interfaces/url_loader_factory.mojom.h"
 
 namespace net {
@@ -27,6 +29,10 @@
 class HttpServerPropertiesManager;
 }
 
+namespace network {
+class UDPSocketFactory;
+};  // namespace network
+
 namespace content {
 class NetworkServiceImpl;
 class URLLoader;
@@ -98,6 +104,8 @@
   void SetNetworkConditions(
       const std::string& profile_id,
       network::mojom::NetworkConditionsPtr conditions) override;
+  void CreateUDPSocket(network::mojom::UDPSocketRequest request,
+                       network::mojom::UDPSocketReceiverPtr receiver) override;
   void AddHSTSForTesting(const std::string& host,
                          base::Time expiry,
                          bool include_subdomains,
@@ -110,7 +118,6 @@
   // Disables use of QUIC by the NetworkContext.
   void DisableQuic();
 
-
   // Applies the values in |network_context_params| to |builder|, and builds
   // the URLRequestContext.
   static URLRequestContextOwner ApplyContextParamsToBuilder(
@@ -155,6 +162,8 @@
 
   std::unique_ptr<network::CookieManager> cookie_manager_;
 
+  std::unique_ptr<network::UDPSocketFactory> udp_socket_factory_;
+
   DISALLOW_COPY_AND_ASSIGN(NetworkContext);
 };
 
diff --git a/content/network/network_context_unittest.cc b/content/network/network_context_unittest.cc
index f3db848e..a9eb3acb 100644
--- a/content/network/network_context_unittest.cc
+++ b/content/network/network_context_unittest.cc
@@ -5,6 +5,8 @@
 #include <map>
 #include <memory>
 #include <string>
+#include <utility>
+#include <vector>
 
 #include "base/bind.h"
 #include "base/command_line.h"
@@ -26,6 +28,7 @@
 #include "content/network/network_service_impl.h"
 #include "mojo/public/cpp/bindings/interface_request.h"
 #include "net/base/cache_type.h"
+#include "net/base/ip_endpoint.h"
 #include "net/base/net_errors.h"
 #include "net/base/test_completion_callback.h"
 #include "net/cookies/canonical_cookie.h"
@@ -37,14 +40,15 @@
 #include "net/http/http_server_properties_manager.h"
 #include "net/http/http_transaction_factory.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "net/url_request/url_request_job_factory.h"
 #include "services/network/public/interfaces/network_service.mojom.h"
 #include "services/network/public/interfaces/proxy_config.mojom.h"
+#include "services/network/udp_socket_test_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
 #include "url/scheme_host_port.h"
@@ -685,5 +689,77 @@
   DISALLOW_COPY_AND_ASSIGN(TestProxyConfigLazyPoller);
 };
 
+net::IPEndPoint GetLocalHostWithAnyPort() {
+  return net::IPEndPoint(net::IPAddress(127, 0, 0, 1), 0);
+}
+
+std::vector<uint8_t> CreateTestMessage(uint8_t initial, size_t size) {
+  std::vector<uint8_t> array(size);
+  for (size_t i = 0; i < size; ++i)
+    array[i] = static_cast<uint8_t>((i + initial) % 256);
+  return array;
+}
+
+TEST_F(NetworkContextTest, CreateUDPSocket) {
+  std::unique_ptr<NetworkContext> network_context =
+      CreateContextWithParams(CreateContextParams());
+
+  // Create a server socket to listen for incoming datagrams.
+  network::test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<network::mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  network::mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  network::mojom::UDPSocketPtr server_socket;
+  network_context->CreateUDPSocket(mojo::MakeRequest(&server_socket),
+                                   std::move(receiver_interface_ptr));
+  ASSERT_EQ(net::OK, network::test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, network::test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  // Create a client socket to send datagrams.
+  network::mojom::UDPSocketPtr client_socket;
+  network::mojom::UDPSocketRequest client_socket_request(
+      mojo::MakeRequest(&client_socket));
+  network::mojom::UDPSocketReceiverPtr client_receiver_ptr;
+  network_context->CreateUDPSocket(std::move(client_socket_request),
+                                   std::move(client_receiver_ptr));
+
+  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, network::test::UDPSocketTestHelper::OpenSync(
+                         &client_socket, client_addr.GetFamily()));
+  ASSERT_EQ(net::OK, network::test::UDPSocketTestHelper::ConnectSync(
+                         &client_socket, server_addr, &client_addr));
+
+  // This test assumes that the loopback interface doesn't drop UDP packets for
+  // a small number of packets.
+  const size_t kDatagramCount = 6;
+  const size_t kDatagramSize = 255;
+  server_socket->ReceiveMore(kDatagramCount);
+
+  for (size_t i = 0; i < kDatagramCount; ++i) {
+    std::vector<uint8_t> test_msg(
+        CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize));
+    int result =
+        network::test::UDPSocketTestHelper::SendSync(&client_socket, test_msg);
+    EXPECT_EQ(net::OK, result);
+  }
+
+  receiver.WaitForReceivedResults(kDatagramCount);
+  EXPECT_EQ(kDatagramCount, receiver.results().size());
+
+  int i = 0;
+  for (const auto& result : receiver.results()) {
+    EXPECT_EQ(net::OK, result.net_error);
+    EXPECT_EQ(result.src_addr, client_addr);
+    EXPECT_EQ(CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize),
+              result.data.value());
+    i++;
+  }
+}
+
 }  // namespace
+
 }  // namespace content
diff --git a/content/network/network_service_unittest.cc b/content/network/network_service_unittest.cc
index 0780a3f51..652ae8f6 100644
--- a/content/network/network_service_unittest.cc
+++ b/content/network/network_service_unittest.cc
@@ -14,7 +14,7 @@
 #include "content/public/common/service_names.mojom.h"
 #include "content/public/test/test_url_loader_client.h"
 #include "net/base/mock_network_change_notifier.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "services/network/public/interfaces/network_change_manager.mojom.h"
diff --git a/content/network/proxy_resolver_factory_mojo.cc b/content/network/proxy_resolver_factory_mojo.cc
index f92ba955..16949275 100644
--- a/content/network/proxy_resolver_factory_mojo.cc
+++ b/content/network/proxy_resolver_factory_mojo.cc
@@ -25,10 +25,10 @@
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/pac_file_data.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/pac_file_data.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
 
 namespace content {
diff --git a/content/network/proxy_resolver_factory_mojo.h b/content/network/proxy_resolver_factory_mojo.h
index 019a1d41..4ee6203 100644
--- a/content/network/proxy_resolver_factory_mojo.h
+++ b/content/network/proxy_resolver_factory_mojo.h
@@ -13,7 +13,7 @@
 #include "content/common/content_export.h"
 #include "mojo/public/cpp/bindings/binding.h"
 #include "net/base/completion_callback.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
 
 namespace net {
diff --git a/content/network/proxy_resolver_factory_mojo_unittest.cc b/content/network/proxy_resolver_factory_mojo_unittest.cc
index 477f28c..9479ac0 100644
--- a/content/network/proxy_resolver_factory_mojo_unittest.cc
+++ b/content/network/proxy_resolver_factory_mojo_unittest.cc
@@ -26,11 +26,11 @@
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
 #include "net/log/test_net_log.h"
-#include "net/proxy/pac_file_data.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/pac_file_data.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
diff --git a/content/network/proxy_service_mojo.cc b/content/network/proxy_service_mojo.cc
index 4b4ec79..25a20e8 100644
--- a/content/network/proxy_service_mojo.cc
+++ b/content/network/proxy_service_mojo.cc
@@ -12,9 +12,9 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "content/network/proxy_resolver_factory_mojo.h"
 #include "net/dns/mojo_host_resolver_impl.h"
-#include "net/proxy/network_delegate_error_observer.h"
-#include "net/proxy/proxy_resolver_factory.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/network_delegate_error_observer.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 namespace content {
 
diff --git a/content/network/proxy_service_mojo.h b/content/network/proxy_service_mojo.h
index 82fefcf..e6e2343 100644
--- a/content/network/proxy_service_mojo.h
+++ b/content/network/proxy_service_mojo.h
@@ -8,7 +8,7 @@
 #include <memory>
 
 #include "content/common/content_export.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
 
 namespace net {
diff --git a/content/browser/loader/resource_scheduler.cc b/content/network/resource_scheduler.cc
similarity index 89%
rename from content/browser/loader/resource_scheduler.cc
rename to content/network/resource_scheduler.cc
index 89e09fc..ac5ce281 100644
--- a/content/browser/loader/resource_scheduler.cc
+++ b/content/network/resource_scheduler.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 "content/browser/loader/resource_scheduler.h"
+#include "content/network/resource_scheduler.h"
 
 #include <stdint.h>
 
@@ -21,9 +21,6 @@
 #include "base/strings/string_number_conversions.h"
 #include "base/supports_user_data.h"
 #include "base/trace_event/trace_event.h"
-#include "content/common/resource_messages.h"
-#include "content/public/browser/resource_request_info.h"
-#include "content/public/browser/resource_throttle.h"
 #include "content/public/common/content_features.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/load_flags.h"
@@ -76,10 +73,7 @@
 const base::Feature kThrottleDelayable{"ThrottleDelayable",
                                        base::FEATURE_DISABLED_BY_DEFAULT};
 
-enum StartMode {
-  START_SYNC,
-  START_ASYNC
-};
+enum StartMode { START_SYNC, START_ASYNC };
 
 // Flags identifying various attributes of the request that are used
 // when making scheduling decisions.
@@ -140,12 +134,11 @@
 
 // The priority level above which resources are considered layout-blocking if
 // the html_body has not started.
-static const net::RequestPriority
-    kLayoutBlockingPriorityThreshold = net::MEDIUM;
+static const net::RequestPriority kLayoutBlockingPriorityThreshold =
+    net::MEDIUM;
 
 // The priority level below which resources are considered to be delayable.
-static const net::RequestPriority
-    kDelayablePriorityThreshold = net::MEDIUM;
+static const net::RequestPriority kDelayablePriorityThreshold = net::MEDIUM;
 
 // The number of in-flight layout-blocking requests above which all delayable
 // requests should be blocked.
@@ -153,18 +146,14 @@
 
 struct ResourceScheduler::RequestPriorityParams {
   RequestPriorityParams()
-    : priority(net::DEFAULT_PRIORITY),
-      intra_priority(0) {
-  }
+      : priority(net::DEFAULT_PRIORITY), intra_priority(0) {}
 
   RequestPriorityParams(net::RequestPriority priority, int intra_priority)
-    : priority(priority),
-      intra_priority(intra_priority) {
-  }
+      : priority(priority), intra_priority(intra_priority) {}
 
   bool operator==(const RequestPriorityParams& other) const {
     return (priority == other.priority) &&
-        (intra_priority == other.intra_priority);
+           (intra_priority == other.intra_priority);
   }
 
   bool operator!=(const RequestPriorityParams& other) const {
@@ -183,33 +172,29 @@
 
 class ResourceScheduler::RequestQueue {
  public:
-  typedef std::multiset<ScheduledResourceRequest*, ScheduledResourceSorter>
+  typedef std::multiset<ScheduledResourceRequestImpl*, ScheduledResourceSorter>
       NetQueue;
 
   RequestQueue() : fifo_ordering_ids_(0) {}
   ~RequestQueue() {}
 
   // Adds |request| to the queue with given |priority|.
-  void Insert(ScheduledResourceRequest* request);
+  void Insert(ScheduledResourceRequestImpl* request);
 
   // Removes |request| from the queue.
-  void Erase(ScheduledResourceRequest* request) {
+  void Erase(ScheduledResourceRequestImpl* request) {
     PointerMap::iterator it = pointers_.find(request);
     CHECK(it != pointers_.end());
     queue_.erase(it->second);
     pointers_.erase(it);
   }
 
-  NetQueue::iterator GetNextHighestIterator() {
-    return queue_.begin();
-  }
+  NetQueue::iterator GetNextHighestIterator() { return queue_.begin(); }
 
-  NetQueue::iterator End() {
-    return queue_.end();
-  }
+  NetQueue::iterator End() { return queue_.end(); }
 
   // Returns true if |request| is queued.
-  bool IsQueued(ScheduledResourceRequest* request) const {
+  bool IsQueued(ScheduledResourceRequestImpl* request) const {
     return base::ContainsKey(pointers_, request);
   }
 
@@ -217,7 +202,8 @@
   bool IsEmpty() const { return queue_.size() == 0; }
 
  private:
-  typedef std::map<ScheduledResourceRequest*, NetQueue::iterator> PointerMap;
+  typedef std::map<ScheduledResourceRequestImpl*, NetQueue::iterator>
+      PointerMap;
 
   uint32_t MakeFifoOrderingId() {
     fifo_ordering_ids_ += 1;
@@ -232,15 +218,23 @@
   PointerMap pointers_;
 };
 
+ResourceScheduler::ScheduledResourceRequest::ScheduledResourceRequest() {}
+ResourceScheduler::ScheduledResourceRequest::~ScheduledResourceRequest() {}
+
+void ResourceScheduler::ScheduledResourceRequest::RunResumeCallback() {
+  std::move(resume_callback_).Run();
+}
+
 // This is the handle we return to the ResourceDispatcherHostImpl so it can
 // interact with the request.
-class ResourceScheduler::ScheduledResourceRequest : public ResourceThrottle {
+class ResourceScheduler::ScheduledResourceRequestImpl
+    : public ScheduledResourceRequest {
  public:
-  ScheduledResourceRequest(const ClientId& client_id,
-                           net::URLRequest* request,
-                           ResourceScheduler* scheduler,
-                           const RequestPriorityParams& priority,
-                           bool is_async)
+  ScheduledResourceRequestImpl(const ClientId& client_id,
+                               net::URLRequest* request,
+                               ResourceScheduler* scheduler,
+                               const RequestPriorityParams& priority,
+                               bool is_async)
       : client_id_(client_id),
         request_(request),
         ready_(false),
@@ -257,7 +251,7 @@
     request_->SetUserData(kUserDataKey, std::make_unique<UnownedPointer>(this));
   }
 
-  ~ScheduledResourceRequest() override {
+  ~ScheduledResourceRequestImpl() override {
     if ((attributes_ & kAttributeLayoutBlocking) == kAttributeLayoutBlocking) {
       UMA_HISTOGRAM_COUNTS_100(
           "ResourceScheduler.PeakDelayableRequestsInFlight.LayoutBlocking",
@@ -272,7 +266,7 @@
     scheduler_->RemoveRequest(this);
   }
 
-  static ScheduledResourceRequest* ForRequest(net::URLRequest* request) {
+  static ScheduledResourceRequestImpl* ForRequest(net::URLRequest* request) {
     UnownedPointer* pointer =
         static_cast<UnownedPointer*>(request->GetUserData(kUserDataKey));
     return pointer ? pointer->get() : nullptr;
@@ -296,12 +290,12 @@
       if (start_mode == START_ASYNC) {
         scheduler_->task_runner()->PostTask(
             FROM_HERE,
-            base::BindOnce(&ScheduledResourceRequest::Start,
+            base::BindOnce(&ScheduledResourceRequestImpl::Start,
                            weak_ptr_factory_.GetWeakPtr(), START_SYNC));
         return;
       }
       deferred_ = false;
-      Resume();
+      RunResumeCallback();
     }
 
     ready_ = true;
@@ -326,9 +320,7 @@
   void set_fifo_ordering(uint32_t fifo_ordering) {
     fifo_ordering_ = fifo_ordering;
   }
-  RequestAttributes attributes() const {
-    return attributes_;
-  }
+  RequestAttributes attributes() const { return attributes_; }
   void set_attributes(RequestAttributes attributes) {
     attributes_ = attributes;
   }
@@ -337,25 +329,21 @@
  private:
   class UnownedPointer : public base::SupportsUserData::Data {
    public:
-    explicit UnownedPointer(ScheduledResourceRequest* pointer)
+    explicit UnownedPointer(ScheduledResourceRequestImpl* pointer)
         : pointer_(pointer) {}
 
-    ScheduledResourceRequest* get() const { return pointer_; }
+    ScheduledResourceRequestImpl* get() const { return pointer_; }
 
    private:
-    ScheduledResourceRequest* const pointer_;
+    ScheduledResourceRequestImpl* const pointer_;
 
     DISALLOW_COPY_AND_ASSIGN(UnownedPointer);
   };
 
   static const void* const kUserDataKey;
 
-  // ResourceThrottle interface:
-  void WillStartRequest(bool* defer) override {
-    deferred_ = *defer = !ready_;
-  }
-
-  const char* GetNameForLogging() const override { return "ResourceScheduler"; }
+  // ScheduledResourceRequest implemnetation
+  void WillStartRequest(bool* defer) override { deferred_ = *defer = !ready_; }
 
   const ClientId client_id_;
   net::URLRequest* request_;
@@ -372,18 +360,19 @@
   // Cached to excessive recomputation in ShouldKeepSearching.
   const net::HostPortPair host_port_pair_;
 
-  base::WeakPtrFactory<ResourceScheduler::ScheduledResourceRequest>
+  base::WeakPtrFactory<ResourceScheduler::ScheduledResourceRequestImpl>
       weak_ptr_factory_;
 
-  DISALLOW_COPY_AND_ASSIGN(ScheduledResourceRequest);
+  DISALLOW_COPY_AND_ASSIGN(ScheduledResourceRequestImpl);
 };
 
-const void* const ResourceScheduler::ScheduledResourceRequest::kUserDataKey =
-    &ResourceScheduler::ScheduledResourceRequest::kUserDataKey;
+const void* const
+    ResourceScheduler::ScheduledResourceRequestImpl::kUserDataKey =
+        &ResourceScheduler::ScheduledResourceRequestImpl::kUserDataKey;
 
 bool ResourceScheduler::ScheduledResourceSorter::operator()(
-    const ScheduledResourceRequest* a,
-    const ScheduledResourceRequest* b) const {
+    const ScheduledResourceRequestImpl* a,
+    const ScheduledResourceRequestImpl* b) const {
   // Want the set to be ordered first by decreasing priority, then by
   // decreasing intra_priority.
   // ie. with (priority, intra_priority)
@@ -398,7 +387,7 @@
 }
 
 void ResourceScheduler::RequestQueue::Insert(
-    ScheduledResourceRequest* request) {
+    ScheduledResourceRequestImpl* request) {
   DCHECK(!base::ContainsKey(pointers_, request));
   request->set_fifo_ordering(MakeFifoOrderingId());
   pointers_[request] = queue_.insert(request);
@@ -436,7 +425,7 @@
   ~Client() {}
 
   void ScheduleRequest(const net::URLRequest& url_request,
-                       ScheduledResourceRequest* request) {
+                       ScheduledResourceRequestImpl* request) {
     SetRequestAttributes(request, DetermineRequestAttributes(request));
     ShouldStartReqResult should_start = ShouldStartRequest(request);
     if (should_start == START_REQUEST) {
@@ -449,7 +438,7 @@
     }
   }
 
-  void RemoveRequest(ScheduledResourceRequest* request) {
+  void RemoveRequest(ScheduledResourceRequestImpl* request) {
     if (pending_requests_.IsQueued(request)) {
       pending_requests_.Erase(request);
       DCHECK(!base::ContainsKey(in_flight_requests_, request));
@@ -471,7 +460,7 @@
     // anything that depends on those limits before calling
     // ClearInFlightRequests() below.
     while (!pending_requests_.IsEmpty()) {
-      ScheduledResourceRequest* request =
+      ScheduledResourceRequestImpl* request =
           *pending_requests_.GetNextHighestIterator();
       pending_requests_.Erase(request);
       // Starting requests asynchronously ensures no side effects, and avoids
@@ -490,9 +479,7 @@
 
   bool is_loaded() const { return is_loaded_; }
 
-  void OnLoadingStateChanged(bool is_loaded) {
-    is_loaded_ = is_loaded;
-  }
+  void OnLoadingStateChanged(bool is_loaded) { is_loaded_ = is_loaded; }
 
   void OnNavigate() {
     has_html_body_ = false;
@@ -527,7 +514,7 @@
     }
   }
 
-  void ReprioritizeRequest(ScheduledResourceRequest* request,
+  void ReprioritizeRequest(ScheduledResourceRequestImpl* request,
                            RequestPriorityParams old_priority_params,
                            RequestPriorityParams new_priority_params) {
     request->url_request()->SetPriority(new_priority_params.priority);
@@ -571,7 +558,7 @@
         total_layout_blocking_count_);
   }
 
-  void InsertInFlightRequest(ScheduledResourceRequest* request) {
+  void InsertInFlightRequest(ScheduledResourceRequestImpl* request) {
     in_flight_requests_.insert(request);
     SetRequestAttributes(request, DetermineRequestAttributes(request));
     RecordRequestCountMetrics();
@@ -593,7 +580,7 @@
     }
   }
 
-  void EraseInFlightRequest(ScheduledResourceRequest* request) {
+  void EraseInFlightRequest(ScheduledResourceRequestImpl* request) {
     size_t erased = in_flight_requests_.erase(request);
     DCHECK_EQ(1u, erased);
     // Clear any special state that we were tracking for this request.
@@ -608,7 +595,7 @@
 
   size_t CountRequestsWithAttributes(
       const RequestAttributes attributes,
-      ScheduledResourceRequest* current_request) {
+      ScheduledResourceRequestImpl* current_request) {
     size_t matching_request_count = 0;
     for (RequestSet::const_iterator it = in_flight_requests_.begin();
          it != in_flight_requests_.end(); ++it) {
@@ -617,8 +604,8 @@
     }
     if (!RequestAttributesAreSet(attributes, kAttributeInFlight)) {
       bool current_request_is_pending = false;
-      for (RequestQueue::NetQueue::const_iterator
-           it = pending_requests_.GetNextHighestIterator();
+      for (RequestQueue::NetQueue::const_iterator it =
+               pending_requests_.GetNextHighestIterator();
            it != pending_requests_.End(); ++it) {
         if (RequestAttributesAreSet((*it)->attributes(), attributes))
           matching_request_count++;
@@ -641,7 +628,7 @@
     return (request_attributes & matching_attributes) == matching_attributes;
   }
 
-  void SetRequestAttributes(ScheduledResourceRequest* request,
+  void SetRequestAttributes(ScheduledResourceRequestImpl* request,
                             RequestAttributes attributes) {
     RequestAttributes old_attributes = request->attributes();
     if (old_attributes == attributes)
@@ -663,14 +650,14 @@
 
     request->set_attributes(attributes);
     DCHECK_EQ(CountRequestsWithAttributes(
-        kAttributeInFlight | kAttributeDelayable, request),
-        in_flight_delayable_count_);
+                  kAttributeInFlight | kAttributeDelayable, request),
+              in_flight_delayable_count_);
     DCHECK_EQ(CountRequestsWithAttributes(kAttributeLayoutBlocking, request),
               total_layout_blocking_count_);
   }
 
   RequestAttributes DetermineRequestAttributes(
-      ScheduledResourceRequest* request) {
+      ScheduledResourceRequestImpl* request) {
     RequestAttributes attributes = kAttributeNone;
 
     if (base::ContainsKey(in_flight_requests_, request))
@@ -681,9 +668,8 @@
       // If a request is already marked as layout-blocking make sure to keep the
       // attribute across redirects.
       attributes |= kAttributeLayoutBlocking;
-    } else if (!has_html_body_ &&
-               request->url_request()->priority() >
-               kLayoutBlockingPriorityThreshold) {
+    } else if (!has_html_body_ && request->url_request()->priority() >
+                                      kLayoutBlockingPriorityThreshold) {
       // Requests that are above the non_delayable threshold before the HTML
       // body has been parsed are inferred to be layout-blocking.
       attributes |= kAttributeLayoutBlocking;
@@ -710,8 +696,7 @@
     return attributes;
   }
 
-  bool ShouldKeepSearching(
-      const net::HostPortPair& active_request_host) const {
+  bool ShouldKeepSearching(const net::HostPortPair& active_request_host) const {
     size_t same_host_count = 0;
     for (RequestSet::const_iterator it = in_flight_requests_.begin();
          it != in_flight_requests_.end(); ++it) {
@@ -724,7 +709,7 @@
     return false;
   }
 
-  void StartRequest(ScheduledResourceRequest* request,
+  void StartRequest(ScheduledResourceRequestImpl* request,
                     StartMode start_mode,
                     RequestStartTrigger trigger) {
     if (resource_scheduler_->yielding_scheduler_enabled()) {
@@ -747,8 +732,8 @@
       DCHECK_NE(RequestStartTrigger::NONE, trigger);
       request->url_request()->net_log().AddEvent(
           net::NetLogEventType::RESOURCE_SCHEDULER_REQUEST_STARTED,
-          net::NetLog::StringCallback(
-              "trigger", RequestStartTriggerString(trigger)));
+          net::NetLog::StringCallback("trigger",
+                                      RequestStartTriggerString(trigger)));
     }
     // Record the number of delayable requests in-flight when a non-delayable
     // request starts.
@@ -796,7 +781,7 @@
   //   * Never exceed 6 delayable requests for a given host.
 
   ShouldStartReqResult ShouldStartRequest(
-      ScheduledResourceRequest* request) const {
+      ScheduledResourceRequestImpl* request) const {
     if (!resource_scheduler_->enabled())
       return START_REQUEST;
 
@@ -827,7 +812,7 @@
       net::HttpServerProperties& http_server_properties =
           *url_request.context()->http_server_properties();
       // TODO(willchan): We should really improve this algorithm as described in
-      // crbug.com/164101. Also, theoretically we should not count a
+      // https://crbug.com/164101. Also, theoretically we should not count a
       // request-priority capable request against the delayable requests limit.
       if (http_server_properties.SupportsRequestPriority(scheme_host_port))
         return ShouldStartOrYieldRequest(request);
@@ -913,7 +898,7 @@
   // For a request that is ready to start, return START_REQUEST if the
   // scheduler doesn't need to yield, else YIELD_SCHEDULER.
   ShouldStartReqResult ShouldStartOrYieldRequest(
-      ScheduledResourceRequest* request) const {
+      ScheduledResourceRequestImpl* request) const {
     DCHECK_GE(started_requests_since_yielding_, 0);
 
     // Don't yield if:
@@ -948,7 +933,7 @@
         pending_requests_.GetNextHighestIterator();
 
     while (request_iter != pending_requests_.End()) {
-      ScheduledResourceRequest* request = *request_iter;
+      ScheduledResourceRequestImpl* request = *request_iter;
       ShouldStartReqResult query_result = ShouldStartRequest(request);
 
       if (query_result == START_REQUEST) {
@@ -1044,15 +1029,15 @@
   DCHECK(client_map_.empty());
 }
 
-std::unique_ptr<ResourceThrottle> ResourceScheduler::ScheduleRequest(
-    int child_id,
-    int route_id,
-    bool is_async,
-    net::URLRequest* url_request) {
+std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
+ResourceScheduler::ScheduleRequest(int child_id,
+                                   int route_id,
+                                   bool is_async,
+                                   net::URLRequest* url_request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   ClientId client_id = MakeClientId(child_id, route_id);
-  std::unique_ptr<ScheduledResourceRequest> request(
-      new ScheduledResourceRequest(
+  std::unique_ptr<ScheduledResourceRequestImpl> request(
+      new ScheduledResourceRequestImpl(
           client_id, url_request, this,
           RequestPriorityParams(url_request->priority(), 0), is_async));
 
@@ -1072,7 +1057,7 @@
   return std::move(request);
 }
 
-void ResourceScheduler::RemoveRequest(ScheduledResourceRequest* request) {
+void ResourceScheduler::RemoveRequest(ScheduledResourceRequestImpl* request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (base::ContainsKey(unowned_requests_, request)) {
     unowned_requests_.erase(request);
@@ -1096,8 +1081,7 @@
   ClientId client_id = MakeClientId(child_id, route_id);
   DCHECK(!base::ContainsKey(client_map_, client_id));
 
-  Client* client = new Client(
-      network_quality_estimator, this);
+  Client* client = new Client(network_quality_estimator, this);
   client_map_[client_id] = client;
 }
 
@@ -1157,9 +1141,8 @@
   client->OnWillInsertBody();
 }
 
-void ResourceScheduler::OnReceivedSpdyProxiedHttpResponse(
-    int child_id,
-    int route_id) {
+void ResourceScheduler::OnReceivedSpdyProxiedHttpResponse(int child_id,
+                                                          int route_id) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   ClientId client_id = MakeClientId(child_id, route_id);
 
@@ -1199,7 +1182,7 @@
   }
 
   auto* scheduled_resource_request =
-      ScheduledResourceRequest::ForRequest(request);
+      ScheduledResourceRequestImpl::ForRequest(request);
 
   // Downloads don't use the resource scheduler.
   if (!scheduled_resource_request) {
@@ -1208,7 +1191,7 @@
   }
 
   RequestPriorityParams new_priority_params(new_priority,
-      new_intra_priority_value);
+                                            new_intra_priority_value);
   RequestPriorityParams old_priority_params =
       scheduled_resource_request->get_request_priority_params();
 
@@ -1233,7 +1216,7 @@
 void ResourceScheduler::ReprioritizeRequest(net::URLRequest* request,
                                             net::RequestPriority new_priority) {
   int current_intra_priority = 0;
-  auto* existing_request = ScheduledResourceRequest::ForRequest(request);
+  auto* existing_request = ScheduledResourceRequestImpl::ForRequest(request);
   if (existing_request) {
     current_intra_priority =
         existing_request->get_request_priority_params().intra_priority;
@@ -1241,8 +1224,8 @@
   ReprioritizeRequest(request, new_priority, current_intra_priority);
 }
 
-ResourceScheduler::ClientId ResourceScheduler::MakeClientId(
-    int child_id, int route_id) {
+ResourceScheduler::ClientId ResourceScheduler::MakeClientId(int child_id,
+                                                            int route_id) {
   return (static_cast<ResourceScheduler::ClientId>(child_id) << 32) | route_id;
 }
 
@@ -1317,5 +1300,4 @@
   }
 }
 
-
 }  // namespace content
diff --git a/content/browser/loader/resource_scheduler.h b/content/network/resource_scheduler.h
similarity index 90%
rename from content/browser/loader/resource_scheduler.h
rename to content/network/resource_scheduler.h
index f4e7cdf..296e54f68 100644
--- a/content/browser/loader/resource_scheduler.h
+++ b/content/network/resource_scheduler.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 CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_H_
-#define CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_H_
+#ifndef CONTENT_NETWORK_RESOURCE_SCHEDULER_H_
+#define CONTENT_NETWORK_RESOURCE_SCHEDULER_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -14,6 +14,7 @@
 #include <utility>
 #include <vector>
 
+#include "base/callback.h"
 #include "base/compiler_specific.h"
 #include "base/feature_list.h"
 #include "base/macros.h"
@@ -32,7 +33,7 @@
 namespace net {
 class URLRequest;
 class NetworkQualityEstimator;
-}
+}  // namespace net
 
 namespace content {
 
@@ -64,8 +65,24 @@
 // The scheduler may defer issuing the request via the ResourceThrottle
 // interface or it may alter the request's priority by calling set_priority() on
 // the URLRequest.
+// TODO(yhirano): Move this class to /services/network once kNetworkService
+// and kRendererSideResourceScheduler is moved.
 class CONTENT_EXPORT ResourceScheduler {
  public:
+  class ScheduledResourceRequest {
+   public:
+    ScheduledResourceRequest();
+    virtual ~ScheduledResourceRequest();
+    virtual void WillStartRequest(bool* defer) = 0;
+
+    void set_resume_callback(base::OnceClosure callback) {
+      resume_callback_ = std::move(callback);
+    }
+    void RunResumeCallback();
+
+   private:
+    base::OnceClosure resume_callback_;
+  };
   // A struct that stores the Network Quality values and loading parameters when
   // the observed Network Quality matches the specified network quality value.
   struct ParamsForNetworkQuality {
@@ -87,7 +104,7 @@
   // Requests that this ResourceScheduler schedule, and eventually loads, the
   // specified |url_request|. Caller should delete the returned ResourceThrottle
   // when the load completes or is canceled, before |url_request| is deleted.
-  std::unique_ptr<ResourceThrottle> ScheduleRequest(
+  std::unique_ptr<ScheduledResourceRequest> ScheduleRequest(
       int child_id,
       int route_id,
       bool is_async,
@@ -178,11 +195,11 @@
  private:
   class Client;
   class RequestQueue;
-  class ScheduledResourceRequest;
+  class ScheduledResourceRequestImpl;
   struct RequestPriorityParams;
   struct ScheduledResourceSorter {
-    bool operator()(const ScheduledResourceRequest* a,
-                    const ScheduledResourceRequest* b) const;
+    bool operator()(const ScheduledResourceRequestImpl* a,
+                    const ScheduledResourceRequestImpl* b) const;
   };
 
   // Experiment parameters and helper functions for varying the maximum number
@@ -231,10 +248,10 @@
 
   typedef int64_t ClientId;
   typedef std::map<ClientId, Client*> ClientMap;
-  typedef std::set<ScheduledResourceRequest*> RequestSet;
+  typedef std::set<ScheduledResourceRequestImpl*> RequestSet;
 
   // Called when a ScheduledResourceRequest is destroyed.
-  void RemoveRequest(ScheduledResourceRequest* request);
+  void RemoveRequest(ScheduledResourceRequestImpl* request);
 
   // Returns the client ID for the given |child_id| and |route_id| combo.
   ClientId MakeClientId(int child_id, int route_id);
@@ -276,4 +293,4 @@
 
 }  // namespace content
 
-#endif  // CONTENT_BROWSER_LOADER_RESOURCE_SCHEDULER_H_
+#endif  // CONTENT_NETWORK_RESOURCE_SCHEDULER_H_
diff --git a/content/browser/loader/resource_scheduler_unittest.cc b/content/network/resource_scheduler_unittest.cc
similarity index 96%
rename from content/browser/loader/resource_scheduler_unittest.cc
rename to content/network/resource_scheduler_unittest.cc
index ccbb2e97..081d0f6 100644
--- a/content/browser/loader/resource_scheduler_unittest.cc
+++ b/content/network/resource_scheduler_unittest.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 "content/browser/loader/resource_scheduler.h"
+#include "content/network/resource_scheduler.h"
 
 #include <map>
 #include <memory>
@@ -13,24 +13,19 @@
 
 #include "base/memory/ptr_util.h"
 #include "base/memory/ref_counted.h"
+#include "base/message_loop/message_loop.h"
 #include "base/metrics/field_trial.h"
 #include "base/metrics/field_trial_param_associator.h"
 #include "base/metrics/field_trial_params.h"
 #include "base/run_loop.h"
 #include "base/strings/string_number_conversions.h"
+#include "base/strings/stringprintf.h"
 #include "base/test/histogram_tester.h"
 #include "base/test/mock_entropy_provider.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/test_mock_time_task_runner.h"
 #include "base/timer/mock_timer.h"
 #include "base/timer/timer.h"
-#include "content/public/browser/resource_context.h"
-#include "content/public/browser/resource_throttle.h"
-#include "content/public/test/mock_render_process_host.h"
-#include "content/public/test/test_browser_context.h"
-#include "content/public/test/test_browser_thread_bundle.h"
-#include "content/test/test_render_view_host_factory.h"
-#include "content/test/test_web_contents.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/request_priority.h"
 #include "net/http/http_server_properties_impl.h"
@@ -92,28 +87,30 @@
   scoped_feature_list->InitWithFeatureList(std::move(feature_list));
 }
 
-class TestRequest : public ResourceThrottle::Delegate {
+class TestRequest {
  public:
   TestRequest(std::unique_ptr<net::URLRequest> url_request,
-              std::unique_ptr<ResourceThrottle> throttle,
+              std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
+                  scheduled_request,
               ResourceScheduler* scheduler)
       : started_(false),
         url_request_(std::move(url_request)),
-        throttle_(std::move(throttle)),
+        scheduled_request_(std::move(scheduled_request)),
         scheduler_(scheduler) {
-    throttle_->set_delegate_for_testing(this);
+    scheduled_request_->set_resume_callback(
+        base::BindRepeating(&TestRequest::Resume, base::Unretained(this)));
   }
-  ~TestRequest() override {
+  virtual ~TestRequest() {
     // The URLRequest must still be valid when the ScheduledResourceRequest is
     // destroyed, so that it can unregister itself.
-    throttle_.reset();
+    scheduled_request_.reset();
   }
 
   bool started() const { return started_; }
 
   void Start() {
     bool deferred = false;
-    throttle_->WillStartRequest(&deferred);
+    scheduled_request_->WillStartRequest(&deferred);
     started_ = !deferred;
   }
 
@@ -122,31 +119,28 @@
                                     intra_priority);
   }
 
-  void Cancel() override {
-    // Alert the scheduler that the request can be deleted.
-    throttle_.reset();
-  }
-
   const net::URLRequest* url_request() const { return url_request_.get(); }
 
- protected:
-  // ResourceThrottle::Delegate interface:
-  void CancelWithError(int error_code) override {}
-  void Resume() override { started_ = true; }
+  virtual void Resume() { started_ = true; }
 
  private:
   bool started_;
   std::unique_ptr<net::URLRequest> url_request_;
-  std::unique_ptr<ResourceThrottle> throttle_;
+  std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
+      scheduled_request_;
   ResourceScheduler* scheduler_;
 };
 
 class CancelingTestRequest : public TestRequest {
  public:
-  CancelingTestRequest(std::unique_ptr<net::URLRequest> url_request,
-                       std::unique_ptr<ResourceThrottle> throttle,
-                       ResourceScheduler* scheduler)
-      : TestRequest(std::move(url_request), std::move(throttle), scheduler) {}
+  CancelingTestRequest(
+      std::unique_ptr<net::URLRequest> url_request,
+      std::unique_ptr<ResourceScheduler::ScheduledResourceRequest>
+          scheduled_request,
+      ResourceScheduler* scheduler)
+      : TestRequest(std::move(url_request),
+                    std::move(scheduled_request),
+                    scheduler) {}
 
   void set_request_to_cancel(std::unique_ptr<TestRequest> request_to_cancel) {
     request_to_cancel_ = std::move(request_to_cancel);
@@ -161,12 +155,6 @@
   std::unique_ptr<TestRequest> request_to_cancel_;
 };
 
-class FakeResourceContext : public ResourceContext {
- private:
-  net::HostResolver* GetHostResolver() override { return nullptr; }
-  net::URLRequestContext* GetRequestContext() override { return nullptr; }
-};
-
 class ResourceSchedulerTest : public testing::Test {
  protected:
   ResourceSchedulerTest() : field_trial_list_(nullptr) {
@@ -175,9 +163,7 @@
     context_.set_network_quality_estimator(&network_quality_estimator_);
   }
 
-  ~ResourceSchedulerTest() override {
-    CleanupScheduler();
-  }
+  ~ResourceSchedulerTest() override { CleanupScheduler(); }
 
   // Done separately from construction to allow for modification of command
   // line flags in tests.
@@ -240,8 +226,8 @@
   std::unique_ptr<TestRequest> NewBackgroundRequest(
       const char* url,
       net::RequestPriority priority) {
-    return NewRequestWithChildAndRoute(
-        url, priority, kBackgroundChildId, kBackgroundRouteId);
+    return NewRequestWithChildAndRoute(url, priority, kBackgroundChildId,
+                                       kBackgroundRouteId);
   }
 
   std::unique_ptr<TestRequest> NewSyncRequest(const char* url,
@@ -252,8 +238,8 @@
   std::unique_ptr<TestRequest> NewBackgroundSyncRequest(
       const char* url,
       net::RequestPriority priority) {
-    return NewSyncRequestWithChildAndRoute(
-        url, priority, kBackgroundChildId, kBackgroundRouteId);
+    return NewSyncRequestWithChildAndRoute(url, priority, kBackgroundChildId,
+                                           kBackgroundRouteId);
   }
 
   std::unique_ptr<TestRequest> NewSyncRequestWithChildAndRoute(
@@ -271,10 +257,10 @@
                                                  bool is_async) {
     std::unique_ptr<net::URLRequest> url_request(
         NewURLRequestWithChildAndRoute(url, priority, child_id, route_id));
-    std::unique_ptr<ResourceThrottle> throttle(scheduler_->ScheduleRequest(
-        child_id, route_id, is_async, url_request.get()));
+    auto scheduled_request = scheduler_->ScheduleRequest(
+        child_id, route_id, is_async, url_request.get());
     auto request = std::make_unique<TestRequest>(
-        std::move(url_request), std::move(throttle), scheduler());
+        std::move(url_request), std::move(scheduled_request), scheduler());
     request->Start();
     return request;
   }
@@ -510,11 +496,9 @@
     EXPECT_FALSE(last_low->started());
   }
 
-  ResourceScheduler* scheduler() {
-    return scheduler_.get();
-  }
+  ResourceScheduler* scheduler() { return scheduler_.get(); }
 
-  TestBrowserThreadBundle thread_bundle_;
+  base::MessageLoop message_loop_;
   std::unique_ptr<ResourceScheduler> scheduler_;
   base::MockTimer* mock_timer_;
   net::HttpServerPropertiesImpl http_server_properties_;
@@ -1121,10 +1105,10 @@
 
   std::unique_ptr<net::URLRequest> url_request(
       NewURLRequest("http://host/low2", net::LOWEST));
-  std::unique_ptr<ResourceThrottle> throttle(scheduler()->ScheduleRequest(
-      kChildId, kRouteId, true, url_request.get()));
+  auto scheduled_request =
+      scheduler()->ScheduleRequest(kChildId, kRouteId, true, url_request.get());
   std::unique_ptr<CancelingTestRequest> low2(new CancelingTestRequest(
-      std::move(url_request), std::move(throttle), scheduler()));
+      std::move(url_request), std::move(scheduled_request), scheduler()));
   low2->Start();
 
   std::unique_ptr<TestRequest> low3(
diff --git a/content/network/url_request_context_builder_mojo.cc b/content/network/url_request_context_builder_mojo.cc
index e55302e..dd876f8 100644
--- a/content/network/url_request_context_builder_mojo.cc
+++ b/content/network/url_request_context_builder_mojo.cc
@@ -8,8 +8,8 @@
 #include "build/build_config.h"
 #include "content/network/network_context.h"
 #include "content/network/proxy_service_mojo.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace content {
 
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
index 6873332c..a90bc89e 100644
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
@@ -207,6 +207,7 @@
     "java/src/org/chromium/content/browser/picker/TwoFieldDatePickerDialog.java",
     "java/src/org/chromium/content/browser/picker/WeekPicker.java",
     "java/src/org/chromium/content/browser/picker/WeekPickerDialog.java",
+    "java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java",
     "java/src/org/chromium/content/browser/selection/FloatingActionModeCallback.java",
     "java/src/org/chromium/content/browser/selection/FloatingPastePopupMenu.java",
     "java/src/org/chromium/content/browser/selection/HandleViewResources.java",
@@ -521,6 +522,7 @@
     "junit/src/org/chromium/content/browser/input/ThreadedInputConnectionFactoryTest.java",
     "junit/src/org/chromium/content/browser/input/ThreadedInputConnectionTest.java",
     "junit/src/org/chromium/content/browser/picker/DateDialogNormalizerTest.java",
+    "junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java",
     "junit/src/org/chromium/content/browser/selection/MenuDescriptorTest.java",
     "junit/src/org/chromium/content/browser/selection/SelectionPopupControllerTest.java",
     "junit/src/org/chromium/content/browser/selection/SmartSelectionMetricsLoggerTest.java",
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentView.java b/content/public/android/java/src/org/chromium/content/browser/ContentView.java
index ca96de2..8322324 100644
--- a/content/public/android/java/src/org/chromium/content/browser/ContentView.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentView.java
@@ -23,6 +23,7 @@
 import android.widget.FrameLayout;
 
 import org.chromium.base.TraceEvent;
+import org.chromium.content.browser.webcontents.WebContentsImpl;
 import org.chromium.content_public.browser.ImeAdapter;
 import org.chromium.ui.base.EventForwarder;
 
@@ -131,13 +132,14 @@
 
     @Override
     public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
-        return ImeAdapter.fromWebContents(mContentViewCore.getWebContents())
-                .onCreateInputConnection(outAttrs);
+        if (getWebContents() == null) return null;
+        return ImeAdapter.fromWebContents(getWebContents()).onCreateInputConnection(outAttrs);
     }
 
     @Override
     public boolean onCheckIsTextEditor() {
-        return ImeAdapter.fromWebContents(mContentViewCore.getWebContents()).onCheckIsTextEditor();
+        if (getWebContents() == null) return false;
+        return ImeAdapter.fromWebContents(getWebContents()).onCheckIsTextEditor();
     }
 
     @Override
@@ -199,6 +201,10 @@
         return mContentViewCore.onGenericMotionEvent(event);
     }
 
+    private WebContentsImpl getWebContents() {
+        return (WebContentsImpl) mContentViewCore.getWebContents();
+    }
+
     private EventForwarder getEventForwarder() {
         if (mEventForwarder == null) {
             mEventForwarder = mContentViewCore.getWebContents().getEventForwarder();
diff --git a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/README.md b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/README.md
new file mode 100644
index 0000000..7fcc77ff
--- /dev/null
+++ b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/README.md
@@ -0,0 +1,9 @@
+# Remote Objects
+
+This is an implementation of the Blink mojo interfaces which allow objects
+hosted out of process to be exposed to script. It is intended to ultimately
+migrate the Gin/Java bridge used to implement
+[`addJavascriptInterface`](https://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface%28java.lang.Object,%20java.lang.String%29)
+in Android WebView.
+
+See also the [design doc](https://docs.google.com/document/d/1T8Zj_gZK7jHsy80Etk-Rw4hXMIW4QeaTtXjy5ZKP3X0/edit).
diff --git a/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java
new file mode 100644
index 0000000..684ebe1
--- /dev/null
+++ b/content/public/android/java/src/org/chromium/content/browser/remoteobjects/RemoteObjectImpl.java
@@ -0,0 +1,135 @@
+// 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.
+
+package org.chromium.content.browser.remoteobjects;
+
+import org.chromium.blink.mojom.RemoteInvocationArgument;
+import org.chromium.blink.mojom.RemoteInvocationResult;
+import org.chromium.blink.mojom.RemoteObject;
+import org.chromium.mojo.system.MojoException;
+
+import java.lang.annotation.Annotation;
+import java.lang.ref.WeakReference;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+/**
+ * Exposes limited access to a Java object over a Mojo interface.
+ */
+class RemoteObjectImpl implements RemoteObject {
+    /**
+     * The object to which invocations should be directed.
+     *
+     * The target object cannot be referred to strongly, because it may contain
+     * references which form an uncollectable cycle.
+     */
+    private final WeakReference<Object> mTarget;
+
+    /**
+     * Callable methods, indexed by name.
+     */
+    private final SortedMap<String, List<Method>> mMethods = new TreeMap<>();
+
+    public RemoteObjectImpl(Object target, Class<? extends Annotation> safeAnnotationClass) {
+        mTarget = new WeakReference<>(target);
+
+        for (Method method : target.getClass().getMethods()) {
+            if (safeAnnotationClass != null && !method.isAnnotationPresent(safeAnnotationClass)) {
+                continue;
+            }
+
+            String methodName = method.getName();
+            List<Method> methodsWithName = mMethods.get(methodName);
+            if (methodsWithName == null) {
+                methodsWithName = new ArrayList<>(1);
+                mMethods.put(methodName, methodsWithName);
+            }
+            methodsWithName.add(method);
+        }
+    }
+
+    @Override
+    public void hasMethod(String name, HasMethodResponse callback) {
+        callback.call(mMethods.containsKey(name));
+    }
+
+    @Override
+    public void getMethods(GetMethodsResponse callback) {
+        Set<String> methodNames = mMethods.keySet();
+        callback.call(methodNames.toArray(new String[methodNames.size()]));
+    }
+
+    @Override
+    public void invokeMethod(
+            String name, RemoteInvocationArgument[] arguments, InvokeMethodResponse callback) {
+        Object target = mTarget.get();
+        if (target == null) {
+            // TODO(jbroman): Handle this.
+            return;
+        }
+
+        int numArguments = arguments.length;
+        Method method = findMethod(name, numArguments);
+        if (method == null) {
+            // TODO(jbroman): Handle this.
+            return;
+        }
+
+        Object[] args = new Object[numArguments];
+        for (int i = 0; i < numArguments; i++) {
+            args[i] = convertArgument(arguments[i]);
+        }
+
+        Object result = null;
+        try {
+            result = method.invoke(target, args);
+        } catch (Exception e) {
+            // TODO(jbroman): Handle this. (IllegalAccessException and ones thrown by the method
+            // internally.)
+        }
+
+        RemoteInvocationResult mojoResult = convertResult(result);
+        callback.call(mojoResult);
+    }
+
+    @Override
+    public void close() {
+        // TODO(jbroman): Handle this.
+    }
+
+    @Override
+    public void onConnectionError(MojoException e) {
+        close();
+    }
+
+    private Method findMethod(String name, int numParameters) {
+        List<Method> methods = mMethods.get(name);
+        if (methods == null) {
+            return null;
+        }
+
+        // LIVECONNECT_COMPLIANCE: We just take the first method with the correct
+        // number of arguments, while the spec proposes using cost-based algorithm:
+        // https://jdk6.java.net/plugin2/liveconnect/#OVERLOADED_METHODS
+        for (Method method : methods) {
+            if (method.getParameterTypes().length == numParameters) return method;
+        }
+
+        return null;
+    }
+
+    private Object convertArgument(RemoteInvocationArgument argument) {
+        // TODO(jbroman): Convert arguments.
+        return null;
+    }
+
+    private RemoteInvocationResult convertResult(Object result) {
+        // TODO(jbroman): Convert result.
+        return null;
+    }
+}
diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
index 83e6ee6..d3268d4 100644
--- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java
@@ -662,6 +662,16 @@
         nativeSetSize(mNativeWebContentsAndroid, width, height);
     }
 
+    @Override
+    public int getWidth() {
+        return nativeGetWidth(mNativeWebContentsAndroid);
+    }
+
+    @Override
+    public int getHeight() {
+        return nativeGetHeight(mNativeWebContentsAndroid);
+    }
+
     @CalledByNative
     private final void setMediaSession(MediaSessionImpl mediaSession) {
         mMediaSession = mediaSession;
@@ -810,5 +820,7 @@
     private native boolean nativeHasActiveEffectivelyFullscreenVideo(long nativeWebContentsAndroid);
     private native Rect nativeGetFullscreenVideoSize(long nativeWebContentsAndroid);
     private native void nativeSetSize(long nativeWebContentsAndroid, int width, int height);
+    private native int nativeGetWidth(long nativeWebContentsAndroid);
+    private native int nativeGetHeight(long nativeWebContentsAndroid);
     private native EventForwarder nativeGetOrCreateEventForwarder(long nativeWebContentsAndroid);
 }
diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
index 1f5db6d..616e4bbb 100644
--- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
+++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java
@@ -485,10 +485,24 @@
     void setHasPersistentVideo(boolean value);
 
     /**
-     * Set the view size of WebContents. The size is in physical pixel.
+     * Set the view size of the WebContents. The size is in physical pixels.
      *
      * @param width The width of the view.
      * @param height The height of the view.
      */
     void setSize(int width, int height);
+
+    /**
+     * Gets the view size width of the WebContents. The size is in physical pixels.
+     *
+     * @return The width of the view.
+     */
+    int getWidth();
+
+    /**
+     * Gets the view size width of the WebContents. The size is in physical pixels.
+     *
+     * @return The width of the view.
+     */
+    int getHeight();
 }
diff --git a/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java
new file mode 100644
index 0000000..5cd6e15
--- /dev/null
+++ b/content/public/android/junit/src/org/chromium/content/browser/remoteobjects/RemoteObjectImplTest.java
@@ -0,0 +1,184 @@
+// 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.
+
+package org.chromium.content.browser.remoteobjects;
+
+import static org.mockito.AdditionalMatchers.aryEq;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.BlockJUnit4ClassRunner;
+import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatchers;
+import org.mockito.InOrder;
+
+import org.chromium.blink.mojom.RemoteInvocationArgument;
+import org.chromium.blink.mojom.RemoteInvocationResult;
+import org.chromium.blink.mojom.RemoteObject;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.util.Arrays;
+import java.util.function.Consumer;
+
+/**
+ * Tests the implementation of the Mojo object which wraps invocations
+ * of Java methods.
+ */
+@RunWith(BlockJUnit4ClassRunner.class)
+public final class RemoteObjectImplTest {
+    /**
+     * Annotation which can be used in the way that {@link android.webkit.JavascriptInterface}
+     * would.
+     *
+     * A separate one is used to ensure that RemoteObject is actually respecting the parameter.
+     */
+    @Retention(RetentionPolicy.RUNTIME)
+    @Target({ElementType.METHOD})
+    private @interface TestJavascriptInterface {}
+
+    @Test
+    public void testHasMethodWithSafeAnnotationClass() {
+        Object target = new Object() {
+            @TestJavascriptInterface
+            public void exposedMethod() {}
+
+            @TestJavascriptInterface
+            public void anotherExposedMethod() {}
+
+            @TestJavascriptInterface
+            public void anotherExposedMethod(int x) {}
+
+            @TestJavascriptInterface
+            private void privateAnnotatedMethod() {}
+
+            public void unannotatedMethod() {}
+        };
+
+        RemoteObject remoteObject = new RemoteObjectImpl(target, TestJavascriptInterface.class);
+        RemoteObject.HasMethodResponse hasMethodResponse;
+
+        // This method is public and annotated; it should be exposed.
+        hasMethodResponse = mock(RemoteObject.HasMethodResponse.class);
+        remoteObject.hasMethod("exposedMethod", hasMethodResponse);
+        verify(hasMethodResponse).call(true);
+
+        // This method is private; it should not be exposed.
+        hasMethodResponse = mock(RemoteObject.HasMethodResponse.class);
+        remoteObject.hasMethod("privateAnnotatedMethod", hasMethodResponse);
+        verify(hasMethodResponse).call(false);
+
+        // This method is not annotated; it should not be exposed.
+        hasMethodResponse = mock(RemoteObject.HasMethodResponse.class);
+        remoteObject.hasMethod("unannotatedMethod", hasMethodResponse);
+        verify(hasMethodResponse).call(false);
+
+        // getMethods should provide a result consistent with this.
+        // The result must also be in sorted order and have no duplicates.
+        RemoteObject.GetMethodsResponse getMethodsResponse =
+                mock(RemoteObject.GetMethodsResponse.class);
+        remoteObject.getMethods(getMethodsResponse);
+        verify(getMethodsResponse)
+                .call(aryEq(new String[] {"anotherExposedMethod", "exposedMethod"}));
+    }
+
+    @Test
+    public void testHasMethodWithoutSafeAnnotationClass() {
+        Object target = new Object() {
+            @TestJavascriptInterface
+            public void annotatedMethod() {}
+
+            public void unannotatedMethod() {}
+        };
+
+        RemoteObject remoteObject = new RemoteObjectImpl(target, null);
+        RemoteObject.HasMethodResponse hasMethodResponse;
+
+        // This method has an annotation; it should be exposed.
+        hasMethodResponse = mock(RemoteObject.HasMethodResponse.class);
+        remoteObject.hasMethod("annotatedMethod", hasMethodResponse);
+        verify(hasMethodResponse).call(true);
+
+        // This method doesn't, but passing null skips the check.
+        hasMethodResponse = mock(RemoteObject.HasMethodResponse.class);
+        remoteObject.hasMethod("unannotatedMethod", hasMethodResponse);
+        verify(hasMethodResponse).call(true);
+
+        // getMethods should provide a result consistent with this.
+        // The result must also be in sorted order.
+        // Note that this includes all of the normal java.lang.Object methods.
+        RemoteObject.GetMethodsResponse getMethodsResponse =
+                mock(RemoteObject.GetMethodsResponse.class);
+        remoteObject.getMethods(getMethodsResponse);
+
+        ArgumentCaptor<String[]> methodsCaptor = ArgumentCaptor.forClass(String[].class);
+        verify(getMethodsResponse).call(methodsCaptor.capture());
+        String[] methods = methodsCaptor.getValue();
+        Assert.assertTrue(Arrays.asList(methods).contains("annotatedMethod"));
+        Assert.assertTrue(Arrays.asList(methods).contains("unannotatedMethod"));
+        Assert.assertTrue(Arrays.asList(methods).contains("hashCode"));
+        String[] sortedMethods = Arrays.copyOf(methods, methods.length);
+        Arrays.sort(sortedMethods);
+        Assert.assertArrayEquals(sortedMethods, methods);
+    }
+
+    @Test
+    public void testInvokeMethodBasic() {
+        final Runnable runnable = mock(Runnable.class);
+        Object target = new Object() {
+            @TestJavascriptInterface
+            public void frobnicate() {
+                runnable.run();
+            }
+        };
+
+        RemoteObject remoteObject = new RemoteObjectImpl(target, TestJavascriptInterface.class);
+        RemoteObject.InvokeMethodResponse response = mock(RemoteObject.InvokeMethodResponse.class);
+        remoteObject.invokeMethod("frobnicate", new RemoteInvocationArgument[] {}, response);
+        remoteObject.invokeMethod("frobnicate", new RemoteInvocationArgument[] {}, response);
+
+        verify(runnable, times(2)).run();
+        verify(response, times(2)).call(resultIsOk());
+    }
+
+    @Test
+    public void testInvokeMethodOverloadUsingArity() {
+        final Consumer<Integer> consumer = (Consumer<Integer>) mock(Consumer.class);
+        Object target = new Object() {
+            @TestJavascriptInterface
+            public void frobnicate() {
+                consumer.accept(0);
+            }
+
+            @TestJavascriptInterface
+            public void frobnicate(Object argument) {
+                consumer.accept(1);
+            }
+        };
+
+        // The method overload to be called depends on the number of arguments supplied.
+        // TODO(jbroman): Once it's possible to construct a non-trivial argument, do so.
+        RemoteObject remoteObject = new RemoteObjectImpl(target, TestJavascriptInterface.class);
+        RemoteObject.InvokeMethodResponse response = mock(RemoteObject.InvokeMethodResponse.class);
+        remoteObject.invokeMethod("frobnicate", new RemoteInvocationArgument[] {}, response);
+        remoteObject.invokeMethod("frobnicate", new RemoteInvocationArgument[] {null}, response);
+
+        InOrder inOrder = inOrder(consumer);
+        inOrder.verify(consumer).accept(0);
+        inOrder.verify(consumer).accept(1);
+        verify(response, times(2)).call(resultIsOk());
+    }
+
+    private RemoteInvocationResult resultIsOk() {
+        // TODO(jbroman): Check the error code once there is one.
+        return ArgumentMatchers.<RemoteInvocationResult>any();
+    }
+}
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
index 18767b60..67b85d4 100644
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
@@ -34,6 +34,7 @@
 #include "services/network/public/interfaces/network_service.mojom.h"
 #include "services/service_manager/embedder/embedded_service_info.h"
 #include "services/service_manager/public/cpp/binder_registry.h"
+#include "services/service_manager/public/interfaces/service.mojom.h"
 #include "services/service_manager/sandbox/sandbox_type.h"
 #include "storage/browser/fileapi/file_system_context.h"
 #include "storage/browser/quota/quota_manager.h"
@@ -212,7 +213,13 @@
   // Notifies that a render process will be created. This is called before
   // the content layer adds its own BrowserMessageFilters, so that the
   // embedder's IPC filters have priority.
-  virtual void RenderProcessWillLaunch(RenderProcessHost* host) {}
+  //
+  // If the client provides a service request, the content layer will ask the
+  // corresponding embedder renderer-side component to bind it to an
+  // implementation at the appropriate moment during initialization.
+  virtual void RenderProcessWillLaunch(
+      RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) {}
 
   // Notifies that a BrowserChildProcessHost has been created.
   virtual void BrowserChildProcessHostCreated(BrowserChildProcessHost* host) {}
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
index ac4fc25..cd03275 100644
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -122,7 +122,7 @@
 // same-origin to the top frame, or if a user gesture is being processed.
 const base::Feature kFramebustingNeedsSameOriginOrUserGesture{
     "FramebustingNeedsSameOriginOrUserGesture",
-    base::FEATURE_DISABLED_BY_DEFAULT};
+    base::FEATURE_ENABLED_BY_DEFAULT};
 
 // Enables extended Gamepad API features like motion tracking and haptics.
 const base::Feature kGamepadExtensions{"GamepadExtensions",
@@ -311,6 +311,11 @@
 const base::Feature kSharedArrayBuffer{"SharedArrayBuffer",
                                        base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Origin-Signed HTTP Exchanges (for WebPackage Loading)
+// https://www.chromestatus.com/features/5745285984681984
+const base::Feature kSignedHTTPExchange{"SignedHTTPExchange",
+                                        base::FEATURE_DISABLED_BY_DEFAULT};
+
 // An experiment to require process isolation for the sign-in origin,
 // https://accounts.google.com.  Launch bug: https://crbug.com/739418.
 const base::Feature kSignInProcessIsolation{"sign-in-process-isolation",
diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h
index 59737c2..0b0cfc3 100644
--- a/content/public/common/content_features.h
+++ b/content/public/common/content_features.h
@@ -82,6 +82,7 @@
 CONTENT_EXPORT extern const base::Feature kServiceWorkerScriptStreaming;
 CONTENT_EXPORT extern const base::Feature kServiceWorkerScriptFullCodeCache;
 CONTENT_EXPORT extern const base::Feature kSharedArrayBuffer;
+CONTENT_EXPORT extern const base::Feature kSignedHTTPExchange;
 CONTENT_EXPORT extern const base::Feature kSignInProcessIsolation;
 CONTENT_EXPORT extern const base::Feature kSitePerProcess;
 CONTENT_EXPORT extern const base::Feature kSlimmingPaintInvalidation;
diff --git a/content/public/network/url_request_context_builder_mojo.h b/content/public/network/url_request_context_builder_mojo.h
index 577ddb3..f9667c14 100644
--- a/content/public/network/url_request_context_builder_mojo.h
+++ b/content/public/network/url_request_context_builder_mojo.h
@@ -11,7 +11,7 @@
 #include "build/build_config.h"
 #include "content/common/content_export.h"
 #include "content/public/network/url_request_context_owner.h"
-#include "net/proxy/dhcp_pac_file_fetcher_factory.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_factory.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "services/network/public/interfaces/network_service.mojom.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index b51a04da..2d04c9ec 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -20,6 +20,7 @@
 #include "content/public/common/content_client.h"
 #include "content/public/renderer/url_loader_throttle_provider.h"
 #include "media/base/decode_capabilities.h"
+#include "services/service_manager/public/interfaces/service.mojom.h"
 #include "third_party/WebKit/common/page/page_visibility_state.mojom.h"
 #include "third_party/WebKit/public/platform/WebContentSettingsClient.h"
 #include "third_party/WebKit/public/web/WebNavigationPolicy.h"
@@ -380,6 +381,11 @@
       base::Time cert_validity_start,
       std::string* console_messsage);
 
+  // Asks the embedder to bind |service_request| to its renderer-side service
+  // implementation.
+  virtual void CreateRendererService(
+      service_manager::mojom::ServiceRequest service_request) {}
+
   virtual std::unique_ptr<URLLoaderThrottleProvider>
   CreateURLLoaderThrottleProvider(URLLoaderThrottleProviderType provider_type);
 
diff --git a/content/renderer/device_sensors/device_sensor_event_pump.h b/content/renderer/device_sensors/device_sensor_event_pump.h
index e588a039..ef2c594 100644
--- a/content/renderer/device_sensors/device_sensor_event_pump.h
+++ b/content/renderer/device_sensors/device_sensor_event_pump.h
@@ -137,7 +137,8 @@
     }
 
     // Mojo callback for SensorProvider::GetSensor().
-    void OnSensorCreated(device::mojom::SensorInitParamsPtr params) {
+    void OnSensorCreated(device::mojom::SensorCreationResult result,
+                         device::mojom::SensorInitParamsPtr params) {
       // |sensor_state| can be SensorState::SHOULD_SUSPEND if Stop() is called
       // before OnSensorCreated() is called.
       DCHECK(sensor_state == SensorState::INITIALIZING ||
@@ -148,6 +149,7 @@
         event_pump->DidStartIfPossible();
         return;
       }
+      DCHECK_EQ(device::mojom::SensorCreationResult::SUCCESS, result);
 
       constexpr size_t kReadBufferSize =
           sizeof(device::SensorReadingSharedBuffer);
diff --git a/content/renderer/device_sensors/fake_sensor_and_provider.cc b/content/renderer/device_sensors/fake_sensor_and_provider.cc
index 8f47509..84e29b5 100644
--- a/content/renderer/device_sensors/fake_sensor_and_provider.cc
+++ b/content/renderer/device_sensors/fake_sensor_and_provider.cc
@@ -164,9 +164,11 @@
 
     mojo::MakeStrongBinding(std::move(sensor),
                             mojo::MakeRequest(&init_params->sensor));
-    std::move(callback).Run(std::move(init_params));
+    std::move(callback).Run(device::mojom::SensorCreationResult::SUCCESS,
+                            std::move(init_params));
   } else {
-    std::move(callback).Run(nullptr);
+    std::move(callback).Run(
+        device::mojom::SensorCreationResult::ERROR_NOT_AVAILABLE, nullptr);
   }
 }
 
diff --git a/content/renderer/manifest/manifest_change_notifier.cc b/content/renderer/manifest/manifest_change_notifier.cc
index 0e5b445..bafa455c 100644
--- a/content/renderer/manifest/manifest_change_notifier.cc
+++ b/content/renderer/manifest/manifest_change_notifier.cc
@@ -8,6 +8,7 @@
 
 #include "base/bind.h"
 #include "content/public/renderer/render_frame.h"
+#include "content/renderer/manifest/manifest_manager.h"
 #include "third_party/WebKit/common/associated_interfaces/associated_interface_provider.h"
 #include "third_party/WebKit/public/web/WebDocument.h"
 #include "third_party/WebKit/public/web/WebLocalFrame.h"
@@ -20,6 +21,10 @@
 ManifestChangeNotifier::~ManifestChangeNotifier() = default;
 
 void ManifestChangeNotifier::DidChangeManifest() {
+  // Manifests are not considered when the current page has a unique origin.
+  if (!ManifestManager::CanFetchManifest(render_frame()))
+    return;
+
   if (weak_factory_.HasWeakPtrs())
     return;
 
diff --git a/content/renderer/manifest/manifest_manager.cc b/content/renderer/manifest/manifest_manager.cc
index 8ff5694..6cc5ce2 100644
--- a/content/renderer/manifest/manifest_manager.cc
+++ b/content/renderer/manifest/manifest_manager.cc
@@ -20,6 +20,15 @@
 
 namespace content {
 
+// static
+bool ManifestManager::CanFetchManifest(RenderFrame* render_frame) {
+  // Do not fetch the manifest if we are on a unique origin.
+  return !render_frame->GetWebFrame()
+              ->GetDocument()
+              .GetSecurityOrigin()
+              .IsUnique();
+}
+
 ManifestManager::ManifestManager(RenderFrame* render_frame)
     : RenderFrameObserver(render_frame),
       may_have_manifest_(false),
@@ -98,6 +107,12 @@
 }
 
 void ManifestManager::FetchManifest() {
+  if (!CanFetchManifest(render_frame())) {
+    ManifestUmaUtil::FetchFailed(ManifestUmaUtil::FETCH_FROM_UNIQUE_ORIGIN);
+    ResolveCallbacks(ResolveStateFailure);
+    return;
+  }
+
   manifest_url_ = render_frame()->GetWebFrame()->GetDocument().ManifestURL();
 
   if (manifest_url_.is_empty()) {
diff --git a/content/renderer/manifest/manifest_manager.h b/content/renderer/manifest/manifest_manager.h
index 4bb2ea9..1d5997f7 100644
--- a/content/renderer/manifest/manifest_manager.h
+++ b/content/renderer/manifest/manifest_manager.h
@@ -35,6 +35,8 @@
 class ManifestManager : public RenderFrameObserver,
                         public blink::mojom::ManifestManager {
  public:
+  static bool CanFetchManifest(RenderFrame* render_frame);
+
   explicit ManifestManager(RenderFrame* render_frame);
   ~ManifestManager() override;
 
diff --git a/content/renderer/manifest/manifest_uma_util.cc b/content/renderer/manifest/manifest_uma_util.cc
index 4d68e5bf..3d37795 100644
--- a/content/renderer/manifest/manifest_uma_util.cc
+++ b/content/renderer/manifest/manifest_uma_util.cc
@@ -21,6 +21,7 @@
   MANIFEST_FETCH_SUCCESS = 0,
   MANIFEST_FETCH_ERROR_EMPTY_URL = 1,
   MANIFEST_FETCH_ERROR_UNSPECIFIED = 2,
+  MANIFEST_FETCH_ERROR_FROM_UNIQUE_ORIGIN = 3,
 
   // Must stay at the end.
   MANIFEST_FETCH_RESULT_TYPE_COUNT
@@ -67,6 +68,9 @@
     case FETCH_EMPTY_URL:
       fetch_result_type = MANIFEST_FETCH_ERROR_EMPTY_URL;
       break;
+    case FETCH_FROM_UNIQUE_ORIGIN:
+      fetch_result_type = MANIFEST_FETCH_ERROR_FROM_UNIQUE_ORIGIN;
+      break;
     case FETCH_UNSPECIFIED_REASON:
       fetch_result_type = MANIFEST_FETCH_ERROR_UNSPECIFIED;
       break;
diff --git a/content/renderer/manifest/manifest_uma_util.h b/content/renderer/manifest/manifest_uma_util.h
index 9930f559..29a263d 100644
--- a/content/renderer/manifest/manifest_uma_util.h
+++ b/content/renderer/manifest/manifest_uma_util.h
@@ -13,6 +13,7 @@
  public:
   enum FetchFailureReason {
     FETCH_EMPTY_URL = 0,
+    FETCH_FROM_UNIQUE_ORIGIN,
     FETCH_UNSPECIFIED_REASON
   };
 
diff --git a/content/renderer/media/media_factory.cc b/content/renderer/media/media_factory.cc
index f4c99c70..474f77d5 100644
--- a/content/renderer/media/media_factory.cc
+++ b/content/renderer/media/media_factory.cc
@@ -255,8 +255,9 @@
 
   // This must be created for every new WebMediaPlayer, each instance generates
   // a new player id which is used to collate logs on the browser side.
-  std::unique_ptr<media::MediaLog> media_log(
-      new RenderMediaLog(url::Origin(security_origin).GetURL()));
+  std::unique_ptr<media::MediaLog> media_log(new RenderMediaLog(
+      url::Origin(security_origin).GetURL(),
+      render_frame_->GetTaskRunner(blink::TaskType::kInternalMedia)));
 
   base::WeakPtr<media::MediaObserver> media_observer;
 
@@ -345,7 +346,8 @@
         GetCdmFactory(), render_frame_->GetMediaPermission(),
         new RenderMediaLog(
             url::Origin(render_frame_->GetWebFrame()->GetSecurityOrigin())
-                .GetURL())));
+                .GetURL(),
+            render_frame_->GetTaskRunner(blink::TaskType::kInternalMedia))));
   }
   return web_encrypted_media_client_.get();
 }
@@ -466,7 +468,9 @@
 
   return new WebMediaPlayerMS(
       frame, client, GetWebMediaPlayerDelegate(),
-      std::make_unique<RenderMediaLog>(url::Origin(security_origin).GetURL()),
+      std::make_unique<RenderMediaLog>(
+          url::Origin(security_origin).GetURL(),
+          render_frame_->GetTaskRunner(blink::TaskType::kInternalMedia)),
       CreateMediaStreamRendererFactory(), render_thread->GetIOTaskRunner(),
       compositor_task_runner, render_thread->GetMediaThreadTaskRunner(),
       render_thread->GetWorkerTaskRunner(), render_thread->GetGpuFactories(),
diff --git a/content/renderer/media/render_media_log.cc b/content/renderer/media/render_media_log.cc
index 60201ae1..6d85af8 100644
--- a/content/renderer/media/render_media_log.cc
+++ b/content/renderer/media/render_media_log.cc
@@ -39,9 +39,11 @@
 
 namespace content {
 
-RenderMediaLog::RenderMediaLog(const GURL& security_origin)
+RenderMediaLog::RenderMediaLog(
+    const GURL& security_origin,
+    scoped_refptr<base::SingleThreadTaskRunner> task_runner)
     : security_origin_(security_origin),
-      task_runner_(base::ThreadTaskRunnerHandle::Get()),
+      task_runner_(std::move(task_runner)),
       tick_clock_(base::DefaultTickClock::GetInstance()),
       last_ipc_send_time_(tick_clock_->NowTicks()),
       ipc_send_pending_(false),
diff --git a/content/renderer/media/render_media_log.h b/content/renderer/media/render_media_log.h
index cc27d5c..e964388 100644
--- a/content/renderer/media/render_media_log.h
+++ b/content/renderer/media/render_media_log.h
@@ -34,7 +34,8 @@
 // It must be constructed on the render thread.
 class CONTENT_EXPORT RenderMediaLog : public media::MediaLog {
  public:
-  explicit RenderMediaLog(const GURL& security_origin);
+  RenderMediaLog(const GURL& security_origin,
+                 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
   ~RenderMediaLog() override;
 
   // MediaLog implementation.
diff --git a/content/renderer/media/render_media_log_unittest.cc b/content/renderer/media/render_media_log_unittest.cc
index d96e5e490..1a47e85 100644
--- a/content/renderer/media/render_media_log_unittest.cc
+++ b/content/renderer/media/render_media_log_unittest.cc
@@ -12,13 +12,15 @@
 #include "content/public/test/mock_render_thread.h"
 #include "content/renderer/media/render_media_log.h"
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/WebKit/public/platform/scheduler/test/renderer_scheduler_test_support.h"
 
 namespace content {
 
 class RenderMediaLogTest : public testing::Test {
  public:
   RenderMediaLogTest()
-      : log_(GURL("http://foo.com")),
+      : log_(GURL("http://foo.com"),
+             blink::scheduler::GetSingleThreadTaskRunnerForTesting()),
         task_runner_(new base::TestMockTimeTaskRunner()) {
     log_.SetTickClockForTesting(&tick_clock_);
     log_.SetTaskRunnerForTesting(task_runner_);
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
index 1dfa7eb..683d97a8 100644
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
@@ -792,8 +792,6 @@
 
   AddFilter((new ServiceWorkerContextMessageFilter())->GetFilter());
 
-// Register exported services:
-
 #if defined(USE_AURA)
   if (IsRunningWithMus())
     CreateRenderWidgetWindowTreeClientFactory(GetServiceManagerConnection());
@@ -1460,7 +1458,7 @@
           gpu_channel_host, GetGpuMemoryBufferManager(), limits,
           support_locking, support_gles2_interface, support_raster_interface,
           support_oop_rasterization, ui::command_buffer_metrics::MEDIA_CONTEXT,
-          kGpuStreamIdDefault, kGpuStreamPriorityDefault);
+          kGpuStreamIdMedia, kGpuStreamPriorityMedia);
   auto result = media_context_provider->BindToCurrentThread();
   if (result != gpu::ContextResult::kSuccess)
     return nullptr;
@@ -2158,6 +2156,12 @@
   return gpu_->GetGpuChannel().get();
 }
 
+void RenderThreadImpl::CreateEmbedderRendererService(
+    service_manager::mojom::ServiceRequest service_request) {
+  GetContentClient()->renderer()->CreateRendererService(
+      std::move(service_request));
+}
+
 void RenderThreadImpl::CreateView(mojom::CreateViewParamsPtr params) {
   CompositorDependencies* compositor_deps = this;
   is_scroll_animator_enabled_ = params->web_preferences.enable_scroll_animator;
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index 4c762f4c..f23be03 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -580,6 +580,8 @@
   void OnGetAccessibilityTree();
 
   // mojom::Renderer:
+  void CreateEmbedderRendererService(
+      service_manager::mojom::ServiceRequest service_request) override;
   void CreateView(mojom::CreateViewParamsPtr params) override;
   void CreateFrame(mojom::CreateFrameParamsPtr params) override;
   void SetUpEmbeddedWorkerChannelForServiceWorker(
diff --git a/content/renderer/render_view_browsertest.cc b/content/renderer/render_view_browsertest.cc
index d8b4686..f0c1433 100644
--- a/content/renderer/render_view_browsertest.cc
+++ b/content/renderer/render_view_browsertest.cc
@@ -2170,8 +2170,6 @@
 TEST_F(RenderViewImplTest, PreferredSizeZoomed) {
   LoadHTML("<body style='margin:0;'><div style='display:inline-block; "
            "width:400px; height:400px;'/></body>");
-  view()->webview()->MainFrame()->ToWebLocalFrame()->SetCanHaveScrollbars(
-      false);
   EnablePreferredSizeMode();
 
   gfx::Size size = GetPreferredSize();
@@ -2186,8 +2184,6 @@
   DoSetUp();
   LoadHTML("<body style='margin:0;'><div style='display:inline-block; "
            "width:400px; height:400px;'/></body>");
-  view()->webview()->MainFrame()->ToWebLocalFrame()->SetCanHaveScrollbars(
-      false);
   EnablePreferredSizeMode();
 
   gfx::Size size = GetPreferredSize();
diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn
index 79a568a..4e0f218025 100644
--- a/content/shell/BUILD.gn
+++ b/content/shell/BUILD.gn
@@ -593,6 +593,10 @@
       # Set rpath to find our own libfreetype even in a non-component build.
       configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
     }
+
+    if (use_aura) {
+      data_deps += [ "//services/ui" ]
+    }
   }
 
   if (is_fuchsia) {
diff --git a/content/shell/browser/layout_test/layout_test_content_browser_client.cc b/content/shell/browser/layout_test/layout_test_content_browser_client.cc
index 9f0c4c8..ef9e559 100644
--- a/content/shell/browser/layout_test/layout_test_content_browser_client.cc
+++ b/content/shell/browser/layout_test/layout_test_content_browser_client.cc
@@ -71,8 +71,9 @@
 }
 
 void LayoutTestContentBrowserClient::RenderProcessWillLaunch(
-    RenderProcessHost* host) {
-  ShellContentBrowserClient::RenderProcessWillLaunch(host);
+    RenderProcessHost* host,
+    service_manager::mojom::ServiceRequest* service_request) {
+  ShellContentBrowserClient::RenderProcessWillLaunch(host, service_request);
 
   StoragePartition* partition =
       BrowserContext::GetDefaultStoragePartition(browser_context());
diff --git a/content/shell/browser/layout_test/layout_test_content_browser_client.h b/content/shell/browser/layout_test/layout_test_content_browser_client.h
index f03fb4fc..ce7b61d 100644
--- a/content/shell/browser/layout_test/layout_test_content_browser_client.h
+++ b/content/shell/browser/layout_test/layout_test_content_browser_client.h
@@ -27,7 +27,9 @@
   LayoutTestNotificationManager* GetLayoutTestNotificationManager();
 
   // ContentBrowserClient overrides.
-  void RenderProcessWillLaunch(RenderProcessHost* host) override;
+  void RenderProcessWillLaunch(
+      RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) override;
   void ExposeInterfacesToRenderer(
       service_manager::BinderRegistry* registry,
       blink::AssociatedInterfaceRegistry* associated_registry,
diff --git a/content/shell/browser/layout_test/layout_test_url_request_context_getter.cc b/content/shell/browser/layout_test/layout_test_url_request_context_getter.cc
index dffc3ba..8968db0d 100644
--- a/content/shell/browser/layout_test/layout_test_url_request_context_getter.cc
+++ b/content/shell/browser/layout_test/layout_test_url_request_context_getter.cc
@@ -14,7 +14,7 @@
 #include "content/shell/browser/shell_network_delegate.h"
 #include "content/shell/common/layout_test/layout_test_switches.h"
 #include "net/cert/cert_verifier.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 namespace content {
 
diff --git a/content/shell/browser/shell_url_request_context_getter.cc b/content/shell/browser/shell_url_request_context_getter.cc
index f8463618..6880472 100644
--- a/content/shell/browser/shell_url_request_context_getter.cc
+++ b/content/shell/browser/shell_url_request_context_getter.cc
@@ -32,8 +32,8 @@
 #include "net/dns/host_resolver.h"
 #include "net/dns/mapped_host_resolver.h"
 #include "net/http/http_network_session.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/reporting/reporting_feature.h"
 #include "net/reporting/reporting_policy.h"
 #include "net/reporting/reporting_service.h"
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
index a41393f..b6ca9b5a 100644
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
@@ -960,9 +960,6 @@
     ]
   }
 
-  if (is_win || is_linux || is_android) {
-  }
-
   if (is_win) {
     sources += [ "../browser/accessibility/accessibility_win_browsertest.cc" ]
 
@@ -1123,6 +1120,7 @@
       "//ui/touch_selection:test_support",
       "//ui/touch_selection:touch_selection",
     ]
+    data_deps += [ "//services/ui" ]
   } else {
     sources -= [
       "../browser/accessibility/touch_accessibility_aura_browsertest.cc",
@@ -1308,7 +1306,6 @@
     "../browser/loader/resource_buffer_unittest.cc",
     "../browser/loader/resource_dispatcher_host_unittest.cc",
     "../browser/loader/resource_loader_unittest.cc",
-    "../browser/loader/resource_scheduler_unittest.cc",
     "../browser/loader/temporary_file_stream_unittest.cc",
     "../browser/loader/test_resource_handler.cc",
     "../browser/loader/test_resource_handler.h",
@@ -1522,6 +1519,7 @@
     "../network/network_context_unittest.cc",
     "../network/network_service_unittest.cc",
     "../network/proxy_resolver_factory_mojo_unittest.cc",
+    "../network/resource_scheduler_unittest.cc",
     "../network/restricted_cookie_manager_unittest.cc",
     "../network/throttling/throttling_controller_unittest.cc",
     "../network/upload_progress_tracker_unittest.cc",
@@ -1711,6 +1709,7 @@
     "//services/file:lib",
     "//services/file/public/interfaces",
     "//services/metrics/public/interfaces",
+    "//services/network:test_support",
     "//services/network/public/cpp",
     "//services/network/public/interfaces:interfaces",
     "//services/proxy_resolver/:lib",
@@ -2000,6 +1999,7 @@
       "//ui/aura_extra",
       "//ui/wm",
     ]
+    data_deps += [ "//services/ui" ]
   } else {
     sources -= [
       "../browser/renderer_host/render_widget_host_view_aura_unittest.cc",
diff --git a/content/test/data/manifest/dynamic-manifest.html b/content/test/data/manifest/dynamic-manifest.html
index 417bd8a..2b37f1e 100644
--- a/content/test/data/manifest/dynamic-manifest.html
+++ b/content/test/data/manifest/dynamic-manifest.html
@@ -4,18 +4,5 @@
 </head>
 <body>
 </body>
-<script>
-  function setManifestTo(url) {
-    clearManifest();
-
-    var link = document.createElement('link');
-    link.rel = 'manifest';
-    link.href = url;
-    document.head.appendChild(link);
-  }
-  function clearManifest() {
-    // Clear everything.
-    document.head.innerHTML = '';
-  }
-</script>
+<script src="./script.js"></script>
 </html>
diff --git a/content/test/data/manifest/sandboxed.html b/content/test/data/manifest/sandboxed.html
new file mode 100644
index 0000000..2b37f1e
--- /dev/null
+++ b/content/test/data/manifest/sandboxed.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<html>
+<head>
+</head>
+<body>
+</body>
+<script src="./script.js"></script>
+</html>
diff --git a/content/test/data/manifest/sandboxed.html.mock-http-headers b/content/test/data/manifest/sandboxed.html.mock-http-headers
new file mode 100644
index 0000000..4f8228a
--- /dev/null
+++ b/content/test/data/manifest/sandboxed.html.mock-http-headers
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OK
+Content-Type: text/html
+Content-Security-Policy: sandbox allow-scripts
diff --git a/content/test/data/manifest/script.js b/content/test/data/manifest/script.js
new file mode 100644
index 0000000..5cd5031
--- /dev/null
+++ b/content/test/data/manifest/script.js
@@ -0,0 +1,16 @@
+// 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.
+
+function setManifestTo(url) {
+  clearManifest();
+
+  var link = document.createElement('link');
+  link.rel = 'manifest';
+  link.href = url;
+  document.head.appendChild(link);
+}
+function clearManifest() {
+  // Clear everything.
+  document.head.innerHTML = '';
+}
diff --git a/content/test/gpu/gpu_tests/gpu_test_expectations.py b/content/test/gpu/gpu_tests/gpu_test_expectations.py
index 2dc995a8..d0ba9cd7 100644
--- a/content/test/gpu/gpu_tests/gpu_test_expectations.py
+++ b/content/test/gpu/gpu_tests/gpu_test_expectations.py
@@ -79,6 +79,8 @@
   def __init__(self, url_prefixes=None, is_asan=False):
     super(GpuTestExpectations, self).__init__(
       url_prefixes=url_prefixes, is_asan=is_asan)
+    self._cached_browser = None
+    self._cached_system_info = None
 
   def CreateExpectation(self, expectation, pattern, conditions=None,
                         bug=None):
@@ -105,8 +107,18 @@
     gpu_matches = True
     angle_renderer = ''
 
-    if browser.supports_system_info:
-      gpu_info = browser.GetSystemInfo().gpu
+    # Fetching the browser's system info is somewhat expensive. Avoid
+    # doing it a lot.
+    if browser != self._cached_browser:
+      self._cached_browser = browser
+      self._cached_system_info = None
+
+    if self._cached_system_info is None:
+      if browser.supports_system_info:
+        self._cached_system_info = browser.GetSystemInfo()
+
+    if self._cached_system_info is not None:
+      gpu_info = self._cached_system_info.gpu
       gpu_vendor = self._GetGpuVendorString(gpu_info)
       gpu_device_id = self._GetGpuDeviceId(gpu_info)
       gpu_matches = ((not expectation.gpu_conditions and
diff --git a/content/test/proxy_service_mojo_unittest.cc b/content/test/proxy_service_mojo_unittest.cc
index d055fcc..b20b51c 100644
--- a/content/test/proxy_service_mojo_unittest.cc
+++ b/content/test/proxy_service_mojo_unittest.cc
@@ -22,10 +22,10 @@
 #include "net/log/net_log_with_source.h"
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/mock_pac_file_fetcher.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/mock_pac_file_fetcher.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
diff --git a/content/test/url_request_context_builder_mojo_unittest.cc b/content/test/url_request_context_builder_mojo_unittest.cc
index d902e60..a4167947 100644
--- a/content/test/url_request_context_builder_mojo_unittest.cc
+++ b/content/test/url_request_context_builder_mojo_unittest.cc
@@ -9,8 +9,8 @@
 #include "base/test/scoped_task_environment.h"
 #include "content/test/test_mojo_proxy_resolver_factory.h"
 #include "net/base/host_port_pair.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/embedded_test_server/http_request.h"
 #include "net/test/embedded_test_server/http_response.h"
diff --git a/content/zygote/zygote_linux.cc b/content/zygote/zygote_linux.cc
index 67addc6..0f67102 100644
--- a/content/zygote/zygote_linux.cc
+++ b/content/zygote/zygote_linux.cc
@@ -467,7 +467,6 @@
     if (real_pid <= 0) {
       LOG(FATAL) << "Invalid pid from parent zygote";
     }
-#if defined(OS_LINUX)
     // Sandboxed processes need to send the global, non-namespaced PID when
     // setting up an IPC channel to their parent.
     IPC::Channel::SetGlobalPid(real_pid);
@@ -476,7 +475,6 @@
     base::trace_event::TraceLog::GetInstance()->SetProcessID(
         static_cast<int>(real_pid));
     base::InitUniqueIdForProcessInPidNamespace(real_pid);
-#endif
     return 0;
   }
 
diff --git a/device/test/DEPS b/device/test/DEPS
index ad987c5..925de5e9 100644
--- a/device/test/DEPS
+++ b/device/test/DEPS
@@ -1,7 +1,7 @@
 include_rules = [
   "+mojo/edk/embedder",
   "+net/base",
-  "+net/proxy",
+  "+net/proxy_resolution",
   "+net/traffic_annotation",
   "+net/url_request",
 ]
diff --git a/device/test/usb_test_gadget_impl.cc b/device/test/usb_test_gadget_impl.cc
index f7225d65..2a09e539 100644
--- a/device/test/usb_test_gadget_impl.cc
+++ b/device/test/usb_test_gadget_impl.cc
@@ -33,7 +33,7 @@
 #include "device/usb/usb_device_handle.h"
 #include "device/usb/usb_service.h"
 #include "net/base/escape.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_fetcher_delegate.h"
diff --git a/device/u2f/u2f_hid_discovery_unittest.cc b/device/u2f/u2f_hid_discovery_unittest.cc
index 4c90dd2..81fd444e 100644
--- a/device/u2f/u2f_hid_discovery_unittest.cc
+++ b/device/u2f/u2f_hid_discovery_unittest.cc
@@ -67,7 +67,8 @@
     connector_ = service_manager::Connector::Create(&request);
     service_manager::Connector::TestApi test_api(connector_.get());
     test_api.OverrideBinderForTesting(
-        device::mojom::kServiceName, device::mojom::HidManager::Name_,
+        service_manager::Identity(device::mojom::kServiceName),
+        device::mojom::HidManager::Name_,
         base::Bind(&FakeHidManager::AddBinding,
                    base::Unretained(fake_hid_manager_.get())));
   }
diff --git a/device/vr/orientation/orientation_device.cc b/device/vr/orientation/orientation_device.cc
index 3913108..aa3575bb 100644
--- a/device/vr/orientation/orientation_device.cc
+++ b/device/vr/orientation/orientation_device.cc
@@ -65,6 +65,7 @@
 VROrientationDevice::~VROrientationDevice() = default;
 
 void VROrientationDevice::SensorReady(
+    device::mojom::SensorCreationResult,
     device::mojom::SensorInitParamsPtr params) {
   if (!params) {
     // This means that there are no orientation sensors on this device.
@@ -208,4 +209,4 @@
   return true;
 };
 
-}  // namespace device
\ No newline at end of file
+}  // namespace device
diff --git a/device/vr/orientation/orientation_device.h b/device/vr/orientation/orientation_device.h
index 8090c48d..b6b8b9fd 100644
--- a/device/vr/orientation/orientation_device.h
+++ b/device/vr/orientation/orientation_device.h
@@ -43,7 +43,8 @@
   void SensorReadingChanged() override {}
 
   // Sensor event reaction functions.
-  void SensorReady(device::mojom::SensorInitParamsPtr params);
+  void SensorReady(device::mojom::SensorCreationResult result,
+                   device::mojom::SensorInitParamsPtr params);
   void HandleSensorError();
   void OnSensorAddConfiguration(bool success);
 
diff --git a/device/vr/orientation/orientation_device_provider_unittest.cc b/device/vr/orientation/orientation_device_provider_unittest.cc
index 1c7a30d..3e72fdc 100644
--- a/device/vr/orientation/orientation_device_provider_unittest.cc
+++ b/device/vr/orientation/orientation_device_provider_unittest.cc
@@ -44,7 +44,8 @@
     connector_ = service_manager::Connector::Create(&request);
     service_manager::Connector::TestApi test_api(connector_.get());
     test_api.OverrideBinderForTesting(
-        mojom::kServiceName, mojom::SensorProvider::Name_,
+        service_manager::Identity(mojom::kServiceName),
+        mojom::SensorProvider::Name_,
         base::BindRepeating(&FakeSensorProvider::Bind,
                             base::Unretained(fake_sensor_provider_.get())));
 
diff --git a/device/vr/test/fake_sensor_provider.cc b/device/vr/test/fake_sensor_provider.cc
index d9b82f92..626dd4e 100644
--- a/device/vr/test/fake_sensor_provider.cc
+++ b/device/vr/test/fake_sensor_provider.cc
@@ -17,8 +17,10 @@
 }
 
 FakeSensorProvider::~FakeSensorProvider() {
-  if (callback_)
-    std::move(callback_).Run(nullptr);
+  if (callback_) {
+    std::move(callback_).Run(mojom::SensorCreationResult::ERROR_NOT_AVAILABLE,
+                             nullptr);
+  }
 }
 
 void FakeSensorProvider::Bind(mojo::ScopedMessagePipeHandle handle) {
@@ -31,7 +33,8 @@
 }
 
 void FakeSensorProvider::CallCallback(mojom::SensorInitParamsPtr param) {
-  std::move(callback_).Run(std::move(param));
+  std::move(callback_).Run(mojom::SensorCreationResult::SUCCESS,
+                           std::move(param));
 }
 
-}  // namespace device
\ No newline at end of file
+}  // namespace device
diff --git a/docs/README.md b/docs/README.md
index 47f8196..7f800e44 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -210,8 +210,6 @@
 *   [Running Layout Tests on Linux](layout_tests_linux.md) - Linux-specific
     instructions for running layout tests.
 *   [Linux Sysroot Images](linux_sysroot.md) - How builds use libraries on Linux
-*   [`msttcorefonts` on Mandriva](mandriva_msttcorefonts.md) - Getting fonts
-    needed to build Chrome that are not available for Mandriva
 *   [Linux Hardware Video Decoding](linux_hw_video_decode.md) - Enabling
     hardware video decode codepaths on Linux
 
diff --git a/docs/linux_build_instructions.md b/docs/linux_build_instructions.md
index 1e08792e..713c951 100644
--- a/docs/linux_build_instructions.md
+++ b/docs/linux_build_instructions.md
@@ -398,22 +398,6 @@
 
 You can just run `emerge www-client/chromium`.
 
-### Mandriva
-
-Instead of running `build/install-build-deps.sh`, run:
-
-```shell
-urpmi lib64fontconfig-devel lib64alsa2-devel lib64dbus-1-devel \
-lib64freetype6-devel lib64atk1.0-devel lib64gtk+2.0_0-devel \
-lib64pango1.0-devel lib64cairo-devel lib64nss-devel lib64nspr-devel g++ python \
-perl bison flex subversion gperf
-```
-
-* `msttcorefonts` are not available, you will need to build your own (see
-  instructions, not hard to do, see
-  [mandriva\_msttcorefonts.md](mandriva_msttcorefonts.md)) or use `drakfont` to
-  import the fonts from a Windows installation.
-
 ### OpenSUSE
 
 Use `zypper` command to install dependencies:
diff --git a/docs/mandriva_msttcorefonts.md b/docs/mandriva_msttcorefonts.md
deleted file mode 100644
index fad2633..0000000
--- a/docs/mandriva_msttcorefonts.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# `msttcorefonts` on Mandriva
-
-The `msttcorefonts` are needed to build Chrome but are not available for
-Mandriva. Building your own is not hard though and only takes about 2 minutes to
-set up and complete
-
-    urpmi rpm-build cabextract
-
-Download this script, make it executable and run it:
-http://wiki.mandriva.com/en/uploads/3/3a/Rpmsetup.sh
-
-It will create a directory `~/rpm` and some hidden files in your home directory.
-
-open the file `~/.rpmmacros` and comment out the following lines by putting a #
-in front of them, eg like this (because most likely you won't have a gpg key set
-up and creating the package will fail if you leave these lines):
-
-    #%_signature             gpg_
-
-    #%_gpg_name              Mandrivalinux_
-
-    #%_gpg_path              ~/.gnupg_
-
-download the following file
-http://corefonts.sourceforge.net/msttcorefonts-2.0-1.spec and save it to
-`~/rpm/SPECS`
-
-    cd ~/rpm/SPECS
-    rpmbuild -bb msttcorefonts-2.0-1.spec
-
-the rpm will be build and be put in `~/rpm/RPMS/noarch` ready to install
diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn
index 7c8904dc..7a106d31 100644
--- a/extensions/browser/BUILD.gn
+++ b/extensions/browser/BUILD.gn
@@ -113,6 +113,10 @@
     "events/lazy_event_dispatcher.h",
     "extension_api_frame_id_map.cc",
     "extension_api_frame_id_map.h",
+    "extension_creator.cc",
+    "extension_creator.h",
+    "extension_creator_filter.cc",
+    "extension_creator_filter.h",
     "extension_dialog_auto_confirm.cc",
     "extension_dialog_auto_confirm.h",
     "extension_error.cc",
@@ -346,6 +350,7 @@
     "//components/cast_certificate",
     "//components/cast_channel",
     "//components/crx_file",
+    "//components/crx_file:crx_creator",
     "//components/guest_view/browser",
     "//components/keyed_service/content",
     "//components/keyed_service/core",
@@ -533,6 +538,7 @@
     "event_listener_map_unittest.cc",
     "event_router_unittest.cc",
     "extension_api_frame_id_map_unittest.cc",
+    "extension_creator_filter_unittest.cc",
     "extension_icon_image_unittest.cc",
     "extension_pref_value_map_unittest.cc",
     "extension_registrar_unittest.cc",
diff --git a/chrome/browser/extensions/extension_creator.cc b/extensions/browser/extension_creator.cc
similarity index 87%
rename from chrome/browser/extensions/extension_creator.cc
rename to extensions/browser/extension_creator.cc
index c0064fa..86f0535 100644
--- a/chrome/browser/extensions/extension_creator.cc
+++ b/extensions/browser/extension_creator.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 "chrome/browser/extensions/extension_creator.h"
+#include "extensions/browser/extension_creator.h"
 
 #include <stddef.h>
 
@@ -15,25 +15,24 @@
 #include "base/files/scoped_file.h"
 #include "base/files/scoped_temp_dir.h"
 #include "base/strings/string_util.h"
-#include "chrome/browser/extensions/extension_creator_filter.h"
-#include "chrome/grit/generated_resources.h"
 #include "components/crx_file/crx_creator.h"
 #include "components/crx_file/id_util.h"
 #include "crypto/rsa_private_key.h"
 #include "crypto/signature_creator.h"
+#include "extensions/browser/extension_creator_filter.h"
 #include "extensions/common/extension.h"
 #include "extensions/common/file_util.h"
+#include "extensions/strings/grit/extensions_strings.h"
 #include "third_party/zlib/google/zip.h"
 #include "ui/base/l10n/l10n_util.h"
 
 namespace {
-  const int kRSAKeySize = 2048;
+const int kRSAKeySize = 2048;
 };
 
 namespace extensions {
 
-ExtensionCreator::ExtensionCreator() : error_type_(kOtherError) {
-}
+ExtensionCreator::ExtensionCreator() : error_type_(kOtherError) {}
 
 bool ExtensionCreator::InitializeInput(
     const base::FilePath& extension_dir,
@@ -42,8 +41,7 @@
     const base::FilePath& private_key_output_path,
     int run_flags) {
   // Validate input |extension_dir|.
-  if (extension_dir.value().empty() ||
-      !base::DirectoryExists(extension_dir)) {
+  if (extension_dir.value().empty() || !base::DirectoryExists(extension_dir)) {
     error_message_ =
         l10n_util::GetStringUTF8(IDS_EXTENSION_DIRECTORY_NO_EXISTS);
     return false;
@@ -70,9 +68,8 @@
   if (private_key_path.value().empty() &&
       !private_key_output_path.value().empty() &&
       base::PathExists(private_key_output_path)) {
-      error_message_ =
-          l10n_util::GetStringUTF8(IDS_EXTENSION_PRIVATE_KEY_EXISTS);
-      return false;
+    error_message_ = l10n_util::GetStringUTF8(IDS_EXTENSION_PRIVATE_KEY_EXISTS);
+    return false;
   }
 
   // Check whether crx file already exists. Should be last check, as this is
@@ -98,8 +95,8 @@
   }
 
   std::string public_key;
-  public_key.insert(public_key.begin(),
-                    public_key_bytes.begin(), public_key_bytes.end());
+  public_key.insert(public_key.begin(), public_key_bytes.begin(),
+                    public_key_bytes.end());
 
   std::string extension_id = crx_file::id_util::GenerateId(public_key);
 
@@ -111,11 +108,8 @@
     create_flags |= Extension::REQUIRE_MODERN_MANIFEST_VERSION;
 
   scoped_refptr<Extension> extension(
-      file_util::LoadExtension(extension_dir,
-                               extension_id,
-                               Manifest::INTERNAL,
-                               create_flags,
-                               &error_message_));
+      file_util::LoadExtension(extension_dir, extension_id, Manifest::INTERNAL,
+                               create_flags, &error_message_));
   return !!extension.get();
 }
 
@@ -135,8 +129,7 @@
   }
 
   std::string private_key_bytes;
-  if (!Extension::ParsePEMKeyBytes(private_key_contents,
-       &private_key_bytes)) {
+  if (!Extension::ParsePEMKeyBytes(private_key_contents, &private_key_bytes)) {
     error_message_ =
         l10n_util::GetStringUTF8(IDS_EXTENSION_PRIVATE_KEY_INVALID);
     return NULL;
@@ -173,16 +166,15 @@
     return NULL;
   }
   std::string pem_output;
-  if (!Extension::FormatPEMForFileOutput(private_key, &pem_output,
-       false)) {
+  if (!Extension::FormatPEMForFileOutput(private_key, &pem_output, false)) {
     error_message_ =
         l10n_util::GetStringUTF8(IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_OUTPUT);
     return NULL;
   }
 
   if (!output_private_key_path.empty()) {
-    if (-1 == base::WriteFile(output_private_key_path,
-        pem_output.c_str(), pem_output.size())) {
+    if (-1 == base::WriteFile(output_private_key_path, pem_output.c_str(),
+                              pem_output.size())) {
       error_message_ =
           l10n_util::GetStringUTF8(IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_OUTPUT);
       return NULL;
@@ -198,8 +190,8 @@
   *zip_path = temp_path.Append(FILE_PATH_LITERAL("extension.zip"));
 
   scoped_refptr<ExtensionCreatorFilter> filter = new ExtensionCreatorFilter();
-  const base::Callback<bool(const base::FilePath&)>& filter_cb =
-    base::Bind(&ExtensionCreatorFilter::ShouldPackageFile, filter);
+  const base::RepeatingCallback<bool(const base::FilePath&)>& filter_cb =
+      base::BindRepeating(&ExtensionCreatorFilter::ShouldPackageFile, filter);
   if (!zip::ZipWithFilterCallback(extension_dir, *zip_path, filter_cb)) {
     error_message_ =
         l10n_util::GetStringUTF8(IDS_EXTENSION_FAILED_DURING_PACKAGING);
diff --git a/chrome/browser/extensions/extension_creator.h b/extensions/browser/extension_creator.h
similarity index 95%
rename from chrome/browser/extensions/extension_creator.h
rename to extensions/browser/extension_creator.h
index 7a828534..082d278e 100644
--- a/chrome/browser/extensions/extension_creator.h
+++ b/extensions/browser/extension_creator.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 CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_H_
-#define CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_H_
+#ifndef EXTENSIONS_BROWSER_EXTENSION_CREATOR_H_
+#define EXTENSIONS_BROWSER_EXTENSION_CREATOR_H_
 
 #include <stdint.h>
 
@@ -103,4 +103,4 @@
 
 }  // namespace extensions
 
-#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_H_
+#endif  // EXTENSIONS_BROWSER_EXTENSION_CREATOR_H_
diff --git a/chrome/browser/extensions/extension_creator_filter.cc b/extensions/browser/extension_creator_filter.cc
similarity index 78%
rename from chrome/browser/extensions/extension_creator_filter.cc
rename to extensions/browser/extension_creator_filter.cc
index 85efaa1..f77d2891 100644
--- a/chrome/browser/extensions/extension_creator_filter.cc
+++ b/extensions/browser/extension_creator_filter.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 "chrome/browser/extensions/extension_creator_filter.h"
+#include "extensions/browser/extension_creator_filter.h"
 
 #include <stddef.h>
 
@@ -27,17 +27,13 @@
   }
 
   // The file path that contains one of following special components should be
-  // excluded. See crbug.com/314360 and crbug.com/27840.
+  // excluded. See https://crbug.com/314360 and https://crbug.com/27840.
   const base::FilePath::StringType names_to_exclude[] = {
-    FILE_PATH_LITERAL(".DS_Store"),
-    FILE_PATH_LITERAL(".git"),
-    FILE_PATH_LITERAL(".svn"),
-    FILE_PATH_LITERAL("__MACOSX"),
-    FILE_PATH_LITERAL("desktop.ini"),
-    FILE_PATH_LITERAL("Thumbs.db")
-  };
-  std::set<base::FilePath::StringType> names_to_exclude_set(names_to_exclude,
-      names_to_exclude + arraysize(names_to_exclude));
+      FILE_PATH_LITERAL(".DS_Store"),   FILE_PATH_LITERAL(".git"),
+      FILE_PATH_LITERAL(".svn"),        FILE_PATH_LITERAL("__MACOSX"),
+      FILE_PATH_LITERAL("desktop.ini"), FILE_PATH_LITERAL("Thumbs.db")};
+  std::set<base::FilePath::StringType> names_to_exclude_set(
+      names_to_exclude, names_to_exclude + arraysize(names_to_exclude));
   std::vector<base::FilePath::StringType> components;
   file_path.GetComponents(&components);
   for (size_t i = 0; i < components.size(); i++) {
diff --git a/chrome/browser/extensions/extension_creator_filter.h b/extensions/browser/extension_creator_filter.h
similarity index 72%
rename from chrome/browser/extensions/extension_creator_filter.h
rename to extensions/browser/extension_creator_filter.h
index 80c5a4e..25b8e1b 100644
--- a/chrome/browser/extensions/extension_creator_filter.h
+++ b/extensions/browser/extension_creator_filter.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 CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_FILTER_H_
-#define CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_FILTER_H_
+#ifndef EXTENSIONS_BROWSER_EXTENSION_CREATOR_FILTER_H_
+#define EXTENSIONS_BROWSER_EXTENSION_CREATOR_FILTER_H_
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
@@ -16,8 +16,7 @@
 
 // Determines which files should be included in a packaged extension.
 // Designed specifically to operate with the callback in chrome/common/zip.
-class ExtensionCreatorFilter
-      : public base::RefCounted<ExtensionCreatorFilter> {
+class ExtensionCreatorFilter : public base::RefCounted<ExtensionCreatorFilter> {
  public:
   ExtensionCreatorFilter() {}
 
@@ -31,6 +30,6 @@
   DISALLOW_COPY_AND_ASSIGN(ExtensionCreatorFilter);
 };
 
-}  // namespace etensions
+}  // namespace extensions
 
-#endif  // CHROME_BROWSER_EXTENSIONS_EXTENSION_CREATOR_FILTER_H_
+#endif  // EXTENSIONS_BROWSER_EXTENSION_CREATOR_FILTER_H_
diff --git a/chrome/browser/extensions/extension_creator_filter_unittest.cc b/extensions/browser/extension_creator_filter_unittest.cc
similarity index 64%
rename from chrome/browser/extensions/extension_creator_filter_unittest.cc
rename to extensions/browser/extension_creator_filter_unittest.cc
index b3bfe5d9..51578f4 100644
--- a/chrome/browser/extensions/extension_creator_filter_unittest.cc
+++ b/extensions/browser/extension_creator_filter_unittest.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 "chrome/browser/extensions/extension_creator_filter.h"
+#include "extensions/browser/extension_creator_filter.h"
 
 #include <stddef.h>
 
@@ -66,18 +66,18 @@
 
 TEST_F(ExtensionCreatorFilterTest, NormalCases) {
   const struct UnaryBooleanTestData cases[] = {
-    { FILE_PATH_LITERAL("foo"), true },
-    { FILE_PATH_LITERAL(".foo"), false },
-    { FILE_PATH_LITERAL("~foo"), true },
-    { FILE_PATH_LITERAL("foo~"), false },
-    { FILE_PATH_LITERAL("#foo"), true },
-    { FILE_PATH_LITERAL("foo#"), true },
-    { FILE_PATH_LITERAL("#foo#"), false },
-    { FILE_PATH_LITERAL(".svn"), false },
-    { FILE_PATH_LITERAL("__MACOSX"), false },
-    { FILE_PATH_LITERAL(".DS_Store"), false },
-    { FILE_PATH_LITERAL("desktop.ini"), false },
-    { FILE_PATH_LITERAL("Thumbs.db"), false },
+      {FILE_PATH_LITERAL("foo"), true},
+      {FILE_PATH_LITERAL(".foo"), false},
+      {FILE_PATH_LITERAL("~foo"), true},
+      {FILE_PATH_LITERAL("foo~"), false},
+      {FILE_PATH_LITERAL("#foo"), true},
+      {FILE_PATH_LITERAL("foo#"), true},
+      {FILE_PATH_LITERAL("#foo#"), false},
+      {FILE_PATH_LITERAL(".svn"), false},
+      {FILE_PATH_LITERAL("__MACOSX"), false},
+      {FILE_PATH_LITERAL(".DS_Store"), false},
+      {FILE_PATH_LITERAL("desktop.ini"), false},
+      {FILE_PATH_LITERAL("Thumbs.db"), false},
   };
 
   for (size_t i = 0; i < arraysize(cases); ++i) {
@@ -85,8 +85,8 @@
     base::FilePath test_file(CreateEmptyTestFile(input));
     bool observed = filter_->ShouldPackageFile(test_file);
 
-    EXPECT_EQ(cases[i].expected, observed) <<
-      "i: " << i << ", input: " << test_file.value();
+    EXPECT_EQ(cases[i].expected, observed)
+        << "i: " << i << ", input: " << test_file.value();
   }
 }
 
@@ -100,19 +100,19 @@
 // "__MACOSX".
 TEST_F(ExtensionCreatorFilterTest, IgnoreFilesInSpecialDir) {
   const struct StringStringWithBooleanTestData cases[] = {
-    { FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL(".git"), false },
-    { FILE_PATH_LITERAL("goo"), FILE_PATH_LITERAL(".svn"), false },
-    { FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("__MACOSX"), false },
-    { FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("foo"), true },
-    { FILE_PATH_LITERAL("index.js"), FILE_PATH_LITERAL("scripts"), true },
+      {FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL(".git"), false},
+      {FILE_PATH_LITERAL("goo"), FILE_PATH_LITERAL(".svn"), false},
+      {FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("__MACOSX"), false},
+      {FILE_PATH_LITERAL("foo"), FILE_PATH_LITERAL("foo"), true},
+      {FILE_PATH_LITERAL("index.js"), FILE_PATH_LITERAL("scripts"), true},
   };
 
   for (size_t i = 0; i < arraysize(cases); ++i) {
-    base::FilePath test_file(CreateEmptyTestFileInDir(cases[i].file_name,
-                                                      cases[i].dir));
+    base::FilePath test_file(
+        CreateEmptyTestFileInDir(cases[i].file_name, cases[i].dir));
     bool observed = filter_->ShouldPackageFile(test_file);
-    EXPECT_EQ(cases[i].expected, observed) <<
-      "i: " << i << ", input: " << test_file.value();
+    EXPECT_EQ(cases[i].expected, observed)
+        << "i: " << i << ", input: " << test_file.value();
   }
 }
 
@@ -125,13 +125,12 @@
 
 TEST_F(ExtensionCreatorFilterTest, WindowsHiddenFiles) {
   const struct StringBooleanWithBooleanTestData cases[] = {
-    { FILE_PATH_LITERAL("a-normal-file"), false, true },
-    { FILE_PATH_LITERAL(".a-dot-file"), false, false },
-    { FILE_PATH_LITERAL(".a-dot-file-that-we-have-set-to-hidden"),
-      true, false },
-    { FILE_PATH_LITERAL("a-file-that-we-have-set-to-hidden"), true, false },
-    { FILE_PATH_LITERAL("a-file-that-we-have-not-set-to-hidden"),
-      false, true },
+      {FILE_PATH_LITERAL("a-normal-file"), false, true},
+      {FILE_PATH_LITERAL(".a-dot-file"), false, false},
+      {FILE_PATH_LITERAL(".a-dot-file-that-we-have-set-to-hidden"), true,
+       false},
+      {FILE_PATH_LITERAL("a-file-that-we-have-set-to-hidden"), true, false},
+      {FILE_PATH_LITERAL("a-file-that-we-have-not-set-to-hidden"), false, true},
   };
 
   for (size_t i = 0; i < arraysize(cases); ++i) {
@@ -143,8 +142,8 @@
       SetFileAttributes(test_file.value().c_str(), FILE_ATTRIBUTE_HIDDEN);
     }
     bool observed = filter_->ShouldPackageFile(test_file);
-    EXPECT_EQ(cases[i].expected, observed) <<
-      "i: " << i << ", input: " << test_file.value();
+    EXPECT_EQ(cases[i].expected, observed)
+        << "i: " << i << ", input: " << test_file.value();
   }
 }
 #endif
diff --git a/extensions/shell/browser/shell_content_browser_client.cc b/extensions/shell/browser/shell_content_browser_client.cc
index 5c9a75b4..170a7ff 100644
--- a/extensions/shell/browser/shell_content_browser_client.cc
+++ b/extensions/shell/browser/shell_content_browser_client.cc
@@ -93,7 +93,8 @@
 }
 
 void ShellContentBrowserClient::RenderProcessWillLaunch(
-    content::RenderProcessHost* host) {
+    content::RenderProcessHost* host,
+    service_manager::mojom::ServiceRequest* service_request) {
   int render_process_id = host->GetID();
   BrowserContext* browser_context = browser_main_parts_->browser_context();
   host->AddFilter(
diff --git a/extensions/shell/browser/shell_content_browser_client.h b/extensions/shell/browser/shell_content_browser_client.h
index a0ec248..3d21ef6 100644
--- a/extensions/shell/browser/shell_content_browser_client.h
+++ b/extensions/shell/browser/shell_content_browser_client.h
@@ -40,7 +40,9 @@
   // content::ContentBrowserClient overrides.
   content::BrowserMainParts* CreateBrowserMainParts(
       const content::MainFunctionParams& parameters) override;
-  void RenderProcessWillLaunch(content::RenderProcessHost* host) override;
+  void RenderProcessWillLaunch(
+      content::RenderProcessHost* host,
+      service_manager::mojom::ServiceRequest* service_request) override;
   bool ShouldUseProcessPerSite(content::BrowserContext* browser_context,
                                const GURL& effective_url) override;
   void GetQuotaSettings(
diff --git a/extensions/strings/extensions_strings.grd b/extensions/strings/extensions_strings.grd
index 44b64eb..a2eb1920 100644
--- a/extensions/strings/extensions_strings.grd
+++ b/extensions/strings/extensions_strings.grd
@@ -142,9 +142,24 @@
       <!-- Document Scan API strings. Please keep alphabetized. -->
 
       <!-- General extensions strings. Please keep alphabetized. -->
+      <message name="IDS_EXTENSION_CANT_GET_ABSOLUTE_PATH" desc="Warning displayed in pack dialog when the absolute path to the extension directory can not be found.">
+        Can't find the absolute path to the directory to pack.
+      </message>
       <message name="IDS_EXTENSION_CONTAINS_PRIVATE_KEY" desc="Error message when an extension includes a file containing a private key.">
         This extension includes the key file '<ph name="KEY_PATH">$1<ex>relative/path/to/file.pem</ex></ph>'. You probably don't want to do that.
       </message>
+      <message name="IDS_EXTENSION_CRX_EXISTS" desc="Warning displayed in pack dialog when the crx file already exists.">
+        There is already a CRX file present with this name.
+      </message>
+      <message name="IDS_EXTENSION_DIRECTORY_NO_EXISTS" desc="Warning displayed in pack dialog when the extension directory does not exist.">
+        Input directory must exist.
+      </message>
+      <message name="IDS_EXTENSION_ERROR_WHILE_SIGNING" desc="Warning displayed in pack dialog when occurred an error while signing an extension.">
+        Error while signing extension.
+      </message>
+      <message name="IDS_EXTENSION_FAILED_DURING_PACKAGING" desc="Warning displayed in pack dialog when was not possible to create a zip file.">
+        Failed to create temporary zip file during packaging.
+      </message>
       <message name="IDS_EXTENSION_LOAD_ABOUT_PAGE_FAILED" desc="">
         Could not load about page '<ph name="ABOUT_PAGE">$1<ex>page.html</ex></ph>'.
       </message>
@@ -181,10 +196,39 @@
       <message name="IDS_EXTENSION_PACKAGE_UNZIP_ERROR" desc="Message for when an error occurs while unzipping a packaged extension or app.">
         Could not unzip extension
       </message>
-
+      <message name="IDS_EXTENSION_PRIVATE_KEY_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension already exists.">
+        A private key for specified extension already exists. Reuse that key or delete it first.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_READ" desc="Warning displayed in pack dialog when was not possible to read the private key of the extension.">
+        Failed to read private key.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a private key failed.">
+        Failed to export private key.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_GENERATE" desc="Warning displayed in pack dialog when generating a random RSA private key failed.">
+        Yikes! Failed to generate random RSA private key.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_FAILED_TO_OUTPUT" desc="Warning displayed in pack dialog when outputing a private key failed.">
+        Failed to output private key.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID" desc="Warning displayed in pack dialog when the private key of extensions is invalid.">
+        Invalid private key.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_NO_EXISTS" desc="Warning displayed in pack dialog when the private key for the extension does not exist.">
+        Input value for private key must exist.
+      </message>
+      <message name="IDS_EXTENSION_PRIVATE_KEY_INVALID_PATH" desc="Warning displayed in pack dialog when the private key must be a valid path.">
+        Input value for private key must be a valid path.
+      </message>
+      <message name="IDS_EXTENSION_PUBLIC_KEY_FAILED_TO_EXPORT" desc="Warning displayed in pack dialog when exporting a public key failed.">
+        Failed to export public key.
+      </message>
       <message name="IDS_LOAD_STATE_PARAMETER_EXTENSION" desc="Parameter to IDS_LOAD_STATE_WAITING_FOR_DELEGATE when we are waiting for an extension. The variable is the extension name.">
         extension <ph name="EXTENSION_NAME">$1<ex>Adblock</ex></ph>
       </message>
+      <message name="IDS_EXTENSION_SHARING_VIOLATION" desc="Warning displayed in pack dialog when a sharing violation is found during creation of the crx.">
+        Failed to replace crx file. Check to see if the file is in use.
+      </message>
 
       <!-- Policy strings. Please keep alphabetized. -->
       <message name="IDS_EXTENSION_CANT_INSTALL_POLICY_BLOCKED" desc="Error message when a user tries to install an extension that is blocked by administrator policy.">
diff --git a/extensions/strings/extensions_strings_am.xtb b/extensions/strings/extensions_strings_am.xtb
index cc95685..035d8e7 100644
--- a/extensions/strings/extensions_strings_am.xtb
+++ b/extensions/strings/extensions_strings_am.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="am">
 <translation id="1135328998467923690">ጥቅል ልክ የሆነ አይደለም፦ «<ph name="ERROR_CODE" />»።</translation>
 <translation id="1140871961407805696">አካባቢውን የሚመለከት</translation>
+<translation id="1196338895211115272">ግላዊ ቁልፍን መላክ አልተሳካም።</translation>
 <translation id="1256619696651732561">ቅጥያ ገልጦ ማሳያ ተንታኝ</translation>
+<translation id="1420684932347524586">አይይ! RSA የግል ኩልፍ በዘፈቀደ ለመፍጠር አልተቻለም።</translation>
 <translation id="1445572445564823378">ይህ ቅጥያ <ph name="PRODUCT_NAME" /> እያንቀራፈፈው ነው። የ<ph name="PRODUCT_NAME" /> አፈጻጸም ወደነበረበት ለመመለስ ቅጥያውን ማሰናከል አለብዎት።</translation>
 <translation id="1468038450257740950">WebGL አይደገፍም።</translation>
 <translation id="149347756975725155">የቅጥያ አዶ «<ph name="ICON" />»ን መጫን አልተቻለም።</translation>
 <translation id="1803557475693955505">የጀርባ ገጽ «<ph name="BACKGROUND_PAGE" />»ን መጫን አልተቻለም።</translation>
 <translation id="2159915644201199628">የዚህ ምስል ስውሩን መግለጥ አልተቻለም፦ «<ph name="IMAGE_NAME" />»</translation>
 <translation id="2350172092385603347">አካባቢያዊነት ተጠቅሟል ነገር ግን በማኒፌስት ወስጥ default_locale አልተገለጸም።</translation>
+<translation id="2576842806987913196">ይህን ስም የያዘ የCRX ፋይል አስቀድሞ ነበር።</translation>
 <translation id="2753617847762399167">ህገወጥ ዱካ (በ«..» ፍጹማዊ ወይም አንጻራዊ)፦ «<ph name="IMAGE_PATH" />»</translation>
 <translation id="27822970480436970">ለውጡ ከሌላ ቅጥያ ጋር ስለተጋጨ ይህ ቅጥያ የአውታረ መረብ ጥያቄ መቀየር አልተሳካለትም።</translation>
-<translation id="2857834222104759979">ገላጭ ፋይሉ ልክ አይደለም።</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (የቅጥያ መታወቂያ «<ph name="EXTENSION_ID" />») በአስተዳዳሪው ታግዷል። <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">ጥቅል መጫን አልተቻለም፦ «<ph name="ERROR_CODE" />»</translation>
 <translation id="3115238746683532089">ያልታወቀ ምርት <ph name="PRODUCT_ID" /> ከ<ph name="VENDOR_ID" /> ሻጭ (ተከታታይ ቁጥር <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">የcrx ፋይል መተካት አልተቻለም። ፋይሉ ስራ ላይ እየዋለ ከሆነ ያረጋግጡ።</translation>
 <translation id="3163201441334626963">ያልታወቀ ምርት <ph name="PRODUCT_ID" /> ከ<ph name="VENDOR_ID" /> ሻጭ</translation>
 <translation id="3369521687965833290">ቅጥያ መበተን አይቻልም።  አንድ ቅጥያ ደህንነቱ በተጠበቀ መልኩ ለመበተን በአንጻፊ ፊደሉ የሚጀምርና መገጣጠሚያ፣ የማፈናጠጫ ነጥብ ወይም ተምሳሌታዊ መጠሪያ ያልያዘ ወደ የመገለጫ ማውጫዎ የሚወስድ ዱካ መኖር አለበት።  እንደዚህ ያሉ ዱካዎች ለመገለጫዎ የሉም።</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (ተከታታይ ቁጥር <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> ከ<ph name="VENDOR_ID" /> ሻጭ (ተከታታይ ቁጥር <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ለግላዊ ቁልፍ የሚገባ እሴት ትክክለኛ ዱካ መሆን አለበት።</translation>
 <translation id="388442998277590542">የአማራጮች ገጽ «<ph name="OPTIONS_PAGE" />»ን መጫን አልተቻለም።</translation>
+<translation id="3984413272403535372">ቅጥያዎችን በመፈረም ጊዜ ስህተት።</translation>
 <translation id="4115165561519362854">የዚህ ማሽን አስተዳዳሪ <ph name="EXTENSION_NAME" /> ቢያንስ የ<ph name="EXTENSION_VERSION" /> ስሪት እንዲሆን ይፈልጋሉል። ወደዚያ ስሪት (ወይም ከዚያ በላይ) ካልተዘመነ በስተቀር ሊነቃ አይችልም።</translation>
 <translation id="4233778200880751280">የስለ ገጹ «<ph name="ABOUT_PAGE" />» መጫን አልተቻለም።</translation>
+<translation id="471800408830181311">የግላዊ ቁልፍን ውጤት ማውጣት አልተሳካም።</translation>
 <translation id="4811956658694082538">የመገልገያ ሂደት ስለተጨናገፈ ጥቅሉን መጫን አልተቻለም። Chromeን እንደገና አስጀምረው እንደገና ይሞክሩት።</translation>
+<translation id="4988792151665380515">ህዝባዊ ቁልፍን መላክ አልተሳካም።</translation>
 <translation id="5026754133087629784">የድር እይታ፦ <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">ለማሸግ ወደ አቃፊው የሚወስደው ትክክለኛ ዱካውን ማግኘት አልተቻለም።</translation>
 <translation id="5356315618422219272">የመተግበሪያ እይታ፦ <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">ቅርጽ ያላቸው መስኮቶች አይደገፉም።</translation>
 <translation id="5456409301717116725">ይህ ቅጥያ የቁልፍ ፋይል «<ph name="KEY_PATH" />»ን ያካትታል። ይህንን ማድረግ ላይፈልጉ ይችላሉ።</translation>
+<translation id="5486326529110362464">ለግላዊ ቁልፍ የሚገባ እሴት መኖር አለበት።</translation>
 <translation id="5627523580512561598">ቅጥያ <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView፦ <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">የዚህ ማሽን አስተዳዳሪ <ph name="EXTENSION_NAME" /> እንዲጫን ይፈልጋል። ከተጫነ በኋላ ሊራገፍ አይችልም።</translation>
 <translation id="6027032947578871493">ያልታወቀ ምርት <ph name="PRODUCT_ID" /> ከ<ph name="VENDOR_NAME" /> (ተከታታይ ቁጥር <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> ከ<ph name="VENDOR_ID" /> ሻጭ</translation>
 <translation id="6143635259298204954">ቅጥያ መበተን አልተቻለም።  አንድ ቅጥያ ደህንነቱ በተጠበቀ ሁኔታ ለመበተን ተምሳሌታዊ መጠሪያ ያልያዘ ወደ የመገለጫዎ አቃፊ የሚወስድ ዱካ መኖር አለበት።  ምንም እንደዚህ ያለ ወደ መገለጫዎ የሚወስድ ዱካ የለም።</translation>
+<translation id="6322279351188361895">ግላዊ ቁልፍን ማንበብ አልተሳካም።</translation>
+<translation id="6391538222494443604">የግብአት ማውጫ መኖር ይኖርበታል።</translation>
 <translation id="641087317769093025">ቅጥያውን መበተን አልተቻለም</translation>
 <translation id="6542618148162044354">«<ph name="APP_NAME" />» የአንድ ወይም ተጨማሪ መሣሪያዎችዎ መዳረሻ እየጠየቁ ነው።</translation>
 <translation id="657064425229075395">የጀርባ ስክሪፕት «<ph name="BACKGROUND_SCRIPT" />» መጫን አልተቻለም።</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">ይህ ቅጥያ የወረደውን «<ph name="ATTEMPTED_FILENAME" />» ብሎ መሰየም አልተሳካለትም፣ ምክንያቱም ሌላ ቅጥያ (<ph name="EXTENSION_NAME" />) ሌላ የፋይል ስም «<ph name="ACTUAL_FILENAME" />» ስለወሰነ ነው።</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> ከ<ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">ይህ ቅጥያ ለአንድ የአውታረ መረብ ጥያቄ ምስክርነቶችን ማቅረብ አልቻለም ምክንያቱም ሌላ ቅጥያ (<ph name="EXTENSION_NAME" />) የተለዩ ምስክርነቶችን ስላቀረበ።</translation>
-<translation id="8602184400052594090">ገላጭ ፋይሉ ጠፍቷል ወይም ተነባቢ አይደለም።</translation>
 <translation id="8636666366616799973">ጥቅሉ ልክ አይደለም። ዝርዝሮች፦ «<ph name="ERROR_MESSAGE" />»።</translation>
 <translation id="8670869118777164560">ይህ ቅጥያ አንድ የአውታረ መረብ ጥያቄ ወደ <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> ማዞር አልተሳካለትም ምክንያቱም ሌላ ቅጥያ (<ph name="EXTENSION_NAME" />) ወደ <ph name="ACTUAL_REDIRECT_DESTINATION" /> አዙሮታል።</translation>
 <translation id="8712265948125780616">ቅጥያ ማራገፊያ</translation>
 <translation id="8761756413268424715">«<ph name="APP_NAME" />» የአንዱ መሣሪያዎ መዳረሻ እየጠየቀ ነው።</translation>
 <translation id="8825366169884721447">ይህ ቅጥያ የጥያቄው ርዕስ «<ph name="HEADER_NAME" />»ን መቀየር አልተሳካለትም ምክንያቱም ለውጡ ከሌላ ቅጥያ (<ph name="EXTENSION_NAME" />) ጋር ስለተጋጨ።</translation>
+<translation id="8885905466771744233">ለተጠቀሰው ቅጥያ ቀድሞውንም ግላዊ ቁልፍ አለ። ይህን ቁልፍ ዳግም ይጠቀሙ ወይም  ይሰርዙት።</translation>
+<translation id="907841381057066561">በመጠቅለል ጊዜ ጊዜያዊ ዚፕ ፋይል መፍጠር አልተሳካም።</translation>
 <translation id="9111791539553342076">ይህ ቅጥያ የምላሽ ርዕሱን «<ph name="HEADER_NAME" />» መቀየር አልተሳካለትም ምክንያቱም ለውጡ ከሌላ ቅጥያ <ph name="EXTENSION_NAME" /> ጋር ስለተጋጨ።</translation>
+<translation id="941543339607623937">ልክ ያልሆነ ግላዊ ቁልፍ።</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ar.xtb b/extensions/strings/extensions_strings_ar.xtb
index 3e65267d..3e05fda 100644
--- a/extensions/strings/extensions_strings_ar.xtb
+++ b/extensions/strings/extensions_strings_ar.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ar">
 <translation id="1135328998467923690">الحزمة غير صالحة: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">الكاميرا الخلفية المواجهة للبيئة</translation>
+<translation id="1196338895211115272">تعذّر تصدير المفتاح الخاص.</translation>
 <translation id="1256619696651732561">محلل بيان الإضافة اللغوي</translation>
+<translation id="1420684932347524586">‏عذرًا! تعذّر إنشاء ملف خاص RSA عشوائي.</translation>
 <translation id="1445572445564823378">تتسبب هذه الإضافة في بطء <ph name="PRODUCT_NAME" />. يجب تعطيلها لاستعادة أداء <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">‏WebGL غير متوافق.</translation>
 <translation id="149347756975725155">تعذر تحميل رمز الإضافة '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">تعذر تحميل صفحة الخلفية '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">تعذر فك تشفير الصورة: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">‏تم استخدام التعريب، ولكن لم يتم تحديد default_locale في البيان.</translation>
+<translation id="2576842806987913196">‏هناك ملف CRX بهذا الاسم فعلاً.</translation>
 <translation id="2753617847762399167">مسار غير قانوني (أساسي أو منتسب مع '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">تعذّرت هذه الإضافة في تعديل طلب الشبكة نظرًا لتعارض التعديل مع إضافة أخرى.</translation>
-<translation id="2857834222104759979">ملف البيان غير صالح.</translation>
 <translation id="2903070246402204397">تم حظر <ph name="EXTENSION_NAME" /> (معرف الإضافة "<ph name="EXTENSION_ID" />") من قِبل المشرف. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">تعذر تثبيت الحزمة: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">المنتج غير معروف <ph name="PRODUCT_ID" /> من المورّد <ph name="VENDOR_ID" /> (الرقم التسلسلي <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">‏تعذّر استبدال ملف crx. تحقق ما إذا كان قيد الاستخدام.</translation>
 <translation id="3163201441334626963">المنتج غير معروف <ph name="PRODUCT_ID" /> من المورّد‬ <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">لا يمكن فك ضغط الإضافة.  لفك ضغط الإضافة بشكل آمن، يجب أن يكون هناك مسار إلى دليل ملفك الشخصي، ويبدأ بحرف محرك أقراص ولا يحتوي على وصلة أو نقطة تحميل أو رابط رمزي.  ليس هناك مثل هذا المسار لملفك الشخصي.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (الرقم التسلسلي <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> من المورّد <ph name="VENDOR_ID" /> (الرقم التسلسلي <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">يجب أن تكون قيمة الإدخال للمفتاح الخاص مسارًا صالحًا.</translation>
 <translation id="388442998277590542">تعذر تحميل صفحة الخيارات "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">حدث خطأ أثناء التوقيع على الإضافة.</translation>
 <translation id="4115165561519362854">يطلب مشرف هذا الجهاز <ph name="EXTENSION_NAME" /> الحصول على الحد الأدنى لإصدار <ph name="EXTENSION_VERSION" />. ولا يمكن تمكينه حتى يتم تحديثه إلى هذا الإصدار (أو أعلى).</translation>
 <translation id="4233778200880751280">تعذر تحميل حول الصفحة "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">تعذّر إخراج المفتاح الخاص.</translation>
 <translation id="4811956658694082538">‏تعذر تثبيت الحزمة بسبب تعطل معالجة الأداة المساعدة. جرّب إعادة تشغيل Chrome وحاول مرة أخرى.</translation>
+<translation id="4988792151665380515">تعذّر تصدير المفتاح العام.</translation>
 <translation id="5026754133087629784">عرض الويب: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">لا يمكن العثور على المسار المطلق للدليل للحزمة.</translation>
 <translation id="5356315618422219272">عرض التطبيق: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">النوافذ ذات الأشكال غير متوافقة.</translation>
 <translation id="5456409301717116725">تتضمن هذه الإضافة ملف المفتاح '<ph name="KEY_PATH" />'. ربما لا تريد إجراء ذلك.</translation>
+<translation id="5486326529110362464">يجب أن تكون قيمة الإدخال للمفتاح الخاص موجودة.</translation>
 <translation id="5627523580512561598">الإضافة <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">يتطلب مشرف هذا الجهاز تثبيت <ph name="EXTENSION_NAME" />. لا يمكن إلغاء تثبيته.</translation>
 <translation id="6027032947578871493">المنتج غير معروف <ph name="PRODUCT_ID" /> من <ph name="VENDOR_NAME" /> (الرقم التسلسلي <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> من المورّد <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">لا يمكن فك ضغط الإضافة.  لفك ضغط الإضافة بشكل آمن، يجب أن يكون هناك مسار إلى دليل ملفك الشخصي، ولا يحتوي على رابط رمزي.  ليس هناك مثل هذا المسار لملفك الشخصي.</translation>
+<translation id="6322279351188361895">تعذّرت قراءة المفتاح الخاص.</translation>
+<translation id="6391538222494443604">يجب أن يكون دليل الإدخال موجودًا.</translation>
 <translation id="641087317769093025">تعذر فك ضغط الإضافة</translation>
 <translation id="6542618148162044354">يطلب تطبيق "<ph name="APP_NAME" />" الدخول إلى جهاز أو أكثر من أجهزتك:</translation>
 <translation id="657064425229075395">تعذر تحميل النص البرمجي للخلفية '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">تعذّرت هذه الإضافة في تسمية التنزيل "<ph name="ATTEMPTED_FILENAME" />" نظرًا لأن هناك إضافة أخرى (<ph name="EXTENSION_NAME" />) قد حددت اسم ملف آخر "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> من <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">تعذّرت هذه الإضافة في تقديم بيانات الاعتماد لطلب الشبكة، نظرًا لتقديم بيانات اعتماد مختلفة بواسطة إضافة أخرى (<ph name="EXTENSION_NAME" />).</translation>
-<translation id="8602184400052594090">ملف البيان مفقود أو غير قابل للقراءة.</translation>
 <translation id="8636666366616799973">الحزمة غير صالحة. التفاصيل: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">تعذّرت الإضافة في إعادة توجيه طلب الشبكة إلى <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> نظرًا لإعادة توجيهها بواسطة إضافة أخرى (<ph name="EXTENSION_NAME" />) إلى <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">أداة فك ضغط الإضافات</translation>
 <translation id="8761756413268424715">يطلب تطبيق "<ph name="APP_NAME" />" الدخول إلى جهاز من أجهزتك:</translation>
 <translation id="8825366169884721447">تعذّرت الإضافة في تعديل عنوان الطلب "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضافة أخرى (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">يوجد مفتاح خاص للإضافة المحددة. أعد استخدام هذا المفتاح أو احذفه أولاً.</translation>
+<translation id="907841381057066561">تعذّر إنشاء ملف مضغوط مؤقت أثناء إنشاء الحزمة.</translation>
 <translation id="9111791539553342076">تعذّرت الإضافة في تعديل عنوان الاستجابة "<ph name="HEADER_NAME" />" لأحد طلبات الشبكة نظرًا لتعارض التعديل مع إضافة أخرى (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">المفتاح الخاص غير صالح.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_bg.xtb b/extensions/strings/extensions_strings_bg.xtb
index e7838c1..42ee5d66 100644
--- a/extensions/strings/extensions_strings_bg.xtb
+++ b/extensions/strings/extensions_strings_bg.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="bg">
 <translation id="1135328998467923690">Пакетът е невалиден: „<ph name="ERROR_CODE" />“.</translation>
 <translation id="1140871961407805696">Задна</translation>
+<translation id="1196338895211115272">Експортирането на личен ключ не бе успешно.</translation>
 <translation id="1256619696651732561">Синтактичен анализ на манифести на разширения</translation>
+<translation id="1420684932347524586">Олеле! Генерирането на произволен RSA личен ключ не бе успешно.</translation>
 <translation id="1445572445564823378">Това разширение забавя работата на <ph name="PRODUCT_NAME" />. Трябва да деактивирате <ph name="PRODUCT_NAME" />, за да възстановите ефективността на браузъра.</translation>
 <translation id="1468038450257740950">WebGL не се поддържа.</translation>
 <translation id="149347756975725155">Не можа да се зареди иконата на разширението „<ph name="ICON" />“.</translation>
 <translation id="1803557475693955505">Не можа да се зареди фоновата страница „<ph name="BACKGROUND_PAGE" />“.</translation>
 <translation id="2159915644201199628">Изображението не можа да се декодира: „<ph name="IMAGE_NAME" />“</translation>
 <translation id="2350172092385603347">Беше използвана локализация, но променливата „default_locale“ не беше посочена в манифеста.</translation>
+<translation id="2576842806987913196">Вече присъства CRX файл с това име.</translation>
 <translation id="2753617847762399167">Непозволен път (абсолютен или относителен с (..): „<ph name="IMAGE_PATH" />“</translation>
 <translation id="27822970480436970">Това разширение не успя да промени заявка от мрежата, защото промяната влезе в конфликт с друго разширение.</translation>
-<translation id="2857834222104759979">Файлът на манифеста е невалиден.</translation>
 <translation id="2903070246402204397">Разширението <ph name="EXTENSION_NAME" /> (идентификационен номер <ph name="EXTENSION_ID" />) е блокирано от администратора. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Пакетът не можа да се инсталира: „<ph name="ERROR_CODE" />“</translation>
 <translation id="3115238746683532089">Неизвестен продукт <ph name="PRODUCT_ID" /> от доставчик <ph name="VENDOR_ID" /> (сериен номер <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Замяната на crx файла не бе успешна. Проверете дали не се използва.</translation>
 <translation id="3163201441334626963">Неизвестен продукт <ph name="PRODUCT_ID" /> от доставчик <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Разширението не може да се разпакетира.  За да направите това по безопасен начин, трябва да има път към директорията в потребителския ви профил, който започва с буква на локален диск и не съдържа възел, точка на монтиране или символна връзка.  Не съществува такъв път за потребителския ви профил.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (сериен номер <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> от доставчик <ph name="VENDOR_ID" /> (сериен номер <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Въведената стойност за личен ключ трябва да бъде валиден път.</translation>
 <translation id="388442998277590542">Страницата за опции „<ph name="OPTIONS_PAGE" />“ не можа да се зареди.</translation>
+<translation id="3984413272403535372">Грешка при подписването на разширението.</translation>
 <translation id="4115165561519362854">Администраторът на тази машина е поставил изискване версията на <ph name="EXTENSION_NAME" /> да е поне <ph name="EXTENSION_VERSION" />. Разширението не може да бъде активирано, докато не бъде актуализирано до тази или по-нова версия.</translation>
 <translation id="4233778200880751280">Страницата с информация <ph name="ABOUT_PAGE" /> не можа да се зареди.</translation>
+<translation id="471800408830181311">Извеждането на личния ключ не бе успешно.</translation>
 <translation id="4811956658694082538">Пакетът не можа да се инсталира поради срив на помощен процес. Рестартирайте Chrome и опитайте отново.</translation>
+<translation id="4988792151665380515">Експортирането на публичен ключ не бе успешно.</translation>
 <translation id="5026754133087629784">Изглед в мрежата: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Абсолютният път към директорията за пакетиране не може да бъде намерен.</translation>
 <translation id="5356315618422219272">Изглед за приложението: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Оформените прозорци не се поддържат.</translation>
 <translation id="5456409301717116725">Разширението включва файла с ключ „<ph name="KEY_PATH" />“. Вероятно не искате да направите това.</translation>
+<translation id="5486326529110362464">Въведената стойност за личен ключ трябва да съществува.</translation>
 <translation id="5627523580512561598">разширението „<ph name="EXTENSION_NAME" />“</translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Администраторът на тази машина изисква разширението <ph name="EXTENSION_NAME" /> да е инсталирано. То не може да бъде деинсталирано.</translation>
 <translation id="6027032947578871493">Неизвестен продукт <ph name="PRODUCT_ID" /> от <ph name="VENDOR_NAME" /> (сериен номер <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> от доставчик <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Разширението не може да се разпакетира.  За да направите това по безопасен начин, трябва да има път към директорията в потребителския ви профил, който не съдържа символна връзка.  Не съществува такъв път за потребителския ви профил.</translation>
+<translation id="6322279351188361895">Прочитът на личния ключ не бе успешен.</translation>
+<translation id="6391538222494443604">Трябва да съществува директория за въвеждане.</translation>
 <translation id="641087317769093025">Разширението не можа да се разархивира</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> иска достъп до едно или повече от устройствата ви:</translation>
 <translation id="657064425229075395">Не можа да се зареди фоновият скрипт „<ph name="BACKGROUND_SCRIPT" />“.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Това разширение не успя да наименува изтеглянето „<ph name="ATTEMPTED_FILENAME" />“, защото друго разширение (<ph name="EXTENSION_NAME" />) определи различно файлово име – „<ph name="ACTUAL_FILENAME" />“.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> от <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Това разширение не успя да предостави идентификационни данни за заявка от мрежата, защото друго разширение (<ph name="EXTENSION_NAME" />) посочи различни данни.</translation>
-<translation id="8602184400052594090">Файлът на манифеста липсва или не може да бъде прочетен.</translation>
 <translation id="8636666366616799973">Пакетът е невалиден. Подробности: „<ph name="ERROR_MESSAGE" />“.</translation>
 <translation id="8670869118777164560">Това разширение не успя да пренасочи заявка от мрежата към <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, защото друго разширение (<ph name="EXTENSION_NAME" />) я пренасочи към <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Разпакетиране на разширения</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> иска достъп до едно от устройствата ви:</translation>
 <translation id="8825366169884721447">Това разширение не успя да промени заглавката „<ph name="HEADER_NAME" />“ на заявка от мрежата, защото промяната влезе в конфликт с друго разширение (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Вече съществува личен ключ за посоченото разширение. Използвайте го отново или първо го изтрийте.</translation>
+<translation id="907841381057066561">Създаването на временен компресиран файл при пакетирането не бе успешно.</translation>
 <translation id="9111791539553342076">Това разширение не успя да промени заглавката на отговор „<ph name="HEADER_NAME" />“ на заявка от мрежата, защото промяната влезе в конфликт с друго разширение (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Невалиден личен ключ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_bn.xtb b/extensions/strings/extensions_strings_bn.xtb
index 9b53ee5a..0930b1a 100644
--- a/extensions/strings/extensions_strings_bn.xtb
+++ b/extensions/strings/extensions_strings_bn.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="bn">
 <translation id="1135328998467923690">এই প্যাকেজটি অবৈধ: '<ph name="ERROR_CODE" />'৷</translation>
 <translation id="1140871961407805696">পেছন দিকে মুখ করা</translation>
+<translation id="1196338895211115272">ব্যক্তিগত কী রপ্তানি করতে ব্যর্থ৷</translation>
 <translation id="1256619696651732561">এক্সটেনশান ম্যানিফেস্ট বিশ্লেষক</translation>
+<translation id="1420684932347524586">এ বাবা! র‌্যান্ডম RSA ব্যক্তিগত কী জেনারেট করতে ব্যর্থ৷</translation>
 <translation id="1445572445564823378">এই এক্সটেনশানটির গতি কমে যাচ্ছে <ph name="PRODUCT_NAME" />৷ আপনাকে <ph name="PRODUCT_NAME" />-এর সম্পাদনা পুনঃস্থাপন করার জন্য এটিকে অক্ষম করা উচিত৷</translation>
 <translation id="1468038450257740950">WebGL সমর্থিত নয়৷</translation>
 <translation id="149347756975725155">এক্সটেনশান আইকন '<ph name="ICON" />' লোড করা যায়নি৷</translation>
 <translation id="1803557475693955505">পৃষ্ঠভূমি পৃষ্ঠা '<ph name="BACKGROUND_PAGE" />' লোড করা যায়নি৷</translation>
 <translation id="2159915644201199628">ছবি ডিকোড করা যায়নি: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">স্থানীয়করণ ব্যবহৃত হয়েছে, কিন্তু default_locale তালিকাতে উল্লেখ ছিল না৷</translation>
+<translation id="2576842806987913196">এই নামের একটি CRX ফাইল ইতিমধ্যে বিদ্যমান আছে৷</translation>
 <translation id="2753617847762399167">আইনি পথ (পূর্ণ অথবা '..' এর সাথে সম্পর্কিত: '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">এই এক্সটেনশানটি নেটওয়ার্কের অনুরোধ সংশোধন করতে ব্যর্থ হয়েছে কারণ সংশোধনের অন্য এক্সটেনশানের সঙ্গে বিরোধ হয়েছে৷</translation>
-<translation id="2857834222104759979">তালিকা ফাইল অবৈধ৷</translation>
 <translation id="2903070246402204397">প্রশাসক <ph name="EXTENSION_NAME" /> (এক্সটেনশন আইডি "<ph name="EXTENSION_ID" />") ব্লক করেছে। <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">এই প্যাকেজটি ইনস্টল করতে পারেনি: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> বিক্রেতার থেকেঅজানা পণ্য <ph name="PRODUCT_ID" /> (সিরিয়াল নম্বর <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ফাইলটি প্রতিস্থাপন করতে ব্যর্থ৷ ফাইলটি ব্যবহার হচ্ছে কিনা দেখতে পরীক্ষা করুন৷</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> বিক্রেতার থেকে অজানা পণ্য <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">এক্সটেনশন প্যাকমুক্ত করতে পারেনা৷  কোনও এক্সটেনশনকে সুরক্ষিতভাবে প্যাকমুক্ত করতে, আপনার প্রোফাইল ডিরেক্টরিতে অবশ্যই এমন একটি পথ থাকবে যা চালক অক্ষরটি দিয়ে শুরু হবে এবং এতে কোন জাংশন, মাউন্ট পয়েন্ট বা সিমলিঙ্ক থাকবে না৷  আপনার প্রোফাইলে এ জাতীয় কোনও পথ বিদ্যমান নেই৷</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (সিরিয়াল নম্বর <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> বিক্রেতার থেকে <ph name="PRODUCT_NAME" /> (সিরিয়াল নম্বর <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ব্যক্তিগত কীয়ের জন্য ইনপুট মান অবশ্যই একটি বৈধ পথ হবে৷</translation>
 <translation id="388442998277590542">বিকল্প পৃষ্ঠা '<ph name="OPTIONS_PAGE" />' লোড করা যায়নি৷</translation>
+<translation id="3984413272403535372">এক্সটেনশন স্বাক্ষরের সময় ত্রুটি৷</translation>
 <translation id="4115165561519362854"><ph name="EXTENSION_VERSION" /> এর কোনো সর্বনিম্ন সংস্করণ রাখতে, এই মেশিনের প্রশাসকের জন্য <ph name="EXTENSION_NAME" /> প্রয়োজন৷ এটিকে যতক্ষণ না পর্যন্ত সেই সংস্করণে আপডেট করা হচ্ছে (বা উচ্চতর) এটি সক্ষমিত হবে না৷</translation>
 <translation id="4233778200880751280"><ph name="ABOUT_PAGE" /> সম্পর্কিত পৃষ্ঠা লোড করা গেল না।</translation>
+<translation id="471800408830181311">ব্যক্তিগত কী আউটপুট করতে ব্যর্থ৷</translation>
 <translation id="4811956658694082538">একটি ইউটিলিটি প্রক্রিয়া ক্র্যাশ করার কারণে প্যাকেজটি ইনস্টল করা যায়নি। Chrome কে পুনরায় চালু করার চেষ্টা করুন এবং আবার চেষ্টা করুন।</translation>
+<translation id="4988792151665380515">ব্যক্তিগত কী-টি রপ্তানি করতে ব্যর্থ৷</translation>
 <translation id="5026754133087629784">ওয়েবদর্শন: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">প্যাক করার জন্য ডিরেক্টরির সঠিক পথটি খুঁজে পাওয়া যাবে না৷</translation>
 <translation id="5356315618422219272">অ্যাপ্লিকেশান দর্শন: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">আকৃতি দেয়া উইন্ডো সমর্থিত নয়।</translation>
 <translation id="5456409301717116725">এই এক্সটেনশানটি '<ph name="KEY_PATH" />' মুখ্য ফাইলকে অন্তর্ভুক্ত করে৷ আপনি সম্ভবত এটি করতে চাইবেন না৷</translation>
+<translation id="5486326529110362464">ব্যক্তিগত কী-র জন্য ইনপুট মান থাকা আবশ্যক৷</translation>
 <translation id="5627523580512561598">এক্সটেনশান <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">এই মেশিনের প্রশাসকের <ph name="EXTENSION_NAME" /> ইন্সটল করা প্রয়োজন। এটি আনইন্সটল করা যাবে না।</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> এর থেকে অজানা পণ্য <ph name="PRODUCT_ID" /> (সিরিয়াল নম্বর <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> বিক্রেতার থেকে <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">এক্সটেনশনটি প্যাকমুক্ত করতে পারে না৷  নিরাপদে কোনও এক্সটেনশন প্যাকমুক্ত করতে, আপনার প্রোফাইল ডিরেক্টরিতে অবশ্যই এমন একটি পথ থাকতে হবে যেখানে কোনও সিমলিঙ্ক থাকে না৷  এই জাতীয় কোনও পথ আপনার প্রোফাইলে বিদ্যমান নেই৷</translation>
+<translation id="6322279351188361895">ব্যক্তিগত কী-টি পড়তে ব্যর্থ৷</translation>
+<translation id="6391538222494443604">ইনপুট নির্দেশিকা বন্ধ করা আবশ্যক৷</translation>
 <translation id="641087317769093025">এক্সটেনশান আনজিপ করা যায়নি</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" আপনার এক বা একাধিক ডিভাইসে অ্যাক্সেসের জন্য অনুরোধ করছে:</translation>
 <translation id="657064425229075395">পশ্চাদপট লিপি '<ph name="BACKGROUND_SCRIPT" />' লোড করা যায়নি৷</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">এই এক্সটেনশানটি ডাউনলোড "<ph name="ATTEMPTED_FILENAME" />" এর নাম দিতে ব্যর্থ হয়েছে কারণ অন্য এক্সটেনশান (<ph name="EXTENSION_NAME" />) একটি ভিন্ন ফাইল নাম "<ph name="ACTUAL_FILENAME" />" নির্ধারণ করেছে৷</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> এর <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">এই এক্সটেনশনটি একটি নেটওয়ার্ক অনুরোধের শংসাপত্রগুলি প্রদান করতে ব্যর্থ হয়েছে কারণ অন্য এক্সটেনশন (<ph name="EXTENSION_NAME" />) ভিন্ন শংসাপত্রগুলি প্রদান করেছে৷</translation>
-<translation id="8602184400052594090">তালিকা ফাইল পাওয়া যাচ্ছে না অথবা পঠনযোগ্য৷</translation>
 <translation id="8636666366616799973">প্যাকেজটি অবৈধ৷ বিশদ বিবরণ: '<ph name="ERROR_MESSAGE" />'৷</translation>
 <translation id="8670869118777164560">এই এক্সটেনশনটি <ph name="ATTEMPTED_REDIRECT_DESTINATION" />এ একটি নেটওয়ার্কের পুনঃনির্দেশ অনুরোধ করতে ব্যর্থ হয়েছে কারণ অন্য এক্সটেনশন (<ph name="EXTENSION_NAME" />) এটিকে <ph name="ACTUAL_REDIRECT_DESTINATION" /> এ পুনঃনির্দেশ করেছে৷</translation>
 <translation id="8712265948125780616">এক্সটেনশান আনপ্যাকার</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" আপনার একটি ডিভাইসে অ্যাক্সেসের জন্য অনুরোধ করছে:</translation>
 <translation id="8825366169884721447">এই এক্সটেনশনটি একটি নেটওয়ার্ক অনুরোধের অনুরোধ শীর্ষক "<ph name="HEADER_NAME" />" এর সংশোধন করতে ব্যর্থ হয়েছে কারণ সংশোধনটির অন্য এক্সটেনশন (<ph name="EXTENSION_NAME" />) এর সঙ্গে বিরোধ আছে৷</translation>
+<translation id="8885905466771744233">সুনির্দিষ্ট করা এক্সটেনশানটির ইতিমধ্যেই একটি ব্যক্তিগত কী আছে৷ এই কী-টি পুনঃব্যবহার করুন অথবা এটিকে প্রথমে মুছে দিন৷</translation>
+<translation id="907841381057066561">প্যাকেজিংয়ের সময় অস্থায়ী জিপ ফাইল তৈরি করতে ব্যর্থ৷</translation>
 <translation id="9111791539553342076">এই এক্সটেনশনটি একটি নেটওয়ার্ক অনুরোধের প্রতিক্রিয়া শীর্ষক "<ph name="HEADER_NAME" />" এর সংশোধন করতে ব্যর্থ হয়েছে কারণ সংশোধনটির অন্য এক্সটেনশন (<ph name="EXTENSION_NAME" />) এর সঙ্গে বিরোধ রয়েছে৷</translation>
+<translation id="941543339607623937">অবৈধ ব্যক্তিগত কী৷</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ca.xtb b/extensions/strings/extensions_strings_ca.xtb
index c38b44e..64bf3df 100644
--- a/extensions/strings/extensions_strings_ca.xtb
+++ b/extensions/strings/extensions_strings_ca.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ca">
 <translation id="1135328998467923690">El paquet no és vàlid: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Càmera posterior</translation>
+<translation id="1196338895211115272">No s'ha pogut exportar la clau privada.</translation>
 <translation id="1256619696651732561">Analitzador per a fitxers de manifest d'extensions</translation>
+<translation id="1420684932347524586">Error. No s'ha pogut generar la clau privada RSA aleatòria.</translation>
 <translation id="1445572445564823378">Aquesta extensió està alentint <ph name="PRODUCT_NAME" />. L'heu de desactivar per restaurar el rendiment de: <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL no és compatible.</translation>
 <translation id="149347756975725155">No s'ha pogut carregar la icona d'extensió "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">No s'ha pogut carregar la pàgina en segon pla "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">No s'ha pogut descodificar la imatge: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">S'ha utilitzat localització, però no s'ha especificat default_locale al manifest.</translation>
+<translation id="2576842806987913196">Ja hi ha un fitxer CRX amb aquest nom.</translation>
 <translation id="2753617847762399167">Camí il·legal (absolut o relatiu amb ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Aquesta extensió no ha pogut modificar una sol·licitud de xarxa perquè la modificació està en conflicte amb una altra extensió.</translation>
-<translation id="2857834222104759979">El fitxer de manifest no és vàlid.</translation>
 <translation id="2903070246402204397">L'administrador ha bloquejat l'extensió <ph name="EXTENSION_NAME" /> (amb l'identificador <ph name="EXTENSION_ID" />). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">No s'ha pogut instal·lar el paquet: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Producte desconegut <ph name="PRODUCT_ID" /> del proveïdor <ph name="VENDOR_ID" /> (número de sèrie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">No s'ha pogut substituir el fitxer crx. Comproveu si el fitxer s'està utilitzant.</translation>
 <translation id="3163201441334626963">Producte desconegut <ph name="PRODUCT_ID" /> del proveïdor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">No es pot desempaquetar l'extensió. Per desempaquetar l'extensió amb seguretat, cal un camí al directori del perfil que comenci amb la lletra d'una unitat i no contingui cap unió, punt de muntatge o enllaç simbòlic. No hi ha cap camí d'aquestes característiques al vostre perfil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (número de sèrie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> del proveïdor <ph name="VENDOR_ID" /> (número de sèrie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">El valor d'entrada per a la clau privada ha de ser un camí vàlid.</translation>
 <translation id="388442998277590542">No s'ha pogut carregar la pàgina d'opcions "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">S'ha produït un error en signar l'extensió.</translation>
 <translation id="4115165561519362854">L'administrador d'aquest ordinador requereix que <ph name="EXTENSION_NAME" /> tingui com a mínim la versió <ph name="EXTENSION_VERSION" />. No es pot activar fins que no s'hagi actualitzat a aquesta versió (o posterior).</translation>
 <translation id="4233778200880751280">No s'ha pogut carregar la pàgina d'informació "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">No s'ha pogut generar la clau privada.</translation>
 <translation id="4811956658694082538">No s'ha pogut instal·lar el paquet perquè un dels processos d'utilitat ha fallat. Reinicieu Chrome i torneu-ho a provar.</translation>
+<translation id="4988792151665380515">No s'ha pogut exportar la clau pública.</translation>
 <translation id="5026754133087629784">Visualització del web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">No es pot trobar el camí absolut al directori per empaquetar.</translation>
 <translation id="5356315618422219272">Vista de l'aplicació: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Les finestres modelades no s'admeten.</translation>
 <translation id="5456409301717116725">Aquesta extensió inclou el fitxer de clau "<ph name="KEY_PATH" />". És probable que això no sigui convenient.</translation>
+<translation id="5486326529110362464">Ha d'existir el valor d'entrada de la clau privada.</translation>
 <translation id="5627523580512561598">extensió <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">Visualització de l'extensió: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">L'administrador d'aquest dispositiu requereix que l'extensió <ph name="EXTENSION_NAME" /> estigui instal·lada. No es pot desinstal·lar.</translation>
 <translation id="6027032947578871493">Producte desconegut <ph name="PRODUCT_ID" /> de: <ph name="VENDOR_NAME" /> (número de sèrie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> del proveïdor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">No es pot desempaquetar l'extensió. Per desempaquetar l'extensió amb seguretat, cal un camí al directori del perfil que no contingui un enllaç simbòlic. No hi ha cap camí d'aquestes característiques al vostre perfil.</translation>
+<translation id="6322279351188361895">No s'ha pogut llegir la clau privada.</translation>
+<translation id="6391538222494443604">El directori d'entrada ha d'existir.</translation>
 <translation id="641087317769093025">No s'ha pogut descomprimir l'extensió</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> sol·licita accés a un o més dels teus dispositius:</translation>
 <translation id="657064425229075395">No s'ha pogut carregar l'script en segon pla "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Aquesta extensió no ha pogut posar nom a la baixada "<ph name="ATTEMPTED_FILENAME" />" perquè una altra extensió (<ph name="EXTENSION_NAME" />) ha indicat un nom de fitxer diferent "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> proporcionat per <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Aquesta extensió no ha pogut proporcionar credencials a una sol·licitud de xarxa perquè una altra extensió (<ph name="EXTENSION_NAME" />) ha proporcionat unes credencials diferents.</translation>
-<translation id="8602184400052594090">El fitxer de manifest falta o bé no es pot llegir.</translation>
 <translation id="8636666366616799973">El paquet no és vàlid. Detalls: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Aquesta extensió no ha pogut redirigir una sol·licitud de xarxa a <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> perquè una altra extensió (<ph name="EXTENSION_NAME" />) l'ha redirigida a <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Eina per desempaquetar extensions</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> sol·licita accés a un dels teus dispositius:</translation>
 <translation id="8825366169884721447">Aquesta extensió no ha pogut modificar la capçalera de la sol·licitud "<ph name="HEADER_NAME" />" d'una sol·licitud de xarxa perquè la modificació entrava en conflicte amb una altra extensió (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Ja existeix una clau privada per a l'extensió especificada. Torneu a utilitzar-la o suprimiu-la primer.</translation>
+<translation id="907841381057066561">No s'ha pogut crear el fitxer ZIP temporal durant l'empaquetament.</translation>
 <translation id="9111791539553342076">Aquesta extensió no ha pogut modificar la capçalera de resposta "<ph name="HEADER_NAME" />" d'una sol·licitud de xarxa perquè la modificació entrava en conflicte amb una altra extensió (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Clau privada no vàlida.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_cs.xtb b/extensions/strings/extensions_strings_cs.xtb
index e64df04..7d4fa6b 100644
--- a/extensions/strings/extensions_strings_cs.xtb
+++ b/extensions/strings/extensions_strings_cs.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="cs">
 <translation id="1135328998467923690">Balíček je neplatný: <ph name="ERROR_CODE" />.</translation>
 <translation id="1140871961407805696">Zadní</translation>
+<translation id="1196338895211115272">Export soukromého klíče se nezdařil.</translation>
 <translation id="1256619696651732561">Analyzátor manifestů rozšíření</translation>
+<translation id="1420684932347524586">Nezdařilo se vytvořit náhodný soukromý klíč RSA.</translation>
 <translation id="1445572445564823378">Toto rozšíření zpomaluje prohlížeč <ph name="PRODUCT_NAME" />. Chcete-li výkon prohlížeče <ph name="PRODUCT_NAME" /> obnovit, měli byste rozšíření zakázat.</translation>
 <translation id="1468038450257740950">Rozhraní WebGL není podporováno.</translation>
 <translation id="149347756975725155">Nelze načíst ikonu rozšíření <ph name="ICON" />.</translation>
 <translation id="1803557475693955505">Nelze načíst stránku pozadí „<ph name="BACKGROUND_PAGE" />“.</translation>
 <translation id="2159915644201199628">Nepodařilo se dekódovat obrázek: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Byla použita lokalizace, ale v manifestu nebyl zadán parametr default_locale.</translation>
+<translation id="2576842806987913196">Soubor CRX s tímto názvem již existuje.</translation>
 <translation id="2753617847762399167">Neplatná cesta (absolutní nebo relativní s „..“): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Tomuto rozšíření se nepodařilo upravit požadavek sítě, protože úprava byla v konfliktu s dalším rozšířením.</translation>
-<translation id="2857834222104759979">Soubor manifestu je neplatný.</translation>
 <translation id="2903070246402204397">Rozšíření <ph name="EXTENSION_NAME" /> (ID rozšíření <ph name="EXTENSION_ID" />) je blokováno administrátorem. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nepodařilo se nainstalovat balíček: <ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">Neznámý produkt <ph name="PRODUCT_ID" /> od dodavatele <ph name="VENDOR_ID" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Nepodařilo se nahradit soubor CRX. Zkontrolujte, zda je tento soubor používán.</translation>
 <translation id="3163201441334626963">Neznámý produkt <ph name="PRODUCT_ID" /> od dodavatele <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Rozšíření nelze rozbalit. Chcete-li rozšíření rozbalit bezpečně, musíte zadat cestu k adresáři profilu, která začíná písmenem diskové jednotky a neobsahuje spojení, přípojný bod ani symbolický odkaz symlink. Ve vašem profilu taková cesta neexistuje.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> od dodavatele <ph name="VENDOR_ID" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Vstupní hodnota pro soukromý klíč musí být platná cesta.</translation>
 <translation id="388442998277590542">Nelze načíst stránku možností „<ph name="OPTIONS_PAGE" />“.</translation>
+<translation id="3984413272403535372">Při podepisování rozšíření došlo k chybě.</translation>
 <translation id="4115165561519362854">Správce tohoto zařízení vyžaduje, aby rozšíření <ph name="EXTENSION_NAME" /> mělo verzi alespoň <ph name="EXTENSION_VERSION" />. Dokud nebude aktualizováno na tuto (nebo vyšší) verzi, nelze jej povolit.</translation>
 <translation id="4233778200880751280">Načtení stránky s informacemi <ph name="ABOUT_PAGE" /> se nezdařilo.</translation>
+<translation id="471800408830181311">Vytvoření soukromého klíče se nezdařilo.</translation>
 <translation id="4811956658694082538">Balíček se nepodařilo nainstalovat, protože proces nástroje selhal. Restartujte Chrome a zkuste to znovu.</translation>
+<translation id="4988792151665380515">Export veřejného klíče se nezdařil.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nelze najít absolutní cestu k adresáři, který chcete zabalit.</translation>
 <translation id="5356315618422219272">Zobrazení aplikace: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Tvarovaná okna nejsou podporována.</translation>
 <translation id="5456409301717116725">Rozšíření obsahuje soubor klíče <ph name="KEY_PATH" />. Tuto akci pravděpodobně provést nechcete.</translation>
+<translation id="5486326529110362464">Musí existovat vstupní hodnota pro soukromý klíč</translation>
 <translation id="5627523580512561598">rozšíření <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administrátor tohoto zařízení vyžaduje, aby bylo rozšíření <ph name="EXTENSION_NAME" /> nainstalováno. Toto rozšíření nelze odinstalovat.</translation>
 <translation id="6027032947578871493">Neznámý produkt <ph name="PRODUCT_ID" /> od dodavatele <ph name="VENDOR_NAME" /> (sériové číslo <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> od dodavatele <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Rozšíření nelze rozbalit. Chcete-li je rozbalit bezpečně, musíte zadat cestu k adresáři profilu, která neobsahuje odkaz symlink. Ve vašem profilu taková cesta neexistuje.</translation>
+<translation id="6322279351188361895">Čtení soukromého klíče se nezdařilo.</translation>
+<translation id="6391538222494443604">Vstupní adresář musí existovat.</translation>
 <translation id="641087317769093025">Rozšíření se nepodařilo rozbalit</translation>
 <translation id="6542618148162044354">Aplikace <ph name="APP_NAME" /> žádá o přístup k jednomu nebo více z vašich zařízení:</translation>
 <translation id="657064425229075395">Nelze načíst skript pozadí <ph name="BACKGROUND_SCRIPT" />.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Tomuto rozšíření se nepodařilo pojmenovat stahovaný soubor „<ph name="ATTEMPTED_FILENAME" />“, protože jiné rozšíření (<ph name="EXTENSION_NAME" />) vybralo jiný název souboru „<ph name="ACTUAL_FILENAME" />“.</translation>
 <translation id="8284835137979141223">Zařízení <ph name="PRODUCT_NAME" /> od dodavatele <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Tomuto rozšíření se nepodařilo poskytnout pověření síťovému požadavku, protože jiné rozšíření (<ph name="EXTENSION_NAME" />) poskytlo odlišná pověření.</translation>
-<translation id="8602184400052594090">Chybí soubor manifestu nebo jej nelze číst.</translation>
 <translation id="8636666366616799973">Balíček je neplatný. Podrobnosti: <ph name="ERROR_MESSAGE" /></translation>
 <translation id="8670869118777164560">Tomuto rozšíření se nepodařilo přesměrovat požadavek sítě do umístění <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, protože jej jiné rozšíření (<ph name="EXTENSION_NAME" />) přesměrovalo do umístění <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Rozbalovač rozšíření</translation>
 <translation id="8761756413268424715">Aplikace <ph name="APP_NAME" /> žádá o přístup k jednomu z vašich zařízení:</translation>
 <translation id="8825366169884721447">Tomuto rozšíření se nepodařilo změnit záhlaví <ph name="HEADER_NAME" /> síťového požadavku, protože změna byla v konfliktu s jiným rozšířením (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Pro zadané rozšíření již existuje soukromý klíč. Použijte tento klíč znovu, nebo jej nejprve smažte.</translation>
+<translation id="907841381057066561">Během balení se nepodařilo vytvořit dočasný soubor ZIP.</translation>
 <translation id="9111791539553342076">Tomuto rozšíření se nepodařilo změnit záhlaví odpovědi <ph name="HEADER_NAME" /> síťového požadavku, protože změna byla v konfliktu s jiným rozšířením (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Neplatný soukromý klíč</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_da.xtb b/extensions/strings/extensions_strings_da.xtb
index f4961f23..dfb67e3 100644
--- a/extensions/strings/extensions_strings_da.xtb
+++ b/extensions/strings/extensions_strings_da.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="da">
 <translation id="1135328998467923690">Pakken er ugyldig: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Kamera på bagsiden</translation>
+<translation id="1196338895211115272">Den personlige nøgle kunne ikke eksporteres.</translation>
 <translation id="1256619696651732561">Værktøj til parsing af udvidelsesmanifester</translation>
+<translation id="1420684932347524586">Gisp! Den tilfældige personlige RSA-nøgle kunne ikke genereres.</translation>
 <translation id="1445572445564823378">Denne udvidelse gør <ph name="PRODUCT_NAME" /> langsommere. Du bør deaktivere den for at gøre <ph name="PRODUCT_NAME" /> hurtig igen.</translation>
 <translation id="1468038450257740950">WebGL understøttes ikke.</translation>
 <translation id="149347756975725155">Udvidelsesikonet '<ph name="ICON" />' kunne ikke indlæses.</translation>
 <translation id="1803557475693955505">Baggrundssiden '<ph name="BACKGROUND_PAGE" />' kunne ikke indlæses.</translation>
 <translation id="2159915644201199628">Billedet kunne afkodes: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Lokalisering anvendt, men default_locale blev ikke angivet i manifestet.</translation>
+<translation id="2576842806987913196">Der findes allerede en CRX-fil med dette navn.</translation>
 <translation id="2753617847762399167">Ugyldig sti (absolut eller relativ med '..'): '<ph name="IMAGE_PATH" /> '</translation>
 <translation id="27822970480436970">Denne udvidelse kunne ikke ændre en netværksanmodning, fordi ændringen var i strid med en anden udvidelse.</translation>
-<translation id="2857834222104759979">Manifestfilen er ugyldig.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (udvidelses-id "<ph name="EXTENSION_ID" />") er blokeret af administrator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Pakken kunne ikke installeres: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Ukendt produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Crx-filen kunne ikke erstattes. Tjek, om filen er i brug.</translation>
 <translation id="3163201441334626963">Ukendt produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Udvidelsen kunne ikke pakkes ud. Hvis du vil udpakke en udvidelse korrekt, skal der angives en sti til din profilmappe. Denne sti skal starte med et drevbogstav, og den må ikke indeholde et forbindelsespunkt, monteringspunkt eller symlink. Der findes ingen sådan sti for din profil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> fra leverandøren <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Indtastningsværdi for personlig nøgle skal være en gyldig sti.</translation>
 <translation id="388442998277590542">Siden med valgmuligheder '<ph name="OPTIONS_PAGE" />' kunne ikke indlæses.</translation>
+<translation id="3984413272403535372">Fejl under signering af udvidelse.</translation>
 <translation id="4115165561519362854">Administratoren af denne computer kræver, at <ph name="EXTENSION_NAME" /> har en minimumsversion af <ph name="EXTENSION_VERSION" />. Den kan ikke aktiveres, før den er blevet opdateret til den pågældende version (eller nyere).</translation>
 <translation id="4233778200880751280">Siden "<ph name="ABOUT_PAGE" />" kunne ikke indlæses.</translation>
+<translation id="471800408830181311">Den personlige nøgle kunne ikke udstedes.</translation>
 <translation id="4811956658694082538">Pakken kunne ikke installeres, da et hjælpeprogram gik ned. Prøv at genstarte Chrome, og prøv igen.</translation>
+<translation id="4988792151665380515">Den offentlige nøgle kunne ikke eksporteres.</translation>
 <translation id="5026754133087629784">Webvisning: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Kunne ikke finde den fuldstændige sti til den mappe, der skal pakkes.</translation>
 <translation id="5356315618422219272">Appvisning: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Formede vinduer understøttes ikke.</translation>
 <translation id="5456409301717116725">Denne udvidelse inkluderer nøglefilen "<ph name="KEY_PATH" />". Det ønsker du sandsynligvis ikke at gøre.</translation>
+<translation id="5486326529110362464">Indtastningsværdien for personlig nøgle skal eksistere.</translation>
 <translation id="5627523580512561598">udvidelse <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administratoren af denne maskine kræver, at <ph name="EXTENSION_NAME" /> er installeret. Denne kan ikke afinstalleres.</translation>
 <translation id="6027032947578871493">Ukendt produkt, <ph name="PRODUCT_ID" />, fra <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Udvidelsen kunne ikke pakkes ud. Hvis du vil udpakke en udvidelse korrekt, skal der angives en sti til din profilmappe, som ikke indeholder et symlink. Der findes ingen sådan sti for din profil.</translation>
+<translation id="6322279351188361895">Den personlige nøgle kunne ikke læses.</translation>
+<translation id="6391538222494443604">Indtastningsindeks skal eksistere.</translation>
 <translation id="641087317769093025">Udvidelsen kunne ikke udpakkes</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" anmoder om adgang til en eller flere af dine enheder:</translation>
 <translation id="657064425229075395">Baggrundsscriptet  "<ph name="BACKGROUND_SCRIPT" />" kunne ikke indlæses.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Denne udvidelse har ikke navngivet downloaden "<ph name="ATTEMPTED_FILENAME" />", fordi en anden udvidelse (<ph name="EXTENSION_NAME" />) har fastlagt et andet filnavn "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> fra <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Denne udvidelse kunne ikke angive legitimationsoplysninger til en netværksanmodning, fordi en anden udvidelse (<ph name="EXTENSION_NAME" />) angav andre legitimationsoplysninger.</translation>
-<translation id="8602184400052594090">Manifestfil mangler eller er ulæselig.</translation>
 <translation id="8636666366616799973">Pakken er ugyldig. Oplysninger: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Denne udvidelse kunne ikke omdirigere en netværksanmodning til <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, fordi en anden udvidelse (<ph name="EXTENSION_NAME" />) omdirigerede den til <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Værktøj til udpakning af udvidelser</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" anmoder om adgang til en af dine enheder:</translation>
 <translation id="8825366169884721447">Denne udvidelse kunne ikke ændre anmodningsheaderen "<ph name="HEADER_NAME" />" for en netværksanmodning, fordi ændringen var i strid med en anden udvidelse. (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Der findes allerede en personlig nøgle til den angivne udvidelse. Genbrug denne nøgle, eller slet den først.</translation>
+<translation id="907841381057066561">Den midlertidige zip-fil kunne ikke oprettes under pakning.</translation>
 <translation id="9111791539553342076">Denne udvidelse kunne ikke ændre anmodningsheaderen "<ph name="HEADER_NAME" />" for en netværksanmodning, fordi ændringen var i strid med en anden udvidelse. (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Ugyldig personlig nøgle.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_de.xtb b/extensions/strings/extensions_strings_de.xtb
index 1bc02fd..1413eb4 100644
--- a/extensions/strings/extensions_strings_de.xtb
+++ b/extensions/strings/extensions_strings_de.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="de">
 <translation id="1135328998467923690">Paket ist ungültig: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Rückkamera</translation>
+<translation id="1196338895211115272">Privater Schlüssel konnte nicht exportiert werden.</translation>
 <translation id="1256619696651732561">Erweiterungsmanifest-Parser</translation>
+<translation id="1420684932347524586">Der per Zufallsauswahl generierte private RSA-Schlüssel konnte nicht erstellt werden.</translation>
 <translation id="1445572445564823378">Diese Erweiterung verlangsamt die Ausführung von <ph name="PRODUCT_NAME" />. Deaktivieren Sie sie, um die Leistung von <ph name="PRODUCT_NAME" /> nicht zu beeinträchtigen.</translation>
 <translation id="1468038450257740950">WebGL wird nicht unterstützt.</translation>
 <translation id="149347756975725155">Erweiterungssymbol "<ph name="ICON" />" kann nicht geladen werden.</translation>
 <translation id="1803557475693955505">Hintergrundseite "<ph name="BACKGROUND_PAGE" />" konnte nicht geladen werden.</translation>
 <translation id="2159915644201199628">Bild konnte nicht decodiert werden: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Lokalisierung wurde verwendet, in der Manifest-Datei war jedoch kein Wert für "default_locale" angegeben.</translation>
+<translation id="2576842806987913196">Es ist bereits eine CRX-Datei mit diesem Namen vorhanden.</translation>
 <translation id="2753617847762399167">Unzulässiger Pfad (absolut oder relativ mit ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Die Erweiterung konnte eine Netzwerkanfrage nicht modifizieren, da die Modifikation einen Konflikt mit einer anderen Erweiterung verursacht.</translation>
-<translation id="2857834222104759979">Manifest-Datei ist ungültig.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (Erweiterungs-ID "<ph name="EXTENSION_ID" />") wurde vom Administrator blockiert. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Paket konnte nicht installiert werden: "<ph name="ERROR_CODE" />".</translation>
 <translation id="3115238746683532089">Unbekanntes Produkt <ph name="PRODUCT_ID" /> von Anbieter <ph name="VENDOR_ID" /> (Seriennummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">CRX-Datei konnte nicht ersetzt werden. Überprüfen Sie, ob die Datei verwendet wird.</translation>
 <translation id="3163201441334626963">Unbekanntes Produkt <ph name="PRODUCT_ID" /> von Anbieter <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Erweiterung kann nicht entpackt werden. Damit eine Erweiterung sicher entpackt werden kann, muss ein Pfad zu Ihrem Profilverzeichnis zur Verfügung stehen, der mit einem Laufwerksbuchstaben beginnt und keine Verknüpfung, keinen Bereitstellungspunkt und keine symbolische Verbindung enthält. Für Ihr Profil besteht kein solcher Pfad.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (Seriennummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> von Anbieter <ph name="VENDOR_ID" /> (Seriennummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Der Eingabewert für den privaten Schlüssel muss ein gültiger Pfad sein.</translation>
 <translation id="388442998277590542">Optionsseite "<ph name="OPTIONS_PAGE" />" konnte nicht geladen werden.</translation>
+<translation id="3984413272403535372">Fehler bei der Signatur der Erweiterung</translation>
 <translation id="4115165561519362854">Der Administrator dieses Geräts hat festgelegt, dass für <ph name="EXTENSION_NAME" /> mindestens Version <ph name="EXTENSION_VERSION" /> installiert sein muss. Die Erweiterung kann erst aktiviert werden, nachdem sie auf diese oder eine höhere Version aktualisiert wurde.</translation>
 <translation id="4233778200880751280">Infoseite "<ph name="ABOUT_PAGE" />" konnte nicht geladen werden.</translation>
+<translation id="471800408830181311">Privater Schlüssel konnte nicht ausgegeben werden.</translation>
 <translation id="4811956658694082538">Das Paket konnte nicht installiert werden, da der Prozess eines Dienstprogramms abgestürzt ist. Starten Sie Chrome neu und versuchen Sie es erneut.</translation>
+<translation id="4988792151665380515">Öffentlicher Schlüssel konnte nicht exportiert werden.</translation>
 <translation id="5026754133087629784">Web-Ansicht: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Der absolute Pfad zum Verzeichnis wurde nicht gefunden.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Es werden nur rechteckige Fenster unterstützt.</translation>
 <translation id="5456409301717116725">Die Erweiterung enthält die Schlüsseldatei "<ph name="KEY_PATH" />". Möchten Sie den Vorgang wirklich fortsetzen?</translation>
+<translation id="5486326529110362464">Es muss ein Eingabewert für den privaten Schlüssel vorhanden sein.</translation>
 <translation id="5627523580512561598"><ph name="EXTENSION_NAME" />-Erweiterung</translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Der Administrator dieses Computers hat die Installation von <ph name="EXTENSION_NAME" /> vorgegeben. Eine Deinstallation ist daher nicht möglich.</translation>
 <translation id="6027032947578871493">Unbekanntes Produkt <ph name="PRODUCT_ID" /> von <ph name="VENDOR_NAME" /> (Seriennummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> von Anbieter <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Erweiterung kann nicht entpackt werden. Damit eine Erweiterung sicher entpackt werden kann, muss ein Pfad zu Ihrem Profilverzeichnis zur Verfügung stehen, der keine symbolische Verbindung enthält. Für Ihr Profil besteht kein solcher Pfad.</translation>
+<translation id="6322279351188361895">Privater Schlüssel konnte nicht gelesen werden.</translation>
+<translation id="6391538222494443604">Eingabeverzeichnis muss vorhanden sein.</translation>
 <translation id="641087317769093025">Erweiterung kann nicht entpackt werden.</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" fordert Zugriff auf eines oder mehrere Ihrer Geräte an:</translation>
 <translation id="657064425229075395">Hintergrundskript "<ph name="BACKGROUND_SCRIPT" />" konnte nicht geladen werden.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Diese Erweiterung konnte den Download nicht "<ph name="ATTEMPTED_FILENAME" />" nennen, weil eine andere Erweiterung (<ph name="EXTENSION_NAME" />) einen anderen Dateinamen "<ph name="ACTUAL_FILENAME" />" festgelegt hat.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> von <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Die Erweiterung konnte die Anmeldeinformationen für eine Netzwerkanfrage nicht bereitstellen, da eine andere Erweiterung (<ph name="EXTENSION_NAME" />) andere Anmeldeinformationen übermittelt hat.</translation>
-<translation id="8602184400052594090">Manifest-Datei fehlt oder ist nicht lesbar.</translation>
 <translation id="8636666366616799973">Paket ist ungültig. Details: "<ph name="ERROR_MESSAGE" />"</translation>
 <translation id="8670869118777164560">Die Erweiterung konnte die Netzwerkanfrage nicht an <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> weiterleiten, da eine andere Erweiterung (<ph name="EXTENSION_NAME" />) sie an <ph name="ACTUAL_REDIRECT_DESTINATION" /> weitergeleitet hat.</translation>
 <translation id="8712265948125780616">Erweiterungsentpacker</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" fordert Zugriff auf eines Ihrer Geräte an:</translation>
 <translation id="8825366169884721447">Die Erweiterung konnte den Anfrage-Header "<ph name="HEADER_NAME" />" einer Netzwerkanfrage nicht modifizieren, da die Modifikation einen Konflikt mit einer anderen Erweiterung (<ph name="EXTENSION_NAME" />) verursacht.</translation>
+<translation id="8885905466771744233">Es existiert bereits ein privater Schlüssel für die angegebene Erweiterung. Verwenden Sie diesen Schlüssel oder löschen Sie ihn zuerst.</translation>
+<translation id="907841381057066561">Während des Packvorgangs wurde keine temporäre ZIP-Datei erstellt.</translation>
 <translation id="9111791539553342076">Die Erweiterung konnte den Antwort-Header "<ph name="HEADER_NAME" />" einer Netzwerkanfrage nicht modifizieren, da die Modifikation einen Konflikt mit einer anderen Erweiterung (<ph name="EXTENSION_NAME" />) verursacht.</translation>
+<translation id="941543339607623937">Ungültiger privater Schlüssel</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_el.xtb b/extensions/strings/extensions_strings_el.xtb
index acdb5a78..2d9a2b2 100644
--- a/extensions/strings/extensions_strings_el.xtb
+++ b/extensions/strings/extensions_strings_el.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="el">
 <translation id="1135328998467923690">Μη έγκυρο πακέτο: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Πίσω κάμερα</translation>
+<translation id="1196338895211115272">Αποτυχία εξαγωγής ιδιωτικού κλειδιού.</translation>
 <translation id="1256619696651732561">Συντακτικός αναλυτής μανιφέστου επέκτασης</translation>
+<translation id="1420684932347524586">Αποτυχία δημιουργίας τυχαίου ιδιωτικού κλειδιού RSA.</translation>
 <translation id="1445572445564823378">Αυτή η επέκταση επιβραδύνει το <ph name="PRODUCT_NAME" />. Πρέπει να την απενεργοποιήσετε για να επαναφέρετε την απόδοση του <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">Το WebGL δεν υποστηρίζεται.</translation>
 <translation id="149347756975725155">Δεν ήταν δυνατή η φόρτωση του εικονιδίου επέκτασης "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Δεν ήταν δυνατή η φόρτωση της σελίδας φόντου "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Δεν ήταν δυνατή η αποκωδικοποίηση της εικόνας: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Χρησιμοποιήθηκε τοπική προσαρμογή, όμως δεν καθορίστηκε η τιμή "default_locale" στη δήλωση.</translation>
+<translation id="2576842806987913196">Υπάρχει ήδη ένα αρχείο CRX με αυτό το όνομα.</translation>
 <translation id="2753617847762399167">Παράνομη διαδρομή (απόλυτη ή σχετική με ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Η επέκταση αυτή απέτυχε να τροποποιήσει ένα αίτημα δικτύου, επειδή η τροποποίηση ερχόταν σε σύγκρουση με μια άλλη προέκταση.</translation>
-<translation id="2857834222104759979">Το αρχείο δήλωσης δεν είναι έγκυρο.</translation>
 <translation id="2903070246402204397">Η επέκταση <ph name="EXTENSION_NAME" /> (αναγνωριστικό επέκτασης "<ph name="EXTENSION_ID" />") έχει αποκλειστεί από τον διαχειριστή. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Δεν ήταν δυνατή η εγκατάσταση του πακέτου: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Άγνωστο προϊόν <ph name="PRODUCT_ID" /> από τον προμηθευτή <ph name="VENDOR_ID" /> (σειριακός αριθμός <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Αποτυχία αντικατάστασης αρχείου crx. Ελέγξτε αν το αρχείο χρησιμοποιείται.</translation>
 <translation id="3163201441334626963">Άγνωστο προϊόν <ph name="PRODUCT_ID" /> από τον προμηθευτή <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Δεν είναι δυνατή η αποσυσκευασία επέκτασης.  Για την ασφαλή αποσυσκευασία μιας επέκτασης, πρέπει να υπάρχει στον κατάλογο προφίλ σας μια διαδρομή που να ξεκινάει με ένα γράμμα μονάδας δίσκου και να μην περιέχει κάποιο σύνδεσμο, σημείο μονταρίσματος ή symlink (συντόμευση).  Δεν υπάρχει τέτοια διαδρομή για το προφίλ σας.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (σειριακός ρυθμός <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> από τον προμηθευτή <ph name="VENDOR_ID" /> (σειριακός ρυθμός <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Η τιμή εισαγωγής για το ιδιωτικό κλειδί πρέπει να είναι έγκυρη διαδρομή.</translation>
 <translation id="388442998277590542">Δεν ήταν δυνατή η φόρτωση της σελίδας επιλογών "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Σφάλμα κατά την υπογραφή επέκτασης.</translation>
 <translation id="4115165561519362854">Ο διαχειριστής αυτού του μηχανήματος απαιτεί από το <ph name="EXTENSION_NAME" /> να διαθέτει τουλάχιστον την έκδοση <ph name="EXTENSION_VERSION" />. Δεν μπορεί να ενεργοποιηθεί έως ότου ενημερωθεί σε αυτήν την έκδοση (ή σε μεταγενέστερη).</translation>
 <translation id="4233778200880751280">Δεν ήταν δυνατή η φόρτωση της σελίδας πληροφοριών "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Αποτυχία εξόδου ιδιωτικού κλειδιού.</translation>
 <translation id="4811956658694082538">Δεν ήταν δυνατή η εγκατάσταση του πακέτου, επειδή μια διεργασία βοηθητικού προγράμματος παρουσίασε σφάλμα. Επανεκκινήστε το Chrome και προσπαθήστε ξανά.</translation>
+<translation id="4988792151665380515">Αποτυχία εξαγωγής δημόσιου κλειδιού.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Δεν ήταν δυνατή η εύρεση της απόλυτης διαδρομής στον κατάλογο για στοίβαξη.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Τα διαμορφωμένα παράθυρα δεν υποστηρίζονται.</translation>
 <translation id="5456409301717116725">Αυτή η επέκταση περιλαμβάνει το αρχείο κλειδιού "<ph name="KEY_PATH" />". Πιθανότατα δεν θέλετε να προβείτε σε αυτήν την ενέργεια.</translation>
+<translation id="5486326529110362464">Η τιμή εισόδου για το ιδιωτικό κλειδί πρέπει να υπάρχει.</translation>
 <translation id="5627523580512561598">επέκταση <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Ο διαχειριστής αυτού του υπολογιστή απαιτεί την εγκατάσταση της επέκτασης <ph name="EXTENSION_NAME" />. Η εγκατάσταση δεν μπορεί να καταργηθεί.</translation>
 <translation id="6027032947578871493">Άγνωστο προϊόν <ph name="PRODUCT_ID" /> από <ph name="VENDOR_NAME" /> (σειριακός αριθμός <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> από τον προμηθευτή <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Δεν είναι δυνατή η αποσυσκευασία της επέκτασης.  Για την ασφαλή αποσυσκευασία μιας επέκτασης πρέπει να υπάρχει στον κατάλογο προφίλ σας μια διαδρομή που δεν περιέχει κάποιο symlink.  Στο προφίλ σας δεν υπάρχει κάποια τέτοια διαδρομή.</translation>
+<translation id="6322279351188361895">Αποτυχία ανάγνωσης ιδιωτικού κλειδιού.</translation>
+<translation id="6391538222494443604">Ο κατάλογος εισόδου πρέπει να υπάρχει.</translation>
 <translation id="641087317769093025">Δεν ήταν δυνατή η αποσυμπίεση της επέκτασης</translation>
 <translation id="6542618148162044354">Η εφαρμογή "<ph name="APP_NAME" />" ζητά πρόσβαση σε μία ή περισσότερες συσκευές σας:</translation>
 <translation id="657064425229075395">Δεν ήταν δυνατή η φόρτωση του σεναρίου παρασκηνίου '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Η επέκταση δεν κατόρθωσε να ονομάσει τη λήψη "<ph name="ATTEMPTED_FILENAME" />" επειδή μια άλλη επέκταση (<ph name="EXTENSION_NAME" />) καθόρισε ένα διαφορετικό όνομα "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> της <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Αυτή η επέκταση απέτυχε να παράσχει διαπιστευτήρια σε κάποιο αίτημα δικτύου επειδή κάποια άλλη επέκταση (<ph name="EXTENSION_NAME" />) παρέσχεσε διαφορετικά διαπιστευτήρια.</translation>
-<translation id="8602184400052594090">Το αρχείο δήλωσης λείπει ή δεν είναι δυνατή η ανάγνωσή του.</translation>
 <translation id="8636666366616799973">Μη έγκυρο πακέτο. Λεπτομέρειες: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Αυτή η επέκταση απέτυχε να ανακατευθύνει κάποιο αίτημα δικτύου στο <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> επειδή κάποια άλλη επέκταση (<ph name="EXTENSION_NAME" />) το ανακατεύθυνε στο <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Εργαλείο αποσυσκευασίας επεκτάσεων</translation>
 <translation id="8761756413268424715">Η εφαρμογή "<ph name="APP_NAME" />" ζητά πρόσβαση σε μία από τις συσκευές σας.</translation>
 <translation id="8825366169884721447">Αυτή η επέκταση απέτυχε να τροποποιήσει την κεφαλίδα αιτήματος "<ph name="HEADER_NAME" />" κάποιου αιτήματος δικτύου επειδή η τροποποίηση ήρθε σε σύγκρουση με κάποια άλλη επέκταση (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Υπάρχει ήδη ιδιωτικό κλειδί για τη συγκεκριμένη επέκταση. Χρησιμοποιήστε ξανά το κλειδί ή διαγράψτε το πρώτα.</translation>
+<translation id="907841381057066561">Αποτυχία δημιουργίας προσωρινού αρχείου zip κατά τη συσκευασία.</translation>
 <translation id="9111791539553342076">Αυτή η επέκταση απέτυχε να τροποποιήσει την κεφαλίδα απόκρισης "<ph name="HEADER_NAME" />" κάποιου αιτήματος δικτύου επειδή η τροποποίηση ήρθε σε σύγκρουση με κάποια άλλη επέκταση (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Μη έγκυρο ιδιωτικό κλειδί.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_en-GB.xtb b/extensions/strings/extensions_strings_en-GB.xtb
index 3e60d26..32c7a076 100644
--- a/extensions/strings/extensions_strings_en-GB.xtb
+++ b/extensions/strings/extensions_strings_en-GB.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="en-GB">
 <translation id="1135328998467923690">Package is invalid: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Environment-facing</translation>
+<translation id="1196338895211115272">Failed to export private key.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">Yikes! Failed to generate random RSA private key.</translation>
 <translation id="1445572445564823378">This extension is slowing down <ph name="PRODUCT_NAME" />. You should disable it to restore <ph name="PRODUCT_NAME" />'s performance.</translation>
 <translation id="1468038450257740950">WebGL is not supported.</translation>
 <translation id="149347756975725155">Could not load extension icon '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">Could not load background page '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">Could not decode image: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Localisation used, but default_locale wasn't specified in the manifest.</translation>
+<translation id="2576842806987913196">There is already a CRX file present with this name.</translation>
 <translation id="2753617847762399167">Illegal path (absolute or relative with '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">This extension failed to modify a network request because the modification conflicted with another extension.</translation>
-<translation id="2857834222104759979">Manifest file is invalid.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (extension ID "<ph name="EXTENSION_ID" />") is blocked by the administrator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Could not install package: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Unknown product <ph name="PRODUCT_ID" /> from vendor <ph name="VENDOR_ID" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Failed to replace crx file. Check to see if the file is in use.</translation>
 <translation id="3163201441334626963">Unknown product <ph name="PRODUCT_ID" /> from vendor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Cannot unpack extension.  To safely unpack an extension, there must be a path to your profile directory that starts with a drive letter and does not contain a junction, mount point or symlink.  No such path exists for your profile.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> from vendor <ph name="VENDOR_ID" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Input value for private key must be a valid path.</translation>
 <translation id="388442998277590542">Could not load options page '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Error while signing extension.</translation>
 <translation id="4115165561519362854">The administrator of this machine requires <ph name="EXTENSION_NAME" /> to have a minimum version of <ph name="EXTENSION_VERSION" />. It cannot be enabled until it has updated to that version (or higher).</translation>
 <translation id="4233778200880751280">Could not load about page '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Failed to output private key.</translation>
 <translation id="4811956658694082538">Could not install package because a utility process crashed. Try restarting Chrome and trying again.</translation>
+<translation id="4988792151665380515">Failed to export public key.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Can't find the absolute path to the directory to pack.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Shaped windows are not supported.</translation>
 <translation id="5456409301717116725">This extension includes the key file '<ph name="KEY_PATH" />'. You probably don't want to do that.</translation>
+<translation id="5486326529110362464">Input value for private key must exist.</translation>
 <translation id="5627523580512561598">extension <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">The administrator of this machine requires <ph name="EXTENSION_NAME" /> to be installed. It cannot be uninstalled.</translation>
 <translation id="6027032947578871493">Unknown product <ph name="PRODUCT_ID" /> from <ph name="VENDOR_NAME" /> (serial number <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> from vendor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Cannot unpack extension.  To unpack an extension safely, there must be a path to your profile directory that does not contain a symlink.  No such path exists for your profile.</translation>
+<translation id="6322279351188361895">Failed to read private key.</translation>
+<translation id="6391538222494443604">Input directory must exist.</translation>
 <translation id="641087317769093025">Could not unzip extension</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" is requesting access to one or more of your devices:</translation>
 <translation id="657064425229075395">Could not load background script '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">This extension failed to name the download "<ph name="ATTEMPTED_FILENAME" />" because another extension (<ph name="EXTENSION_NAME" />) determined a different filename "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> from <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">This extension failed to provide credentials to a network request because another extension (<ph name="EXTENSION_NAME" />) provided different credentials.</translation>
-<translation id="8602184400052594090">Manifest file is missing or unreadable.</translation>
 <translation id="8636666366616799973">Package is invalid. Details: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">This extension failed to redirect a network request to <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> because another extension (<ph name="EXTENSION_NAME" />) redirected it to <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Extension Unpacker</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" is requesting access to one of your devices:</translation>
 <translation id="8825366169884721447">This extension failed to modify the request header "<ph name="HEADER_NAME" />" of a network request because the modification conflicted with another extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">A private key for specified extension already exists. Reuse that key or delete it first.</translation>
+<translation id="907841381057066561">Failed to create temporary zip file during packaging.</translation>
 <translation id="9111791539553342076">This extension failed to modify the response header "<ph name="HEADER_NAME" />" of a network request because the modification conflicted with another extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Invalid private key.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_es-419.xtb b/extensions/strings/extensions_strings_es-419.xtb
index 64271dd2..1d5e016 100644
--- a/extensions/strings/extensions_strings_es-419.xtb
+++ b/extensions/strings/extensions_strings_es-419.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="es-419">
 <translation id="1135328998467923690">El paquete no es válido: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Cámara posterior</translation>
+<translation id="1196338895211115272">Error al exportar la clave privada.</translation>
 <translation id="1256619696651732561">Analizador de manifiesto de extensiones</translation>
+<translation id="1420684932347524586">¡Ay! Error al generar clave privada RSA aleatoria.</translation>
 <translation id="1445572445564823378">Esta extensión está ralentizando <ph name="PRODUCT_NAME" />. Deberías inhabilitarla para restaurar el rendimiento de <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL no es compatible.</translation>
 <translation id="149347756975725155">No se pudo cargar el ícono de extensión '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">No se pudo cargar la página de fondo '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">No se pudo decodificar la imagen "<ph name="IMAGE_NAME" />".</translation>
 <translation id="2350172092385603347">Se utiliza localización, pero default_locale no se especificó en el manifiesto.</translation>
+<translation id="2576842806987913196">Ya existe una archivo CRX con este nombre.</translation>
 <translation id="2753617847762399167">Ruta no válida (absoluta o relativa con '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Esta extensión no pudo modificar una solicitud de red porque la modificación provocaba un conflicto con otra extensión.</translation>
-<translation id="2857834222104759979">Archivo de manifiesto no válido.</translation>
 <translation id="2903070246402204397">El administrador bloqueó la extensión <ph name="EXTENSION_NAME" /> (ID de extensión "<ph name="EXTENSION_ID" />"). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">No se pudo instalar el paquete: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Producto desconocido <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">No se pudo reemplazar el archivo crx. Comprueba si el archivo está en uso.</translation>
 <translation id="3163201441334626963">Producto desconocido <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">No se puede desempaquetar la extensión. Para desempaquetar una extensión de manera segura, debe haber una ruta de acceso al directorio de tu perfil que comience con una letra de unidad y que no contenga una unión, un punto de montaje ni un symlink. No existe esa ruta de acceso para tu perfil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> del proveedor <ph name="VENDOR_ID" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">El valor de entrada de la clave privada debe ser una ruta válida.</translation>
 <translation id="388442998277590542">No se pudo cargar la página de opciones '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Error al firmar extensión.</translation>
 <translation id="4115165561519362854">El administrador de esta computadora requiere una versión de <ph name="EXTENSION_NAME" /> no anterior a <ph name="EXTENSION_VERSION" />. No se puede habilitar hasta que se haya actualizado a dicha versión (o versiones posteriores).</translation>
 <translation id="4233778200880751280">No se pudo cargar la página de información "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Error al emitir clave privada.</translation>
 <translation id="4811956658694082538">No se pudo instalar el paquete porque falló el proceso de ejecución de una utilidad. Prueba a reiniciar Chrome y vuelve a intentarlo.</translation>
+<translation id="4988792151665380515">Error al exportar la clave pública.</translation>
 <translation id="5026754133087629784">Vista web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">No se puede encontrar la ruta de acceso absoluta al directorio al paquete.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">No se admiten las ventanas con formas.</translation>
 <translation id="5456409301717116725">Esta extensión incluye el archivo de clave "<ph name="KEY_PATH" />". Probablemente no desees incluir ese archivo.</translation>
+<translation id="5486326529110362464">Debe existir un valor de entrada para la clave privada.</translation>
 <translation id="5627523580512561598">extensión <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">El administrador de esta computadora requiere que <ph name="EXTENSION_NAME" /> esté instalada. No se puede desinstalar.</translation>
 <translation id="6027032947578871493">Producto desconocido <ph name="PRODUCT_ID" /> de <ph name="VENDOR_NAME" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> del proveedor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">No se puede desempaquetar la extensión. Para desempaquetar una extensión de manera segura, debe haber una ruta de acceso al directorio de tu perfil que no contenga un symlink. No existe esa ruta de acceso para tu perfil.</translation>
+<translation id="6322279351188361895">Error al leer la clave privada.</translation>
+<translation id="6391538222494443604">Debe existir el directorio de entrada.</translation>
 <translation id="641087317769093025">No se pudo descomprimir la extensión.</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" solicita acceso a uno o más de tus dispositivos:</translation>
 <translation id="657064425229075395">No se pudo cargar la secuencia de comandos en segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Esta extensión no pudo asignar el nombre "<ph name="ATTEMPTED_FILENAME" />" a la descarga porque otra extensión (<ph name="EXTENSION_NAME" />) determinó un nombre de archivo diferente: "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> en <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Esta extensión no pudo proporcionar credenciales a una solicitud de red porque otra extensión (<ph name="EXTENSION_NAME" />) proporcionó otras credenciales.</translation>
-<translation id="8602184400052594090">El archivo de manifiesto falta o no se puede leer.</translation>
 <translation id="8636666366616799973">El paquete no es válido. Detalles: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Esta extensión no pudo redireccionar una solicitud de red a <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> porque otra extensión (<ph name="EXTENSION_NAME" />) la redireccionó a <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Desempaquetador de extensiones</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" solicita acceso a uno de tus dispositivos:</translation>
 <translation id="8825366169884721447">Esta extensión no pudo modificar el encabezado de solicitud "<ph name="HEADER_NAME" />" de una solicitud de red porque la modificación entró en conflicto con otra extensión (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Ya existe una clave privada para la extensión especificada. Volver a utilizar esa clave o eliminarla primero.</translation>
+<translation id="907841381057066561">Error al crear el archivo zip temporal durante el empaquetado.</translation>
 <translation id="9111791539553342076">Esta extensión no pudo modificar el encabezado de respuesta "<ph name="HEADER_NAME" />" de una solicitud de red porque la modificación entró en conflicto con otra extensión (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Clave privada no válida</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_es.xtb b/extensions/strings/extensions_strings_es.xtb
index 5f1d500f..bac2c467 100644
--- a/extensions/strings/extensions_strings_es.xtb
+++ b/extensions/strings/extensions_strings_es.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="es">
 <translation id="1135328998467923690">El paquete no es válido: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Trasera</translation>
+<translation id="1196338895211115272">Se ha producido un error al exportar la clave privada.</translation>
 <translation id="1256619696651732561">Analizador de archivos de manifiesto de extensiones</translation>
+<translation id="1420684932347524586">¡Vaya! Se ha producido un error al generar una clave privada RSA aleatoria.</translation>
 <translation id="1445572445564823378">Esta extensión está ralentizando <ph name="PRODUCT_NAME" />. Deberías inhabilitarla para restaurar el rendimiento de <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">No se admite WebGL.</translation>
 <translation id="149347756975725155">No se ha podido cargar el icono de la extensión "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">No se ha podido cargar la página de fondo "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">No se ha podido decodificar la imagen <ph name="IMAGE_NAME" />.</translation>
 <translation id="2350172092385603347">Se ha utilizado la localización, pero no se ha especificado default_locale en el archivo de manifiesto.</translation>
+<translation id="2576842806987913196">Ya existe un archivo CRX con este nombre.</translation>
 <translation id="2753617847762399167">Ruta no válida (absoluta o relativa con ".."): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Esta extensión no ha podido modificar una solicitud de red porque existe un conflicto con otra extensión.</translation>
-<translation id="2857834222104759979">El archivo de manifiesto no es válido.</translation>
 <translation id="2903070246402204397">El administrador ha bloqueado la extensión <ph name="EXTENSION_NAME" /> (ID de extensión "<ph name="EXTENSION_ID" />"). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">No se ha podido instalar el paquete: "<ph name="ERROR_CODE" />".</translation>
 <translation id="3115238746683532089">Producto <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /> desconocido (número de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">No se ha podido sustituir el archivo .crx. Comprueba si se está utilizando el archivo.</translation>
 <translation id="3163201441334626963">Producto <ph name="PRODUCT_ID" /> del proveedor <ph name="VENDOR_ID" /> desconocido</translation>
 <translation id="3369521687965833290">No se puede descomprimir la extensión. Para descomprimir de forma segura una extensión, debe existir una ruta al directorio de tu perfil que comience con una letra de unidad y que no incluya ninguna unión, ningún punto de montaje ni ningún enlace simbólico. No existe ninguna ruta de este tipo para tu perfil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> del proveedor <ph name="VENDOR_ID" /> (número de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">El valor de entrada de la clave privada debe ser una ruta válida.</translation>
 <translation id="388442998277590542">No se ha podido cargar la página de opciones "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Se ha producido un error al firmar la extensión.</translation>
 <translation id="4115165561519362854">El administrador de este equipo requiere que <ph name="EXTENSION_NAME" /> tenga como mínimo la versión <ph name="EXTENSION_VERSION" />. No se puede habilitar hasta que se haya actualizado a esa versión (o superior).</translation>
 <translation id="4233778200880751280">No se ha podido cargar la página de información (<ph name="ABOUT_PAGE" />).</translation>
+<translation id="471800408830181311">Se ha producido un error al generar la clave privada.</translation>
 <translation id="4811956658694082538">No se ha podido instalar el paquete porque se ha producido un fallo en el proceso de ejecución de una utilidad. Reinicia Chrome y vuelve a intentarlo.</translation>
+<translation id="4988792151665380515">Se ha producido un error al exportar la clave pública.</translation>
 <translation id="5026754133087629784">WebView: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">No se puede encontrar la ruta absoluta hasta el directorio donde está la extensión</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">No se admiten las ventanas con formas.</translation>
 <translation id="5456409301717116725">Esta extensión incluye el archivo de clave "<ph name="KEY_PATH" />". Probablemente no quieras incluir este archivo.</translation>
+<translation id="5486326529110362464">Debe existir un valor de entrada para la clave privada.</translation>
 <translation id="5627523580512561598">extensión <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692"><ph name="EXTENSION_NAME" /> no se puede desinstalar porque el administrador de este ordenador requiere que esté instalado.</translation>
 <translation id="6027032947578871493">Producto <ph name="PRODUCT_ID" /> de <ph name="VENDOR_NAME" /> desconocido (número de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> del proveedor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">No se puede descomprimir la extensión. Para descomprimir de forma segura una extensión, debe existir una ruta al directorio de tu perfil que no contenga ningún enlace simbólico. No existe ninguna ruta de este tipo para tu perfil.</translation>
+<translation id="6322279351188361895">Se ha producido un error al leer la clave privada.</translation>
+<translation id="6391538222494443604">Debe existir el directorio de entrada.</translation>
 <translation id="641087317769093025">No se ha podido descomprimir la extensión.</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> está solicitando acceso a uno o varios de tus dispositivos:</translation>
 <translation id="657064425229075395">No se ha podido cargar la secuencia de comandos en segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Esta extensión no ha podido asignar un nombre a la descarga "<ph name="ATTEMPTED_FILENAME" />" porque otra extensión (<ph name="EXTENSION_NAME" />) ha determinado un nombre de archivo diferente "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Esta extensión no ha podido proporcionar credenciales a una solicitud de red porque otra extensión (<ph name="EXTENSION_NAME" />) ha proporcionado otras credenciales.</translation>
-<translation id="8602184400052594090">Falta el archivo de manifiesto o no se puede leer.</translation>
 <translation id="8636666366616799973">El paquete no es válido. Detalles: "<ph name="ERROR_MESSAGE" />"</translation>
 <translation id="8670869118777164560">Esta extensión no ha podido redirigir una solicitud de red a <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> porque otra extensión (<ph name="EXTENSION_NAME" />) la ha redireccionado a <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Descompresor de extensiones</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> está solicitando acceso a uno de tus dispositivos:</translation>
 <translation id="8825366169884721447">Esta extensión no ha podido modificar el encabezado de solicitud "<ph name="HEADER_NAME" />" de una solicitud de red porque la modificación ha entrado en conflicto con otra extensión (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Ya existe una clave privada para la extensión especificada. Vuelve a utilizar esa clave o elimínala primero.</translation>
+<translation id="907841381057066561">Se ha producido un error al crear un archivo .zip temporal durante la compresión.</translation>
 <translation id="9111791539553342076">Esta extensión no ha podido modificar el encabezado de respuesta "<ph name="HEADER_NAME" />" de una solicitud de red porque la modificación ha entrado en conflicto con otra extensión (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">La clave privada no es válida.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_et.xtb b/extensions/strings/extensions_strings_et.xtb
index 197588f6..ac733ab 100644
--- a/extensions/strings/extensions_strings_et.xtb
+++ b/extensions/strings/extensions_strings_et.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="et">
 <translation id="1135328998467923690">Vale pakett: „<ph name="ERROR_CODE" />”.</translation>
 <translation id="1140871961407805696">Keskkonna poole suunatud</translation>
+<translation id="1196338895211115272">Privaatvõtme eksportimine nurjus.</translation>
 <translation id="1256619696651732561">Laienduse manifesti parser</translation>
+<translation id="1420684932347524586">Oih! RSA juhusliku privaatvõtme genereerimine ebaõnnestus.</translation>
 <translation id="1445572445564823378">Laiendus aeglustab rakendust <ph name="PRODUCT_NAME" />. Peaksite selle keelama, et taastada rakenduse <ph name="PRODUCT_NAME" /> toimivus.</translation>
 <translation id="1468038450257740950">WebGL-i ei toetata.</translation>
 <translation id="149347756975725155">Laienduse ikooni <ph name="ICON" /> ei õnnestunud laadida.</translation>
 <translation id="1803557475693955505">Tagaplaanilehte <ph name="BACKGROUND_PAGE" /> ei õnnestunud laadida.</translation>
 <translation id="2159915644201199628">Ei saanud pilti dekodeerida: „<ph name="IMAGE_NAME" />”</translation>
 <translation id="2350172092385603347">Lokaliseerimist kasutatakse, kuid parameetrit default_locale ei olnud manifestis määratud.</translation>
+<translation id="2576842806987913196">Selle nimega CRX-fail on juba olemas.</translation>
 <translation id="2753617847762399167">Keelatud tee (absoluutne või suhteline üksusega '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Laiendusel ei õnnestunud võrgutaotlust muuta, kuna muutmisel tekkis vastuolu muu laiendusega.</translation>
-<translation id="2857834222104759979">Manifestifail on kehtetu.</translation>
 <translation id="2903070246402204397">Laienduse <ph name="EXTENSION_NAME" /> (laienduse ID „<ph name="EXTENSION_ID" />”) blokeeris administraator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Paketti ei saanud installida: „<ph name="ERROR_CODE" />”</translation>
 <translation id="3115238746683532089">Tundmatu toode <ph name="PRODUCT_ID" /> teenusepakkujalt <ph name="VENDOR_ID" /> (seerianumber <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx-faili asendamine ebaõnnestus. Kontrollige, kas fail on kasutusel.</translation>
 <translation id="3163201441334626963">Tundmatu toode <ph name="PRODUCT_ID" /> teenusepakkujalt <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Laiendust ei saanud lahti pakkida. Laienduse turvaliseks lahtipakkimiseks peab olema tee teie profiili kataloogi, mis algab ketast tähistava tähega ja milles ei ole sõlme, paigalduspunkti või symlinki. Sellist teed teie profiilil ei ole.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (seerianumber <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">Toode <ph name="PRODUCT_NAME" /> teenusepakkujalt <ph name="VENDOR_ID" /> (seerianumber <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Privaatvõtme sisendi väärtus peab olema kehtiv tee.</translation>
 <translation id="388442998277590542">Valikute lehte <ph name="OPTIONS_PAGE" /> ei õnnestunud laadida.</translation>
+<translation id="3984413272403535372">Laienduse allkirjastamisel ilmnes viga.</translation>
 <translation id="4115165561519362854">Seadme administraator nõuab, et kasutaksite laienduse <ph name="EXTENSION_NAME" /> puhul vähemalt versiooni <ph name="EXTENSION_VERSION" />. Laiendust ei saa lubada enne, kui see on värskendatud sellele versioonile (või uuemale versioonile).</translation>
 <translation id="4233778200880751280">Teabelehte „<ph name="ABOUT_PAGE" />” ei õnnestunud laadida.</translation>
+<translation id="471800408830181311">Privaatvõtit ei õnnestunud väljastada.</translation>
 <translation id="4811956658694082538">Paketti ei õnnestunud installida, sest utiliidiprotsess jooksis kokku. Taaskäivitage Chrome ja proovige uuesti.</translation>
+<translation id="4988792151665380515">Avalikku võtit ei õnnestunud eksportida.</translation>
 <translation id="5026754133087629784">Veebivaade: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Ei leia pakitava kataloogi absoluutteed.</translation>
 <translation id="5356315618422219272">Rakendusvaade: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Sellise kujuga aknaid ei toetata.</translation>
 <translation id="5456409301717116725">Laiendus hõlmab võtmefaili „<ph name="KEY_PATH" />”. See toiming ei ole soovitatav.</translation>
+<translation id="5486326529110362464">Privaatvõtme sisendi väärtus peab olema olemas.</translation>
 <translation id="5627523580512561598">laiendus <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Selle seadme administraator nõuab laienduse <ph name="EXTENSION_NAME" /> installimist. Seda ei saa desinstallida.</translation>
 <translation id="6027032947578871493">Tundmatu toode <ph name="PRODUCT_ID" /> teenusepakkujalt <ph name="VENDOR_NAME" /> (seerianumber <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721">Toode <ph name="PRODUCT_NAME" /> teenusepakkujalt <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Laiendust ei saanud lahti pakkida. Laienduse turvaliseks lahtipakkimiseks peab olema tee teie profiili kataloogi, milles ei ole symlinki. Sellist teed teie profiilil ei ole.</translation>
+<translation id="6322279351188361895">Privaatvõtme lugemine ei õnnestunud.</translation>
+<translation id="6391538222494443604">Olemas peab olema sisendkataloog.</translation>
 <translation id="641087317769093025">Ei saanud laiendust lahti pakkida</translation>
 <translation id="6542618148162044354">Rakendus „<ph name="APP_NAME" />” taotleb juurdepääsu ühele või mitmele teie seadmele:</translation>
 <translation id="657064425229075395">Taustaskripti „<ph name="BACKGROUND_SCRIPT" />” ei õnnestunud laadida.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Laiendus ei saanud määrata allalaaditavale failile nimeks „<ph name="ATTEMPTED_FILENAME" />”, sest teine laiendus (<ph name="EXTENSION_NAME" />) määras teise failinime „<ph name="ACTUAL_FILENAME" />”.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> teenusepakkujalt <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Laiendusel ei õnnestunud võrgutaotlusele mandaati esitada, kuna teine laiendus (<ph name="EXTENSION_NAME" />) esitas teistsuguse mandaadi.</translation>
-<translation id="8602184400052594090">Manifestifail on kadunud või ei ole seda võimalik lugeda.</translation>
 <translation id="8636666366616799973">Vale pakett. Üksikasjad: „<ph name="ERROR_MESSAGE" />”.</translation>
 <translation id="8670869118777164560">Laiendusel ei õnnestunud võrgutaotlust ümber suunata asukohta <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, kuna teine laiendus (<ph name="EXTENSION_NAME" />) suunas selle asukohta <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Laienduse lahtipakkija</translation>
 <translation id="8761756413268424715">Rakendus „<ph name="APP_NAME" />” taotleb juurdepääsu ühele teie seadmele:</translation>
 <translation id="8825366169884721447">Laiendusel ei õnnestunud muuta võrgutaotluse päist „<ph name="HEADER_NAME" />”, kuna muudatus sattus vastuollu teise laiendusega (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Määratud laiendusel on juba privaatvõti. Kasutage uuesti seda võtit või kustutage see kõigepealt.</translation>
+<translation id="907841381057066561">Pakkimisel ei õnnestunud luua ajutist ZIP-faili.</translation>
 <translation id="9111791539553342076">Laiendusel ei õnnestunud muuta võrgutaotluse vastuse päist „<ph name="HEADER_NAME" />”, kuna muudatus sattus vastuollu teise laiendusega (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Vale privaatvõti.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_fa.xtb b/extensions/strings/extensions_strings_fa.xtb
index 179dfd9..5b5ba4e 100644
--- a/extensions/strings/extensions_strings_fa.xtb
+++ b/extensions/strings/extensions_strings_fa.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="fa">
 <translation id="1135328998467923690">بسته نامعتبر است: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">رو به عقب</translation>
+<translation id="1196338895211115272">صادر کردن کلید خصوصی ناموفق بود.</translation>
 <translation id="1256619696651732561">تجزیه‌کننده مانیفست افزونه</translation>
+<translation id="1420684932347524586">‏اوه! ایجاد کلید خصوصی RSA تصادفی ناموفق بود.</translation>
 <translation id="1445572445564823378">این برنامهٔ افزودنی سرعت <ph name="PRODUCT_NAME" /> را پایین می‌آورد. شما باید برای بازیابی عملکرد <ph name="PRODUCT_NAME" /> این برنامه را غیرفعال کنید.</translation>
 <translation id="1468038450257740950">‏WebGL پشتیبانی نمی‌شود.</translation>
 <translation id="149347756975725155">بارکردن نماد پسوند "<ph name="ICON" />" ممکن نیست.</translation>
 <translation id="1803557475693955505">بارگیری صفحه پس‌زمینه "<ph name="BACKGROUND_PAGE" />" ممکن نیست.</translation>
 <translation id="2159915644201199628">رمزگشایی تصویر امکان‌پذیر نیست: «<ph name="IMAGE_NAME" />»</translation>
 <translation id="2350172092385603347">‏بومی سازی استفاده شده است، اما default_locale در اظهارنامه مشخص نشده است.</translation>
+<translation id="2576842806987913196">‏یک فایل CRX در حال حاضر با این نام وجود دارد.</translation>
 <translation id="2753617847762399167">مسیر غیرمجاز (مطلق یا نسبی با «..»): «<ph name="IMAGE_PATH" />»</translation>
 <translation id="27822970480436970">این برنامهٔ افزودنی قادر به تغییر درخواست شبکه به دلیل تغییری متداخل با یک برنامهٔ افزودنی دیگر نیست.</translation>
-<translation id="2857834222104759979">فایل اظهارنامه نامعتبر است.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (شناسه افزونه «<ph name="EXTENSION_ID" />») توسط سرپرست مسدود شده است. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">بسته نصب نشد: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">محصول نامشخص <ph name="PRODUCT_ID" /> از فروشنده <ph name="VENDOR_ID" /> (شماره سریال <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">‏فایل crx جایگزین نشد. بررسی کنید که آیا فایل در حال استفاده است یا نه.</translation>
 <translation id="3163201441334626963">محصول نامشخص <ph name="PRODUCT_ID" /> از فروشنده <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">بسته برنامهٔ افزودنی را نمی‌توان باز کرد.  برای باز کردن ایمن برنامهٔ افزودنی، باید یک مسیر در فهرست نمایهٔ شما وجود داشته باشد که با یک حرف درایو آغاز شود و فاقد یک خط اتصال، نقطه اتصال و پیوند نمادی باشد.  چنین مسیری برای نمایهٔ شما وجود ندارد.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (شماره سریال <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> از فروشنده <ph name="VENDOR_ID" /> (شماره سریال <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">مقدار ورودی برای کلید خصوصی باید یک مسیر معتبر باشد.</translation>
 <translation id="388442998277590542">صفحه گزینه‌ها "<ph name="OPTIONS_PAGE" />" بارگیری نشد.</translation>
+<translation id="3984413272403535372">هنگام امضای برنامهٔ افزودنی خطا رخ داد.</translation>
 <translation id="4115165561519362854">طبق دستور سرپرست این دستگاه باید نسخه <ph name="EXTENSION_NAME" /> حداقل <ph name="EXTENSION_VERSION" /> باشد. تا زمانی که به آن نسخه (یا بالاتر) به‌روزرسانی نشود نمی‌توان آن را فعال کرد.</translation>
 <translation id="4233778200880751280">صفحه درباره «<ph name="ABOUT_PAGE" />» بارگیری نشد.</translation>
+<translation id="471800408830181311">ارسال کلید خصوصی ناموفق بود.</translation>
 <translation id="4811956658694082538">‏بسته نصب نشد چون پردازش برنامه سودمند انجام نشد. سعی کنید chrome را راه‌اندازی مجدد نمایید و دوباره امتحان کنید.</translation>
+<translation id="4988792151665380515">صادر کردن کلید عمومی ناموفق بود.</translation>
 <translation id="5026754133087629784">وب‌نما: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">نمی‌توان مسیر کامل به دایرکتوری را برای بسته بندی پیدا کرد.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">پنجره‌های دارای اشکال مختلف پشتیبانی نمی‌شوند.</translation>
 <translation id="5456409301717116725">این برنامهٔ افزودنی شامل فایل کلید «<ph name="KEY_PATH" />» است. احتمالاً نمی‌خواهید این کار را انجام دهید.</translation>
+<translation id="5486326529110362464">مقدار ورودی برای کلید خصوصی باید وجود داشته باشد.</translation>
 <translation id="5627523580512561598">برنامهٔ افزودنی <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">سرپرست این دستگاه نصب <ph name="EXTENSION_NAME" /> را لازم می‌داند. این برنامه افزودنی نمی‌تواند حذف نصب شود.</translation>
 <translation id="6027032947578871493">محصول نامشخص <ph name="PRODUCT_ID" /> از <ph name="VENDOR_NAME" /> (شماره سریال <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> از فروشنده <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">بسته برنامهٔ افزودنی را نمی‌توان باز کرد.  برای باز کردن ایمن بسته برنامهٔ افزودنی، باید یک مسیر در فهرست نمایهٔ شما وجود داشته باشد که فاقد پیوند نمادی باشد.  چنین مسیری برای نمایهٔ شما وجود ندارد.</translation>
+<translation id="6322279351188361895">خواندن کلید خصوصی ناموفق بود.</translation>
+<translation id="6391538222494443604">دایرکتوری ورودی باید بسته شود.</translation>
 <translation id="641087317769093025">برنامه افزودنی از حالت زیپ خارج نشد</translation>
 <translation id="6542618148162044354">«<ph name="APP_NAME" />» درخواست دسترسی به یک یا چند دستگاه شما را دارد:</translation>
 <translation id="657064425229075395">بارگیری اسکریپت پس‌زمینه "<ph name="BACKGROUND_SCRIPT" />" ممکن نیست.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">این برنامه افزودنی نتوانست نام‌گذاری بارگیری «<ph name="ATTEMPTED_FILENAME" />» را انجام دهد زیرا یک برنامه افزودنی دیگر (<ph name="EXTENSION_NAME" />) نام فایل دیگری «<ph name="ACTUAL_FILENAME" />» را تعیین کرد.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> از <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">این فایل افزودنی نتوانست مدارک صلاحیت درخواست شبکه را ارائه دهد چون فایل افزودنی دیگری (<ph name="EXTENSION_NAME" />) مدارک صلاحیت دیگری را ارائه کرده است.</translation>
-<translation id="8602184400052594090">فایل اظهارنامه وجود ندارد یا قابل خواندن نیست.</translation>
 <translation id="8636666366616799973">بسته نامعتبر است. جزئیات: "<ph name="ERROR_MESSAGE" />"</translation>
 <translation id="8670869118777164560">این فایل افزودنی نتوانست درخواست شبکه را به <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> مجدداً هدایت کند چون فایل افزودنی دیگری (<ph name="EXTENSION_NAME" />) آن را به <ph name="ACTUAL_REDIRECT_DESTINATION" /> مجدداً هدایت کرد.</translation>
 <translation id="8712265948125780616">بازکننده بسته افزونه</translation>
 <translation id="8761756413268424715">«<ph name="APP_NAME" />» درخواست دسترسی به یکی از دستگاه‌های شما را دارد:</translation>
 <translation id="8825366169884721447">این فایل افزودنی نتوانست عنوان درخواست «<ph name="HEADER_NAME" />» درخواست شبکه را تغییر دهد چون تغییر با فایل افزودنی دیگر (<ph name="EXTENSION_NAME" />) تناقض داشت.</translation>
+<translation id="8885905466771744233">کلید خصوصی برای برنامهٔ افزودنی مشخص شده از قبل وجود دارد. از آن کلید مجدداً استفاده کنید یا ابتدا آن را حذف کنید.</translation>
+<translation id="907841381057066561">ایجاد فایل فشرده موقت هنگام بسته بندی ناموفق بود.</translation>
 <translation id="9111791539553342076">این فایل افزودنی نتوانست عنوان پاسخ «<ph name="HEADER_NAME" />» درخواست شبکه را تغییر دهد چون تغییر با فایل افزودنی دیگر نتاقض داشت (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">کلید خصوصی نامعتبر.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_fi.xtb b/extensions/strings/extensions_strings_fi.xtb
index bfe37c3..6bbb1b4 100644
--- a/extensions/strings/extensions_strings_fi.xtb
+++ b/extensions/strings/extensions_strings_fi.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="fi">
 <translation id="1135328998467923690">Paketti on virheellinen: <ph name="ERROR_CODE" />.</translation>
 <translation id="1140871961407805696">Ympäristöä kuvaava</translation>
+<translation id="1196338895211115272">Yksityisen avaimen vienti epäonnistui.</translation>
 <translation id="1256619696651732561">Laajennusluettelon jäsentäjä</translation>
+<translation id="1420684932347524586">Hups! Satunnaisen yksityisen RSA-avaimen luominen epäonnistui.</translation>
 <translation id="1445572445564823378">Tämä laajennus hidastaa tuotetta <ph name="PRODUCT_NAME" />. Poista laajennus käytöstä tehostaaksesi tuotteen <ph name="PRODUCT_NAME" /> toimintaa.</translation>
 <translation id="1468038450257740950">WebGL:ää ei tueta.</translation>
 <translation id="149347756975725155">Laajennuskuvakkeen <ph name="ICON" /> lataaminen ei onnistunut.</translation>
 <translation id="1803557475693955505">Taustasivun <ph name="BACKGROUND_PAGE" /> lataaminen ei onnistunut.</translation>
 <translation id="2159915644201199628">Kuvan koodin purkaminen epäonnistui: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Lokalisaatiota käytetään, mutta default_locale ei ole määritetty luettelossa.</translation>
+<translation id="2576842806987913196">Tämän niminen CRX-tiedosto on jo olemassa.</translation>
 <translation id="2753617847762399167">Luvaton polku (absoluuttinen tai kohteeseen '..' liittyvä): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Tämä laajennus ei voinut muuttaa verkkopyyntöä, koska muutos on ristiriidassa toisen laajennuksen kanssa.</translation>
-<translation id="2857834222104759979">Luettelotiedosto on virheellinen.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (tunnus <ph name="EXTENSION_ID" />) on järjestelmänvalvojan estämä. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Paketin <ph name="ERROR_CODE" /> asentaminen epäonnistui.</translation>
 <translation id="3115238746683532089">Tuntematon tuote <ph name="PRODUCT_ID" /> toimittajalta <ph name="VENDOR_ID" /> (sarjanumero <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">CRX-tiedoston korvaaminen epäonnistui. Tarkista, onko tiedosto käytössä.</translation>
 <translation id="3163201441334626963">Tuntematon tuote <ph name="PRODUCT_ID" /> toimittajalta <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Laajennuksen purkaminen epäonnistui. Voit purkaa laajennuksen määrittämällä polun profiilihakemistoon, joka alkaa kiintolevyn kirjaimella eikä sisällä liitos- tai liityntäkohtaa tai symlink-määritettä. Profiilissasi ei ole kyseistä polkua.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (sarjanumero <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> toimittajalta <ph name="VENDOR_ID" /> (sarjanumero <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Yksityisen avaimen syötearvon täytyy olla kelvollinen polku.</translation>
 <translation id="388442998277590542">Asetussivun <ph name="OPTIONS_PAGE" /> lataaminen epäonnistui.</translation>
+<translation id="3984413272403535372">Virhe allekirjoittaessa varmennetta.</translation>
 <translation id="4115165561519362854">Tämän laitteen järjestelmänvalvoja edellyttää laajennuksen <ph name="EXTENSION_NAME" /> version olevan vähintään <ph name="EXTENSION_VERSION" />. Laajennusta ei voida ottaa käyttöön ennen kuin se on päivitetty kyseiseen tai sitä uudempaan versioon.</translation>
 <translation id="4233778200880751280">Tietosivun <ph name="ABOUT_PAGE" /> lataus epäonnistui.</translation>
+<translation id="471800408830181311">Yksityisen avaimen tulostus ei onnistunut.</translation>
 <translation id="4811956658694082538">Pakettia ei voi asentaa, koska apuohjelmaprosessi kaatui. Käynnistä Chrome uudelleen ja yritä uudelleen.</translation>
+<translation id="4988792151665380515">Julkisen avaimen vienti epäonnistui.</translation>
 <translation id="5026754133087629784">Verkkonäkymä: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Pakattavaan tiedostoon ei löydy absoluuttista polkua.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Muotoiltuja ikkunoita ei tueta.</translation>
 <translation id="5456409301717116725">Tämä laajennus sisältää avaintiedoston <ph name="KEY_PATH" />. Et todennäköisesti halua sitä.</translation>
+<translation id="5486326529110362464">Yksityisen avaimen syötearvoa ei ole olemassa.</translation>
 <translation id="5627523580512561598">laajennus <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Tämän laitteen järjestelmänvalvoja on määrittänyt, että laitteessa täytyy olla <ph name="EXTENSION_NAME" />. Laajennusta ei voi poistaa.</translation>
 <translation id="6027032947578871493">Tuntematon laite <ph name="PRODUCT_ID" /> toimittajalta <ph name="VENDOR_NAME" /> (sarjanumero <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> toimittajalta <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Laajennuksen purkaminen epäonnistui. Voit purkaa laajennuksen määrittämällä polun profiilihakemistoon, joka ei sisällä symlink-määritettä. Profiilissasi ei ole kyseistä polkua.</translation>
+<translation id="6322279351188361895">Yksityisen avaimen lukeminen epäonnistui.</translation>
+<translation id="6391538222494443604">Syöttöhakemistoa ei ole olemassa.</translation>
 <translation id="641087317769093025">Laajennuksen purkaminen epäonnistui</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> pyytää oikeutta käyttää yhtä tai useampaa laitettasi:</translation>
 <translation id="657064425229075395">Taustakoodin <ph name="BACKGROUND_SCRIPT" /> lataaminen epäonnistui.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Laajennus ei voinut antaa lataukselle nimeä <ph name="ATTEMPTED_FILENAME" />, koska toinen laajennus (<ph name="EXTENSION_NAME" />) määritti toisen tiedostonimen (<ph name="ACTUAL_FILENAME" />).</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> myyjältä <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Tämä laajennus ei antanut käyttöoikeustietoja verkkopyynnölle, koska toinen laajennus (<ph name="EXTENSION_NAME" />) antoi toiset käyttöoikeustiedot.</translation>
-<translation id="8602184400052594090">Luettelotiedosto puuttuu tai sitä ei voi lukea.</translation>
 <translation id="8636666366616799973">Paketti on virheellinen. Tietoja: <ph name="ERROR_MESSAGE" />.</translation>
 <translation id="8670869118777164560">Tämä laajennus ei uudelleenohjannut verkkopyyntöä kohteeseen <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, koska toinen laajennus (<ph name="EXTENSION_NAME" />) uudelleenohjasi sen kohteeseen <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Laajennuksien purkaja</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> pyytää oikeutta käyttää yhtä laitteistasi:</translation>
 <translation id="8825366169884721447">Tämä laajennus ei muokannut verkkopyynnön otsikkoa <ph name="HEADER_NAME" />, koska muokkaus oli ristiriidassa toisen laajennuksen (<ph name="EXTENSION_NAME" />) kanssa.</translation>
+<translation id="8885905466771744233">Kyseiselle laajennukselle on jo olemassa yksityinen avain. Käytä tätä avainta tai poista se ensin.</translation>
+<translation id="907841381057066561">Väliaikaisen zip-tiedoston luominen pakkauksen aikana epäonnistui.</translation>
 <translation id="9111791539553342076">Tämä laajennus ei muokannut verkkopyynnön vastauksen otsikkoa <ph name="HEADER_NAME" />, koska muokkaus oli ristiriidassa toisen laajennuksen (<ph name="EXTENSION_NAME" />) kanssa.</translation>
+<translation id="941543339607623937">Virheellinen yksityinen avain.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_fil.xtb b/extensions/strings/extensions_strings_fil.xtb
index e851e2e4d..586b63c 100644
--- a/extensions/strings/extensions_strings_fil.xtb
+++ b/extensions/strings/extensions_strings_fil.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="fil">
 <translation id="1135328998467923690">Di-wasto ang package: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Nakaharap sa paligid</translation>
+<translation id="1196338895211115272">Nabigong i-export ang pribadong key.</translation>
 <translation id="1256619696651732561">Pang-parse ng Manifest ng Extension</translation>
+<translation id="1420684932347524586">Hala! Nabigong mabuo ang random RSA pribadong key.</translation>
 <translation id="1445572445564823378">Pinapabagal ng extension na ito ang <ph name="PRODUCT_NAME" />. Dapat mo itong huwag paganahin upang ipanumbalik ang pagganap ng <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">Hindi sinusuportahan ang WebGL.</translation>
 <translation id="149347756975725155">Maaaring hindi mai-load ang icon ng extension '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">Maaaring hindi mai-load ang pahina ng background '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">Hindi ma-decode ang larawan: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Ginamit ang localization , subalit hindi natukoy ang default_locale sa manipesto.</translation>
+<translation id="2576842806987913196">Mayroon nang isang CRX file na may ganitong pangalan.</translation>
 <translation id="2753617847762399167">Ilegal na daanan (ganap o may kaugnayan sa '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Nabigong bawiin ng extension na ito ang isang kahilingan ng network dahil sumalungat ang pagbabago sa isa pang extension.</translation>
-<translation id="2857834222104759979">Di-wasto ang manifest file.</translation>
 <translation id="2903070246402204397">Na-block ng administrator ang <ph name="EXTENSION_NAME" /> (extension ID "<ph name="EXTENSION_ID" />"). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Hindi ma-install ang package: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Hindi kilalang produkto na <ph name="PRODUCT_ID" /> mula sa vendor na <ph name="VENDOR_ID" /> (serial number na <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Nabigong palitan ang crx na file. Tingnan upang malaman kung ginagamit ang file.</translation>
 <translation id="3163201441334626963">Hindi kilalang produkto na <ph name="PRODUCT_ID" /> mula sa vendor na <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Hindi ma-unpack ang extension.  Upang ligtas na ma-unpack ang isang extension, dapat na mayroong daanan patungo sa iyong direktoryo ng profile na nagsisimula sa isang drive letter at walang nilalamang junction, mount point, o symlink.  Walang ganoong daanan ang umiiral para sa iyong profile.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serial number na <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> mula sa vendor na <ph name="VENDOR_ID" /> (serial number na <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Dapat na wastong path ang input na halaga para sa pribadong key.</translation>
 <translation id="388442998277590542">Hindi ma-load ang pahina ng mga pagpipilian na '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Nagka-error habang linalagdaan ang extension.</translation>
 <translation id="4115165561519362854">Iniaatas ng administrator ng computer na ito sa <ph name="EXTENSION_NAME" /> na magkaroon ng minimum na bersyon na <ph name="EXTENSION_VERSION" />. Hindi ito mae-enable hanggang sa ma-update ito sa bersyong iyon (o mas bago).</translation>
 <translation id="4233778200880751280">Hindi ma-load ang page na tungkol dito na '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Nabigong ilabas ang pribadong key.</translation>
 <translation id="4811956658694082538">Hindi na-install ang package dahil nag-crash ang isang proseso ng utility. Subukang i-restart ang Chrome at subukang muli.</translation>
+<translation id="4988792151665380515">Nabigong i-export ang pampublikong key.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Hindi mahanap ang ganap na daanan sa direktoryo sa pack.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Hindi sinusuportahan ang mga may hugis na window.</translation>
 <translation id="5456409301717116725">Kasama sa extension na ito ang key file na '<ph name="KEY_PATH" />'. Malamang na hindi mo iyon gustong gawin.</translation>
+<translation id="5486326529110362464">Dapat na umiiral ang halaga ng input para sa pribadong key.</translation>
 <translation id="5627523580512561598">extension na <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Kinakailangan ng administrator ng machine na ito na naka-install ang <ph name="EXTENSION_NAME" />. Hindi ito maaaring i-uninstall.</translation>
 <translation id="6027032947578871493">Hindi kilalang produkto na <ph name="PRODUCT_ID" /> mula sa <ph name="VENDOR_NAME" /> (serial number na <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> mula sa vendor na <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Hindi ma-unpack ang extension.  Upang ligtas na ma-unpack ang isang extension, dapat na mayroong daanan patungo sa iyong direktoryo ng profile na walang nilalamang symlink.  Walang naturang daanan ang umiiral para sa iyong profile.</translation>
+<translation id="6322279351188361895">Nabigong basahin ang pribadong key.</translation>
+<translation id="6391538222494443604">Dapat na umiiral ang direktoryo ng input.</translation>
 <translation id="641087317769093025">Hindi ma-unzip ang extension</translation>
 <translation id="6542618148162044354">Humihiling ang "<ph name="APP_NAME" />" ng access sa isa o higit pa sa iyong mga device:</translation>
 <translation id="657064425229075395">Hindi ma-load ang script ng background na '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Nabigong pangalanan ng extension na ito ang download na "<ph name="ATTEMPTED_FILENAME" />" dahil nakatukoy ang isa pang extension (<ph name="EXTENSION_NAME" />) ng ibang filename na "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> mula sa <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Nabigo ang extension na ito na magbigay ng mga kredensyal sa isang kahilingan sa network dahil may isa pang extension (<ph name="EXTENSION_NAME" />) na nagbigay ng ibang mga kredensyal.</translation>
-<translation id="8602184400052594090">Nawawala o hindi mabasa ang manifest file.</translation>
 <translation id="8636666366616799973">Di-wasto ang package. Mga Detalye: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Nabigo ang extension na ito na mag-redirect ng kahilingan sa network sa <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> dahil may isa pang extension (<ph name="EXTENSION_NAME" />) na nag-redirect nito sa <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Pang-unpack ng Extension</translation>
 <translation id="8761756413268424715">Humihiling ang "<ph name="APP_NAME" />" ng access sa isa sa iyong mga device:</translation>
 <translation id="8825366169884721447">Nabigo ang extension na ito na baguhin ang header ng kahilingan na "<ph name="HEADER_NAME" />" ng isang kahilingan sa network dahil sumalungat ang pagbabago sa isa pang extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Umiiral na ang pribadong key para sa tinukoy na extension. Gamiting muli ang key na iyon o tanggalin muna ito.</translation>
+<translation id="907841381057066561">Nabigo sa paglikha ng pansamantalang zip file sa oras ng packaging.</translation>
 <translation id="9111791539553342076">Nabigo ang extension na ito na baguhin ang header ng tugon na "<ph name="HEADER_NAME" />" ng isang kahilingan sa network dahil sumalungat ang pagbabago sa isa pang extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Di-wastong pribadong key.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_fr.xtb b/extensions/strings/extensions_strings_fr.xtb
index 4e8d670..36ad919 100644
--- a/extensions/strings/extensions_strings_fr.xtb
+++ b/extensions/strings/extensions_strings_fr.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="fr">
 <translation id="1135328998467923690">Package incorrect : "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Caméra arrière</translation>
+<translation id="1196338895211115272">Échec d'exportation de la clé privée</translation>
 <translation id="1256619696651732561">Analyse des fichiers manifestes des extensions</translation>
+<translation id="1420684932347524586">Échec de génération de clé privée RSA aléatoire</translation>
 <translation id="1445572445564823378">Cette extension ralentit <ph name="PRODUCT_NAME" />. Vous devez la désactiver pour rétablir les performances de <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL n'est pas compatible.</translation>
 <translation id="149347756975725155">Impossible de charger l'icône de l'extension "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Impossible de charger la page d'arrière-plan "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Impossible de décoder l'image : "<ph name="IMAGE_NAME" />".</translation>
 <translation id="2350172092385603347">Localisation utilisée, mais les paramètres régionaux par défaut (default_locale) n'ont pas été indiqués dans le manifeste. </translation>
+<translation id="2576842806987913196">Un autre fichier CRX portant le même nom existe déjà.</translation>
 <translation id="2753617847762399167">Chemin (absolu ou par rapport à "..") non valide : "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Cette extension n'a pas réussi à modifier une requête réseau, car la modification était en conflit avec une autre extension.</translation>
-<translation id="2857834222104759979">Le fichier manifeste est incorrect.</translation>
 <translation id="2903070246402204397">L'administrateur a bloqué l'extension <ph name="EXTENSION_NAME" /> (ID : <ph name="EXTENSION_ID" />). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Impossible d'installer le package : "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Produit inconnu <ph name="PRODUCT_ID" /> du fournisseur <ph name="VENDOR_ID" /> (numéro de série : <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Échec lors du remplacement du fichier CRX. Vérifiez qu'il n'est pas en cours d'utilisation.</translation>
 <translation id="3163201441334626963">Produit inconnu <ph name="PRODUCT_ID" /> du fournisseur <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Impossible d'extraire les fichiers de l'extension. Pour effectuer cette opération en toute sécurité, vous devez disposer d'un chemin d'accès à votre répertoire de profils commençant par une lettre de lecteur et ne contenant ni jonction, ni point de montage, ni lien symbolique. Aucun chemin de ce type n'existe pour votre profil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (numéro de série : <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> du fournisseur <ph name="VENDOR_ID" /> (numéro de série : <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Vous devez indiquer un chemin valide comme valeur de clé privée.</translation>
 <translation id="388442998277590542">Impossible de charger la page d'options "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Erreur lors de la signature de l'extension</translation>
 <translation id="4115165561519362854">L'administrateur de cette machine exige que <ph name="EXTENSION_NAME" /> dispose, au minimum, de la version <ph name="EXTENSION_VERSION" />. L'activation sera impossible tant que la mise à jour vers cette version (ou une version ultérieure) n'aura pas été effectuée.</translation>
 <translation id="4233778200880751280">Impossible de charger la page "À propos" <ph name="ABOUT_PAGE" />.</translation>
+<translation id="471800408830181311">Échec de création de clé privée</translation>
 <translation id="4811956658694082538">Impossible d'installer le package en raison du plantage d'un processus associé à un utilitaire. Veuillez redémarrer Chrome, puis réessayer.</translation>
+<translation id="4988792151665380515">Échec d'exportation de la clé publique</translation>
 <translation id="5026754133087629784">Affichage du site Web : <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Impossible de trouver le chemin d'accès absolu du répertoire à empaqueter.</translation>
 <translation id="5356315618422219272">Appview : <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Les fenêtres mises en forme ne sont pas acceptées.</translation>
 <translation id="5456409301717116725">Cette extension comprend le fichier clé <ph name="KEY_PATH" />. Vous ne voulez probablement pas poursuivre.</translation>
+<translation id="5486326529110362464">La valeur d'entrée de la clé privée est obligatoire.</translation>
 <translation id="5627523580512561598">Extension <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView : <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">L'administrateur de cet ordinateur exige que l'extension <ph name="EXTENSION_NAME" /> soit installée. Cette extension ne pourra pas être désinstallée.</translation>
 <translation id="6027032947578871493">Produit inconnu <ph name="PRODUCT_ID" /> fourni par <ph name="VENDOR_NAME" /> (numéro de série : <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> du fournisseur <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Impossible d'extraire les fichiers de l'extension. Pour effectuer cette opération en toute sécurité, vous devez disposer d'un chemin d'accès à votre répertoire de profils ne contenant pas de lien symbolique. Aucun chemin de ce type n'existe pour votre profil.</translation>
+<translation id="6322279351188361895">Échec de lecture de la clé privée</translation>
+<translation id="6391538222494443604">Le répertoire d'extensions est obligatoire.</translation>
 <translation id="641087317769093025">Impossible de décompresser l'extension.</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> demande l'accès à un ou plusieurs de vos appareils :</translation>
 <translation id="657064425229075395">Impossible de charger le script d'arrière-plan "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Échec de l'attribution du nom "<ph name="ATTEMPTED_FILENAME" />" au fichier téléchargé via l'extension, car un nom de fichier différent, "<ph name="ACTUAL_FILENAME" />", a été attribué via une autre extension (<ph name="EXTENSION_NAME" />).</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Des certificats n'ont pas pu être fournis à la requête réseau par cette extension, car des certificats différents ont été fournis par une autre extension (<ph name="EXTENSION_NAME" />).</translation>
-<translation id="8602184400052594090">Fichier manifeste absent ou illisible</translation>
 <translation id="8636666366616799973">Package incorrect. Détails : "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Une requête réseau n'a pas pu être redirigée vers <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> par cette extension, car elle a été redirigée vers <ph name="ACTUAL_REDIRECT_DESTINATION" /> par une autre extension (<ph name="EXTENSION_NAME" />).</translation>
 <translation id="8712265948125780616">Décompression d'extensions</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> demande l'accès à l'un de vos appareils :</translation>
 <translation id="8825366169884721447">Le titre de demande d'une requête réseau ("<ph name="HEADER_NAME" />") n'a pas pu être modifié à partir de cette extension, car la modification demandée était en conflit avec une autre extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">L'extension indiquée est déjà associée à une clé privée. Utilisez cette clé ou supprimez-la.</translation>
+<translation id="907841381057066561">Échec de création du fichier zip temporaire lors de la création du pack</translation>
 <translation id="9111791539553342076">Le titre de réponse d'une requête réseau ("<ph name="HEADER_NAME" />") n'a pas pu être modifié à partir de cette extension, car la modification demandée était en conflit avec une autre extension (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Clé privée non valide.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_gu.xtb b/extensions/strings/extensions_strings_gu.xtb
index 708ae49..1f0c225 100644
--- a/extensions/strings/extensions_strings_gu.xtb
+++ b/extensions/strings/extensions_strings_gu.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="gu">
 <translation id="1135328998467923690">પૅકેજ અમાન્ય છે : '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">પાછળનો કૅમેરો</translation>
+<translation id="1196338895211115272">ખાનગી કી નિકાસ કરવામાં નિષ્ફળ.</translation>
 <translation id="1256619696651732561">વિસ્તાર મેનીફેસ્ટ વિશ્લેશક</translation>
+<translation id="1420684932347524586">અરેરે! રેંડમ RSA ખાનગી કી જનરેટ કરવામાં નિષ્ફળ.</translation>
 <translation id="1445572445564823378">આ એક્સ્ટેંશન <ph name="PRODUCT_NAME" /> ને ધીમુ કરી રહ્યું છે. <ph name="PRODUCT_NAME" /> ના પ્રદર્શનને પુનર્સ્થાપિત કરવા માટે તમારે તેને અક્ષમ કરવું જોઈએ. </translation>
 <translation id="1468038450257740950">WebGL સમર્થિત નથી.</translation>
 <translation id="149347756975725155">એક્સ્ટેંશન આયકન '<ph name="ICON" />' લોડ કરી શકાયું નથી.</translation>
 <translation id="1803557475693955505">પૃષ્ઠભૂમિ પૃષ્ઠ '<ph name="BACKGROUND_PAGE" />' લોડ કરી શકાયું નથી.</translation>
 <translation id="2159915644201199628">છબીને ડિકોડ કરી શક્યાં નથી: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">લૉકલાઇઝેશન વપરાયુ, પરંતુ default_locale નો ઉલ્લેખ મેનિફેસ્ટમાં નહોતો.</translation>
+<translation id="2576842806987913196">આ નામવાળી એક CRX ફાઇલ પહેલાથી જ અસ્તિત્વમાં છે.</translation>
 <translation id="2753617847762399167">ગેરકાયદેસર પાથ (નિરપેક્ષ અથવા '..' સાથે સંબંધિત): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">આ એક્સ્ટેંશન નેટવર્ક વિનંતીનું સંશોધન કરવામાં નિષ્ફળ રહ્યું છે કારણ કે સંશોધન બીજા એક્સ્ટેંશનથી વિરોધાભાસી છે.</translation>
-<translation id="2857834222104759979">મેનિફેસ્ટ ફાઇલ અમાન્ય છે.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (એક્સ્ટેન્શન ID "<ph name="EXTENSION_ID" />")ને વ્યવસ્થાપક દ્વારા અવરોધિત કરવામાં આવેલ છે. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">પૅકેજ ઇન્સ્ટોલ કરી શકાયું નહીં: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> વિક્રેતાનું અજાણ્યું ઉત્પાદન <ph name="PRODUCT_ID" /> (શૃંખલા ક્રમાંક <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ફાઇલ બદલવામાં નિષ્ફળ થયું. ફાઇલ ઉપયોગમાં છે કે નહીં તે જોવા માટે તપાસો.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> વિક્રેતાનું અજાણ્યું ઉત્પાદન <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">એક્સ્ટેંશન અનપૅક કરી શકાતું નથી. એક્સ્ટેંશનને સુરક્ષિત રીતે અનપૅક કરવા માટે, તમારી પ્રોફાઇલ નિર્દેશિકાનો પાથ હોવો જોઈએ જે ડ્રાઇવ અક્ષરથી શરૂ થતો હોય અને કોઈ જંક્શન, માઉન્ટ પોઇન્ટ અથવા સિમલિંક ધરાવતો ન હોય. આવો કોઈ પાથ તમારી પ્રોફાઇલ માટે અસ્તિત્વમાં નથી.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (શૃંખલા ક્રમાંક <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> વિક્રેતા તરફથી <ph name="PRODUCT_NAME" /> (શૃંખલા ક્રમાંક <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ખાનગી કી માટેનું ઇનપુટ મૂલ્ય એ એક માન્ય પાથ હોવો આવશ્યક છે.</translation>
 <translation id="388442998277590542">વિકલ્પોનું પૃષ્ઠ '<ph name="OPTIONS_PAGE" />' લોડ કરી શકાયું નથી.</translation>
+<translation id="3984413272403535372">એક્સટેંશન હસ્તાક્ષરિત કરતી વખતે ભૂલ.</translation>
 <translation id="4115165561519362854">આ મશીનનાં વ્યવસ્થાપકને <ph name="EXTENSION_VERSION" /> ના ન્યૂનતમ સંસ્કરણ માટે <ph name="EXTENSION_NAME" /> ની જરૂર છે. તે જ્યાં સુધી તે સંસ્કરણ (અથવા તે પછીના) પર અપડેટ ન થાય ત્યાં સુધી સક્ષમ થઈ શકતું નથી.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' વિશે પૃષ્ઠ લોડ કરી શકાયું નથી.</translation>
+<translation id="471800408830181311">ખાનગી કી બનાવવામાં નિષ્ફળ.</translation>
 <translation id="4811956658694082538">એક ઉપયોગિતા પ્રક્રિયા ક્રેશ થઈ હોવાને કારણે પૅકેજ ઇન્સ્ટોલ કરી શકાયું નથી. Chrome પુનઃપ્રારંભ કરી અને ફરીથી પ્રયાસ કરવાનો પ્રયાસ કરો.</translation>
+<translation id="4988792151665380515">ખાનગી કી નિકાસ કરવામાં નિષ્ફળ.</translation>
 <translation id="5026754133087629784">વેબવ્યુ: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">પૅક કરવા માટે ડાયરેક્ટરીનો સંપૂર્ણ પાથ શોધી શકાતો નથી.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">આકારિત વિંડોઝ સમર્થિત નથી.</translation>
 <translation id="5456409301717116725">આ એક્સટેન્શનમાં '<ph name="KEY_PATH" />' કી ફાઇલ શામેલ છે. તમે કદાચ એ કરવા માંગતા નથી.</translation>
+<translation id="5486326529110362464">ખાનગી કી માટે ઇનપુટ મૂલ્ય અસ્તિત્વમાં હોવું જોઈએ.</translation>
 <translation id="5627523580512561598">એક્સ્ટેંશન <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">આ મશીનના વ્યવસ્થાપક માટે <ph name="EXTENSION_NAME" /> ઇન્સ્ટોલ કરેલું હોવું જરૂરી છે. તે અનઇન્સ્ટોલ કરી શકાતું નથી.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> વિક્રેતાનું અજાણ્યું ઉત્પાદન <ph name="PRODUCT_ID" /> (શૃંખલા ક્રમાંક <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> વિક્રેતા તરફથી <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">એક્સ્ટેંશન અનપૅક કરી શકાતું નથી. એક્સ્ટેંશનને સુરક્ષિત રીતે અનપૅક કરવા માટે, તમારી પ્રોફાઇલ નિર્દેશિકાનો પાથ હોવો જોઈએ જે સિમલિંક ધરાવતો ન હોય. આવો કોઈ પાથ તમારી પ્રોફાઇલ માટે અસ્તિત્વમાં નથી.</translation>
+<translation id="6322279351188361895">ખાનગી કી વાંચવામાં નિષ્ફળ છે.</translation>
+<translation id="6391538222494443604">ઇનપુટ નિર્દેશિકા અસતિત્વમાં હોવી જોઈએ. </translation>
 <translation id="641087317769093025">એક્સ્ટેન્શન અનઝિપ કરી શકાયું નથી</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />", તમારા એક અથવા વધુ ઉપકરણો પરની ઍક્સેસની વિનંતી કરી રહ્યું છે:</translation>
 <translation id="657064425229075395">પૃષ્ઠભૂમિ સ્ક્રિપ્ટ '<ph name="BACKGROUND_SCRIPT" />' લોડ કરી શકાઈ નથી.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">આ એક્સટેન્શન "<ph name="ATTEMPTED_FILENAME" />" ને ડાઉનલોડ નામ આપવામાં નિષ્ફળ થયું કારણ કે અન્ય એક્સટેન્શન (<ph name="EXTENSION_NAME" />) એ એક જુદું ફાઇલનામ "<ph name="ACTUAL_FILENAME" />" નક્કી કર્યું છે.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> તરફથી <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">આ એક્સટેન્શન એક નેટવર્ક વિનંતીને ઓળખપત્ર પ્રદાન કરવામાં નિષ્ફળ થયું કારણ કે અન્ય એક્સટેન્શન (<ph name="EXTENSION_NAME" />) એ વિવિધ ઓળખપત્ર પ્રદાન કર્યાં છે.</translation>
-<translation id="8602184400052594090">મેનિફેસ્ટ ફાઇલ ખૂટે છે અથવા વાંચવાયોગ્ય નથી.</translation>
 <translation id="8636666366616799973">પૅકેજ અમાન્ય છે. વિગતો: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">આ એક્સટેન્શન એક નેટવર્ક વિનંતીને <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> પર રીડાયરેક્ટ કરવામાં નિષ્ફળ થયું કારણ કે અન્ય એક્સટેન્શન (<ph name="EXTENSION_NAME" />) એ તેને <ph name="ACTUAL_REDIRECT_DESTINATION" /> પર રીડાયરેક્ટ કર્યું છે.</translation>
 <translation id="8712265948125780616">વિસ્તાર અનપેકર</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />", તમારા ઉપકરણો પૈકી એક પરની ઍક્સેસની વિનંતી કરી રહ્યું છે:</translation>
 <translation id="8825366169884721447">આ એક્સટેન્શન એક નેટવર્ક વિનંતીની વિનંતી હેડર "<ph name="HEADER_NAME" />" ને સંશોધિત કરવામાં નિષ્ફળ થયુ કારણ કે સંશોધિકરણ અન્ય એક્સટેન્શન (<ph name="EXTENSION_NAME" />) સાથે વિરોધાભાસી છે.</translation>
+<translation id="8885905466771744233">ઉલ્લેખિત એક્સટેન્શન માટે ખાનગી કી પહેલાંથી અસતિત્વમાં છે. તે કી ફરીથી વાપરો અથવા પહેલા તેને કાઢી નાખો.</translation>
+<translation id="907841381057066561">પૅકેજીંગ દરમિયાન અસ્થાયી ઝિપ ફાઇલ બનાવવામાં નિષ્ફળ.</translation>
 <translation id="9111791539553342076">આ એક્સટેન્શન એક નેટવર્ક વિનંતીની પ્રતિભાવ હેડર "<ph name="HEADER_NAME" />" ને સંશોધિત કરવામાં નિષ્ફળ થયું કારણ કે સંશોધિકરણ અન્ય એક્સટેન્શન (<ph name="EXTENSION_NAME" />) સાથે વિરોધાભાસી છે.</translation>
+<translation id="941543339607623937">અમાન્ય ખાનગી કી.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_hi.xtb b/extensions/strings/extensions_strings_hi.xtb
index 57bb857..b0bb319 100644
--- a/extensions/strings/extensions_strings_hi.xtb
+++ b/extensions/strings/extensions_strings_hi.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="hi">
 <translation id="1135328998467923690">पैकेज अमान्य है: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">पीछे वाला कैमरा</translation>
+<translation id="1196338895211115272">निजी कुंजी निर्यात करने में विफल.</translation>
 <translation id="1256619696651732561">एक्‍सटेंशन मेनिफ़ेस्‍ट पार्सर</translation>
+<translation id="1420684932347524586">ओह! यादृच्छिक RSA निजी कुंजी जेनरेट करने में विफल.</translation>
 <translation id="1445572445564823378">यह एक्‍सटेंशन धीमा हो रहा है <ph name="PRODUCT_NAME" />. आपको <ph name="PRODUCT_NAME" /> का निष्पादन पुनर्स्‍थापित करने के लिए इसे अक्षम करना चाहिए.</translation>
 <translation id="1468038450257740950">WebGL समर्थित नहीं है.</translation>
 <translation id="149347756975725155">एक्सटेंशन आइकन '<ph name="ICON" />' लोड नहीं कर सका.</translation>
 <translation id="1803557475693955505">पेजभूमि पेज '<ph name="BACKGROUND_PAGE" />' को लोड नहीं कर सका.</translation>
 <translation id="2159915644201199628">चित्र को डीकोड नहीं किया जा सका: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">स्थानीयकरण का उपयोग किया गया, लेकिन default_locale को मालसूची में निर्दिष्ट नहीं किया गया था.</translation>
+<translation id="2576842806987913196">इस नाम वाली CRX फ़ाइल पहले से ही मौजूद है.</translation>
 <translation id="2753617847762399167">गलत पथ (पूर्ण या '..' से संबंधित): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">य‍ह एक्‍सटेंशन, नेटवर्क अनुरोध संशोधित करने में विफल रहा क्‍योंकि संशोधन का अन्‍य एक्‍सटेंशन के साथ विरोध हुआ.</translation>
-<translation id="2857834222104759979">मालसूची फ़ाइल अमान्य है.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (एक्सटेंशन आईडी "<ph name="EXTENSION_ID" />") को व्यवस्थापक ने अवरोधित किया है. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">पैकेज इंस्टॉल नहीं कर सका: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> (क्रमांक <ph name="SERIAL_NUMBER" />) विक्रेता की ओर से <ph name="PRODUCT_ID" /> अज्ञात उत्पाद</translation>
+<translation id="3144135466825225871">crx फ़ाइल बदलने में विफल. यह देखने के लिए जाँच करें कि क्या फ़ाइल उपयोग में है.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> की ओर से अज्ञात <ph name="PRODUCT_ID" /> उत्पाद</translation>
 <translation id="3369521687965833290">एक्सटेंशन को अनपैक नहीं कर सका.  किसी एक्सटेंशन को सुरक्षित रूप से अनपैक करने के लिए आपकी प्रोफ़ाइल निर्देशिका में एक ऐसा पथ होना आवश्यक है, जिसमें कोई सिमलिंक न हो.  ऐसा कोई भी पथ आपकी प्रोफ़ाइल के लिए मौजूद नहीं है.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (क्रमांक <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> (क्रमांक <ph name="SERIAL_NUMBER" />) विक्रेता की ओर से <ph name="PRODUCT_NAME" /></translation>
+<translation id="3561217442734750519">निजी कुंजी के लिए इनपुट मान एक मान्य पथ होना चाहिए.</translation>
 <translation id="388442998277590542">विकल्‍प पेज '<ph name="OPTIONS_PAGE" />' लोड नहीं कर सका.</translation>
+<translation id="3984413272403535372">एक्सटेंशन हस्ताक्षरित करते समय गड़बड़ी आई.</translation>
 <translation id="4115165561519362854">इस मशीन का नियंत्रक चाहता है कि <ph name="EXTENSION_NAME" /> के पास <ph name="EXTENSION_VERSION" /> का एक न्‍यूनतम वर्शन हो. इसे तब तक सक्षम नहीं किया जा सकता जब तक कि उसे उस वर्शन (या बाद वाले वर्शन) में अपडेट ना कर दिया गया हो.</translation>
 <translation id="4233778200880751280">संक्षिप्त विवरण पेज '<ph name="ABOUT_PAGE" />' लोड नहीं हो सका.</translation>
+<translation id="471800408830181311">निजी कुंजी आउटपुट करने में विफल.</translation>
 <translation id="4811956658694082538">उपयोगिता प्रक्रिया क्रैश होने के कारण पैकेज इंस्‍टॉल नहीं किया जा सका. Chrome को पुन: प्रारंभ करके और पुन: प्रयास करके देखें.</translation>
+<translation id="4988792151665380515">सार्वजनिक कुंजी निर्यात करने में विफल.</translation>
 <translation id="5026754133087629784">वेबदृश्य: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">पैक करने के लिए निर्देशिका का निरपेक्ष पथ नहीं ढूंढा जा सकता.</translation>
 <translation id="5356315618422219272">ऐप्‍स दृश्‍य: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">आकार वाली विंडो समर्थित नहीं हैं.</translation>
 <translation id="5456409301717116725">एक्सटेंशन में कुंजी फ़ाइल '<ph name="KEY_PATH" />' शामिल है. संभवतः आप ऐसा नहीं करना चाहते हैं.</translation>
+<translation id="5486326529110362464">निजी कुंजी के लिए इनपुट मान मौजूद होना चाहिए.</translation>
 <translation id="5627523580512561598">एक्सटेंशन <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">इस मशीन के व्‍यवस्‍थापक के लिए आवश्‍यक है कि <ph name="EXTENSION_NAME" /> इंस्‍टॉल किया जाए. उसे अनइंस्‍टॉल नहीं किया जा सकता.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> (क्रमांक <ph name="SERIAL_NUMBER" />) की ओर से अज्ञात <ph name="PRODUCT_ID" /> उत्पाद</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> विक्रेता की ओर से <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">एक्सटेंशन को अनपैक नहीं कर सका.  किसी एक्सटेंशन को सुरक्षित रूप से अनपैक करने के लिए आपकी प्रोफ़ाइल निर्देशिका में एक ऐसा पथ होना आवश्यक है, जिसमें कोई सिमलिंक न हो.  ऐसा कोई भी पथ आपकी प्रोफ़ाइल के लिए मौजूद नहीं है.</translation>
+<translation id="6322279351188361895">निजी कुंजी को पढ़ने में विफल.</translation>
+<translation id="6391538222494443604">इनपुट निर्देशिका मौजूद होनी चाहिए.</translation>
 <translation id="641087317769093025">एक्सटेंशन को अनज़िप नहीं किया जा सका</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" आपके एक या अधिक डिवाइस के एक्‍सेस का अनुरोध कर रहा है:</translation>
 <translation id="657064425229075395">पृष्ठभूमि स्क्रिप्ट '<ph name="BACKGROUND_SCRIPT" />' लोड नहीं की जा सकी.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">यह एक्सटेंशन "<ph name="ATTEMPTED_FILENAME" />" डाउनलोड को नाम देने में विफल रहा क्योंकि किसी अन्य एक्सटेंशन (<ph name="EXTENSION_NAME" />) ने एक भिन्न फ़ाइलनाम "<ph name="ACTUAL_FILENAME" />" निर्धारित कर लिया है.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> की ओर से <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">यह एक्सटेंशन किसी नेटवर्क अनुरोध को प्रमाणिकता प्रदान करने में विफल रहा क्योंकि एक अन्य एक्सटेंशन (<ph name="EXTENSION_NAME" />) ने भिन्न प्रमाणिकता प्रदान कर दिए थे.</translation>
-<translation id="8602184400052594090">मालसूची फ़ाइल गुम है या पढ़ने योग्य नहीं है.</translation>
 <translation id="8636666366616799973">पैकेज अमान्य है. विवरण: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">यह एक्सटेंशन <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> तक नेटवर्क अनुरोध को रीडायरेक्ट करने में विफल रहा क्योंकि एक अन्य एक्सटेंशन (<ph name="EXTENSION_NAME" />) ने इसे <ph name="ACTUAL_REDIRECT_DESTINATION" /> को रीडायरेक्ट कर दिया था.</translation>
 <translation id="8712265948125780616">एक्‍सटेंशन अनपैकर</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" आपके किसी एक डिवाइस के एक्‍सेस का अनुरोध कर रहा है:</translation>
 <translation id="8825366169884721447">यह एक्सटेंशन किसी नेटवर्क अनुरोध के अनुरोध शीर्षलेख "<ph name="HEADER_NAME" />" को बदलने में विफल रहा क्योंकि बदलाव का एक अन्य एक्सटेंशन (<ph name="EXTENSION_NAME" />) के साथ विरोध हुआ था.</translation>
+<translation id="8885905466771744233">निर्दिष्ट किए गए एक्सटेंशन के लिए कोई निजी कुंजी पहले से मौजूद है. उस कुंजी का फिर से उपयोग करें या पहले इसे हटाएं.</translation>
+<translation id="907841381057066561">पैकेजिंग के दौरान अस्थायी ज़िप फ़ाइल बनाने में विफल.</translation>
 <translation id="9111791539553342076">यह एक्सटेंशन किसी नेटवर्क अनुरोध के प्रतिसाद शीर्षलेख "<ph name="HEADER_NAME" />" के प्रतिसाद शीर्षलेख को बदलने में विफल रहा क्योंकि बदलाव का एक अन्य एक्सटेंशन (<ph name="EXTENSION_NAME" />) के साथ विरोध हुआ था.</translation>
+<translation id="941543339607623937">अमान्य निजी कुंजी.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_hr.xtb b/extensions/strings/extensions_strings_hr.xtb
index 1502488..b848168 100644
--- a/extensions/strings/extensions_strings_hr.xtb
+++ b/extensions/strings/extensions_strings_hr.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="hr">
 <translation id="1135328998467923690">Paket je nevažeći: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Prema okruženju</translation>
+<translation id="1196338895211115272">Izvoz osobnog ključa nije uspio.</translation>
 <translation id="1256619696651732561">Raščlanjivanje manifesta proširenja</translation>
+<translation id="1420684932347524586">Šteta! Nije uspjelo generiranje nasumičnog RSA osobnog ključa.</translation>
 <translation id="1445572445564823378">Ovo proširenje usporava uslugu <ph name="PRODUCT_NAME" />. Trebali biste ga onemogućiti da biste vratili uspješan rad usluge <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL nije podržan.</translation>
 <translation id="149347756975725155">Nije uspjelo učitavanje ikone proširenja "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Nije uspjelo učitavanje pozadinske stranice "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Nije uspjelo dekodiranje slike: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Lokalizacija je korištena, ali default_locale nije naveden u manifestu.</translation>
+<translation id="2576842806987913196">Već postoji CRX datoteka s takvim nazivom.</translation>
 <translation id="2753617847762399167">Neispravna putanja (apsolutna ili relativna u odnosu na ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Ovo proširenje nije uspjelo izmijeniti mrežni zahtjev jer je izmjena u sukobu s drugim proširenjem.</translation>
-<translation id="2857834222104759979">Datoteka manifesta nije važeća.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID proširenja "<ph name="EXTENSION_ID" />") blokirao je administrator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nije moguće instaliranje paketa: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Nepoznati proizvod <ph name="PRODUCT_ID" /> dobavljača <ph name="VENDOR_ID" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Zamjena CRX datoteke nije uspjela. Provjerite je li datoteka u upotrebi.</translation>
 <translation id="3163201441334626963">Nepoznati proizvod <ph name="PRODUCT_ID" /> dobavljača <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Ne mogu otpakirati proširenje. Kako biste sigurno otpakirali proširenje, mora postojati putanja do direktorija vašeg profila koja počinje slovom pogona i ne sadrži spoj, točku povezivanja ili simboličku vezu. Za vaš profil ne postoji takva putanja.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> dobavljača <ph name="VENDOR_ID" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Vrijednost unosa osobnog ključa mora biti valjana putanja.</translation>
 <translation id="388442998277590542">Nije uspjelo učitavanje stranice opcija "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Došlo je do pogreške tijekom potpisivanja proširenja.</translation>
 <translation id="4115165561519362854">Administrator ovog uređaja zahtijeva da <ph name="EXTENSION_NAME" /> ima minimalnu verziju <ph name="EXTENSION_VERSION" />. Ne može se omogućiti dok se ne ažurira na tu ili višu verziju.</translation>
 <translation id="4233778200880751280">Nije uspjelo učitavanje stranice s informacijama "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Izvoz osobnog ključa nije uspio.</translation>
 <translation id="4811956658694082538">Nije bilo moguće instalirati paket jer se uslužni proces srušio. Ponovo pokrenite Chrome i pokušajte opet.</translation>
+<translation id="4988792151665380515">Izvoz javnog ključa nije uspio.</translation>
 <translation id="5026754133087629784">Prikaz web-lokacije: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nije moguće pronaći apsolutni put prema direktoriju za pakiranje.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Oblikovani prozori nisu podržani.</translation>
 <translation id="5456409301717116725">To proširenje uključuje ključnu datoteku "<ph name="KEY_PATH" />". Vjerojatno ne želite to učiniti.</translation>
+<translation id="5486326529110362464">Vrijednost unosa za osobni ključ mora postojati.</translation>
 <translation id="5627523580512561598">proširenje <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administrator ovog računala zahtijeva instaliranje proširenja <ph name="EXTENSION_NAME" /> i ono se ne može deinstalirati.</translation>
 <translation id="6027032947578871493">Nepoznati proizvod <ph name="PRODUCT_ID" />, <ph name="VENDOR_NAME" /> (serijski broj <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> dobavljača <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Ne mogu otpakirati proširenje. Kako biste sigurno otpakirali proširenje, mora postojati putanja do direktorija vašeg profila koja ne sadrži simboličku vezu. Za vaš profil ne postoji takva putanja.</translation>
+<translation id="6322279351188361895">Čitanje osobnog ključa nije uspjelo.</translation>
+<translation id="6391538222494443604">Mora postojati direktorij za unos.</translation>
 <translation id="641087317769093025">Nije uspjelo raspakiravanje proširenja</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" zahtijeva pristup nekim od vaših uređaja:</translation>
 <translation id="657064425229075395">Nije bilo moguće učitati pozadinsku skriptu "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">To proširenje nije uspjelo dodijeliti naziv preuzimanju "<ph name="ATTEMPTED_FILENAME" />" jer je drugo proširenje (<ph name="EXTENSION_NAME" />) odredilo drugačiji naziv datoteke "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> od dobavljača <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Ovo proširenje nije uspješno dodijelilo vjerodajnice za mrežni zahtjev jer je drugo proširenje (<ph name="EXTENSION_NAME" />) dodijelilo druge vjerodajnice.</translation>
-<translation id="8602184400052594090">Datoteka manifesta nedostaje ili nije čitljiva.</translation>
 <translation id="8636666366616799973">Paket je nevažeći. Pojedinosti "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Ovo proširenje nije uspjelo preusmjeriti mrežni zahtjev na odredište <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> jer ga je drugo proširenje (<ph name="EXTENSION_NAME" />) preusmjerilo na odredište <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Otpakiravanje proširenja</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" zahtijeva pristup jednom od vaših uređaja:</translation>
 <translation id="8825366169884721447">Ovo proširenje nije uspjelo izmijeniti zaglavlje zahtjeva "<ph name="HEADER_NAME" />" mrežnog zahtjeva jer je izmjena sukobljena s drugim proširenjem (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Osobni ključ za navedeno proširenje već postoji. Ponovo koristite taj ključ ili ga prvo izbrišite.</translation>
+<translation id="907841381057066561">Nije uspjelo stvaranje privremene sažete datoteke tijekom sažimanja.</translation>
 <translation id="9111791539553342076">Ovo proširenje nije uspjelo izmijeniti zaglavlje odgovora "<ph name="HEADER_NAME" />" mrežnog zahtjeva jer je izmjena sukobljena s drugim proširenjem (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Nevažeći osobni ključ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_hu.xtb b/extensions/strings/extensions_strings_hu.xtb
index 932b571..7762bff 100644
--- a/extensions/strings/extensions_strings_hu.xtb
+++ b/extensions/strings/extensions_strings_hu.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="hu">
 <translation id="1135328998467923690">A következő csomag érvénytelen: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Hátlapi</translation>
+<translation id="1196338895211115272">A privát kulcs exportálása sikertelen.</translation>
 <translation id="1256619696651732561">Bővítményjegyzék elemzője</translation>
+<translation id="1420684932347524586">Ajjaj! Nem sikerült a véletlenszerű RSA privát kulcs generálása.</translation>
 <translation id="1445572445564823378">Ez a bővítmény lassítja a <ph name="PRODUCT_NAME" /> működését. Kapcsolja ki a <ph name="PRODUCT_NAME" /> teljesítményének visszaállításához.</translation>
 <translation id="1468038450257740950">A WebGL nem támogatott.</translation>
 <translation id="149347756975725155">A(z) '<ph name="ICON" />' bővítményikon betöltése nem sikerült.</translation>
 <translation id="1803557475693955505">Nem lehet betölteni a(z) '<ph name="BACKGROUND_PAGE" />' háttéroldalt.</translation>
 <translation id="2159915644201199628">Nem sikerült dekódolni a képet: „<ph name="IMAGE_NAME" />”</translation>
 <translation id="2350172092385603347">Fordítás használatban, de a default_locale (alapértelmezett nyelv- és országkód) nincs megadva a jegyzékfájlban.</translation>
+<translation id="2576842806987913196">Már van egy CRX-fájl ilyen névvel.</translation>
 <translation id="2753617847762399167">Szabálytalan útvonal (abszolút vagy relatív „..” taggal): „<ph name="IMAGE_PATH" />”</translation>
 <translation id="27822970480436970">A bővítmény nem tudta módosítani a hálózati lekérést, mivel a módosítás egy másik bővítménnyel ütközött.</translation>
-<translation id="2857834222104759979">A jegyzékfájl érvénytelen.</translation>
 <translation id="2903070246402204397">A(z) <ph name="EXTENSION_NAME" /> bővítményt (bővítményazonosító: <ph name="EXTENSION_ID" />) tiltja a rendszergazda. <ph name="ADMIN_INFO" />.</translation>
 <translation id="2988488679308982380">Nem sikerült a következő csomag telepítése: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Ismeretlen termék (<ph name="PRODUCT_ID" />) <ph name="VENDOR_ID" /> szolgáltatótól (sorozatszám: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Nem sikerült lecserélni a crx-fájlt. Ellenőrizze, hogy nincs-e használatban a fájl.</translation>
 <translation id="3163201441334626963">Ismeretlen termék (<ph name="PRODUCT_ID" />) a következő forgalmazótól: <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Nem lehet kicsomagolni a bővítményt. A bővítmények biztonságos kicsomagolásához kell lennie egy olyan elérési útnak a profilkönyvtárban, amely egy meghajtó betűjelével kezdődik, és nem tartalmaz közvetett hivatkozást (junction vagy symlink) vagy csatolási pontot. Ilyen elérési út nem létezik a profiljában.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (sorozatszám: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> termék a következő forgalmazótól: <ph name="VENDOR_ID" /> (sorozatszám: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">A privát kulcs beviteli értékéhez érvényes útvonalat kell megadnia.</translation>
 <translation id="388442998277590542">Nem lehet betölteni a(z) "<ph name="OPTIONS_PAGE" />" opcióoldalt.</translation>
+<translation id="3984413272403535372">Hiba történt a bővítmények aláírása során.</translation>
 <translation id="4115165561519362854">A gép rendszergazdája előírta, hogy a(z) <ph name="EXTENSION_NAME" /> bővítmény verziója legalább <ph name="EXTENSION_VERSION" /> legyen. Nem kapcsolható be addig, amíg nincs frissítve erre a verzióra (vagy újabbra).</translation>
 <translation id="4233778200880751280">A(z) „<ph name="ABOUT_PAGE" />” névjegyoldal betöltése sikertelen volt.</translation>
+<translation id="471800408830181311">Nem sikerült a privát kulcs kiírása.</translation>
 <translation id="4811956658694082538">Nem lehetett telepíteni a csomagot, mert egy segédprogram-folyamat összeomlott. Indítsa újra a Chrome-ot, majd próbálja újra.</translation>
+<translation id="4988792151665380515">Nem sikerült a nyilvános kulcs exportálása.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nem található a csomagolni kívánt könyvtár abszolút elérési útvonala.</translation>
 <translation id="5356315618422219272">Alkalmazásnézet: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">A formázott ablakok nem támogatottak.</translation>
 <translation id="5456409301717116725">Ez a bővítmény a(z) "<ph name="KEY_PATH" />" kulcsfájlt tartalmazza. Ezt Ön valószínűleg nem szeretné.</translation>
+<translation id="5486326529110362464">Kell lennie beviteli értéknek a privát kulcsnál.</translation>
 <translation id="5627523580512561598"><ph name="EXTENSION_NAME" /> bővítmény</translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">A számítógép adminisztrátorának szüksége van arra, hogy a(z) <ph name="EXTENSION_NAME" /> telepítve legyen. Nem lehet eltávolítani.</translation>
 <translation id="6027032947578871493">Ismeretlen termék (<ph name="PRODUCT_ID" />) a következő szolgáltatótól: <ph name="VENDOR_NAME" /> (sorozatszám: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" />, forgalmazó: <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Nem lehet kicsomagolni a bővítményt. A bővítmények biztonságos kicsomagolásához kell lennie egy olyan elérési útnak a profilkönyvtárban, amelyben nem szerepel közvetett hivatkozás (symlink). Ilyen elérési út nem létezik a profiljában.</translation>
+<translation id="6322279351188361895">A privát kulcs olvasása sikertelen.</translation>
+<translation id="6391538222494443604">Kell lennie beviteli könyvtárnak.</translation>
 <translation id="641087317769093025">Nem sikerült a bővítmény kicsomagolása</translation>
 <translation id="6542618148162044354">A(z) „<ph name="APP_NAME" />” alkalmazás hozzáférést kér egy vagy több eszközéhez.</translation>
 <translation id="657064425229075395">Nem sikerült betölteni a következő háttérszkriptet: "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Ez a bővítmény nem tudta elnevezni a(z) „<ph name="ATTEMPTED_FILENAME" />” letöltést, mert egy másik bővítmény (<ph name="EXTENSION_NAME" />) eltérő fájlnevet határozott meg: „<ph name="ACTUAL_FILENAME" />”.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> (<ph name="VENDOR_NAME" />)</translation>
 <translation id="8341840687457896278">A bővítmény nem tudott hitelesítési adatokat biztosítani egy hálózati kérésnek, mert egy másik bővítmény (<ph name="EXTENSION_NAME" />) eltérő hitelesítési adatokat adott meg.</translation>
-<translation id="8602184400052594090">A jegyzékfájl hiányzik vagy nem olvasható.</translation>
 <translation id="8636666366616799973">A csomag érvénytelen. Részletek: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">A bővítmény nem tudta átirányítani a hálózati kérést <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> felé, mivel egy másik bővítmény (<ph name="EXTENSION_NAME" />) átirányította azt a következőre: <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Bővítmény-kicsomagoló</translation>
 <translation id="8761756413268424715">A(z) „<ph name="APP_NAME" />” alkalmazás hozzáférést kér egyik eszközéhez:</translation>
 <translation id="8825366169884721447">A bővítmény nem tudta módosítani egy hálózati kérés „<ph name="HEADER_NAME" />” kérésfejlécét, mert a módosítás ütközik egy másik bővítménnyel (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">A megadott bővítményhez már létezik privát kulcs. Használja újra vagy előbb törölje azt.</translation>
+<translation id="907841381057066561">Nem sikerült az ideiglenes .zip fájl létrehozása a tömörítés során.</translation>
 <translation id="9111791539553342076">A bővítmény nem tudta módosítani egy hálózati kérés „<ph name="HEADER_NAME" />” válaszfejlécét, mert a módosítás ütközik egy másik bővítménnyel (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Érvénytelen privát kulcs.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_id.xtb b/extensions/strings/extensions_strings_id.xtb
index 0b20b48..fd5fb77 100644
--- a/extensions/strings/extensions_strings_id.xtb
+++ b/extensions/strings/extensions_strings_id.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="id">
 <translation id="1135328998467923690">Paket tidak valid: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Kamera belakang</translation>
+<translation id="1196338895211115272">Gagal mengekspor kunci pribadi.</translation>
 <translation id="1256619696651732561">Pengurai Manifes Ekstensi</translation>
+<translation id="1420684932347524586">Wah! Gagal membuat kunci pribadi RSA acak.</translation>
 <translation id="1445572445564823378">Ekstensi ini memperlambat <ph name="PRODUCT_NAME" />. Anda harus menonaktifkannya agar dapat memulihkan kinerja <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL tidak didukung.</translation>
 <translation id="149347756975725155">Tidak dapat memuat ikon ekstensi '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">Tidak dapat memuat halaman latar belakang '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">Tidak dapat mendekode gambar: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Lokalisasi digunakan, tetapi default_locale tidak ditentukan dalam manifes.</translation>
+<translation id="2576842806987913196">Sudah ada file CRX dengan nama ini.</translation>
 <translation id="2753617847762399167">jalur ilegal (mutlak atau relatif dengan '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Ekstensi ini gagal memodifikasi permintaan jaringan karena modifikasi bentrok dengan ekstensi lain.</translation>
-<translation id="2857834222104759979">File manifes tidak valid.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID ekstensi "<ph name="EXTENSION_ID" />") diblokir oleh administrator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Tidak dapat memasang paket: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Produk <ph name="PRODUCT_ID" /> tak dikenal dari vendor <ph name="VENDOR_ID" /> (nomor seri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Gagal mengganti file crx. Cek apakah file sedang digunakan.</translation>
 <translation id="3163201441334626963">Produk <ph name="PRODUCT_ID" /> tak dikenal dari vendor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Tidak dapat membuka paket ekstensi. Untuk membuka paket ekstensi dengan aman, harus tersedia jalur ke direktori profil Anda yang mulai dengan sebuah huruf drive dan tidak berisi junction point, mount point, atau link simbolik. Tidak ada jalur yang seperti itu untuk profil Anda.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (nomor seri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> dari vendor <ph name="VENDOR_ID" /> (nomor seri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Nilai masukan untuk kunci pribadi harus jalur yang valid.</translation>
 <translation id="388442998277590542">Tidak dapat memuat halaman opsi '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Kesalahan ketika menandai ekstensi.</translation>
 <translation id="4115165561519362854">Administrator perangkat ini mewajibkan <ph name="EXTENSION_NAME" /> untuk menjalankan versi minimum <ph name="EXTENSION_VERSION" />. Ekstensi tidak dapat diaktifkan sampai diperbarui ke versi tersebut (atau yang lebih tinggi).</translation>
 <translation id="4233778200880751280">Tidak dapat memuat halaman tentang '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Gagal mengeluarkan kunci pribadi.</translation>
 <translation id="4811956658694082538">Tidak dapat memasang paket karena proses utilitas mogok. Mulai ulang Chrome dan coba lagi.</translation>
+<translation id="4988792151665380515">Gagal mengekspor kunci publik.</translation>
 <translation id="5026754133087629784">Tampilan web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Tidak dapat menemukan jalur pasti ke direktori untuk masuk.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Jendela berbentuk tidak didukung.</translation>
 <translation id="5456409301717116725">Ekstensi ini termasuk file kunci '<ph name="KEY_PATH" />'. Anda mungkin tidak ingin melakukannya.</translation>
+<translation id="5486326529110362464">Nilai masukan untuk kunci pribadi harus ada.</translation>
 <translation id="5627523580512561598">ekstensi <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administrator komputer ini mewajibkan agar <ph name="EXTENSION_NAME" /> dipasang. Ekstensi tersebut tidak dapat dicopot pemasangannya.</translation>
 <translation id="6027032947578871493">Produk <ph name="PRODUCT_ID" /> tak dikenal dari <ph name="VENDOR_NAME" /> (nomor seri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> dari vendor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Tidak dapat membuka paket ekstensi. Untuk membuka paket ekstensi dengan aman, harus tersedia jalur ke direktori profil Anda yang tidak berisi link simbolik. Tidak ada jalur yang seperti itu untuk profil Anda.</translation>
+<translation id="6322279351188361895">Gagal membaca kunci pribadi.</translation>
+<translation id="6391538222494443604">Direktori masukan harus ada.</translation>
 <translation id="641087317769093025">Tidak dapat mengekstrak ekstensi</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" meminta akses ke satu atau beberapa perangkat Anda:</translation>
 <translation id="657064425229075395">Tidak dapat memuat skrip latar belakang '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Ekstensi ini gagal memberi nama download "<ph name="ATTEMPTED_FILENAME" />" karena ekstensi lain (<ph name="EXTENSION_NAME" />) menentukan nama file yang berbeda "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> dari <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Ekstensi ini gagal memberikan kredensial ke permintaan jaringan karena ekstensi lain (<ph name="EXTENSION_NAME" />) telah memberikan kredensial yang berbeda.</translation>
-<translation id="8602184400052594090">File manifes tidak ada atau tidak dapat dibaca.</translation>
 <translation id="8636666366616799973">Paket tidak valid. Detail: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Ekstensi ini gagal mengalihkan permintaan jaringan ke <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> karena ekstensi lain (<ph name="EXTENSION_NAME" />) mengalihkannya ke <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Pembuka Ekstensi</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" meminta akses ke salah satu perangkat Anda:</translation>
 <translation id="8825366169884721447">Ekstensi ini gagal memodifikasi tajuk permintaan "<ph name="HEADER_NAME" />" dari suatu permintaan jaringan karena modifikasi bertentangan dengan ekstensi lain (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Kunci pribadi untuk ekstensi yang ditentukan sudah ada. Gunakan kembali kunci itu atau hapus terlebih dulu.</translation>
+<translation id="907841381057066561">Gagal membuat file zip sementara selama pengemasan</translation>
 <translation id="9111791539553342076">Ekstensi ini gagal memodifikasi tajuk tanggapan "<ph name="HEADER_NAME" />" dari suatu permintaan jaringan karena modifikasi bertentangan dengan ekstensi lain (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Kunci pribadi tidak valid.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_it.xtb b/extensions/strings/extensions_strings_it.xtb
index 51f6c66..6f14e77 100644
--- a/extensions/strings/extensions_strings_it.xtb
+++ b/extensions/strings/extensions_strings_it.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="it">
 <translation id="1135328998467923690">Il pacchetto non è valido: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Fotocamera posteriore</translation>
+<translation id="1196338895211115272">Operazione di esportazione della chiave privata non riuscita.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">Spiacenti, operazione di generazione della chiave privata RSA casuale non riuscita.</translation>
 <translation id="1445572445564823378">Questa estensione sta rallentando <ph name="PRODUCT_NAME" />. È necessario disabilitarla per ripristinare le prestazioni di <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL non è supportato.</translation>
 <translation id="149347756975725155">Impossibile caricare l'icona estensione "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Impossibile caricare la pagina di sfondo "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Impossibile decodificare l'immagine: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Localizzazione utilizzata, ma default_locale non era specificato nel file manifest.</translation>
+<translation id="2576842806987913196">Esiste già un file CRX con questo nome.</translation>
 <translation id="2753617847762399167">Percorso non valido (assoluto o relativo con ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Questa estensione non è riuscita a modificare una richiesta di rete perché la modifica era in conflitto con un'altra estensione.</translation>
-<translation id="2857834222104759979">File manifest non valido.</translation>
 <translation id="2903070246402204397">L'estensione <ph name="EXTENSION_NAME" /> (ID "<ph name="EXTENSION_ID" />") è stata bloccata dall'amministratore. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Impossibile installare il pacchetto: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Prodotto sconosciuto <ph name="PRODUCT_ID" /> del fornitore <ph name="VENDOR_ID" /> (numero di serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Impossibile sostituire il file crx. Controlla se il file è in uso.</translation>
 <translation id="3163201441334626963">Prodotto sconosciuto <ph name="PRODUCT_ID" /> del fornitore <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Impossibile decomprimere l'estensione. Per decomprimere in modo sicuro un'estensione, deve essere fornito un percorso alla directory del profilo che inizi con una lettera di unità e non contenga un punto di giunzione, un punto di montaggio o un link simbolico. Non esiste un simile percorso per il tuo profilo.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (numero di serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> del fornitore <ph name="VENDOR_ID" /> (numero di serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Il valore di input per la chiave privata deve essere un percorso valido.</translation>
 <translation id="388442998277590542">Impossibile caricare la pagina delle opzioni "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Errore durante la firma dell'estensione.</translation>
 <translation id="4115165561519362854">L'amministratore di questo computer richiede che <ph name="EXTENSION_NAME" /> abbia almeno la versione <ph name="EXTENSION_VERSION" />. L'attivazione potrà essere completata solo dopo che è stato eseguito l'aggiornamento a questa versione o a una versione successiva.</translation>
 <translation id="4233778200880751280">Impossibile caricare la pagina di informazioni "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Operazione di output della chiave privata non riuscita.</translation>
 <translation id="4811956658694082538">Impossibile installare il pacchetto perché un processo dell'utility si è arrestato in modo anomalo. Riavvia Chrome e riprova.</translation>
+<translation id="4988792151665380515">Operazione di esportazione della chiave pubblica non riuscita.</translation>
 <translation id="5026754133087629784">Visualizzazione web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Impossibile trovare il percorso assoluto della directory per creare il pacchetto.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Le finestre con forma personalizzata non sono supportate.</translation>
 <translation id="5456409301717116725">Questa estensione include il file di chiave "<ph name="KEY_PATH" />". Probabilmente preferiresti che non l'includesse.</translation>
+<translation id="5486326529110362464">Il valore di input per la chiave privata deve essere esistente.</translation>
 <translation id="5627523580512561598">estensione <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">L'amministratore di questo computer richiede che l'estensione <ph name="EXTENSION_NAME" /> sia installata. Non è possibile disinstallarla.</translation>
 <translation id="6027032947578871493">Prodotto sconosciuto <ph name="PRODUCT_ID" /> di <ph name="VENDOR_NAME" /> (numero di serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> del fornitore <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Impossibile decomprimere l'estensione. Per decomprimere in modo sicuro un'estensione, deve essere fornito un percorso alla directory del profilo che non contenga un link simbolico. Non esiste un simile percorso per il tuo profilo.</translation>
+<translation id="6322279351188361895">Operazione di lettura della chiave privata non riuscita.</translation>
+<translation id="6391538222494443604">La directory di input deve essere esistente.</translation>
 <translation id="641087317769093025">Impossibile decomprimere l'estensione</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" richiede l'accesso a uno o più dispositivi:</translation>
 <translation id="657064425229075395">Impossibile caricare lo script in background "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Questa estensione non è riuscita a denominare il download "<ph name="ATTEMPTED_FILENAME" />" perché un'altra estensione (<ph name="EXTENSION_NAME" />) ha determinato un nome di file diverso "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> di <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Questa estensione non è riuscita a fornire le credenziali per una richiesta di rete perché un'altra estensione (<ph name="EXTENSION_NAME" />) ha fornito credenziali diverse.</translation>
-<translation id="8602184400052594090">File manifest mancante o illeggibile.</translation>
 <translation id="8636666366616799973">Il pacchetto non è valido. Dettagli: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Questa estensione non è riuscita a reindirizzare una richiesta di rete a <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> perché un'altra estensione (<ph name="EXTENSION_NAME" />) l'ha reindirizzata a <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Extension Unpacker</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" richiede l'accesso a un dispositivo:</translation>
 <translation id="8825366169884721447">Questa estensione non è riuscita a modificare l'intestazione della richiesta "<ph name="HEADER_NAME" />" di una richiesta di rete perché la modifica era in conflitto con un'altra estensione (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Esiste già una chiave privata per l'estensione specificata. Riutilizza tale chiave o prima eliminala.</translation>
+<translation id="907841381057066561">Operazione di creazione di un file zip temporaneo durante la creazione del pacchetto non riuscita.</translation>
 <translation id="9111791539553342076">Questa estensione non è riuscita a modificare l'intestazione della risposta "<ph name="HEADER_NAME" />" di una richiesta di rete perché la modifica era in conflitto con un'altra estensione (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Chiave privata non valida.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_iw.xtb b/extensions/strings/extensions_strings_iw.xtb
index 62a72e9..89cafc7c 100644
--- a/extensions/strings/extensions_strings_iw.xtb
+++ b/extensions/strings/extensions_strings_iw.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="iw">
 <translation id="1135328998467923690">החבילה לא חוקית: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">מצלמה אחורית</translation>
+<translation id="1196338895211115272">נכשל ייצוא מפתח פרטי.</translation>
 <translation id="1256619696651732561">מנתח מניפסט התוספים</translation>
+<translation id="1420684932347524586">‏אוי לא! אירע כשל ביצירת מפתח RSA פרטי אקראי.</translation>
 <translation id="1445572445564823378">תוסף זה מאט את <ph name="PRODUCT_NAME" />. עליך להשבית אותו כדי לשחזר את הביצועים של <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">‏WebGL אינו נתמך.</translation>
 <translation id="149347756975725155">לא היתה אפשרות לטעון את אייקון התוסף '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">לא היתה אפשרות לטעון את דף הרקע '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">לא ניתן לפענח תמונה: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">‏נעשה שימוש בהתאמה למקום, אך default_locale לא צוין במניפסט.</translation>
+<translation id="2576842806987913196">‏כבר קיים קובץ CRX בשם זה.</translation>
 <translation id="2753617847762399167">נתיב לא חוקי (באופן מוחלט או ביחס אל '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">תוסף זה לא הצליח לשנות בקשת רשת משום שהשינוי התנגש עם תוסף אחר.</translation>
-<translation id="2857834222104759979">קובץ המניספט לא חוקי.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (מזהה תוסף "<ph name="EXTENSION_ID" />") חסום על-ידי מנהל המערכת. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">לא ניתן להתקין את החבילה: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">מוצר לא ידוע <ph name="PRODUCT_ID" /> מהספק <ph name="VENDOR_ID" /> (מספר סידורי <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">‏הנסיון להחליף קובץ crx נכשל. בדוק אם הקובץ נמצא בשימוש.</translation>
 <translation id="3163201441334626963">מוצר לא ידוע <ph name="PRODUCT_ID" /> מהספק <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">לא ניתן לפרוק את התוסף. כדי לפרוק תוספים בצורה בטוחה, יש צורך בנתיב לספריית הפרופילים שמתחיל באות כונן ולא מכיל צומת, נקודת טעינה או קישור סמלי. לא קיים נתיב שכזה לפרופיל שלך.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (מספר סידורי <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> מהספק <ph name="VENDOR_ID" /> (מספר סידורי <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ערך קלט עבור מפתח פרטי חייב להיות נתיב חוקי.</translation>
 <translation id="388442998277590542">לא היתה אפשרות לטעון את דף האפשרויות '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">שגיאה בחתימה על התוסף.</translation>
 <translation id="4115165561519362854">מנהל המערכת של מחשב זה דורש שהגרסה המינימלית של <ph name="EXTENSION_NAME" /> תהיה <ph name="EXTENSION_VERSION" />. ההפעלה אינה אפשרית עד לעדכון לגרסה זו (ואילך).</translation>
 <translation id="4233778200880751280">לא ניתן לטעון את דף המידע '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">נכשל בפלט מפתח פרטי.</translation>
 <translation id="4811956658694082538">‏לא ניתן היה להתקין את החבילה מפני שתהליך כלי השירות קרס. נסה לאתחל את Chrome ואז נסה שוב.</translation>
+<translation id="4988792151665380515">נכשל ייצוא מפתח ציבורי.</translation>
 <translation id="5026754133087629784">צפיות באתר: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">לא ניתן למצוא את הנתיב המוחלט לספריה לאריזה.</translation>
 <translation id="5356315618422219272">‏Appview‏: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">אין תמיכה בחלונות מעוצבים.</translation>
 <translation id="5456409301717116725">תוסף זה כולל את קובץ המפתח "<ph name="KEY_PATH" />". מומלץ לא לעשות זאת.</translation>
+<translation id="5486326529110362464">חייב להתקיים ערך קלט של מפתח פרטי.</translation>
 <translation id="5627523580512561598">תוסף <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">מנהל המערכת של מכשיר זה דורש התקנה של <ph name="EXTENSION_NAME" />. לא ניתן להסיר את ההתקנה.</translation>
 <translation id="6027032947578871493">מוצר לא ידוע <ph name="PRODUCT_ID" /> מהספק <ph name="VENDOR_NAME" /> (מספר סידורי <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> מהספק <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">לא ניתן לפרוק את התוסף. כדי לפרוק תוספים בצורה בטוחה, יש צורך בנתיב לספריית הפרופילים שלך שלא מכיל קישור סמלי. לא קיים נתיב שכזה לפרופיל שלך.</translation>
+<translation id="6322279351188361895">נכשל בקריאת מפתח פרטי.</translation>
+<translation id="6391538222494443604">ספריית קלט חייבת להתקיים.</translation>
 <translation id="641087317769093025">לא ניתן לבטל את הדחיסה של התוסף</translation>
 <translation id="6542618148162044354">האפליקציה "<ph name="APP_NAME" />" מבקשת גישה לאחד או יותר מהמכשירים שלך:</translation>
 <translation id="657064425229075395">לא ניתן להעלות את סקריפט הרקע '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">תוסף זה לא הצליח לתת שם לקובץ "<ph name="ATTEMPTED_FILENAME" />" שהורד, משום שתוסף אחר (<ph name="EXTENSION_NAME" />) קבע שם קובץ אחר - "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> מאת <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">תוסף זה נכשל באספקת אישורים לבקשת רשת מכיוון שתוסף אחר (<ph name="EXTENSION_NAME" />) סיפק אישורים אחרים.</translation>
-<translation id="8602184400052594090">קובץ המניפסט חסר או בלתי קריא.</translation>
 <translation id="8636666366616799973">החבילה לא חוקית. פרטים: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">תוסף זה נכשל בניתוב בקשת רשת אל <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> מכיוון שתוסף אחר (<ph name="EXTENSION_NAME" />) ניתב אותו אל <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">פורק התוספים</translation>
 <translation id="8761756413268424715">האפליקציה "<ph name="APP_NAME" />" מבקשת גישה לאחד מהמכשירים שלך:</translation>
 <translation id="8825366169884721447">תוסף זה נכשל בשינוי כותרת הבקשה '<ph name="HEADER_NAME" />' של בקשת רשת מכיוון שהשינוי התנגש עם תוסף אחר (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">מפתח פרטי לתוסף שצוין כבר קיים. השתמש שוב במפתח זה או מחק אותו תחילה.</translation>
+<translation id="907841381057066561">‏נכשל ביצירת קובץ zip זמני במהלך האריזה.</translation>
 <translation id="9111791539553342076">תוסף זה נכשל בשינוי כותרת התגובה '<ph name="HEADER_NAME" />' של בקשת רשת מכיוון שהשינוי התנגש עם תוסף אחר (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">מפתח פרטי לא חוקי.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ja.xtb b/extensions/strings/extensions_strings_ja.xtb
index 3f0eec1..7df65cc 100644
--- a/extensions/strings/extensions_strings_ja.xtb
+++ b/extensions/strings/extensions_strings_ja.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ja">
 <translation id="1135328998467923690">パッケージが無効です: <ph name="ERROR_CODE" /></translation>
 <translation id="1140871961407805696">外向き</translation>
+<translation id="1196338895211115272">秘密鍵をエクスポートできませんでした。</translation>
 <translation id="1256619696651732561">拡張機能マニフェストのパーサー</translation>
+<translation id="1420684932347524586">ランダムな RSA 秘密鍵を生成できませんでした。</translation>
 <translation id="1445572445564823378">この拡張機能によって <ph name="PRODUCT_NAME" /> の速度が低下しています。<ph name="PRODUCT_NAME" /> のパフォーマンスを回復するには、この拡張機能を無効にしてください。</translation>
 <translation id="1468038450257740950">WebGL はサポートされていません。</translation>
 <translation id="149347756975725155">拡張機能アイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation>
 <translation id="1803557475693955505">背景ページ「<ph name="BACKGROUND_PAGE" />」を読み込むことができませんでした。</translation>
 <translation id="2159915644201199628">画像をデコードできませんでした: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">言語/地域機能は使用されていますが、マニフェストに default_locale が指定されていません。</translation>
+<translation id="2576842806987913196">既にこの名前の CRX ファイルが存在しています。</translation>
 <translation id="2753617847762399167">パス(絶対パスまたは '..' がある相対パス)が不適切です: <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">この拡張機能はネットワーク リクエストを変更できませんでした。他の拡張機能と変更が競合しています。</translation>
-<translation id="2857834222104759979">マニフェスト ファイルが無効です。</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" />(拡張機能 ID「<ph name="EXTENSION_ID" />」)は管理者によってブロックされています。<ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">パッケージをインストールできませんでした: <ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_ID" />、シリアル番号: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ファイルを置き換えられませんでした。ファイルが使用されていないか確認してください。</translation>
 <translation id="3163201441334626963">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_ID" />)</translation>
 <translation id="3369521687965833290">拡張機能を解凍できません。拡張機能を安全に解凍するには、ドライブ文字で始まるプロフィール ディレクトリへのパスが必要です(ジャンクション、マウント ポイント、シンボリック リンクが含まれていないこと)。このようなパスがプロフィール内に存在しません。</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" />(シリアル番号: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" />(ベンダー: <ph name="VENDOR_ID" />、シリアル番号: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">秘密鍵の入力値は有効なパスでなければなりません。</translation>
 <translation id="388442998277590542">オプション ページ「<ph name="OPTIONS_PAGE" />」を読み込むことができませんでした。</translation>
+<translation id="3984413272403535372">拡張機能の署名中にエラーが発生しました。</translation>
 <translation id="4115165561519362854">このパソコンの管理者により、<ph name="EXTENSION_NAME" /> バージョン <ph name="EXTENSION_VERSION" /> 以上が要件に指定されています。有効にするにはこのバージョン以上に更新する必要があります。</translation>
 <translation id="4233778200880751280">情報ページ「<ph name="ABOUT_PAGE" />」を読み込めませんでした。</translation>
+<translation id="471800408830181311">秘密鍵を出力できませんでした。</translation>
 <translation id="4811956658694082538">ユーティリティ プロセスで問題が発生したため、パッケージをインストールできませんでした。Chrome を再起動してもう一度お試しください。</translation>
+<translation id="4988792151665380515">公開鍵をエクスポートできませんでした。</translation>
 <translation id="5026754133087629784">WebView: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">圧縮するディレクトリの絶対パスが見つかりません。</translation>
 <translation id="5356315618422219272">アプリビュー: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">形状指定ウィンドウはサポートされていません。</translation>
 <translation id="5456409301717116725">この拡張機能には、鍵ファイル「<ph name="KEY_PATH" />」が含まれていますが、おそらくその必要性はありません。</translation>
+<translation id="5486326529110362464">秘密鍵の入力値が存在している必要があります。</translation>
 <translation id="5627523580512561598">拡張機能 <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">このパソコンの管理者により、<ph name="EXTENSION_NAME" /> をインストールすることが要件として指定されています。この拡張機能はアンインストールできません。</translation>
 <translation id="6027032947578871493">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_NAME" />、シリアル番号: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" />(ベンダー: <ph name="VENDOR_ID" />)</translation>
 <translation id="6143635259298204954">拡張機能を解凍できません。拡張機能を安全に解凍するには、シンボリック リンクが含まれていないプロフィール ディレクトリへのパスが必要です。このようなパスがプロフィール内に存在しません。</translation>
+<translation id="6322279351188361895">秘密鍵を読み取ることができませんでした。</translation>
+<translation id="6391538222494443604">入力ディレクトリが存在している必要があります。</translation>
 <translation id="641087317769093025">拡張機能を解凍できませんでした</translation>
 <translation id="6542618148162044354">「<ph name="APP_NAME" />」が次のデバイスへのアクセスをリクエストしています:</translation>
 <translation id="657064425229075395">バックグラウンド スクリプト「<ph name="BACKGROUND_SCRIPT" />」を読み込めませんでした。</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">この拡張機能は、ダウンロード ファイル「<ph name="ATTEMPTED_FILENAME" />」に名前を付けることができませんでした。別の拡張機能(<ph name="EXTENSION_NAME" />)が異なるファイル名「<ph name="ACTUAL_FILENAME" />」を指定しました。</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" />、提供元: <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">別の拡張機能(<ph name="EXTENSION_NAME" />)がネットワーク リクエストに別の認証情報を提供したため、この拡張機能は認証情報を提供できませんでした。</translation>
-<translation id="8602184400052594090">マニフェスト ファイルが見つからないか読み取れません。</translation>
 <translation id="8636666366616799973">パッケージが無効です。詳細: <ph name="ERROR_MESSAGE" /></translation>
 <translation id="8670869118777164560">別の拡張機能(<ph name="EXTENSION_NAME" />)がネットワーク リクエストを <ph name="ACTUAL_REDIRECT_DESTINATION" /> にリダイレクトしたため、この拡張機能はリクエストを <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> にリダイレクトできませんでした。</translation>
 <translation id="8712265948125780616">拡張機能の解凍機能</translation>
 <translation id="8761756413268424715">「<ph name="APP_NAME" />」が次のデバイスへのアクセスをリクエストしています:</translation>
 <translation id="8825366169884721447">ネットワーク リクエストのリクエスト ヘッダー「<ph name="HEADER_NAME" />」への変更内容が別の拡張機能(<ph name="EXTENSION_NAME" />)と競合したため、この拡張機能はヘッダーを変更できませんでした。</translation>
+<translation id="8885905466771744233">指定した拡張機能の秘密鍵は既に存在します。その鍵を再利用するか、先に削除してください。</translation>
+<translation id="907841381057066561">パッケージ化の処理中に一時的な zip ファイルを作成できませんでした。</translation>
 <translation id="9111791539553342076">ネットワーク リクエストの応答ヘッダー「<ph name="HEADER_NAME" />」への変更内容が別の拡張機能(<ph name="EXTENSION_NAME" />)と競合したため、この拡張機能はヘッダーを変更できませんでした。</translation>
+<translation id="941543339607623937">秘密鍵が無効です。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_kn.xtb b/extensions/strings/extensions_strings_kn.xtb
index 67ed59c..2e809c5 100644
--- a/extensions/strings/extensions_strings_kn.xtb
+++ b/extensions/strings/extensions_strings_kn.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="kn">
 <translation id="1135328998467923690">ಪ್ಯಾಕೇಜ್ ಅಮಾನ್ಯವಾಗಿದೆ: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">ಪರಿಸರಕ್ಕೆ ಮುಖಮಾಡಿದೆ</translation>
+<translation id="1196338895211115272">ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ರಫ್ತು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="1256619696651732561">ವಿಸ್ತರಣೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ ವಿಶ್ಲೇಷಕ</translation>
+<translation id="1420684932347524586">ಅಯ್ಯೋ! ಯಾದೃಚ್ಛಿಕ RSA ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="1445572445564823378">ಈ ವಿಸ್ತರಣೆಯು <ph name="PRODUCT_NAME" /> ಅನ್ನು ನಿಧಾನವಾಗಿಸುತ್ತಿದೆ. ನೀವು <ph name="PRODUCT_NAME" /> ರ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮತ್ತೊಮ್ಮೆ ಪ್ರಾರಂಭಿಸಲು ಇದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದು ಅವಶ್ಯಕ.</translation>
 <translation id="1468038450257740950">WebGL ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="149347756975725155">'<ph name="ICON" />' ಎಕ್ಸ್‌ಟೆನ್ಷನ್ ಐಕಾನ್  ಲೋಡ್ ಮಾಡಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' ಹಿನ್ನಲೆ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="2159915644201199628">ಚಿತ್ರವನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">ಲೋಕಲೈಜೇಷನ್ ಬಳಸಲಾಗಿದೆ, ಆದರೆ ಡಿಫಾಲ್ಟ್ _ಲೋಕಲ್ ಅನ್ನು ಮ್ಯಾನಿಫಾಸ್ಟ್‌ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ.</translation>
+<translation id="2576842806987913196">ಪ್ರಸ್ತುತ ಈ ಹೆಸರಿನೊಂದಿಗೆ ಈಗಾಗಲೇ CRX ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ.</translation>
 <translation id="2753617847762399167">ಕಾನೂನು ಬಾಹಿರ ಪಾಥ್ ('..' ರೊಂದಿಗೆ ಸಮಗ್ರ ಅಥವಾ ಸಂಬಂಧಿತ... ): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಯನ್ನು ಮಾರ್ಪಡಿಸಲು ಈ ವಿಸ್ತರಣೆಯು ವಿಫಲವಾಗಿದೆ ಏಕೆಂದರೆ ಮಾರ್ಪಡಿಸುವಿಕೆಯು ಮತ್ತೊಂದು ವಿಸ್ತರಣೆಯೊಂದಿಗೆ ಸಂಘರ್ಷಗೊಂಡಿದೆ.</translation>
-<translation id="2857834222104759979">ಮ್ಯಾನಿಫೆಸ್ಟ್ ಫೈಲ್ ಮಾನ್ಯತೆ ಪಡೆದಿಲ್ಲ.</translation>
 <translation id="2903070246402204397">ನಿರ್ವಾಹಕರಿಂದ <ph name="EXTENSION_NAME" /> (ವಿಸ್ತರಣೆ ಐಡಿ "<ph name="EXTENSION_ID" />") ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ <ph name="PRODUCT_ID" /> ಅಪರಿಚಿತ ಉತ್ಪನ್ನ (ಕ್ರಮ ಸಂಖ್ಯೆ <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ಫೈಲ್ ಅನ್ನು ಸ್ಥಾನಾಂತರಿಸುವಲ್ಲಿ ವಿಫಲಗೊಂಡಿದೆ. ಫೈಲ್ ಬಳಕೆಯಲ್ಲಿದೆಯೆ ಎಂದು ಪರಿಶೀಲಿಸಿ.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ <ph name="PRODUCT_ID" /> ಅಪರಿಚಿತ ಉತ್ಪನ್ನ</translation>
 <translation id="3369521687965833290">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್‌ಪ್ಯಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ವಿಸ್ತರಣೆಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಅನ್‌ಪ್ಯಾಕ್ ಮಾಡಲು, ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ ಪಾಥ್ ಇದ್ದು ಅದು ಡ್ರೈವ್ ಅಕ್ಷರದೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಜಂಕ್ಷನ್, ಮೌಂಟ್ ಪಾಯಿಂಟ್ ಅಥವಾ ಸಿಮ್‌ಲಿಂಕ್ ಅನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪ್ರೊಫೈಲ್‌ನಲ್ಲಿ ಯಾವುದೇ ಪಾಥ್ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವುದಿಲ್ಲ.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (ಕ್ರಮ ಸಂಖ್ಯೆ <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ <ph name="PRODUCT_NAME" /> (ಕ್ರಮ ಸಂಖ್ಯೆ <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ಖಾಸಗಿ ಕೀಲಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯವು ಮಾನ್ಯವಾದ ಹಾದಿಯಾಗಿರಬೇಕು.</translation>
 <translation id="388442998277590542">ಆಯ್ಕೆಗಳ ಪುಟ '<ph name="OPTIONS_PAGE" />' ವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
+<translation id="3984413272403535372">ವಿಸ್ತರಣೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವಾಗ ದೋಷ.</translation>
 <translation id="4115165561519362854">ಈ ಮೆಷಿನ್‌ನ ನಿರ್ವಾಹಕರಿಗೆ <ph name="EXTENSION_VERSION" /> ನ ಕನಿಷ್ಠ ಆವೃತಿಯನ್ನು <ph name="EXTENSION_NAME" /> ಹೊಂದಬೇಕಾದ ಅಗತ್ಯವಿದೆ. ಅದು ಹೊಸ ಆವೃತ್ತಿಗೆ (ಅಥವಾ ಹೆಚ್ಚಿನ) ನವೀಕರಣಗೊಳ್ಳುವವರೆಗೂ ಇದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' ಪುಟದ ಕುರಿತು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
+<translation id="471800408830181311">ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="4811956658694082538">ಉಪಯುಕ್ತತೆಯ ಪ್ರಕ್ರಿಯೆಯು ಹಾಳಾಗಿರುವ ಕಾರಣ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ. Chrome ಮರುಪ್ರಾರಂಭಿಸಲು ಪ್ರಯತ್ನಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
+<translation id="4988792151665380515">ಸಾರ್ವಜನಿಕ ಕೀಲಿಯನ್ನು ರಫ್ತು ಮಾಡಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="5026754133087629784">ವೆಬ್‌ವೀಕ್ಷಣೆ: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">ಡೈರೆಕ್ಟರಿಗೆ ಪ್ಯಾಕ್ ಮಾಡಲು ಸರಿಯಾದ ಪಥವನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ.</translation>
 <translation id="5356315618422219272">ಅಪ್ಲಿಕೇಶನ್ ವೀಕ್ಷಣೆ: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">ಆಕಾರಗೊಳಿಸಿದ ವಿಂಡೋಗಳಿಗೆ ಬೆಂಬಲವಿಲ್ಲ.</translation>
 <translation id="5456409301717116725">ಈ ವಿಸ್ತರಣೆಯು ಕೀ ಫೈಲ್ '<ph name="KEY_PATH" />' ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಹಾಗೆ ಮಾಡಲು ಬಯಸುವುದಿಲ್ಲ.</translation>
+<translation id="5486326529110362464">ಖಾಸಗಿ ಕೀಲಿಗಾಗಿ ಇನ್‌ಪುಟ್ ಮೌಲ್ಯ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು.</translation>
 <translation id="5627523580512561598">ವಿಸ್ತರಣೆ<ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ವಿಸ್ತರಣೆವೀಕ್ಷಣೆ: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">ಈ ಯಂತ್ರದ ನಿರ್ವಾಹಕರಿಗೆ <ph name="EXTENSION_NAME" /> ಸ್ಥಾಪಿಸಲು ಅಗತ್ಯವಿದೆ. ಇದನ್ನು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> ಅವರಿಂದ <ph name="PRODUCT_ID" /> ಅಪರಿಚಿತ ಉತ್ಪನ್ನ (ಕ್ರಮ ಸಂಖ್ಯೆ <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> ಮಾರಾಟಗಾರರಿಂದ <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್‌ಪ್ಯಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಸುರಕ್ಷಿತವಾಗಿ ವಿಸ್ತರಣೆಯನ್ನು ಅನ್‌ಪ್ಯಾಕ್ ಮಾಡಲು, ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಡೈರೆಕ್ಟರಿಗೆ ಪಾಥ್ ಇರಬೇಕು ಅದು ಡ್ರೈವ್ ಅಕ್ಷರಗಳೊಂದಿಗೆ ಮತ್ತು ಜಂಕ್ಷನ್, ಮೌಂಟ್ ಪಾಯಿಂಟ್, ಅಥವಾ ಸಿಮ್‌ಲಿಂಕ್ ಅನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ನಿಮ್ಮ ಪ್ರೊಫೈಲ್‌ಗಾಗಿ ಯಾವುದೇ ಪಾಥ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ.</translation>
+<translation id="6322279351188361895">ಗೌಪ್ಯತೆ ಕೀಲಿಯನ್ನು ಓದಲು ವಿಫಲವಾಗಿದೆ.</translation>
+<translation id="6391538222494443604">ಇನ್‌ಪುಟ್ ಡೈರೆಕ್ಟರಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರಬೇಕು.</translation>
 <translation id="641087317769093025">ವಿಸ್ತರಣೆಯನ್ನು ಅನ್ ಜಿಪ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ ಒಂದು ಅಥವಾ ಹೆಚ್ಚಿನ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ:</translation>
 <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' ಹಿನ್ನೆಲೆ ಪುಟವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">ಈ ವಿಸ್ತರಣೆಯು "<ph name="ATTEMPTED_FILENAME" />" ಅನ್ನು ಡೌನ್‌ಲೋಡ್‌ ಮಾಡುವುದನ್ನು ಹೆಸರಿಸಲು ವಿಫಲವಾಗಿದೆ ಏಕೆಂದರೆ ಮತ್ತೊಂದು ವಿಸ್ತರಣೆ (<ph name="EXTENSION_NAME" />) ಯು ವಿಭಿನ್ನ ಫೈಲ್‌ ಹೆಸರು "<ph name="ACTUAL_FILENAME" />" ಗೆ ನಿರ್ಧರಿಸಿದೆ.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> ರಿಂದ <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">ಬೇರೊಂದು ವಿಸ್ತರಣೆಯು (<ph name="EXTENSION_NAME" />) ವಿಭಿನ್ನ ರುಜುವಾತುಗಳನ್ನು ಒದಗಿಸಿರುವ ಕಾರಣ ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಗೆ ರುಜುವಾತುಗಳನ್ನು ಒದಗಿಸಲು ಈ ವಿಸ್ತರಣೆಯು ವಿಫಲವಾಗಿದೆ.</translation>
-<translation id="8602184400052594090">ಮ್ಯಾನಿಫೆಸ್ಟ್ ಫೈಲ್ ಕಾಣದಾಗಿದೆ ಅಥವಾ ಓದಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="8636666366616799973">ಪ್ಯಾಕೇಜ್ ಅಮಾನ್ಯವಾಗಿದೆ. ವಿವರಗಳು: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">ಬೇರೊಂದು ವಿಸ್ತರಣೆಯು (<ph name="EXTENSION_NAME" />) ಇದನ್ನು <ph name="ACTUAL_REDIRECT_DESTINATION" /> ಗೆ ಮರುನಿರ್ದೇಶಿಸಿರುವ ಕಾರಣ ಈ ವಿಸ್ತರಣೆಯು ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಯನ್ನು <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> ಗೆ ಮರುನಿರ್ದೇಶಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="8712265948125780616">ವಿಸ್ತರಣೆ ಅನ್‌ಪ್ಯಾಕರ್‌‌</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ವಿನಂತಿಸುತ್ತಿದೆ:</translation>
 <translation id="8825366169884721447">ಮತ್ತೊಂದು ವಿಸ್ತರಣೆ (<ph name="EXTENSION_NAME" />) ಯೊಂದಿಗೆ ಮಾರ್ಪಡಿಸುವಿಕೆಯು ಸಂಘರ್ಷಗೊಂಡಿರುವ ಕಾರಣ ಈ ವಿಸ್ತರಣೆಯು ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಯ  ವಿನಂತಿಯ ಶಿರೋನಾಮೆ "<ph name="HEADER_NAME" />" ಯನ್ನು ಮಾರ್ಪಡಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
+<translation id="8885905466771744233">ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ವಿಸ್ತರಣೆಗೆ ಖಾಸಗಿ ಕೀಲಿ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. ಆ ಕೀಲಿಯನ್ನು ಮರುಬಳಕೆ ಮಾಡಿ ಅಥವಾ ಮೊದಲು ಅದನ್ನು ಅಳಿಸಿ.</translation>
+<translation id="907841381057066561">ಪ್ಯಾಕೇಜಿಂಗ್ ಸಮಯದಲ್ಲಿ ತಾತ್ಕಾಲಿಕ ಜಿಪ್ ಫೈಲ್ ರಚಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="9111791539553342076">ಮತ್ತೊಂದು ವಿಸ್ತರಣೆ (<ph name="EXTENSION_NAME" />) ಯೊಂದಿಗೆ ಮಾರ್ಪಡಿಸುವಿಕೆಯು ಸಂಘರ್ಷಗೊಂಡಿರುವ ಕಾರಣ ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಯ ಪ್ರತಿಕ್ರಿಯೆ ಶಿರೋನಾಮೆ "<ph name="HEADER_NAME" />" ಯನ್ನು ಮಾರ್ಪಡಿಸಲು ಈ ವಿಸ್ತರಣೆಯು ವಿಫಲವಾಗಿದೆ.</translation>
+<translation id="941543339607623937">ಅಮಾನ್ಯ ಖಾಸಗಿ ಕೀಲಿ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ko.xtb b/extensions/strings/extensions_strings_ko.xtb
index 2dd36ee..bf9a0788 100644
--- a/extensions/strings/extensions_strings_ko.xtb
+++ b/extensions/strings/extensions_strings_ko.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ko">
 <translation id="1135328998467923690">패키지가 잘못되었습니다. '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">후면</translation>
+<translation id="1196338895211115272">비공개 키를 내보내지 못했습니다.</translation>
 <translation id="1256619696651732561">확장 프로그램 매니페스트 파서</translation>
+<translation id="1420684932347524586">임의의 RSA 비공개 키를 생성하지 못했습니다.</translation>
 <translation id="1445572445564823378">이 확장 프로그램은 <ph name="PRODUCT_NAME" />의 성능을 저하시킵니다. <ph name="PRODUCT_NAME" />의 성능을 복원하려면 확장 프로그램을 사용중지해야 합니다.</translation>
 <translation id="1468038450257740950">WebGL이 지원되지 않습니다.</translation>
 <translation id="149347756975725155">확장 프로그램 아이콘('<ph name="ICON" />')을 로드하지 못했습니다.</translation>
 <translation id="1803557475693955505">배경 페이지('<ph name="BACKGROUND_PAGE" />')를 로드하지 못했습니다.</translation>
 <translation id="2159915644201199628">'<ph name="IMAGE_NAME" />' 이미지를 디코딩하지 못했습니다.</translation>
 <translation id="2350172092385603347">번역한 언어를 이용하였지만 매니페스트에 기본 언어(default_locale)를 지정하지 않았습니다.</translation>
+<translation id="2576842806987913196">동일한 이름의 CRX 파일이 이미 있습니다.</translation>
 <translation id="2753617847762399167">불법 경로(절대 또는 상대): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">수정 내용이 다른 확장 프로그램과 충돌하여 이 확장 프로그램이 네트워크 요청을 수정하지 못했습니다.</translation>
-<translation id="2857834222104759979">매니페스트 파일이 잘못되었습니다.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" />(확장 프로그램 ID '<ph name="EXTENSION_ID" />')은(는) 관리자에 의해 차단되었습니다. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">패키지를 설치할 수 없습니다. '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">공급업체 <ph name="VENDOR_ID" />의 알 수 없는 제품 <ph name="PRODUCT_ID" />(일련번호 <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx 파일을 대체하지 못했습니다. 파일을 사용 중인지 확인하세요.</translation>
 <translation id="3163201441334626963">공급업체 <ph name="VENDOR_ID" />의 알 수 없는 제품 <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">확장 프로그램을 압축해제할 수 없습니다. 확장 프로그램을 안전하게 압축해제하려면 드라이브 문자로 시작되고 정션(junction), 마운트 포인트(mount point) 또는 심볼릭 링크가 포함되지 않은 프로필 디렉토리 경로가 있어야 합니다. 프로필에 해당 경로가 없습니다.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" />(일련번호 <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">공급업체 <ph name="VENDOR_ID" />의 <ph name="PRODUCT_NAME" />(일련번호 <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">비공개 키 입력 값은 유효한 경로여야 합니다.</translation>
 <translation id="388442998277590542">옵션 페이지('<ph name="OPTIONS_PAGE" />')를 로드하지 못했습니다.</translation>
+<translation id="3984413272403535372">확장 프로그램에 서명하는 중에 오류가 발생했습니다.</translation>
 <translation id="4115165561519362854">이 시스템의 관리자가 최소 <ph name="EXTENSION_NAME" /> <ph name="EXTENSION_VERSION" /> 버전을 요구합니다. 해당 버전 이상으로 업데이트하지 않으면 사용할 수 없습니다.</translation>
 <translation id="4233778200880751280">정보 페이지 '<ph name="ABOUT_PAGE" />'을(를) 로드할 수 없습니다.</translation>
+<translation id="471800408830181311">비공개 키를 출력하지 못했습니다.</translation>
 <translation id="4811956658694082538">유틸리티 프로세스가 충돌하여 패키지를 설정하지 못했습니다. Chrome을 다시 시작하고 다시 설치해 보세요.</translation>
+<translation id="4988792151665380515">공개 키를 내보내지 못했습니다.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">패키지할 디렉토리에 대한 절대 경로를 찾을 수 없습니다.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">창 모양은 지원되지 않습니다.</translation>
 <translation id="5456409301717116725">이 확장 프로그램은 키 파일 '<ph name="KEY_PATH" />'을(를) 포함합니다. 사용하지 않는 것이 좋습니다.</translation>
+<translation id="5486326529110362464">비공개 키 입력 값이 있어야 합니다.</translation>
 <translation id="5627523580512561598">확장 프로그램 <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">확장보기: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">이 시스템의 관리자가 <ph name="EXTENSION_NAME" />의 설치를 요구합니다. 이 확장 프로그램은 제거할 수 없습니다.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" />의 알 수 없는 제품 <ph name="PRODUCT_ID" />(일련번호 <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721">공급업체 <ph name="VENDOR_ID" />의 <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">확장 프로그램을 압축해제할 수 없습니다. 확장 프로그램을 안전하게 압축해제하려면 심볼릭 링크가 포함되지 않은 프로필 디렉토리 경로가 있어야 합니다. 프로필에 해당 경로가 없습니다.</translation>
+<translation id="6322279351188361895">비공개 키를 읽지 못했습니다.</translation>
+<translation id="6391538222494443604">입력 디렉토리가 있어야 합니다.</translation>
 <translation id="641087317769093025">확장 프로그램의 압축을 해제하지 못했습니다.</translation>
 <translation id="6542618148162044354">'<ph name="APP_NAME" />'이(가) 사용자의 기기 하나 이상에 액세스 권한을 요청하고 있습니다.</translation>
 <translation id="657064425229075395">백그라운드 스크립트('<ph name="BACKGROUND_SCRIPT" />')를 로드하지 못했습니다.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">다른 확장 프로그램(<ph name="EXTENSION_NAME" />)에서 파일 이름을 '<ph name="ACTUAL_FILENAME" />'(으)로 지정했기 때문에 이 확장 프로그램에서 다운로드하는 파일의 이름을 '<ph name="ATTEMPTED_FILENAME" />'(으)로 지정하지 못했습니다.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" />의 <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">이 확장 프로그램이 네트워크 요청에 자격 증명을 제공하는 데 실패했습니다. 다른 확장 프로그램(<ph name="EXTENSION_NAME" />)이 다른 자격 증명을 제공했습니다.</translation>
-<translation id="8602184400052594090">매니페스트 파일이 없거나 읽을 수 없습니다.</translation>
 <translation id="8636666366616799973">패키지가 잘못되었습니다. 세부정보: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">이 확장 프로그램에서 네트워크 요청을 <ph name="ATTEMPTED_REDIRECT_DESTINATION" />(으)로 리디렉션하는 데 실패했습니다. 다른 확장 프로그램(<ph name="EXTENSION_NAME" />)이 해당 요청을 <ph name="ACTUAL_REDIRECT_DESTINATION" />(으)로 리디렉션했습니다.</translation>
 <translation id="8712265948125780616">확장 프로그램 압축 해제 프로그램</translation>
 <translation id="8761756413268424715">'<ph name="APP_NAME" />'이(가) 사용자의 기기 중 하나에 액세스 권한을 요청하고 있습니다.</translation>
 <translation id="8825366169884721447">이 확장프로그램이 네트워크 요청의 요청 헤더 '<ph name="HEADER_NAME" />을(를) 수정하는 데 실패했습니다. 수정 요청이 다른 확장 프로그램(<ph name="EXTENSION_NAME" />)와(과) 충돌했습니다.</translation>
+<translation id="8885905466771744233">지정한 확장 프로그램에 대한 비공개 키가 이미 있습니다. 해당 키를 다시 사용하거나 먼저 삭제하세요.</translation>
+<translation id="907841381057066561">압축하는 동안 임시 zip 파일을 만들지 못했습니다.</translation>
 <translation id="9111791539553342076">이 확장 프로그램이 네트워크 요청의 응답 헤더 '<ph name="HEADER_NAME" />'을(를) 수정하는 데 실패했습니다. 수정 요청이 다른 확장 프로그램(<ph name="EXTENSION_NAME" />)와(과) 충돌했습니다.</translation>
+<translation id="941543339607623937">비공개 키가 잘못되었습니다.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_lt.xtb b/extensions/strings/extensions_strings_lt.xtb
index 589e19de..ae944cc 100644
--- a/extensions/strings/extensions_strings_lt.xtb
+++ b/extensions/strings/extensions_strings_lt.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="lt">
 <translation id="1135328998467923690">Paketas netinkamas: „<ph name="ERROR_CODE" />“.</translation>
 <translation id="1140871961407805696">Nukreiptas į aplinką</translation>
+<translation id="1196338895211115272">Nepavyko eksportuoti privačiojo rakto.</translation>
 <translation id="1256619696651732561">Plėtinio aprašo analizavimo įrankis</translation>
+<translation id="1420684932347524586">Oi! Nepavyko sukurti atsitiktinio RSA privačiojo rakto.</translation>
 <translation id="1445572445564823378">Dėl šio plėtinio lėčiau veikia „<ph name="PRODUCT_NAME" />“. Kad atkurtumėte „<ph name="PRODUCT_NAME" />“ našumą, turite jo neleisti.</translation>
 <translation id="1468038450257740950">„WebGL“ nepalaikomas.</translation>
 <translation id="149347756975725155">Nepavyko įkelti „<ph name="ICON" />“ plėtinio piktogramos.</translation>
 <translation id="1803557475693955505">Nepavyko įkelti fono puslapio „<ph name="BACKGROUND_PAGE" />“.</translation>
 <translation id="2159915644201199628">Nepavyko iššifruoti vaizdo: „<ph name="IMAGE_NAME" />“</translation>
 <translation id="2350172092385603347">Naudotas lokalizavimas, bet deklaracijoje nenurodyta numatytoji lokalė.</translation>
+<translation id="2576842806987913196">CRX failas tokiu pavadinimu jau yra.</translation>
 <translation id="2753617847762399167">Netinkamas kelias (absoliutus arba susijęs su „..“): „<ph name="IMAGE_PATH" />“</translation>
 <translation id="27822970480436970">Šiam plėtiniui nepavyko pakeisti tinklo užklausos, nes pakeitimas nesuderinamas su kitu plėtiniu.</translation>
-<translation id="2857834222104759979">Neteisingas deklaracijos failas.</translation>
 <translation id="2903070246402204397">„<ph name="EXTENSION_NAME" />“ (plėtinio ID „<ph name="EXTENSION_ID" />“) užblokavo administratorius. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nepavyko įdiegti paketo: „<ph name="ERROR_CODE" />“</translation>
 <translation id="3115238746683532089">Nežinomas produktas „<ph name="PRODUCT_ID" />“ iš teikėjo „<ph name="VENDOR_ID" />“ (serijos numeris: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Nepavyko pakeisti CRX failo. Patikrinkite, ar failas naudojamas.</translation>
 <translation id="3163201441334626963">Nežinomas produktas „<ph name="PRODUCT_ID" />“ iš teikėjo „<ph name="VENDOR_ID" />“</translation>
 <translation id="3369521687965833290">Nepavyksta išpakuoti plėtinio. Kad būtų galima saugiai išpakuoti plėtinį, turi būti nurodytas kelias į profilio katalogą, kuris turi prasidėti disko vardu ir kuriame negali būti sujungimo, įrengimo taško ar virtualiojo katalogo.</translation>
 <translation id="3393440416772303020">„<ph name="PRODUCT_NAME" />“ (serijos numeris: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">„<ph name="PRODUCT_NAME" />“ iš teikėjo „<ph name="VENDOR_ID" />“ (serijos numeris: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Privačiojo rakto įvesties vertė turi būti galiojantis kelias.</translation>
 <translation id="388442998277590542">Nepavyko įkelti parinkčių puslapio „<ph name="OPTIONS_PAGE" />“.</translation>
+<translation id="3984413272403535372">Pasirašant plėtinį įvyko klaida.</translation>
 <translation id="4115165561519362854">Šio kompiuterio administratorius reikalauja, kad „<ph name="EXTENSION_NAME" />“ būtų bent <ph name="EXTENSION_VERSION" /> versijos. Negalėsite įgalinti plėtinio, kol neatnaujinsite jo į nurodytą (ar naujesnę) versiją.</translation>
 <translation id="4233778200880751280">Nepavyko įkelti informacijos puslapio „<ph name="ABOUT_PAGE" />“.</translation>
+<translation id="471800408830181311">Privačiojo rakto išvestis nepavyko.</translation>
 <translation id="4811956658694082538">Nepavyko įdiegti paketo, nes užstrigo priemonės procesas. Bandykite iš naujo paleisti „Chrome“ ir bandykite dar kartą.</translation>
+<translation id="4988792151665380515">Nepavyko eksportuoti viešojo rakto.</translation>
 <translation id="5026754133087629784">Žiniatinklio rodinys: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nepavyksta rasti tikrojo kelio į katalogą, kad būtų galima sukurti paketą.</translation>
 <translation id="5356315618422219272">Programų rodinys: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Tam tikros formos langai nepalaikomi.</translation>
 <translation id="5456409301717116725">Šiame plėtinyje yra rakto failas „<ph name="KEY_PATH" />“. Neturėtumėte to daryti.</translation>
+<translation id="5486326529110362464">Turi būti privačiojo rakto įvesties vertė.</translation>
 <translation id="5627523580512561598">„<ph name="EXTENSION_NAME" />“ plėtinys</translation>
 <translation id="5960890139610307736">Plėtinio peržiūra: „<ph name="EXTENSIONVIEW_TAG_NAME" />“</translation>
 <translation id="5972529113578162692">Šio įrenginio administratorius reikalauja, kad „<ph name="EXTENSION_NAME" />“ plėtinys būtų įdiegtas. Jo negalima pašalinti.</translation>
 <translation id="6027032947578871493">Nežinomas produktas „<ph name="PRODUCT_ID" />“ iš „<ph name="VENDOR_NAME" />“ (serijos numeris: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721">„<ph name="PRODUCT_NAME" />“ iš teikėjo „<ph name="VENDOR_ID" />“</translation>
 <translation id="6143635259298204954">Nepavyksta išpakuoti plėtinio. Kad būtų galima saugiai išpakuoti plėtinį, turi būti nurodytas kelias į profilio katalogą, kuriame nebūtų virtualiojo katalogo. Nėra tokio tipo jūsų profilio kelio.</translation>
+<translation id="6322279351188361895">Nepavyko nuskaityti privačiojo rakto.</translation>
+<translation id="6391538222494443604">Turi būti įvesties katalogas.</translation>
 <translation id="641087317769093025">Nepavyko išarchyvuoti plėtinio</translation>
 <translation id="6542618148162044354">„<ph name="APP_NAME" />“ prašo leidimo pasiekti vieną ar daugiau jūsų įrenginių:</translation>
 <translation id="657064425229075395">Nepavyko įkelti foninio scenarijaus „<ph name="BACKGROUND_SCRIPT" />“.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Šiam plėtiniui nepavyko pavadinti atsisiuntimo „<ph name="ATTEMPTED_FILENAME" />“, nes kitas plėtinys („<ph name="EXTENSION_NAME" />“) nustatė kitokį failo pavadinimą – „<ph name="ACTUAL_FILENAME" />“.</translation>
 <translation id="8284835137979141223">„<ph name="PRODUCT_NAME" />“ iš „<ph name="VENDOR_NAME" />“</translation>
 <translation id="8341840687457896278">Šiam plėtiniui pateikiant įgaliojimą tinklo užklausai įvyko klaida, nes kitas plėtinys („<ph name="EXTENSION_NAME" />“) pateikė kitokį įgaliojimą.</translation>
-<translation id="8602184400052594090">Trūksta deklaracijos arba ji nenuskaitoma.</translation>
 <translation id="8636666366616799973">Paketas netinkamas. Išsami informacija: „<ph name="ERROR_MESSAGE" />“.</translation>
 <translation id="8670869118777164560">Šiam plėtiniui peradresuojant tinklo užklausą <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> įvyko klaida, nes kitas plėtinys („<ph name="EXTENSION_NAME" />“) peradresavo ją <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Plėtinių išskleidimo priemonė</translation>
 <translation id="8761756413268424715">„<ph name="APP_NAME" />“ prašo leidimo pasiekti vieną iš jūsų įrenginių:</translation>
 <translation id="8825366169884721447">Šiam plėtiniui keičiant tinklo užklausos antraštę „<ph name="HEADER_NAME" />“ įvyko klaida, nes dėl pakeitimo kilo konfliktas su kitu plėtiniu („<ph name="EXTENSION_NAME" />“).</translation>
+<translation id="8885905466771744233">Privatusis nurodyto plėtinio raktas jau yra. Naudokite šį raktą iš naujo arba pirmiausia jį ištrinkite.</translation>
+<translation id="907841381057066561">Pakuojant nepavyko sukurti laikino talpiojo („zip“) failo.</translation>
 <translation id="9111791539553342076">Šiam plėtiniui keičiant tinklo užklausos atsakymo antraštę „<ph name="HEADER_NAME" />“ įvyko klaida, nes dėl pakeitimo kilo konfliktas su kitu plėtiniu („<ph name="EXTENSION_NAME" />“).</translation>
+<translation id="941543339607623937">Negaliojantis privatus raktas.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_lv.xtb b/extensions/strings/extensions_strings_lv.xtb
index 60fa5a0..e3f2d9d4 100644
--- a/extensions/strings/extensions_strings_lv.xtb
+++ b/extensions/strings/extensions_strings_lv.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="lv">
 <translation id="1135328998467923690">Pakotne nav derīga: <ph name="ERROR_CODE" />.</translation>
 <translation id="1140871961407805696">Vērsta uz aizmuguri</translation>
+<translation id="1196338895211115272">Neizdevās eksportēt privāto atslēgu.</translation>
 <translation id="1256619696651732561">Paplašinājumu manifestu parsētājs</translation>
+<translation id="1420684932347524586">Vai! Neizdevās ģenerēt nejauši izvēlētu RSA privāto atslēgu.</translation>
 <translation id="1445572445564823378">Šis paplašinājums palēnina <ph name="PRODUCT_NAME" /> darbību. Atspējojiet to, lai atjaunotu <ph name="PRODUCT_NAME" /> veiktspēju.</translation>
 <translation id="1468038450257740950">Tehnoloģija WebGL netiek atbalstīta.</translation>
 <translation id="149347756975725155">Nevarēja ielādēt paplašinājuma ikonu “<ph name="ICON" />”.</translation>
 <translation id="1803557475693955505">Nevarēja ielādēt fona lapu “<ph name="BACKGROUND_PAGE" />”.</translation>
 <translation id="2159915644201199628">Nevarēja dekodēt attēlu: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Lokalizācija ir lietota, tomēr manifestā nav norādīta default_locale.</translation>
+<translation id="2576842806987913196">CRX fails ar šādu nosaukumu jau pastāv.</translation>
 <translation id="2753617847762399167">Nederīgs ceļš (pilnais vai relatīvais ar elementu “..”): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Šim paplašinājumam neizdevās modificēt tīkla pieprasījumu, jo šī modifikācija bija pretrunā ar citu paplašinājumu.</translation>
-<translation id="2857834222104759979">Manifesta fails nav derīgs.</translation>
 <translation id="2903070246402204397">Administrators bloķēja paplašinājumu <ph name="EXTENSION_NAME" /> (paplašinājuma ID “<ph name="EXTENSION_ID" />”). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nevarēja instalēt pakotni: <ph name="ERROR_CODE" />.</translation>
 <translation id="3115238746683532089">Nezināms produkts (ID: <ph name="PRODUCT_ID" />), ko piedāvā <ph name="VENDOR_ID" /> (sērijas numurs: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Neizdevās aizstāt crx failu. Pārbaudiet, vai fails tiek izmantots.</translation>
 <translation id="3163201441334626963">Nezināms produkts (ID: <ph name="PRODUCT_ID" />), ko piedāvā <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Nevar atvērt paplašinājuma pakotni. Lai varētu drošā veidā atvērt paplašinājuma pakotni, jābūt norādītam ceļam uz jūsu profila direktoriju, kas sākas ar diska burtu un neietver savienojumu, montēšanas punktu vai simbolisku saiti. Jūsu profilam nav norādīts šāds ceļš.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (sērijas numurs: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" />, ko piedāvā <ph name="VENDOR_ID" /> (sērijas numurs: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Privātās atslēgas ievades vērtībai jābūt derīgam ceļam.</translation>
 <translation id="388442998277590542">Nevarēja ielādēt opciju lapu “<ph name="OPTIONS_PAGE" />”.</translation>
+<translation id="3984413272403535372">Kļūda paplašinājuma parakstīšanas laikā.</translation>
 <translation id="4115165561519362854">Šīs iekārtas administrators pieprasa, lai tiktu izmantots pakalpojums <ph name="EXTENSION_NAME" /> <ph name="EXTENSION_VERSION" /> vai jaunāka versija. To nevar iespējot, līdz nebūs veikta jaunināšana uz norādīto (vai jaunāku) versiju.</translation>
 <translation id="4233778200880751280">Nevarēja ielādēt lapu “Par” (<ph name="ABOUT_PAGE" />).</translation>
+<translation id="471800408830181311">Neizdevās izvadīt privāto atslēgu.</translation>
 <translation id="4811956658694082538">Nevarēja instalēt pakotni, jo radās avārija utilītprogrammas darbībā. Restartējiet pārlūku Chrome un mēģiniet vēlreiz.</translation>
+<translation id="4988792151665380515">Neizdevās eksportēt publisko atslēgu.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nevar atrast ceļu uz direktoriju, lai to atpakotu.</translation>
 <translation id="5356315618422219272">Lietotnes skats: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Pielāgotas formas logi netiek atbalstīti.</translation>
 <translation id="5456409301717116725">Šis paplašinājums ietver atslēgas failu <ph name="KEY_PATH" />. Iespējams, jūs to nevēlaties izmantot.</translation>
+<translation id="5486326529110362464">Privātās atslēgas ievades vērtībai jābūt.</translation>
 <translation id="5627523580512561598">Paplašinājums <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Šīs ierīces administrators pieprasa, lai būtu instalēts paplašinājums <ph name="EXTENSION_NAME" />. To nevar atinstalēt.</translation>
 <translation id="6027032947578871493">Nezināms produkts (ID: <ph name="PRODUCT_ID" />), ko piedāvā <ph name="VENDOR_NAME" /> (sērijas numurs: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" />, ko piedāvā <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Nevar atvērt paplašinājuma pakotni. Lai varētu drošā veidā atvērt paplašinājuma pakotni, jābūt norādītam ceļam uz jūsu profila direktoriju, kas neietver simbolisku saiti. Jūsu profilam nav norādīts šāds ceļš.</translation>
+<translation id="6322279351188361895">Neizdevās nolasīt privāto atslēgu.</translation>
+<translation id="6391538222494443604">Ievades katalogam jābūt.</translation>
 <translation id="641087317769093025">Paplašinājumu nevarēja izgūt no ZIP arhīva.</translation>
 <translation id="6542618148162044354">Lietotne <ph name="APP_NAME" /> pieprasa piekļuvi vienai vai vairākām jūsu ierīcēm:</translation>
 <translation id="657064425229075395">Nevarēja ielādēt fona skriptu <ph name="BACKGROUND_SCRIPT" />.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Šim paplašinājumam neizdevās piešķirt nosaukumu lejupielādei “<ph name="ATTEMPTED_FILENAME" />”, jo cits paplašinājums (<ph name="EXTENSION_NAME" />) noteica citu faila nosaukumu “<ph name="ACTUAL_FILENAME" />”.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> no <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Šis paplašinājums nevarēja sniegt tīkla pieprasījuma akreditācijas datus, jo cits paplašinājums (<ph name="EXTENSION_NAME" />) sniedza atšķirīgus akreditācijas datus.</translation>
-<translation id="8602184400052594090">Manifesta fails nav atrodams vai nolasāms.</translation>
 <translation id="8636666366616799973">Pakotne nav derīga. Detaļas: <ph name="ERROR_MESSAGE" />.</translation>
 <translation id="8670869118777164560">Šis paplašinājums nevarēja novirzīt tīkla pieprasījumu uz galamērķi <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, jo cits paplašinājums (<ph name="EXTENSION_NAME" />) to novirzīja uz šādu galamērķi: <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Paplašinājumu pakotņu atvērējs</translation>
 <translation id="8761756413268424715">Lietotne <ph name="APP_NAME" /> pieprasa piekļuvi kādai jūsu ierīcei:</translation>
 <translation id="8825366169884721447">Šis paplašinājums nevarēja mainīt tīkla pieprasījuma galveni “<ph name="HEADER_NAME" />”, jo izmaiņas radīja konfliktu ar citu paplašinājumu (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Norādītajam paplašinājumam jau eksistē privāta atslēga. Atkārtoti izmantojiet šo atslēgu vai vispirms to izdzēsiet.</translation>
+<translation id="907841381057066561">Pakošanas laikā neizdevās izveidot pagaidu zip failu.</translation>
 <translation id="9111791539553342076">Šis paplašinājums nevarēja mainīt tīkla pieprasījuma atbildes galveni “<ph name="HEADER_NAME" />”, jo izmaiņas radīja konfliktu ar citu paplašinājumu (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Nederīga privātā atslēga.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ml.xtb b/extensions/strings/extensions_strings_ml.xtb
index f311725..fd918122 100644
--- a/extensions/strings/extensions_strings_ml.xtb
+++ b/extensions/strings/extensions_strings_ml.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ml">
 <translation id="1135328998467923690">പാക്കേജ് അസാധുവാണ്: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">പുറകുവശത്തുള്ള ക്യാമറ</translation>
+<translation id="1196338895211115272">സ്വകാര്യ കീ കയറ്റുമതി ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="1256619696651732561">വിപുലീകരണ മാനിഫെസ്റ്റ് പാഴ്‌സർ</translation>
+<translation id="1420684932347524586">അയ്യോ! ക്രമരഹിത RSA സ്വകാര്യ കീ ജനറേറ്റ് ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു. </translation>
 <translation id="1445572445564823378">ഈ വിപുലീകരണം <ph name="PRODUCT_NAME" />-നെ മന്ദഗതിയിലാക്കുന്നു. <ph name="PRODUCT_NAME" />-ന്റെ പ്രകടനം പുനഃസംഭരിക്കുന്നതിനായി നിങ്ങൾ അതിനെ അപ്രാപ്തമാക്കണം.</translation>
 <translation id="1468038450257740950">WebGL പിന്തുണയ്‌ക്കുന്നില്ല.</translation>
 <translation id="149347756975725155">വിപുലീകരണ ഐക്കണ്‍ '<ph name="ICON" />' ലോഡുചെയ്യാനായില്ല.</translation>
 <translation id="1803557475693955505">പശ്ചാത്തല പേജ് '<ph name="BACKGROUND_PAGE" />' ലോഡുചെയ്യാന്‍ കഴിഞ്ഞില്ല.</translation>
 <translation id="2159915644201199628">ചിത്രം ഡീകോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">ലോക്കലൈസേഷന്‍ ഉപയോഗിച്ചു, എന്നാല്‍ default_locale മാനിഫെസ്റ്റില്‍ വ്യക്തമാക്കിയില്ല.</translation>
+<translation id="2576842806987913196">ഇതേ പേരിൽ ഇതിനകം ഒരു CRX ഫയൽ നിലവിലുണ്ട്.</translation>
 <translation id="2753617847762399167">നിയമവിരുദ്ധമായ പാത്ത് (കേവലം അല്ലെങ്കിൽ '..' എന്നതുമായി ബന്ധപ്പെട്ടത്): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">ഈ വിപുലീകരണം ഒരു നെറ്റ്‌വർക്ക് അഭ്യർത്ഥന പരിഷ്‌കരിക്കുന്നതിൽ പരാജയപ്പെട്ടു കാരണം പരിഷ്‌കരണത്തിന് മറ്റൊരു വിപുലീകരണവുമായി പൊരുത്തക്കേടുണ്ട്.</translation>
-<translation id="2857834222104759979">മാനിഫെസ്റ്റ് ഫയല്‍ അസാധുവാണ്.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (വിപുലീകരണ ഐഡി "<ph name="EXTENSION_ID" />") അഡ്‌മിനിസ്‌ട്രേറ്റർ ബ്ലോക്കുചെയ്‌തു. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">പാക്കേജ് ഇന്‍സ്റ്റാള്‍ ചെയ്യാന്‍ കഴിഞ്ഞില്ല: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> വെൻഡറിൽ നിന്നുള്ള അജ്ഞാത ഉൽപ്പന്നം <ph name="PRODUCT_ID" /> (സീരിയൽ നമ്പർ <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ഫയലിലേക്കുള്ള പുനഃസ്ഥാപനം പരാജയപ്പെട്ടു. ഈ ഫയൽ ഉപയോഗത്തിലാണോ എന്ന് പരിശോധിച്ച് നോക്കുക.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> വെൻഡറിൽ നിന്നുള്ള അജ്ഞാത ഉൽപ്പന്നം <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">വിപുലീകരണം അണ്‍പാക്ക് ചെയ്യാന്‍ കഴിയുന്നില്ല.  ഒരു വിപുലീകരണം സുരക്ഷിതമായി അണ്‍പാക്ക് ചെയ്യുന്നതിന്, ഡ്രൈവ് പ്രതീകം ഉപയോഗിച്ച് ആരംഭിക്കുന്ന നിങ്ങളുടെ പ്രൊഫൈൽ ഡയറക്ടറിയിലേക്കുള്ള പാത്ത് ഉണ്ടായിരിക്കണം മാത്രമല്ല ജംഗ്ഷന്‍, മൌണ്ട് പോയിന്‍റ് അല്ലെങ്കില്‍ സിം‌ലിങ്ക് എന്നിവ അടങ്ങിയിരിക്കരുത്.  നിങ്ങളുടെ പ്രൊഫൈലിനായി അത്തരം പാത്തൊന്നും നിലവിലുണ്ടായിരിക്കരുത്.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (സീരിയൽ നമ്പർ <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> വെൻഡറിൽ നിന്നുള്ള <ph name="PRODUCT_NAME" /> (സീരിയൽ നമ്പർ <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">സ്വകാര്യ കീയ്‌ക്കായുള്ള ഇന്‍‌പുട്ട് മൂല്യം ഒരു സാധുവായ പാതയായിരിക്കണം.</translation>
 <translation id="388442998277590542">'<ph name="OPTIONS_PAGE" />' ഓപ്ഷനുകള്‍ പേജ് ലോഡുചെയ്യാന്‍ കഴിഞ്ഞില്ല.</translation>
+<translation id="3984413272403535372">വിപുലീകരണം സൈന്‍‌ ചെയ്യുന്നസമയത്ത് പിശക്.</translation>
 <translation id="4115165561519362854"><ph name="EXTENSION_VERSION" /> എന്നതിന്റെ ഏറ്റവും കുറഞ്ഞ പതിപ്പിനായി ഈ യന്ത്രത്തിന്റെ അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് <ph name="EXTENSION_NAME" /> എന്നതാവശ്യമാണ്. അത് ആ പതിപ്പിലേക്ക് (അല്ലെങ്കിൽ അതിനും മുകളിലേക്ക്) അപ്‌ഡേറ്റുചെയ്യുന്നതുവരെ അത് പ്രവർത്തനക്ഷമമാക്കാനാവില്ല.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' എന്ന ആമുഖം പേജ് ലോഡുചെയ്യാൻ കഴിഞ്ഞില്ല.</translation>
+<translation id="471800408830181311">സ്വകാര്യ കീ ഔട്ട്‌പുട്ട് ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="4811956658694082538">യൂട്ടിലിറ്റി പ്രോസസ്സ് ക്രാഷായതിനാൽ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല. Chrome വീണ്ടും ആരംഭിച്ച് വീണ്ടും ശ്രമിക്കുന്നത് പരീക്ഷിക്കുക.</translation>
+<translation id="4988792151665380515">പൊതു കീ കയറ്റുമതി ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
 <translation id="5026754133087629784">വെബ് കാഴ്‌ച: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">പാക്കിലേക്കുള്ള ഡയറക്ടറിയുടെ കൃത്യമായ പാത്ത് കണ്ടെത്താന്‍ കഴിയുന്നില്ല.</translation>
 <translation id="5356315618422219272">അപ്ലിക്കേഷൻ കാഴ്‌‌ച: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">രൂപപ്പെടുത്തിയ വിൻഡോകൾ പിന്തുണയ്ക്കുന്നില്ല.</translation>
 <translation id="5456409301717116725">ഈ വിപുലീകരണത്തിൽ '<ph name="KEY_PATH" />' എന്ന കീ ഫയൽ ഉൾപ്പെടുന്നു. മിക്കവാറും നിങ്ങൾ ഇത് ചെയ്യാൻ താൽപ്പര്യപ്പെട്ടേക്കില്ല.</translation>
+<translation id="5486326529110362464">സ്വകാര്യ കീയുടെ ഇന്‍‌പുട്ട് മൂല്യം നിലവിലുണ്ടായിരിക്കണം.</translation>
 <translation id="5627523580512561598">വിപുലീകരണം<ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">ഈ മെഷീനിന്റെ അഡ്‌മിനിസ്ട്രേറ്ററിന് <ph name="EXTENSION_NAME" /> ഇൻസ്‌റ്റാളുചെയ്യേണ്ടതുണ്ട്. ഇത് അൺഇൻസ്‌റ്റാളുചെയ്യാനാകില്ല.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള അജ്ഞാത ഉൽപ്പന്നം <ph name="PRODUCT_ID" /> (സീരിയൽ നമ്പർ <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> വെൻഡറിൽ നിന്നുള്ള <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">വിപുലീകരണം അണ്‍പാക്ക് ചെയ്യാന്‍ കഴിയില്ല.  വിപുലീകരണം സുരക്ഷിതമായി അണ്‍പാക്ക് ചെയ്യുന്നതിന്, നിങ്ങളുടെ പ്രൊഫൈൽ ഡയറക്ടറിയിലേക്ക് ഒരു സിം‌ലിങ്ക് അടങ്ങിയിട്ടില്ലാത്ത ഒരു പാത്ത് ഉണ്ടായിരിക്കണം.  നിങ്ങളുടെ പ്രൊഫൈലിനായി അത്തരം പാത്തൊന്നും നിലവിലുണ്ടായിരിക്കരുത്.</translation>
+<translation id="6322279351188361895">സ്വകാര്യ കീ റീഡുചെയ്യുന്നതിന് പരാജയപ്പെട്ടു.</translation>
+<translation id="6391538222494443604">ഇന്‍‌പുട്ട് ഡയറക്‌ടറി നിലവിലുണ്ടായിരിക്കണം.</translation>
 <translation id="641087317769093025">വിപുലീകരണം അൺസിപ്പ് ചെയ്യാൻ കഴിഞ്ഞില്ല</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" നിങ്ങളുടെ ഒന്നോ അതിലധികമോ ഉപകരണങ്ങളിലേക്ക് ആക്‌സസ് അഭ്യർത്ഥിക്കുന്നു:</translation>
 <translation id="657064425229075395">പശ്ചാത്തല സ്‌ക്രിപ്റ്റ് '<ph name="BACKGROUND_SCRIPT" />' ലോഡുചെയ്യാൻ കഴിഞ്ഞില്ല.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">മറ്റൊരു വിപുലീകരണം (<ph name="EXTENSION_NAME" />) വ്യത്യസ്‌തമായ ഒരു ഫയൽനാമം "<ph name="ACTUAL_FILENAME" />" നിർണ്ണയിച്ചതിനാൽ ഈ വിപുലീകരണം ഡൗൺലോഡ് "<ph name="ATTEMPTED_FILENAME" />-ന് പേരുനൽകുന്നതിൽ പരാജയപ്പെട്ടു.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> എന്നതിൽ നിന്നുള്ള <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">മറ്റൊരു (<ph name="EXTENSION_NAME" />) വിപുലീകരണം വ്യത്യസ്‌ത ക്രെഡൻഷ്യലുകൾ നൽകിയതിനാൽ ഒരു നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനയിലേക്ക് ക്രെഡൻഷ്യലുകൾ നൽകുന്നതിൽ ഈ വിപുലീകരണം പരാജയപ്പെട്ടു.</translation>
-<translation id="8602184400052594090">മാനിഫെസ്റ്റ് ഫയല്‍ നഷ്ടപ്പെട്ടിരിക്കുന്നു അല്ലെങ്കില്‍ റീഡ് ചെയ്യാന്‍ കഴിയുന്നില്ല.</translation>
 <translation id="8636666366616799973">പാക്കേജ് അസാധുവാണ്. വിശദാംശങ്ങൾ: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">മറ്റൊരു വിപുലീകരണം (<ph name="EXTENSION_NAME" />), <ph name="ACTUAL_REDIRECT_DESTINATION" />-ലേക്ക് ഒരു നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനയെ റീഡയറക്റ്റുചെയ്‌തതിനാൽ അതിനെ <ph name="ATTEMPTED_REDIRECT_DESTINATION" />-ലേക്ക് റീഡയറക്റ്റുചെയ്യുന്നതിന് ഈ വിപുലീകരണം പരാജയപ്പെട്ടു.</translation>
 <translation id="8712265948125780616">വിപുലീകരണ അൺ‌പാക്കർ</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" നിങ്ങളുടെ ഉപകരണങ്ങളിൽ ഒരെണ്ണത്തിലേക്ക് ആക്‌സസ് അഭ്യർത്ഥിക്കുന്നു:</translation>
 <translation id="8825366169884721447">പരിഷ്‌ക്കാരം മറ്റൊരു (<ph name="EXTENSION_NAME" />) വിപുലീകരണവുമായി വൈരുദ്ധ്യം സൃഷ്‌ടിക്കുന്നതിനാൽ ഒരു നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനയുടെ അഭ്യർത്ഥന തലക്കെട്ട് "<ph name="HEADER_NAME" />" പരിഷ്‌ക്കരിക്കുന്നതിൽ ഈ വിപുലീകരണം പരാജയപ്പെട്ടു.</translation>
+<translation id="8885905466771744233">പ്രത്യേക വിപുലീകരണത്തിനുള്ള ഒരു സ്വകാര്യ കീ ഇതിനകം നിലവിലുണ്ട്. ആ കീ പുനരുപയോഗിക്കുക അല്ലെങ്കില്‍ ആദ്യം അത് ഇല്ലാതാക്കുക.</translation>
+<translation id="907841381057066561">പാക്കേജിംഗ് സമയത്ത് താല്‍‌ക്കാലിക zip ഫയല്‍‌ സൃഷ്‌ടിക്കുന്നതിന് പരാജയപ്പെട്ടു. </translation>
 <translation id="9111791539553342076">പരിഷ്‌ക്കാരം മറ്റൊരു (<ph name="EXTENSION_NAME" />) വിപുലീകരണവുമായി വൈരുദ്ധ്യം സൃഷ്‌ടിക്കുന്നതിനാൽ ഒരു നെറ്റ്‌വർക്ക് അഭ്യർത്ഥനയുടെ പ്രതികരണ തലക്കെട്ട് "<ph name="HEADER_NAME" />" പരിഷ്‌ക്കരിക്കുന്നതിൽ ഈ വിപുലീകരണം പരാജയപ്പെട്ടു.</translation>
+<translation id="941543339607623937">സ്വകാര്യ കീ അസാധുവാണ്.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_mr.xtb b/extensions/strings/extensions_strings_mr.xtb
index 7280a05..85f8824 100644
--- a/extensions/strings/extensions_strings_mr.xtb
+++ b/extensions/strings/extensions_strings_mr.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="mr">
 <translation id="1135328998467923690">हे पॅकेज अवैध आहे: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">पर्यावरण-समोरील</translation>
+<translation id="1196338895211115272">खासगी की निर्यात करण्यात अयशस्वी.</translation>
 <translation id="1256619696651732561">विस्तार मॅनिफेस्ट विश्लेषक</translation>
+<translation id="1420684932347524586">अरेरे! यादृच्छिक RSA खासगी की व्युत्पन्न करण्यात अयशस्वी.</translation>
 <translation id="1445572445564823378">हा विस्तार <ph name="PRODUCT_NAME" /> मंद होत आहे. <ph name="PRODUCT_NAME" /> चे कार्यप्रदर्शन पुनर्संचयित करण्‍यासाठी आपण ते ‍अक्षम करणे आवश्‍यक आहे.</translation>
 <translation id="1468038450257740950">WebGL समर्थित नाही.</translation>
 <translation id="149347756975725155">विस्तार प्रतीक '<ph name="ICON" />' लोड करणे शक्य नाही.</translation>
 <translation id="1803557475693955505">'पार्श्वभूमी पृष्ठ '<ph name="BACKGROUND_PAGE" />'  लोड करणे शक्य नाही.</translation>
 <translation id="2159915644201199628">प्रतिमा डीकोड करणे शक्य झाले नाही: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">भाषांतर वापरले, परंतु मॅनिफेस्टमध्ये डीफॉल्ट_लोकॅल निर्दिष्ट नाही.</translation>
+<translation id="2576842806987913196">या नावाने आधीपासूनच CRX फाइल उपस्थित आहे.</translation>
 <translation id="2753617847762399167">बेकायदेशीर पथ ('..' सह अचूक किंवा संबंधित): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">हा विस्तार नेटवर्क विनंती सुधारण्‍यात अयशस्वी झाला कारण सुधारणेचा दुसर्‍या विस्ताराशी विवाद झाला.</translation>
-<translation id="2857834222104759979">मॅनिफेस्ट फाइल अवैध आहे.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> विस्तार आयडी "<ph name="EXTENSION_ID" />") प्रशासकाने ब्लॉक केलेला आहे. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">हे पॅकेज इंस्टॉल करणे शक्य नाही: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन (अनुक्रमांक <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx फाइल पुनर्स्थित करण्यात अयशस्वी. फाइल वापरात आहे किंवा नाही हे पाहण्यासाठी तपासा.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन</translation>
 <translation id="3369521687965833290">विस्तार अनपॅक करणे शक्य नाही. विस्तार सुरक्षितपणे अनपॅक करण्यासाठी, आपल्या प्रोफाइल निर्देशिकेत ड्राइव्ह अक्षरासह प्रारंभ होणारा पथ असणे आणि जंक्शन, माउंट पॉइंट किंवा सिमलिंक नसणे आवश्यक आहे. आपल्या प्रोफाइलसाठी असा कोणताही पथ विद्यमान नाही.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (अनुक्रमांक <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_NAME" /> (अनुक्रमांक <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">खासगी की साठी इनपुट मूल्य वैध पथ असावा.</translation>
 <translation id="388442998277590542">पर्याय पृष्ठ '<ph name="OPTIONS_PAGE" />' लोड करणे शक्य नाही.</translation>
+<translation id="3984413272403535372">विस्तारात साइन करताना एरर.</translation>
 <translation id="4115165561519362854">या मशीनच्या प्रशासकाला <ph name="EXTENSION_NAME" /> कडे <ph name="EXTENSION_VERSION" /> ची किमान आवृत्ती असणे आवश्यक आहे. ही त्या आवृत्तीवर (किंवा उच्च) अपडेट करेपर्यंत हे सक्षम होऊ शकत नाही.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' पृष्ठाविषयी लोड करू शकलो नाही.</translation>
+<translation id="471800408830181311">खासगी की आउटपुट करण्यात अयशस्वी.</translation>
 <translation id="4811956658694082538">उपयुक्तता प्रक्रिया क्रॅश झाल्यामुळे पॅकेज इंस्टॉल करू शकलो नाही. Chrome रीस्टार्ट करून पहा आणि पुन्हा प्रयत्न करून पहा.</translation>
+<translation id="4988792151665380515">सार्वजनिक की निर्यात करण्यात अयशस्वी.</translation>
 <translation id="5026754133087629784">वेबदृश्य: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">पॅक करण्यासाठी असलेल्या निर्देशिकेचा अचूक पथ शोधणे शक्य नाही.</translation>
 <translation id="5356315618422219272">अॅपदृश्य: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">आकार असलेल्या विंडो समर्थित नाहीत.</translation>
 <translation id="5456409301717116725">हा विस्तार मुख्य फाइल '<ph name="KEY_PATH" />' समाविष्ट करतो. आपण कदाचित ते करू इच्छित नसू शकता.</translation>
+<translation id="5486326529110362464">खासगी की साठी इनपुट मूल्य विद्यमान असणे आवश्यक आहे.</translation>
 <translation id="5627523580512561598">विस्तार <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">या मशीनच्या प्रशासकासाठी <ph name="EXTENSION_NAME" /> इंस्टॉल करणे आवश्यक आहे. हे अनइंस्टॉल केले जाऊ शकत नाही.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> कडील <ph name="PRODUCT_ID" /> अज्ञात उत्पादन (अनुक्रमांक <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> विक्रेत्याकडील <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">विस्तार अनपॅक करू नका. विस्तार सुरक्षितपणे अनपॅक करण्यासाठी, आपल्या प्रोफाइल निदेशिकेत सिमलिंक नसलेला पथ असणे आवश्यक आहे. आपल्या प्रोफाइलसाठी असा कोणताही पथ विद्यमान नाही.</translation>
+<translation id="6322279351188361895">खासगी की वाचण्यात अयशस्वी.</translation>
+<translation id="6391538222494443604">इनपुट निर्देशिका विद्यमान असणे आवश्यक आहे.</translation>
 <translation id="641087317769093025">विस्तार अनझिप करणे शक्य झाले नाही</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> आपल्या एका किंवा अधिक डिव्हाइसवर प्रवेशाची विनंती करीत आहे:</translation>
 <translation id="657064425229075395">पार्श्वभूमी स्क्रिप्‍ट '<ph name="BACKGROUND_SCRIPT" />' लोड करू शकले नाही.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">दुसर्‍या विस्ताराने (<ph name="EXTENSION_NAME" />) एक वेगळे फाईलनाव "<ph name="ACTUAL_FILENAME" />" निर्धारित केल्यामुळे डाउनलोड "<ph name="ATTEMPTED_FILENAME" />" ला नाव देण्यात हा विस्तार अयशस्वी झाला.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> कडील <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">हा विस्तार एका नेटवर्क विनंतीवर क्रेडेन्शियल प्रदान करण्यात अयशस्वी झाला कारण दुसर्‍या (<ph name="EXTENSION_NAME" />) विस्ताराने वेगळी क्रेडेन्शियल प्रदान केली.</translation>
-<translation id="8602184400052594090">मॅनिफेस्ट फाइल गहाळ किंवा अवाचनीय आहे.</translation>
 <translation id="8636666366616799973">पॅकेज अवैध आहे. तपशील: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">हा विस्तार <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> वर एक नेटवर्क विनंती पुनर्निर्देशित करण्यात अयशस्वी झाला कारण दुसर्‍या (<ph name="EXTENSION_NAME" />) विस्ताराने तो <ph name="ACTUAL_REDIRECT_DESTINATION" /> वर पुनर्निर्देशित केला.</translation>
 <translation id="8712265948125780616">विस्तार अनपॅकर</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> आपल्या एका डिव्हाइसवर प्रवेशाची विनंती करीत आहे:</translation>
 <translation id="8825366169884721447">हा विस्तार एका नेटवर्क विनंतीचा "<ph name="HEADER_NAME" />" हा विनंती शीर्षलेख सुधारित करण्यात अयशस्वी झाला कारण दुसर्‍या (<ph name="EXTENSION_NAME" />) विस्तारासह सुधारणेचा संघर्ष झाला.</translation>
+<translation id="8885905466771744233">निर्दिष्ट विस्तारासाठी खासगी की यापूर्वीच विद्यमान आहे. ती की पुन्हा वापरा किंवा प्रथम ती हटवा.</translation>
+<translation id="907841381057066561">पॅकेजिंग दरम्यान तात्पुरती zip फाइल तयार करण्यात अयशस्वी.</translation>
 <translation id="9111791539553342076">हा विस्तार एका नेटवर्क विनंतीचा "<ph name="HEADER_NAME" />" हा प्रतिसाद शीर्षलेख सुधारित करण्यात अयशस्वी झाला कारण दुसर्‍या (<ph name="EXTENSION_NAME" />) विस्तारासह सुधारणेचा संघर्ष झाला.</translation>
+<translation id="941543339607623937">अवैध खासगी की.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ms.xtb b/extensions/strings/extensions_strings_ms.xtb
index 55e543b..273ea52 100644
--- a/extensions/strings/extensions_strings_ms.xtb
+++ b/extensions/strings/extensions_strings_ms.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ms">
 <translation id="1135328998467923690">Pakej adalah tidak sah: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Menghadap persekitaran</translation>
+<translation id="1196338895211115272">Gagal untuk mengeksport kunci persendirian.</translation>
 <translation id="1256619696651732561">Penghurai Manifes Sambungan</translation>
+<translation id="1420684932347524586">Yikes! Gagal untuk menjanakan kunci persendirian RSA rawak.</translation>
 <translation id="1445572445564823378">Sambungan ini melambatkan <ph name="PRODUCT_NAME" />. Anda perlu melumpuhkannya untuk memulihkan prestasi <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL tidak disokong.</translation>
 <translation id="149347756975725155">Tidak dapat memuatkan ikon sambungan '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">Tidak dapat memuatkan halaman latar belakang '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">Tidak dapat menyahkod imej: ' <ph name="IMAGE_NAME" /> '</translation>
 <translation id="2350172092385603347">Penempatan digunakan, tetapi default_locale tidak dinyatakan dalam ketara.</translation>
+<translation id="2576842806987913196">Fail CRX dengan nama ini telah wujud.</translation>
 <translation id="2753617847762399167">Laluan tidak sah (mutlak atau berkaitan dengan '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Sambungan ini gagal mengubah suai permintaan rangkaian kerana pengubahsuaian itu bercanggah dengan sambungan lain.</translation>
-<translation id="2857834222104759979">Fail manifes tidak sah.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID sambungan "<ph name="EXTENSION_ID" />") disekat oleh pentadbir. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Tidak dapat memasang pakej: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Produk <ph name="PRODUCT_ID" /> daripada vendor <ph name="VENDOR_ID" /> tidak diketahui (nombor siri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Gagal untuk menggantikan fail crx. Periksa untuk melihat jika fail sedang digunakan.</translation>
 <translation id="3163201441334626963">Produk <ph name="PRODUCT_ID" /> daripada vendor <ph name="VENDOR_ID" /> tidak diketahui</translation>
 <translation id="3369521687965833290">Tidak dapat menyahpek sambungan.  Untuk menyahpek sambungan dengan selamat, perlu ada laluan ke direktori profil anda yang bermula dengan huruf pemacu dan tidak  mengandungi simpang, titik peletakan atau symlink.  Laluan tersebut tidak wujud untuk profil anda.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (nombor siri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> daripada vendor <ph name="VENDOR_ID" /> (nombor siri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Nilai input untuk kunci persendirian mestilah laluan yang sah.</translation>
 <translation id="388442998277590542">Tidak dapat memuatkan halaman pilihan '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Ralat semasa menandatangani sambungan.</translation>
 <translation id="4115165561519362854">Pentadbir mesin ini memerlukan <ph name="EXTENSION_NAME" /> untuk mempunyai versi minimum <ph name="EXTENSION_VERSION" />. Ia tidak dapat didayakan sehingga ia telah dikemas kini kepada versi itu (atau lebih tinggi).</translation>
 <translation id="4233778200880751280">Tidak dapat memuatkan halaman perihal '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Gagal untuk output kunci persendirian.</translation>
 <translation id="4811956658694082538">Tidak dapat memasang pakej kerana proses utiliti telah ranap. Cuba mulakan semula Chrome dan cuba lagi.</translation>
+<translation id="4988792151665380515">Gagal intuk mengeksport kunci awam.</translation>
 <translation id="5026754133087629784">Paparan Web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Tidak dapat mencari laluan mutlak ke direktori ke pek.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Tetingkap berbentuk tidak disokong.</translation>
 <translation id="5456409301717116725">Sambungan ini merangkumi fail utama ' <ph name="KEY_PATH" /> '. Anda mungkin tidak mahu melakukannya.</translation>
+<translation id="5486326529110362464">Nilai input untuk kekunci peribadi  mesti wujud.</translation>
 <translation id="5627523580512561598">sambungan <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Pentadbir mesin ini memerlukan <ph name="EXTENSION_NAME" /> dipasang. Sambungan ini tidak boleh dinyahpasang.</translation>
 <translation id="6027032947578871493">Produk <ph name="PRODUCT_ID" /> daripada <ph name="VENDOR_NAME" /> tidak diketahui (nombor siri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> daripada vendor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Tidak dapat menyahpek sambungan.  Untuk menyahpek sambungan dengan selamat, perlu ada laluan ke direktori profil anda yang tidak mengandungi symlink.  Tiada laluan tersebut wujud untuk profil anda.</translation>
+<translation id="6322279351188361895">Gagal untuk membaca kunci persendirian.</translation>
+<translation id="6391538222494443604">Direktori input mesti wujud.</translation>
 <translation id="641087317769093025">Tidak boleh menyahzip sambungan</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" meminta akses kepada satu atau beberapa peranti anda.</translation>
 <translation id="657064425229075395">Tidak dapat memuatkan skrip latar belakang '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Sambungan ini gagal menamakan muat turun "<ph name="ATTEMPTED_FILENAME" />" kerana sambungan lain (<ph name="EXTENSION_NAME" />) menetapkan nama fail lain "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> daripada <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Sambungan ini gagal memberikan bukti kelayakan kepada permintaan rangkaian kerana sambungan lain (<ph name="EXTENSION_NAME" />) memberikan bukti kelayakan yang berbeza.</translation>
-<translation id="8602184400052594090">Fail ketara hilang atau tidak dibaca.</translation>
 <translation id="8636666366616799973">Pakej adalah tidak sah. Butiran: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Sambungan ini gagal mengubah hala permintaan rangkaian ke <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> kerana sambungan lain (<ph name="EXTENSION_NAME" />) mengubah halanya ke <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Penyahpadat Sambungan</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" meminta akses kepada salah satu peranti anda:</translation>
 <translation id="8825366169884721447">Sambungan ini gagal mengubah suai pengatas permintaan "<ph name="HEADER_NAME" />" untuk permintaan rangkaian kerana ubah suai tersebut bercanggah dengan sambungan lain (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Kunci persendirian untuk sambungan yang dinyatakan telah wujud. Gunakan semula kunci tersebut atau padamkannya dahulu.</translation>
+<translation id="907841381057066561">Gagal untuk mencipta fail zip sementara semasa pembungkusan.</translation>
 <translation id="9111791539553342076">Sambungan ini gagal mengubah suai pengatas balasan "<ph name="HEADER_NAME" />" untuk permintaan rangkaian kerana ubah suai tersebut bercanggah dengan sambungan lain (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Kunci persendirian tidak sah.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_nl.xtb b/extensions/strings/extensions_strings_nl.xtb
index ed76598..9ec11a79 100644
--- a/extensions/strings/extensions_strings_nl.xtb
+++ b/extensions/strings/extensions_strings_nl.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="nl">
 <translation id="1135328998467923690">Pakket is ongeldig: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Camera aan achterzijde</translation>
+<translation id="1196338895211115272">Exporteren van persoonlijke sleutel is mislukt.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">O nee! Kan geen willekeurige persoonlijke RSA-sleutel genereren.</translation>
 <translation id="1445572445564823378"><ph name="PRODUCT_NAME" /> wordt door deze extensie vertraagd. Schakel de extensie uit om de prestaties van <ph name="PRODUCT_NAME" /> te verbeteren.</translation>
 <translation id="1468038450257740950">WebGL wordt niet ondersteund.</translation>
 <translation id="149347756975725155">Kan extensiepictogram '<ph name="ICON" />' niet laden.</translation>
 <translation id="1803557475693955505">Kan achtergrondpagina '<ph name="BACKGROUND_PAGE" />' niet laden.</translation>
 <translation id="2159915644201199628">Kan afbeelding niet decoderen: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Lokalisatie gebruikt, maar er is geen 'default_locale' opgegeven in het manifest.</translation>
+<translation id="2576842806987913196">Er is al een CRX-bestand aanwezig met deze naam.</translation>
 <translation id="2753617847762399167">Illegaal pad (absoluut of relatief met '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Deze extensie heeft een netwerkverzoek niet kunnen aanpassen, omdat de aanpassing zorgde voor een conflict met een andere extensie.</translation>
-<translation id="2857834222104759979">Manifestbestand is ongeldig.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (extensie-ID '<ph name="EXTENSION_ID" />') is geblokkeerd door de beheerder. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Kan pakket niet installeren: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Onbekend product <ph name="PRODUCT_ID" /> van leverancier <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Vervangen van crx-bestand is mislukt. Controleer of het bestand wordt gebruikt.</translation>
 <translation id="3163201441334626963">Onbekend product <ph name="PRODUCT_ID" /> van leverancier <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Kan extensie niet uitpakken. Om een extensie veilig te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat begint met een stationletter en geen koppeling, koppelpunt of symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> van leverancier <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Invoerwaarde voor persoonlijke sleutel moet een geldig pad zijn.</translation>
 <translation id="388442998277590542">Kan optiepagina '<ph name="OPTIONS_PAGE" />' niet laden.</translation>
+<translation id="3984413272403535372">Fout bij ondertekenen van extensie.</translation>
 <translation id="4115165561519362854">De beheerder van dit apparaat vereist dat minimaal versie <ph name="EXTENSION_VERSION" /> van <ph name="EXTENSION_NAME" /> moet zijn geïnstalleerd. De extensie kan pas worden ingeschakeld nadat deze is geüpdatet naar die versie (of hoger).</translation>
 <translation id="4233778200880751280">De informatiepagina '<ph name="ABOUT_PAGE" />' kan niet worden geladen.</translation>
+<translation id="471800408830181311">Uitvoer van persoonlijke sleutel is mislukt.</translation>
 <translation id="4811956658694082538">Kan pakket niet installeren, omdat het proces van een hulpprogramma is gecrasht. Start Chrome opnieuw en probeer het nogmaals.</translation>
+<translation id="4988792151665380515">Exporteren van openbare sleutel is mislukt.</translation>
 <translation id="5026754133087629784">Webweergave: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Kan het absolute pad naar de in te pakken directory niet vinden.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Gevormde vensters worden niet ondersteund.</translation>
 <translation id="5456409301717116725">Deze extensie bevat het sleutelbestand '<ph name="KEY_PATH" />'. Dit is waarschijnlijk niet je bedoeling.</translation>
+<translation id="5486326529110362464">Invoerwaarde voor persoonlijke sleutel moet aanwezig zijn.</translation>
 <translation id="5627523580512561598">extensie <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">De beheerder van deze machine vereist dat <ph name="EXTENSION_NAME" /> wordt geïnstalleerd. Deze kan niet worden verwijderd.</translation>
 <translation id="6027032947578871493">Onbekend product <ph name="PRODUCT_ID" /> van <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> van leverancier <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Kan extensie niet uitpakken. Om een extensie veilig te kunnen uitpakken, moet er een pad naar je profieldirectory verwijzen dat geen symlink bevat. Een dergelijk pad bestaat niet voor je profiel.</translation>
+<translation id="6322279351188361895">Lezen van persoonlijke sleutel is mislukt.</translation>
+<translation id="6391538222494443604">Er moet een invoerdirectory zijn.</translation>
 <translation id="641087317769093025">Kan extensie niet uitpakken</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> vraagt om toegang tot een of meer van je apparaten:</translation>
 <translation id="657064425229075395">Kan achtergrondscript '<ph name="BACKGROUND_SCRIPT" />' niet laden.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Deze extensie kan de download niet de naam '<ph name="ATTEMPTED_FILENAME" />' geven, omdat een andere extensie (<ph name="EXTENSION_NAME" />) een andere bestandsnaam '<ph name="ACTUAL_FILENAME" />' heeft bepaald.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> van <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Deze extensie heeft geen identificatie kunnen leveren voor een netwerkverzoek, omdat een andere extensie (<ph name="EXTENSION_NAME" />) een andere identificatie heeft geleverd.</translation>
-<translation id="8602184400052594090">Manifestbestand ontbreekt of is onleesbaar.</translation>
 <translation id="8636666366616799973">Pakket is ongeldig. Details: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Deze extensie heeft een netwerkverzoek niet kunnen omleiden naar <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> omdat een andere extensie (<ph name="EXTENSION_NAME" />) het verzoek heeft omgeleid naar <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Extension Unpacker</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> vraagt om toegang tot een van je apparaten:</translation>
 <translation id="8825366169884721447">Deze extensie heeft de koptekst voor het verzoek '<ph name="HEADER_NAME" />' van een netwerkverzoek niet kunnen aanpassen, omdat de aanpassing zorgde voor een conflict met een andere extensie (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Er bestaat al een persoonlijke sleutel voor de opgegeven extensie. Gebruik die sleutel opnieuw of verwijder deze eerst.</translation>
+<translation id="907841381057066561">Geen tijdelijk zipbestand gemaakt tijdens inpakken.</translation>
 <translation id="9111791539553342076">Deze extensie heeft de koptekst voor de reactie '<ph name="HEADER_NAME" />' voor een netwerkverzoek niet kunnen aanpassen, omdat de aanpassing zorgde voor een conflict met een andere extensie (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Ongeldige persoonlijke sleutel.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_no.xtb b/extensions/strings/extensions_strings_no.xtb
index 9b9f8011..ba15162 100644
--- a/extensions/strings/extensions_strings_no.xtb
+++ b/extensions/strings/extensions_strings_no.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="no">
 <translation id="1135328998467923690">Pakken er ugyldig: <ph name="ERROR_CODE" />.</translation>
 <translation id="1140871961407805696">Bakkamera</translation>
+<translation id="1196338895211115272">Kan ikke eksportere privatnøkkelen.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">Beklager. Forsøket på å opprette tilfeldig RSA-privatnøkkel mislyktes.</translation>
 <translation id="1445572445564823378">Denne utvidelsen gjør <ph name="PRODUCT_NAME" /> tregere. Du bør deaktivere den for å gjenopprette ytelsen til <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL støttes ikke.</translation>
 <translation id="149347756975725155">Kan ikke laste inn utvidelsesikonet «<ph name="ICON" />».</translation>
 <translation id="1803557475693955505">Kan ikke laste inn bakgrunnssiden <ph name="BACKGROUND_PAGE" />.</translation>
 <translation id="2159915644201199628">Kunne ikke dekode bilde: «<ph name="IMAGE_NAME" />»</translation>
 <translation id="2350172092385603347">Lokaliseringen er brukt, men default_locale var ikke spesifisert i manifestet.</translation>
+<translation id="2576842806987913196">Det fins allerede en .crx-fil med dette navnet.</translation>
 <translation id="2753617847762399167">Ugyldig bane (absolutt eller relativ med '..'): «<ph name="IMAGE_PATH" />»</translation>
 <translation id="27822970480436970">Denne utvidelsen mislyktes i å endre en nettverksforespørsel, fordi endringen var i konflikt med en annen utvidelse.</translation>
-<translation id="2857834222104759979">Manifestfilen er ugyldig.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (utvidelses-ID «<ph name="EXTENSION_ID" />») er blokkert av administratoren. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Kunne ikke installere pakken: <ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">Ukjent produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /> (serienummer: <ph name="SERIAL_NUMBER" /> )</translation>
+<translation id="3144135466825225871">Kunne ikke erstatte .crx-fil. Kontrollér om filen er i bruk.</translation>
 <translation id="3163201441334626963">Ukjent produkt, <ph name="PRODUCT_ID" />, fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Kan ikke pakke ut utvidelse. For å kunne pakke ut en utvidelse på en sikker måte, må det finnes en bane til profilkatalogen din som begynner med en harddiskbokstav og som ikke inneholder en forbindelse, et innsettingspunkt eller en symlink. Det finnes ingen slik bane for profilen din.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serienummer: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> fra leverandøren <ph name="VENDOR_ID" /> (serienummer: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Inndataverdien for privatnøkkelen må være en gyldig bane.</translation>
 <translation id="388442998277590542">Kan ikke laste inn alternativsiden <ph name="OPTIONS_PAGE" />.</translation>
+<translation id="3984413272403535372">Det oppstod en feil under signeringen av utvidelsen.</translation>
 <translation id="4115165561519362854">Administratoren for denne maskinen krever at <ph name="EXTENSION_NAME" /> har en minimumsversjon på <ph name="EXTENSION_VERSION" />. Den kan ikke slås på før den er oppdatert til denne versjonen (eller høyere).</translation>
 <translation id="4233778200880751280">Kunne ikke laste inn info-siden «<ph name="ABOUT_PAGE" />».</translation>
+<translation id="471800408830181311">Kan ikke mate ut privatnøkkelen.</translation>
 <translation id="4811956658694082538">Kunne ikke installere pakken fordi en verktøyprosess krasjet. Prøv å starte Chrome på nytt og prøv igjen.</translation>
+<translation id="4988792151665380515">Kan ikke eksportere den offentlige nøkkelen.</translation>
 <translation id="5026754133087629784">Nettvisning: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Finner ikke den absolutte banen til katalogen som skal pakkes.</translation>
 <translation id="5356315618422219272">Appvisning: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Formede vinduer støttes ikke.</translation>
 <translation id="5456409301717116725">Denne utvidelsen inneholder nøkkelfilen «<ph name="KEY_PATH" />». Du ønsker sannsynligvis ikke å gjøre dette.</translation>
+<translation id="5486326529110362464">Inndataverdien for privatnøkkelen må eksistere.</translation>
 <translation id="5627523580512561598"><ph name="EXTENSION_NAME" />-utvidelse</translation>
 <translation id="5960890139610307736">Utvidelsesvisning (ExtensionView): <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administratoren for denne maskinen krever at <ph name="EXTENSION_NAME" /> installeres. Denne utvidelsen kan ikke avinstalleres.</translation>
 <translation id="6027032947578871493">Ukjent produkt, <ph name="PRODUCT_ID" />, fra <ph name="VENDOR_NAME" /> (serienummer: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> fra leverandøren <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Kan ikke pakke ut utvidelse. For å kunne pakke ut en utvidelse på en sikker måte, må det finnes en bane til profilkatalogen din som ikke inneholder en symlink. Det finnes ingen slik bane for profilen din.</translation>
+<translation id="6322279351188361895">Kan ikke lese privatnøkkelen.</translation>
+<translation id="6391538222494443604">Inndatakatalogen må eksistere.</translation>
 <translation id="641087317769093025">Kunne ikke pakke ut utvidelsen</translation>
 <translation id="6542618148162044354">«<ph name="APP_NAME" />» ber om tilgang til én eller flere av enhetene dine:</translation>
 <translation id="657064425229075395">Kunne ikke laste inn bakgrunnsskriptet «<ph name="BACKGROUND_SCRIPT" />».</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Denne utvidelsen kunne ikke kalle nedlastingen «<ph name="ATTEMPTED_FILENAME" />» fordi en annen utvidelse (<ph name="EXTENSION_NAME" />) har angitt et annet filnavn («<ph name="ACTUAL_FILENAME" />»).</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> fra <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Denne utvidelsen kunne ikke oppgi påloggingsopplysningene til et nettverk fordi en annen utvidelse (<ph name="EXTENSION_NAME" />) oppga andre opplysninger.</translation>
-<translation id="8602184400052594090">Manifestfilen mangler eller kan ikke leses.</translation>
 <translation id="8636666366616799973">Pakken er ugyldig. Detaljer: <ph name="ERROR_MESSAGE" />.</translation>
 <translation id="8670869118777164560">Denne utvidelsen kunne ikke viderekoble en nettverksforespørsel til <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> fordi en annen utvidelse (<ph name="EXTENSION_NAME" />) viderekoblet den til <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Extension Unpacker</translation>
 <translation id="8761756413268424715">«<ph name="APP_NAME" />» ber om tilgang til én av enhetene dine:</translation>
 <translation id="8825366169884721447">Denne utvidelsen kunne ikke endre forespørselsoverskriften «<ph name="HEADER_NAME" />» i en nettverksforespørsel fordi endringen kom i konflikt med en annen utvidelse (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Det finnes allerede en privatnøkkel for det angitte etternavnet. Bruk denne nøkkelen eller slett den.</translation>
+<translation id="907841381057066561">Oppretting av midlertidig komprimert fil under pakkingen mislyktes.</translation>
 <translation id="9111791539553342076">Denne utvidelsen kunne ikke endre svaroverskriften «<ph name="HEADER_NAME" />» i en nettverksforespørsel fordi endringen kom i konflikt med en annen utvidelse (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Ugyldig privatnøkkel </translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_pl.xtb b/extensions/strings/extensions_strings_pl.xtb
index 99f8a41..a39ff826 100644
--- a/extensions/strings/extensions_strings_pl.xtb
+++ b/extensions/strings/extensions_strings_pl.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="pl">
 <translation id="1135328998467923690">Pakiet jest nieprawidłowy: „<ph name="ERROR_CODE" />”.</translation>
 <translation id="1140871961407805696">Tylny</translation>
+<translation id="1196338895211115272">Nie można wyeksportować klucza prywatnego.</translation>
 <translation id="1256619696651732561">Parser pliku manifestu rozszerzenia</translation>
+<translation id="1420684932347524586">Ojej! Nie można wygenerować losowego klucza prywatnego RSA.</translation>
 <translation id="1445572445564823378">To rozszerzenie spowalnia pracę <ph name="PRODUCT_NAME" />. Wyłącz je, aby przywrócić wydajność przeglądarki <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">Interfejs WebGL nie jest obsługiwany.</translation>
 <translation id="149347756975725155">Nie można wczytać ikony rozszerzenia „<ph name="ICON" />”.</translation>
 <translation id="1803557475693955505">Nie można wczytać strony w tle „<ph name="BACKGROUND_PAGE" />”.</translation>
 <translation id="2159915644201199628">Nie można odkodować obrazu: „<ph name="IMAGE_NAME" />”</translation>
 <translation id="2350172092385603347">Lokalizacja została użyta, ale nie określono języka default_locale w pliku manifestu.</translation>
+<translation id="2576842806987913196">Plik CRX o tej nazwie już istnieje.</translation>
 <translation id="2753617847762399167">Nieprawidłowa ścieżka (pełna lub względna z przedrostkiem „..”): „<ph name="IMAGE_PATH" />”</translation>
 <translation id="27822970480436970">To rozszerzenie nie mogło zmienić żądania sieciowego, ponieważ zmiana wchodziła w konflikt z innym rozszerzeniem.</translation>
-<translation id="2857834222104759979">Plik manifestu jest nieprawidłowy.</translation>
 <translation id="2903070246402204397">Rozszerzenie <ph name="EXTENSION_NAME" /> (identyfikator rozszerzenia „<ph name="EXTENSION_ID" />”) jest zablokowane przez administratora. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nie można zainstalować pakietu: „<ph name="ERROR_CODE" />”</translation>
 <translation id="3115238746683532089">Nieznany produkt <ph name="PRODUCT_ID" />, którego producent to <ph name="VENDOR_ID" /> (numer seryjny <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Nie można zastąpić pliku crx. Sprawdź, czy nie jest on używany.</translation>
 <translation id="3163201441334626963">Nieznany produkt <ph name="PRODUCT_ID" />, którego producent to <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Nie można rozpakować rozszerzenia. Aby bezpiecznie rozpakować rozszerzenie, musi istnieć ścieżka do katalogu profilu, która zaczyna się literą dysku i nie zawiera punktu połączenia, punktu instalacji (montowania) ani dowiązania symbolicznego. W przypadku Twojego profilu taka ścieżka nie istnieje.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (numer seryjny <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> wyprodukowany przez <ph name="VENDOR_ID" /> (numer seryjny <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Wartość wejściowa klucza prywatnego musi być prawidłową ścieżką.</translation>
 <translation id="388442998277590542">Nie można wczytać strony opcji „<ph name="OPTIONS_PAGE" />”.</translation>
+<translation id="3984413272403535372">Błąd podczas podpisywania rozszerzenia.</translation>
 <translation id="4115165561519362854">Administrator tego urządzenia wymaga, by rozszerzenie <ph name="EXTENSION_NAME" /> było w wersji co najmniej <ph name="EXTENSION_VERSION" />. Jeśli rozszerzenie nie zostanie zaktualizowane do tej wersji (lub nowszej), nie zostanie włączone.</translation>
 <translation id="4233778200880751280">Nie udało się załadować strony z informacjami: „<ph name="ABOUT_PAGE" />”.</translation>
+<translation id="471800408830181311">Nie można przekazać klucza prywatnego.</translation>
 <translation id="4811956658694082538">Nie udało się zainstalować pakietu, ponieważ nastąpiła awaria procesu narzędzia. Uruchom ponownie Chrome i spróbuj jeszcze raz.</translation>
+<translation id="4988792151665380515">Nie można wyeksportować klucza publicznego.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nie można określić ścieżki bezwzględnej pakowanego katalogu.</translation>
 <translation id="5356315618422219272">Tag appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Niestandardowe kształty okien nie są obsługiwane.</translation>
 <translation id="5456409301717116725">To rozszerzenie zawiera plik klucza „<ph name="KEY_PATH" />”. Prawdopodobnie nie powinno tak być.</translation>
+<translation id="5486326529110362464">Wartość wejściowa klucza prywatnego musi istnieć.</translation>
 <translation id="5627523580512561598">rozszerzenie <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">Tag ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administrator tego urządzenia wymaga, by było na nim zainstalowane rozszerzenie <ph name="EXTENSION_NAME" />. Nie można go odinstalować.</translation>
 <translation id="6027032947578871493">Nieznany produkt <ph name="PRODUCT_ID" /> firmy <ph name="VENDOR_NAME" /> (numer seryjny <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> wyprodukowany przez <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Nie można rozpakować rozszerzenia. Aby bezpiecznie rozpakować rozszerzenie, musi istnieć ścieżka do katalogu profilu, która nie zawiera dowiązania symbolicznego. W przypadku Twojego profilu taka ścieżka nie istnieje.</translation>
+<translation id="6322279351188361895">Nie można odczytać klucza prywatnego.</translation>
+<translation id="6391538222494443604">Katalog wejściowy musi istnieć.</translation>
 <translation id="641087317769093025">Nie można rozpakować rozszerzenia</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> żąda dostępu do co najmniej jednego Twojego urządzenia:</translation>
 <translation id="657064425229075395">Nie udało się wczytać skryptu działającego w tle „<ph name="BACKGROUND_SCRIPT" />”.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Rozszerzenie nie może odczytać nazwy pobieranego pliku „<ph name="ATTEMPTED_FILENAME" />”, ponieważ inne rozszerzenie (<ph name="EXTENSION_NAME" />) odczytało odmienną jego nazwę „<ph name="ACTUAL_FILENAME" />”.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> od <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Rozszerzenie nie podało danych logowania do żądania sieciowego, bo inne rozszerzenie (<ph name="EXTENSION_NAME" />) podało inne dane.</translation>
-<translation id="8602184400052594090">Brak pliku manifestu lub nie można go odczytać.</translation>
 <translation id="8636666366616799973">Pakiet jest nieprawidłowy. Szczegółowe informacje: „<ph name="ERROR_MESSAGE" />”.</translation>
 <translation id="8670869118777164560">Rozszerzenie nie przekierowało żądania sieciowego do <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, bo inne rozszerzenie (<ph name="EXTENSION_NAME" />) przekierowało je do <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Program do rozpakowywania rozszerzeń</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> żąda dostępu do jednego z Twoich urządzeń:</translation>
 <translation id="8825366169884721447">Rozszerzenie nie zmodyfikowało nagłówka żądania „<ph name="HEADER_NAME" />” żądania sieciowego, bo zmiana powodowałaby konflikt z innym rozszerzeniem (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Klucz prywatny dla określonego rozszerzenia już istnieje. Użyj ponownie tego klucza lub najpierw go usuń.</translation>
+<translation id="907841381057066561">Nie można utworzyć tymczasowego pliku zip podczas pakowania.</translation>
 <translation id="9111791539553342076">Rozszerzenie nie zmodyfikowało nagłówka odpowiedzi „<ph name="HEADER_NAME" />” żądania sieciowego, bo zmiana powodowałaby konflikt z innym rozszerzeniem (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Nieprawidłowy klucz prywatny.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_pt-BR.xtb b/extensions/strings/extensions_strings_pt-BR.xtb
index 34cc5d1..bb5c778 100644
--- a/extensions/strings/extensions_strings_pt-BR.xtb
+++ b/extensions/strings/extensions_strings_pt-BR.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="pt-BR">
 <translation id="1135328998467923690">O pacote é inválido: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Voltada para o ambiente</translation>
+<translation id="1196338895211115272">Falha ao exportar chave privada.</translation>
 <translation id="1256619696651732561">Analisador de manifesto de extensão</translation>
+<translation id="1420684932347524586">Ops! Falha ao gerar a chave privada RSA aleatória.</translation>
 <translation id="1445572445564823378">Esta extensão está deixando <ph name="PRODUCT_NAME" /> mais lento. Você deve desativá-lo para restaurar o desempenho de <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">O WebGL não é suportado.</translation>
 <translation id="149347756975725155">Não foi possível carregar o ícone de extensão "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Não foi possível carregar a página de fundo "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Não foi possível decodificar a imagem: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Localização utilizada, mas default_locale não foi especificada no manifesto.</translation>
+<translation id="2576842806987913196">Já existe um arquivo CRX com este nome.</translation>
 <translation id="2753617847762399167">Caminho ilegal (absoluto ou relativo com '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Esta extensão não conseguiu modificar uma solicitação de rede pois a modificação entrou em conflito com outra extensão.</translation>
-<translation id="2857834222104759979">O arquivo de manifesto é inválido.</translation>
 <translation id="2903070246402204397">A extensão <ph name="EXTENSION_NAME" /> (código "<ph name="EXTENSION_ID" />") está bloqueada pelo administrador. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Não foi possível instalar o pacote: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Produto <ph name="PRODUCT_ID" /> desconhecido do fornecedor <ph name="VENDOR_ID" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Falha ao substituir arquivo crx. Verifique se o arquivo está em uso.</translation>
 <translation id="3163201441334626963">Produto <ph name="PRODUCT_ID" /> desconhecido do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Não é possível abrir a extensão. Para abrir uma extensão com segurança, deve haver um caminho para o diretório de seu perfil que comece com uma letra de drive e não contenha uma junção, um mount point ou um symlink. Não existe um caminho assim para seu perfil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> do fornecedor <ph name="VENDOR_ID" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">O valor inserido para a chave privada deve ser um caminho válido.</translation>
 <translation id="388442998277590542">Não foi possível carregar a página de opções "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Erro ao assinar a extensão.</translation>
 <translation id="4115165561519362854">O administrador desta máquina requer que <ph name="EXTENSION_NAME" /> tenha, no mínimo, a versão <ph name="EXTENSION_VERSION" /> . Ele não pode ser ativado até que tenha sido atualizado para essa versão (ou superior).</translation>
 <translation id="4233778200880751280">Não foi possível carregar a página "Sobre" '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Falha ao emitir a chave privada.</translation>
 <translation id="4811956658694082538">Não foi possível instalar o pacote devido a uma falha no processo do utilitário. Reinicie o Google Chrome e tente novamente.</translation>
+<translation id="4988792151665380515">Falha ao exportar chave pública.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Não é possível encontrar o caminho absoluto para o diretório do pacote.</translation>
 <translation id="5356315618422219272">Visualização do app: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Janelas com formas não são suportadas.</translation>
 <translation id="5456409301717116725">Esta extensão inclui o arquivo de chave '<ph name="KEY_PATH" />'. Você provavelmente não quer fazer isso.</translation>
+<translation id="5486326529110362464">O valor inserido para a chave privada deve existir.</translation>
 <translation id="5627523580512561598">extensão <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">O administrador desta máquina requer a instalação da extensão <ph name="EXTENSION_NAME" />. Ela não pode ser desinstalada.</translation>
 <translation id="6027032947578871493">Produto <ph name="PRODUCT_ID" /> desconhecido de <ph name="VENDOR_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Não é possível abrir a extensão.  Para abrir uma extensão com segurança, deve haver um caminho para o diretório de seu perfil que não contenha um symlink. Não existe um caminho assim para seu perfil.</translation>
+<translation id="6322279351188361895">Falha ao ler a chave privada.</translation>
+<translation id="6391538222494443604">O diretório de entrada deve existir.</translation>
 <translation id="641087317769093025">Não foi possível descompactar a extensão</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" está solicitando acesso a um ou mais dos seus dispositivos:</translation>
 <translation id="657064425229075395">Não foi possível carregar o script de plano de fundo "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Falha ao nomear o download "<ph name="ATTEMPTED_FILENAME" />" com esta extensão, porque outra extensão (<ph name="EXTENSION_NAME" />) determinou um nome de arquivo diferente: "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Esta extensão falhou ao fornecer credenciais a uma solicitação de rede porque outra extensão (<ph name="EXTENSION_NAME" />) forneceu credenciais diferentes.</translation>
-<translation id="8602184400052594090">O arquivo de manifesto está faltando ou não pode ser lido.</translation>
 <translation id="8636666366616799973">O pacote é inválido. Detalhes "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Esta extensão falhou ao redirecionar uma solicitação da rede para <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> porque outra extensão (<ph name="EXTENSION_NAME" />) redirecionou a solicitação para <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Descompactador de extensão</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" está solicitando acesso a um dos seus dispositivos:</translation>
 <translation id="8825366169884721447">Esta extensão falhou ao modificar o cabeçalho da solicitação de rede "<ph name="HEADER_NAME" />" porque a modificação entrou em conflito com outra extensão (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Já existe uma chave privada para a extensão especificada. Reutilize essa chave ou exclua-a primeiro.</translation>
+<translation id="907841381057066561">Falha ao criar arquivo zip temporário durante a compactação.</translation>
 <translation id="9111791539553342076">Esta extensão falhou ao modificar o cabeçalho de resposta "<ph name="HEADER_NAME" />" de uma solicitação de rede porque a modificação entrou em conflito com outra extensão (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Chave privada inválida.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_pt-PT.xtb b/extensions/strings/extensions_strings_pt-PT.xtb
index 0538f1f..7105efe8 100644
--- a/extensions/strings/extensions_strings_pt-PT.xtb
+++ b/extensions/strings/extensions_strings_pt-PT.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="pt-PT">
 <translation id="1135328998467923690">O pacote é inválido: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Virada para o ambiente</translation>
+<translation id="1196338895211115272">Falha ao exportar chave privada.</translation>
 <translation id="1256619696651732561">Analisador de manifestos de extensão</translation>
+<translation id="1420684932347524586">Ora bolas! Falha ao gerar chave privada RSA aleatória.</translation>
 <translation id="1445572445564823378">Esta extensão está a tornar o <ph name="PRODUCT_NAME" /> lento. Deve desativá-la para restaurar o desempenho do <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">O WebGL não é suportado.</translation>
 <translation id="149347756975725155">Não foi possível carregar o ícone de extensão "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Não foi possível carregar a página de fundo "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Não foi possível descodificar a imagem: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Localização utilizada, mas não foi especificado default_locale no manifesto.</translation>
+<translation id="2576842806987913196">Já existe um ficheiro CRX com este nome.</translation>
 <translation id="2753617847762399167">Caminho ilegal (absoluto ou relativo com ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Esta extensão não conseguiu modificar um pedido de rede, porque a modificação entrou em conflito com outra extensão.</translation>
-<translation id="2857834222104759979">O ficheiro de manifesto é inválido.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID de extensão "<ph name="EXTENSION_ID" />") está bloqueada pelo gestor. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Não foi possível instalar o pacote: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Produto desconhecido <ph name="PRODUCT_ID" /> do fornecedor <ph name="VENDOR_ID" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Falha ao substituir o ficheiro crx. Verifique se o ficheiro está a ser utilizado.</translation>
 <translation id="3163201441334626963">Produto desconhecido <ph name="PRODUCT_ID" /> do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Não é possível descompactar a extensão. Para descompactar uma extensão em segurança, é necessário existir um caminho para o seu directório de perfil começado por uma letra de unidade e sem uma junção, ponto de montagem ou ligação simbólica. Não existe um caminho deste tipo para o seu perfil.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> do fornecedor <ph name="VENDOR_ID" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">O valor de entrada para uma chave privada tem de ser um caminho válido.</translation>
 <translation id="388442998277590542">Não foi possível carregar a página de opções "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Erro durante a assinatura da extensão.</translation>
 <translation id="4115165561519362854">O gestor deste computador requer que <ph name="EXTENSION_NAME" /> tenha uma versão mínima de <ph name="EXTENSION_VERSION" />. Não pode ser atualizado enquanto não for atualizado para essa versão (ou posterior).</translation>
 <translation id="4233778200880751280">Não foi possível carregar a página acerca de "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Falha ao obter resultado de chave privada.</translation>
 <translation id="4811956658694082538">Não foi possível instalar o pacote, porque o processo de um utilitário falhou. Experimente reiniciar o Chrome e tentar novamente.</translation>
+<translation id="4988792151665380515">Falha ao exportar chave pública.</translation>
 <translation id="5026754133087629784">Vista Web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Não foi possível encontrar o caminho absoluto para o directório a empacotar.</translation>
 <translation id="5356315618422219272">Vista de aplicação: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Não são suportadas janelas com forma.</translation>
 <translation id="5456409301717116725">Esta extensão inclui o ficheiro-chave "<ph name="KEY_PATH" />". Provavelmente não quer fazer isso.</translation>
+<translation id="5486326529110362464">O valor de entrada para uma chave privada tem de existir.</translation>
 <translation id="5627523580512561598">extensão <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">O gestor deste computador requer que a extensão <ph name="EXTENSION_NAME" /> esteja instalada. Não é possível desinstalá-la.</translation>
 <translation id="6027032947578871493">Produto desconhecido <ph name="PRODUCT_ID" /> de <ph name="VENDOR_NAME" /> (número de série <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> do fornecedor <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Não é possível descompactar a extensão. Para descompactar uma extensão em segurança, é necessário existir um caminho para o seu directório de perfil sem uma ligação simbólica. Não existe um caminho deste tipo para o seu perfil.</translation>
+<translation id="6322279351188361895">Falha ao ler a chave privada.</translation>
+<translation id="6391538222494443604">O directório de entrada tem de existir.</translation>
 <translation id="641087317769093025">Não foi possível descomprimir a extensão</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" está a solicitar acesso a um ou mais dos seus dispositivos:</translation>
 <translation id="657064425229075395">Não foi possível carregar o script de segundo plano "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Esta extensão não conseguiu atribuir o nome "<ph name="ATTEMPTED_FILENAME" />" à transferência, porque outra extensão (<ph name="EXTENSION_NAME" />) determinou um nome de ficheiro diferente: "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> de <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Falha desta extensão ao fornecer credenciais a um pedido de rede, porque outra extensão (<ph name="EXTENSION_NAME" />) forneceu credenciais diferentes.</translation>
-<translation id="8602184400052594090">O ficheiro de manifesto está em falta ou é ilegível.</translation>
 <translation id="8636666366616799973">O pacote é inválido. Detalhes: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Falha desta extensão ao redirecionar um pedido de rede para <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, porque outra extensão (<ph name="EXTENSION_NAME" />) o redirecionou para <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Descompactador de extensões</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" está a solicitar acesso a um dos seus dispositivos:</translation>
 <translation id="8825366169884721447">Falha desta extensão ao modificar o cabeçalho do pedido "<ph name="HEADER_NAME" />" de um pedido de rede, porque a modificação entrou em conflito com outra extensão (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Já existe uma chave privada para a extensão especificada. Volte a utilizar essa chave ou elimine-a primeiro.</translation>
+<translation id="907841381057066561">Falha ao criar ficheiro zip temporário durante o empacotamento.</translation>
 <translation id="9111791539553342076">Falha desta extensão ao modificar o cabeçalho da resposta "<ph name="HEADER_NAME" />" de um pedido de rede, porque a modificação entrou em conflito com outra extensão (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Chave privada inválida.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ro.xtb b/extensions/strings/extensions_strings_ro.xtb
index 80cddda..f152db84 100644
--- a/extensions/strings/extensions_strings_ro.xtb
+++ b/extensions/strings/extensions_strings_ro.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ro">
 <translation id="1135328998467923690">Pachetul nu este valid: „<ph name="ERROR_CODE" />”.</translation>
 <translation id="1140871961407805696">Camera foto din spate</translation>
+<translation id="1196338895211115272">Cheia privată nu a putut fi exportată.</translation>
 <translation id="1256619696651732561">Analizor al manifestului extensiei</translation>
+<translation id="1420684932347524586">Hopa! Generarea cheii private RSA aleatorii nu a reușit.</translation>
 <translation id="1445572445564823378">Această extensie încetinește <ph name="PRODUCT_NAME" />. Vă recomandăm să o dezactivați pentru a restabili performanțele produsului <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL nu este acceptat.</translation>
 <translation id="149347756975725155">Nu se poate încărca pictograma „<ph name="ICON" />” a extensiei.</translation>
 <translation id="1803557475693955505">Nu se poate încărca pagina de fundal „<ph name="BACKGROUND_PAGE" />”.</translation>
 <translation id="2159915644201199628">Imaginea nu a putut fi decodificată: „<ph name="IMAGE_NAME" />”</translation>
 <translation id="2350172092385603347">A fost utilizată localizarea, dar nu s-a specificat default_locale în manifest.</translation>
+<translation id="2576842806987913196">Există deja un fișier CRX cu acest nume.</translation>
 <translation id="2753617847762399167">Cale nevalidă (absolută sau relativă cu „..”): „<ph name="IMAGE_PATH" />”</translation>
 <translation id="27822970480436970">Această extensie nu a reușit să modifice o solicitare în rețea, deoarece modificarea intră în conflict cu o altă extensie.</translation>
-<translation id="2857834222104759979">Fișierul manifest nu este valid.</translation>
 <translation id="2903070246402204397">Extensia <ph name="EXTENSION_NAME" /> (cu ID-ul „<ph name="EXTENSION_ID" />”) este blocată de administrator. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nu s-a putut instala pachetul: „<ph name="ERROR_CODE" />”</translation>
 <translation id="3115238746683532089">Produs necunoscut <ph name="PRODUCT_ID" /> de la furnizorul <ph name="VENDOR_ID" /> (numărul de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Înlocuirea fișierului crx a eșuat. Verificați dacă fișierul este în uz.</translation>
 <translation id="3163201441334626963">Produs necunoscut <ph name="PRODUCT_ID" /> de la furnizorul <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Nu se poate despacheta extensia. Pentru a despacheta în siguranță o extensie, trebuie să existe o cale către directorul de profil, care începe cu o literă de unitate și nu conține o joncțiune, un punct de montare sau un link simbolic. Nu există o astfel de cale pentru profilul tău.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (numărul de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> de la furnizorul <ph name="VENDOR_ID" /> (numărul de serie <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Valoarea introdusă pentru cheia privată trebuie să fie o cale validă.</translation>
 <translation id="388442998277590542">Nu se poate încărca pagina cu opțiuni „<ph name="OPTIONS_PAGE" />”.</translation>
+<translation id="3984413272403535372">Eroare la semnarea extensiei.</translation>
 <translation id="4115165561519362854">Administratorul acestui computer solicită ca versiunea minimă pentru <ph name="EXTENSION_NAME" /> să fie <ph name="EXTENSION_VERSION" />. Extensia poate fi activată doar după actualizarea la acea versiune (sau una superioară).</translation>
 <translation id="4233778200880751280">Pagina informativă „<ph name="ABOUT_PAGE" />” nu s-a putut încărca.</translation>
+<translation id="471800408830181311">Cheia privată nu poate fi generată.</translation>
 <translation id="4811956658694082538">Pachetul nu a fost instalat, deoarece un proces al unui program utilitar s-a blocat. Încearcă să repornești Chrome și încearcă din nou.</translation>
+<translation id="4988792151665380515">Exportul cheii publice nu a reușit.</translation>
 <translation id="5026754133087629784">Afișare web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Nu se poate găsi calea completă către directorul de împachetat.</translation>
 <translation id="5356315618422219272">Eticheta appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Ferestrele cu formă personalizată nu sunt acceptate.</translation>
 <translation id="5456409301717116725">Această extensie include fișierul cheie „<ph name="KEY_PATH" />”. Probabil că nu doriți să faceți asta.</translation>
+<translation id="5486326529110362464">Trebuie să existe o valoarea introdusă pentru cheia privată.</translation>
 <translation id="5627523580512561598">extensie <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administratorul acestui computer solicită ca <ph name="EXTENSION_NAME" /> să fie instalată. Aceasta nu poate fi dezinstalată.</translation>
 <translation id="6027032947578871493">Produs necunoscut <ph name="PRODUCT_ID" /> de la <ph name="VENDOR_NAME" /> (numărul de serie <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> de la furnizorul <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Extensia nu poate fi dezarhivată. Pentru a dezarhiva în siguranță o extensie, trebuie să existe o cale către directorul tău de profiluri care să nu conțină un link simbolic. Pentru profilul tău nu există nicio astfel de cale.</translation>
+<translation id="6322279351188361895">Cheia privată nu a fost citită.</translation>
+<translation id="6391538222494443604">Directorul de intrare trebuie să existe.</translation>
 <translation id="641087317769093025">Extensia nu a putut fi dezarhivată</translation>
 <translation id="6542618148162044354">„<ph name="APP_NAME" />” solicită accesul la cel puțin unul dintre dispozitivele tale:</translation>
 <translation id="657064425229075395">Scriptul de fundal „<ph name="BACKGROUND_SCRIPT" />” nu a putut fi încărcat.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Această extensie nu a reușit să denumească fișierul descărcat „<ph name="ATTEMPTED_FILENAME" />”, deoarece altă extensie (<ph name="EXTENSION_NAME" />) a stabilit alt nume de fișier, „<ph name="ACTUAL_FILENAME" />”.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> de la <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Această extensie nu a putut furniza datele de conectare pentru o solicitare din rețea, deoarece o altă extensie (<ph name="EXTENSION_NAME" />) a furnizat alte date de conectare.</translation>
-<translation id="8602184400052594090">Fișierul manifest lipsește sau nu poate fi citit.</translation>
 <translation id="8636666366616799973">Pachetul nu este valid. Detalii: „<ph name="ERROR_MESSAGE" />”.</translation>
 <translation id="8670869118777164560">Această extensie nu a putut redirecționa o solicitare din rețea către <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, deoarece o altă extensie (<ph name="EXTENSION_NAME" />) a redirecționat-o către <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Instrument de despachetare a extensiilor</translation>
 <translation id="8761756413268424715">„<ph name="APP_NAME" />” solicită accesul la unul dintre dispozitivele tale:</translation>
 <translation id="8825366169884721447">Această extensie nu a putut modifica antetul de solicitare „<ph name="HEADER_NAME" />” al unei solicitări din rețea, deoarece modificarea era în conflict cu o altă extensie (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Există deja o cheie privată pentru extensia specificată. Reutilizeaz-o sau șterge-o mai întâi.</translation>
+<translation id="907841381057066561">Crearea fișierului zip temporar în timpul împachetării nu a reușit.</translation>
 <translation id="9111791539553342076">Această extensie nu a putut modifica antetul de răspuns „<ph name="HEADER_NAME" />” al unei solicitări din rețea, deoarece modificarea era în conflict cu o altă extensie (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Cheie privată nevalidă.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ru.xtb b/extensions/strings/extensions_strings_ru.xtb
index 56755d2..90e80d7 100644
--- a/extensions/strings/extensions_strings_ru.xtb
+++ b/extensions/strings/extensions_strings_ru.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="ru">
 <translation id="1135328998467923690">Пакет недействителен: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Основная</translation>
+<translation id="1196338895211115272">Не удалось экспортировать закрытый ключ.</translation>
 <translation id="1256619696651732561">Синтаксический анализатор манифестов расширений</translation>
+<translation id="1420684932347524586">Не удалось создать случайный закрытый ключ RSA.</translation>
 <translation id="1445572445564823378">Это расширение замедляет работу <ph name="PRODUCT_NAME" />. Чтобы восстановить нормальную работу <ph name="PRODUCT_NAME" />, отключите его.</translation>
 <translation id="1468038450257740950">WebGL не поддерживается.</translation>
 <translation id="149347756975725155">Не удается загрузить значок расширения "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Не удалось загрузить страницу фона "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Не удалось декодировать изображение: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Локализация используется, однако в манифесте не указан атрибут default_locale.</translation>
+<translation id="2576842806987913196">Файл CRX с таким именем уже существует.</translation>
 <translation id="2753617847762399167">Недопустимый путь (абсолютный или относительный с элементом ".."): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Этому расширению не удалось изменить сетевой запрос, так как при этом возник конфликт с другим расширением.</translation>
-<translation id="2857834222104759979">Недопустимый файл манифеста.</translation>
 <translation id="2903070246402204397">Расширение <ph name="EXTENSION_NAME" /> (идентификатор: <ph name="EXTENSION_ID" />) заблокировано администратором. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Не удается установить пакет: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Неизвестный продукт <ph name="PRODUCT_ID" /> от поставщика <ph name="VENDOR_ID" /> (серийный номер <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Не удалось переместить CRX-файл. Убедитесь, что он не используется.</translation>
 <translation id="3163201441334626963">Неизвестный продукт <ph name="PRODUCT_ID" /> от поставщика <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Не удается распаковать расширение. Для безопасной распаковки расширения необходим путь к каталогу вашего профиля, начинающийся с буквы диска. Он не должен содержать параметр слияния папок, точку монтирования или символьную ссылку. Такого пути для вашего профиля не существует.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (серийный номер <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> от поставщика <ph name="VENDOR_ID" /> (серийный номер <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Входное значение закрытого ключа должно предоставлять собой допустимый путь.</translation>
 <translation id="388442998277590542">Не удалось загрузить страницу параметров <ph name="OPTIONS_PAGE" />.</translation>
+<translation id="3984413272403535372">Ошибка при подписи расширения.</translation>
 <translation id="4115165561519362854">Администратор установил, что для запуска приложения "<ph name="EXTENSION_NAME" />" необходима версия <ph name="EXTENSION_VERSION" /> или выше. Обновите приложение.</translation>
 <translation id="4233778200880751280">Не удалось загрузить страницу <ph name="ABOUT_PAGE" />.</translation>
+<translation id="471800408830181311">Не удалось выгрузить закрытый ключ.</translation>
 <translation id="4811956658694082538">Не удалось установить пакет из-за сбоя. Перезагрузите браузер и повторите попытку.</translation>
+<translation id="4988792151665380515">Не удалось экспортировать закрытый ключ.</translation>
 <translation id="5026754133087629784">WebView: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Не удается найти абсолютный путь к заданному каталогу.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Система не поддерживает окна нестандартной формы</translation>
 <translation id="5456409301717116725">Это расширение содержит файл ключа <ph name="KEY_PATH" />. Вероятно, это неприемлемо.</translation>
+<translation id="5486326529110362464">Должно существовать входное значение для закрытого ключа.</translation>
 <translation id="5627523580512561598">расширение <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Удаление расширения "<ph name="EXTENSION_NAME" />" на этом компьютере запрещено администратором</translation>
 <translation id="6027032947578871493">Неизвестный продукт <ph name="PRODUCT_ID" /> от <ph name="VENDOR_NAME" /> (серийный номер <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> от поставщика <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Не удается распаковать расширение. Для безопасной распаковки расширения необходим путь к каталогу вашего профиля, не содержащий символьную ссылку. Такого пути для вашего профиля не существует.</translation>
+<translation id="6322279351188361895">Не удалось прочитать закрытый ключ.</translation>
+<translation id="6391538222494443604">Каталог входа должен существовать.</translation>
 <translation id="641087317769093025">Не удалось распаковать расширение</translation>
 <translation id="6542618148162044354">Приложение "<ph name="APP_NAME" />" запрашивает доступ к нескольким устройствам.</translation>
 <translation id="657064425229075395">Не удалось загрузить фоновый скрипт <ph name="BACKGROUND_SCRIPT" />.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Данному расширению не удалось присвоить скачанному файлу имя "<ph name="ATTEMPTED_FILENAME" />", поскольку другое расширение (<ph name="EXTENSION_NAME" />) уже присвоило ему другое имя: "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> от <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Это расширение не может предоставить учетные данные для сетевого запроса, поскольку другое расширение (<ph name="EXTENSION_NAME" />) передало иные учетные данные.</translation>
-<translation id="8602184400052594090">Файл манифеста отсутствует или недоступен для чтения.</translation>
 <translation id="8636666366616799973">Недопустимый пакет. Подробные сведения: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Расширение не может перенаправить сетевой запрос на <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, поскольку другое расширение (<ph name="EXTENSION_NAME" />) перенаправило его на <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Распаковщик расширений</translation>
 <translation id="8761756413268424715">Приложение "<ph name="APP_NAME" />" запрашивает доступ к устройству.</translation>
 <translation id="8825366169884721447">Это расширение не может изменить заголовок запроса (<ph name="HEADER_NAME" />) из-за конфликта с другим расширением (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Закрытый ключ для указанного расширения уже существует. Удалите этот ключ или используйте его повторно.</translation>
+<translation id="907841381057066561">Не удалось создать временный zip-файл во время упаковки.</translation>
 <translation id="9111791539553342076">Это расширение не может изменить заголовок ответа (<ph name="HEADER_NAME" />) из-за конфликта с другим расширением (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Недопустимый открытый ключ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_sk.xtb b/extensions/strings/extensions_strings_sk.xtb
index 9717f9a..e9b96300 100644
--- a/extensions/strings/extensions_strings_sk.xtb
+++ b/extensions/strings/extensions_strings_sk.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="sk">
 <translation id="1135328998467923690">Balík je neplatný: „<ph name="ERROR_CODE" />“</translation>
 <translation id="1140871961407805696">Nasmerovaný na okolie</translation>
+<translation id="1196338895211115272">Exportovanie súkromného kľúča zlyhalo.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">Generovanie náhodného súkromného kľúča RSA žiaľ zlyhalo.</translation>
 <translation id="1445572445564823378">Toto rozšírenie spomaľuje prehliadač <ph name="PRODUCT_NAME" />. Ak chcete obnoviť výkonnosť prehliadača <ph name="PRODUCT_NAME" />, zakážte ho.</translation>
 <translation id="1468038450257740950">Rozhranie WebGL nie je podporované.</translation>
 <translation id="149347756975725155">Nepodarilo sa načítať ikonu rozšírenia „<ph name="ICON" />“.</translation>
 <translation id="1803557475693955505">Nepodarilo sa načítať stránku na pozadí „<ph name="BACKGROUND_PAGE" />“.</translation>
 <translation id="2159915644201199628">Nepodarilo sa dekódovať obrázok: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Lokalizácia sa použila, parameter default_locale však nebol v manifeste určený.</translation>
+<translation id="2576842806987913196">Súbor CRX s týmto názvom už existuje.</translation>
 <translation id="2753617847762399167">Neplatná cesta (absolútna alebo relatívna s '..'): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Tomuto rozšíreniu sa nepodarilo upraviť žiadosť siete, pretože úprava bola v rozpore s ďalším rozšírením.</translation>
-<translation id="2857834222104759979">Súbor manifestu je neplatný.</translation>
 <translation id="2903070246402204397">Rozšírenie <ph name="EXTENSION_NAME" /> (ID rozšírenia: <ph name="EXTENSION_ID" />) je blokované správcom. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Nepodarilo sa nainštalovať balík: <ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_ID" /> (sériové číslo: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Súbor crx sa nepodarilo nahradiť. Skontrolujte, či je súbor používaný.</translation>
 <translation id="3163201441334626963">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Rozšírenie sa nepodarilo rozbaliť. Aby bolo rozbalenie rozšírenia bezpečné, musíte zadať cestu k profilovému adresáru, ktorá začína písmenom jednotky a neobsahuje žiadny styčný bod, bod prepojenia ani odkaz symlink. Pre váš profil nie je k dispozícii žiadna takáto cesta.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (sériové číslo: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> od dodávateľa <ph name="VENDOR_ID" /> (sériové číslo: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Vstupná hodnota pre súkromný kľúč musí byť platná cesta.</translation>
 <translation id="388442998277590542">Nepodarilo sa načítať stránku s možnosťami „<ph name="OPTIONS_PAGE" />“.</translation>
+<translation id="3984413272403535372">Pri podpisovaní rozšírenia sa vyskytla chyba.</translation>
 <translation id="4115165561519362854">Správca tohto zariadenia vyžaduje, aby ste používali rozšírenie <ph name="EXTENSION_NAME" /> aspoň vo verzii <ph name="EXTENSION_VERSION" />. Kým nebude aktualizované na túto alebo vyššiu verziu, nedá sa povoliť.</translation>
 <translation id="4233778200880751280">Informačnú stránku <ph name="ABOUT_PAGE" /> sa nepodarilo načítať.</translation>
+<translation id="471800408830181311">Výstup súkromného kľúča zlyhal.</translation>
 <translation id="4811956658694082538">Balík sa nepodarilo nainštalovať z dôvodu zlyhania procesu nástroja. Reštartujte prehliadač Chrome a skúste to znova.</translation>
+<translation id="4988792151665380515">Exportovanie verejného kľúča zlyhalo.</translation>
 <translation id="5026754133087629784">Webview: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Absolútnu cestu k adresáru na zbalenie nie je možné nájsť.</translation>
 <translation id="5356315618422219272">Značka appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Tvarované okná nie sú podporované.</translation>
 <translation id="5456409301717116725">Toto rozšírenie obsahuje súbor kľúča <ph name="KEY_PATH" />. Pravdepodobne to nechcete urobiť.</translation>
+<translation id="5486326529110362464">Vstupná hodnota pre súkromný kľúč musí existovať.</translation>
 <translation id="5627523580512561598">rozšírenie <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">Zobrazenie rozšírenia: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Správca tohto počítača vyžaduje, aby bolo nainštalované rozšírenie <ph name="EXTENSION_NAME" />. Nedá sa odinštalovať.</translation>
 <translation id="6027032947578871493">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_NAME" /> (sériové číslo: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> od dodávateľa <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Rozšírenie sa nepodarilo rozbaliť. Aby bolo rozbalenie rozšírenia bezpečné, musíte zadať cestu k profilovému adresáru, ktorá neobsahuje žiadny odkaz symlink. Pre váš profil nie je k dispozícii žiadna takáto cesta.</translation>
+<translation id="6322279351188361895">Prečítanie súkromného kľúča zlyhalo.</translation>
+<translation id="6391538222494443604">Vstupný adresár musí existovať.</translation>
 <translation id="641087317769093025">Rozšírenie sa nepodarilo rozbaliť</translation>
 <translation id="6542618148162044354">Aplikácia <ph name="APP_NAME" /> žiada o prístup k jednému alebo viacerým vašim zariadeniam:</translation>
 <translation id="657064425229075395">Nepodarilo sa načítať skript na pozadí „<ph name="BACKGROUND_SCRIPT" />“.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Tomuto rozšíreniu sa nepodarilo pomenovať stiahnutý súbor s názvom „<ph name="ATTEMPTED_FILENAME" />„, pretože ďalšie rozšírenie (<ph name="EXTENSION_NAME" />) určilo odlišný názov súboru „<ph name="ACTUAL_FILENAME" />“.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> od dodávateľa <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Tomuto rozšíreniu sa nepodarilo poskytnúť poverenia žiadosti o sieť, pretože iné rozšírenie (<ph name="EXTENSION_NAME" />) poskytlo odlišné poverenia.</translation>
-<translation id="8602184400052594090">Súbor manifestu chýba alebo je nečitateľný.</translation>
 <translation id="8636666366616799973">Package is invalid. Details: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Tomuto rozšíreniu sa nepodarilo presmerovať žiadosť o siete na stránky <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, pretože ju iné rozšírenie (<ph name="EXTENSION_NAME" />) presmerovalo na stránky <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Extension Unpacker</translation>
 <translation id="8761756413268424715">Aplikácia <ph name="APP_NAME" /> žiada o prístup k jednému z vašich zariadení:</translation>
 <translation id="8825366169884721447">Tomuto rozšíreniu sa nepodarilo upraviť hlavičku <ph name="HEADER_NAME" /> žiadosti o sieť, pretože táto úprava kolidovala s iným rozšírením (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Pre určené rozšírenie už existuje súkromný kľúč. Použite ho znova, alebo ho najprv odstráňte.</translation>
+<translation id="907841381057066561">Vytvorenie dočasného súboru zip počas balenia zlyhalo.</translation>
 <translation id="9111791539553342076">Tomuto rozšíreniu sa nepodarilo upraviť hlavičku odpovede <ph name="HEADER_NAME" /> žiadosti o sieť, pretože táto úprava kolidovala s iným rozšírením (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Neplatný súkromný kľúč.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_sl.xtb b/extensions/strings/extensions_strings_sl.xtb
index bbf20eb..64c0398 100644
--- a/extensions/strings/extensions_strings_sl.xtb
+++ b/extensions/strings/extensions_strings_sl.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="sl">
 <translation id="1135328998467923690">Paket je neveljaven: »<ph name="ERROR_CODE" />«.</translation>
 <translation id="1140871961407805696">Hrbtni</translation>
+<translation id="1196338895211115272">Zasebnega ključa ni bilo mogoče izvoziti.</translation>
 <translation id="1256619696651732561">Razčlenjevalnik manifesta razširitve</translation>
+<translation id="1420684932347524586">Ups! Ni bilo mogoče generirati naključnega zasebnega ključa RSA.</translation>
 <translation id="1445572445564823378">Ta razširitev upočasnjuje <ph name="PRODUCT_NAME" />. Onemogočite jo, če želite obnoviti delovanje storitve <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL ni podprt.</translation>
 <translation id="149347756975725155">Ikone razširitve »<ph name="ICON" />« ni bilo mogoče naložiti.</translation>
 <translation id="1803557475693955505">Strani za ozadje »<ph name="BACKGROUND_PAGE" />« ni bilo mogoče naložiti.</translation>
 <translation id="2159915644201199628">Slike ni bilo mogoče dekodirati: »<ph name="IMAGE_NAME" />«</translation>
 <translation id="2350172092385603347">Uporabljena je bila lokalizacija, vendar v manifestu ni bil naveden parameter default_locale.</translation>
+<translation id="2576842806987913196">Datoteka CRX s tem imenom že obstaja.</translation>
 <translation id="2753617847762399167">Neveljavna pot (absolutna ali v povezavi z »..«): »<ph name="IMAGE_PATH" />«</translation>
 <translation id="27822970480436970">Tej razširitvi ni uspelo spremeniti omrežne zahteve, ker je bila sprememba v sporu z drugo razširitvijo.</translation>
-<translation id="2857834222104759979">Datoteka manifesta ni veljavna.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID razširitve »<ph name="EXTENSION_ID" />«) je blokiral skrbnik. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Paketa »<ph name="ERROR_CODE" />« ni bilo mogoče namestiti</translation>
 <translation id="3115238746683532089">Neznan izdelek <ph name="PRODUCT_ID" /> dobavitelja <ph name="VENDOR_ID" /> (serijska številka <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Datoteke .crx ni bilo mogoče zamenjati. Preverite, ali je datoteka v uporabi.</translation>
 <translation id="3163201441334626963">Neznan izdelek <ph name="PRODUCT_ID" /> dobavitelja <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Razširitve ne morete odpakirati. Če želite varno odpakirati razširitev, mora biti navedena pot do imenika vašega profila, ki se začne s črko pogona in ne vsebuje spoja, točke vpenjanja ali simbolne povezave. Za vaš profil ni takšne poti.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serijska številka <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> dobavitelja <ph name="VENDOR_ID" /> (serijska številka <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Vrednost vnosa za zasebni ključ mora biti veljavna pot.</translation>
 <translation id="388442998277590542">Strani z možnostmi »<ph name="OPTIONS_PAGE" />« ni bilo mogoče naložiti.</translation>
+<translation id="3984413272403535372">Med podpisovanjem razširitve je prišlo do napake.</translation>
 <translation id="4115165561519362854">Skrbnik te naprave zahteva, da je <ph name="EXTENSION_NAME" /> različice najmanj <ph name="EXTENSION_VERSION" />. Ni je mogoče omogočiti, dokler ni posodobljena na to (ali novejšo) različico.</translation>
 <translation id="4233778200880751280">Ni bilo mogoče naložiti Vizitke »<ph name="ABOUT_PAGE" />«.</translation>
+<translation id="471800408830181311">Zasebnega ključa ni bilo mogoče izdati.</translation>
 <translation id="4811956658694082538">Paketa ni bilo mogoče namestiti, ker se je pomožni proces zrušil. Znova zaženite Chrome in poskusite znova.</translation>
+<translation id="4988792151665380515">Javnega ključa ni bilo mogoče izvoziti.</translation>
 <translation id="5026754133087629784">Spletni pogled: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Absolutne poti do mape za pakiranje ni mogoče najti.</translation>
 <translation id="5356315618422219272">Komponenta appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Oblikovana okna niso podprta.</translation>
 <translation id="5456409301717116725">Ta razširitev vključuje datoteko s ključem »<ph name="KEY_PATH" />«. Verjetno ne želite narediti tega.</translation>
+<translation id="5486326529110362464">Obstajati mora vrednost vnosa za zasebni ključ.</translation>
 <translation id="5627523580512561598">razširitev <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Skrbnik te naprave zahteva, da je nameščena razširitev <ph name="EXTENSION_NAME" />. Odstranitev ni mogoča.</translation>
 <translation id="6027032947578871493">Neznan izdelek <ph name="PRODUCT_ID" /> dobavitelja <ph name="VENDOR_NAME" /> (serijska številka <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> dobavitelja <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Razširitve ni mogoče odpakirati. Če želite varno odpakirati razširitev, pot do imenika vašega profila ne sme vsebovati simbolne povezave. Takšne poti ni za vaš profil.</translation>
+<translation id="6322279351188361895">Zasebnega ključa ni bilo mogoče prebrati.</translation>
+<translation id="6391538222494443604">Obstajati mora imenik vnosa.</translation>
 <translation id="641087317769093025">Razširitve ni bilo mogoče odpakirati</translation>
 <translation id="6542618148162044354">Aplikacija »<ph name="APP_NAME" />« zahteva dostop do ene ali več vaših naprav:</translation>
 <translation id="657064425229075395">Skripta za ozadje »<ph name="BACKGROUND_SCRIPT" />« ni bilo mogoče naložiti.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Ta razširitev ni mogla prenosa poimenovati »<ph name="ATTEMPTED_FILENAME" />«, ker je druga razširitev (<ph name="EXTENSION_NAME" />) določila drugo ime datoteke: »<ph name="ACTUAL_FILENAME" />«.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> proizvajalca <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Razširitev je neuspešno podala poverilnice omrežni zahtevi, ker je druga razširitev (<ph name="EXTENSION_NAME" />) podala druge poverilnice.</translation>
-<translation id="8602184400052594090">Datoteka manifesta manjka ali pa je ni mogoče prebrati.</translation>
 <translation id="8636666366616799973">Paket je neveljaven. Podrobnosti: »<ph name="ERROR_MESSAGE" />«.</translation>
 <translation id="8670869118777164560">Razširitvi ni uspelo preusmeriti omrežne zahteve <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, ker jo je druga razširitev (<ph name="EXTENSION_NAME" />) preusmerila na cilj <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Orodje za odpakiranje razširitev</translation>
 <translation id="8761756413268424715">Aplikacija »<ph name="APP_NAME" />« zahteva dostop do ene od vaših naprav:</translation>
 <translation id="8825366169884721447">Razširitvi ni uspelo spremeniti glave zahteve »<ph name="HEADER_NAME" />« omrežne zahteve, ker je sprememba v sporu z drugo razširitvijo (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Zasebni ključ za navedeno razširitev že obstaja. Uporabite ga znova ali pa ga izbrišite.</translation>
+<translation id="907841381057066561">Pri pripravi paketov ni bilo mogoče ustvariti začasne datoteke zip.</translation>
 <translation id="9111791539553342076">Razširitvi ni uspelo spremeniti glave odziva »<ph name="HEADER_NAME" />« omrežne zahteve, ker je sprememba v sporu z drugo razširitvijo (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Neveljaven zasebni ključ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_sr.xtb b/extensions/strings/extensions_strings_sr.xtb
index 1e76e904..ce6875b 100644
--- a/extensions/strings/extensions_strings_sr.xtb
+++ b/extensions/strings/extensions_strings_sr.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="sr">
 <translation id="1135328998467923690">Пакет је неважећи: „<ph name="ERROR_CODE" />“.</translation>
 <translation id="1140871961407805696">Задња</translation>
+<translation id="1196338895211115272">Извоз приватног кључа није успео.</translation>
 <translation id="1256619696651732561">Рашчлањивач манифеста додатака</translation>
+<translation id="1420684932347524586">Генерисање насумичног RSA приватног кључа није успело.</translation>
 <translation id="1445572445564823378">Овај додатак успорава <ph name="PRODUCT_NAME" />. Требало би да га онемогућите да би се учинак производа <ph name="PRODUCT_NAME" /> вратио.</translation>
 <translation id="1468038450257740950">WebGL није подржан.</translation>
 <translation id="149347756975725155">Није могуће учитати икону додатка „<ph name="ICON" />“.</translation>
 <translation id="1803557475693955505">Није могуће учитати страницу у позадини „<ph name="BACKGROUND_PAGE" />“.</translation>
 <translation id="2159915644201199628">Није могуће декодирати слику: „<ph name="IMAGE_NAME" />“</translation>
 <translation id="2350172092385603347">Коришћена је локализација, али параметар default_locale није наведен у манифесту.</translation>
+<translation id="2576842806987913196">Већ постоји CRX датотека са овим називом.</translation>
 <translation id="2753617847762399167">Неисправна путања (апсолутна или релативна вредност једнака вредности „..“): „<ph name="IMAGE_PATH" />“</translation>
 <translation id="27822970480436970">Овај додатак није успео да измени захтев мреже јер измена није усаглашена са другим додатком.</translation>
-<translation id="2857834222104759979">Датотека манифеста је неважећа.</translation>
 <translation id="2903070246402204397">Администратор је блокирао <ph name="EXTENSION_NAME" /> (ИД додатка је „<ph name="EXTENSION_ID" />“). <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Инсталација пакета није била могућа: „<ph name="ERROR_CODE" />“</translation>
 <translation id="3115238746683532089">Непознати производ <ph name="PRODUCT_ID" /> продавца <ph name="VENDOR_ID" /> (серијски број <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Замена crx датотеке није успела. Проверите да ли се датотека користи.</translation>
 <translation id="3163201441334626963">Непознати производ <ph name="PRODUCT_ID" /> продавца <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Није могуће отпаковати додатак. Да бисте безбедно отпаковали додатак, мора да постоји путања до директоријума профила која почиње словом за ознаку јединице и не садржи спој, тачку повезивања или симболичку везу. За ваш профил не постоји таква путања.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (серијски број <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> продавца <ph name="VENDOR_ID" /> (серијски број <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Улазна вредност приватног кључа мора бити важећа путања.</translation>
 <translation id="388442998277590542">Није могуће учитати страницу опција „<ph name="OPTIONS_PAGE" />“.</translation>
+<translation id="3984413272403535372">Дошло је до грешке приликом потписивања додатка.</translation>
 <translation id="4115165561519362854">Администратор овог рачунара захтева да <ph name="EXTENSION_NAME" /> има минималну верзију <ph name="EXTENSION_VERSION" />. Не можете да га омогућите док га не ажурирате на ту верзију (или новију).</translation>
 <translation id="4233778200880751280">Није могуће учитати страницу са основним подацима „<ph name="ABOUT_PAGE" />“.</translation>
+<translation id="471800408830181311">Формирање излазних резултата приватног кључа није успело.</translation>
 <translation id="4811956658694082538">Инсталирање пакета није успело зато што је услужни процес отказао. Пробајте да поново покренете Chrome и покушајте поново.</translation>
+<translation id="4988792151665380515">Извоз јавног кључа није успео.</translation>
 <translation id="5026754133087629784">Веб-приказ: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Није могуће пронаћи апсолутну путању до директоријума за паковање.</translation>
 <translation id="5356315618422219272">Приказ апликације: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Прозори различитих облика нису подржани.</translation>
 <translation id="5456409301717116725">Овај додатак садржи датотеку кључа „<ph name="KEY_PATH" />“. Вероватно то не желите.</translation>
+<translation id="5486326529110362464">Улазна вредност приватног кључа мора да постоји.</translation>
 <translation id="5627523580512561598">додатак <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Администратор овог рачунара захтева да додатак <ph name="EXTENSION_NAME" /> буде инсталиран. Не можете да га деинсталирате.</translation>
 <translation id="6027032947578871493">Непознати производ <ph name="PRODUCT_ID" /> продавца <ph name="VENDOR_NAME" /> (серијски број <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> продавца <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Није могуће отпаковати додатак. Да бисте безбедно отпаковали додатак, мора да постоји путања до директоријума профила која не садржи симболичку везу. За ваш профил не постоји таква путања.</translation>
+<translation id="6322279351188361895">Читање приватног кључа није успело.</translation>
+<translation id="6391538222494443604">Улазни каталог мора да постоји.</translation>
 <translation id="641087317769093025">Није могуће распаковати додатак</translation>
 <translation id="6542618148162044354">„<ph name="APP_NAME" />“ захтева приступ једном или више уређаја:</translation>
 <translation id="657064425229075395">Није могуће учитати скрипту у позадини „<ph name="BACKGROUND_SCRIPT" />“.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Овај додатак није успео да преузетој датотеци дâ назив „<ph name="ATTEMPTED_FILENAME" />“ зато што је један други додатак (<ph name="EXTENSION_NAME" />) одредио другачији назив датотеке „<ph name="ACTUAL_FILENAME" />“.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> продавца <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Овај додатак није успео да достави акредитиве захтеву мреже јер је други додатак (<ph name="EXTENSION_NAME" />) доставио друге акредитиве.</translation>
-<translation id="8602184400052594090">Датотека манифеста недостаје или је нечитљива.</translation>
 <translation id="8636666366616799973">Пакет је неважећи. Детаљи: „<ph name="ERROR_MESSAGE" />“.</translation>
 <translation id="8670869118777164560">Овај додатак није успео да преусмери захтев мреже на <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> пошто га је други додатак (<ph name="EXTENSION_NAME" />) преусмерио на <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Распакивање додатака</translation>
 <translation id="8761756413268424715">„<ph name="APP_NAME" />“ захтева приступ неком од уређаја:</translation>
 <translation id="8825366169884721447">Овај додатак није успео да измени заглавље захтева „<ph name="HEADER_NAME" />“ за захтев мреже јер измена није била у складу са другим додатком (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Приватни кључ за наведени додатак већ постоји. Поново користите тај кључ или га прво избришите.</translation>
+<translation id="907841381057066561">Прављење привремене zip датотеке није успело током паковања.</translation>
 <translation id="9111791539553342076">Овај додатак није успео да измени заглавље одговора „<ph name="HEADER_NAME" />“ за захтев мреже јер измена није била у складу са другим додатком (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Неважећи приватни кључ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_sv.xtb b/extensions/strings/extensions_strings_sv.xtb
index ee764717c..f2e844a 100644
--- a/extensions/strings/extensions_strings_sv.xtb
+++ b/extensions/strings/extensions_strings_sv.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="sv">
 <translation id="1135328998467923690">Paketet är ogiltigt: <ph name="ERROR_CODE" />.</translation>
 <translation id="1140871961407805696">Vänd mot omgivningen</translation>
+<translation id="1196338895211115272">Det gick inte att exportera den privata nyckeln.</translation>
 <translation id="1256619696651732561">Textanalysator för tilläggsmanifest</translation>
+<translation id="1420684932347524586">Oj! Det gick inte att generera en slumpmässig privat RSA-nyckel.</translation>
 <translation id="1445572445564823378">Detta tillägg gör <ph name="PRODUCT_NAME" /> långsammare. Om du vill utnyttja den fulla prestandan i <ph name="PRODUCT_NAME" /> bör du inaktivera tillägget.</translation>
 <translation id="1468038450257740950">WebGL stöds inte.</translation>
 <translation id="149347756975725155">Det gick inte att läsa in tilläggsikonen <ph name="ICON" />.</translation>
 <translation id="1803557475693955505">Det gick inte att läsa in bakgrundssidan <ph name="BACKGROUND_PAGE" />.</translation>
 <translation id="2159915644201199628">Det gick inte att avkoda bilden: <ph name="IMAGE_NAME" /></translation>
 <translation id="2350172092385603347">Lokalisering används, men default_locale specificeras inte i manifestet.</translation>
+<translation id="2576842806987913196">Det finns redan en CRX-fil med det här namnet.</translation>
 <translation id="2753617847762399167">Illegal sökväg (absolut eller relativ med ".."): <ph name="IMAGE_PATH" /></translation>
 <translation id="27822970480436970">Tillägget misslyckades att ändra en nätverksbegäran eftersom ändringen står i konflikt med ett annat tillägg.</translation>
-<translation id="2857834222104759979">Manifestfilen är ogiltig.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (tilläggs-id <ph name="EXTENSION_ID" />) har blockerats av administratören. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Det gick inte att installera paketet <ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">Okänd produkt (<ph name="PRODUCT_ID" />) från leverantören <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Det gick inte att ersätta CRX-filen. Kontrollera om filen används.</translation>
 <translation id="3163201441334626963">Okänd produkt (<ph name="PRODUCT_ID" />) från leverantören <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Det går inte att packa upp tillägget. Ett tillägg kan bara packas upp säkert om det finns en sökväg till din profilkatalog som börjar med en enhetsbokstav och inte innehåller en knutpunkt, mount point eller symbollänk.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> från leverantören <ph name="VENDOR_ID" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Det angivna värdet för den privata nyckeln måste vara en giltig sökväg.</translation>
 <translation id="388442998277590542">Det gick inte att läsa in alternativsidan <ph name="OPTIONS_PAGE" />.</translation>
+<translation id="3984413272403535372">Ett fel uppstod när tillägget skulle signeras.</translation>
 <translation id="4115165561519362854">Administratören för datorn måste ha den lägsta versionen <ph name="EXTENSION_VERSION" /> av <ph name="EXTENSION_NAME" />. Det kan inte aktiveras förrän det har uppdaterats till den versionen (eller senare).</translation>
 <translation id="4233778200880751280">Det gick inte att ladda informationssidan <ph name="ABOUT_PAGE" />.</translation>
+<translation id="471800408830181311">Det gick inte att visa den privata nyckeln.</translation>
 <translation id="4811956658694082538">Det gick inte att installera paketet eftersom en hjälpprocess kraschade. Testa att starta om Chrome och försöka igen.</translation>
+<translation id="4988792151665380515">Det gick inte att exportera den publika nyckeln.</translation>
 <translation id="5026754133087629784">Webbvy: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Kan inte hitta den absoluta sökvägen till katalogen som ska packas.</translation>
 <translation id="5356315618422219272">Appvy: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Formade fönster stöds inte.</translation>
 <translation id="5456409301717116725">Detta tillägg omfattar nyckelfilen <ph name="KEY_PATH" />. Du vill antagligen inte göra detta.</translation>
+<translation id="5486326529110362464">Det angivna värdet för den privata nyckeln måste finnas.</translation>
 <translation id="5627523580512561598">tillägget <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">Tilläggsvy: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Administratören för den här datorn kräver att <ph name="EXTENSION_NAME" /> installeras. Det kan inte avinstalleras.</translation>
 <translation id="6027032947578871493">Okänd produkt (<ph name="PRODUCT_ID" />) från <ph name="VENDOR_NAME" /> (serienummer <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> från leverantören <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Det går inte att packa upp tillägget. Ett tillägg kan bara packas upp säkert om det finns en sökväg till din profilkatalog som inte innehåller en symbollänk. Det finns ingen sådan sökväg för din profil.</translation>
+<translation id="6322279351188361895">Det gick inte att läsa den privata nyckeln.</translation>
+<translation id="6391538222494443604">Indatakatalog måste finnas.</translation>
 <translation id="641087317769093025">Det gick inte att packa upp tillägget</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> begär åtkomst till en eller flera av dina enheter:</translation>
 <translation id="657064425229075395">Det gick inte att läsa in bakgrundsskriptet <ph name="BACKGROUND_SCRIPT" />.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Det gick inte att namnge nedladdningen <ph name="ATTEMPTED_FILENAME" /> eftersom ett annat tillägg (<ph name="EXTENSION_NAME" />) valde ett annat filnamn <ph name="ACTUAL_FILENAME" />.</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> från <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Det här tillägget kunde inte uppge några användaruppgifter till en nätverksbegäran eftersom ett annat tillägg  (<ph name="EXTENSION_NAME" />) uppgav andra användaruppgifter.</translation>
-<translation id="8602184400052594090">Manifestfilen saknas eller är oläslig.</translation>
 <translation id="8636666366616799973">Paketet är ogiltigt. Information: <ph name="ERROR_MESSAGE" /></translation>
 <translation id="8670869118777164560">Det gick inte att omdirigera nätverksbegäran till <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> eftersom ett annat tillägg (<ph name="EXTENSION_NAME" />) omdirigerade det till <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Uppackare för tillägg</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> begär åtkomst till en av dina enheter:</translation>
 <translation id="8825366169884721447">Det här tillägget kunde inte ändra begäranderubriken <ph name="HEADER_NAME" /> för ett nätverk eftersom det uppstod en konflikt mellan ändringen och ett annat tillägg (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Det finns redan en privat nyckel för det angivna tillägget. Återanvänd den nyckeln eller ta bort den först.</translation>
+<translation id="907841381057066561">Det gick inte att skapa en tillfällig ZIP-fil under packningen.</translation>
 <translation id="9111791539553342076">Det här tillägget kunde inte ändra svarsrubriken <ph name="HEADER_NAME" /> för en nätverksbegäran eftersom det uppstod en konflikt mellan ändringen och ett annat tillägg (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Ogiltig privat nyckel.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_sw.xtb b/extensions/strings/extensions_strings_sw.xtb
index 14b274c0..d8b76f9 100644
--- a/extensions/strings/extensions_strings_sw.xtb
+++ b/extensions/strings/extensions_strings_sw.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="sw">
 <translation id="1135328998467923690">Furushi ni batili: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Kamera ya nyuma</translation>
+<translation id="1196338895211115272">Uhamishaji wa ufunguo binafsi haukufaulu.</translation>
 <translation id="1256619696651732561">Kichanganuzi cha Faili za Maelezo ya Kiendelezi</translation>
+<translation id="1420684932347524586">Lo! Imeshindwa kuzindua ufunguo binafsi wa RSA usio na utaratibu.</translation>
 <translation id="1445572445564823378">Kiendelezi hiki kinapunguza kasi ya <ph name="PRODUCT_NAME" />. Unafa kukilemaza ili kurejesha upya utendaji wa <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL haihimiliwi.</translation>
 <translation id="149347756975725155">Aikoni '<ph name="ICON" />' ya kiendelezi haikuweza kupakiwa.</translation>
 <translation id="1803557475693955505">Ukurasa wa mandhari '<ph name="BACKGROUND_PAGE" />' haukuweza kupakiwa.</translation>
 <translation id="2159915644201199628">Isingeweza kusimbua picha: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Usanidi wa eneo umetumiwa, lakini eneo_chaguo-msingi halikubainishwa katika ratiba</translation>
+<translation id="2576842806987913196">Tayari kuna faili ya CRX iliyo na jina hili.</translation>
 <translation id="2753617847762399167">Njia haramu (kabisa au kiasi na '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Kiendelezi hiki kimeshindwa kurekebisha ombi la mtandao kwa sababu ya ukizano wa urekebishaji na kirefusho kingine.</translation>
-<translation id="2857834222104759979">Faili ya ratiba sio halali.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (kitambulisho cha kiendelezi cha "<ph name="EXTENSION_ID" />") kimezuiwa na msimamizi. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Isingeweza kusakinisha furushi: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Bidhaa isiyojulikana <ph name="PRODUCT_ID" /> kutoka kwa mchuuzi <ph name="VENDOR_ID" /> (nambari tambulishi <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Imeshindwa kubadilisha faili ya crx. Angalia kuona ikiwa faili inatumika.</translation>
 <translation id="3163201441334626963">Bidhaa isiyojulikana <ph name="PRODUCT_ID" /> kutoka kwa mchuuzi <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Haiwezi kufungua kiendelezi. Ili kufungua kiendelezi kwa usalama, sharti kuwe na kijia katika saraka ya maelzeo yako mafupi ambacho kinaanza kwa sarufi ya kiendeshi na hakina makutano, sehemu ya kuangika, au kiungo cha mfumo. Hakuna vijia kama hivyo vinavyopo kwa maelezo yako mafupi.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (nambari tambulishi <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> kutoka kwa mchuuzi <ph name="VENDOR_ID" /> (nambari tambulishi <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Thamani ya kuingizwa kwa ufunguo binafsi sharti iwe njia halali.</translation>
 <translation id="388442998277590542">Isingeweza kupakia ukurasa wa chaguo <ph name="OPTIONS_PAGE" /> '.</translation>
+<translation id="3984413272403535372">Hitilafu katika kuweka sahihi kwenye kiendelezi.</translation>
 <translation id="4115165561519362854">Msimamizi wa mashine hii anahitaji <ph name="EXTENSION_NAME" /> ili kuwa na toleo la chini zaidi la <ph name="EXTENSION_VERSION" />. Haiwezi kuwashwa mpaka isasishwe hadi toleo hilo (au juu zaidi).</translation>
 <translation id="4233778200880751280">Haikuweza kupakia ukurasa wa kuhusu '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Imeshindwa kutoa ufunguo binafsi.</translation>
 <translation id="4811956658694082538">Haikuweza kusakinisha kifurushi kwa sababu mchakato wa utekelezaji umeacha kufanya kazi. Jaribu kuzima na kuwasha Chrome na ujaribu tena.</translation>
+<translation id="4988792151665380515">Imeshindwa kuhamisha ufunguo wa umma.</translation>
 <translation id="5026754133087629784">Mwonekano wa wavuti: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Haiwezi kupata kijia kamili katika saraka hadi kifurushi.</translation>
 <translation id="5356315618422219272">Mwonekano wa programu: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Madirisha yaliyo na umbo hayatumiki.</translation>
 <translation id="5456409301717116725">Kiendelezi hiki kinajumuisha faili muhimu '<ph name="KEY_PATH" />'. Huenda hutaki kufanya hivyo.</translation>
+<translation id="5486326529110362464">Thamani ya uingizaji ya ufunguo binafsi sharti iwepo.</translation>
 <translation id="5627523580512561598">kiendelezi <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Msimamizi wa mashine hii anahitaji <ph name="EXTENSION_NAME" /> kusakinishwa. Hakiwezi kuondolewa.</translation>
 <translation id="6027032947578871493">Bidhaa isiyojulikana <ph name="PRODUCT_ID" /> kutoka kwa <ph name="VENDOR_NAME" /> (nambari tambulishi <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> kutoa kwa mchuuzi <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Haiwezi kufungua kiendelezi. Ili kufungua kiendelezi kwa usalama, sharti kuwe na kijia katika saraka yako ya maelezo mafupi ambacho hakina kiungo cha mfumo. Hakuna vijia kama hivyo vilivyopo kwa maelezo yako mafupi.</translation>
+<translation id="6322279351188361895">Imeshindwa kusoma ufunguo wa kibinafsi</translation>
+<translation id="6391538222494443604">Lazima kuwe na saraka ya uingizaji.</translation>
 <translation id="641087317769093025">Isingeweza kufungua kiendelezi</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" inaomba idhini ya kufikia kifaa chako kimoja au vingi:</translation>
 <translation id="657064425229075395">Haikuweza kupakia hati ya mandharinyuma '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Kiendelezi hiki kimeshindwa kukipa kipakuliwa jina "<ph name="ATTEMPTED_FILENAME" />" kwa sababu kipakuliwa kingine (<ph name="EXTENSION_NAME" />) kimechagua jina tofauti la faili "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> kutoka <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Kiendelezi hiki kimeshindwa kutoa vitambulisho kwenye ombi la mtandao kwa sababu kiendelezi kingine (<ph name="EXTENSION_NAME" />) kimetoa vitambulisho tofauti.</translation>
-<translation id="8602184400052594090">Faili ya ratiba haipatikani au haisomeki.</translation>
 <translation id="8636666366616799973">Furushi ni batili. Maelezo: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Kiendelezi kimeshindwa kuelekeza upya ombi la mtandao kwenye <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> kwa sababu kiendelezi kingine (<ph name="EXTENSION_NAME" />) kimeelekeza upya kwenye <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Kipakuaji cha Viendelezi</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" inaomba idhini ya kufikia mojawapo ya vifaa vyako:</translation>
 <translation id="8825366169884721447">Kiendelezi hiki kimeshindwa kuboresha kichwa cha ombi "<ph name="HEADER_NAME" />" cha ombi la mtandao kwa sababu uboreshaji umekinzana na kiendelezi kingine (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Ufunguo binafsi wa kiendelezi kilichobainishwa tayari upo. Tumia ufunguo huo tena au uufute kwanza.</translation>
+<translation id="907841381057066561">Imeshindwa kuunda faili ya muda ya zip wakati wa kufungasha.</translation>
 <translation id="9111791539553342076">Kiendelezi hiki kimeshindwa kuboresha kichwa cha jibu "<ph name="HEADER_NAME" />" cha ombi la mtandao kwa sababu uboreshaji umekinzana na kiendelezi kingine (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Ufunguo binafsi sio halali.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ta.xtb b/extensions/strings/extensions_strings_ta.xtb
index 7d579be..a29aa05 100644
--- a/extensions/strings/extensions_strings_ta.xtb
+++ b/extensions/strings/extensions_strings_ta.xtb
@@ -3,7 +3,9 @@
 <translationbundle lang="ta">
 <translation id="1135328998467923690">தொகுப்பு செல்லாதது: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">பின்புறக் கேமரா</translation>
+<translation id="1196338895211115272">தனிப்பட்ட விசையை ஏற்றுமதி செய்வதில் தோல்வியடைந்தது.</translation>
 <translation id="1256619696651732561">எக்ஸ்டன்ஷன் மேனிஃபெஸ்ட் பார்சர்</translation>
+<translation id="1420684932347524586">அச்சோ! RSA தனிப்பட்ட விசையை உருவாக்குவதில் தோல்வியடைந்தது.</translation>
 <translation id="1445572445564823378">இந்த நீட்டிப்பு, <ph name="PRODUCT_NAME" /> ஐ மந்தமாக்குகிறது. <ph name="PRODUCT_NAME" /> இன்
 செயல்திறனை மீட்டமைக்க, இதை நீங்கள் முடக்க வேண்டும்.</translation>
 <translation id="1468038450257740950">WebGL ஆனது ஆதரவளிக்கப்படவில்லை.</translation>
@@ -11,30 +13,39 @@
 <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' என்ற பின்புலப் பக்கத்தை ஏற்ற முடியவில்லை.</translation>
 <translation id="2159915644201199628">இந்தப் படத்தை குறிநீக்க முடியவில்லை: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">மொழிப்பெயர்ப்பு பயன்படுத்தப்பட்டது, ஆனால் default_locale அமைப்பில் குறிப்பிடப்படவில்லை.  </translation>
+<translation id="2576842806987913196">இந்தப் பெயருடன் ஏற்கனவே ஒரு CRX கோப்பு உள்ளது.</translation>
 <translation id="2753617847762399167">முறையற்ற பாதை (சரியான அல்லது இதனுடன் தொடர்புடையவை '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">மாற்றம் மற்றொரு நீட்டிப்புடன் முரண்பட்டுள்ளதால், நெட்வொர்க் கோரிக்கையை மாற்றுவதற்கான, இந்தக் கோரிக்கை தோல்வி அடைந்தது.</translation>
-<translation id="2857834222104759979">அமைப்புக் கோப்பு  செல்லுபடியாகாதது.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (நீட்டிப்பு ஐடி "<ph name="EXTENSION_ID" />") எனும் நீட்டிப்பை நிர்வாகி தடுத்துள்ளார். <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">இந்த தொகுப்பை நிறுவமுடியாது: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> விற்பனையாளர் அனுப்பிய <ph name="PRODUCT_ID" /> (சீரியல் எண் <ph name="SERIAL_NUMBER" />) தயாரிப்பை அறிய முடியவில்லை</translation>
+<translation id="3144135466825225871">crx கோப்பை இடமாற்றுவதில் தோல்வி. கோப்பு பயன்பாட்டில் உள்ளதா என்று பார்க்கவும்.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> அனுப்பிய <ph name="PRODUCT_ID" /> தயாரிப்பை அறிய முடியவில்லை.</translation>
 <translation id="3369521687965833290">நீட்டிப்பைத் திறக்க முடியவில்லை. பாதுகாப்பாக நீட்டிப்பைத் திறக்க வேண்டுமானால், உங்கள் சுயவிவர கோப்பகத்திற்கான பாதை தரப்பட வேண்டும். சுயவிவர கோப்பகமானது கோப்பக எழுத்துடன் தொடங்க வேண்டும் மற்றும் சந்திப்பு, மவுண்ட் பாயின்ட் அல்லது சிம்லிங்கைக் கொண்டிருக்கக் கூடாது. உங்கள் சுயவிவரத்தில் அவ்வாறான பாதைகள் எதுவுமில்லை.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (சீரியல் எண் <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">விற்பனையாளர் <ph name="VENDOR_ID" /> அனுப்பிய <ph name="PRODUCT_NAME" /> (சீரியல் எண் <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">தனிப்பட்ட விசைக்கான உள்ளீட்டு மதிப்பானது, செல்லுபடியாகும் பாதையாக இருக்க வேண்டும்.</translation>
 <translation id="388442998277590542">'<ph name="OPTIONS_PAGE" />' என்ற விருப்பங்கள் பக்கத்தை ஏற்ற முடியவில்லை.</translation>
+<translation id="3984413272403535372">நீட்டிப்பிற்கு உள்நுழைவதில் பிழை.</translation>
 <translation id="4115165561519362854">இந்தச் சாதனத்தின் நிர்வாகிக்கு <ph name="EXTENSION_NAME" /> இன் குறைந்தபட்ச பதிப்பான <ph name="EXTENSION_VERSION" /> தேவை. இது அந்தப் பதிப்பிற்குப் (அல்லது சமீபத்திய பதிப்பு) புதுப்பிக்கப்படும் வரை இயக்கமுடியாது.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' பக்கத்தை ஏற்ற முடியவில்லை.</translation>
+<translation id="471800408830181311">தனிப்பட்ட விசையை வெளியனுப்புவதில் தோல்வியடைந்தது.</translation>
 <translation id="4811956658694082538">பயனமைப்பு செயல்முறைச் சிதைவுக்குட்பட்டதால், தொகுப்பை நிறுவ முடியவில்லை. Chromeஐ மீண்டும் துவங்கி, முயற்சிக்கவும்.</translation>
+<translation id="4988792151665380515">பொது விசையை ஏற்றுமதி செய்வதில் தோல்வியடைந்தது.</translation>
 <translation id="5026754133087629784">இணையப்பார்வை: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">கோப்பகத்திலிருந்து தொகுப்பிற்கான அசல் பாதையைக் கண்டறிய முடியவில்லை.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">வடிவமாக்கப்பட்ட சாளரங்கள் ஆதரிக்கப்படாது.</translation>
 <translation id="5456409301717116725">இந்த நீட்டிப்பு விசை கோப்பு '<ph name="KEY_PATH" />' ஐக் கொண்டுள்ளது. நீங்கள் அதை செய்ய விரும்பாமல் இருக்கலாம்.</translation>
+<translation id="5486326529110362464">தனிப்பட்ட விசைக்கான உள்ளீட்டு மதிப்பு அவசியம் இருக்க வேண்டும்.</translation>
 <translation id="5627523580512561598"><ph name="EXTENSION_NAME" /> நீட்டிப்பு</translation>
 <translation id="5960890139610307736">நீட்டிப்புக்காட்சி: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">இந்தக் கணினியின் நிர்வாகிக்கு <ph name="EXTENSION_NAME" /> நிறுவப்பட வேண்டும். இதை நிறுவல் நீக்க முடியாது.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> அனுப்பிய <ph name="PRODUCT_ID" /> (சீரியல் எண் <ph name="SERIAL_NUMBER" />) தயாரிப்பை அறிய முடியவில்லை</translation>
 <translation id="6068932090455285721">விற்பனையாளர் <ph name="VENDOR_ID" /> அனுப்பிய <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">நீட்டிப்பைத் திறக்க முடியவில்லை. பாதுகாப்பாக நீட்டிப்பைத் திறக்க வேண்டுமானால், உங்கள் சுயவிவரக் கோப்பகத்திற்கான பாதை தரப்பட வேண்டும். சுயவிவரக் கோப்பகமானது கோப்பக எழுத்துடன் தொடங்க வேண்டும் மற்றும் சிம்லிங்கைக் கொண்டிருக்கக் கூடாது. உங்கள் சுயவிவரத்தில் அவ்வாறான பாதைகள் எதுவுமில்லை.</translation>
+<translation id="6322279351188361895">தனிப்பட்ட விசையைப் படிப்பதில் தோல்வியடைந்தது.</translation>
+<translation id="6391538222494443604">உள்ளீட்டுக் கோப்பகம் இருப்பது அவசியம்.</translation>
 <translation id="641087317769093025">நீட்டிப்பின் ஜிப்பை திறக்க முடியவில்லை</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" பயன்பாடு உங்கள் சாதனங்களில் ஒன்று அல்லது அதற்கு மேற்பட்ட சாதனங்களின் அணுகலைக் கோருகிறது:</translation>
 <translation id="657064425229075395">'<ph name="BACKGROUND_SCRIPT" />' என்ற பின்புல ஸ்கிரிப்டை ஏற்ற முடியவில்லை.</translation>
@@ -49,11 +60,13 @@
 <translation id="8047248493720652249">இந்த நீட்டிப்பு, பதிவிறக்கத்திற்கு "<ph name="ATTEMPTED_FILENAME" />" என்று பெயரிடுவதில் தோல்வி, ஏனெனில் மற்றொரு நீட்டிப்பு (<ph name="EXTENSION_NAME" />) வேறொரு கோப்புப்பெயரை "<ph name="ACTUAL_FILENAME" />" நிர்ணயித்து விட்டது.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> இன் <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">(<ph name="EXTENSION_NAME" />) என்ற வேறொரு நீட்டிப்பு வேறுபட்ட நற்சான்றிதழ்களை வழங்கியதன் காரணமாக பிணைய கோரிக்கைக்கு நற்சான்றிதழ்களை வழங்குவதில் இந்த நீட்டிப்பு தோல்வியடைந்தது.</translation>
-<translation id="8602184400052594090">அமைப்புக் கோப்பைக் காணவில்லை அல்லது படிக்கமுடியாததாக இருக்கிறது.</translation>
 <translation id="8636666366616799973">தொகுப்பு செல்லாதது. விவரங்கள்: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">(<ph name="EXTENSION_NAME" />) என்ற வேறொரு நீட்டிப்பு <ph name="ACTUAL_REDIRECT_DESTINATION" /> க்குத் திசைத்திருப்பப்பட்டதால் பிணைய கோரிக்கையை <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> க்கு திசைத்திருப்புவதில் இந்த நீட்டிப்பு தோல்வியடைந்தது.</translation>
 <translation id="8712265948125780616">எக்ஸ்டன்ஷன் அன்பேக்கர்</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" பயன்பாடு உங்கள் சாதனங்களில் ஒன்றின் அணுகலைக் கோருகிறது:</translation>
 <translation id="8825366169884721447">(<ph name="EXTENSION_NAME" />) என்ற வேறொரு நீட்டிப்புடன் ஏற்பட்ட திருத்த முரண்பாட்டால் "<ph name="HEADER_NAME" />" கோரிக்கை மேற்தலைப்பைத் திருத்துவதில் இந்த நீட்டிப்பு தோல்வியடைந்தது.</translation>
+<translation id="8885905466771744233">குறிப்பிட்ட நீட்டிப்பிற்கான தனிப்பட்ட விசை ஏற்கனவே உள்ளது. அந்த விசையை மீண்டும் பயன்படுத்துக அல்லது அதை முதலில் நீக்குக.</translation>
+<translation id="907841381057066561">தொகுப்பாக்கலின்போது தற்காலிக ஜிப் கோப்பை உருவாக்குவதில் தோல்வியடைந்தது.</translation>
 <translation id="9111791539553342076">(<ph name="EXTENSION_NAME" />) என்ற வேறொரு நீட்டிப்புடன் ஏற்பட்ட திருத்த முரண்பாட்டால் "<ph name="HEADER_NAME" />" என்ற பிணைய கோரிக்கையின் பதில் மேற்தலைப்பைத் திருத்துவதில் இந்த நீட்டிப்பு தோல்வியடைந்தது.</translation>
+<translation id="941543339607623937">செல்லாத தனிப்பட்ட விசை.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_te.xtb b/extensions/strings/extensions_strings_te.xtb
index 89b22304..9205a81 100644
--- a/extensions/strings/extensions_strings_te.xtb
+++ b/extensions/strings/extensions_strings_te.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="te">
 <translation id="1135328998467923690">ప్యాకేజీ చెల్లనిది: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">పర్యావరణం వైపుగా</translation>
+<translation id="1196338895211115272">ప్రైవేట్ కీని ఎగుమతి చేయడానికి విఫలమైంది.</translation>
 <translation id="1256619696651732561">ఎక్స్‌టెన్షన్ మానిఫెస్ట్ పార్సర్</translation>
+<translation id="1420684932347524586">అరె! RSA ప్రైవేట్ కీని రాండమ్‌గా రూపొందించడంలో విఫలమైంది.</translation>
 <translation id="1445572445564823378">ఈ పొడిగింపు <ph name="PRODUCT_NAME" />ను మందగింప చేస్తోంది. <ph name="PRODUCT_NAME" /> యొక్క పనితీరును పునరుద్ధరించడానికి మీరు దీన్ని ఆపివేయాలి.</translation>
 <translation id="1468038450257740950">WebGLకి మద్దతు లేదు.</translation>
 <translation id="149347756975725155">'<ph name="ICON" />' పొడిగింపు చిహ్నాన్ని లోడ్ చేయలేకపోయింది.</translation>
 <translation id="1803557475693955505">నేపథ్య పేజీ '<ph name="BACKGROUND_PAGE" />' లోడ్ చేయబడలేదు.</translation>
 <translation id="2159915644201199628">ఈ చిత్రం డీకోడ్ చేయబడదు: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">స్థానీకరణ ఉపయోగించబడింది, కానీ మానిఫెస్ట్ లో default_locale పేర్కొనబడలేదు.</translation>
+<translation id="2576842806987913196">ఈ పేరుతో ఇప్పటికే CRX ఫైల్ ఉంది.</translation>
 <translation id="2753617847762399167">చట్టవిరుద్ధ పథం (ఖచ్చితంగా లేదా '..'కు సంబంధిత): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">నెట్‌వర్క్ అభ్యర్థనను సవరించడంలో ఈ పొడిగింపు విఫలమైంది ఎందుకంటే సవరణ మరొక పొడిగింపుతో వైరుధ్యంలో ఉంది.</translation>
-<translation id="2857834222104759979">వివరాల ఫైల్ చెల్లనిది.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (పొడిగింపు ID "<ph name="EXTENSION_ID" />") నిర్వాహకుల ద్వారా బ్లాక్ చేయబడింది. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">ప్యాకేజీని వ్యవస్థాపించడం సాధ్యం కాలేదు: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> విక్రేత నుండి తెలియని ఉత్పత్తి <ph name="PRODUCT_ID" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx ఫైల్ భర్తీ విఫలమైంది. ఫైల్ ఉపయోగంలో ఉన్నదా అని తనిఖీ చేయండి.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> నుండి <ph name="PRODUCT_ID" /> తెలియని ఉత్పత్తి</translation>
 <translation id="3369521687965833290">ఎక్స్‌టెన్‌షన్ అన్‌ప్యాక్ చేయబడదు.  ఒక ఎక్స్‌టెన్‌షన్‌‌ను సురక్షితంగా అన్‌ప్యాక్ చేయడానికి, మీ ప్రొఫైల్ డైరెక్టరీకి ఒక డ్రైవ్ అక్షరంతో ప్రారంభమయ్యే మరియు జంక్షన్, మౌంట్ పాయింట్ లేదా సింలింక్ ఉండని గమ్యమార్గం తప్పనిసరిగా ఉండాలి.  మీ ప్రొఫైల్‌కు అటువంటి గమ్యమార్గం లేదు.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> విక్రేత నుండి <ph name="PRODUCT_NAME" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ప్రైవేట్ కీ కోసం ఇన్‌పుట్ విలువ తప్పనిసరిగా చెల్లుబాటు అయ్యే మార్గంగా ఉండాలి.</translation>
 <translation id="388442998277590542">ఎంపికల పేజీ '<ph name="OPTIONS_PAGE" />'ని లోడ్ చెయ్యడం సాధ్యం కాలేదు.</translation>
+<translation id="3984413272403535372">పొడిగింపుకు సంతకం చేసేటప్పుడు లోపం.</translation>
 <translation id="4115165561519362854">ఈ మెషీన్ నిర్వాహకుడికి <ph name="EXTENSION_NAME" /> కనీస సంస్కరణ అయిన <ph name="EXTENSION_VERSION" /> ఉండటం అవసరం. ఇది ఆ సంస్కరణకు (లేదా తదుపరి దానికి) నవీకరించే వరకు ప్రారంభించబడదు.</translation>
 <translation id="4233778200880751280">'<ph name="ABOUT_PAGE" />' పరిచయ పేజీని లోడ్ చేయడం సాధ్యపడలేదు.</translation>
+<translation id="471800408830181311">ప్రైవేట్ కీని అవుట్‌పుట్ చేయడంలో విఫలమైంది.</translation>
 <translation id="4811956658694082538">వినియోగ ప్రాసెస్ క్రాష్ అయినందున ప్యాకేజీని ఇన్‌స్టాల్ చేయలేకపోయింది. Chromeను పునఃప్రారంభించి, మళ్లీ ప్రయత్నించండి.</translation>
+<translation id="4988792151665380515">పబ్లిక్ కీని ఎగుమతి చేయడానికి విఫలమైంది.</translation>
 <translation id="5026754133087629784">వెబ్ వీక్షణ: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">పాక్ చెయ్యడానికి డైరెక్టరీకు సరైన మార్గంను కనుగొనలేకపోయాము.</translation>
 <translation id="5356315618422219272">అనువర్తన వీక్షణ: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">ఆకృతీకరించిన విండోలకు మద్దతు లేదు.</translation>
 <translation id="5456409301717116725">ఈ పొడిగింపు '<ph name="KEY_PATH" />' కీ ఫైల్‌ను కలిగి ఉంది. బహుశా మీరు దాన్ని చేయకూడదు.</translation>
+<translation id="5486326529110362464">ప్రైవేట్ కీ కోసం ఇన్‌పుట్ విలువ తప్పనిసరిగా ఉండాలి.</translation>
 <translation id="5627523580512561598">పొడిగింపు <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">పొడిగింపు వీక్షణ: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692"><ph name="EXTENSION_NAME" />ని ఇన్‌స్టాల్ చేయడం ఈ మెషీన్ నిర్వాహకుడికి అవసరం. ఇది అన్ఇన్‌స్టాల్ చేయబడదు.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> నుండి తెలియని ఉత్పత్తి <ph name="PRODUCT_ID" /> (క్రమ సంఖ్య <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> విక్రేత నుండి <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">ఎక్స్‌టెన్‌షన్‌ అన్‌ప్యాక్ చేయబడదు.  ఒక ఎక్స్‌టెన్‌షన్‌‌ను సురక్షితంగా అన్‌ప్యాక్ చేయడానికి, మీ ప్రొఫైల్ డైరెక్టరీకి సింలింక్ ఉండని గమ్యమార్గం తప్పనిసరిగా ఉండాలి.  మీ ప్రొఫైల్‌కు అటువంటి గమ్యమార్గం లేదు.</translation>
+<translation id="6322279351188361895">ప్రైవేట్ కీని చదవడంలో విఫలమైంది.</translation>
+<translation id="6391538222494443604">ఇన్‌పుట్ డైరెక్టరీ తప్పనిసరిగా ఉనికిలో ఉండాలి.</translation>
 <translation id="641087317769093025">పొడిగింపు అన్‌జిప్ చేయబడదు</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" మీ ఒకటి లేదా అంతకంటే ఎక్కువ పరికరాలకు ప్రాప్యతను అభ్యర్థిస్తోంది:</translation>
 <translation id="657064425229075395">నేపథ్య స్క్రిప్ట్ '<ph name="BACKGROUND_SCRIPT" />'ను లోడ్ చేయడం సాధ్యం కాలేదు.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">ఈ పొడిగింపు డౌన్‌లోడ్ యొక్క పేరును "<ph name="ATTEMPTED_FILENAME" />"గా పేర్కొనడంలో విఫలమైంది ఎందుకంటే మరో పొడిగింపు (<ph name="EXTENSION_NAME" />) "<ph name="ACTUAL_FILENAME" />" అనే వేరే ఫైల్ పేరుని నిశ్చయించింది.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> నుండి <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">వేరొక పొడిగింపు (<ph name="EXTENSION_NAME" />) వేరే ఆధారాలను అందించినందున ఈ పొడిగింపు నెట్‌వర్క్ అభ్యర్థనకు ఆధారాలను అందించడంలో విఫలమైంది.</translation>
-<translation id="8602184400052594090">మానిఫెస్ట్ ఫైల్ తప్పిపోయింది లేదా చదవలేనిది.</translation>
 <translation id="8636666366616799973">ప్యాకేజీ చెల్లనిది. వివరాలు: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">వేరొక పొడిగింపు (<ph name="EXTENSION_NAME" />) నెట్‌వర్క్ అభ్యర్థనను <ph name="ACTUAL_REDIRECT_DESTINATION" />కు దారి మళ్లించినందున ఈ పొడిగింపు దీన్ని <ph name="ATTEMPTED_REDIRECT_DESTINATION" />కు దారి మళ్లించడంలో విఫలమైంది.</translation>
 <translation id="8712265948125780616">ఎక్స్‌టెన్షన్ అన్‌ప్యాకర్</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" మీ పరికరాల్లో ఒకదానికి ప్రాప్యతను అభ్యర్థిస్తోంది:</translation>
 <translation id="8825366169884721447">సవరణ వేరొక పొడిగింపు (<ph name="EXTENSION_NAME" />)కు వైరుధ్యంగా ఉన్నందున ఈ పొడిగింపు నెట్‌వర్క్ అభ్యర్థన యొక్క "<ph name="HEADER_NAME" />" అభ్యర్థన శీర్షికను సవరించడంలో విఫలమైంది.</translation>
+<translation id="8885905466771744233">నిర్థారించిన పొడిగింపుకు ఇప్పటికే ప్రైవేట్ కీ ఉంది. ఆ కీని మళ్ళీ ఉపయోగించండి లేదా దాన్ని మొదట తొలగించండి.</translation>
+<translation id="907841381057066561">ప్యాకేజింగ్ సమయంలో తాత్కాలిక జిప్ ఫైల్‌ను సృష్టించడంలో విఫలమైంది.</translation>
 <translation id="9111791539553342076">సవరణ వేరొక పొడిగింపు (<ph name="EXTENSION_NAME" />)కు వైరుధ్యంగా ఉన్నందున ఈ పొడిగింపు నెట్‌వర్క్ అభ్యర్థన యొక్క "<ph name="HEADER_NAME" />" ప్రతిస్పందన శీర్షికను సవరించడంలో విఫలమైంది.</translation>
+<translation id="941543339607623937">చెల్లని ప్రైవేట్ కీ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_th.xtb b/extensions/strings/extensions_strings_th.xtb
index b5e774b..0bced0b 100644
--- a/extensions/strings/extensions_strings_th.xtb
+++ b/extensions/strings/extensions_strings_th.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="th">
 <translation id="1135328998467923690">แพ็กเกจไม่ถูกต้อง: "<ph name="ERROR_CODE" />"</translation>
 <translation id="1140871961407805696">กล้องหลัง</translation>
+<translation id="1196338895211115272">ไม่สามารถส่งออกคีย์ส่วนตัว</translation>
 <translation id="1256619696651732561">โปรแกรมแยกวิเคราะห์ไฟล์ Manifest ส่วนขยาย</translation>
+<translation id="1420684932347524586">อ้าว! ไม่สามารถสร้างคีย์ส่วนตัว RSA แบบสุ่มได้</translation>
 <translation id="1445572445564823378">ส่วนขยายนี้จะทำให้ <ph name="PRODUCT_NAME" /> ทำงานช้าลง คุณควรปิดใช้งานส่วนขยายเพื่อให้ประสิทธิภาพการทำงานของ <ph name="PRODUCT_NAME" /> กลับมาเป็นปกติ</translation>
 <translation id="1468038450257740950">WebGL ไม่ไ้ด้รับการสนับสนุน</translation>
 <translation id="149347756975725155">ไม่สามารถโหลดไอคอนส่วนขยาย "<ph name="ICON" />"</translation>
 <translation id="1803557475693955505">ไม่สามารถโหลดหน้าพื้นหลัง "<ph name="BACKGROUND_PAGE" />"</translation>
 <translation id="2159915644201199628">ไม่สามารถถอดรหัสภาพ: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">ใช้การแปลภาษาท้องถิ่นแล้ว แต่ไม่ได้ระบุ default_locale ในมานิเฟสต์</translation>
+<translation id="2576842806987913196">มีไฟล์ CRX ที่มีชื่อนี้อยู่แล้ว</translation>
 <translation id="2753617847762399167">เส้นทางที่ไม่ถูกต้อง (โดยชัดแจ้งหรือเกี่ยวข้องกับ '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">ส่วนขยายนี้ไม่สามารถปรับเปลี่ยนคำขอเครือข่ายได้เนื่องจากการปรับเปลี่ยนมีความขัดแย้งกับส่วนขยายอื่น</translation>
-<translation id="2857834222104759979">ไฟล์มานิเฟสต์ไม่ถูกต้อง</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (รหัสส่วนขยาย "<ph name="EXTENSION_ID" />") ถูกบล็อกโดยผู้ดูแลระบบ <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">ไม่สามารถติดตั้งแพ็กเกจ: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">ผลิตภัณฑ์ที่ไม่รู้จัก <ph name="PRODUCT_ID" /> จากผู้ขาย <ph name="VENDOR_ID" /> (หมายเลขซีเรียล <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">ไม่สามารถแทนที่ไฟล์ CRX ได้ โปรดตรวจสอบดูว่าไฟล์มีการใช้งานอยู่หรือไม่</translation>
 <translation id="3163201441334626963">ผลิตภัณฑ์ที่ไม่รู้จัก <ph name="PRODUCT_ID" /> จากผู้ขาย <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">ไม่สามารถแยกส่วนขยายได้ หากต้องการแยกส่วนขยายอย่างปลอดภัย คุณต้องมีเส้นทางไปยังไดเรกทอรีโปรไฟล์ของคุณซึ่งขึ้นต้นด้วยตัวอักษรของไดรฟ์และจะต้องไม่มีจังก์ชัน จุดต่อเชื่อม หรือลิงก์สัญลักษณ์ ไม่มีเส้นทางในรูปแบบดังกล่าวสำหรับโปรไฟล์ของคุณ</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (หมายเลขซีเรียล <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> จากผู้ขาย <ph name="VENDOR_ID" /> (หมายเลขซีเรียล <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">ค่าที่ป้อนสำหรับคีย์ส่วนตัวจะต้องเป็นเส้นทางที่ถูกต้อง</translation>
 <translation id="388442998277590542">ไม่สามารถโหลดหน้าตัวเลือก "<ph name="OPTIONS_PAGE" />"</translation>
+<translation id="3984413272403535372">พบข้อผิดพลาดขณะเซ็นชื่อบนส่วนขยาย</translation>
 <translation id="4115165561519362854">ผู้ดูแลระบบของเครื่องนี้ต้องการ <ph name="EXTENSION_NAME" /> เวอร์ชัน <ph name="EXTENSION_VERSION" /> ซึ่งเป็นเวอร์ชันขั้นต่ำ จะไม่สามารถเปิดใช้ได้จนกว่าจะมีการอัปเดตส่วนขยายนี้เป็นเวอร์ชันดังกล่าว (หรือสูงกว่า)</translation>
 <translation id="4233778200880751280">ไม่สามารถโหลดหน้าเกี่ยวกับ "<ph name="ABOUT_PAGE" />"</translation>
+<translation id="471800408830181311">ไม่สามารถส่งค่าคีย์ส่วนตัว</translation>
 <translation id="4811956658694082538">ไม่สามารถติดตั้งแพ็กเกจเนื่องจากกระบวนการอรรถประโยชน์ขัดข้อง ลองรีสตาร์ท Chrome และลองใหม่อีกครั้ง</translation>
+<translation id="4988792151665380515">ไม่สามารถส่งออกคีย์สาธารณะ</translation>
 <translation id="5026754133087629784">มุมมองเว็บ: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">ไม่พบเส้นทางสัมบูรณ์ไปยังไดเรกทอรีนี้เพื่อทำการแพค</translation>
 <translation id="5356315618422219272">การดูแอป: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">หน้าต่างที่สร้างขึ้นไม่ได้รับการสนับสนุน</translation>
 <translation id="5456409301717116725">ส่วนขยายนี้มีไฟล์คีย์ "<ph name="KEY_PATH" />" คุณอาจจะไม่ต้องการดำเนินการนั้น</translation>
+<translation id="5486326529110362464">ค่าที่ป้อนสำหรับคีย์ส่วนตัวต้องมีอยู่จริง</translation>
 <translation id="5627523580512561598">ส่วนขยาย <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">ผู้ดูแลระบบของอุปกรณ์เครื่องนี้กำหนดให้ติดตั้ง <ph name="EXTENSION_NAME" /> ไม่สามารถถอนการติดตั้งส่วนขยายนี้ได้</translation>
 <translation id="6027032947578871493">ผลิตภัณฑ์ที่ไม่รู้จัก <ph name="PRODUCT_ID" /> จาก <ph name="VENDOR_NAME" /> (หมายเลขซีเรียล <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> จากผู้ขาย <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">ไม่สามารถแยกส่วนขยาย หากต้องการแยกส่วนขยายอย่างปลอดภัย คุณต้องมีเส้นทางไปยังไดเรกทอรีโปรไฟล์ของคุณซึ่งไม่มีลิงก์สัญลักษณ์ ไม่มีเส้นทางในรูปแบบดังกล่าวอยู่สำหรับโปรไฟล์ของคุณ</translation>
+<translation id="6322279351188361895">ไม่สามารถอ่านคีย์ส่วนตัว</translation>
+<translation id="6391538222494443604">ไดเรกทอรีที่ป้อนต้องมีอยู่จริง</translation>
 <translation id="641087317769093025">ไม่สามารถแตกไฟล์ซิปส่วนขยาย</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" ขอสิทธิ์ในการเข้าถึงอุปกรณ์ของคุณอย่างน้อย 1 เครื่อง:</translation>
 <translation id="657064425229075395">ไม่สามารถโหลดสคริปต์พื้นหลัง "<ph name="BACKGROUND_SCRIPT" />"</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">ส่วนขยายนี้ล้มเหลวในการตั้งชื่อการดาวน์โหลดว่า "<ph name="ATTEMPTED_FILENAME" />" เนื่องจากอีกส่วนขยายหนึ่ง (<ph name="EXTENSION_NAME" />) ได้กำหนดชื่อไฟล์ที่แตกต่างไว้ว่า "<ph name="ACTUAL_FILENAME" />"</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> จาก <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">ส่วนขยายนี้ไม่สามารถให้ข้อมูลรับรองแก่คำขอเครือข่ายได้เนื่องจากส่วนขยายอื่น (<ph name="EXTENSION_NAME" />) ได้ให้ข้อมูลรับรองซึ่งต่างออกไป</translation>
-<translation id="8602184400052594090">ไฟล์มานิเฟสต์หายไปหรืออ่านไม่ได้</translation>
 <translation id="8636666366616799973">แพ็กเกจไม่ถูกต้อง รายละเอียด: "<ph name="ERROR_MESSAGE" />"</translation>
 <translation id="8670869118777164560">ส่วนขยายนี้ไม่สามารถเปลี่ยนเส้นทางคำขอเครือข่ายไปยัง <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> เนื่องจากส่วนขยายอื่น (<ph name="EXTENSION_NAME" />) ได้เปลี่ยนเส้นทางคำขอไปยัง <ph name="ACTUAL_REDIRECT_DESTINATION" /></translation>
 <translation id="8712265948125780616">ตัวแตกไฟล์ส่วนขยาย</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" ขอสิทธิ์ในการเข้าถึงอุปกรณ์เครื่องใดเครื่องหนึ่งของคุณ:</translation>
 <translation id="8825366169884721447">ส่วนขยายนี้ไม่สามารถแก้ไขส่วนหัวคำขอ "<ph name="HEADER_NAME" />" ของคำขอเครือข่ายได้เนื่องจากการแก้ไขขัดแย้งกับส่วนขยายอื่น (<ph name="EXTENSION_NAME" />)</translation>
+<translation id="8885905466771744233">คีย์ส่วนตัวของส่วนขยายที่ระบุมีอยู่แล้ว นำคีย์นั้นมาใช้ซ้ำหรือลบคีย์ออกก่อน</translation>
+<translation id="907841381057066561">ไม่สามารถสร้างซิปไฟล์ชั่วคราวระหว่างการแพ็คเกจ</translation>
 <translation id="9111791539553342076">ส่วนขยายนี้ไม่สามารถแก้ไขส่วนหัวการตอบกลับ "<ph name="HEADER_NAME" />" ของคำขอเครือข่ายได้เนื่องจากการแก้ไขขัดแย้งกับส่วนขยายอื่น (<ph name="EXTENSION_NAME" />)</translation>
+<translation id="941543339607623937">คีย์ส่วนตัวไม่ถูกต้อง</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_tr.xtb b/extensions/strings/extensions_strings_tr.xtb
index a940e74..94f0621 100644
--- a/extensions/strings/extensions_strings_tr.xtb
+++ b/extensions/strings/extensions_strings_tr.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="tr">
 <translation id="1135328998467923690">Paket geçersiz: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Arka kamera</translation>
+<translation id="1196338895211115272">Özel anahtar dışa alınamadı.</translation>
 <translation id="1256619696651732561">Extension Manifest Parser</translation>
+<translation id="1420684932347524586">Hata! Rastgele RSA özel anahtarı oluşturulamadı.</translation>
 <translation id="1445572445564823378">Bu uzantı <ph name="PRODUCT_NAME" /> uygulamasını yavaşlatıyor. <ph name="PRODUCT_NAME" /> uygulamasının performansını eski haline getirmek için bu uzantıyı devre dışı bırakmalısınız.</translation>
 <translation id="1468038450257740950">WebGL desteklenmez.</translation>
 <translation id="149347756975725155">'<ph name="ICON" />' uzantı simgesi yüklenemedi.</translation>
 <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' arka plan sayfası yüklenemedi.</translation>
 <translation id="2159915644201199628">Resmin kodu çözülemedi: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Yerelleştirme kullanıldı, ancak bildiride default_locale belirtilmedi.</translation>
+<translation id="2576842806987913196">Bu adla bir CRX dosyası zaten var.</translation>
 <translation id="2753617847762399167">Geçersiz yol (mutlak veya '..' ile göreli): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Bu uzantı, değişikliğin başka bir uzantıyla çakışması nedeniyle bir ağ isteğini değiştiremedi.</translation>
-<translation id="2857834222104759979">Bildiri dosyası geçersiz.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (uzantı kimliği "<ph name="EXTENSION_ID" />") yönetici tarafından engelleniyor. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Paket yüklenemedi: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089"><ph name="VENDOR_ID" /> adlı satıcı firma tarafından sağlanan <ph name="PRODUCT_ID" /> ürün kimliğine sahip bilinmeyen ürün (seri numarası: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">crx dosyası değiştirilemedi. Dosyanın kullanımda olup olmadığını kontrol edin.</translation>
 <translation id="3163201441334626963"><ph name="VENDOR_ID" /> adlı satıcı firma tarafından sağlanan <ph name="PRODUCT_ID" /> ürün kimliğine sahip bilinmeyen ürün</translation>
 <translation id="3369521687965833290">Uzantının paketi açılamıyor. Bir uzantının paketini güvenli bir şekilde açabilmek için profil dizininize, sürücü harfi ile başlayan ve bağlantı, bağlantı noktası veya sembolik bağlantı içermeyen bir yol olmalıdır. Profiliniz için böyle bir yol bulunmuyor.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (seri numarası: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="VENDOR_ID" /> kimliğine sahip üretici firma tarafından sağlanan <ph name="PRODUCT_NAME" /> (seri numarası: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Özel anahtara ilişkin giriş değeri geçerli bir yol olmalıdır.</translation>
 <translation id="388442998277590542">'<ph name="OPTIONS_PAGE" />' seçenekler sayfası yüklenemedi.</translation>
+<translation id="3984413272403535372">Uzantı imzalanırken hata oluştu.</translation>
 <translation id="4115165561519362854">Bu makinenin yöneticisi, <ph name="EXTENSION_NAME" /> uzantısının en azından <ph name="EXTENSION_VERSION" /> sürümünde olmasını gerektiriyor. Bu sürüme (veya sonraki sürümlere) güncelleninceye kadar uzantı etkinleştirilemez.</translation>
 <translation id="4233778200880751280">Hakkında sayfası ("<ph name="ABOUT_PAGE" />") yüklenemedi.</translation>
+<translation id="471800408830181311">Özel anahtar oluşturulamadı.</translation>
 <translation id="4811956658694082538">Bir yardımcı program kilitlendiği için paket yüklenemedi. Chrome'u yeniden başlatın ve tekrar deneyin.</translation>
+<translation id="4988792151665380515">Genel anahtar dışa alınamadı.</translation>
 <translation id="5026754133087629784">Web görünümü: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Paket dizininin tam yolu bulunamadı.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Şekillendirilmiş pencereler desteklenmez.</translation>
 <translation id="5456409301717116725">Bu uzantıda '<ph name="KEY_PATH" />' anahtar dosyası var. Muhtemelen istediğiniz bu değil.</translation>
+<translation id="5486326529110362464">Özel anahtara ilişkin giriş anahtarı olmalıdır.</translation>
 <translation id="5627523580512561598">uzantı: <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Bu makinenin yöneticisi <ph name="EXTENSION_NAME" /> adlı uzantının yüklenmesini şart koşuyor. Uzantı kaldırılamaz.</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> tarafından sağlanan <ph name="PRODUCT_ID" /> ürün kimliğine sahip bilinmeyen ürün (seri numarası: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="VENDOR_ID" /> tarafından sağlanan <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">Uzantının paketi açılamıyor. Bir uzantının paketini güvenli bir şekilde açabilmek için profil dizininize sembolik bağlantı içermeyen bir yol olmalıdır. Profiliniz için böyle bir yol bulunmuyor.</translation>
+<translation id="6322279351188361895">Özel anahtar okunamadı.</translation>
+<translation id="6391538222494443604">Giriş dizininin olması gerekir.</translation>
 <translation id="641087317769093025">Uzantı açılamadı</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" uygulaması cihazlarınızdan birine veya birkaçına erişim izni istiyor:</translation>
 <translation id="657064425229075395">Arka plan komut dosyası '<ph name="BACKGROUND_SCRIPT" />' yüklenemedi.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Başka bir uzantı (<ph name="EXTENSION_NAME" />) farklı bir dosya adı ("<ph name="ACTUAL_FILENAME" />") belirlediğinden, uzantı indirilen dosyayı "<ph name="ATTEMPTED_FILENAME" />" olarak adlandıramadı.</translation>
 <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> adlı firmadan <ph name="PRODUCT_NAME" /></translation>
 <translation id="8341840687457896278">Başka bir uzantı (<ph name="EXTENSION_NAME" />) farklı kimlik bilgileri sağladığından, bu uzantı bir ağ isteğine kimlik bilgileri sağlayamadı.</translation>
-<translation id="8602184400052594090">Bildiri dosyası eksik veya okunamıyor.</translation>
 <translation id="8636666366616799973">Paket geçersiz. Ayrıntılar: '<ph name="ERROR_MESSAGE" />'</translation>
 <translation id="8670869118777164560">Bu uzantı bir ağ isteğini <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> hedefine yönlendiremedi, çünkü başka bir uzantı (<ph name="EXTENSION_NAME" />) o isteği <ph name="ACTUAL_REDIRECT_DESTINATION" /> hedefine yönlendirmişti.</translation>
 <translation id="8712265948125780616">Uzantı Açıcı</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" uygulaması cihazlarınızdan birine erişim izni istiyor:</translation>
 <translation id="8825366169884721447">Bu uzantı bir ağ isteğinin "<ph name="HEADER_NAME" />" adlı istek başlığını değiştiremedi, çünkü söz konusu değişiklik başka bir uzantı (<ph name="EXTENSION_NAME" />) ile çakışıyordu.</translation>
+<translation id="8885905466771744233">Belirtilen uzantıya ilişkin özel anahtar zaten var. Var olan anahtarı yeniden kullanın veya öncelikle bu anahtarı silin.</translation>
+<translation id="907841381057066561">Paketleme sırasında geçici zip dosyası oluşturulamadı.</translation>
 <translation id="9111791539553342076">Bu uzantı bir ağ isteğinin "<ph name="HEADER_NAME" />" adlı yanıt başlığını değiştiremedi, çünkü söz konusu değişiklik başka bir uzantı (<ph name="EXTENSION_NAME" />) ile çakışıyordu.</translation>
+<translation id="941543339607623937">Geçersiz özel anahtar.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_uk.xtb b/extensions/strings/extensions_strings_uk.xtb
index 2c60be6..c8c0e58 100644
--- a/extensions/strings/extensions_strings_uk.xtb
+++ b/extensions/strings/extensions_strings_uk.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="uk">
 <translation id="1135328998467923690">Пакет недійсний: "<ph name="ERROR_CODE" />".</translation>
 <translation id="1140871961407805696">Задня камера</translation>
+<translation id="1196338895211115272">Не вдалося експортувати секретний ключ.</translation>
 <translation id="1256619696651732561">Синтаксичний аналізатор маніфесту розширення</translation>
+<translation id="1420684932347524586">Не вдалося згенерувати випадковий секретний ключ RSA.</translation>
 <translation id="1445572445564823378">Це розширення сповільнює <ph name="PRODUCT_NAME" />. Щоб відновити ефективність <ph name="PRODUCT_NAME" />, потрібно його вимкнути.</translation>
 <translation id="1468038450257740950">WebGL не підтримується.</translation>
 <translation id="149347756975725155">Не вдалося завантажити піктограму розширення "<ph name="ICON" />".</translation>
 <translation id="1803557475693955505">Не вдалося завантажити фонову сторінку "<ph name="BACKGROUND_PAGE" />".</translation>
 <translation id="2159915644201199628">Не вдалося декодувати зображення: "<ph name="IMAGE_NAME" />"</translation>
 <translation id="2350172092385603347">Використано локалізацію, але параметр мови за умовчанням (default_locale) не визначено в маніфесті.</translation>
+<translation id="2576842806987913196">Файл у форматі CRX із такою назвою вже існує.</translation>
 <translation id="2753617847762399167">Заборонений шлях (узагалі або у зв’язку з ".."): "<ph name="IMAGE_PATH" />"</translation>
 <translation id="27822970480436970">Цьому розширенню не вдалося змінити запит мережі, оскільки зміна не сумісна з іншим розширенням.</translation>
-<translation id="2857834222104759979">Файл маніфесту недійсний.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ідентифікатор розширення "<ph name="EXTENSION_ID" />") заблоковано адміністратором. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Неможливо встановити пакет: "<ph name="ERROR_CODE" />"</translation>
 <translation id="3115238746683532089">Невідомий продукт <ph name="PRODUCT_ID" /> від постачальника <ph name="VENDOR_ID" /> (серійний номер: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Не вдалося замінити файл у форматі crx. Перевірте, чи файл зараз не використовується.</translation>
 <translation id="3163201441334626963">Невідомий продукт <ph name="PRODUCT_ID" /> від постачальника <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Неможливо розпакувати розширення. Щоб безпечно розпакувати розширення, має бути шлях до каталогу вашого профілю, який починається буквою диску та не містить точок з’єднання, під’єднання чи символьного посилання. Для вашого профілю такого шляху немає.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (серійний номер: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> від постачальника <ph name="VENDOR_ID" /> (серійний номер: <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Потрібно ввести правильний шлях до секретного ключа.</translation>
 <translation id="388442998277590542">Не вдалося завантажити сторінку параметрів "<ph name="OPTIONS_PAGE" />".</translation>
+<translation id="3984413272403535372">Помилка під час підписування розширення.</translation>
 <translation id="4115165561519362854">Адміністратор цього комп’ютера вимагає встановити розширення <ph name="EXTENSION_NAME" /> принаймні такої версії: <ph name="EXTENSION_VERSION" />. Ви не зможете ввімкнути це розширення, доки не оновите його до цієї версії (або новішої).</translation>
 <translation id="4233778200880751280">Не вдалося завантажити сторінку з інформацією про "<ph name="ABOUT_PAGE" />".</translation>
+<translation id="471800408830181311">Не вдалося вивести секретний ключ.</translation>
 <translation id="4811956658694082538">Не вдалося встановити пакет, оскільки відбувся збій процесу службової програми. Перезапустіть Chrome і повторіть спробу.</translation>
+<translation id="4988792151665380515">Не вдалося експортувати відкритий ключ.</translation>
 <translation id="5026754133087629784">Веб-перегляд: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Неможливо знайти абсолютний шлях до каталогу для пакування.</translation>
 <translation id="5356315618422219272">Тег Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Нестандартні вікна не підтримуються.</translation>
 <translation id="5456409301717116725">Це розширення включає файл ключа "<ph name="KEY_PATH" />". Можливо, ви не хочете цього робити.</translation>
+<translation id="5486326529110362464">Має бути дійсне значення секретного ключа.</translation>
 <translation id="5627523580512561598">розширення <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Адміністратор цього комп’ютера вимагає встановити розширення <ph name="EXTENSION_NAME" />. Його неможливо видалити.</translation>
 <translation id="6027032947578871493">Невідомий продукт <ph name="PRODUCT_ID" /> від постачальника <ph name="VENDOR_NAME" /> (серійний номер: <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> від постачальника <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Неможливо розпакувати розширення. Щоб безпечно розпакувати розширення, має бути шлях до каталогу вашого профілю, який не містить символьного посилання. Для вашого профілю такого шляху немає.</translation>
+<translation id="6322279351188361895">Не вдалося розпізнати секретний ключ.</translation>
+<translation id="6391538222494443604">Має бути каталог введення.</translation>
 <translation id="641087317769093025">Не вдалося розпакувати розширення</translation>
 <translation id="6542618148162044354"><ph name="APP_NAME" /> просить надати доступ до одного або кількох ваших пристроїв:</translation>
 <translation id="657064425229075395">Не вдалося завантажити фоновий сценарій "<ph name="BACKGROUND_SCRIPT" />".</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Цьому розширенню не вдалося назвати завантаження "<ph name="ATTEMPTED_FILENAME" />", оскільки інше розширення (<ph name="EXTENSION_NAME" />) визначило іншу назву файлу "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> від постачальника <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Це розширення не надало облікові дані на запит мережі, оскільки інше розширення (<ph name="EXTENSION_NAME" />) надало інші облікові дані.</translation>
-<translation id="8602184400052594090">Файл маніфесту відсутній або його не можна розпізнати.</translation>
 <translation id="8636666366616799973">Пакет недійсний. Деталі: "<ph name="ERROR_MESSAGE" />".</translation>
 <translation id="8670869118777164560">Це розширення не переспрямувало запит мережі на сторінку <ph name="ATTEMPTED_REDIRECT_DESTINATION" />, оскільки інше розширення (<ph name="EXTENSION_NAME" />) переспрямувало його на сторінку <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Засіб розпакування розширень</translation>
 <translation id="8761756413268424715"><ph name="APP_NAME" /> просить надати доступ до одного з ваших пристроїв:</translation>
 <translation id="8825366169884721447">Це розширення не змінило заголовок запиту "<ph name="HEADER_NAME" />" в запиті мережі, оскільки виник конфлікт з іншим розширенням (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Секретний ключ для цього розширення вже існує. Використайте цей ключ знову або спочатку видаліть його.</translation>
+<translation id="907841381057066561">Під час пакування не вдалося створити тимчасовий zip файл.</translation>
 <translation id="9111791539553342076">Це розширення не змінило заголовок відповіді "<ph name="HEADER_NAME" />" в запиті мережі, оскільки виник конфлікт з іншим розширенням (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Недійсний секретний ключ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_vi.xtb b/extensions/strings/extensions_strings_vi.xtb
index 927bcfd..3cf00e8f 100644
--- a/extensions/strings/extensions_strings_vi.xtb
+++ b/extensions/strings/extensions_strings_vi.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="vi">
 <translation id="1135328998467923690">Gói không hợp lệ: '<ph name="ERROR_CODE" />'.</translation>
 <translation id="1140871961407805696">Máy ảnh mặt sau</translation>
+<translation id="1196338895211115272">Không thể xuất khóa cá nhân.</translation>
 <translation id="1256619696651732561">Trình phân tích cú pháp tệp kê khai tiện ích</translation>
+<translation id="1420684932347524586">Rất tiếc! Không thể tạo khóa cá nhân RSA ngẫu nhiên.</translation>
 <translation id="1445572445564823378">Tiện ích này đang làm chậm <ph name="PRODUCT_NAME" />. Bạn phải tắt tiện ích để khôi phục hiệu suất của <ph name="PRODUCT_NAME" />.</translation>
 <translation id="1468038450257740950">WebGL không được hỗ trợ.</translation>
 <translation id="149347756975725155">Không thể tải biểu tượng tiện ích '<ph name="ICON" />'.</translation>
 <translation id="1803557475693955505">Không thể tải trang nền '<ph name="BACKGROUND_PAGE" />'.</translation>
 <translation id="2159915644201199628">Không thể giải mã hình ảnh: '<ph name="IMAGE_NAME" />'</translation>
 <translation id="2350172092385603347">Sử dụng bản địa hóa nhưng không chỉ định default_locale trong tệp kê khai.</translation>
+<translation id="2576842806987913196">Hiện có tệp CRX hiển thị với tên này.</translation>
 <translation id="2753617847762399167">Đường dẫn không hợp lệ (tuyệt đối hoặc tương đối với '..'): '<ph name="IMAGE_PATH" />'</translation>
 <translation id="27822970480436970">Tiện ích này không thể sửa đổi yêu cầu mạng vì việc sửa đổi xung đột với một tiện ích khác.</translation>
-<translation id="2857834222104759979">Tệp kê khai không hợp lệ.</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" /> (ID tiện ích "<ph name="EXTENSION_ID" />") bị quản trị viên chặn. <ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">Không thể cài đặt gói: '<ph name="ERROR_CODE" />'</translation>
 <translation id="3115238746683532089">Sản phẩm không xác định <ph name="PRODUCT_ID" /> từ nhà cung cấp <ph name="VENDOR_ID" /> (số sê-ri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">Không thể thay thế tệp crx. Kiểm tra để xem tệp có đang được sử dụng hay không.</translation>
 <translation id="3163201441334626963">Sản phẩm không xác định <ph name="PRODUCT_ID" /> từ nhà cung cấp <ph name="VENDOR_ID" /></translation>
 <translation id="3369521687965833290">Không thể giải nén tiện ích.  Để giải nén tiện ích một cách an toàn, phải có đường dẫn đến thư mục hồ sơ của bạn bắt đầu bằng ký tự ổ đĩa và không chứa ký tự liên kết, điểm lắp hoặc liên kết dạng biểu tượng.  Không có đường dẫn như vậy tồn tại cho hồ sơ của bạn.</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (số sê-ri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397"><ph name="PRODUCT_NAME" /> từ nhà cung cấp <ph name="VENDOR_ID" /> (số sê-ri <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">Giá trị dữ liệu nhập cho khóa cá nhân phải là một đường dẫn hợp lệ.</translation>
 <translation id="388442998277590542">Không thể tải trang tùy chọn '<ph name="OPTIONS_PAGE" />'.</translation>
+<translation id="3984413272403535372">Lỗi khi ký tiện ích.</translation>
 <translation id="4115165561519362854">Quản trị viên của máy này yêu cầu <ph name="EXTENSION_NAME" /> có phiên bản tối thiểu của <ph name="EXTENSION_VERSION" />. Không thể kích hoạt phiên bản cho đến khi máy cập nhật lên phiên bản đó (hoặc phiên bản cao hơn).</translation>
 <translation id="4233778200880751280">Không thể tải trang giới thiệu '<ph name="ABOUT_PAGE" />'.</translation>
+<translation id="471800408830181311">Không thể đăng nhập khóa cá nhân đầu ra.</translation>
 <translation id="4811956658694082538">Không thể cài đặt gói vì một quá trình tiện ích bị lỗi. Thử khởi động lại Chrome rồi thử lại.</translation>
+<translation id="4988792151665380515">Không thể xuất khóa công cộng.</translation>
 <translation id="5026754133087629784">Chế độ xem web: <ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">Không thể tìm thấy đường dẫn tuyệt đối tới thư mục để chèn.</translation>
 <translation id="5356315618422219272">Appview: <ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">Cửa sổ đã định hình không được hỗ trợ.</translation>
 <translation id="5456409301717116725">Tiện ích này bao gồm tệp khóa '<ph name="KEY_PATH" />'. Bạn có thể không muốn thực hiện việc đó.</translation>
+<translation id="5486326529110362464">Giá trị dữ liệu nhập cho khóa cá nhân phải tồn tại.</translation>
 <translation id="5627523580512561598">tiện ích <ph name="EXTENSION_NAME" /></translation>
 <translation id="5960890139610307736">ExtensionView: <ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">Quản trị viên của máy này yêu cầu cài đặt <ph name="EXTENSION_NAME" />. Không thể gỡ cài đặt tiện ích này.</translation>
 <translation id="6027032947578871493">Sản phẩm không xác định <ph name="PRODUCT_ID" /> từ <ph name="VENDOR_NAME" /> (số sê-ri <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721"><ph name="PRODUCT_NAME" /> từ nhà cung cấp <ph name="VENDOR_ID" /></translation>
 <translation id="6143635259298204954">Không thể giải nén tiện ích.  Để giải nén tiện ích một cách an toàn, phải có đường dẫn đến thư mục hồ sơ không chứa liên kết dạng biểu tượng của bạn.  Không có đường dẫn như vậy tồn tại cho hồ sơ của bạn.</translation>
+<translation id="6322279351188361895">Không thể đọc khóa cá nhân.</translation>
+<translation id="6391538222494443604">Thư mục dữ liệu nhập phải tồn tại.</translation>
 <translation id="641087317769093025">Không thể giải nén tiện ích</translation>
 <translation id="6542618148162044354">"<ph name="APP_NAME" />" đang yêu cầu quyền truy cập vào một hoặc nhiều thiết bị của bạn:</translation>
 <translation id="657064425229075395">Không thể tải tập lệnh nền '<ph name="BACKGROUND_SCRIPT" />'.</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">Tiện ích này không thể đặt tên cho bản tải xuống "<ph name="ATTEMPTED_FILENAME" />" vì một tiện ích khác (<ph name="EXTENSION_NAME" />) đã xác định tên tệp khác "<ph name="ACTUAL_FILENAME" />".</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> từ <ph name="VENDOR_NAME" /></translation>
 <translation id="8341840687457896278">Tiện ích này không thể cung cấp bằng chứng xác thực cho một yêu cầu mạng do tiện ích khác (<ph name="EXTENSION_NAME" />) đã cung cấp các bằng chứng xác thực khác nhau.</translation>
-<translation id="8602184400052594090">Tệp kê khai bị thiếu hoặc không thể đọc được.</translation>
 <translation id="8636666366616799973">Gói không hợp lệ. Chi tiết: '<ph name="ERROR_MESSAGE" />'.</translation>
 <translation id="8670869118777164560">Tiện ích này không thể chuyển hướng yêu cầu mạng đến <ph name="ATTEMPTED_REDIRECT_DESTINATION" /> do tiện ích khác (<ph name="EXTENSION_NAME" />) đã chuyển hướng yêu cầu mạng này đến <ph name="ACTUAL_REDIRECT_DESTINATION" />.</translation>
 <translation id="8712265948125780616">Trình giải nén tiện ích</translation>
 <translation id="8761756413268424715">"<ph name="APP_NAME" />" đang yêu cầu quyền truy cập vào một trong các thiết bị của bạn:</translation>
 <translation id="8825366169884721447">Tiện ích này không thể sửa đổi tiêu đề yêu cầu "<ph name="HEADER_NAME" />" của một yêu cầu mạng do sửa đổi đã xung đột với một tiện ích khác (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="8885905466771744233">Khoá cá nhân cho tiện ích chỉ định đã tồn tại. Hãy sử dụng lại hoặc xóa khóa đó trước tiên.</translation>
+<translation id="907841381057066561">Không thể tạo tệp nén tạm thời khi đóng gói.</translation>
 <translation id="9111791539553342076">Tiện ích này không thể sửa đổi tiêu đề phản hồi "<ph name="HEADER_NAME" />" của một yêu cầu mạng do sửa đổi đã xung đột với một tiện ích khác (<ph name="EXTENSION_NAME" />).</translation>
+<translation id="941543339607623937">Khoá cá nhân không hợp lệ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_zh-CN.xtb b/extensions/strings/extensions_strings_zh-CN.xtb
index 325a918..8df6e42 100644
--- a/extensions/strings/extensions_strings_zh-CN.xtb
+++ b/extensions/strings/extensions_strings_zh-CN.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="zh-CN">
 <translation id="1135328998467923690">程序包无效:“<ph name="ERROR_CODE" />”。</translation>
 <translation id="1140871961407805696">后置</translation>
+<translation id="1196338895211115272">无法导出私有密钥。</translation>
 <translation id="1256619696651732561">扩展程序清单解析器</translation>
+<translation id="1420684932347524586">糟糕!无法生成随机的 RSA 私有密钥。</translation>
 <translation id="1445572445564823378">此扩展程序拖慢了 <ph name="PRODUCT_NAME" />的运行速度。您应将其停用,以恢复 <ph name="PRODUCT_NAME" />的性能。</translation>
 <translation id="1468038450257740950">WebGL 不受支持。</translation>
 <translation id="149347756975725155">无法加载扩展程序图标“<ph name="ICON" />”。</translation>
 <translation id="1803557475693955505">无法加载背景页“<ph name="BACKGROUND_PAGE" />”。</translation>
 <translation id="2159915644201199628">无法对图片解码:“<ph name="IMAGE_NAME" />”</translation>
 <translation id="2350172092385603347">已使用本地化功能,但未在清单中指定 default_locale。</translation>
+<translation id="2576842806987913196">已经有其他 CRX 文件使用了此名称。</translation>
 <translation id="2753617847762399167">非法路径(具有“..”的绝对或相对路径):“<ph name="IMAGE_PATH" />”</translation>
 <translation id="27822970480436970">此扩展程序无法修改网络请求,因为这一修改与其他扩展程序产生了冲突。</translation>
-<translation id="2857834222104759979">清单文件无效。</translation>
 <translation id="2903070246402204397"><ph name="EXTENSION_NAME" />(扩展程序 ID为“<ph name="EXTENSION_ID" />”)已被管理员阻止。<ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">无法安装程序包:“<ph name="ERROR_CODE" />”</translation>
 <translation id="3115238746683532089">来自供应商 <ph name="VENDOR_ID" /> 的未知产品 <ph name="PRODUCT_ID" />(序列号为 <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">未能替换 CRX 文件。请检查该文件是否正在使用。</translation>
 <translation id="3163201441334626963">来自供应商 <ph name="VENDOR_ID" /> 的未知产品 <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">无法将扩展程序解包。要安全地将扩展程序解包,您的个人资料目录中的解包路径必须以驱动器号开头,并且不能包含交接点、装入点或符号链接。您的个人资料中不存在这样的路径。</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" />(序列号为 <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">来自供应商 <ph name="VENDOR_ID" /> 的<ph name="PRODUCT_NAME" />(序列号为 <ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">私有密钥的输入值必须是有效的路径。</translation>
 <translation id="388442998277590542">无法加载选项页“<ph name="OPTIONS_PAGE" />”。</translation>
+<translation id="3984413272403535372">为扩展程序签名时出错。</translation>
 <translation id="4115165561519362854">此设备的管理员要求“<ph name="EXTENSION_NAME" />”的最低版本为 <ph name="EXTENSION_VERSION" />。此扩展程序必须更新到该版本(或更高版本)后才能启用。</translation>
 <translation id="4233778200880751280">无法加载简介页面“<ph name="ABOUT_PAGE" />”。</translation>
+<translation id="471800408830181311">无法输出私有密钥。</translation>
 <translation id="4811956658694082538">某个实用程序进程崩溃了,因此软件包无法安装。请重新启动 Chrome,然后重试。</translation>
+<translation id="4988792151665380515">无法导出公共密钥。</translation>
 <translation id="5026754133087629784">网页视图:<ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">找不到指向待打包目录的绝对路径。</translation>
 <translation id="5356315618422219272">应用视图:<ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">不支持成形的窗口。</translation>
 <translation id="5456409301717116725">此扩展程序包含密钥文件“<ph name="KEY_PATH" />”,您最好不要执行此操作。</translation>
+<translation id="5486326529110362464">请输入私有密钥值。</translation>
 <translation id="5627523580512561598">扩展程序“<ph name="EXTENSION_NAME" />”</translation>
 <translation id="5960890139610307736">ExtensionView:<ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">此设备的管理员要求安装“<ph name="EXTENSION_NAME" />”,因此不能卸载该扩展程序。</translation>
 <translation id="6027032947578871493">来自<ph name="VENDOR_NAME" />的未知产品 <ph name="PRODUCT_ID" />(序列号为 <ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721">来自供应商 <ph name="VENDOR_ID" /> 的<ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">无法将扩展程序解包。要安全地将扩展程序解包,您的个人资料目录中的解包路径不得包含符号链接。您的个人资料中不存在这样的路径。</translation>
+<translation id="6322279351188361895">无法读取私有密钥。</translation>
+<translation id="6391538222494443604">必须存在输入目录。</translation>
 <translation id="641087317769093025">无法解压缩扩展程序</translation>
 <translation id="6542618148162044354">“<ph name="APP_NAME" />”请求访问您的一台或多台设备:</translation>
 <translation id="657064425229075395">无法加载背景脚本“<ph name="BACKGROUND_SCRIPT" />”。</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">此扩展程序无法将下载的文件命名为“<ph name="ATTEMPTED_FILENAME" />”,因为另一扩展程序 (<ph name="EXTENSION_NAME" />) 已将此文件命名为“<ph name="ACTUAL_FILENAME" />”。</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" />(<ph name="VENDOR_NAME" />)</translation>
 <translation id="8341840687457896278">此扩展程序无法向网络请求提供凭据,因为另一个扩展程序(<ph name="EXTENSION_NAME" />)已提供了不同的凭据。</translation>
-<translation id="8602184400052594090">清单文件缺失或不可读。</translation>
 <translation id="8636666366616799973">程序包无效。详细信息:“<ph name="ERROR_MESSAGE" />”。</translation>
 <translation id="8670869118777164560">此扩展程序无法将该网络请求重新定向到 <ph name="ATTEMPTED_REDIRECT_DESTINATION" />,因为其他扩展程序(<ph name="EXTENSION_NAME" />)已将其重新定向到 <ph name="ACTUAL_REDIRECT_DESTINATION" />。</translation>
 <translation id="8712265948125780616">扩展程序解压缩程序</translation>
 <translation id="8761756413268424715">“<ph name="APP_NAME" />”请求访问您的其中一台设备:</translation>
 <translation id="8825366169884721447">此扩展程序无法修改网络请求的请求标头“<ph name="HEADER_NAME" />”,因为这一修改与另一个扩展程序(<ph name="EXTENSION_NAME" />)产生了冲突。</translation>
+<translation id="8885905466771744233">指定扩展程序的私有密钥已存在。请重复使用该密钥,或者先删除它。</translation>
+<translation id="907841381057066561">无法在打包时创建临时 zip 文件</translation>
 <translation id="9111791539553342076">此扩展程序无法修改网络请求的响应标头“<ph name="HEADER_NAME" />”,因为这一修改与另一个扩展程序(<ph name="EXTENSION_NAME" />)产生了冲突。</translation>
+<translation id="941543339607623937">私有密钥无效。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/extensions/strings/extensions_strings_zh-TW.xtb b/extensions/strings/extensions_strings_zh-TW.xtb
index 7349b00..8fbce96 100644
--- a/extensions/strings/extensions_strings_zh-TW.xtb
+++ b/extensions/strings/extensions_strings_zh-TW.xtb
@@ -3,37 +3,48 @@
 <translationbundle lang="zh-TW">
 <translation id="1135328998467923690">套件無效:<ph name="ERROR_CODE" />。</translation>
 <translation id="1140871961407805696">後置鏡頭</translation>
+<translation id="1196338895211115272">匯出私密金鑰失敗。</translation>
 <translation id="1256619696651732561">擴充功能資訊清單剖析器</translation>
+<translation id="1420684932347524586">哎呀!產生隨機 RSA 私密金鑰失敗。</translation>
 <translation id="1445572445564823378">這個擴充功能使得 <ph name="PRODUCT_NAME" /> 運作變慢。建議你停用這個擴充功能,以恢復 <ph name="PRODUCT_NAME" /> 的效能。</translation>
 <translation id="1468038450257740950">系統不支援 WebGL。</translation>
 <translation id="149347756975725155">無法載入擴充功能圖示「<ph name="ICON" />」。</translation>
 <translation id="1803557475693955505">無法載入背景頁面「<ph name="BACKGROUND_PAGE" />」。</translation>
 <translation id="2159915644201199628">無法將圖片解碼:「<ph name="IMAGE_NAME" />」</translation>
 <translation id="2350172092385603347">已使用語言代碼,但是仍未在資訊清單中指定 default_locale。</translation>
+<translation id="2576842806987913196">已有一個 CRX 檔案使用這個名稱。</translation>
 <translation id="2753617847762399167">路徑無效 (絕對路徑或「..」相對路徑):「<ph name="IMAGE_PATH" />」</translation>
 <translation id="27822970480436970">這個擴充功能無法修改網路要求,因為執行修改會與其他擴充功能相衝突。</translation>
-<translation id="2857834222104759979">資訊清單檔案無效。</translation>
 <translation id="2903070246402204397">管理員已封鎖 <ph name="EXTENSION_NAME" /> (擴充功能 ID「<ph name="EXTENSION_ID" />」)。<ph name="ADMIN_INFO" /></translation>
 <translation id="2988488679308982380">無法安裝套件:<ph name="ERROR_CODE" /></translation>
 <translation id="3115238746683532089">供應商 <ph name="VENDOR_ID" /> 提供的不明產品 <ph name="PRODUCT_ID" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3144135466825225871">無法取代 crx 檔案,請檢查檔案是否正在使用中。</translation>
 <translation id="3163201441334626963">供應商 <ph name="VENDOR_ID" /> 提供的不明產品 <ph name="PRODUCT_ID" /></translation>
 <translation id="3369521687965833290">無法為擴充功能解除封裝。如要安全解除封裝,設定檔目錄的路徑必須以磁碟代號開頭,且不能包含連接點、掛載點或符號連結。你的設定檔中沒有符合條件的路徑。</translation>
 <translation id="3393440416772303020"><ph name="PRODUCT_NAME" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
 <translation id="3466070586188012397">供應商 <ph name="VENDOR_ID" /> 提供的 <ph name="PRODUCT_NAME" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
+<translation id="3561217442734750519">私密金鑰的輸入值必須是有效的路徑。</translation>
 <translation id="388442998277590542">無法載入「<ph name="OPTIONS_PAGE" />」選項頁面。</translation>
+<translation id="3984413272403535372">簽署擴充功能時出現錯誤。</translation>
 <translation id="4115165561519362854">這個裝置的管理員要求的 <ph name="EXTENSION_NAME" /> 最低版本為 <ph name="EXTENSION_VERSION" />。更新至該版本 (或以上版本) 後,才能啟用這項擴充功能。</translation>
 <translation id="4233778200880751280">無法載入簡介網頁「<ph name="ABOUT_PAGE" />」。</translation>
+<translation id="471800408830181311">匯出私密金鑰失敗。</translation>
 <translation id="4811956658694082538">公用程式處理程序當機,因此無法安裝套件。請重新啟動 Chrome,然後再試一次。</translation>
+<translation id="4988792151665380515">匯出公開金鑰失敗。</translation>
 <translation id="5026754133087629784">Webview:<ph name="WEBVIEW_TAG_NAME" /></translation>
+<translation id="5098647635849512368">找不到封裝使用的目錄絕對路徑。</translation>
 <translation id="5356315618422219272">Appview:<ph name="APPVIEW_TAG_NAME" /></translation>
 <translation id="5436430103864390185">系統不支援造型視窗。</translation>
 <translation id="5456409301717116725">這個擴充功能含有金鑰檔「<ph name="KEY_PATH" />」。你不妨重新考慮是否仍要進行。</translation>
+<translation id="5486326529110362464">私密金鑰必須存在輸入項目值。</translation>
 <translation id="5627523580512561598"><ph name="EXTENSION_NAME" /> 擴充功能</translation>
 <translation id="5960890139610307736">ExtensionView:<ph name="EXTENSIONVIEW_TAG_NAME" /></translation>
 <translation id="5972529113578162692">這個裝置的管理員要求安裝「<ph name="EXTENSION_NAME" />」,因此無法解除安裝這個擴充功能。</translation>
 <translation id="6027032947578871493"><ph name="VENDOR_NAME" /> 提供的不明產品 <ph name="PRODUCT_ID" /> (序號:<ph name="SERIAL_NUMBER" />)</translation>
 <translation id="6068932090455285721">供應商 <ph name="VENDOR_ID" /> 提供的 <ph name="PRODUCT_NAME" /></translation>
 <translation id="6143635259298204954">無法為擴充功能解除封裝。如要安全解除封裝,設定檔目錄的路徑不能包含符號連結。你的設定檔中沒有符合條件的路徑。</translation>
+<translation id="6322279351188361895">讀取私密金鑰失敗。</translation>
+<translation id="6391538222494443604">輸入項目目錄必須存在</translation>
 <translation id="641087317769093025">無法將擴充功能解壓縮</translation>
 <translation id="6542618148162044354">「<ph name="APP_NAME" />」要求存取你的一或多個裝置:</translation>
 <translation id="657064425229075395">無法載入背景指令碼「<ph name="BACKGROUND_SCRIPT" />」。</translation>
@@ -48,11 +59,13 @@
 <translation id="8047248493720652249">擴充功能無法將下載的檔案命名為「<ph name="ATTEMPTED_FILENAME" />」,因為其他擴充功能 (<ph name="EXTENSION_NAME" />) 已為將此檔案命名為「<ph name="ACTUAL_FILENAME" />」。</translation>
 <translation id="8284835137979141223"><ph name="PRODUCT_NAME" /> (供應商:<ph name="VENDOR_NAME" />)</translation>
 <translation id="8341840687457896278">這個擴充功能無法向網路要求提供憑證,因為其他擴充功能 (<ph name="EXTENSION_NAME" />) 已提供不同的憑證。</translation>
-<translation id="8602184400052594090">資訊清單檔案遺失或無法讀取。</translation>
 <translation id="8636666366616799973">套件無效,詳細資料:<ph name="ERROR_MESSAGE" />。</translation>
 <translation id="8670869118777164560">這個擴充功能無法將網路要求重新導向至 <ph name="ATTEMPTED_REDIRECT_DESTINATION" />,因為其他擴充功能 (<ph name="EXTENSION_NAME" />) 已將要求重新導向至 <ph name="ACTUAL_REDIRECT_DESTINATION" />。</translation>
 <translation id="8712265948125780616">擴充功能解壓縮工具</translation>
 <translation id="8761756413268424715">「<ph name="APP_NAME" />」要求存取你的其中一個裝置:</translation>
 <translation id="8825366169884721447">這個擴充功能無法修改網路要求的「<ph name="HEADER_NAME" />」要求標頭,因為修改動作與其他擴充功能 (<ph name="EXTENSION_NAME" />) 發生衝突。</translation>
+<translation id="8885905466771744233">所指定的擴充功能已有私密金鑰,請使用該金鑰,或先將它刪除。</translation>
+<translation id="907841381057066561">封裝過程中建立暫存壓縮檔失敗。</translation>
 <translation id="9111791539553342076">這個擴充功能無法修改網路要求的「<ph name="HEADER_NAME" />」回應標頭,因為修改動作與其他擴充功能 (<ph name="EXTENSION_NAME" />) 發生衝突。</translation>
+<translation id="941543339607623937">私密金鑰無效。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/google_apis/gcm/engine/connection_factory_impl.cc b/google_apis/gcm/engine/connection_factory_impl.cc
index 691012e2..edc3eea4 100644
--- a/google_apis/gcm/engine/connection_factory_impl.cc
+++ b/google_apis/gcm/engine/connection_factory_impl.cc
@@ -19,7 +19,7 @@
 #include "net/http/http_network_session.h"
 #include "net/http/http_request_headers.h"
 #include "net/log/net_log_source_type.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/client_socket_pool_manager.h"
 #include "net/ssl/ssl_config_service.h"
diff --git a/google_apis/gcm/engine/connection_factory_impl.h b/google_apis/gcm/engine/connection_factory_impl.h
index 5f8bda2..4fa1456a 100644
--- a/google_apis/gcm/engine/connection_factory_impl.h
+++ b/google_apis/gcm/engine/connection_factory_impl.h
@@ -18,8 +18,8 @@
 #include "net/base/backoff_entry.h"
 #include "net/base/network_change_notifier.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/client_socket_handle.h"
 #include "url/gurl.h"
 
diff --git a/gpu/BUILD.gn b/gpu/BUILD.gn
index 4b51ca8..a0de859 100644
--- a/gpu/BUILD.gn
+++ b/gpu/BUILD.gn
@@ -19,6 +19,10 @@
   defines = [ "GPU_UTIL_IMPLEMENTATION" ]
 }
 
+config("raster_implementation") {
+  defines = [ "RASTER_IMPLEMENTATION" ]
+}
+
 component("gpu") {
   public_deps = [
     "//gpu/command_buffer/client:client_sources",
@@ -38,6 +42,12 @@
   ]
 }
 
+component("raster") {
+  public_deps = [
+    "//gpu/command_buffer/client:raster_sources",
+  ]
+}
+
 component("gpu_util") {
   public_deps = [
     "//gpu/ipc/common:gpu_preferences_util_sources",
@@ -408,6 +418,7 @@
     "//components/viz/common:resource_format",
     "//gpu/command_buffer/client:gles2_c_lib",
     "//gpu/command_buffer/client:gles2_implementation",
+    "//gpu/command_buffer/client:raster",
     "//gpu/command_buffer/common:gles2_utils",
     "//gpu/ipc:gl_in_process_context",
     "//gpu/ipc/common:gpu_preferences_util",
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py
index ac51695..c730653 100755
--- a/gpu/command_buffer/build_gles2_cmd_buffer.py
+++ b/gpu/command_buffer/build_gles2_cmd_buffer.py
@@ -615,7 +615,7 @@
 
 # Named type info object represents a named type that is used in OpenGL call
 # arguments.  Each named type defines a set of valid OpenGL call arguments.  The
-# named types are used in 'cmd_buffer_functions.txt'.
+# named types are used in 'gles2_cmd_buffer_functions.txt'.
 # type: The actual GL type of the named type.
 # valid: The list of values that are valid for both the client and the service.
 # valid_es3: The list of values that are valid in OpenGL ES 3, but not ES 2.
@@ -2277,11 +2277,11 @@
 
 # A function info object specifies the type and other special data for the
 # command that will be generated. A base function info object is generated by
-# parsing the "cmd_buffer_functions.txt", one for each function in the
+# parsing the "gles2_cmd_buffer_functions.txt", one for each function in the
 # file. These function info objects can be augmented and their values can be
 # overridden by adding an object to the table below.
 #
-# Must match function names specified in "cmd_buffer_functions.txt".
+# Must match function names specified in "gles2_cmd_buffer_functions.txt".
 #
 # cmd_comment:  A comment added to the cmd format.
 # type:         defines which handler will be used to generate code.
@@ -4547,7 +4547,7 @@
     'extension': 'CHROMIUM_raster_transport',
     'extension_flag': 'chromium_raster_transport',
   },
-  "CreateTransferCacheEntryINTERNAL": {
+  'CreateTransferCacheEntryINTERNAL': {
     'decoder_func': 'DoCreateTransferCacheEntryINTERNAL',
     'cmd_args': 'GLuint entry_type, GLuint entry_id, GLuint handle_shm_id, '
                 'GLuint handle_shm_offset, GLuint data_shm_id, '
@@ -4557,7 +4557,7 @@
     'client_test': False,
     'extension': True,
   },
-  "DeleteTransferCacheEntryINTERNAL": {
+  'DeleteTransferCacheEntryINTERNAL': {
     'decoder_func': 'DoDeleteTransferCacheEntryINTERNAL',
     'cmd_args': 'GLuint entry_type, GLuint entry_id',
     'internal': True,
@@ -4565,7 +4565,7 @@
     'client_test': False,
     'extension': True,
   },
-  "UnlockTransferCacheEntryINTERNAL": {
+  'UnlockTransferCacheEntryINTERNAL': {
     'decoder_func': 'DoUnlockTransferCacheEntryINTERNAL',
     'cmd_args': 'GLuint entry_type, GLuint entry_id',
     'internal': True,
@@ -4680,7 +4680,7 @@
   gen = build_cmd_buffer_lib.GLGenerator(options.verbose, _FUNCTION_INFO,
                                          _NAMED_TYPE_INFO, _STATE_INFO,
                                          _CAPABILITY_FLAGS)
-  gen.ParseGLH("gpu/command_buffer/cmd_buffer_functions.txt")
+  gen.ParseGLH("gpu/command_buffer/gles2_cmd_buffer_functions.txt")
 
   # Support generating files under gen/
   if options.output_dir != None:
diff --git a/gpu/command_buffer/build_raster_cmd_buffer.py b/gpu/command_buffer/build_raster_cmd_buffer.py
new file mode 100755
index 0000000..94c813d
--- /dev/null
+++ b/gpu/command_buffer/build_raster_cmd_buffer.py
@@ -0,0 +1,1121 @@
+#!/usr/bin/env python
+# 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.
+"""code generator for raster command buffers."""
+
+import os
+import os.path
+import sys
+from optparse import OptionParser
+
+import build_cmd_buffer_lib
+
+# Empty flags because raster interface does not support glEnable
+_CAPABILITY_FLAGS = []
+
+_STATE_INFO = {
+  'PixelStore': {
+    'type': 'NamedParameter',
+    'func': 'PixelStorei',
+    'states': [
+      {
+        'name': 'pack_alignment',
+        'type': 'GLint',
+        'enum': 'GL_PACK_ALIGNMENT',
+        'default': '4'
+      },
+      {
+        'name': 'unpack_alignment',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_ALIGNMENT',
+        'default': '4'
+      },
+      {
+        'name': 'pack_row_length',
+        'type': 'GLint',
+        'enum': 'GL_PACK_ROW_LENGTH',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'pack_skip_pixels',
+        'type': 'GLint',
+        'enum': 'GL_PACK_SKIP_PIXELS',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'pack_skip_rows',
+        'type': 'GLint',
+        'enum': 'GL_PACK_SKIP_ROWS',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'unpack_row_length',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_ROW_LENGTH',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'unpack_image_height',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_IMAGE_HEIGHT',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'unpack_skip_pixels',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_SKIP_PIXELS',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'unpack_skip_rows',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_SKIP_ROWS',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      },
+      {
+        'name': 'unpack_skip_images',
+        'type': 'GLint',
+        'enum': 'GL_UNPACK_SKIP_IMAGES',
+        'default': '0',
+        'es3': True,
+        'manual': True,
+      }
+    ],
+  },
+}
+
+# TODO(backer): Figure out which of these enums are actually valid.
+#
+# Named type info object represents a named type that is used in OpenGL call
+# arguments.  Each named type defines a set of valid OpenGL call arguments.  The
+# named types are used in 'raster_cmd_buffer_functions.txt'.
+# type: The actual GL type of the named type.
+# valid: The list of values that are valid for both the client and the service.
+# valid_es3: The list of values that are valid in OpenGL ES 3, but not ES 2.
+# invalid: Examples of invalid values for the type. At least these values
+#          should be tested to be invalid.
+# deprecated_es3: The list of values that are valid in OpenGL ES 2, but
+#                 deprecated in ES 3.
+# is_complete: The list of valid values of type are final and will not be
+#              modified during runtime.
+# validator: If set to False will prevent creation of a ValueValidator. Values
+#            are still expected to be checked for validity and will be tested.
+_NAMED_TYPE_INFO = {
+  'CompressedTextureFormat': {
+    'type': 'GLenum',
+    'valid': [
+    ],
+    'valid_es3': [
+    ],
+  },
+  'GLState': {
+    'type': 'GLenum',
+    'valid': [
+      # NOTE: State an Capability entries added later.
+      'GL_ACTIVE_TEXTURE',
+      'GL_ALIASED_LINE_WIDTH_RANGE',
+      'GL_ALIASED_POINT_SIZE_RANGE',
+      'GL_ALPHA_BITS',
+      'GL_ARRAY_BUFFER_BINDING',
+      'GL_BLUE_BITS',
+      'GL_COMPRESSED_TEXTURE_FORMATS',
+      'GL_CURRENT_PROGRAM',
+      'GL_DEPTH_BITS',
+      'GL_DEPTH_RANGE',
+      'GL_ELEMENT_ARRAY_BUFFER_BINDING',
+      'GL_FRAMEBUFFER_BINDING',
+      'GL_GENERATE_MIPMAP_HINT',
+      'GL_GREEN_BITS',
+      'GL_IMPLEMENTATION_COLOR_READ_FORMAT',
+      'GL_IMPLEMENTATION_COLOR_READ_TYPE',
+      'GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS',
+      'GL_MAX_CUBE_MAP_TEXTURE_SIZE',
+      'GL_MAX_FRAGMENT_UNIFORM_VECTORS',
+      'GL_MAX_RENDERBUFFER_SIZE',
+      'GL_MAX_TEXTURE_IMAGE_UNITS',
+      'GL_MAX_TEXTURE_SIZE',
+      'GL_MAX_VARYING_VECTORS',
+      'GL_MAX_VERTEX_ATTRIBS',
+      'GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS',
+      'GL_MAX_VERTEX_UNIFORM_VECTORS',
+      'GL_MAX_VIEWPORT_DIMS',
+      'GL_NUM_COMPRESSED_TEXTURE_FORMATS',
+      'GL_NUM_SHADER_BINARY_FORMATS',
+      'GL_PACK_ALIGNMENT',
+      'GL_RED_BITS',
+      'GL_RENDERBUFFER_BINDING',
+      'GL_SAMPLE_BUFFERS',
+      'GL_SAMPLE_COVERAGE_INVERT',
+      'GL_SAMPLE_COVERAGE_VALUE',
+      'GL_SAMPLES',
+      'GL_SCISSOR_BOX',
+      'GL_SHADER_BINARY_FORMATS',
+      'GL_SHADER_COMPILER',
+      'GL_SUBPIXEL_BITS',
+      'GL_STENCIL_BITS',
+      'GL_TEXTURE_BINDING_2D',
+      'GL_TEXTURE_BINDING_CUBE_MAP',
+      'GL_UNPACK_ALIGNMENT',
+      'GL_BIND_GENERATES_RESOURCE_CHROMIUM',
+      # we can add this because we emulate it if the driver does not support it.
+      'GL_VERTEX_ARRAY_BINDING_OES',
+      'GL_VIEWPORT',
+    ],
+    'valid_es3': [
+      'GL_COPY_READ_BUFFER_BINDING',
+      'GL_COPY_WRITE_BUFFER_BINDING',
+      'GL_DRAW_BUFFER0',
+      'GL_DRAW_BUFFER1',
+      'GL_DRAW_BUFFER2',
+      'GL_DRAW_BUFFER3',
+      'GL_DRAW_BUFFER4',
+      'GL_DRAW_BUFFER5',
+      'GL_DRAW_BUFFER6',
+      'GL_DRAW_BUFFER7',
+      'GL_DRAW_BUFFER8',
+      'GL_DRAW_BUFFER9',
+      'GL_DRAW_BUFFER10',
+      'GL_DRAW_BUFFER11',
+      'GL_DRAW_BUFFER12',
+      'GL_DRAW_BUFFER13',
+      'GL_DRAW_BUFFER14',
+      'GL_DRAW_BUFFER15',
+      'GL_DRAW_FRAMEBUFFER_BINDING',
+      'GL_FRAGMENT_SHADER_DERIVATIVE_HINT',
+      'GL_GPU_DISJOINT_EXT',
+      'GL_MAJOR_VERSION',
+      'GL_MAX_3D_TEXTURE_SIZE',
+      'GL_MAX_ARRAY_TEXTURE_LAYERS',
+      'GL_MAX_COLOR_ATTACHMENTS',
+      'GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS',
+      'GL_MAX_COMBINED_UNIFORM_BLOCKS',
+      'GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS',
+      'GL_MAX_DRAW_BUFFERS',
+      'GL_MAX_ELEMENT_INDEX',
+      'GL_MAX_ELEMENTS_INDICES',
+      'GL_MAX_ELEMENTS_VERTICES',
+      'GL_MAX_FRAGMENT_INPUT_COMPONENTS',
+      'GL_MAX_FRAGMENT_UNIFORM_BLOCKS',
+      'GL_MAX_FRAGMENT_UNIFORM_COMPONENTS',
+      'GL_MAX_PROGRAM_TEXEL_OFFSET',
+      'GL_MAX_SAMPLES',
+      'GL_MAX_SERVER_WAIT_TIMEOUT',
+      'GL_MAX_TEXTURE_LOD_BIAS',
+      'GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS',
+      'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS',
+      'GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS',
+      'GL_MAX_UNIFORM_BLOCK_SIZE',
+      'GL_MAX_UNIFORM_BUFFER_BINDINGS',
+      'GL_MAX_VARYING_COMPONENTS',
+      'GL_MAX_VERTEX_OUTPUT_COMPONENTS',
+      'GL_MAX_VERTEX_UNIFORM_BLOCKS',
+      'GL_MAX_VERTEX_UNIFORM_COMPONENTS',
+      'GL_MIN_PROGRAM_TEXEL_OFFSET',
+      'GL_MINOR_VERSION',
+      'GL_NUM_EXTENSIONS',
+      'GL_NUM_PROGRAM_BINARY_FORMATS',
+      'GL_PACK_ROW_LENGTH',
+      'GL_PACK_SKIP_PIXELS',
+      'GL_PACK_SKIP_ROWS',
+      'GL_PIXEL_PACK_BUFFER_BINDING',
+      'GL_PIXEL_UNPACK_BUFFER_BINDING',
+      'GL_PROGRAM_BINARY_FORMATS',
+      'GL_READ_BUFFER',
+      'GL_READ_FRAMEBUFFER_BINDING',
+      'GL_SAMPLER_BINDING',
+      'GL_TIMESTAMP_EXT',
+      'GL_TEXTURE_BINDING_2D_ARRAY',
+      'GL_TEXTURE_BINDING_3D',
+      'GL_TRANSFORM_FEEDBACK_BINDING',
+      'GL_TRANSFORM_FEEDBACK_ACTIVE',
+      'GL_TRANSFORM_FEEDBACK_BUFFER_BINDING',
+      'GL_TRANSFORM_FEEDBACK_PAUSED',
+      'GL_TRANSFORM_FEEDBACK_BUFFER_SIZE',
+      'GL_TRANSFORM_FEEDBACK_BUFFER_START',
+      'GL_UNIFORM_BUFFER_BINDING',
+      'GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT',
+      'GL_UNIFORM_BUFFER_SIZE',
+      'GL_UNIFORM_BUFFER_START',
+      'GL_UNPACK_IMAGE_HEIGHT',
+      'GL_UNPACK_ROW_LENGTH',
+      'GL_UNPACK_SKIP_IMAGES',
+      'GL_UNPACK_SKIP_PIXELS',
+      'GL_UNPACK_SKIP_ROWS',
+      # GL_VERTEX_ARRAY_BINDING is the same as GL_VERTEX_ARRAY_BINDING_OES
+      # 'GL_VERTEX_ARRAY_BINDING',
+    ],
+    'invalid': [
+      'GL_FOG_HINT',
+    ],
+  },
+  'BufferUsage': {
+    'type': 'GLenum',
+    'is_complete': True,
+    'valid': [
+      'GL_STREAM_DRAW',
+      'GL_STATIC_DRAW',
+      'GL_DYNAMIC_DRAW',
+    ],
+    'valid_es3': [
+      'GL_STREAM_READ',
+      'GL_STREAM_COPY',
+      'GL_STATIC_READ',
+      'GL_STATIC_COPY',
+      'GL_DYNAMIC_READ',
+      'GL_DYNAMIC_COPY',
+    ],
+    'invalid': [
+      'GL_NONE',
+    ],
+  },
+  'TextureTarget': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_TEXTURE_2D',
+      'GL_TEXTURE_CUBE_MAP_POSITIVE_X',
+      'GL_TEXTURE_CUBE_MAP_NEGATIVE_X',
+      'GL_TEXTURE_CUBE_MAP_POSITIVE_Y',
+      'GL_TEXTURE_CUBE_MAP_NEGATIVE_Y',
+      'GL_TEXTURE_CUBE_MAP_POSITIVE_Z',
+      'GL_TEXTURE_CUBE_MAP_NEGATIVE_Z',
+    ],
+    'invalid': [
+      'GL_PROXY_TEXTURE_CUBE_MAP',
+    ]
+  },
+  'TextureBindTarget': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_TEXTURE_2D',
+      'GL_TEXTURE_CUBE_MAP',
+    ],
+    'valid_es3': [
+      'GL_TEXTURE_3D',
+      'GL_TEXTURE_2D_ARRAY',
+    ],
+    'invalid': [
+      'GL_TEXTURE_1D',
+      'GL_TEXTURE_3D',
+    ],
+  },
+  'QueryObjectParameter': {
+    'type': 'GLenum',
+    'is_complete': True,
+    'valid': [
+      'GL_QUERY_RESULT_EXT',
+      'GL_QUERY_RESULT_AVAILABLE_EXT',
+    ],
+  },
+  'QueryTarget': {
+    'type': 'GLenum',
+    'is_complete': True,
+    'valid': [
+      'GL_SAMPLES_PASSED_ARB',
+      'GL_ANY_SAMPLES_PASSED_EXT',
+      'GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT',
+      'GL_COMMANDS_ISSUED_CHROMIUM',
+      'GL_LATENCY_QUERY_CHROMIUM',
+      'GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM',
+      'GL_COMMANDS_COMPLETED_CHROMIUM',
+    ],
+  },
+  'TextureParameter': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_TEXTURE_MAG_FILTER',
+      'GL_TEXTURE_MIN_FILTER',
+      'GL_TEXTURE_WRAP_S',
+      'GL_TEXTURE_WRAP_T',
+    ],
+    'valid_es3': [
+      'GL_TEXTURE_BASE_LEVEL',
+      'GL_TEXTURE_COMPARE_FUNC',
+      'GL_TEXTURE_COMPARE_MODE',
+      'GL_TEXTURE_IMMUTABLE_FORMAT',
+      'GL_TEXTURE_IMMUTABLE_LEVELS',
+      'GL_TEXTURE_MAX_LEVEL',
+      'GL_TEXTURE_MAX_LOD',
+      'GL_TEXTURE_MIN_LOD',
+      'GL_TEXTURE_WRAP_R',
+    ],
+    'invalid': [
+      'GL_GENERATE_MIPMAP',
+    ],
+  },
+  'PixelStore': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_PACK_ALIGNMENT',
+      'GL_UNPACK_ALIGNMENT',
+    ],
+    'valid_es3': [
+      'GL_PACK_ROW_LENGTH',
+      'GL_PACK_SKIP_PIXELS',
+      'GL_PACK_SKIP_ROWS',
+      'GL_UNPACK_ROW_LENGTH',
+      'GL_UNPACK_IMAGE_HEIGHT',
+      'GL_UNPACK_SKIP_PIXELS',
+      'GL_UNPACK_SKIP_ROWS',
+      'GL_UNPACK_SKIP_IMAGES',
+    ],
+    'invalid': [
+      'GL_PACK_SWAP_BYTES',
+      'GL_UNPACK_SWAP_BYTES',
+    ],
+  },
+  'PixelStoreAlignment': {
+    'type': 'GLint',
+    'is_complete': True,
+    'valid': [
+      '1',
+      '2',
+      '4',
+      '8',
+    ],
+    'invalid': [
+      '3',
+      '9',
+    ],
+  },
+  'PixelType': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_UNSIGNED_BYTE',
+      'GL_UNSIGNED_SHORT_5_6_5',
+      'GL_UNSIGNED_SHORT_4_4_4_4',
+      'GL_UNSIGNED_SHORT_5_5_5_1',
+    ],
+    'valid_es3': [
+      'GL_BYTE',
+      'GL_UNSIGNED_SHORT',
+      'GL_SHORT',
+      'GL_UNSIGNED_INT',
+      'GL_INT',
+      'GL_HALF_FLOAT',
+      'GL_FLOAT',
+      'GL_UNSIGNED_INT_2_10_10_10_REV',
+      'GL_UNSIGNED_INT_10F_11F_11F_REV',
+      'GL_UNSIGNED_INT_5_9_9_9_REV',
+      'GL_UNSIGNED_INT_24_8',
+      'GL_FLOAT_32_UNSIGNED_INT_24_8_REV',
+    ],
+    'invalid': [
+      'GL_UNSIGNED_BYTE_3_3_2',
+    ],
+  },
+  'TextureFormat': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_ALPHA',
+      'GL_LUMINANCE',
+      'GL_LUMINANCE_ALPHA',
+      'GL_RGB',
+      'GL_RGBA',
+    ],
+    'valid_es3': [
+      'GL_RED',
+      'GL_RED_INTEGER',
+      'GL_RG',
+      'GL_RG_INTEGER',
+      'GL_RGB_INTEGER',
+      'GL_RGBA_INTEGER',
+      'GL_DEPTH_COMPONENT',
+      'GL_DEPTH_STENCIL',
+    ],
+    'invalid': [
+      'GL_BGRA',
+      'GL_BGR',
+    ],
+  },
+  'TextureInternalFormat': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_ALPHA',
+      'GL_LUMINANCE',
+      'GL_LUMINANCE_ALPHA',
+      'GL_RGB',
+      'GL_RGBA',
+    ],
+    'valid_es3': [
+      'GL_R8',
+      'GL_R8_SNORM',
+      'GL_R16F',
+      'GL_R32F',
+      'GL_R8UI',
+      'GL_R8I',
+      'GL_R16UI',
+      'GL_R16I',
+      'GL_R32UI',
+      'GL_R32I',
+      'GL_RG8',
+      'GL_RG8_SNORM',
+      'GL_RG16F',
+      'GL_RG32F',
+      'GL_RG8UI',
+      'GL_RG8I',
+      'GL_RG16UI',
+      'GL_RG16I',
+      'GL_RG32UI',
+      'GL_RG32I',
+      'GL_RGB8',
+      'GL_SRGB8',
+      'GL_RGB565',
+      'GL_RGB8_SNORM',
+      'GL_R11F_G11F_B10F',
+      'GL_RGB9_E5',
+      'GL_RGB16F',
+      'GL_RGB32F',
+      'GL_RGB8UI',
+      'GL_RGB8I',
+      'GL_RGB16UI',
+      'GL_RGB16I',
+      'GL_RGB32UI',
+      'GL_RGB32I',
+      'GL_RGBA8',
+      'GL_SRGB8_ALPHA8',
+      'GL_RGBA8_SNORM',
+      'GL_RGB5_A1',
+      'GL_RGBA4',
+      'GL_RGB10_A2',
+      'GL_RGBA16F',
+      'GL_RGBA32F',
+      'GL_RGBA8UI',
+      'GL_RGBA8I',
+      'GL_RGB10_A2UI',
+      'GL_RGBA16UI',
+      'GL_RGBA16I',
+      'GL_RGBA32UI',
+      'GL_RGBA32I',
+      # The DEPTH/STENCIL formats are not supported in CopyTexImage2D.
+      # We will reject them dynamically in GPU command buffer.
+      'GL_DEPTH_COMPONENT16',
+      'GL_DEPTH_COMPONENT24',
+      'GL_DEPTH_COMPONENT32F',
+      'GL_DEPTH24_STENCIL8',
+      'GL_DEPTH32F_STENCIL8',
+    ],
+    'invalid': [
+      'GL_BGRA',
+      'GL_BGR',
+    ],
+  },
+  'TextureInternalFormatStorage': {
+    'type': 'GLenum',
+    'valid': [
+      'GL_RGB565',
+      'GL_RGBA4',
+      'GL_RGB5_A1',
+      'GL_ALPHA8_EXT',
+      'GL_LUMINANCE8_EXT',
+      'GL_LUMINANCE8_ALPHA8_EXT',
+      'GL_RGB8_OES',
+      'GL_RGBA8_OES',
+    ],
+    'valid_es3': [
+      'GL_R8',
+      'GL_R8_SNORM',
+      'GL_R16F',
+      'GL_R32F',
+      'GL_R8UI',
+      'GL_R8I',
+      'GL_R16UI',
+      'GL_R16I',
+      'GL_R32UI',
+      'GL_R32I',
+      'GL_RG8',
+      'GL_RG8_SNORM',
+      'GL_RG16F',
+      'GL_RG32F',
+      'GL_RG8UI',
+      'GL_RG8I',
+      'GL_RG16UI',
+      'GL_RG16I',
+      'GL_RG32UI',
+      'GL_RG32I',
+      'GL_RGB8',
+      'GL_SRGB8',
+      'GL_RGB8_SNORM',
+      'GL_R11F_G11F_B10F',
+      'GL_RGB9_E5',
+      'GL_RGB16F',
+      'GL_RGB32F',
+      'GL_RGB8UI',
+      'GL_RGB8I',
+      'GL_RGB16UI',
+      'GL_RGB16I',
+      'GL_RGB32UI',
+      'GL_RGB32I',
+      'GL_RGBA8',
+      'GL_SRGB8_ALPHA8',
+      'GL_RGBA8_SNORM',
+      'GL_RGB10_A2',
+      'GL_RGBA16F',
+      'GL_RGBA32F',
+      'GL_RGBA8UI',
+      'GL_RGBA8I',
+      'GL_RGB10_A2UI',
+      'GL_RGBA16UI',
+      'GL_RGBA16I',
+      'GL_RGBA32UI',
+      'GL_RGBA32I',
+      'GL_DEPTH_COMPONENT16',
+      'GL_DEPTH_COMPONENT24',
+      'GL_DEPTH_COMPONENT32F',
+      'GL_DEPTH24_STENCIL8',
+      'GL_DEPTH32F_STENCIL8',
+    ],
+    'deprecated_es3': [
+      'GL_ALPHA8_EXT',
+      'GL_LUMINANCE8_EXT',
+      'GL_LUMINANCE8_ALPHA8_EXT',
+      'GL_ALPHA16F_EXT',
+      'GL_LUMINANCE16F_EXT',
+      'GL_LUMINANCE_ALPHA16F_EXT',
+      'GL_ALPHA32F_EXT',
+      'GL_LUMINANCE32F_EXT',
+      'GL_LUMINANCE_ALPHA32F_EXT',
+    ],
+  },
+  'TextureBorder': {
+    'type': 'GLint',
+    'is_complete': True,
+    'valid': [
+      '0',
+    ],
+    'invalid': [
+      '1',
+    ],
+  },
+  'ResetStatus': {
+    'type': 'GLenum',
+    'is_complete': True,
+    'valid': [
+      'GL_GUILTY_CONTEXT_RESET_ARB',
+      'GL_INNOCENT_CONTEXT_RESET_ARB',
+      'GL_UNKNOWN_CONTEXT_RESET_ARB',
+    ],
+  },
+  'ClientBufferUsage': {
+    'type': 'GLenum',
+    'is_complete': True,
+    'valid': [
+      'GL_SCANOUT_CHROMIUM',
+    ],
+    'invalid': [
+      'GL_NONE',
+    ],
+  },
+}
+
+# A function info object specifies the type and other special data for the
+# command that will be generated. A base function info object is generated by
+# parsing the "raster_cmd_buffer_functions.txt", one for each function in the
+# file. These function info objects can be augmented and their values can be
+# overridden by adding an object to the table below.
+#
+# Must match function names specified in "raster_cmd_buffer_functions.txt".
+#
+# cmd_comment:  A comment added to the cmd format.
+# type:         defines which handler will be used to generate code.
+# decoder_func: defines which function to call in the decoder to execute the
+#               corresponding GL command. If not specified the GL command will
+#               be called directly.
+# gl_test_func: GL function that is expected to be called when testing.
+# cmd_args:     The arguments to use for the command. This overrides generating
+#               them based on the GL function arguments.
+# data_transfer_methods: Array of methods that are used for transfering the
+#               pointer data.  Possible values: 'immediate', 'shm', 'bucket'.
+#               The default is 'immediate' if the command has one pointer
+#               argument, otherwise 'shm'. One command is generated for each
+#               transfer method. Affects only commands which are not of type
+#               'GETn' or 'GLcharN'.
+#               Note: the command arguments that affect this are the final args,
+#               taking cmd_args override into consideration.
+# impl_func:    Whether or not to generate the GLES2Implementation part of this
+#               command.
+# internal:     If true, this is an internal command only, not exposed to the
+#               client.
+# needs_size:   If True a data_size field is added to the command.
+# count:        The number of units per element. For PUTn or PUT types.
+# use_count_func: If True the actual data count needs to be computed; the count
+#               argument specifies the maximum count.
+# unit_test:    If False no service side unit test will be generated.
+# client_test:  If False no client side unit test will be generated.
+# expectation:  If False the unit test will have no expected calls.
+# gen_func:     Name of function that generates GL resource for corresponding
+#               bind function.
+# states:       array of states that get set by this function corresponding to
+#               the given arguments
+# state_flag:   name of flag that is set to true when function is called.
+# no_gl:        no GL function is called.
+# valid_args:   A dictionary of argument indices to args to use in unit tests
+#               when they can not be automatically determined.
+# pepper_interface: The pepper interface that is used for this extension
+# pepper_name:  The name of the function as exposed to pepper.
+# pepper_args:  A string representing the argument list (what would appear in
+#               C/C++ between the parentheses for the function declaration)
+#               that the Pepper API expects for this function. Use this only if
+#               the stable Pepper API differs from the GLES2 argument list.
+# invalid_test: False if no invalid test needed.
+# shadowed:     True = the value is shadowed so no glGetXXX call will be made.
+# first_element_only: For PUT types, True if only the first element of an
+#               array is used and we end up calling the single value
+#               corresponding function. eg. TexParameteriv -> TexParameteri
+# extension:    Function is an extension to GL and should not be exposed to
+#               pepper unless pepper_interface is defined.
+# extension_flag: Function is an extension and should be enabled only when
+#               the corresponding feature info flag is enabled. Implies
+#               'extension': True.
+# not_shared:   For GENn types, True if objects can't be shared between contexts
+# es3:          ES3 API. True if the function requires an ES3 or WebGL2 context.
+
+_FUNCTION_INFO = {
+  'ActiveTexture': {
+    'decoder_func': 'DoActiveTexture',
+    'unit_test': False,
+    'impl_func': False,
+    'client_test': False,
+  },
+  'BindTexture': {
+    'type': 'Bind',
+    'decoder_func': 'DoBindTexture',
+    'gen_func': 'GenTextures',
+    # TODO: remove this once client side caching works.
+    'client_test': False,
+    'unit_test': False,
+    'trace_level': 2,
+  },
+  'CreateAndConsumeTextureCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_texture_mailbox",
+    'trace_level': 2,
+  },
+  'CompressedTexImage2D': {
+    'type': 'Custom',
+    'data_transfer_methods': ['bucket', 'shm'],
+    'trace_level': 1,
+  },
+  'CompressedTexSubImage2D': {
+    'type': 'Custom',
+    'data_transfer_methods': ['bucket', 'shm'],
+    'trace_level': 1,
+  },
+  'CopyTexImage2D': {
+    'decoder_func': 'DoCopyTexImage2D',
+    'unit_test': False,
+    'defer_reads': True,
+    'trace_level': 1,
+  },
+  'CopyTexSubImage2D': {
+    'decoder_func': 'DoCopyTexSubImage2D',
+    'defer_reads': True,
+    'trace_level': 1,
+  },
+  'CreateImageCHROMIUM': {
+    'type': 'NoCommand',
+    'cmd_args':
+        'ClientBuffer buffer, GLsizei width, GLsizei height, '
+        'GLenum internalformat',
+    'result': ['GLuint'],
+    'extension': "CHROMIUM_image",
+    'trace_level': 1,
+  },
+  'DestroyImageCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_image",
+    'trace_level': 1,
+  },
+  'DeleteTextures': {
+    'type': 'DELn',
+    'resource_type': 'Texture',
+    'resource_types': 'Textures',
+  },
+  'Finish': {
+    'impl_func': False,
+    'client_test': False,
+    'decoder_func': 'DoFinish',
+    'defer_reads': True,
+    'trace_level': 1,
+  },
+  'Flush': {
+    'impl_func': False,
+    'decoder_func': 'DoFlush',
+    'trace_level': 1,
+  },
+  'GenMailboxCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_texture_mailbox",
+  },
+  'GenTextures': {
+    'type': 'GENn',
+    'gl_test_func': 'glGenTextures',
+    'resource_type': 'Texture',
+    'resource_types': 'Textures',
+  },
+  'GetError': {
+    'type': 'Is',
+    'decoder_func': 'GetErrorState()->GetGLError',
+    'impl_func': False,
+    'result': ['GLenum'],
+    'client_test': False,
+  },
+  'GetGraphicsResetStatusKHR': {
+    'type': 'NoCommand',
+    'extension': True,
+    'trace_level': 1,
+  },
+  'GetIntegerv': {
+    'type': 'GETn',
+    'result': ['SizedResult<GLint>'],
+    'decoder_func': 'DoGetIntegerv',
+    'client_test': False,
+  },
+  'PixelStorei': {
+    'type': 'Custom',
+    'impl_func': False,
+  },
+  'ProduceTextureDirectCHROMIUM': {
+    'decoder_func': 'DoProduceTextureDirectCHROMIUM',
+    'impl_func': False,
+    'type': 'PUT',
+    'count': 16,  # GL_MAILBOX_SIZE_CHROMIUM
+    'unit_test': False,
+    'client_test': False,
+    'extension': "CHROMIUM_texture_mailbox",
+    'trace_level': 1,
+  },
+  'TexImage2D': {
+    'type': 'Custom',
+    'impl_func': False,
+    'data_transfer_methods': ['shm'],
+    'client_test': False,
+    'trace_level': 2,
+  },
+  'TexParameteri': {
+    'decoder_func': 'DoTexParameteri',
+    'valid_args': {
+      '2': 'GL_NEAREST'
+    },
+  },
+  'TexSubImage2D': {
+    'type': 'Custom',
+    'impl_func': False,
+    'data_transfer_methods': ['shm'],
+    'client_test': False,
+    'trace_level': 2,
+    'cmd_args': 'GLenumTextureTarget target, GLint level, '
+                'GLint xoffset, GLint yoffset, '
+                'GLsizei width, GLsizei height, '
+                'GLenumTextureFormat format, GLenumPixelType type, '
+                'const void* pixels, GLboolean internal'
+  },
+  'WaitSync': {
+    'type': 'Custom',
+    'cmd_args': 'GLuint sync, GLbitfieldSyncFlushFlags flags, '
+                'GLuint64 timeout',
+    'impl_func': False,
+    'client_test': False,
+    'es3': True,
+    'trace_level': 1,
+  },
+  'CopySubTextureCHROMIUM': {
+    'decoder_func': 'DoCopySubTextureCHROMIUM',
+    'unit_test': False,
+    'extension': "CHROMIUM_copy_texture",
+    'trace_level': 2,
+  },
+  'CompressedCopyTextureCHROMIUM': {
+    'decoder_func': 'DoCompressedCopyTextureCHROMIUM',
+    'unit_test': False,
+    'extension': 'CHROMIUM_copy_compressed_texture',
+  },
+  'TexStorage2DEXT': {
+    'unit_test': False,
+    'extension': 'EXT_texture_storage',
+    'extension_flag': 'ext_texture_storage',
+    'decoder_func': 'DoTexStorage2DEXT',
+    'trace_level': 2,
+  },
+  'GenQueriesEXT': {
+    'type': 'GENn',
+    'gl_test_func': 'glGenQueriesARB',
+    'resource_type': 'Query',
+    'resource_types': 'Queries',
+    'unit_test': False,
+    'pepper_interface': 'Query',
+    'not_shared': 'True',
+    'extension': "occlusion_query_EXT",
+  },
+  'DeleteQueriesEXT': {
+    'type': 'DELn',
+    'gl_test_func': 'glDeleteQueriesARB',
+    'resource_type': 'Query',
+    'resource_types': 'Queries',
+    'unit_test': False,
+    'pepper_interface': 'Query',
+    'extension': "occlusion_query_EXT",
+  },
+  'BeginQueryEXT': {
+    'type': 'Custom',
+    'impl_func': False,
+    'cmd_args': 'GLenumQueryTarget target, GLidQuery id, void* sync_data',
+    'data_transfer_methods': ['shm'],
+    'gl_test_func': 'glBeginQuery',
+    'pepper_interface': 'Query',
+    'extension': "occlusion_query_EXT",
+  },
+  'EndQueryEXT': {
+    'type': 'Custom',
+    'impl_func': False,
+    'cmd_args': 'GLenumQueryTarget target, GLuint submit_count',
+    'gl_test_func': 'glEndnQuery',
+    'client_test': False,
+    'pepper_interface': 'Query',
+    'extension': "occlusion_query_EXT",
+  },
+  'GetQueryObjectuivEXT': {
+    'type': 'NoCommand',
+    'gl_test_func': 'glGetQueryObjectuiv',
+    'pepper_interface': 'Query',
+    'extension': "occlusion_query_EXT",
+  },
+  'BindTexImage2DCHROMIUM': {
+    'decoder_func': 'DoBindTexImage2DCHROMIUM',
+    'unit_test': False,
+    'extension': "CHROMIUM_image",
+  },
+  'ReleaseTexImage2DCHROMIUM': {
+    'decoder_func': 'DoReleaseTexImage2DCHROMIUM',
+    'unit_test': False,
+    'extension': "CHROMIUM_image",
+  },
+  'ShallowFlushCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': 'CHROMIUM_ordering_barrier',
+  },
+  'OrderingBarrierCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': 'CHROMIUM_ordering_barrier',
+  },
+  'TraceBeginCHROMIUM': {
+    'type': 'Custom',
+    'impl_func': False,
+    'client_test': False,
+    'cmd_args': 'GLuint category_bucket_id, GLuint name_bucket_id',
+    'extension': 'CHROMIUM_trace_marker',
+  },
+  'TraceEndCHROMIUM': {
+    'impl_func': False,
+    'client_test': False,
+    'decoder_func': 'DoTraceEndCHROMIUM',
+    'unit_test': False,
+    'extension': 'CHROMIUM_trace_marker',
+  },
+  'LoseContextCHROMIUM': {
+    'decoder_func': 'DoLoseContextCHROMIUM',
+    'unit_test': False,
+    'extension': 'CHROMIUM_lose_context',
+    'trace_level': 1,
+  },
+  'GenSyncTokenCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_sync_point",
+  },
+  'GenUnverifiedSyncTokenCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_sync_point",
+  },
+  'VerifySyncTokensCHROMIUM' : {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_sync_point",
+  },
+  'WaitSyncTokenCHROMIUM': {
+    'type': 'Custom',
+    'impl_func': False,
+    'cmd_args': 'GLint namespace_id, '
+                'GLuint64 command_buffer_id, '
+                'GLuint64 release_count',
+    'client_test': False,
+    'extension': "CHROMIUM_sync_point",
+  },
+  'InitializeDiscardableTextureCHROMIUM': {
+    'type': 'Custom',
+    'cmd_args': 'GLuint texture_id, uint32_t shm_id, '
+                'uint32_t shm_offset',
+    'impl_func': False,
+    'client_test': False,
+    'extension': True,
+  },
+  'UnlockDiscardableTextureCHROMIUM': {
+    'type': 'Custom',
+    'cmd_args': 'GLuint texture_id',
+    'impl_func': False,
+    'client_test': False,
+    'extension': True,
+  },
+  'LockDiscardableTextureCHROMIUM': {
+    'type': 'Custom',
+    'cmd_args': 'GLuint texture_id',
+    'impl_func': False,
+    'client_test': False,
+    'extension': True,
+  },
+  'BeginRasterCHROMIUM': {
+    'decoder_func': 'DoBeginRasterCHROMIUM',
+    'impl_func': True,
+    'unit_test': False,
+    'extension': 'CHROMIUM_raster_transport',
+    'extension_flag': 'chromium_raster_transport',
+  },
+  'RasterCHROMIUM': {
+    'type': 'Data',
+    'internal': True,
+    'decoder_func': 'DoRasterCHROMIUM',
+    'data_transfer_methods': ['shm'],
+    'extension': 'CHROMIUM_raster_transport',
+    'extension_flag': 'chromium_raster_transport',
+  },
+  'MapRasterCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_raster_transport",
+  },
+  'UnmapRasterCHROMIUM': {
+    'type': 'NoCommand',
+    'extension': "CHROMIUM_raster_transport",
+  },
+  'EndRasterCHROMIUM': {
+    'decoder_func': 'DoEndRasterCHROMIUM',
+    'impl_func': True,
+    'unit_test': False,
+    'extension': 'CHROMIUM_raster_transport',
+    'extension_flag': 'chromium_raster_transport',
+  },
+  'CreateTransferCacheEntryINTERNAL': {
+    'decoder_func': 'DoCreateTransferCacheEntryINTERNAL',
+    'cmd_args': 'GLuint entry_type, GLuint entry_id, GLuint handle_shm_id, '
+                'GLuint handle_shm_offset, GLuint data_shm_id, '
+                'GLuint data_shm_offset, GLuint data_size',
+    'internal': True,
+    'impl_func': True,
+    'client_test': False,
+    'extension': True,
+  },
+  'DeleteTransferCacheEntryINTERNAL': {
+    'decoder_func': 'DoDeleteTransferCacheEntryINTERNAL',
+    'cmd_args': 'GLuint entry_type, GLuint entry_id',
+    'internal': True,
+    'impl_func': True,
+    'client_test': False,
+    'extension': True,
+  },
+  'UnlockTransferCacheEntryINTERNAL': {
+    'decoder_func': 'DoUnlockTransferCacheEntryINTERNAL',
+    'cmd_args': 'GLuint entry_type, GLuint entry_id',
+    'internal': True,
+    'impl_func': True,
+    'client_test': False,
+    'extension': True,
+  },
+  'TexStorage2DImageCHROMIUM': {
+    'decoder_func': 'DoTexStorage2DImageCHROMIUM',
+    'unit_test': False,
+    'extension': 'CHROMIUM_texture_storage_image',
+    'extension_flag': 'chromium_texture_storage_image',
+  },
+}
+
+
+def main(argv):
+  """This is the main function."""
+  parser = OptionParser()
+  parser.add_option(
+      "--output-dir",
+      help="base directory for resulting files, under chrome/src. default is "
+      "empty. Use this if you want the result stored under gen.")
+  parser.add_option(
+      "-v", "--verbose", action="store_true",
+      help="prints more output.")
+
+  (options, _) = parser.parse_args(args=argv)
+
+  # This script lives under gpu/command_buffer, cd to base directory.
+  os.chdir(os.path.dirname(__file__) + "/../..")
+  base_dir = os.getcwd()
+  gen = build_cmd_buffer_lib.GLGenerator(options.verbose, _FUNCTION_INFO,
+                                         _NAMED_TYPE_INFO, _STATE_INFO,
+                                         _CAPABILITY_FLAGS)
+  gen.ParseGLH("gpu/command_buffer/raster_cmd_buffer_functions.txt")
+
+  # Support generating files under gen/
+  if options.output_dir != None:
+    os.chdir(options.output_dir)
+
+  os.chdir(base_dir)
+
+  # TODO(backer): Uncomment once the output looks good.
+  # gen.WriteCommandIds("gpu/command_buffer/common/raster_cmd_ids_autogen.h")
+  # gen.WriteFormat("gpu/command_buffer/common/raster_cmd_format_autogen.h")
+  # gen.WriteFormatTest(
+  #   "gpu/command_buffer/common/raster_cmd_format_test_autogen.h")
+  # gen.WriteGLES2InterfaceHeader(
+  #   "gpu/command_buffer/client/raster_interface_autogen.h")
+  # gen.WriteGLES2InterfaceStub(
+  #   "gpu/command_buffer/client/raster_interface_stub_autogen.h")
+  # gen.WriteGLES2InterfaceStubImpl(
+  #     "gpu/command_buffer/client/raster_interface_stub_impl_autogen.h")
+  # gen.WriteGLES2ImplementationHeader(
+  #   "gpu/command_buffer/client/raster_implementation_autogen.h")
+  # gen.WriteGLES2Implementation(
+  #   "gpu/command_buffer/client/raster_implementation_impl_autogen.h")
+  # gen.WriteGLES2ImplementationUnitTests(
+  #     "gpu/command_buffer/client/raster_implementation_unittest_autogen.h")
+  # gen.WriteGLES2TraceImplementationHeader(
+  #     "gpu/command_buffer/client/raster_trace_implementation_autogen.h")
+  # gen.WriteGLES2TraceImplementation(
+  #     "gpu/command_buffer/client/raster_trace_implementation_impl_autogen.h")
+  # gen.WriteGLES2CLibImplementation(
+  #   "gpu/command_buffer/client/raster_c_lib_autogen.h")
+  # gen.WriteCmdHelperHeader(
+  #   "gpu/command_buffer/client/raster_cmd_helper_autogen.h")
+  # gen.WriteServiceImplementation(
+  #   "gpu/command_buffer/service/raster_cmd_decoder_autogen.h")
+  # gen.WriteServiceUnitTests(
+  #   "gpu/command_buffer/service/raster_cmd_decoder_unittest_%d_autogen.h")
+  # gen.WriteServiceUnitTestsForExtensions(
+  #   "gpu/command_buffer/service/"
+  #   "raster_cmd_decoder_unittest_extensions_autogen.h")
+  # gen.WriteServiceUtilsHeader(
+  #   "gpu/command_buffer/service/raster_cmd_validation_autogen.h")
+  # gen.WriteServiceUtilsImplementation(
+  #   "gpu/command_buffer/service/"
+  #   "raster_cmd_validation_implementation_autogen.h")
+  # gen.WriteCommonUtilsHeader(
+  #   "gpu/command_buffer/common/raster_cmd_utils_autogen.h")
+  # gen.WriteCommonUtilsImpl(
+  #   "gpu/command_buffer/common/raster_cmd_utils_implementation_autogen.h")
+
+  build_cmd_buffer_lib.Format(gen.generated_cpp_filenames)
+
+  if gen.errors > 0:
+    print "%d errors" % gen.errors
+    return 1
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main(sys.argv[1:]))
diff --git a/gpu/command_buffer/client/BUILD.gn b/gpu/command_buffer/client/BUILD.gn
index e047500..7b33e7dd 100644
--- a/gpu/command_buffer/client/BUILD.gn
+++ b/gpu/command_buffer/client/BUILD.gn
@@ -29,6 +29,18 @@
   }
 }
 
+group("raster") {
+  if (is_component_build) {
+    public_deps = [
+      "//gpu:raster",
+    ]
+  } else {
+    public_deps = [
+      ":raster_sources",
+    ]
+  }
+}
+
 source_set("client_sources") {
   # External code should depend on this via //gpu/client above rather than
   # depending on this directly or the component build will break.
@@ -169,20 +181,39 @@
 
   if (!is_nacl) {
     deps += [
-      ":raster_interface",
-      "//cc/paint",
       "//components/viz/common:resource_format",
       "//ui/gfx:color_space",
       "//ui/gfx/ipc/color",
     ]
-
-    sources += [
-      "raster_implementation_gles.cc",
-      "raster_implementation_gles.h",
-    ]
   }
 }
 
+source_set("raster_sources") {
+  # External code should depend on this via //gpu/raster above rather than
+  # depending on this directly or the component build will break.
+  visibility = [ "//gpu/*" ]
+  all_dependent_configs = [ "//third_party/khronos:khronos_headers" ]
+
+  configs += [ "//gpu:raster_implementation" ]
+  deps = [
+    ":client",
+    ":gles2_interface",
+    ":raster_interface",
+    "//base",
+    "//cc/paint",
+    "//components/viz/common:resource_format",
+    "//gpu/command_buffer/common",
+    "//gpu/command_buffer/common:gles2",
+    "//ui/gfx:color_space",
+    "//ui/gfx/geometry",
+    "//ui/gfx/ipc/color",
+  ]
+  sources = [
+    "raster_implementation_gles.cc",
+    "raster_implementation_gles.h",
+  ]
+}
+
 # Library emulates GLES2 using command_buffers.
 component("gles2_implementation_no_check") {
   sources = gles2_implementation_source_files
diff --git a/gpu/command_buffer/client/client_transfer_cache.cc b/gpu/command_buffer/client/client_transfer_cache.cc
index 701add8..9e8870d 100644
--- a/gpu/command_buffer/client/client_transfer_cache.cc
+++ b/gpu/command_buffer/client/client_transfer_cache.cc
@@ -4,44 +4,53 @@
 
 #include "gpu/command_buffer/client/client_transfer_cache.h"
 #include "gpu/command_buffer/client/gles2_cmd_helper.h"
-#include "gpu/command_buffer/client/mapped_memory.h"
 
 namespace gpu {
 
 ClientTransferCache::ClientTransferCache() = default;
 ClientTransferCache::~ClientTransferCache() = default;
 
-void ClientTransferCache::CreateCacheEntry(
-    gles2::GLES2CmdHelper* helper,
-    MappedMemoryManager* mapped_memory,
-    const cc::ClientTransferCacheEntry& entry) {
-  base::AutoLock hold(lock_);
-  ScopedMappedMemoryPtr mapped_alloc(entry.SerializedSize(), helper,
-                                     mapped_memory);
-  DCHECK(mapped_alloc.valid());
-  bool succeeded = entry.Serialize(base::make_span(
-      reinterpret_cast<uint8_t*>(mapped_alloc.address()), mapped_alloc.size()));
-  DCHECK(succeeded);
-
-  ClientDiscardableHandle::Id id =
-      discardable_manager_.CreateHandle(helper->command_buffer());
-  ClientDiscardableHandle handle = discardable_manager_.GetHandle(id);
-
-  // Store the mapping from the given namespace/id to the transfer cache id.
-  DCHECK(FindDiscardableHandleId(entry.Type(), entry.Id()).is_null());
-  DiscardableHandleIdMap(entry.Type())[entry.Id()] = id;
-
-  helper->CreateTransferCacheEntryINTERNAL(
-      static_cast<uint32_t>(entry.Type()), entry.Id(), handle.shm_id(),
-      handle.byte_offset(), mapped_alloc.shm_id(), mapped_alloc.offset(),
-      mapped_alloc.size());
+void* ClientTransferCache::MapEntry(gles2::GLES2CmdHelper* helper,
+                                    MappedMemoryManager* mapped_memory,
+                                    size_t size) {
+  DCHECK(!mapped_ptr_);
+  mapped_ptr_.emplace(size, helper, mapped_memory);
+  if (!mapped_ptr_->valid()) {
+    mapped_ptr_ = base::nullopt;
+    return nullptr;
+  } else {
+    return mapped_ptr_->address();
+  }
 }
 
-bool ClientTransferCache::LockTransferCacheEntry(
-    cc::TransferCacheEntryType type,
-    uint32_t id) {
+void ClientTransferCache::UnmapAndCreateEntry(gles2::GLES2CmdHelper* helper,
+                                              uint32_t type,
+                                              uint32_t id) {
+  DCHECK(mapped_ptr_);
+  EntryKey key(type, id);
+
   base::AutoLock hold(lock_);
-  auto discardable_handle_id = FindDiscardableHandleId(type, id);
+  ClientDiscardableHandle::Id discardable_handle_id =
+      discardable_manager_.CreateHandle(helper->command_buffer());
+  ClientDiscardableHandle handle =
+      discardable_manager_.GetHandle(discardable_handle_id);
+
+  // Store the mapping from the given namespace/discardable_handle_id to the
+  // transfer cache discardable_handle_id.
+  DCHECK(FindDiscardableHandleId(key).is_null());
+  discardable_handle_id_map_.emplace(key, discardable_handle_id);
+
+  helper->CreateTransferCacheEntryINTERNAL(
+      type, id, handle.shm_id(), handle.byte_offset(), mapped_ptr_->shm_id(),
+      mapped_ptr_->offset(), mapped_ptr_->size());
+  mapped_ptr_ = base::nullopt;
+}
+
+bool ClientTransferCache::LockEntry(uint32_t type, uint32_t id) {
+  EntryKey key(type, id);
+
+  base::AutoLock hold(lock_);
+  auto discardable_handle_id = FindDiscardableHandleId(key);
   if (discardable_handle_id.is_null())
     return false;
 
@@ -49,55 +58,41 @@
     return true;
 
   // Could not lock. Entry is already deleted service side.
-  DiscardableHandleIdMap(type).erase(id);
+  discardable_handle_id_map_.erase(key);
   return false;
 }
 
-void ClientTransferCache::UnlockTransferCacheEntries(
+void ClientTransferCache::UnlockEntries(
     gles2::GLES2CmdHelper* helper,
-    const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-        entries) {
+    const std::vector<std::pair<uint32_t, uint32_t>>& entries) {
   base::AutoLock hold(lock_);
   for (const auto& entry : entries) {
-    auto type = entry.first;
-    auto id = entry.second;
-    DCHECK(!FindDiscardableHandleId(type, id).is_null());
-    helper->UnlockTransferCacheEntryINTERNAL(static_cast<uint32_t>(type), id);
+    DCHECK(!FindDiscardableHandleId(entry).is_null());
+    helper->UnlockTransferCacheEntryINTERNAL(entry.first, entry.second);
   }
 }
 
-void ClientTransferCache::DeleteTransferCacheEntry(
-    gles2::GLES2CmdHelper* helper,
-    cc::TransferCacheEntryType type,
-    uint32_t id) {
+void ClientTransferCache::DeleteEntry(gles2::GLES2CmdHelper* helper,
+                                      uint32_t type,
+                                      uint32_t id) {
+  EntryKey key(type, id);
   base::AutoLock hold(lock_);
-  auto discardable_handle_id = FindDiscardableHandleId(type, id);
+  auto discardable_handle_id = FindDiscardableHandleId(key);
   if (discardable_handle_id.is_null())
     return;
 
   discardable_manager_.FreeHandle(discardable_handle_id);
-  helper->DeleteTransferCacheEntryINTERNAL(static_cast<uint32_t>(type), id);
-  DiscardableHandleIdMap(type).erase(id);
+  helper->DeleteTransferCacheEntryINTERNAL(type, id);
+  discardable_handle_id_map_.erase(key);
 }
 
 ClientDiscardableHandle::Id ClientTransferCache::FindDiscardableHandleId(
-    cc::TransferCacheEntryType type,
-    uint32_t id) {
+    const EntryKey& key) {
   lock_.AssertAcquired();
-  const auto& id_map = DiscardableHandleIdMap(type);
-  auto id_map_it = id_map.find(id);
-  if (id_map_it == id_map.end())
+  auto id_map_it = discardable_handle_id_map_.find(key);
+  if (id_map_it == discardable_handle_id_map_.end())
     return ClientDiscardableHandle::Id();
   return id_map_it->second;
 }
 
-std::map<uint32_t, ClientDiscardableHandle::Id>&
-ClientTransferCache::DiscardableHandleIdMap(
-    cc::TransferCacheEntryType entry_type) {
-  lock_.AssertAcquired();
-  DCHECK_LE(static_cast<uint32_t>(entry_type),
-            static_cast<uint32_t>(cc::TransferCacheEntryType::kLast));
-  return discardable_handle_id_map_[static_cast<uint32_t>(entry_type)];
-}
-
 }  // namespace gpu
diff --git a/gpu/command_buffer/client/client_transfer_cache.h b/gpu/command_buffer/client/client_transfer_cache.h
index ee5444e..d2199ae 100644
--- a/gpu/command_buffer/client/client_transfer_cache.h
+++ b/gpu/command_buffer/client/client_transfer_cache.h
@@ -7,11 +7,12 @@
 
 #include <map>
 
+#include "base/optional.h"
 #include "base/synchronization/lock.h"
-#include "cc/paint/transfer_cache_entry.h"
 #include "gpu/command_buffer/client/client_discardable_manager.h"
 #include "gpu/command_buffer/client/gles2_impl_export.h"
 #include "gpu/command_buffer/client/gles2_interface.h"
+#include "gpu/command_buffer/client/mapped_memory.h"
 
 namespace gpu {
 namespace gles2 {
@@ -44,31 +45,27 @@
   ClientTransferCache();
   ~ClientTransferCache();
 
-  void CreateCacheEntry(gles2::GLES2CmdHelper* helper,
-                        MappedMemoryManager* mapped_memory,
-                        const cc::ClientTransferCacheEntry& entry);
-  bool LockTransferCacheEntry(cc::TransferCacheEntryType type, uint32_t id);
-  void UnlockTransferCacheEntries(
-      gles2::GLES2CmdHelper* helper,
-      const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-          entries);
-  void DeleteTransferCacheEntry(gles2::GLES2CmdHelper* helper,
-                                cc::TransferCacheEntryType type,
-                                uint32_t id);
+  void* MapEntry(gles2::GLES2CmdHelper* helper,
+                 MappedMemoryManager* mapped_memory,
+                 size_t size);
+  void UnmapAndCreateEntry(gles2::GLES2CmdHelper* helper,
+                           uint32_t type,
+                           uint32_t id);
+  bool LockEntry(uint32_t type, uint32_t id);
+  void UnlockEntries(gles2::GLES2CmdHelper* helper,
+                     const std::vector<std::pair<uint32_t, uint32_t>>& entries);
+  void DeleteEntry(gles2::GLES2CmdHelper* helper, uint32_t type, uint32_t id);
 
  private:
-  ClientDiscardableHandle::Id FindDiscardableHandleId(
-      cc::TransferCacheEntryType type,
-      uint32_t id);
+  using EntryKey = std::pair<uint32_t, uint32_t>;
+  ClientDiscardableHandle::Id FindDiscardableHandleId(const EntryKey& key);
 
-  std::map<uint32_t, ClientDiscardableHandle::Id>& DiscardableHandleIdMap(
-      cc::TransferCacheEntryType entry_type);
+  base::Optional<ScopedMappedMemoryPtr> mapped_ptr_;
 
   // Access to other members must always be done with |lock_| held.
   base::Lock lock_;
   ClientDiscardableManager discardable_manager_;
-  std::map<uint32_t, ClientDiscardableHandle::Id> discardable_handle_id_map_
-      [static_cast<uint32_t>(cc::TransferCacheEntryType::kLast) + 1];
+  std::map<EntryKey, ClientDiscardableHandle::Id> discardable_handle_id_map_;
 };
 
 }  // namespace gpu
diff --git a/gpu/command_buffer/client/context_support.h b/gpu/command_buffer/client/context_support.h
index 76ed7654..5f78198 100644
--- a/gpu/command_buffer/client/context_support.h
+++ b/gpu/command_buffer/client/context_support.h
@@ -9,13 +9,8 @@
 #include <vector>
 
 #include "base/callback.h"
-#include "cc/paint/transfer_cache_entry.h"
 #include "ui/gfx/overlay_transform.h"
 
-namespace cc {
-class ClientTransferCacheEntry;
-}
-
 namespace gfx {
 class GpuFence;
 class Rect;
@@ -98,15 +93,25 @@
   // Access to transfer cache functionality for OOP raster. Only
   // ThreadsafeLockTransferCacheEntry can be accessed without holding the
   // context lock.
-  virtual void CreateTransferCacheEntry(
-      const cc::ClientTransferCacheEntry& entry) = 0;
-  virtual bool ThreadsafeLockTransferCacheEntry(cc::TransferCacheEntryType type,
-                                                uint32_t id) = 0;
+
+  // Maps a buffer that will receive serialized data for an entry to be created.
+  // Returns nullptr on failure. If success, must be paired with a call to
+  // UnmapAndCreateTransferCacheEntry.
+  virtual void* MapTransferCacheEntry(size_t serialized_size) = 0;
+
+  // Unmaps the buffer and creates a transfer cache entry with the serialized
+  // data.
+  virtual void UnmapAndCreateTransferCacheEntry(uint32_t type, uint32_t id) = 0;
+
+  // Locks a transfer cache entry. May be called on any thread.
+  virtual bool ThreadsafeLockTransferCacheEntry(uint32_t type, uint32_t id) = 0;
+
+  // Unlocks transfer cache entries.
   virtual void UnlockTransferCacheEntries(
-      const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-          entries) = 0;
-  virtual void DeleteTransferCacheEntry(cc::TransferCacheEntryType type,
-                                        uint32_t id) = 0;
+      const std::vector<std::pair<uint32_t, uint32_t>>& entries) = 0;
+
+  // Delete a transfer cache entry.
+  virtual void DeleteTransferCacheEntry(uint32_t type, uint32_t id) = 0;
 
   virtual unsigned int GetTransferBufferFreeSize() const = 0;
 
diff --git a/gpu/command_buffer/client/gles2_implementation.cc b/gpu/command_buffer/client/gles2_implementation.cc
index 12581cc..58e1c8a 100644
--- a/gpu/command_buffer/client/gles2_implementation.cc
+++ b/gpu/command_buffer/client/gles2_implementation.cc
@@ -6148,27 +6148,28 @@
   return manager->TextureIsDeletedForTracing(texture_id);
 }
 
-void GLES2Implementation::CreateTransferCacheEntry(
-    const cc::ClientTransferCacheEntry& entry) {
-  transfer_cache_.CreateCacheEntry(helper_, mapped_memory_.get(), entry);
+void* GLES2Implementation::MapTransferCacheEntry(size_t serialized_size) {
+  return transfer_cache_.MapEntry(helper_, mapped_memory_.get(),
+                                  serialized_size);
 }
 
-bool GLES2Implementation::ThreadsafeLockTransferCacheEntry(
-    cc::TransferCacheEntryType type,
-    uint32_t id) {
-  return transfer_cache_.LockTransferCacheEntry(type, id);
+void GLES2Implementation::UnmapAndCreateTransferCacheEntry(uint32_t type,
+                                                           uint32_t id) {
+  transfer_cache_.UnmapAndCreateEntry(helper_, type, id);
+}
+
+bool GLES2Implementation::ThreadsafeLockTransferCacheEntry(uint32_t type,
+                                                           uint32_t id) {
+  return transfer_cache_.LockEntry(type, id);
 }
 
 void GLES2Implementation::UnlockTransferCacheEntries(
-    const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-        entries) {
-  transfer_cache_.UnlockTransferCacheEntries(helper_, entries);
+    const std::vector<std::pair<uint32_t, uint32_t>>& entries) {
+  transfer_cache_.UnlockEntries(helper_, entries);
 }
 
-void GLES2Implementation::DeleteTransferCacheEntry(
-    cc::TransferCacheEntryType type,
-    uint32_t id) {
-  transfer_cache_.DeleteTransferCacheEntry(helper_, type, id);
+void GLES2Implementation::DeleteTransferCacheEntry(uint32_t type, uint32_t id) {
+  transfer_cache_.DeleteEntry(helper_, type, id);
 }
 
 unsigned int GLES2Implementation::GetTransferBufferFreeSize() const {
diff --git a/gpu/command_buffer/client/gles2_implementation.h b/gpu/command_buffer/client/gles2_implementation.h
index 74738eb..7d76202 100644
--- a/gpu/command_buffer/client/gles2_implementation.h
+++ b/gpu/command_buffer/client/gles2_implementation.h
@@ -218,15 +218,12 @@
       uint32_t texture_id) override;
   bool ThreadsafeDiscardableTextureIsDeletedForTracing(
       uint32_t texture_id) override;
-  void CreateTransferCacheEntry(
-      const cc::ClientTransferCacheEntry& entry) override;
-  bool ThreadsafeLockTransferCacheEntry(cc::TransferCacheEntryType type,
-                                        uint32_t id) override;
+  void* MapTransferCacheEntry(size_t serialized_size) override;
+  void UnmapAndCreateTransferCacheEntry(uint32_t type, uint32_t id) override;
+  bool ThreadsafeLockTransferCacheEntry(uint32_t type, uint32_t id) override;
   void UnlockTransferCacheEntries(
-      const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-          entries) override;
-  void DeleteTransferCacheEntry(cc::TransferCacheEntryType type,
-                                uint32_t id) override;
+      const std::vector<std::pair<uint32_t, uint32_t>>& entries) override;
+  void DeleteTransferCacheEntry(uint32_t type, uint32_t id) override;
   unsigned int GetTransferBufferFreeSize() const override;
 
   // TODO(danakj): Move to ContextSupport once ContextProvider doesn't need to
diff --git a/gpu/command_buffer/client/raster_implementation_gles.cc b/gpu/command_buffer/client/raster_implementation_gles.cc
index 85fcd32..2675043 100644
--- a/gpu/command_buffer/client/raster_implementation_gles.cc
+++ b/gpu/command_buffer/client/raster_implementation_gles.cc
@@ -13,7 +13,7 @@
 #include "components/viz/common/resources/resource_format_utils.h"
 #include "gpu/GLES2/gl2extchromium.h"
 #include "gpu/command_buffer/client/context_support.h"
-#include "gpu/command_buffer/client/gles2_implementation.h"
+#include "gpu/command_buffer/client/gles2_interface.h"
 #include "gpu/command_buffer/common/capabilities.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/gfx/skia_util.h"
@@ -31,18 +31,28 @@
   ~TransferCacheSerializeHelperImpl() final = default;
 
  private:
-  bool LockEntryInternal(cc::TransferCacheEntryType type, uint32_t id) final {
-    return support_->ThreadsafeLockTransferCacheEntry(type, id);
+  bool LockEntryInternal(const EntryKey& key) final {
+    return support_->ThreadsafeLockTransferCacheEntry(
+        static_cast<uint32_t>(key.first), key.second);
   }
 
   void CreateEntryInternal(const cc::ClientTransferCacheEntry& entry) final {
-    support_->CreateTransferCacheEntry(entry);
+    size_t size = entry.SerializedSize();
+    void* data = support_->MapTransferCacheEntry(size);
+    // TODO(piman): handle error (failed to allocate/map shm)
+    DCHECK(data);
+    bool succeeded = entry.Serialize(
+        base::make_span(reinterpret_cast<uint8_t*>(data), size));
+    DCHECK(succeeded);
+    support_->UnmapAndCreateTransferCacheEntry(entry.UnsafeType(), entry.Id());
   }
 
-  void FlushEntriesInternal(
-      const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-          entries) final {
-    support_->UnlockTransferCacheEntries(entries);
+  void FlushEntriesInternal(std::set<EntryKey> entries) final {
+    std::vector<std::pair<uint32_t, uint32_t>> transformed;
+    transformed.reserve(entries.size());
+    for (const auto& e : entries)
+      transformed.emplace_back(static_cast<uint32_t>(e.first), e.second);
+    support_->UnlockTransferCacheEntries(transformed);
   }
 
   ContextSupport* support_;
diff --git a/gpu/command_buffer/client/raster_implementation_gles.h b/gpu/command_buffer/client/raster_implementation_gles.h
index 3357df1fc..92e34c5 100644
--- a/gpu/command_buffer/client/raster_implementation_gles.h
+++ b/gpu/command_buffer/client/raster_implementation_gles.h
@@ -6,10 +6,10 @@
 #define GPU_COMMAND_BUFFER_CLIENT_RASTER_IMPLEMENTATION_GLES_H_
 
 #include "base/macros.h"
-#include "gles2_impl_export.h"
 #include "gpu/command_buffer/client/gles2_interface.h"
 #include "gpu/command_buffer/client/raster_interface.h"
 #include "gpu/command_buffer/common/capabilities.h"
+#include "gpu/raster_export.h"
 
 namespace gpu {
 
@@ -20,7 +20,7 @@
 struct Capabilities;
 
 // An implementation of RasterInterface on top of GLES2Interface.
-class GLES2_IMPL_EXPORT RasterImplementationGLES : public RasterInterface {
+class RASTER_EXPORT RasterImplementationGLES : public RasterInterface {
  public:
   RasterImplementationGLES(gles2::GLES2Interface* gl,
                            ContextSupport* support,
diff --git a/gpu/command_buffer/client/raster_implementation_gles_unittest.cc b/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
index 28b5a6e..08462ec 100644
--- a/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
+++ b/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
@@ -194,18 +194,23 @@
       uint32_t texture_id) override {
     return false;
   }
-  void CreateTransferCacheEntry(
-      const cc::ClientTransferCacheEntry& entry) override {}
-  bool ThreadsafeLockTransferCacheEntry(cc::TransferCacheEntryType type,
-                                        uint32_t id) override {
+  void* MapTransferCacheEntry(size_t serialized_size) override {
+    mapped_transfer_cache_entry_.reset(new char[serialized_size]);
+    return mapped_transfer_cache_entry_.get();
+  }
+  void UnmapAndCreateTransferCacheEntry(uint32_t type, uint32_t id) override {
+    mapped_transfer_cache_entry_.reset();
+  }
+  bool ThreadsafeLockTransferCacheEntry(uint32_t type, uint32_t id) override {
     return true;
   }
   void UnlockTransferCacheEntries(
-      const std::vector<std::pair<cc::TransferCacheEntryType, uint32_t>>&
-          entries) override {}
-  void DeleteTransferCacheEntry(cc::TransferCacheEntryType type,
-                                uint32_t id) override {}
+      const std::vector<std::pair<uint32_t, uint32_t>>& entries) override {}
+  void DeleteTransferCacheEntry(uint32_t type, uint32_t id) override {}
   unsigned int GetTransferBufferFreeSize() const override { return 0; }
+
+ private:
+  std::unique_ptr<char[]> mapped_transfer_cache_entry_;
 };
 
 class ImageProviderStub : public cc::ImageProvider {
diff --git a/gpu/command_buffer/cmd_buffer_functions.txt b/gpu/command_buffer/gles2_cmd_buffer_functions.txt
similarity index 100%
rename from gpu/command_buffer/cmd_buffer_functions.txt
rename to gpu/command_buffer/gles2_cmd_buffer_functions.txt
diff --git a/gpu/command_buffer/raster_cmd_buffer_functions.txt b/gpu/command_buffer/raster_cmd_buffer_functions.txt
new file mode 100644
index 0000000..9a3c852
--- /dev/null
+++ b/gpu/command_buffer/raster_cmd_buffer_functions.txt
@@ -0,0 +1,66 @@
+// 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.
+
+// This file is read by build_raster_cmd_buffer.py to generate commands.
+
+GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
+GL_APICALL void         GL_APIENTRY glBindTexture (GLenumTextureBindTarget target, GLidBindTexture texture);
+GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenumTextureTarget target, GLint level, GLenumCompressedTextureFormat internalformat, GLsizei width, GLsizei height, GLintTextureBorder border, GLsizei imageSize, const voidOptional* data);
+GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizeiNotNegative n, const GLuint* textures);
+GL_APICALL void         GL_APIENTRY glFinish (void);
+GL_APICALL void         GL_APIENTRY glFlush (void);
+GL_APICALL void         GL_APIENTRY glGenTextures (GLsizeiNotNegative n, GLuint* textures);
+GL_APICALL GLenum       GL_APIENTRY glGetError (void);
+GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenumGLState pname, GLint* params);
+GL_APICALL void         GL_APIENTRY glPixelStorei (GLenumPixelStore pname, GLintPixelStoreAlignment param);
+GL_APICALL void         GL_APIENTRY glShallowFlushCHROMIUM (void);
+GL_APICALL void         GL_APIENTRY glOrderingBarrierCHROMIUM (void);
+GL_APICALL void         GL_APIENTRY glTexImage2D (GLenumTextureTarget target, GLint level, GLintTextureInternalFormat internalformat, GLsizei width, GLsizei height, GLintTextureBorder border, GLenumTextureFormat format, GLenumPixelType type, const void* pixels);
+GL_APICALL void         GL_APIENTRY glTexParameteri (GLenumTextureBindTarget target, GLenumTextureParameter pname, GLint param);
+GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenumTextureTarget target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenumTextureFormat format, GLenumPixelType type, const void* pixels);
+GL_APICALL void         GL_APIENTRY glTexStorage2DEXT (GLenumTextureBindTarget target, GLsizei levels, GLenumTextureInternalFormatStorage internalFormat, GLsizei width, GLsizei height);
+GL_APICALL void         GL_APIENTRY glGenQueriesEXT (GLsizeiNotNegative n, GLuint* queries);
+GL_APICALL void         GL_APIENTRY glDeleteQueriesEXT (GLsizeiNotNegative n, const GLuint* queries);
+GL_APICALL void         GL_APIENTRY glBeginQueryEXT (GLenumQueryTarget target, GLidQuery id);
+GL_APICALL void         GL_APIENTRY glEndQueryEXT (GLenumQueryTarget target);
+GL_APICALL void         GL_APIENTRY glGetQueryObjectuivEXT (GLidQuery id, GLenumQueryObjectParameter pname, GLuint* params);
+
+// Non-GL commands.
+GL_APICALL GLuint       GL_APIENTRY glCreateImageCHROMIUM (ClientBuffer buffer, GLsizei width, GLsizei height, GLenum internalformat);
+GL_APICALL void         GL_APIENTRY glDestroyImageCHROMIUM (GLuint image_id);
+GL_APICALL void         GL_APIENTRY glCopySubTextureCHROMIUM (GLuint source_id, GLint source_level, GLenumTextureTarget dest_target, GLuint dest_id, GLint dest_level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height, GLboolean unpack_flip_y, GLboolean unpack_premultiply_alpha, GLboolean unpack_unmultiply_alpha);
+GL_APICALL void         GL_APIENTRY glCompressedCopyTextureCHROMIUM (GLuint source_id, GLuint dest_id);
+GL_APICALL void         GL_APIENTRY glGenMailboxCHROMIUM (GLbyte* mailbox);
+GL_APICALL void         GL_APIENTRY glProduceTextureDirectCHROMIUM (GLidBindTexture texture, const GLbyte* mailbox);
+GL_APICALL GLuint       GL_APIENTRY glCreateAndConsumeTextureCHROMIUM (const GLbyte* mailbox);
+GL_APICALL void         GL_APIENTRY glBindTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId);
+GL_APICALL void         GL_APIENTRY glReleaseTexImage2DCHROMIUM (GLenumTextureBindTarget target, GLint imageId);
+GL_APICALL void         GL_APIENTRY glTraceBeginCHROMIUM (const char* category_name, const char* trace_name);
+GL_APICALL void         GL_APIENTRY glTraceEndCHROMIUM (void);
+GL_APICALL void         GL_APIENTRY glLoseContextCHROMIUM (GLenumResetStatus current, GLenumResetStatus other);
+GL_APICALL void         GL_APIENTRY glGenSyncTokenCHROMIUM (GLbyte* sync_token);
+GL_APICALL void         GL_APIENTRY glGenUnverifiedSyncTokenCHROMIUM (GLbyte* sync_token);
+GL_APICALL void         GL_APIENTRY glVerifySyncTokensCHROMIUM (GLbyte** sync_tokens, GLsizei count);
+GL_APICALL void         GL_APIENTRY glWaitSyncTokenCHROMIUM (const GLbyte* sync_token);
+
+// Extension KHR_robustness
+GL_APICALL GLenum	GL_APIENTRY glGetGraphicsResetStatusKHR (void);
+
+// Extension CHROMIUM_discardable_textures
+GL_APICALL void         GL_APIENTRY glInitializeDiscardableTextureCHROMIUM (GLuint texture_id);
+GL_APICALL void         GL_APIENTRY glUnlockDiscardableTextureCHROMIUM (GLuint texture_id);
+GL_APICALL bool         GL_APIENTRY glLockDiscardableTextureCHROMIUM (GLuint texture_id);
+
+// Extension CHROMIUM_raster_transport
+GL_APICALL void         GL_APIENTRY glBeginRasterCHROMIUM (GLuint texture_id, GLuint sk_color, GLuint msaa_sample_count, GLboolean can_use_lcd_text, GLboolean use_distance_field_text, GLint pixel_config);
+GL_APICALL void         GL_APIENTRY glRasterCHROMIUM (GLsizeiptr size, const void* list);
+GL_APICALL void*        GL_APIENTRY glMapRasterCHROMIUM (GLsizeiptr size);
+GL_APICALL void         GL_APIENTRY glUnmapRasterCHROMIUM (GLsizeiptr written_size);
+GL_APICALL void         GL_APIENTRY glEndRasterCHROMIUM (void);
+GL_APICALL void         GL_APIENTRY glCreateTransferCacheEntryINTERNAL (GLuint entry_type, GLuint entry_id, GLuint handle_shm_id, GLuint handle_shm_offset, GLuint data_shm_id, GLuint data_shm_offset, GLuint data_size);
+GL_APICALL void         GL_APIENTRY glDeleteTransferCacheEntryINTERNAL (GLuint entry_type, GLuint entry_id);
+GL_APICALL void         GL_APIENTRY glUnlockTransferCacheEntryINTERNAL (GLuint entry_type, GLuint entry_id);
+
+// Extension CHROMIUM_texture_storage_image
+GL_APICALL void         GL_APIENTRY glTexStorage2DImageCHROMIUM (GLenumTextureBindTarget target, GLenumTextureInternalFormatStorage internalFormat, GLenumClientBufferUsage bufferUsage, GLsizei width, GLsizei height);
diff --git a/gpu/ipc/service/gpu_channel.cc b/gpu/ipc/service/gpu_channel.cc
index fa01d89..2e83d3ef 100644
--- a/gpu/ipc/service/gpu_channel.cc
+++ b/gpu/ipc/service/gpu_channel.cc
@@ -572,6 +572,7 @@
     return;
   }
 
+  int32_t stream_id = init_params.stream_id;
   int32_t share_group_id = init_params.share_group_id;
   CommandBufferStub* share_group = LookupCommandBuffer(share_group_id);
 
@@ -580,21 +581,12 @@
     return;
   }
 
-  int32_t stream_id = init_params.stream_id;
   if (share_group && stream_id != share_group->stream_id()) {
     LOG(ERROR) << "ContextResult::kFatalFailure: "
                   "stream id does not match share group stream id";
     return;
   }
 
-  SchedulingPriority stream_priority = init_params.stream_priority;
-  if (stream_priority <= SchedulingPriority::kHigh && !is_gpu_host_) {
-    LOG(ERROR)
-        << "ContextResult::kFatalFailure: "
-           "high priority stream not allowed on a non-privileged channel";
-    return;
-  }
-
   if (share_group && !share_group->decoder_context()) {
     // This should catch test errors where we did not Initialize the
     // share_group's CommandBuffer.
@@ -616,7 +608,7 @@
 
   SequenceId sequence_id = stream_sequences_[stream_id];
   if (sequence_id.is_null()) {
-    sequence_id = scheduler_->CreateSequence(stream_priority);
+    sequence_id = scheduler_->CreateSequence(init_params.stream_priority);
     stream_sequences_[stream_id] = sequence_id;
   }
 
diff --git a/gpu/ipc/service/gpu_channel_unittest.cc b/gpu/ipc/service/gpu_channel_unittest.cc
index 570a682..2e12e4c8 100644
--- a/gpu/ipc/service/gpu_channel_unittest.cc
+++ b/gpu/ipc/service/gpu_channel_unittest.cc
@@ -141,74 +141,6 @@
   EXPECT_FALSE(stub);
 }
 
-TEST_F(GpuChannelTest, HighPriorityStreamsDisallowed) {
-  int32_t kClientId = 1;
-  bool is_gpu_host = false;
-  GpuChannel* channel = CreateChannel(kClientId, is_gpu_host);
-  ASSERT_TRUE(channel);
-
-  // Highest priority is disallowed.
-  int32_t kRouteId = 1;
-  int32_t kStreamId = 1;
-  GPUCreateCommandBufferConfig init_params;
-  init_params.surface_handle = kNullSurfaceHandle;
-  init_params.share_group_id = MSG_ROUTING_NONE;
-  init_params.stream_id = kStreamId;
-  init_params.stream_priority = SchedulingPriority::kHigh;
-  init_params.attribs = ContextCreationAttribs();
-  init_params.active_url = GURL();
-  gpu::ContextResult result = gpu::ContextResult::kSuccess;
-  gpu::Capabilities capabilities;
-  HandleMessage(channel, new GpuChannelMsg_CreateCommandBuffer(
-                             init_params, kRouteId, GetSharedHandle(), &result,
-                             &capabilities));
-  EXPECT_EQ(result, gpu::ContextResult::kFatalFailure);
-  EXPECT_FALSE(channel->LookupCommandBuffer(kRouteId));
-
-  // High priority is also disallowed.
-  init_params.stream_priority = SchedulingPriority::kHigh;
-  HandleMessage(channel, new GpuChannelMsg_CreateCommandBuffer(
-                             init_params, kRouteId, GetSharedHandle(), &result,
-                             &capabilities));
-  EXPECT_EQ(result, gpu::ContextResult::kFatalFailure);
-  EXPECT_FALSE(channel->LookupCommandBuffer(kRouteId));
-}
-
-TEST_F(GpuChannelTest, HighPriorityStreamsAllowed) {
-  int32_t kClientId = 1;
-  bool is_gpu_host = true;
-  GpuChannel* channel = CreateChannel(kClientId, is_gpu_host);
-  ASSERT_TRUE(channel);
-
-  // Highest priority is allowed.
-  int32_t kRouteId1 = 1;
-  GPUCreateCommandBufferConfig init_params;
-  init_params.surface_handle = kNullSurfaceHandle;
-  init_params.share_group_id = MSG_ROUTING_NONE;
-  init_params.stream_id = 1;
-  init_params.stream_priority = SchedulingPriority::kHigh;
-  init_params.attribs = ContextCreationAttribs();
-  init_params.active_url = GURL();
-  gpu::ContextResult result = gpu::ContextResult::kSuccess;
-  gpu::Capabilities capabilities;
-  HandleMessage(channel, new GpuChannelMsg_CreateCommandBuffer(
-                             init_params, kRouteId1, GetSharedHandle(), &result,
-                             &capabilities));
-  EXPECT_EQ(result, gpu::ContextResult::kSuccess);
-  EXPECT_TRUE(channel->LookupCommandBuffer(kRouteId1));
-
-  // High priority is also allowed.
-  int32_t kRouteId2 = 2;
-  init_params.stream_id = 2;
-  init_params.stream_priority = SchedulingPriority::kHigh;
-  result = gpu::ContextResult::kSuccess;
-  HandleMessage(channel, new GpuChannelMsg_CreateCommandBuffer(
-                             init_params, kRouteId2, GetSharedHandle(), &result,
-                             &capabilities));
-  EXPECT_EQ(result, gpu::ContextResult::kSuccess);
-  EXPECT_TRUE(channel->LookupCommandBuffer(kRouteId2));
-}
-
 TEST_F(GpuChannelTest, CreateFailsIfSharedContextIsLost) {
   int32_t kClientId = 1;
   GpuChannel* channel = CreateChannel(kClientId, false);
diff --git a/gpu/raster_export.h b/gpu/raster_export.h
new file mode 100644
index 0000000..6e1641d
--- /dev/null
+++ b/gpu/raster_export.h
@@ -0,0 +1,29 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GPU_RASTER_EXPORT_H_
+#define GPU_RASTER_EXPORT_H_
+
+#if defined(COMPONENT_BUILD) && !defined(NACL_WIN64)
+#if defined(WIN32)
+
+#if defined(RASTER_IMPLEMENTATION)
+#define RASTER_EXPORT __declspec(dllexport)
+#else
+#define RASTER_EXPORT __declspec(dllimport)
+#endif  // defined(RASTER_IMPLEMENTATION)
+
+#else  // defined(WIN32)
+#if defined(RASTER_IMPLEMENTATION)
+#define RASTER_EXPORT __attribute__((visibility("default")))
+#else
+#define RASTER_EXPORT
+#endif
+#endif
+
+#else  // defined(COMPONENT_BUILD)
+#define RASTER_EXPORT
+#endif
+
+#endif  // GPU_RASTER_EXPORT_H_
diff --git a/headless/app/headless_shell_switches.cc b/headless/app/headless_shell_switches.cc
index be4da2be..a25a7c0 100644
--- a/headless/app/headless_shell_switches.cc
+++ b/headless/app/headless_shell_switches.cc
@@ -48,8 +48,8 @@
 
 // Specifies a list of hosts for whom we bypass proxy settings and use direct
 // connections. Ignored unless --proxy-server is also specified. This is a
-// comma-separated list of bypass rules. See: "net/proxy/proxy_bypass_rules.h"
-// for the format of these rules.
+// comma-separated list of bypass rules. See:
+// "net/proxy_resolution/proxy_bypass_rules.h" for the format of these rules.
 const char kProxyBypassList[] = "proxy-bypass-list";
 
 // Uses a specified proxy server, overrides system settings. This switch only
diff --git a/headless/lib/browser/headless_url_request_context_getter.cc b/headless/lib/browser/headless_url_request_context_getter.cc
index 92e6bd1..f45a1f0 100644
--- a/headless/lib/browser/headless_url_request_context_getter.cc
+++ b/headless/lib/browser/headless_url_request_context_getter.cc
@@ -25,7 +25,7 @@
 #include "net/http/http_auth_scheme.h"
 #include "net/http/http_transaction_factory.h"
 #include "net/http/http_util.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/url_request/url_request_context.h"
diff --git a/headless/lib/browser/headless_url_request_context_getter.h b/headless/lib/browser/headless_url_request_context_getter.h
index 50d799b..e60379e1 100644
--- a/headless/lib/browser/headless_url_request_context_getter.h
+++ b/headless/lib/browser/headless_url_request_context_getter.h
@@ -15,8 +15,8 @@
 #include "base/single_thread_task_runner.h"
 #include "content/public/browser/browser_context.h"
 #include "headless/public/headless_browser.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "net/url_request/url_request_context_getter.h"
 #include "net/url_request/url_request_job_factory.h"
 
diff --git a/headless/public/headless_browser_context.h b/headless/public/headless_browser_context.h
index 1d117de..057b10e 100644
--- a/headless/public/headless_browser_context.h
+++ b/headless/public/headless_browser_context.h
@@ -17,7 +17,7 @@
 #include "headless/lib/browser/headless_network_conditions.h"
 #include "headless/public/headless_export.h"
 #include "headless/public/headless_web_contents.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_job_factory.h"
 
 namespace base {
diff --git a/ios/chrome/app/strings/ios_chromium_strings.grd b/ios/chrome/app/strings/ios_chromium_strings.grd
index c37b7d17..443358d8 100644
--- a/ios/chrome/app/strings/ios_chromium_strings.grd
+++ b/ios/chrome/app/strings/ios_chromium_strings.grd
@@ -156,7 +156,7 @@
       <message name="IDS_IOS_DISCONNECT_DIALOG_TITLE" desc="The title of the disconnect dialog [Length: 30em].">
         Sign out of Chromium?
       </message>
-      <message name="IDS_IOS_FIRSTRUN_AGREE_TO_TERMS" desc="Label containing a link to the Terms of Service and Privacy Notice, displayed in the first run flow. [Length: 70em] [iOS only]">
+      <message name="IDS_IOS_FIRSTRUN_AGREE_TO_TERMS" desc="Label containing a link to the Terms of Service and Privacy Notice, displayed in the first run flow. [Length: 117em] [iOS only]">
         By using this application, you agree to Chromium’s <ph name="BEGIN_LINK_TOS">BEGIN_LINK_TOS</ph>Terms of Service<ph name="END_LINK_TOS">END_LINK_TOS</ph> and <ph name="BEGIN_LINK_PRIVACY">BEGIN_LINK_PRIVACY</ph>Privacy Notice<ph name="END_LINK_PRIVACY">END_LINK_PRIVACY</ph>.
       </message>
       <message name="IDS_IOS_FIRSTRUN_NEW_OPT_IN_LABEL" desc="User metrics opt-in label [Length: 80em] [iOS only]">
diff --git a/ios/chrome/app/strings/ios_google_chrome_strings.grd b/ios/chrome/app/strings/ios_google_chrome_strings.grd
index 688b0df..bffe798 100644
--- a/ios/chrome/app/strings/ios_google_chrome_strings.grd
+++ b/ios/chrome/app/strings/ios_google_chrome_strings.grd
@@ -156,7 +156,7 @@
       <message name="IDS_IOS_DISCONNECT_DIALOG_TITLE" desc="The title of the disconnect dialog [Length: 30em].">
         Sign out of Chrome?
       </message>
-      <message name="IDS_IOS_FIRSTRUN_AGREE_TO_TERMS" desc="Label containing a link to the Terms of Service and Privacy Notice, displayed in the first run flow. [Length: 70em] [iOS only]">
+      <message name="IDS_IOS_FIRSTRUN_AGREE_TO_TERMS" desc="Label containing a link to the Terms of Service and Privacy Notice, displayed in the first run flow. [Length: 117em] [iOS only]">
       By using this application, you agree to Chrome’s <ph name="BEGIN_LINK_TOS">BEGIN_LINK_TOS</ph>Terms of Service<ph name="END_LINK_TOS">END_LINK_TOS</ph> and <ph name="BEGIN_LINK_PRIVACY">BEGIN_LINK_PRIVACY</ph>Privacy Notice<ph name="END_LINK_PRIVACY">END_LINK_PRIVACY</ph>.
       </message>
       <message name="IDS_IOS_FIRSTRUN_NEW_OPT_IN_LABEL" desc="User metrics opt-in label [Length: 80em] [iOS only]">
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm b/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm
index 5eaf8c3..9494d4b 100644
--- a/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm
+++ b/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm
@@ -55,9 +55,9 @@
 #include "net/http/http_util.h"
 #include "net/http/transport_security_persister.h"
 #include "net/nqe/network_quality_estimator.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/data_protocol_handler.h"
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.h b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.h
index 0f27ac8..d8a7fb0 100644
--- a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.h
+++ b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.h
@@ -33,8 +33,8 @@
   void DidStopLoading(web::WebState* web_state) override;
   void DidChangeVisibleSecurityState(web::WebState* web_state) override;
   void WebStateDestroyed(web::WebState* web_state) override;
-  // Setter for whether the current page's SSL is broken.
-  void SetIsSSLBroken(bool broken);
+  // Setter for whether the current page's SSL should disable fullscreen.
+  void SetDisableFullscreenForSSL(bool disable);
   // Setter for whether the WebState is currently loading.
   void SetIsLoading(bool loading);
 
@@ -47,7 +47,7 @@
   // Observer for |web_state_|'s scroll view proxy.
   __strong FullscreenWebScrollViewReplacementHandler*
       scroll_view_replacement_handler_;
-  // The disabler for broken SSL.
+  // The disabler for invalid SSL states.
   std::unique_ptr<ScopedFullscreenDisabler> ssl_disabler_;
   // The disabler for loading.
   std::unique_ptr<ScopedFullscreenDisabler> loading_disabler_;
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.mm
index f0368cb..5c32dba69 100644
--- a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.mm
+++ b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer.mm
@@ -18,8 +18,10 @@
 #endif
 
 namespace {
-// Returns whether |web_state|'s visible NavigationItem has a broken SSL.
-bool IsWebStateSSLBroken(web::WebState* web_state) {
+// Returns whether fullscreen should be disabled for |web_state|'s SSL status.
+// This will return true if the visible NavigationItem's SSL has a broken
+// security style or is showing mixed content.
+bool ShouldDisableFullscreenForWebStateSSL(web::WebState* web_state) {
   if (!web_state)
     return false;
   web::NavigationManager* manager = web_state->GetNavigationManager();
@@ -29,7 +31,8 @@
   if (!item)
     return false;
   const web::SSLStatus& ssl = item->GetSSL();
-  return ssl.security_style == web::SECURITY_STYLE_AUTHENTICATION_BROKEN;
+  return ssl.security_style == web::SECURITY_STYLE_AUTHENTICATION_BROKEN ||
+         (ssl.content_status & web::SSLStatus::DISPLAYED_INSECURE_CONTENT) > 0;
 }
 }  // namespace
 
@@ -57,7 +60,7 @@
     web_state_->AddObserver(this);
   // Update the model according to the new WebState.
   SetIsLoading(web_state_ ? web_state->IsLoading() : false);
-  SetIsSSLBroken(web_state_ ? IsWebStateSSLBroken(web_state_) : false);
+  SetDisableFullscreenForSSL(ShouldDisableFullscreenForWebStateSSL(web_state_));
   // Update the scroll view replacement handler's proxy.
   scroll_view_replacement_handler_.proxy =
       web_state_ ? web_state_->GetWebViewProxy() : nil;
@@ -67,6 +70,7 @@
     web::WebState* web_state,
     web::NavigationContext* navigation_context) {
   model_->ResetForNavigation();
+  SetDisableFullscreenForSSL(ShouldDisableFullscreenForWebStateSSL(web_state));
 }
 
 void FullscreenWebStateObserver::DidStartLoading(web::WebState* web_state) {
@@ -79,7 +83,7 @@
 
 void FullscreenWebStateObserver::DidChangeVisibleSecurityState(
     web::WebState* web_state) {
-  SetIsSSLBroken(IsWebStateSSLBroken(web_state));
+  SetDisableFullscreenForSSL(ShouldDisableFullscreenForWebStateSSL(web_state));
 }
 
 void FullscreenWebStateObserver::WebStateDestroyed(web::WebState* web_state) {
@@ -87,10 +91,10 @@
   SetWebState(nullptr);
 }
 
-void FullscreenWebStateObserver::SetIsSSLBroken(bool broken) {
-  if (!!ssl_disabler_.get() == broken)
+void FullscreenWebStateObserver::SetDisableFullscreenForSSL(bool disable) {
+  if (!!ssl_disabler_.get() == disable)
     return;
-  ssl_disabler_ = broken
+  ssl_disabler_ = disable
                       ? std::make_unique<ScopedFullscreenDisabler>(controller_)
                       : nullptr;
 }
diff --git a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm
index bc7f5a3..882c32b6 100644
--- a/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm
+++ b/ios/chrome/browser/ui/omnibox/omnibox_view_ios.mm
@@ -706,8 +706,7 @@
 }
 
 void OmniboxViewIOS::UpdateAppearance() {
-  base::string16 text =
-      controller_->GetToolbarModel()->GetFormattedURL(nullptr);
+  base::string16 text = controller_->GetToolbarModel()->GetFormattedFullURL();
   // If Siri is thinking, treat that as user input being in progress.  It is
   // unsafe to modify the text field while voice entry is pending.
   if (model()->SetPermanentText(text)) {
diff --git a/ios/chrome/browser/ui/settings/BUILD.gn b/ios/chrome/browser/ui/settings/BUILD.gn
index 4b8f90c..0d2dcca 100644
--- a/ios/chrome/browser/ui/settings/BUILD.gn
+++ b/ios/chrome/browser/ui/settings/BUILD.gn
@@ -292,6 +292,7 @@
     "//ios/chrome/browser/web:test_support",
     "//ios/chrome/common",
     "//ios/chrome/test:test_support",
+    "//ios/chrome/test/app:test_support",
     "//ios/public/provider/chrome/browser",
     "//ios/public/provider/chrome/browser/voice",
     "//ios/testing:ios_test_support",
diff --git a/ios/chrome/browser/ui/settings/password_details_collection_view_controller_unittest.mm b/ios/chrome/browser/ui/settings/password_details_collection_view_controller_unittest.mm
index e1330a0..8d1ed952 100644
--- a/ios/chrome/browser/ui/settings/password_details_collection_view_controller_unittest.mm
+++ b/ios/chrome/browser/ui/settings/password_details_collection_view_controller_unittest.mm
@@ -12,6 +12,7 @@
 #import "ios/chrome/browser/ui/settings/reauthentication_module.h"
 #import "ios/chrome/browser/web/chrome_web_test.h"
 #include "ios/chrome/grit/ios_strings.h"
+#include "ios/chrome/test/app/password_test_util.h"
 #include "ios/web/public/test/test_web_thread_bundle.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #import "testing/gtest_mac.h"
@@ -22,31 +23,6 @@
 #error "This file requires ARC support."
 #endif
 
-@interface MockReauthenticationModule : NSObject<ReauthenticationProtocol>
-
-@property(nonatomic, copy) NSString* localizedReasonForAuthentication;
-
-@end
-
-@implementation MockReauthenticationModule
-
-@synthesize localizedReasonForAuthentication =
-    _localizedReasonForAuthentication;
-
-- (BOOL)canAttemptReauth {
-  return YES;
-}
-
-- (void)attemptReauthWithLocalizedReason:(NSString*)localizedReason
-                    canReusePreviousAuth:(BOOL)canReusePreviousAuth
-                                 handler:(void (^)(BOOL success))
-                                             showCopyPasswordsHandler {
-  self.localizedReasonForAuthentication = localizedReason;
-  showCopyPasswordsHandler(YES);
-}
-
-@end
-
 @interface MockSavePasswordsCollectionViewController
     : NSObject<PasswordDetailsCollectionViewControllerDelegate>
 
@@ -98,19 +74,20 @@
   void SetUp() override {
     CollectionViewControllerTest::SetUp();
     delegate_ = [[MockSavePasswordsCollectionViewController alloc] init];
-    reauthenticationModule_ = [[MockReauthenticationModule alloc] init];
+    reauthentication_module_ = [[MockReauthenticationModule alloc] init];
+    reauthentication_module_.shouldSucceed = YES;
   }
 
   CollectionViewController* InstantiateController() override {
     return [[PasswordDetailsCollectionViewController alloc]
           initWithPasswordForm:form_
                       delegate:delegate_
-        reauthenticationModule:reauthenticationModule_];
+        reauthenticationModule:reauthentication_module_];
   }
 
   web::TestWebThreadBundle thread_bundle_;
   MockSavePasswordsCollectionViewController* delegate_;
-  MockReauthenticationModule* reauthenticationModule_;
+  MockReauthenticationModule* reauthentication_module_;
   NSString* origin_;
   autofill::PasswordForm form_;
 };
@@ -302,7 +279,7 @@
   EXPECT_TRUE(passwordItem.showingText);
   EXPECT_NSEQ(
       l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_REAUTH_REASON_SHOW),
-      reauthenticationModule_.localizedReasonForAuthentication);
+      reauthentication_module_.localizedReasonForAuthentication);
   CheckTextCellTitleWithId(IDS_IOS_SETTINGS_PASSWORD_HIDE_BUTTON,
                            kPasswordSection, kShowHideButtonItem);
 }
@@ -335,7 +312,7 @@
   EXPECT_NSEQ(kPassword, generalPasteboard.string);
   EXPECT_NSEQ(
       l10n_util::GetNSString(IDS_IOS_SETTINGS_PASSWORD_REAUTH_REASON_COPY),
-      reauthenticationModule_.localizedReasonForAuthentication);
+      reauthentication_module_.localizedReasonForAuthentication);
 }
 
 }  // namespace
diff --git a/ios/chrome/test/app/password_test_util.h b/ios/chrome/test/app/password_test_util.h
index 1dafd65..a586439 100644
--- a/ios/chrome/test/app/password_test_util.h
+++ b/ios/chrome/test/app/password_test_util.h
@@ -9,6 +9,9 @@
 
 @interface MockReauthenticationModule : NSObject<ReauthenticationProtocol>
 
+// Localized string containing the reason why reauthentication is requested.
+@property(nonatomic, copy) NSString* localizedReasonForAuthentication;
+
 // Indicates whether the device is capable of reauthenticating the user.
 @property(nonatomic, assign) BOOL canAttempt;
 
diff --git a/ios/chrome/test/app/password_test_util.mm b/ios/chrome/test/app/password_test_util.mm
index c84dcb8..734e133 100644
--- a/ios/chrome/test/app/password_test_util.mm
+++ b/ios/chrome/test/app/password_test_util.mm
@@ -15,6 +15,8 @@
 
 @implementation MockReauthenticationModule
 
+@synthesize localizedReasonForAuthentication =
+    _localizedReasonForAuthentication;
 @synthesize shouldSucceed = _shouldSucceed;
 @synthesize canAttempt = _canAttempt;
 
@@ -31,6 +33,7 @@
                     canReusePreviousAuth:(BOOL)canReusePreviousAuth
                                  handler:(void (^)(BOOL success))
                                              showCopyPasswordsHandler {
+  self.localizedReasonForAuthentication = localizedReason;
   showCopyPasswordsHandler(_shouldSucceed);
 }
 
diff --git a/ios/components/io_thread/ios_io_thread.mm b/ios/components/io_thread/ios_io_thread.mm
index 41edc3e..e2559a90 100644
--- a/ios/components/io_thread/ios_io_thread.mm
+++ b/ios/components/io_thread/ios_io_thread.mm
@@ -53,9 +53,9 @@
 #include "net/http/http_network_layer.h"
 #include "net/http/http_server_properties_impl.h"
 #include "net/log/net_log_event_type.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/tcp_client_socket.h"
 #include "net/spdy/chromium/spdy_session.h"
 #include "net/ssl/channel_id_service.h"
diff --git a/ios/web/BUILD.gn b/ios/web/BUILD.gn
index 7fd9fdb..19d8f09 100644
--- a/ios/web/BUILD.gn
+++ b/ios/web/BUILD.gn
@@ -245,7 +245,6 @@
   sources = [
     "navigation/crw_navigation_item_holder_unittest.mm",
     "navigation/crw_navigation_item_storage_unittest.mm",
-    "navigation/crw_placeholder_navigation_info_unittest.mm",
     "navigation/crw_session_controller_unittest.mm",
     "navigation/crw_session_storage_unittest.mm",
     "navigation/navigation_item_impl_unittest.mm",
diff --git a/ios/web/navigation/BUILD.gn b/ios/web/navigation/BUILD.gn
index d90958c..1e033e7a 100644
--- a/ios/web/navigation/BUILD.gn
+++ b/ios/web/navigation/BUILD.gn
@@ -20,8 +20,6 @@
   sources = [
     "crw_navigation_item_holder.h",
     "crw_navigation_item_holder.mm",
-    "crw_placeholder_navigation_info.h",
-    "crw_placeholder_navigation_info.mm",
     "crw_session_controller+private_constructors.h",
     "crw_session_controller.h",
     "crw_session_controller.mm",
diff --git a/ios/web/navigation/crw_placeholder_navigation_info.h b/ios/web/navigation/crw_placeholder_navigation_info.h
deleted file mode 100644
index 29c640e..0000000
--- a/ios/web/navigation/crw_placeholder_navigation_info.h
+++ /dev/null
@@ -1,46 +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 IOS_WEB_NAVIGATION_CRW_PLACEHOLDER_NAVIGATION_INFO_H_
-#define IOS_WEB_NAVIGATION_CRW_PLACEHOLDER_NAVIGATION_INFO_H_
-
-#import <WebKit/WebKit.h>
-
-#import "base/ios/block_types.h"
-
-NS_ASSUME_NONNULL_BEGIN
-
-// An NSObject wrapper for a completion handler for a placeholder navigation.
-//
-// A placeholder navigation is an "about:blank" page loaded into the WKWebView
-// that corresponds to Native View or WebUI URL. This navigation is inserted to
-// generate a WKBackForwardListItem for the Native View or WebUI URL in the
-// WebView so that the WKBackForwardList contains the full list of user-visible
-// navigations.
-//
-// Because loading in WKWebView is asynchronous, this object is attached to the
-// WKNavigation for the placeholder hold, and the completion handler is expected
-// to be executed in WKNavigationDelegate's |didFinishNavigation| callback to
-// trigger the NativeView or WebUI HTML load.
-@interface CRWPlaceholderNavigationInfo : NSObject
-
-// Create a new instance that encapsulates a completion handler to be executed
-// when |navigation| is finished.
-+ (instancetype)createForNavigation:(WKNavigation*)navigation
-              withCompletionHandler:(ProceduralBlock)completionHandler;
-
-// Returns the CRWPlaceholderNavigationInfo associated with |navigation|.
-+ (nullable CRWPlaceholderNavigationInfo*)infoForNavigation:
-    (nullable WKNavigation*)navigation;
-
-// Runs the completion handler saved in this object.
-- (void)runCompletionHandler;
-
-- (instancetype)init NS_UNAVAILABLE;
-
-@end
-
-NS_ASSUME_NONNULL_END
-
-#endif  // IOS_WEB_NAVIGATION_CRW_PLACEHOLDER_NAVIGATION_INFO_H_
diff --git a/ios/web/navigation/crw_placeholder_navigation_info.mm b/ios/web/navigation/crw_placeholder_navigation_info.mm
deleted file mode 100644
index b549682..0000000
--- a/ios/web/navigation/crw_placeholder_navigation_info.mm
+++ /dev/null
@@ -1,61 +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.
-
-#import "ios/web/navigation/crw_placeholder_navigation_info.h"
-
-#import <objc/runtime.h>
-
-#include "base/logging.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-// The address of this static variable is used to set and get the is-placeholder
-// flag value from a WKNavigation object. A WKNavigation is marked as a
-// placeholder if it is created by |loadPlaceholderInWebViewForURL|. Placeholder
-// navigations are used to create placeholder WKBackForwardListItems that
-// correspond to Native View or WebUI URLs.
-const void* kPlaceholderNavigationKey = &kPlaceholderNavigationKey;
-
-@interface CRWPlaceholderNavigationInfo ()
-
-// Initializes a new instance wrapping |handler|.
-- (instancetype)initWithCompletionHandler:(ProceduralBlock)handler
-    NS_DESIGNATED_INITIALIZER;
-
-@end
-
-@implementation CRWPlaceholderNavigationInfo {
-  ProceduralBlock _completionHandler;
-}
-
-+ (instancetype)createForNavigation:(nonnull WKNavigation*)navigation
-              withCompletionHandler:(ProceduralBlock)handler {
-  DCHECK(navigation);
-  CRWPlaceholderNavigationInfo* info =
-      [[CRWPlaceholderNavigationInfo alloc] initWithCompletionHandler:handler];
-  objc_setAssociatedObject(navigation, &kPlaceholderNavigationKey, info,
-                           OBJC_ASSOCIATION_RETAIN);
-  return info;
-}
-
-+ (nullable CRWPlaceholderNavigationInfo*)infoForNavigation:
-    (nullable WKNavigation*)navigation {
-  return objc_getAssociatedObject(navigation, &kPlaceholderNavigationKey);
-}
-
-- (instancetype)initWithCompletionHandler:(ProceduralBlock)handler {
-  self = [super init];
-  if (self) {
-    _completionHandler = [handler copy];
-  }
-  return self;
-}
-
-- (void)runCompletionHandler {
-  _completionHandler();
-}
-
-@end
diff --git a/ios/web/navigation/crw_placeholder_navigation_info_unittest.mm b/ios/web/navigation/crw_placeholder_navigation_info_unittest.mm
deleted file mode 100644
index 56c8d61eb..0000000
--- a/ios/web/navigation/crw_placeholder_navigation_info_unittest.mm
+++ /dev/null
@@ -1,45 +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.
-
-#import "ios/web/navigation/crw_placeholder_navigation_info.h"
-
-#include "testing/gtest/include/gtest/gtest.h"
-#import "testing/gtest_mac.h"
-#include "testing/platform_test.h"
-#include "third_party/ocmock/OCMock/OCMock.h"
-
-#if !defined(__has_feature) || !__has_feature(objc_arc)
-#error "This file requires ARC support."
-#endif
-
-// Test fixture for CRWPlaceholderNavigationInfo.
-typedef PlatformTest CRWPlaceholderNavigationInfoTest;
-
-// Tests that completion handler is saved and retrieved from a navigation.
-TEST_F(CRWPlaceholderNavigationInfoTest, SetInfoForNavigation) {
-  WKNavigation* navigation = OCMClassMock([WKNavigation class]);
-  EXPECT_NSEQ(nil, [CRWPlaceholderNavigationInfo infoForNavigation:navigation]);
-
-  __block BOOL called = NO;
-  ProceduralBlock completionHandler = ^{
-    called = YES;
-  };
-
-  CRWPlaceholderNavigationInfo* info =
-      [CRWPlaceholderNavigationInfo createForNavigation:navigation
-                                  withCompletionHandler:completionHandler];
-  EXPECT_EQ(NO, called);
-
-  CRWPlaceholderNavigationInfo* retrievedInfo =
-      [CRWPlaceholderNavigationInfo infoForNavigation:navigation];
-  ASSERT_NSEQ(info, retrievedInfo);
-  EXPECT_EQ(NO, called);
-
-  [retrievedInfo runCompletionHandler];
-  EXPECT_EQ(YES, called);
-}
-
-TEST_F(CRWPlaceholderNavigationInfoTest, GetInfoOnNilNavigationReturnsNil) {
-  EXPECT_NSEQ(nil, [CRWPlaceholderNavigationInfo infoForNavigation:nil]);
-}
diff --git a/ios/web/navigation/navigation_item_impl.h b/ios/web/navigation/navigation_item_impl.h
index e279565..0d6b0c2 100644
--- a/ios/web/navigation/navigation_item_impl.h
+++ b/ios/web/navigation/navigation_item_impl.h
@@ -21,6 +21,37 @@
 class NavigationItemStorageBuilder;
 enum class NavigationInitiationType;
 
+// Defines the states of a NavigationItem that failed to load. This is used by
+// CRWWebController to coordinate the display of native error views such that
+// back/forward navigation to a native error view automatically triggers a
+// reload of the original URL. This is achieved in four steps:
+// 1) A NavigationItem is put into kDisplayingErrorForFailedNavigationState when
+//    it first failed to load and a native error view displayed. If the failure
+//    occurred during provisional navigation, a placeholder entry is inserted
+//    into WKBackForwardList for this item.
+// 2) Upon navigation to this item, use |loadHTMLString:| to modify the URL of
+//    the placeholder entry to the original URL and change the item state to
+//    kNavigatingToFailedNavigationItem.
+// 3) Upon completion of the previous navigation, force a reload in WKWebView to
+//    reload the original URL and change the item state to
+//    kRetryFailedNavigationItem.
+// 4) Upon completion of the reload, if successful, the item state is changed to
+//    kNoNavigationError.
+enum class ErrorRetryState {
+  // This navigation item is either new or last loaded without error.
+  kNoNavigationError,
+  // This navigation item has an entry in WKBackForwardList. Ready to present
+  // error in native view.
+  kReadyToDisplayErrorForFailedNavigation,
+  // This navigation item failed to load and a native error is displayed.
+  kDisplayingErrorForFailedNavigation,
+  // This navigation item is reactivated due to back/forward navigation and
+  // needs to try reloading.
+  kNavigatingToFailedNavigationItem,
+  // This navigation item is ready to be reloaded in web view.
+  kRetryFailedNavigationItem
+};
+
 // Implementation of NavigationItem.
 class NavigationItemImpl : public web::NavigationItem {
  public:
@@ -109,6 +140,12 @@
   // non-persisted state, as documented on the members below.
   void ResetForCommit();
 
+  // Setter and getter for the ErrorRetryState associated with this item. Used
+  // exclusively by CRWWebController to manage when to display error in native
+  // view.
+  void SetErrorRetryState(ErrorRetryState state);
+  ErrorRetryState GetErrorRetryState() const;
+
   // Returns the title string to be used for a page with |url| if that page
   // doesn't specify a title.
   static base::string16 GetDisplayTitleForURL(const GURL& url);
@@ -143,6 +180,7 @@
   bool is_created_from_hash_change_;
   bool should_skip_repost_form_confirmation_;
   NSData* post_data_;
+  ErrorRetryState error_retry_state_;
 
   // The navigation initiation type of the item.  This decides whether the URL
   // should be displayed before the navigation commits.  It is cleared in
diff --git a/ios/web/navigation/navigation_item_impl.mm b/ios/web/navigation/navigation_item_impl.mm
index 73a7256..649d350a 100644
--- a/ios/web/navigation/navigation_item_impl.mm
+++ b/ios/web/navigation/navigation_item_impl.mm
@@ -47,6 +47,7 @@
       has_state_been_replaced_(false),
       is_created_from_hash_change_(false),
       should_skip_repost_form_confirmation_(false),
+      error_retry_state_(ErrorRetryState::kNoNavigationError),
       navigation_initiation_type_(web::NavigationInitiationType::NONE),
       is_unsafe_(false) {}
 
@@ -74,6 +75,7 @@
       should_skip_repost_form_confirmation_(
           item.should_skip_repost_form_confirmation_),
       post_data_([item.post_data_ copy]),
+      error_retry_state_(item.error_retry_state_),
       navigation_initiation_type_(item.navigation_initiation_type_),
       is_unsafe_(item.is_unsafe_),
       cached_display_title_(item.cached_display_title_) {}
@@ -287,6 +289,40 @@
   SetNavigationInitiationType(web::NavigationInitiationType::NONE);
 }
 
+void NavigationItemImpl::SetErrorRetryState(ErrorRetryState state) {
+  switch (state) {
+    case ErrorRetryState::kNoNavigationError:
+      DCHECK_EQ(ErrorRetryState::kRetryFailedNavigationItem,
+                error_retry_state_);
+      break;
+    case ErrorRetryState::kReadyToDisplayErrorForFailedNavigation:
+      DCHECK(error_retry_state_ == ErrorRetryState::kNoNavigationError ||
+             error_retry_state_ == ErrorRetryState::kRetryFailedNavigationItem)
+          << "Got unexpected state: " << static_cast<int>(error_retry_state_);
+      break;
+    case ErrorRetryState::kDisplayingErrorForFailedNavigation:
+      DCHECK_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation,
+                error_retry_state_);
+      break;
+    case ErrorRetryState::kNavigatingToFailedNavigationItem:
+      DCHECK_EQ(ErrorRetryState::kDisplayingErrorForFailedNavigation,
+                error_retry_state_);
+      break;
+    case ErrorRetryState::kRetryFailedNavigationItem:
+      DCHECK_EQ(ErrorRetryState::kNavigatingToFailedNavigationItem,
+                error_retry_state_);
+      break;
+    default:
+      NOTREACHED();
+  }
+
+  error_retry_state_ = state;
+}
+
+ErrorRetryState NavigationItemImpl::GetErrorRetryState() const {
+  return error_retry_state_;
+}
+
 // static
 base::string16 NavigationItemImpl::GetDisplayTitleForURL(const GURL& url) {
   if (url.is_empty())
diff --git a/ios/web/navigation/navigation_item_impl_unittest.mm b/ios/web/navigation/navigation_item_impl_unittest.mm
index 7f9964fe..85d9a38e 100644
--- a/ios/web/navigation/navigation_item_impl_unittest.mm
+++ b/ios/web/navigation/navigation_item_impl_unittest.mm
@@ -170,5 +170,45 @@
   EXPECT_EQ("1.gz", base::UTF16ToUTF8(title));
 }
 
+// Tests state transitions between ErrorRetryStates.
+TEST_F(NavigationItemTest, SetErrorRetryState) {
+  NavigationItemImpl item;
+
+  // item is not tracked in error_retry_states_ so should default to NO_ERROR.
+  EXPECT_EQ(ErrorRetryState::kNoNavigationError, item.GetErrorRetryState());
+
+  // The orders below matter because not all state transitions are valid.
+  // Invalid transitions are not tested because death tests are not supported in
+  // iOS simulator build.
+  item.SetErrorRetryState(
+      ErrorRetryState::kReadyToDisplayErrorForFailedNavigation);
+  ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation,
+            item.GetErrorRetryState());
+
+  item.SetErrorRetryState(ErrorRetryState::kDisplayingErrorForFailedNavigation);
+  ASSERT_EQ(ErrorRetryState::kDisplayingErrorForFailedNavigation,
+            item.GetErrorRetryState());
+
+  item.SetErrorRetryState(ErrorRetryState::kNavigatingToFailedNavigationItem);
+  ASSERT_EQ(ErrorRetryState::kNavigatingToFailedNavigationItem,
+            item.GetErrorRetryState());
+
+  item.SetErrorRetryState(ErrorRetryState::kRetryFailedNavigationItem);
+  ASSERT_EQ(ErrorRetryState::kRetryFailedNavigationItem,
+            item.GetErrorRetryState());
+
+  item.SetErrorRetryState(
+      ErrorRetryState::kReadyToDisplayErrorForFailedNavigation);
+  ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation,
+            item.GetErrorRetryState());
+
+  // Cycle through again, this time, terminate in no error.
+  item.SetErrorRetryState(ErrorRetryState::kDisplayingErrorForFailedNavigation);
+  item.SetErrorRetryState(ErrorRetryState::kNavigatingToFailedNavigationItem);
+  item.SetErrorRetryState(ErrorRetryState::kRetryFailedNavigationItem);
+  item.SetErrorRetryState(ErrorRetryState::kNoNavigationError);
+  ASSERT_EQ(ErrorRetryState::kNoNavigationError, item.GetErrorRetryState());
+}
+
 }  // namespace
 }  // namespace web
diff --git a/ios/web/navigation/wk_based_navigation_manager_impl.mm b/ios/web/navigation/wk_based_navigation_manager_impl.mm
index 2710ba4..67f1fd6 100644
--- a/ios/web/navigation/wk_based_navigation_manager_impl.mm
+++ b/ios/web/navigation/wk_based_navigation_manager_impl.mm
@@ -125,10 +125,6 @@
       last_committed_item ? last_committed_item->GetURL() : GURL::EmptyGURL(),
       &transient_url_rewriters_);
   RemoveTransientURLRewriters();
-  // Ignore URL rewrite if this is a placeholder URL
-  if (placeholder_navigation_util::IsPlaceholderUrl(url)) {
-    pending_item_->SetURL(url);
-  }
   UpdatePendingItemUserAgentType(user_agent_override_option,
                                  GetLastCommittedNonAppSpecificItem(),
                                  pending_item_.get());
diff --git a/ios/web/shell/shell_url_request_context_getter.mm b/ios/web/shell/shell_url_request_context_getter.mm
index ef54608..77374c2 100644
--- a/ios/web/shell/shell_url_request_context_getter.mm
+++ b/ios/web/shell/shell_url_request_context_getter.mm
@@ -28,8 +28,8 @@
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/transport_security_persister.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_config_service_ios.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_ios.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/ssl/ssl_config_service_defaults.h"
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm
index f8c003a..80076e1 100644
--- a/ios/web/web_state/ui/crw_web_controller.mm
+++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -38,7 +38,6 @@
 #import "ios/net/http_response_headers_util.h"
 #include "ios/web/history_state_util.h"
 #import "ios/web/interstitials/web_interstitial_impl.h"
-#import "ios/web/navigation/crw_placeholder_navigation_info.h"
 #import "ios/web/navigation/crw_session_controller.h"
 #import "ios/web/navigation/navigation_item_impl.h"
 #import "ios/web/navigation/navigation_manager_impl.h"
@@ -562,8 +561,8 @@
 // The completion handler is called in the |webView:didFinishNavigation|
 // callback of the placeholder navigation. See "Handling App-specific URLs"
 // section of go/bling-navigation-experiment for details.
-- (void)loadPlaceholderInWebViewForURL:(const GURL&)originalURL
-                     completionHandler:(ProceduralBlock)completionHandler;
+- (web::NavigationContextImpl*)loadPlaceholderInWebViewForURL:
+    (const GURL&)originalURL;
 // Loads the current nativeController in a native view. If a web view is
 // present, removes it and swaps in the native view in its place. |context| can
 // not be null.
@@ -571,8 +570,9 @@
                 navigationContext:(web::NavigationContextImpl*)context;
 // Loads the correct HTML page for |error| in a native controller, retrieved
 // from the native provider.
-- (void)loadErrorInNativeView:(NSError*)error
-            navigationContext:(web::NavigationContextImpl*)context;
+- (void)loadErrorInNativeViewForNavigationItem:(web::NavigationItemImpl*)item
+                             navigationContext:
+                                 (web::NavigationContextImpl*)context;
 // Aborts any load for both the web view and web controller.
 - (void)abortLoad;
 // Updates the internal state and informs the delegate that any outstanding load
@@ -1712,11 +1712,12 @@
   }
 }
 
-- (void)loadErrorInNativeView:(NSError*)error
-            navigationContext:(web::NavigationContextImpl*)context {
-  web::NavigationItem* item = self.currentNavItem;
+- (void)loadErrorInNativeViewForNavigationItem:(web::NavigationItemImpl*)item
+                             navigationContext:
+                                 (web::NavigationContextImpl*)context {
   const GURL currentURL = item ? item->GetVirtualURL() : GURL::EmptyGURL();
-  BOOL isPost = [self isCurrentNavigationItemPOST];
+  NSError* error = context->GetError();
+  DCHECK(error);
 
   if (web::IsWKWebViewSSLCertError(error)) {
     // This could happen only if certificate is absent or could not be parsed.
@@ -1730,20 +1731,26 @@
     error = web::NetErrorFromError(error);
   }
 
-  ProceduralBlock finishLoadErrorInNativeView = ^{
-    [self setNativeController:[_nativeProvider controllerForURL:currentURL
-                                                      withError:error
-                                                         isPost:isPost]];
-    [self loadNativeViewWithSuccess:NO navigationContext:context];
-  };
-
   if (!web::GetWebClient()->IsSlimNavigationManagerEnabled()) {
     [self removeWebView];
-    finishLoadErrorInNativeView();
   } else {
-    [self loadPlaceholderInWebViewForURL:currentURL
-                       completionHandler:finishLoadErrorInNativeView];
+    item->SetErrorRetryState(
+        web::ErrorRetryState::kDisplayingErrorForFailedNavigation);
   }
+  id<CRWNativeContent> nativeContent =
+      [_nativeProvider controllerForURL:currentURL
+                              withError:error
+                                 isPost:context->IsPost()];
+  [self setNativeController:nativeContent];
+
+  // If |context| has placeholder URL, this is the second part of a native error
+  // load for a provisional load failure. Rewrite the context URL to actual URL
+  // so the navigation event is broadcasted.
+  // TODO(crbug.com/803503) Clean up callbcks for native error.
+  if (IsPlaceholderUrl(context->GetUrl())) {
+    context->SetUrl(item->GetURL());
+  }
+  [self loadNativeViewWithSuccess:NO navigationContext:context];
 }
 
 // Loads the current URL in a native controller if using the legacy navigation
@@ -1756,8 +1763,7 @@
     [self removeWebView];
     [self loadNativeContentForNavigationItem:self.currentNavItem];
   } else {
-    [self loadPlaceholderInWebViewForURL:self.currentNavItem->GetVirtualURL()
-                       completionHandler:nil];
+    [self loadPlaceholderInWebViewForURL:self.currentNavItem->GetVirtualURL()];
   }
 }
 
@@ -1782,8 +1788,8 @@
                 navigationContext:navigationContext.get()];
 }
 
-- (void)loadPlaceholderInWebViewForURL:(const GURL&)originalURL
-                     completionHandler:(ProceduralBlock)completionHandler {
+- (web::NavigationContextImpl*)loadPlaceholderInWebViewForURL:
+    (const GURL&)originalURL {
   web::WebClient* webClient = web::GetWebClient();
   DCHECK(webClient->IsSlimNavigationManagerEnabled());
 
@@ -1799,8 +1805,7 @@
       [self registerLoadRequestForURL:placeholderURL sameDocumentNavigation:NO];
   [_navigationStates setContext:std::move(navigationContext)
                   forNavigation:navigation];
-  [CRWPlaceholderNavigationInfo createForNavigation:navigation
-                              withCompletionHandler:completionHandler];
+  return [_navigationStates contextForNavigation:navigation];
 }
 
 - (void)loadCurrentURL {
@@ -1849,7 +1854,7 @@
              isCurrentURLAppSpecific) {
     // Handle WebUI separately from regular web page load in new nav manager.
     DCHECK(_webStateImpl->HasWebUI());
-    [self loadPlaceholderInWebViewForURL:currentURL completionHandler:nil];
+    [self loadPlaceholderInWebViewForURL:currentURL];
   } else {
     [self loadCurrentURLInWebView];
   }
@@ -2933,6 +2938,9 @@
   web::NavigationContextImpl* navigationContext =
       [_navigationStates contextForNavigation:navigation];
   navigationContext->SetError(error);
+  navigationContext->SetIsPost([self isCurrentNavigationItemPOST]);
+  // TODO(crbug.com/803631) DCHECK that self.currentNavItem is the navigation
+  // item associated with navigationContext.
 
   if ([error.domain isEqual:base::SysUTF8ToNSString(web::kWebKitErrorDomain)] &&
       error.code == web::kWebKitErrorFrameLoadInterruptedByPolicyChange) {
@@ -2986,7 +2994,36 @@
   }
 
   [self loadCompleteWithSuccess:NO forNavigation:navigation];
-  [self loadErrorInNativeView:error navigationContext:navigationContext];
+
+  if (!web::GetWebClient()->IsSlimNavigationManagerEnabled()) {
+    [self loadErrorInNativeViewForNavigationItem:self.currentNavItem
+                               navigationContext:navigationContext];
+  } else {
+    web::ErrorRetryState errorRetryState =
+        self.currentNavItem->GetErrorRetryState();
+    if (errorRetryState ==
+        web::ErrorRetryState::kReadyToDisplayErrorForFailedNavigation) {
+      // The navigation item that failed to load already exists in the session
+      // history. This can arise if the failure occurs after the navigation is
+      // committed or if this is is a history navigation to a previously loaded
+      // page.
+      [self loadErrorInNativeViewForNavigationItem:self.currentNavItem
+                                 navigationContext:navigationContext];
+    } else {
+      // The navigation item that failed to load is not yet in
+      // WKBackForwardList. This can arise when the failure happens during
+      // provisional load of a new page. Kick off a placeholder load to insert a
+      // WKBackForwardListItem. |loadErrorInNativeViewForNavigationItem| will be
+      // called when the placeholder finishes loading.
+      DCHECK_EQ(web::ErrorRetryState::kNoNavigationError, errorRetryState);
+      web::NavigationContextImpl* placeholderNavigationContext =
+          [self loadPlaceholderInWebViewForURL:self.currentNavItem->GetURL()];
+      placeholderNavigationContext->SetError(error);
+      placeholderNavigationContext->SetIsPost(
+          [self isCurrentNavigationItemPOST]);
+    }
+  }
+
   if ([_navigationStates stateForNavigation:navigation] ==
       web::WKNavigationState::PROVISIONALY_FAILED) {
     _webStateImpl->OnNavigationFinished(navigationContext);
@@ -4582,7 +4619,7 @@
     }
 
     if (IsPlaceholderUrl(webViewURL)) {
-      web::NavigationItem* item = self.currentNavItem;
+      web::NavigationItemImpl* item = self.currentNavItem;
       // The |didFinishNavigation| callback can arrive after another
       // navigation has started. Abort in this case.
       if (CreatePlaceholderUrlForUrl(item->GetVirtualURL()) != webViewURL)
@@ -4599,18 +4636,21 @@
         [self createWebUIForURL:item->GetURL()];
       }
 
+      web::NavigationContextImpl* context =
+          [_navigationStates contextForNavigation:navigation];
+
       if ([self shouldLoadURLInNativeView:item->GetURL()]) {
         [self loadNativeContentForNavigationItem:item];
       } else if (isWebUIURL) {
         DCHECK(_webUIManager);
         [_webUIManager loadWebUIForURL:item->GetURL()];
+      } else if (context->GetError()) {
+        item->SetErrorRetryState(
+            web::ErrorRetryState::kReadyToDisplayErrorForFailedNavigation);
+        [self loadErrorInNativeViewForNavigationItem:item
+                                   navigationContext:context];
       } else {
-        // Native error
-        CRWPlaceholderNavigationInfo* placeholderNavigationInfo =
-            [CRWPlaceholderNavigationInfo infoForNavigation:navigation];
-        if (placeholderNavigationInfo) {
-          [placeholderNavigationInfo runCompletionHandler];
-        }
+        NOTREACHED();
       }
     }
   }
@@ -4650,6 +4690,13 @@
         web::WKNavigationState::NONE) {
       return;
     }
+
+    // Because the failure happened after didCommitNavigation:, current item
+    // should already have an entry in back-forward history. Indicate this to
+    // the navigation mnager so native error can be displayed without loading
+    // extra placeholders in the web view.
+    self.currentNavItem->SetErrorRetryState(
+        web::ErrorRetryState::kReadyToDisplayErrorForFailedNavigation);
   }
 
   [_navigationStates setState:web::WKNavigationState::FAILED
diff --git a/ios/web_view/internal/cwv_web_view.mm b/ios/web_view/internal/cwv_web_view.mm
index f87757d..425d591 100644
--- a/ios/web_view/internal/cwv_web_view.mm
+++ b/ios/web_view/internal/cwv_web_view.mm
@@ -201,6 +201,18 @@
   _javaScriptDialogPresenter->SetUIDelegate(_UIDelegate);
 }
 
+#pragma mark - UIView
+
+- (void)willMoveToSuperview:(UIView*)newSuperview {
+  [super willMoveToSuperview:newSuperview];
+
+  if (newSuperview) {
+    _webState->WasShown();
+  } else {
+    _webState->WasHidden();
+  }
+}
+
 #pragma mark - CRWWebStateObserver
 
 - (void)webStateDestroyed:(web::WebState*)webState {
diff --git a/ios/web_view/internal/web_view_url_request_context_getter.mm b/ios/web_view/internal/web_view_url_request_context_getter.mm
index c65f7210..d97e741 100644
--- a/ios/web_view/internal/web_view_url_request_context_getter.mm
+++ b/ios/web_view/internal/web_view_url_request_context_getter.mm
@@ -27,8 +27,8 @@
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/transport_security_persister.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_config_service_ios.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_ios.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/ssl/ssl_config_service_defaults.h"
diff --git a/ipc/BUILD.gn b/ipc/BUILD.gn
index 3d020c5..92aa172a 100644
--- a/ipc/BUILD.gn
+++ b/ipc/BUILD.gn
@@ -36,7 +36,6 @@
     "ipc_channel_proxy.h",
     "ipc_channel_reader.cc",
     "ipc_channel_reader.h",
-    "ipc_export.h",
     "ipc_listener.h",
     "ipc_logging.cc",
     "ipc_logging.h",
@@ -80,7 +79,7 @@
     ]
   }
 
-  defines = [ "IPC_IMPLEMENTATION" ]
+  defines = [ "IS_IPC_IMPL" ]
 
   public_deps = [
     ":ipc_features",
diff --git a/ipc/ipc_channel.h b/ipc/ipc_channel.h
index ec7b7c9..5b0221c 100644
--- a/ipc/ipc_channel.h
+++ b/ipc/ipc_channel.h
@@ -12,6 +12,7 @@
 #include <string>
 
 #include "base/compiler_specific.h"
+#include "base/component_export.h"
 #include "base/files/scoped_file.h"
 #include "base/memory/ref_counted.h"
 #include "base/process/process.h"
@@ -43,7 +44,7 @@
 // Channels are implemented using mojo message pipes on all platforms other
 // than NaCl.
 
-class IPC_EXPORT Channel : public Sender {
+class COMPONENT_EXPORT(IPC) Channel : public Sender {
   // Security tests need access to the pipe handle.
   friend class ChannelTest;
 
@@ -84,7 +85,7 @@
 
   // Helper interface a Channel may implement to expose support for associated
   // Mojo interfaces.
-  class IPC_EXPORT AssociatedInterfaceSupport {
+  class COMPONENT_EXPORT(IPC) AssociatedInterfaceSupport {
    public:
     using GenericAssociatedInterfaceFactory =
         base::Callback<void(mojo::ScopedInterfaceEndpointHandle)>;
diff --git a/ipc/ipc_channel_factory.h b/ipc/ipc_channel_factory.h
index 688a366..03d9626 100644
--- a/ipc/ipc_channel_factory.h
+++ b/ipc/ipc_channel_factory.h
@@ -9,6 +9,7 @@
 #include <string>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/memory/ref_counted.h"
 #include "base/single_thread_task_runner.h"
 #include "ipc/ipc_channel.h"
@@ -18,7 +19,7 @@
 // Encapsulates how a Channel is created. A ChannelFactory can be
 // passed to the constructor of ChannelProxy or SyncChannel to tell them
 // how to create underlying channel.
-class IPC_EXPORT ChannelFactory {
+class COMPONENT_EXPORT(IPC) ChannelFactory {
  public:
   // Creates a factory for "native" channel built through
   // IPC::Channel::Create().
diff --git a/ipc/ipc_channel_mojo.h b/ipc/ipc_channel_mojo.h
index aa6ba435..c9af9f1 100644
--- a/ipc/ipc_channel_mojo.h
+++ b/ipc/ipc_channel_mojo.h
@@ -12,6 +12,7 @@
 #include <string>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/weak_ptr.h"
@@ -23,7 +24,6 @@
 #include "ipc/ipc.mojom.h"
 #include "ipc/ipc_channel.h"
 #include "ipc/ipc_channel_factory.h"
-#include "ipc/ipc_export.h"
 #include "ipc/ipc_message_pipe_reader.h"
 #include "ipc/ipc_mojo_bootstrap.h"
 #include "mojo/public/cpp/bindings/thread_safe_interface_ptr.h"
@@ -41,9 +41,10 @@
 // TODO(morrita): Add APIs to create extra MessagePipes to let
 //                Mojo-based objects talk over this Channel.
 //
-class IPC_EXPORT ChannelMojo : public Channel,
-                               public Channel::AssociatedInterfaceSupport,
-                               public internal::MessagePipeReader::Delegate {
+class COMPONENT_EXPORT(IPC) ChannelMojo
+    : public Channel,
+      public Channel::AssociatedInterfaceSupport,
+      public internal::MessagePipeReader::Delegate {
  public:
   // Creates a ChannelMojo.
   static std::unique_ptr<ChannelMojo> Create(
diff --git a/ipc/ipc_channel_proxy.h b/ipc/ipc_channel_proxy.h
index a333a26c..7ac409c 100644
--- a/ipc/ipc_channel_proxy.h
+++ b/ipc/ipc_channel_proxy.h
@@ -13,6 +13,7 @@
 #include <vector>
 
 #include "base/callback.h"
+#include "base/component_export.h"
 #include "base/memory/ref_counted.h"
 #include "base/sequence_checker.h"
 #include "base/synchronization/lock.h"
@@ -72,7 +73,7 @@
 // |channel_lifetime_lock_| is used to protect it. The locking overhead is only
 // paid if the underlying channel supports thread-safe |Send|.
 //
-class IPC_EXPORT ChannelProxy : public Sender {
+class COMPONENT_EXPORT(IPC) ChannelProxy : public Sender {
  public:
 #if defined(ENABLE_IPC_FUZZER)
   // Interface for a filter to be imposed on outgoing messages which can
diff --git a/ipc/ipc_channel_reader.h b/ipc/ipc_channel_reader.h
index ffd3b6e..49d20f2c 100644
--- a/ipc/ipc_channel_reader.h
+++ b/ipc/ipc_channel_reader.h
@@ -9,10 +9,10 @@
 
 #include <set>
 
+#include "base/component_export.h"
 #include "base/gtest_prod_util.h"
 #include "base/macros.h"
 #include "ipc/ipc_channel.h"
-#include "ipc/ipc_export.h"
 
 namespace IPC {
 namespace internal {
@@ -29,7 +29,7 @@
 // functionality that would benefit from being factored out. If we add
 // something like that in the future, it would be more appropriate to add it
 // here (and rename appropriately) rather than writing a different class.
-class IPC_EXPORT ChannelReader {
+class COMPONENT_EXPORT(IPC) ChannelReader {
  public:
   explicit ChannelReader(Listener* listener);
   virtual ~ChannelReader();
diff --git a/ipc/ipc_export.h b/ipc/ipc_export.h
deleted file mode 100644
index e1cbe889..0000000
--- a/ipc/ipc_export.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef IPC_IPC_EXPORT_H_
-#define IPC_IPC_EXPORT_H_
-
-// Defines IPC_EXPORT so that functionality implemented by the IPC module can be
-// exported to consumers.
-
-#if defined(COMPONENT_BUILD)
-#if defined(WIN32)
-
-#if defined(IPC_IMPLEMENTATION)
-#define IPC_EXPORT __declspec(dllexport)
-#else
-#define IPC_EXPORT __declspec(dllimport)
-#endif  // defined(IPC_IMPLEMENTATION)
-
-#else  // defined(WIN32)
-
-#if defined(IPC_IMPLEMENTATION)
-#define IPC_EXPORT __attribute__((visibility("default")))
-#else
-#define IPC_EXPORT
-#endif
-
-#endif
-
-#else  // defined(COMPONENT_BUILD)
-#define IPC_EXPORT
-#endif
-
-#endif  // IPC_IPC_EXPORT_H_
diff --git a/ipc/ipc_listener.h b/ipc/ipc_listener.h
index d7ad75c3..564b921 100644
--- a/ipc/ipc_listener.h
+++ b/ipc/ipc_listener.h
@@ -9,8 +9,8 @@
 
 #include <string>
 
+#include "base/component_export.h"
 #include "build/build_config.h"
-#include "ipc/ipc_export.h"
 #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
 
 namespace IPC {
@@ -18,7 +18,7 @@
 class Message;
 
 // Implemented by consumers of a Channel to receive messages.
-class IPC_EXPORT Listener {
+class COMPONENT_EXPORT(IPC) Listener {
  public:
   // Called when a message is received.  Returns true iff the message was
   // handled.
diff --git a/ipc/ipc_logging.h b/ipc/ipc_logging.h
index 929f55e..68b8e9ba 100644
--- a/ipc/ipc_logging.h
+++ b/ipc/ipc_logging.h
@@ -12,11 +12,11 @@
 #include <stdint.h>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/containers/hash_tables.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/singleton.h"
 #include "base/single_thread_task_runner.h"
-#include "ipc/ipc_export.h"
 #include "ipc/ipc_message.h"
 
 // Logging function. |name| is a string in ASCII and |params| is a string in
@@ -35,7 +35,7 @@
 // One instance per process.  Needs to be created on the main thread (the UI
 // thread in the browser) but OnPreDispatchMessage/OnPostDispatchMessage
 // can be called on other threads.
-class IPC_EXPORT Logging {
+class COMPONENT_EXPORT(IPC) Logging {
  public:
   // Implemented by consumers of log messages.
   class Consumer {
diff --git a/ipc/ipc_message_pipe_reader.h b/ipc/ipc_message_pipe_reader.h
index a609f6c..77dd9ee 100644
--- a/ipc/ipc_message_pipe_reader.h
+++ b/ipc/ipc_message_pipe_reader.h
@@ -12,11 +12,11 @@
 
 #include "base/atomicops.h"
 #include "base/compiler_specific.h"
+#include "base/component_export.h"
 #include "base/macros.h"
 #include "base/process/process_handle.h"
 #include "base/threading/thread_checker.h"
 #include "ipc/ipc.mojom.h"
-#include "ipc/ipc_export.h"
 #include "ipc/ipc_message.h"
 #include "mojo/public/cpp/bindings/associated_binding.h"
 #include "mojo/public/cpp/bindings/scoped_interface_endpoint_handle.h"
@@ -43,7 +43,7 @@
 // be called on any thread. All |Delegate| functions will be called on the IO
 // thread.
 //
-class IPC_EXPORT MessagePipeReader : public mojom::Channel {
+class COMPONENT_EXPORT(IPC) MessagePipeReader : public mojom::Channel {
  public:
   class Delegate {
    public:
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h
index 54fee40..2df1c23 100644
--- a/ipc/ipc_message_utils.h
+++ b/ipc/ipc_message_utils.h
@@ -18,6 +18,7 @@
 #include <unordered_map>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/containers/flat_map.h"
 #include "base/containers/small_map.h"
 #include "base/containers/stack_container.h"
@@ -30,7 +31,6 @@
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
 #include "build/build_config.h"
-#include "ipc/ipc_export.h"
 #include "ipc/ipc_message_start.h"
 #include "ipc/ipc_param_traits.h"
 #include "ipc/ipc_sync_message.h"
@@ -57,7 +57,7 @@
 
 // -----------------------------------------------------------------------------
 // How we send IPC message logs across channels.
-struct IPC_EXPORT LogData {
+struct COMPONENT_EXPORT(IPC) LogData {
   LogData();
   LogData(const LogData& other);
   ~LogData();
@@ -127,11 +127,11 @@
                    param_type* r) {
     return iter->ReadBool(r);
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<signed char> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<signed char> {
   typedef signed char param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -141,7 +141,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<unsigned char> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<unsigned char> {
   typedef unsigned char param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -151,7 +151,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<unsigned short> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<unsigned short> {
   typedef unsigned short param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -169,7 +169,7 @@
                    param_type* r) {
     return iter->ReadInt(r);
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
@@ -181,7 +181,7 @@
                    param_type* r) {
     return iter->ReadInt(reinterpret_cast<int*>(r));
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 // long isn't safe to send over IPC because it's 4 bytes on 32 bit builds but
@@ -208,7 +208,7 @@
                    param_type* r) {
     return iter->ReadLong(r);
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
@@ -222,7 +222,7 @@
                    param_type* r) {
     return iter->ReadLong(reinterpret_cast<long*>(r));
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 #endif
 
@@ -237,7 +237,7 @@
                    param_type* r) {
     return iter->ReadInt64(reinterpret_cast<int64_t*>(r));
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
@@ -249,14 +249,14 @@
                    param_type* r) {
     return iter->ReadInt64(reinterpret_cast<int64_t*>(r));
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 // Note that the IPC layer doesn't sanitize NaNs and +/- INF values.  Clients
 // should be sure to check the sanity of these values after receiving them over
 // IPC.
 template <>
-struct IPC_EXPORT ParamTraits<float> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<float> {
   typedef float param_type;
   static void Write(base::Pickle* m, const param_type& p) { m->WriteFloat(p); }
   static bool Read(const base::Pickle* m,
@@ -268,7 +268,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<double> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<double> {
   typedef double param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -315,7 +315,7 @@
                    param_type* r) {
     return iter->ReadString(r);
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
@@ -329,11 +329,11 @@
                    param_type* r) {
     return iter->ReadString16(r);
   }
-  IPC_EXPORT static void Log(const param_type& p, std::string* l);
+  COMPONENT_EXPORT(IPC) static void Log(const param_type& p, std::string* l);
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<std::vector<char> > {
+struct COMPONENT_EXPORT(IPC) ParamTraits<std::vector<char>> {
   typedef std::vector<char> param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle*,
@@ -343,7 +343,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<std::vector<unsigned char> > {
+struct COMPONENT_EXPORT(IPC) ParamTraits<std::vector<unsigned char>> {
   typedef std::vector<unsigned char> param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -353,7 +353,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<std::vector<bool> > {
+struct COMPONENT_EXPORT(IPC) ParamTraits<std::vector<bool>> {
   typedef std::vector<bool> param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -510,7 +510,7 @@
 // Base ParamTraits ------------------------------------------------------------
 
 template <>
-struct IPC_EXPORT ParamTraits<base::DictionaryValue> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::DictionaryValue> {
   typedef base::DictionaryValue param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -535,8 +535,8 @@
 // of transmission. Since transmission is not synchronous, one should consider
 // dup()ing any file descriptors to be transmitted and setting the |auto_close|
 // flag, which causes the file descriptor to be closed after writing.
-template<>
-struct IPC_EXPORT ParamTraits<base::FileDescriptor> {
+template <>
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::FileDescriptor> {
   typedef base::FileDescriptor param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -547,7 +547,7 @@
 #endif  // defined(OS_POSIX)
 
 template <>
-struct IPC_EXPORT ParamTraits<base::SharedMemoryHandle> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::SharedMemoryHandle> {
   typedef base::SharedMemoryHandle param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -558,7 +558,7 @@
 
 #if defined(OS_ANDROID)
 template <>
-struct IPC_EXPORT ParamTraits<base::SharedMemoryHandle::Type> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::SharedMemoryHandle::Type> {
   typedef base::SharedMemoryHandle::Type param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -570,7 +570,7 @@
 
 #if defined(OS_WIN)
 template <>
-struct IPC_EXPORT ParamTraits<PlatformFileForTransit> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<PlatformFileForTransit> {
   typedef PlatformFileForTransit param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -581,7 +581,7 @@
 #endif  // defined(OS_WIN)
 
 template <>
-struct IPC_EXPORT ParamTraits<base::FilePath> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::FilePath> {
   typedef base::FilePath param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -591,7 +591,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::ListValue> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::ListValue> {
   typedef base::ListValue param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -601,7 +601,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::NullableString16> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::NullableString16> {
   typedef base::NullableString16 param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -611,7 +611,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::File::Info> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::File::Info> {
   typedef base::File::Info param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -633,7 +633,7 @@
 #endif  // defined(OS_WIN)
 
 template <>
-struct IPC_EXPORT ParamTraits<base::Time> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::Time> {
   typedef base::Time param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -643,7 +643,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::TimeDelta> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::TimeDelta> {
   typedef base::TimeDelta param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -653,7 +653,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::TimeTicks> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::TimeTicks> {
   typedef base::TimeTicks param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -663,7 +663,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<base::UnguessableToken> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<base::UnguessableToken> {
   typedef base::UnguessableToken param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -916,8 +916,8 @@
 // A ChannelHandle is basically a platform-inspecific wrapper around the
 // fact that IPC endpoints are handled specially on POSIX.  See above comments
 // on FileDescriptor for more background.
-template<>
-struct IPC_EXPORT ParamTraits<IPC::ChannelHandle> {
+template <>
+struct COMPONENT_EXPORT(IPC) ParamTraits<IPC::ChannelHandle> {
   typedef ChannelHandle param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -927,7 +927,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<LogData> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<LogData> {
   typedef LogData param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -937,7 +937,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<Message> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<Message> {
   static void Write(base::Pickle* m, const Message& p);
   static bool Read(const base::Pickle* m,
                    base::PickleIterator* iter,
@@ -949,7 +949,7 @@
 
 #if defined(OS_WIN)
 template <>
-struct IPC_EXPORT ParamTraits<HANDLE> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<HANDLE> {
   typedef HANDLE param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -959,7 +959,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<LOGFONT> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<LOGFONT> {
   typedef LOGFONT param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -969,7 +969,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<MSG> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<MSG> {
   typedef MSG param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
@@ -983,9 +983,8 @@
 // Generic message subclasses
 
 // defined in ipc_logging.cc
-IPC_EXPORT void GenerateLogData(const Message& message,
-                                LogData* data,
-                                bool get_params);
+COMPONENT_EXPORT(IPC)
+void GenerateLogData(const Message& message, LogData* data, bool get_params);
 
 #if BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)
 inline void AddOutputParamsToLog(const Message* msg, std::string* l) {
diff --git a/ipc/ipc_mojo_bootstrap.h b/ipc/ipc_mojo_bootstrap.h
index 4c276ba..c2778b6 100644
--- a/ipc/ipc_mojo_bootstrap.h
+++ b/ipc/ipc_mojo_bootstrap.h
@@ -9,6 +9,7 @@
 
 #include <memory>
 
+#include "base/component_export.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/single_thread_task_runner.h"
@@ -29,7 +30,7 @@
 //
 // This lives on IO thread other than Create(), which can be called from
 // UI thread as Channel::Create() can be.
-class IPC_EXPORT MojoBootstrap {
+class COMPONENT_EXPORT(IPC) MojoBootstrap {
  public:
   virtual ~MojoBootstrap() {}
 
diff --git a/ipc/ipc_mojo_param_traits.h b/ipc/ipc_mojo_param_traits.h
index 9562587..5907befd 100644
--- a/ipc/ipc_mojo_param_traits.h
+++ b/ipc/ipc_mojo_param_traits.h
@@ -7,7 +7,7 @@
 
 #include <string>
 
-#include "ipc/ipc_export.h"
+#include "base/component_export.h"
 #include "ipc/ipc_param_traits.h"
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "mojo/public/cpp/system/message_pipe.h"
@@ -20,7 +20,7 @@
 namespace IPC {
 
 template <>
-struct IPC_EXPORT ParamTraits<mojo::MessagePipeHandle> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<mojo::MessagePipeHandle> {
   typedef mojo::MessagePipeHandle param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m, base::PickleIterator* iter,
@@ -29,7 +29,7 @@
 };
 
 template <>
-struct IPC_EXPORT ParamTraits<mojo::DataPipeConsumerHandle> {
+struct COMPONENT_EXPORT(IPC) ParamTraits<mojo::DataPipeConsumerHandle> {
   typedef mojo::DataPipeConsumerHandle param_type;
   static void Write(base::Pickle* m, const param_type& p);
   static bool Read(const base::Pickle* m,
diff --git a/ipc/ipc_sender.h b/ipc/ipc_sender.h
index 9c26bf3..98872f8 100644
--- a/ipc/ipc_sender.h
+++ b/ipc/ipc_sender.h
@@ -5,13 +5,13 @@
 #ifndef IPC_IPC_SENDER_H_
 #define IPC_IPC_SENDER_H_
 
-#include "ipc/ipc_export.h"
+#include "base/component_export.h"
 
 namespace IPC {
 
 class Message;
 
-class IPC_EXPORT Sender {
+class COMPONENT_EXPORT(IPC) Sender {
  public:
   // Sends the given IPC message.  The implementor takes ownership of the
   // given Message regardless of whether or not this method succeeds.  This
diff --git a/ipc/ipc_sync_channel.h b/ipc/ipc_sync_channel.h
index 620e9eed..a54dbaa 100644
--- a/ipc/ipc_sync_channel.h
+++ b/ipc/ipc_sync_channel.h
@@ -9,6 +9,7 @@
 #include <string>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/containers/circular_deque.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
@@ -69,7 +70,7 @@
 // is more than this object.  If the message loop goes away while this object
 // is running and it's used to send a message, then it will use the invalid
 // message loop pointer to proxy it to the ipc thread.
-class IPC_EXPORT SyncChannel : public ChannelProxy {
+class COMPONENT_EXPORT(IPC) SyncChannel : public ChannelProxy {
  public:
   enum RestrictDispatchGroup {
     kRestrictDispatchGroup_None = 0,
diff --git a/ipc/ipc_sync_message_filter.h b/ipc/ipc_sync_message_filter.h
index 17ec5297..01e6cca 100644
--- a/ipc/ipc_sync_message_filter.h
+++ b/ipc/ipc_sync_message_filter.h
@@ -8,6 +8,7 @@
 #include <set>
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/synchronization/lock.h"
@@ -31,7 +32,8 @@
 // support fancy features that SyncChannel does, such as handling recursion or
 // receiving messages while waiting for a response.  Note that this object can
 // be used to send simultaneous synchronous messages from different threads.
-class IPC_EXPORT SyncMessageFilter : public MessageFilter, public Sender {
+class COMPONENT_EXPORT(IPC) SyncMessageFilter : public MessageFilter,
+                                                public Sender {
  public:
   // Sender implementation.
   bool Send(Message* message) override;
diff --git a/ipc/message_filter.h b/ipc/message_filter.h
index 28259ca..f879fa5d 100644
--- a/ipc/message_filter.h
+++ b/ipc/message_filter.h
@@ -9,9 +9,9 @@
 
 #include <vector>
 
+#include "base/component_export.h"
 #include "base/memory/ref_counted.h"
 #include "ipc/ipc_channel.h"
-#include "ipc/ipc_export.h"
 
 namespace IPC {
 
@@ -19,7 +19,7 @@
 
 // A class that receives messages on the thread where the IPC channel is
 // running.  It can choose to prevent the default action for an IPC message.
-class IPC_EXPORT MessageFilter
+class COMPONENT_EXPORT(IPC) MessageFilter
     : public base::RefCountedThreadSafe<MessageFilter> {
  public:
   MessageFilter();
diff --git a/ipc/message_router.h b/ipc/message_router.h
index 62c40592..731c4eb 100644
--- a/ipc/message_router.h
+++ b/ipc/message_router.h
@@ -7,9 +7,9 @@
 
 #include <stdint.h>
 
+#include "base/component_export.h"
 #include "base/containers/id_map.h"
 #include "base/macros.h"
-#include "ipc/ipc_export.h"
 #include "ipc/ipc_listener.h"
 #include "ipc/ipc_sender.h"
 
@@ -33,7 +33,7 @@
 
 namespace IPC {
 
-class IPC_EXPORT MessageRouter : public Listener, public Sender {
+class COMPONENT_EXPORT(IPC) MessageRouter : public Listener, public Sender {
  public:
   MessageRouter();
   ~MessageRouter() override;
diff --git a/mash/catalog_viewer/BUILD.gn b/mash/catalog_viewer/BUILD.gn
index 71979a3..f0a7258 100644
--- a/mash/catalog_viewer/BUILD.gn
+++ b/mash/catalog_viewer/BUILD.gn
@@ -24,10 +24,6 @@
     "//ui/views",
     "//ui/views/mus:for_mojo_application",
   ]
-
-  data_deps = [
-    "//services/ui",
-  ]
 }
 
 service("catalog_viewer") {
diff --git a/mash/example/window_type_launcher/BUILD.gn b/mash/example/window_type_launcher/BUILD.gn
index af8327e..8047b88 100644
--- a/mash/example/window_type_launcher/BUILD.gn
+++ b/mash/example/window_type_launcher/BUILD.gn
@@ -34,10 +34,6 @@
   ]
 
   resources = [ "$root_out_dir/views_mus_resources.pak" ]
-
-  data_deps = [
-    "//services/ui",
-  ]
 }
 
 service_manifest("manifest") {
diff --git a/media/audio/win/audio_low_latency_output_win.cc b/media/audio/win/audio_low_latency_output_win.cc
index 1a538d0..accbacb 100644
--- a/media/audio/win/audio_low_latency_output_win.cc
+++ b/media/audio/win/audio_low_latency_output_win.cc
@@ -251,17 +251,34 @@
     return;
   }
 
-  source_ = callback;
-
-  // Ensure that the endpoint buffer is prepared with silence.
+  // Ensure that the endpoint buffer is prepared with silence. Also serves as
+  // a sanity check for the IAudioClient and IAudioRenderClient which may have
+  // been invalidated by Windows since the last Stop() call.
+  //
+  // While technically we only need to retry when WASAPI tells us the device has
+  // been invalidated (AUDCLNT_E_DEVICE_INVALIDATED), we retry for all errors
+  // for simplicity and due to large sites like YouTube reporting high success
+  // rates with a simple retry upon detection of an audio output error.
   if (share_mode_ == AUDCLNT_SHAREMODE_SHARED) {
     if (!CoreAudioUtil::FillRenderEndpointBufferWithSilence(
             audio_client_.Get(), audio_render_client_.Get())) {
-      LOG(ERROR) << "Failed to prepare endpoint buffers with silence.";
-      callback->OnError();
-      return;
+      DLOG(WARNING) << "Failed to prepare endpoint buffers with silence. "
+                       "Attempting recovery with a new IAudioClient and "
+                       "IAudioRenderClient.";
+
+      opened_ = false;
+      audio_client_.Reset();
+      audio_render_client_.Reset();
+      if (!Open() || !CoreAudioUtil::FillRenderEndpointBufferWithSilence(
+                         audio_client_.Get(), audio_render_client_.Get())) {
+        DLOG(ERROR) << "Failed recovery of audio clients; Start() failed.";
+        callback->OnError();
+        return;
+      }
     }
   }
+
+  source_ = callback;
   num_written_frames_ = endpoint_buffer_size_frames_;
 
   // Create and start the thread that will drive the rendering by waiting for
diff --git a/media/audio/win/core_audio_util_win.cc b/media/audio/win/core_audio_util_win.cc
index 36dd9cd..d8a20c84 100644
--- a/media/audio/win/core_audio_util_win.cc
+++ b/media/audio/win/core_audio_util_win.cc
@@ -897,25 +897,36 @@
 }
 
 bool CoreAudioUtil::FillRenderEndpointBufferWithSilence(
-    IAudioClient* client, IAudioRenderClient* render_client) {
+    IAudioClient* client,
+    IAudioRenderClient* render_client) {
   UINT32 endpoint_buffer_size = 0;
-  if (FAILED(client->GetBufferSize(&endpoint_buffer_size)))
+  if (FAILED(client->GetBufferSize(&endpoint_buffer_size))) {
+    PLOG(ERROR) << "Failed IAudioClient::GetBufferSize()";
     return false;
+  }
 
   UINT32 num_queued_frames = 0;
-  if (FAILED(client->GetCurrentPadding(&num_queued_frames)))
+  if (FAILED(client->GetCurrentPadding(&num_queued_frames))) {
+    PLOG(ERROR) << "Failed IAudioClient::GetCurrentPadding()";
     return false;
+  }
 
   BYTE* data = NULL;
   int num_frames_to_fill = endpoint_buffer_size - num_queued_frames;
-  if (FAILED(render_client->GetBuffer(num_frames_to_fill, &data)))
+  if (FAILED(render_client->GetBuffer(num_frames_to_fill, &data))) {
+    PLOG(ERROR) << "Failed IAudioRenderClient::GetBuffer()";
     return false;
+  }
 
   // Using the AUDCLNT_BUFFERFLAGS_SILENT flag eliminates the need to
   // explicitly write silence data to the rendering buffer.
-  DVLOG(2) << "filling up " << num_frames_to_fill << " frames with silence";
-  return SUCCEEDED(render_client->ReleaseBuffer(num_frames_to_fill,
-                                                AUDCLNT_BUFFERFLAGS_SILENT));
+  if (FAILED(render_client->ReleaseBuffer(num_frames_to_fill,
+                                          AUDCLNT_BUFFERFLAGS_SILENT))) {
+    PLOG(ERROR) << "Failed IAudioRenderClient::ReleaseBuffer()";
+    return false;
+  }
+
+  return true;
 }
 
 bool CoreAudioUtil::GetDxDiagDetails(std::string* driver_name,
diff --git a/media/base/cdm_context.h b/media/base/cdm_context.h
index 03771b7..b40b128 100644
--- a/media/base/cdm_context.h
+++ b/media/base/cdm_context.h
@@ -52,6 +52,21 @@
 // A dummy implementation of CdmAttachedCB.
 MEDIA_EXPORT void IgnoreCdmAttached(bool success);
 
+// A reference holder to make sure the CdmContext is always valid as long as
+// |this| is alive. Typically |this| will hold a reference (directly or
+// indirectly) to the host, e.g. a ContentDecryptionModule or a CdmProxy.
+// This class must be held on the same thread where the host lives. The raw
+// CdmContext pointer returned by GetCdmContext() may be used on other threads
+// if it's supported by the CdmContext implementation.
+class MEDIA_EXPORT CdmContextRef {
+ public:
+  virtual ~CdmContextRef() {}
+
+  // Returns the CdmContext which is guaranteed to be alive as long as |this| is
+  // alive. This function should never return nullptr.
+  virtual CdmContext* GetCdmContext() = 0;
+};
+
 }  // namespace media
 
 #endif  // MEDIA_BASE_CDM_CONTEXT_H_
diff --git a/media/base/content_decryption_module.cc b/media/base/content_decryption_module.cc
index aaa6e62..b763744 100644
--- a/media/base/content_decryption_module.cc
+++ b/media/base/content_decryption_module.cc
@@ -20,10 +20,6 @@
                   "GetStatusForPolicy() is not supported.");
 }
 
-CdmContext* ContentDecryptionModule::GetCdmContext() {
-  return nullptr;
-}
-
 void ContentDecryptionModule::DeleteOnCorrectThread() const {
   delete this;
 }
diff --git a/media/base/content_decryption_module.h b/media/base/content_decryption_module.h
index 68caa1e..d3187cd 100644
--- a/media/base/content_decryption_module.h
+++ b/media/base/content_decryption_module.h
@@ -158,13 +158,8 @@
 
   // Returns the CdmContext associated with |this|. The returned CdmContext is
   // owned by |this| and the caller needs to make sure it is not used after
-  // |this| is destructed.
-  // Returns null if CdmContext is not supported. Instead the media player may
-  // use the CDM via some platform specific method.
-  // By default this method returns null.
-  // TODO(xhwang): Convert all SetCdm() implementations to use CdmContext so
-  // that this function should never return nullptr.
-  virtual CdmContext* GetCdmContext();
+  // |this| is destructed. This method should never return null.
+  virtual CdmContext* GetCdmContext() = 0;
 
   // Deletes |this| on the correct thread. By default |this| is deleted
   // immediately. Override this method if |this| needs to be deleted on a
diff --git a/media/blink/cdm_session_adapter.cc b/media/blink/cdm_session_adapter.cc
index 1f337ee..203103b 100644
--- a/media/blink/cdm_session_adapter.cc
+++ b/media/blink/cdm_session_adapter.cc
@@ -20,6 +20,7 @@
 #include "media/base/key_systems.h"
 #include "media/blink/webcontentdecryptionmodule_impl.h"
 #include "media/blink/webcontentdecryptionmodulesession_impl.h"
+#include "media/cdm/cdm_context_ref_impl.h"
 #include "url/origin.h"
 
 namespace media {
@@ -137,8 +138,15 @@
   cdm_->RemoveSession(session_id, std::move(promise));
 }
 
-scoped_refptr<ContentDecryptionModule> CdmSessionAdapter::GetCdm() {
-  return cdm_;
+std::unique_ptr<CdmContextRef> CdmSessionAdapter::GetCdmContextRef() {
+  DVLOG(2) << __func__;
+
+  if (!cdm_->GetCdmContext()) {
+    NOTREACHED() << "All CDMs should support CdmContext.";
+    return nullptr;
+  }
+
+  return std::make_unique<CdmContextRefImpl>(cdm_);
 }
 
 const std::string& CdmSessionAdapter::GetKeySystem() const {
diff --git a/media/blink/cdm_session_adapter.h b/media/blink/cdm_session_adapter.h
index 8d4da1b..7d100d7a 100644
--- a/media/blink/cdm_session_adapter.h
+++ b/media/blink/cdm_session_adapter.h
@@ -8,6 +8,7 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 #include <string>
 #include <vector>
 
@@ -26,6 +27,7 @@
 namespace media {
 
 struct CdmConfig;
+class CdmContextRef;
 class CdmFactory;
 class WebContentDecryptionModuleSessionImpl;
 
@@ -96,8 +98,9 @@
   void RemoveSession(const std::string& session_id,
                      std::unique_ptr<SimpleCdmPromise> promise);
 
-  // Returns a reference to the CDM.
-  scoped_refptr<ContentDecryptionModule> GetCdm();
+  // Returns a CdmContextRef which provides access to CdmContext and by holding
+  // the CdmContextRef, makes sure the CdmContext is kept alive.
+  std::unique_ptr<CdmContextRef> GetCdmContextRef();
 
   // Returns the key system name.
   const std::string& GetKeySystem() const;
diff --git a/media/blink/webcontentdecryptionmodule_impl.cc b/media/blink/webcontentdecryptionmodule_impl.cc
index 4a14bcc..afe739e 100644
--- a/media/blink/webcontentdecryptionmodule_impl.cc
+++ b/media/blink/webcontentdecryptionmodule_impl.cc
@@ -11,6 +11,7 @@
 #include "base/numerics/safe_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
+#include "media/base/cdm_context.h"
 #include "media/base/cdm_promise.h"
 #include "media/base/content_decryption_module.h"
 #include "media/base/key_systems.h"
@@ -151,9 +152,9 @@
                                 result, std::string())));
 }
 
-scoped_refptr<ContentDecryptionModule>
-WebContentDecryptionModuleImpl::GetCdm() {
-  return adapter_->GetCdm();
+std::unique_ptr<CdmContextRef>
+WebContentDecryptionModuleImpl::GetCdmContextRef() {
+  return adapter_->GetCdmContextRef();
 }
 
 }  // namespace media
diff --git a/media/blink/webcontentdecryptionmodule_impl.h b/media/blink/webcontentdecryptionmodule_impl.h
index ec436ba..c9fbef1 100644
--- a/media/blink/webcontentdecryptionmodule_impl.h
+++ b/media/blink/webcontentdecryptionmodule_impl.h
@@ -24,9 +24,9 @@
 namespace media {
 
 struct CdmConfig;
+class CdmContextRef;
 class CdmFactory;
 class CdmSessionAdapter;
-class ContentDecryptionModule;
 
 class MEDIA_BLINK_EXPORT WebContentDecryptionModuleImpl
     : public blink::WebContentDecryptionModule {
@@ -43,18 +43,15 @@
   // blink::WebContentDecryptionModule implementation.
   std::unique_ptr<blink::WebContentDecryptionModuleSession> CreateSession()
       override;
-
   void SetServerCertificate(
       const uint8_t* server_certificate,
       size_t server_certificate_length,
       blink::WebContentDecryptionModuleResult result) override;
-
   void GetStatusForPolicy(
       const blink::WebString& min_hdcp_version_string,
       blink::WebContentDecryptionModuleResult result) override;
 
-  // Returns a reference to the CDM used by |adapter_|.
-  scoped_refptr<ContentDecryptionModule> GetCdm();
+  std::unique_ptr<CdmContextRef> GetCdmContextRef();
 
  private:
   friend CdmSessionAdapter;
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc
index 4884ef5..1d38794 100644
--- a/media/blink/webmediaplayer_impl.cc
+++ b/media/blink/webmediaplayer_impl.cc
@@ -34,7 +34,6 @@
 #include "media/audio/null_audio_sink.h"
 #include "media/base/bind_to_current_loop.h"
 #include "media/base/cdm_context.h"
-#include "media/base/content_decryption_module.h"
 #include "media/base/limits.h"
 #include "media/base/media_content_type.h"
 #include "media/base/media_log.h"
@@ -1077,7 +1076,7 @@
   TRACE_EVENT0("media", "WebMediaPlayerImpl:paint");
 
   // We can't copy from protected frames.
-  if (cdm_)
+  if (cdm_context_ref_)
     return;
 
   scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor();
@@ -1160,7 +1159,7 @@
   TRACE_EVENT0("media", "WebMediaPlayerImpl:copyVideoTextureToPlatformTexture");
 
   // We can't copy from protected frames.
-  if (cdm_)
+  if (cdm_context_ref_)
     return false;
 
   scoped_refptr<VideoFrame> video_frame = GetCurrentFrameFromCompositor();
@@ -1302,26 +1301,24 @@
 void WebMediaPlayerImpl::SetCdm(blink::WebContentDecryptionModule* cdm) {
   DCHECK(main_task_runner_->BelongsToCurrentThread());
   DCHECK(cdm);
-  scoped_refptr<ContentDecryptionModule> cdm_reference =
-      ToWebContentDecryptionModuleImpl(cdm)->GetCdm();
-  if (!cdm_reference) {
+
+  auto cdm_context_ref =
+      ToWebContentDecryptionModuleImpl(cdm)->GetCdmContextRef();
+  if (!cdm_context_ref) {
     NOTREACHED();
     OnCdmAttached(false);
     return;
   }
 
-  CdmContext* cdm_context = cdm_reference->GetCdmContext();
-  if (!cdm_context) {
-    OnCdmAttached(false);
-    return;
-  }
+  CdmContext* cdm_context = cdm_context_ref->GetCdmContext();
+  DCHECK(cdm_context);
 
   if (observer_)
     observer_->OnSetCdm(cdm_context);
 
   // Keep the reference to the CDM, as it shouldn't be destroyed until
   // after the pipeline is done with the |cdm_context|.
-  pending_cdm_ = std::move(cdm_reference);
+  pending_cdm_context_ref_ = std::move(cdm_context_ref);
   pipeline_controller_.SetCdm(
       cdm_context, base::Bind(&WebMediaPlayerImpl::OnCdmAttached, AsWeakPtr()));
 }
@@ -1329,7 +1326,7 @@
 void WebMediaPlayerImpl::OnCdmAttached(bool success) {
   DVLOG(1) << __func__ << ": success = " << success;
   DCHECK(main_task_runner_->BelongsToCurrentThread());
-  DCHECK(pending_cdm_);
+  DCHECK(pending_cdm_context_ref_);
 
   // If the CDM is set from the constructor there is no promise
   // (|set_cdm_result_|) to fulfill.
@@ -1337,7 +1334,7 @@
     media_log_->SetBooleanProperty("has_cdm", true);
 
     // This will release the previously attached CDM (if any).
-    cdm_ = std::move(pending_cdm_);
+    cdm_context_ref_ = std::move(pending_cdm_context_ref_);
     if (set_cdm_result_) {
       set_cdm_result_->Complete();
       set_cdm_result_.reset();
@@ -1346,7 +1343,7 @@
     return;
   }
 
-  pending_cdm_ = nullptr;
+  pending_cdm_context_ref_.reset();
   if (set_cdm_result_) {
     set_cdm_result_->CompleteWithError(
         blink::kWebContentDecryptionModuleExceptionNotSupportedError, 0,
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h
index 6a28050..ef984b7 100644
--- a/media/blink/webmediaplayer_impl.h
+++ b/media/blink/webmediaplayer_impl.h
@@ -74,8 +74,8 @@
 }
 
 namespace media {
+class CdmContextRef;
 class ChunkDemuxer;
-class ContentDecryptionModule;
 class VideoDecodeStatsReporter;
 class MediaLog;
 class UrlIndex;
@@ -692,13 +692,13 @@
 
   std::unique_ptr<blink::WebContentDecryptionModuleResult> set_cdm_result_;
 
-  // If a CDM is attached keep a reference to it, so that it is not destroyed
-  // until after the pipeline is done with it.
-  scoped_refptr<ContentDecryptionModule> cdm_;
+  // If a CdmContext is attached keep a reference to the CdmContextRef, so that
+  // it is not destroyed until after the pipeline is done with it.
+  std::unique_ptr<CdmContextRef> cdm_context_ref_;
 
-  // Keep track of the CDM while it is in the process of attaching to the
-  // pipeline.
-  scoped_refptr<ContentDecryptionModule> pending_cdm_;
+  // Keep track of the CdmContextRef while it is in the process of attaching to
+  // the pipeline.
+  std::unique_ptr<CdmContextRef> pending_cdm_context_ref_;
 
 #if defined(OS_ANDROID)  // WMPI_CAST
   WebMediaPlayerCast cast_impl_;
diff --git a/media/capture/video/chromeos/video_capture_device_arc_chromeos.cc b/media/capture/video/chromeos/video_capture_device_arc_chromeos.cc
index 91da489c..ccd9e65 100644
--- a/media/capture/video/chromeos/video_capture_device_arc_chromeos.cc
+++ b/media/capture/video/chromeos/video_capture_device_arc_chromeos.cc
@@ -9,6 +9,7 @@
 #include <utility>
 
 #include "base/bind_helpers.h"
+#include "base/location.h"
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/platform_thread.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -119,11 +120,12 @@
     power_manager::SuspendImminent::Reason reason) {
   capture_task_runner_->PostTask(
       FROM_HERE,
-      base::BindOnce(&VideoCaptureDeviceArcChromeOS::CloseDevice,
-                     weak_ptr_factory_.GetWeakPtr(),
-                     BindToCurrentLoop(chromeos::DBusThreadManager::Get()
-                                           ->GetPowerManagerClient()
-                                           ->GetSuspendReadinessCallback())));
+      base::BindOnce(
+          &VideoCaptureDeviceArcChromeOS::CloseDevice,
+          weak_ptr_factory_.GetWeakPtr(),
+          BindToCurrentLoop(chromeos::DBusThreadManager::Get()
+                                ->GetPowerManagerClient()
+                                ->GetSuspendReadinessCallback(FROM_HERE))));
 }
 
 void VideoCaptureDeviceArcChromeOS::SuspendDone(
diff --git a/media/cdm/BUILD.gn b/media/cdm/BUILD.gn
index 37e737c..6eb962d 100644
--- a/media/cdm/BUILD.gn
+++ b/media/cdm/BUILD.gn
@@ -28,6 +28,8 @@
   sources = [
     "aes_decryptor.cc",
     "aes_decryptor.h",
+    "cdm_context_ref_impl.cc",
+    "cdm_context_ref_impl.h",
 
     # TODO(crbug.com/676224): Move this to |enable_library_cdms| block below
     # when EnabledIf attribute is supported in mojom.
diff --git a/media/cdm/cdm_context_ref_impl.cc b/media/cdm/cdm_context_ref_impl.cc
new file mode 100644
index 0000000..32df59a
--- /dev/null
+++ b/media/cdm/cdm_context_ref_impl.cc
@@ -0,0 +1,26 @@
+// 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 "media/cdm/cdm_context_ref_impl.h"
+
+#include "base/logging.h"
+#include "media/base/content_decryption_module.h"
+
+namespace media {
+
+CdmContextRefImpl::CdmContextRefImpl(scoped_refptr<ContentDecryptionModule> cdm)
+    : cdm_(std::move(cdm)) {
+  DCHECK(cdm_);
+}
+
+CdmContextRefImpl::~CdmContextRefImpl() {
+  // This will release |cdm_|.
+}
+
+CdmContext* CdmContextRefImpl::GetCdmContext() {
+  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
+  return cdm_->GetCdmContext();
+}
+
+}  // namespace media
diff --git a/media/cdm/cdm_context_ref_impl.h b/media/cdm/cdm_context_ref_impl.h
new file mode 100644
index 0000000..ec3143a52
--- /dev/null
+++ b/media/cdm/cdm_context_ref_impl.h
@@ -0,0 +1,37 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef MEDIA_CDM_CDM_CONTEXT_REF_IMPL_H_
+#define MEDIA_CDM_CDM_CONTEXT_REF_IMPL_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/threading/thread_checker.h"
+#include "media/base/cdm_context.h"
+#include "media/base/media_export.h"
+
+namespace media {
+
+class ContentDecryptionModule;
+
+class MEDIA_EXPORT CdmContextRefImpl : public CdmContextRef {
+ public:
+  explicit CdmContextRefImpl(scoped_refptr<ContentDecryptionModule> cdm);
+  ~CdmContextRefImpl() final;
+
+  // CdmContextRef implementation.
+  CdmContext* GetCdmContext() final;
+
+ private:
+  scoped_refptr<ContentDecryptionModule> cdm_;
+  THREAD_CHECKER(thread_checker_);
+
+  DISALLOW_COPY_AND_ASSIGN(CdmContextRefImpl);
+};
+
+}  // namespace media
+
+#endif  // MEDIA_CDM_CDM_CONTEXT_REF_IMPL_H_
diff --git a/media/filters/frame_processor_unittest.cc b/media/filters/frame_processor_unittest.cc
index ae0939ab..aee35e5 100644
--- a/media/filters/frame_processor_unittest.cc
+++ b/media/filters/frame_processor_unittest.cc
@@ -1309,41 +1309,6 @@
 }
 
 TEST_P(FrameProcessorTest,
-       SegmentsMode_BufferingByPts_InitialZeroDurationBuffers) {
-  // When buffering ByPts in segments append mode, verifies that initial
-  // zero-duration keyframes that are not adjacent in PTS, but may be adjacent
-  // if the default fudge room is large enough, doesn't result in inconsistent
-  // range adjacency determination on a subsequent overlapping append of a
-  // non-zero duration keyframe with a duration smaller than half the default
-  // initial fudge room.
-  if (range_api_ == ChunkDemuxerStream::RangeApi::kLegacyByDts ||
-      use_sequence_mode_) {
-    DVLOG(1) << "Skipping kLegacyByDts and sequence mode versions of this test";
-    return;
-  }
-
-  InSequence s;
-  AddTestTracks(HAS_AUDIO);
-  frame_processor_->SetSequenceMode(use_sequence_mode_);
-
-  frame_duration_ = Milliseconds(0);
-  EXPECT_CALL(callbacks_, PossibleDurationIncrease(Milliseconds(10)));
-  EXPECT_TRUE(ProcessFrames("0K 10|1K", ""));
-
-  EXPECT_CALL(callbacks_, PossibleDurationIncrease(Milliseconds(3)));
-  EXPECT_TRUE(ProcessFrames("3|2K", ""));
-
-  EXPECT_CALL(callbacks_, PossibleDurationIncrease(
-                              base::TimeDelta::FromMicroseconds(6001)));
-  frame_duration_ = base::TimeDelta::FromMicroseconds(1);
-  EXPECT_TRUE(ProcessFrames("6|3K", ""));
-
-  // Note the following includes a truncated 6001 microseconds end time for the
-  // third range.
-  CheckExpectedRangesByTimestamp(audio_.get(), "{ [0,1) [3,4) [6,6) [10,11) }");
-}
-
-TEST_P(FrameProcessorTest,
        BufferingByPts_ContinuousDts_SapType2_and_PtsJumpForward) {
   if (range_api_ == ChunkDemuxerStream::RangeApi::kLegacyByDts) {
     DVLOG(1) << "Skipping kLegacyByDts versions of this test";
diff --git a/media/filters/source_buffer_range_by_dts.cc b/media/filters/source_buffer_range_by_dts.cc
index d5fb9e1e..249da4b 100644
--- a/media/filters/source_buffer_range_by_dts.cc
+++ b/media/filters/source_buffer_range_by_dts.cc
@@ -432,8 +432,16 @@
 DecodeTimestamp SourceBufferRangeByDts::GetBufferedEndTimestamp() const {
   DCHECK(!buffers_.empty());
   base::TimeDelta duration = buffers_.back()->duration();
-  if (duration == kNoTimestamp || duration.is_zero())
-    duration = GetApproximateDuration();
+
+  // FrameProcessor should protect against unknown buffer durations.
+  DCHECK_NE(duration, kNoTimestamp);
+
+  // Because media::Ranges<base::TimeDelta>::Add() ignores 0 duration ranges,
+  // report 1 microsecond for the last buffer's duration if it is a 0 duration
+  // buffer.
+  if (duration.is_zero())
+    duration = base::TimeDelta::FromMicroseconds(1);
+
   return GetEndTimestamp() + duration;
 }
 
diff --git a/media/filters/source_buffer_range_by_pts.cc b/media/filters/source_buffer_range_by_pts.cc
index 3d632a9..a49c52c 100644
--- a/media/filters/source_buffer_range_by_pts.cc
+++ b/media/filters/source_buffer_range_by_pts.cc
@@ -483,8 +483,16 @@
 
   DCHECK(!buffers_.empty());
   base::TimeDelta duration = highest_frame_->duration();
-  if (duration == kNoTimestamp || duration.is_zero())
-    duration = GetApproximateDuration();
+
+  // FrameProcessor should protect against unknown buffer durations.
+  DCHECK_NE(duration, kNoTimestamp);
+
+  // Because media::Ranges<base::TimeDelta>::Add() ignores 0 duration ranges,
+  // report 1 microsecond for the last buffer's duration if it is a 0 duration
+  // buffer.
+  if (duration.is_zero())
+    duration = base::TimeDelta::FromMicroseconds(1);
+
   return GetEndTimestamp() + duration;
 }
 
diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc
index f848ad1..8d4aea94 100644
--- a/media/filters/source_buffer_stream.cc
+++ b/media/filters/source_buffer_stream.cc
@@ -452,7 +452,7 @@
 
   new_coded_frame_group_ = false;
 
-  MergeWithAdjacentRangeIfNecessary(range_for_next_append_);
+  MergeWithNextRangeIfNecessary(range_for_next_append_);
 
   // Some SAP-Type-2 append sequences, when buffering ByPts, require that we
   // coalesce |range_for_next_append_| with the range that is *before* it.
@@ -461,7 +461,7 @@
   if (range_for_next_append_ != ranges_.begin()) {
     auto prior_range = range_for_next_append_;
     prior_range--;
-    MergeWithAdjacentRangeIfNecessary(prior_range);
+    MergeWithNextRangeIfNecessary(prior_range);
   }
 
   // Seek to try to fulfill a previous call to Seek().
@@ -1198,9 +1198,9 @@
     if (range_for_next_append_ != ranges_.begin()) {
       typename RangeList::iterator range_before_next = range_for_next_append_;
       --range_before_next;
-      MergeWithAdjacentRangeIfNecessary(range_before_next);
+      MergeWithNextRangeIfNecessary(range_before_next);
     }
-    MergeWithAdjacentRangeIfNecessary(range_for_next_append_);
+    MergeWithNextRangeIfNecessary(range_for_next_append_);
   }
   return bytes_freed;
 }
@@ -1225,7 +1225,7 @@
   // Search for overlapped buffer needs exclusive end value. Choosing smallest
   // possible value.
   const DecodeTimestamp end_dts =
-      splice_dts + base::TimeDelta::FromInternalValue(1);
+      splice_dts + base::TimeDelta::FromMicroseconds(1);
 
   // Find if new buffer's start would overlap an existing buffer.
   BufferQueue overlapped_buffers;
@@ -1432,13 +1432,17 @@
   // estimated, use 1 microsecond instead to ensure frames are not accidentally
   // removed due to over-estimation.
   base::TimeDelta duration = buffers.back()->duration();
-  if (duration != kNoTimestamp && duration > base::TimeDelta() &&
+
+  // FrameProcessor should protect against unknown buffer durations.
+  DCHECK_NE(duration, kNoTimestamp);
+
+  if (duration > base::TimeDelta() &&
       !buffers.back()->is_duration_estimated()) {
     *end += duration;
   } else {
     // TODO(chcunningham): Emit warning when 0ms durations are not expected.
     // http://crbug.com/312836
-    *end += base::TimeDelta::FromInternalValue(1);
+    *end += base::TimeDelta::FromMicroseconds(1);
   }
 }
 
@@ -1455,13 +1459,16 @@
     base::TimeDelta timestamp = buffer->timestamp();
     start_pts = std::min(timestamp, start_pts);
     base::TimeDelta duration = buffer->duration();
-    if (duration != kNoTimestamp && duration > base::TimeDelta() &&
-        !buffer->is_duration_estimated()) {
+
+    // FrameProcessor should protect against unknown buffer durations.
+    DCHECK_NE(duration, kNoTimestamp);
+
+    if (duration > base::TimeDelta() && !buffer->is_duration_estimated()) {
       timestamp += duration;
     } else {
       // TODO(chcunningham): Emit warning when 0ms durations are not expected.
       // http://crbug.com/312836
-      timestamp += base::TimeDelta::FromInternalValue(1);
+      timestamp += base::TimeDelta::FromMicroseconds(1);
     }
     end_pts = std::max(timestamp, end_pts);
   }
@@ -1511,7 +1518,7 @@
 }
 
 template <typename RangeClass>
-void SourceBufferStream<RangeClass>::MergeWithAdjacentRangeIfNecessary(
+void SourceBufferStream<RangeClass>::MergeWithNextRangeIfNecessary(
     const typename RangeList::iterator& range_with_new_buffers_itr) {
   DCHECK(range_with_new_buffers_itr != ranges_.end());
 
@@ -1549,8 +1556,12 @@
   typename RangeList::iterator range_itr = ranges_.begin();
 
   while (range_itr != ranges_.end()) {
-    MergeWithAdjacentRangeIfNecessary(range_itr);
-    range_itr++;
+    const size_t old_ranges_size = ranges_.size();
+    MergeWithNextRangeIfNecessary(range_itr);
+
+    // Only proceed to the next range if the current range didn't merge with it.
+    if (old_ranges_size == ranges_.size())
+      range_itr++;
   }
 
   DVLOG(1) << __func__ << " " << GetStreamTypeName()
@@ -2044,8 +2055,8 @@
       return;
     }
 
-    start_timestamp = highest_output_buffer_timestamp_ +
-                      base::TimeDelta::FromInternalValue(1);
+    start_timestamp =
+        highest_output_buffer_timestamp_ + base::TimeDelta::FromMicroseconds(1);
   }
 
   DecodeTimestamp seek_timestamp =
diff --git a/media/filters/source_buffer_stream.h b/media/filters/source_buffer_stream.h
index 49cc6be..87db568 100644
--- a/media/filters/source_buffer_stream.h
+++ b/media/filters/source_buffer_stream.h
@@ -227,7 +227,7 @@
   // Checks to see if |range_with_new_buffers_itr| can be merged with the range
   // next to it, and merges them if so while preserving correctness of
   // |range_for_next_append_| and |selected_range_|.
-  void MergeWithAdjacentRangeIfNecessary(
+  void MergeWithNextRangeIfNecessary(
       const typename RangeList::iterator& range_with_new_buffers_itr);
 
   // Merges any adjacent ranges while preserving correctness of
diff --git a/media/filters/source_buffer_stream_unittest.cc b/media/filters/source_buffer_stream_unittest.cc
index 022d048..e4aa1fc 100644
--- a/media/filters/source_buffer_stream_unittest.cc
+++ b/media/filters/source_buffer_stream_unittest.cc
@@ -5710,6 +5710,72 @@
   CheckNoNextBuffer();
 }
 
+TEST_P(SourceBufferStreamTest, ZeroDurationBuffersThenIncreasingFudgeRoom) {
+  // Appends some zero duration buffers to result in disjoint buffered ranges.
+  // Verifies that increasing the fudge room allows those that become within
+  // adjacency threshold to merge, including those for which the new fudge room
+  // is well more than sufficient to let them be adjacent.
+  SetAudioStream();
+
+  NewCodedFrameGroupAppend("0uD0K");
+  CheckExpectedRangesByTimestamp("{ [0,1) }", TimeGranularity::kMicrosecond);
+
+  NewCodedFrameGroupAppend("1uD0K");
+  CheckExpectedRangesByTimestamp("{ [0,2) }", TimeGranularity::kMicrosecond);
+
+  // Initial fudge room allows for up to 2ms gap to coalesce.
+  NewCodedFrameGroupAppend("5000uD0K");
+  CheckExpectedRangesByTimestamp("{ [0,2) [5000,5001) }",
+                                 TimeGranularity::kMicrosecond);
+  NewCodedFrameGroupAppend("2002uD0K");
+  CheckExpectedRangesByTimestamp("{ [0,2) [2002,2003) [5000,5001) }",
+                                 TimeGranularity::kMicrosecond);
+
+  // Grow the fudge room enough to coalesce the first two ranges.
+  NewCodedFrameGroupAppend("8000uD1001uK");
+  CheckExpectedRangesByTimestamp("{ [0,2003) [5000,5001) [8000,9001) }",
+                                 TimeGranularity::kMicrosecond);
+
+  // Append a buffer with duration 4ms, much larger than previous buffers. This
+  // grows the fudge room to 8ms (2 * 4ms). Expect that the first three ranges
+  // are retroactively merged due to being adjacent per the new, larger fudge
+  // room.
+  NewCodedFrameGroupAppend("100D4K");
+  CheckExpectedRangesByTimestamp("{ [0,9001) [100000,104000) }",
+                                 TimeGranularity::kMicrosecond);
+  SeekToTimestampMs(0);
+  CheckExpectedBuffers("0K 1K 2002K 5000K 8000K",
+                       TimeGranularity::kMicrosecond);
+  CheckNoNextBuffer();
+  SeekToTimestampMs(100);
+  CheckExpectedBuffers("100K");
+  CheckNoNextBuffer();
+}
+
+TEST_P(SourceBufferStreamTest, NonZeroDurationBuffersThenIncreasingFudgeRoom) {
+  // Verifies that a single fudge room increase which merges more than 2
+  // previously disjoint ranges in a row performs the merging correctly.
+  NewCodedFrameGroupAppend("0D10K");
+  NewCodedFrameGroupAppend("50D10K");
+  NewCodedFrameGroupAppend("100D10K");
+  NewCodedFrameGroupAppend("150D10K");
+  NewCodedFrameGroupAppend("500D10K");
+  CheckExpectedRangesByTimestamp(
+      "{ [0,10) [50,60) [100,110) [150,160) [500,510) }");
+
+  NewCodedFrameGroupAppend("600D30K");
+  CheckExpectedRangesByTimestamp("{ [0,160) [500,510) [600,630) }");
+  SeekToTimestampMs(0);
+  CheckExpectedBuffers("0K 50K 100K 150K");
+  CheckNoNextBuffer();
+  SeekToTimestampMs(500);
+  CheckExpectedBuffers("500K");
+  CheckNoNextBuffer();
+  SeekToTimestampMs(600);
+  CheckExpectedBuffers("600K");
+  CheckNoNextBuffer();
+}
+
 INSTANTIATE_TEST_CASE_P(LegacyByDts,
                         SourceBufferStreamTest,
                         Values(BufferingApi::kLegacyByDts));
diff --git a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
index 7f07e6a..58bc7bf 100644
--- a/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
+++ b/media/gpu/v4l2/v4l2_video_decode_accelerator.cc
@@ -537,8 +537,11 @@
     return;
   }
 
+  // |output_format_fourcc_| is the output format of the decoder. It is not
+  // the final output format from the image processor (if exists).
+  // Use |egl_image_format_fourcc_|, it will be the final output format.
   if (pixel_format !=
-      V4L2Device::V4L2PixFmtToVideoPixelFormat(output_format_fourcc_)) {
+      V4L2Device::V4L2PixFmtToVideoPixelFormat(egl_image_format_fourcc_)) {
     VLOGF(1) << "Unsupported import format: " << pixel_format;
     NOTIFY_ERROR(INVALID_ARGUMENT);
     return;
diff --git a/media/mojo/services/mojo_audio_decoder_service.cc b/media/mojo/services/mojo_audio_decoder_service.cc
index 486ff4e..da65bbd 100644
--- a/media/mojo/services/mojo_audio_decoder_service.cc
+++ b/media/mojo/services/mojo_audio_decoder_service.cc
@@ -40,27 +40,22 @@
 
   // Get CdmContext from cdm_id if the stream is encrypted.
   CdmContext* cdm_context = nullptr;
-  scoped_refptr<ContentDecryptionModule> cdm;
   if (config.is_encrypted()) {
-    cdm = mojo_cdm_service_context_->GetCdm(cdm_id);
-    if (!cdm) {
-      DVLOG(1) << "CDM not found for CDM id: " << cdm_id;
+    cdm_context_ref_ = mojo_cdm_service_context_->GetCdmContextRef(cdm_id);
+    if (!cdm_context_ref_) {
+      DVLOG(1) << "CdmContextRef not found for CDM id: " << cdm_id;
       std::move(callback).Run(false, false);
       return;
     }
 
-    cdm_context = cdm->GetCdmContext();
-    if (!cdm_context) {
-      DVLOG(1) << "CDM context not available for CDM id: " << cdm_id;
-      std::move(callback).Run(false, false);
-      return;
-    }
+    cdm_context = cdm_context_ref_->GetCdmContext();
+    DCHECK(cdm_context);
   }
 
   decoder_->Initialize(
       config, cdm_context,
       base::Bind(&MojoAudioDecoderService::OnInitialized, weak_this_,
-                 base::Passed(&callback), cdm),
+                 base::Passed(&callback)),
       base::Bind(&MojoAudioDecoderService::OnAudioBufferReady, weak_this_));
 }
 
@@ -89,19 +84,18 @@
                  base::Passed(&callback)));
 }
 
-void MojoAudioDecoderService::OnInitialized(
-    InitializeCallback callback,
-    scoped_refptr<ContentDecryptionModule> cdm,
-    bool success) {
+void MojoAudioDecoderService::OnInitialized(InitializeCallback callback,
+                                            bool success) {
   DVLOG(1) << __func__ << " success:" << success;
 
-  if (success) {
-    cdm_ = cdm;
-    std::move(callback).Run(success, decoder_->NeedsBitstreamConversion());
-  } else {
+  if (!success) {
+    cdm_context_ref_.reset();
     // Do not call decoder_->NeedsBitstreamConversion() if init failed.
     std::move(callback).Run(false, false);
+    return;
   }
+
+  std::move(callback).Run(success, decoder_->NeedsBitstreamConversion());
 }
 
 // The following methods are needed so that we can bind them with a weak pointer
diff --git a/media/mojo/services/mojo_audio_decoder_service.h b/media/mojo/services/mojo_audio_decoder_service.h
index 8530073..58fce42 100644
--- a/media/mojo/services/mojo_audio_decoder_service.h
+++ b/media/mojo/services/mojo_audio_decoder_service.h
@@ -17,7 +17,7 @@
 
 namespace media {
 
-class ContentDecryptionModule;
+class CdmContextRef;
 class MojoCdmServiceContext;
 class MojoDecoderBufferReader;
 
@@ -42,9 +42,7 @@
 
  private:
   // Called by |decoder_| upon finishing initialization.
-  void OnInitialized(InitializeCallback callback,
-                     scoped_refptr<ContentDecryptionModule> cdm,
-                     bool success);
+  void OnInitialized(InitializeCallback callback, bool success);
 
   // Called by |mojo_decoder_buffer_reader_| when read is finished.
   void OnReadDone(DecodeCallback callback, scoped_refptr<DecoderBuffer> buffer);
@@ -69,9 +67,9 @@
   // The destination for the decoded buffers.
   mojom::AudioDecoderClientAssociatedPtr client_;
 
-  // Hold a reference to the CDM to keep it alive for the lifetime of the
-  // |decoder_|. The |cdm_| owns the CdmContext which is passed to |decoder_|.
-  scoped_refptr<ContentDecryptionModule> cdm_;
+  // Holds the CdmContextRef to keep the CdmContext alive for the lifetime of
+  // the |decoder_|.
+  std::unique_ptr<CdmContextRef> cdm_context_ref_;
 
   // The AudioDecoder that does actual decoding work.
   // This MUST be declared after |cdm_| to maintain correct destruction order.
diff --git a/media/mojo/services/mojo_cdm_service_context.cc b/media/mojo/services/mojo_cdm_service_context.cc
index 3d50f301..dab3e30 100644
--- a/media/mojo/services/mojo_cdm_service_context.cc
+++ b/media/mojo/services/mojo_cdm_service_context.cc
@@ -4,9 +4,9 @@
 
 #include "media/mojo/services/mojo_cdm_service_context.h"
 
-#include "base/bind.h"
 #include "base/logging.h"
 #include "media/base/content_decryption_module.h"
+#include "media/cdm/cdm_context_ref_impl.h"
 #include "media/mojo/services/mojo_cdm_service.h"
 
 namespace media {
@@ -27,15 +27,21 @@
   cdm_services_.erase(cdm_id);
 }
 
-scoped_refptr<ContentDecryptionModule> MojoCdmServiceContext::GetCdm(
+std::unique_ptr<CdmContextRef> MojoCdmServiceContext::GetCdmContextRef(
     int cdm_id) {
   auto cdm_service = cdm_services_.find(cdm_id);
   if (cdm_service == cdm_services_.end()) {
-    LOG(ERROR) << "CDM service not found: " << cdm_id;
+    // This could happen when called after the actual CDM has been destroyed.
+    DVLOG(1) << "CDM service not found: " << cdm_id;
     return nullptr;
   }
 
-  return cdm_service->second->GetCdm();
+  if (!cdm_service->second->GetCdm()->GetCdmContext()) {
+    NOTREACHED() << "All CDMs should support CdmContext.";
+    return nullptr;
+  }
+
+  return std::make_unique<CdmContextRefImpl>(cdm_service->second->GetCdm());
 }
 
 }  // namespace media
diff --git a/media/mojo/services/mojo_cdm_service_context.h b/media/mojo/services/mojo_cdm_service_context.h
index 2243d03..8466ca4 100644
--- a/media/mojo/services/mojo_cdm_service_context.h
+++ b/media/mojo/services/mojo_cdm_service_context.h
@@ -8,14 +8,14 @@
 #include <stdint.h>
 
 #include <map>
+#include <memory>
 
 #include "base/macros.h"
-#include "base/memory/ref_counted.h"
 #include "media/mojo/services/media_mojo_export.h"
 
 namespace media {
 
-class ContentDecryptionModule;
+class CdmContextRef;
 class MojoCdmService;
 
 // A class that creates, owns and manages all MojoCdmService instances.
@@ -31,7 +31,7 @@
   void UnregisterCdm(int cdm_id);
 
   // Returns the CDM associated with |cdm_id|.
-  scoped_refptr<ContentDecryptionModule> GetCdm(int cdm_id);
+  std::unique_ptr<CdmContextRef> GetCdmContextRef(int cdm_id);
 
  private:
   // A map between CDM ID and MojoCdmService.
diff --git a/media/mojo/services/mojo_renderer_service.cc b/media/mojo/services/mojo_renderer_service.cc
index cb0c2c5..cd093e6 100644
--- a/media/mojo/services/mojo_renderer_service.cc
+++ b/media/mojo/services/mojo_renderer_service.cc
@@ -10,7 +10,7 @@
 #include "base/memory/ptr_util.h"
 #include "base/optional.h"
 #include "media/base/audio_renderer_sink.h"
-#include "media/base/content_decryption_module.h"
+#include "media/base/cdm_context.h"
 #include "media/base/media_url_demuxer.h"
 #include "media/base/renderer.h"
 #include "media/base/video_renderer_sink.h"
@@ -140,24 +140,19 @@
     return;
   }
 
-  scoped_refptr<ContentDecryptionModule> cdm =
-      mojo_cdm_service_context_->GetCdm(cdm_id);
-  if (!cdm) {
-    DVLOG(1) << "CDM not found: " << cdm_id;
+  cdm_context_ref_ = mojo_cdm_service_context_->GetCdmContextRef(cdm_id);
+  if (!cdm_context_ref_) {
+    DVLOG(1) << "CdmContextRef not found for CDM ID: " << cdm_id;
     std::move(callback).Run(false);
     return;
   }
 
-  CdmContext* cdm_context = cdm->GetCdmContext();
-  if (!cdm_context) {
-    DVLOG(1) << "CDM context not available: " << cdm_id;
-    std::move(callback).Run(false);
-    return;
-  }
+  auto* cdm_context = cdm_context_ref_->GetCdmContext();
+  DCHECK(cdm_context);
 
   renderer_->SetCdm(cdm_context,
                     base::Bind(&MojoRendererService::OnCdmAttached, weak_this_,
-                               cdm, base::Passed(&callback)));
+                               base::Passed(&callback)));
 }
 
 void MojoRendererService::OnError(PipelineStatus error) {
@@ -277,13 +272,12 @@
 }
 
 void MojoRendererService::OnCdmAttached(
-    scoped_refptr<ContentDecryptionModule> cdm,
     base::OnceCallback<void(bool)> callback,
     bool success) {
   DVLOG(1) << __func__ << "(" << success << ")";
 
-  if (success)
-    cdm_ = cdm;
+  if (!success)
+    cdm_context_ref_.reset();
 
   std::move(callback).Run(success);
 }
diff --git a/media/mojo/services/mojo_renderer_service.h b/media/mojo/services/mojo_renderer_service.h
index 1b1180b2..add37ea1 100644
--- a/media/mojo/services/mojo_renderer_service.h
+++ b/media/mojo/services/mojo_renderer_service.h
@@ -26,8 +26,8 @@
 namespace media {
 
 class AudioRendererSink;
+class CdmContextRef;
 class MediaResourceShim;
-class ContentDecryptionModule;
 class MojoCdmServiceContext;
 class Renderer;
 class VideoRendererSink;
@@ -119,9 +119,7 @@
   void OnFlushCompleted(FlushCallback callback);
 
   // Callback executed once SetCdm() completes.
-  void OnCdmAttached(scoped_refptr<ContentDecryptionModule> cdm,
-                     base::OnceCallback<void(bool)> callback,
-                     bool success);
+  void OnCdmAttached(base::OnceCallback<void(bool)> callback, bool success);
 
   MojoCdmServiceContext* const mojo_cdm_service_context_ = nullptr;
 
@@ -135,9 +133,9 @@
 
   mojom::RendererClientAssociatedPtr client_;
 
-  // Hold a reference to the CDM set on the |renderer_| so that the CDM won't be
-  // destructed while the |renderer_| is still using it.
-  scoped_refptr<ContentDecryptionModule> cdm_;
+  // Holds the CdmContextRef to keep the CdmContext alive for the lifetime of
+  // the |renderer_|.
+  std::unique_ptr<CdmContextRef> cdm_context_ref_;
 
   // Audio and Video sinks.
   // May be null if underlying |renderer_| does not use them.
diff --git a/media/mojo/services/mojo_video_decoder_service.cc b/media/mojo/services/mojo_video_decoder_service.cc
index 3ecedaf1..6f1ddd54 100644
--- a/media/mojo/services/mojo_video_decoder_service.cc
+++ b/media/mojo/services/mojo_video_decoder_service.cc
@@ -154,30 +154,23 @@
   }
 
   // Get CdmContext from cdm_id if the stream is encrypted.
-  // TODO(xhwang): This code is duplicated in mojo_audio_decoder_service.
-  // crbug.com/786736 .
   CdmContext* cdm_context = nullptr;
-  scoped_refptr<ContentDecryptionModule> cdm;
   if (config.is_encrypted()) {
-    cdm = mojo_cdm_service_context_->GetCdm(cdm_id);
-    if (!cdm) {
-      DVLOG(1) << "CDM not found for CDM id: " << cdm_id;
+    cdm_context_ref_ = mojo_cdm_service_context_->GetCdmContextRef(cdm_id);
+    if (!cdm_context_ref_) {
+      DVLOG(1) << "CdmContextRef not found for CDM id: " << cdm_id;
       std::move(callback).Run(false, false, 1);
       return;
     }
 
-    cdm_context = cdm->GetCdmContext();
-    if (!cdm_context) {
-      DVLOG(1) << "CDM context not available for CDM id: " << cdm_id;
-      std::move(callback).Run(false, false, 1);
-      return;
-    }
+    cdm_context = cdm_context_ref_->GetCdmContext();
+    DCHECK(cdm_context);
   }
 
   decoder_->Initialize(
       config, low_delay, cdm_context,
       base::Bind(&MojoVideoDecoderService::OnDecoderInitialized, weak_this_,
-                 base::Passed(&callback), cdm),
+                 base::Passed(&callback)),
       base::BindRepeating(&MojoVideoDecoderService::OnDecoderOutput,
                           weak_this_));
 }
@@ -212,13 +205,12 @@
 
 void MojoVideoDecoderService::OnDecoderInitialized(
     InitializeCallback callback,
-    scoped_refptr<ContentDecryptionModule> cdm,
     bool success) {
   DVLOG(1) << __func__;
   DCHECK(decoder_);
 
-  if (success)
-    cdm_ = std::move(cdm);
+  if (!success)
+    cdm_context_ref_.reset();
 
   std::move(callback).Run(success, decoder_->NeedsBitstreamConversion(),
                           decoder_->GetMaxDecodeRequests());
diff --git a/media/mojo/services/mojo_video_decoder_service.h b/media/mojo/services/mojo_video_decoder_service.h
index 06215c4b..739fff0b 100644
--- a/media/mojo/services/mojo_video_decoder_service.h
+++ b/media/mojo/services/mojo_video_decoder_service.h
@@ -22,7 +22,7 @@
 
 namespace media {
 
-class ContentDecryptionModule;
+class CdmContextRef;
 class DecoderBuffer;
 class MojoCdmServiceContext;
 class MojoDecoderBufferReader;
@@ -60,9 +60,7 @@
   // running mojom::VideoDecoder callbacks after connection error happens and
   // |this| is deleted. It's not safe to run the callbacks after a connection
   // error.
-  void OnDecoderInitialized(InitializeCallback callback,
-                            scoped_refptr<ContentDecryptionModule> cdm,
-                            bool success);
+  void OnDecoderInitialized(InitializeCallback callback, bool success);
   void OnReaderRead(DecodeCallback callback,
                     scoped_refptr<DecoderBuffer> buffer);
   void OnDecoderDecoded(DecodeCallback callback, DecodeStatus status);
@@ -97,9 +95,9 @@
   // Helper for reading DecoderBuffer data from the DataPipe.
   std::unique_ptr<MojoDecoderBufferReader> mojo_decoder_buffer_reader_;
 
-  // Owns the CdmContext (which is passed to |decoder_|), and therefore must be
-  // kept alive for the lifetime of |decoder_|.
-  scoped_refptr<ContentDecryptionModule> cdm_;
+  // Holds the CdmContextRef to keep the CdmContext alive for the lifetime of
+  // the |decoder_|.
+  std::unique_ptr<CdmContextRef> cdm_context_ref_;
 
   std::unique_ptr<media::VideoDecoder> decoder_;
 
diff --git a/net/BUILD.gn b/net/BUILD.gn
index e73a87eb..d40fabd 100644
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
@@ -492,6 +492,9 @@
       "base/prioritized_dispatcher.h",
       "base/priority_queue.h",
       "base/proxy_delegate.h",
+      "base/proxy_server.cc",
+      "base/proxy_server.h",
+      "base/proxy_server_mac.cc",
       "base/request_priority.cc",
       "base/request_priority.h",
       "base/static_cookie_policy.cc",
@@ -1031,67 +1034,64 @@
       "ntlm/ntlm_client.cc",
       "ntlm/ntlm_client.h",
       "ntlm/ntlm_constants.h",
-      "proxy/dhcp_pac_file_adapter_fetcher_win.cc",
-      "proxy/dhcp_pac_file_adapter_fetcher_win.h",
-      "proxy/dhcp_pac_file_fetcher.cc",
-      "proxy/dhcp_pac_file_fetcher.h",
-      "proxy/dhcp_pac_file_fetcher_factory.cc",
-      "proxy/dhcp_pac_file_fetcher_factory.h",
-      "proxy/dhcp_pac_file_fetcher_win.cc",
-      "proxy/dhcp_pac_file_fetcher_win.h",
-      "proxy/dhcpcsvc_init_win.cc",
-      "proxy/dhcpcsvc_init_win.h",
-      "proxy/multi_threaded_proxy_resolver.cc",
-      "proxy/multi_threaded_proxy_resolver.h",
-      "proxy/network_delegate_error_observer.cc",
-      "proxy/network_delegate_error_observer.h",
-      "proxy/pac_file_data.cc",
-      "proxy/pac_file_data.h",
-      "proxy/pac_file_decider.cc",
-      "proxy/pac_file_decider.h",
-      "proxy/pac_file_fetcher.h",
-      "proxy/pac_file_fetcher_impl.cc",
-      "proxy/pac_file_fetcher_impl.h",
-      "proxy/pac_js_library.h",
-      "proxy/polling_proxy_config_service.cc",
-      "proxy/polling_proxy_config_service.h",
-      "proxy/proxy_bypass_rules.cc",
-      "proxy/proxy_bypass_rules.h",
-      "proxy/proxy_config.cc",
-      "proxy/proxy_config.h",
-      "proxy/proxy_config_service.h",
-      "proxy/proxy_config_service_android.cc",
-      "proxy/proxy_config_service_android.h",
-      "proxy/proxy_config_service_fixed.cc",
-      "proxy/proxy_config_service_fixed.h",
-      "proxy/proxy_config_service_ios.cc",
-      "proxy/proxy_config_service_ios.h",
-      "proxy/proxy_config_service_linux.cc",
-      "proxy/proxy_config_service_linux.h",
-      "proxy/proxy_config_service_mac.cc",
-      "proxy/proxy_config_service_mac.h",
-      "proxy/proxy_config_service_win.cc",
-      "proxy/proxy_config_service_win.h",
-      "proxy/proxy_config_source.cc",
-      "proxy/proxy_config_source.h",
-      "proxy/proxy_info.cc",
-      "proxy/proxy_info.h",
-      "proxy/proxy_list.cc",
-      "proxy/proxy_list.h",
-      "proxy/proxy_resolver.h",
-      "proxy/proxy_resolver_error_observer.h",
-      "proxy/proxy_resolver_factory.cc",
-      "proxy/proxy_resolver_factory.h",
-      "proxy/proxy_resolver_mac.cc",
-      "proxy/proxy_resolver_mac.h",
-      "proxy/proxy_resolver_winhttp.cc",
-      "proxy/proxy_resolver_winhttp.h",
-      "proxy/proxy_retry_info.h",
-      "proxy/proxy_server.cc",
-      "proxy/proxy_server.h",
-      "proxy/proxy_server_mac.cc",
-      "proxy/proxy_service.cc",
-      "proxy/proxy_service.h",
+      "proxy_resolution/dhcp_pac_file_adapter_fetcher_win.cc",
+      "proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h",
+      "proxy_resolution/dhcp_pac_file_fetcher.cc",
+      "proxy_resolution/dhcp_pac_file_fetcher.h",
+      "proxy_resolution/dhcp_pac_file_fetcher_factory.cc",
+      "proxy_resolution/dhcp_pac_file_fetcher_factory.h",
+      "proxy_resolution/dhcp_pac_file_fetcher_win.cc",
+      "proxy_resolution/dhcp_pac_file_fetcher_win.h",
+      "proxy_resolution/dhcpcsvc_init_win.cc",
+      "proxy_resolution/dhcpcsvc_init_win.h",
+      "proxy_resolution/multi_threaded_proxy_resolver.cc",
+      "proxy_resolution/multi_threaded_proxy_resolver.h",
+      "proxy_resolution/network_delegate_error_observer.cc",
+      "proxy_resolution/network_delegate_error_observer.h",
+      "proxy_resolution/pac_file_data.cc",
+      "proxy_resolution/pac_file_data.h",
+      "proxy_resolution/pac_file_decider.cc",
+      "proxy_resolution/pac_file_decider.h",
+      "proxy_resolution/pac_file_fetcher.h",
+      "proxy_resolution/pac_file_fetcher_impl.cc",
+      "proxy_resolution/pac_file_fetcher_impl.h",
+      "proxy_resolution/pac_js_library.h",
+      "proxy_resolution/polling_proxy_config_service.cc",
+      "proxy_resolution/polling_proxy_config_service.h",
+      "proxy_resolution/proxy_bypass_rules.cc",
+      "proxy_resolution/proxy_bypass_rules.h",
+      "proxy_resolution/proxy_config.cc",
+      "proxy_resolution/proxy_config.h",
+      "proxy_resolution/proxy_config_service.h",
+      "proxy_resolution/proxy_config_service_android.cc",
+      "proxy_resolution/proxy_config_service_android.h",
+      "proxy_resolution/proxy_config_service_fixed.cc",
+      "proxy_resolution/proxy_config_service_fixed.h",
+      "proxy_resolution/proxy_config_service_ios.cc",
+      "proxy_resolution/proxy_config_service_ios.h",
+      "proxy_resolution/proxy_config_service_linux.cc",
+      "proxy_resolution/proxy_config_service_linux.h",
+      "proxy_resolution/proxy_config_service_mac.cc",
+      "proxy_resolution/proxy_config_service_mac.h",
+      "proxy_resolution/proxy_config_service_win.cc",
+      "proxy_resolution/proxy_config_service_win.h",
+      "proxy_resolution/proxy_config_source.cc",
+      "proxy_resolution/proxy_config_source.h",
+      "proxy_resolution/proxy_info.cc",
+      "proxy_resolution/proxy_info.h",
+      "proxy_resolution/proxy_list.cc",
+      "proxy_resolution/proxy_list.h",
+      "proxy_resolution/proxy_resolver.h",
+      "proxy_resolution/proxy_resolver_error_observer.h",
+      "proxy_resolution/proxy_resolver_factory.cc",
+      "proxy_resolution/proxy_resolver_factory.h",
+      "proxy_resolution/proxy_resolver_mac.cc",
+      "proxy_resolution/proxy_resolver_mac.h",
+      "proxy_resolution/proxy_resolver_winhttp.cc",
+      "proxy_resolution/proxy_resolver_winhttp.h",
+      "proxy_resolution/proxy_retry_info.h",
+      "proxy_resolution/proxy_service.cc",
+      "proxy_resolution/proxy_service.h",
       "quic/chromium/bidirectional_stream_quic_impl.cc",
       "quic/chromium/bidirectional_stream_quic_impl.h",
       "quic/chromium/crypto/channel_id_chromium.cc",
@@ -1976,8 +1976,8 @@
         "base/winsock_init.h",
         "base/winsock_util.cc",
         "base/winsock_util.h",
-        "proxy/proxy_resolver_winhttp.cc",
-        "proxy/proxy_resolver_winhttp.h",
+        "proxy_resolution/proxy_resolver_winhttp.cc",
+        "proxy_resolution/proxy_resolver_winhttp.h",
       ]
     }
 
@@ -1992,12 +1992,12 @@
         "base/network_config_watcher_mac.cc",
         "base/network_config_watcher_mac.h",
         "base/platform_mime_util_mac.mm",
+        "base/proxy_server_mac.cc",
         "cert/test_root_certs_mac.cc",
         "cert/x509_util_ios_and_mac.cc",
         "cert/x509_util_ios_and_mac.h",
-        "proxy/proxy_resolver_mac.cc",
-        "proxy/proxy_resolver_mac.h",
-        "proxy/proxy_server_mac.cc",
+        "proxy_resolution/proxy_resolver_mac.cc",
+        "proxy_resolution/proxy_resolver_mac.h",
       ]
 
       sources -= [ "disk_cache/blockfile/file_posix.cc" ]
@@ -2585,12 +2585,12 @@
     "log/test_net_log_util.h",
     "nqe/network_quality_estimator_test_util.cc",
     "nqe/network_quality_estimator_test_util.h",
-    "proxy/mock_pac_file_fetcher.cc",
-    "proxy/mock_pac_file_fetcher.h",
-    "proxy/mock_proxy_resolver.cc",
-    "proxy/mock_proxy_resolver.h",
-    "proxy/proxy_config_service_common_unittest.cc",
-    "proxy/proxy_config_service_common_unittest.h",
+    "proxy_resolution/mock_pac_file_fetcher.cc",
+    "proxy_resolution/mock_pac_file_fetcher.h",
+    "proxy_resolution/mock_proxy_resolver.cc",
+    "proxy_resolution/mock_proxy_resolver.h",
+    "proxy_resolution/proxy_config_service_common_unittest.cc",
+    "proxy_resolution/proxy_config_service_common_unittest.h",
     "socket/socket_test_util.cc",
     "socket/socket_test_util.h",
     "spdy/chromium/spdy_test_util_common.cc",
@@ -2744,12 +2744,12 @@
 if (use_v8_in_net) {
   component("net_with_v8") {
     sources = [
-      "proxy/proxy_resolver_v8.cc",
-      "proxy/proxy_resolver_v8.h",
-      "proxy/proxy_resolver_v8_tracing.cc",
-      "proxy/proxy_resolver_v8_tracing.h",
-      "proxy/proxy_resolver_v8_tracing_wrapper.cc",
-      "proxy/proxy_resolver_v8_tracing_wrapper.h",
+      "proxy_resolution/proxy_resolver_v8.cc",
+      "proxy_resolution/proxy_resolver_v8.h",
+      "proxy_resolution/proxy_resolver_v8_tracing.cc",
+      "proxy_resolution/proxy_resolver_v8_tracing.h",
+      "proxy_resolution/proxy_resolver_v8_tracing_wrapper.cc",
+      "proxy_resolution/proxy_resolver_v8_tracing_wrapper.h",
     ]
 
     defines = [ "NET_IMPLEMENTATION" ]
@@ -4971,26 +4971,26 @@
     "ntlm/ntlm_client_unittest.cc",
     "ntlm/ntlm_test_data.h",
     "ntlm/ntlm_unittest.cc",
-    "proxy/dhcp_pac_file_adapter_fetcher_win_unittest.cc",
-    "proxy/dhcp_pac_file_fetcher_factory_unittest.cc",
-    "proxy/dhcp_pac_file_fetcher_win_unittest.cc",
-    "proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc",
-    "proxy/multi_threaded_proxy_resolver_unittest.cc",
-    "proxy/network_delegate_error_observer_unittest.cc",
-    "proxy/pac_file_decider_unittest.cc",
-    "proxy/pac_file_fetcher_impl_unittest.cc",
-    "proxy/proxy_bypass_rules_unittest.cc",
-    "proxy/proxy_config_service_android_unittest.cc",
-    "proxy/proxy_config_service_linux_unittest.cc",
-    "proxy/proxy_config_service_win_unittest.cc",
-    "proxy/proxy_config_unittest.cc",
-    "proxy/proxy_info_unittest.cc",
-    "proxy/proxy_list_unittest.cc",
-    "proxy/proxy_resolver_v8_tracing_unittest.cc",
-    "proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc",
-    "proxy/proxy_resolver_v8_unittest.cc",
-    "proxy/proxy_server_unittest.cc",
-    "proxy/proxy_service_unittest.cc",
+    "proxy_resolution/dhcp_pac_file_adapter_fetcher_win_unittest.cc",
+    "proxy_resolution/dhcp_pac_file_fetcher_factory_unittest.cc",
+    "proxy_resolution/dhcp_pac_file_fetcher_win_unittest.cc",
+    "proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc",
+    "proxy_resolution/multi_threaded_proxy_resolver_unittest.cc",
+    "proxy_resolution/network_delegate_error_observer_unittest.cc",
+    "proxy_resolution/pac_file_decider_unittest.cc",
+    "proxy_resolution/pac_file_fetcher_impl_unittest.cc",
+    "proxy_resolution/proxy_bypass_rules_unittest.cc",
+    "proxy_resolution/proxy_config_service_android_unittest.cc",
+    "proxy_resolution/proxy_config_service_linux_unittest.cc",
+    "proxy_resolution/proxy_config_service_win_unittest.cc",
+    "proxy_resolution/proxy_config_unittest.cc",
+    "proxy_resolution/proxy_info_unittest.cc",
+    "proxy_resolution/proxy_list_unittest.cc",
+    "proxy_resolution/proxy_resolver_v8_tracing_unittest.cc",
+    "proxy_resolution/proxy_resolver_v8_tracing_wrapper_unittest.cc",
+    "proxy_resolution/proxy_resolver_v8_unittest.cc",
+    "proxy_resolution/proxy_server_unittest.cc",
+    "proxy_resolution/proxy_service_unittest.cc",
     "quic/chromium/bidirectional_stream_quic_impl_unittest.cc",
     "quic/chromium/crypto/proof_test_chromium.cc",
     "quic/chromium/crypto/proof_verifier_chromium_test.cc",
@@ -5419,7 +5419,7 @@
   }
 
   if (is_chromeos) {
-    sources -= [ "proxy/proxy_config_service_linux_unittest.cc" ]
+    sources -= [ "proxy_resolution/proxy_config_service_linux_unittest.cc" ]
   }
 
   if (!is_proto_quic && v8_use_external_startup_data) {
@@ -5549,9 +5549,9 @@
     deps += [ ":net_with_v8" ]
   } else {
     sources -= [
-      "proxy/proxy_resolver_v8_tracing_unittest.cc",
-      "proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc",
-      "proxy/proxy_resolver_v8_unittest.cc",
+      "proxy_resolution/proxy_resolver_v8_tracing_unittest.cc",
+      "proxy_resolution/proxy_resolver_v8_tracing_wrapper_unittest.cc",
+      "proxy_resolution/proxy_resolver_v8_unittest.cc",
     ]
   }
 
@@ -5565,7 +5565,7 @@
     sources -= [
       "dns/host_resolver_mojo_unittest.cc",
       "dns/mojo_host_resolver_impl_unittest.cc",
-      "proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc",
+      "proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc",
     ]
   }
 
@@ -5589,7 +5589,7 @@
 
       # Need TestServer.
       "cert_net/cert_net_fetcher_impl_unittest.cc",
-      "proxy/pac_file_fetcher_impl_unittest.cc",
+      "proxy_resolution/pac_file_fetcher_impl_unittest.cc",
       "socket/ssl_client_socket_unittest.cc",
       "url_request/url_fetcher_impl_unittest.cc",
       "url_request/url_request_context_builder_unittest.cc",
@@ -5617,7 +5617,7 @@
       "base/filename_util_unittest.cc",
       "base/url_util_unittest.cc",
       "cert/x509_certificate_unittest.cc",
-      "proxy/proxy_resolver_v8_unittest.cc",
+      "proxy_resolution/proxy_resolver_v8_unittest.cc",
       "url_request/url_request_job_unittest.cc",
     ]
   }
@@ -5817,7 +5817,7 @@
 
 fuzzer_test("net_parse_proxy_list_pac_fuzzer") {
   sources = [
-    "proxy/parse_proxy_list_pac_fuzzer.cc",
+    "proxy_resolution/parse_proxy_list_pac_fuzzer.cc",
   ]
   deps = [
     ":net_fuzzer_test_support",
@@ -5827,7 +5827,7 @@
 
 fuzzer_test("net_parse_proxy_list_fuzzer") {
   sources = [
-    "proxy/parse_proxy_list_fuzzer.cc",
+    "proxy_resolution/parse_proxy_list_fuzzer.cc",
   ]
   deps = [
     ":net_fuzzer_test_support",
@@ -5837,7 +5837,7 @@
 
 fuzzer_test("net_parse_proxy_bypass_rules_fuzzer") {
   sources = [
-    "proxy/parse_proxy_bypass_rules_fuzzer.cc",
+    "proxy_resolution/parse_proxy_bypass_rules_fuzzer.cc",
   ]
   deps = [
     ":net_fuzzer_test_support",
@@ -5847,7 +5847,7 @@
 
 fuzzer_test("net_parse_proxy_rules_fuzzer") {
   sources = [
-    "proxy/parse_proxy_rules_fuzzer.cc",
+    "proxy_resolution/parse_proxy_rules_fuzzer.cc",
   ]
   deps = [
     ":net_fuzzer_test_support",
diff --git a/net/android/tools/proxy_test_cases.py b/net/android/tools/proxy_test_cases.py
index 3d6e8ec..21a752ff5 100755
--- a/net/android/tools/proxy_test_cases.py
+++ b/net/android/tools/proxy_test_cases.py
@@ -6,7 +6,7 @@
 """Generator script for proxy tests.
 
 See AndroidProxySelectorTest.java
-and net/proxy/proxy_config_service_android_unittest.cc
+and net/proxy_resolution/proxy_config_service_android_unittest.cc
 
 To generate C++, run this script without arguments.
 To generate Java, run this script with -j argument.
diff --git a/net/base/layered_network_delegate.h b/net/base/layered_network_delegate.h
index 1c68db8a..f9deec7 100644
--- a/net/base/layered_network_delegate.h
+++ b/net/base/layered_network_delegate.h
@@ -14,7 +14,7 @@
 #include "net/base/net_export.h"
 #include "net/base/network_delegate.h"
 #include "net/cookies/canonical_cookie.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 class GURL;
 
diff --git a/net/base/layered_network_delegate_unittest.cc b/net/base/layered_network_delegate_unittest.cc
index e4859b1d..473c379f 100644
--- a/net/base/layered_network_delegate_unittest.cc
+++ b/net/base/layered_network_delegate_unittest.cc
@@ -18,9 +18,9 @@
 #include "net/base/request_priority.h"
 #include "net/base/test_completion_callback.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_test_util.h"
diff --git a/net/base/network_delegate.cc b/net/base/network_delegate.cc
index 55ad2e6..c16948c 100644
--- a/net/base/network_delegate.cc
+++ b/net/base/network_delegate.cc
@@ -9,7 +9,7 @@
 #include "net/base/load_flags.h"
 #include "net/base/net_errors.h"
 #include "net/base/trace_constants.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/url_request/url_request.h"
 
 namespace net {
diff --git a/net/base/network_delegate.h b/net/base/network_delegate.h
index 22c428f9..5742cb7 100644
--- a/net/base/network_delegate.h
+++ b/net/base/network_delegate.h
@@ -16,7 +16,7 @@
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
 #include "net/cookies/canonical_cookie.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 class GURL;
 
diff --git a/net/base/network_delegate_impl.h b/net/base/network_delegate_impl.h
index 51eef4b..e1a853b 100644
--- a/net/base/network_delegate_impl.h
+++ b/net/base/network_delegate_impl.h
@@ -12,7 +12,7 @@
 #include "net/base/net_export.h"
 #include "net/base/network_delegate.h"
 #include "net/cookies/canonical_cookie.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 class GURL;
 
diff --git a/net/base/proxy_delegate.h b/net/base/proxy_delegate.h
index 620f619..bf2ae78 100644
--- a/net/base/proxy_delegate.h
+++ b/net/base/proxy_delegate.h
@@ -9,7 +9,7 @@
 
 #include "base/macros.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 class GURL;
 
diff --git a/net/proxy/proxy_server.cc b/net/base/proxy_server.cc
similarity index 99%
rename from net/proxy/proxy_server.cc
rename to net/base/proxy_server.cc
index ed81ebb..f3050bf 100644
--- a/net/proxy/proxy_server.cc
+++ b/net/base/proxy_server.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 "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 
 #include <algorithm>
 
diff --git a/net/proxy/proxy_server.h b/net/base/proxy_server.h
similarity index 98%
rename from net/proxy/proxy_server.h
rename to net/base/proxy_server.h
index 2827846..af8c4c0 100644
--- a/net/proxy/proxy_server.h
+++ b/net/base/proxy_server.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 NET_PROXY_PROXY_SERVER_H_
-#define NET_PROXY_PROXY_SERVER_H_
+#ifndef NET_BASE_PROXY_SERVER_H_
+#define NET_BASE_PROXY_SERVER_H_
 
 #include "build/build_config.h"
 
@@ -176,4 +176,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_SERVER_H_
+#endif  // NET_BASE_PROXY_SERVER_H_
diff --git a/net/proxy/proxy_server_mac.cc b/net/base/proxy_server_mac.cc
similarity index 97%
rename from net/proxy/proxy_server_mac.cc
rename to net/base/proxy_server_mac.cc
index fe3faa9..74057f8 100644
--- a/net/proxy/proxy_server_mac.cc
+++ b/net/base/proxy_server_mac.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 "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 
diff --git a/net/base/test_proxy_delegate.cc b/net/base/test_proxy_delegate.cc
index acf5b360..29249bc 100644
--- a/net/base/test_proxy_delegate.cc
+++ b/net/base/test_proxy_delegate.cc
@@ -4,7 +4,7 @@
 
 #include "net/base/test_proxy_delegate.h"
 
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/base/test_proxy_delegate.h b/net/base/test_proxy_delegate.h
index 06fe55c..38717eb 100644
--- a/net/base/test_proxy_delegate.h
+++ b/net/base/test_proxy_delegate.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "net/base/proxy_delegate.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 
 class GURL;
 
diff --git a/net/extras/sqlite/sqlite_channel_id_store.cc b/net/extras/sqlite/sqlite_channel_id_store.cc
index b9646cd..71a9308 100644
--- a/net/extras/sqlite/sqlite_channel_id_store.cc
+++ b/net/extras/sqlite/sqlite_channel_id_store.cc
@@ -203,8 +203,6 @@
   // This method should be called only once per instance.
   DCHECK(!db_.get());
 
-  base::TimeTicks start = base::TimeTicks::Now();
-
   // Ensure the parent directory for storing certs is created before reading
   // from it.
   const base::FilePath dir = path_.DirName();
@@ -275,17 +273,6 @@
     channel_ids->push_back(std::move(channel_id));
   }
 
-  UMA_HISTOGRAM_COUNTS_10000(
-      "DomainBoundCerts.DBLoadedCount",
-      static_cast<base::HistogramBase::Sample>(channel_ids->size()));
-  base::TimeDelta load_time = base::TimeTicks::Now() - start;
-  UMA_HISTOGRAM_CUSTOM_TIMES("DomainBoundCerts.DBLoadTime",
-                             load_time,
-                             base::TimeDelta::FromMilliseconds(1),
-                             base::TimeDelta::FromMinutes(1),
-                             50);
-  DVLOG(1) << "loaded " << channel_ids->size() << " in "
-           << load_time.InMilliseconds() << " ms";
   RecordDbLoadStatus(load_result);
 }
 
diff --git a/net/http/http_auth_filter.h b/net/http/http_auth_filter.h
index 345149dd..ae79019 100644
--- a/net/http/http_auth_filter.h
+++ b/net/http/http_auth_filter.h
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "net/base/net_export.h"
 #include "net/http/http_auth.h"
-#include "net/proxy/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 
 class GURL;
 
diff --git a/net/http/http_network_layer_unittest.cc b/net/http/http_network_layer_unittest.cc
index 8d2a8ff..984b03b 100644
--- a/net/http/http_network_layer_unittest.cc
+++ b/net/http/http_network_layer_unittest.cc
@@ -16,7 +16,7 @@
 #include "net/http/http_transaction_test_util.h"
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/spdy/chromium/spdy_session_pool.h"
 #include "net/ssl/ssl_config_service_defaults.h"
diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc
index 051ed32..5367714 100644
--- a/net/http/http_network_session.cc
+++ b/net/http/http_network_session.cc
@@ -25,7 +25,7 @@
 #include "net/http/http_response_body_drainer.h"
 #include "net/http/http_stream_factory_impl.h"
 #include "net/http/url_security_manager.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/quic_crypto_client_stream_factory.h"
 #include "net/quic/chromium/quic_stream_factory.h"
 #include "net/quic/core/crypto/quic_random.h"
diff --git a/net/http/http_network_session_peer.cc b/net/http/http_network_session_peer.cc
index e9c629e8..d132611b 100644
--- a/net/http/http_network_session_peer.cc
+++ b/net/http/http_network_session_peer.cc
@@ -6,7 +6,7 @@
 
 #include "net/base/network_throttle_manager.h"
 #include "net/http/http_proxy_client_socket_pool.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/client_socket_pool_manager.h"
 #include "net/socket/socks_client_socket_pool.h"
 #include "net/socket/ssl_client_socket_pool.h"
diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc
index 44e52f4..c547c56 100644
--- a/net/http/http_network_transaction.cc
+++ b/net/http/http_network_transaction.cc
@@ -28,6 +28,7 @@
 #include "net/base/load_flags.h"
 #include "net/base/load_timing_info.h"
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/base/upload_data_stream.h"
 #include "net/base/url_util.h"
 #include "net/cert/cert_status_flags.h"
@@ -53,7 +54,6 @@
 #include "net/http/transport_security_state.h"
 #include "net/http/url_security_manager.h"
 #include "net/log/net_log_event_type.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/client_socket_factory.h"
 #include "net/socket/next_proto.h"
 #include "net/socket/socks_client_socket_pool.h"
diff --git a/net/http/http_network_transaction.h b/net/http/http_network_transaction.h
index 554a725..dced0ff7 100644
--- a/net/http/http_network_transaction.h
+++ b/net/http/http_network_transaction.h
@@ -25,7 +25,7 @@
 #include "net/http/http_stream_factory.h"
 #include "net/http/http_transaction.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/connection_attempts.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_config_service.h"
diff --git a/net/http/http_network_transaction_ssl_unittest.cc b/net/http/http_network_transaction_ssl_unittest.cc
index ae5fa409..fde891f6 100644
--- a/net/http/http_network_transaction_ssl_unittest.cc
+++ b/net/http/http_network_transaction_ssl_unittest.cc
@@ -23,7 +23,7 @@
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/test/gtest_util.h"
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 9d8e6254..c26ad8d 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -37,6 +37,7 @@
 #include "net/base/net_errors.h"
 #include "net/base/network_throttle_manager.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/test_completion_callback.h"
 #include "net/base/test_proxy_delegate.h"
@@ -68,13 +69,12 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_factory.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/client_socket_factory.h"
 #include "net/socket/client_socket_pool.h"
 #include "net/socket/client_socket_pool_manager.h"
diff --git a/net/http/http_response_body_drainer_unittest.cc b/net/http/http_response_body_drainer_unittest.cc
index 0f89998f..528ec40 100644
--- a/net/http/http_response_body_drainer_unittest.cc
+++ b/net/http/http_response_body_drainer_unittest.cc
@@ -26,7 +26,7 @@
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/http_stream.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/ssl_config_service_defaults.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/net/http/http_response_info.h b/net/http/http_response_info.h
index 3edb9d2..36e5f12 100644
--- a/net/http/http_response_info.h
+++ b/net/http/http_response_info.h
@@ -9,8 +9,8 @@
 
 #include "base/time/time.h"
 #include "net/base/net_export.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_vary_data.h"
-#include "net/proxy/proxy_server.h"
 #include "net/ssl/ssl_info.h"
 
 namespace base {
diff --git a/net/http/http_stream_factory_impl.cc b/net/http/http_stream_factory_impl.cc
index ffc73e2..1374a69 100644
--- a/net/http/http_stream_factory_impl.cc
+++ b/net/http/http_stream_factory_impl.cc
@@ -21,7 +21,7 @@
 #include "net/http/http_stream_factory_impl_job_controller.h"
 #include "net/http/http_stream_factory_impl_request.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/quic/core/quic_server_id.h"
 #include "net/spdy/chromium/bidirectional_stream_spdy_impl.h"
 #include "net/spdy/chromium/spdy_http_stream.h"
diff --git a/net/http/http_stream_factory_impl.h b/net/http/http_stream_factory_impl.h
index 30480ed..d34696ba 100644
--- a/net/http/http_stream_factory_impl.h
+++ b/net/http/http_stream_factory_impl.h
@@ -17,10 +17,10 @@
 #include "net/base/host_port_pair.h"
 #include "net/base/net_export.h"
 #include "net/base/privacy_mode.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/http/http_stream_factory.h"
 #include "net/log/net_log_source.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/ssl_client_socket.h"
 #include "net/spdy/chromium/spdy_session_key.h"
 
diff --git a/net/http/http_stream_factory_impl_job.h b/net/http/http_stream_factory_impl_job.h
index d02070e3..6168d02e 100644
--- a/net/http/http_stream_factory_impl_job.h
+++ b/net/http/http_stream_factory_impl_job.h
@@ -14,6 +14,7 @@
 #include "base/time/time.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/http/bidirectional_stream_impl.h"
 #include "net/http/http_auth.h"
@@ -21,8 +22,7 @@
 #include "net/http/http_request_info.h"
 #include "net/http/http_stream_factory_impl.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/quic_stream_factory.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/client_socket_pool_manager.h"
diff --git a/net/http/http_stream_factory_impl_job_controller.cc b/net/http/http_stream_factory_impl_job_controller.cc
index 14f1c85..529b90e 100644
--- a/net/http/http_stream_factory_impl_job_controller.cc
+++ b/net/http/http_stream_factory_impl_job_controller.cc
@@ -21,7 +21,6 @@
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_source.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 #include "net/spdy/chromium/spdy_session.h"
 #include "url/url_constants.h"
 
diff --git a/net/http/http_stream_factory_impl_job_controller_unittest.cc b/net/http/http_stream_factory_impl_job_controller_unittest.cc
index 8a1b549f..3baf64c 100644
--- a/net/http/http_stream_factory_impl_job_controller_unittest.cc
+++ b/net/http/http_stream_factory_impl_job_controller_unittest.cc
@@ -29,10 +29,10 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/mock_crypto_client_stream_factory.h"
 #include "net/quic/chromium/mock_quic_data.h"
 #include "net/quic/chromium/quic_stream_factory.h"
diff --git a/net/http/http_stream_factory_impl_request_unittest.cc b/net/http/http_stream_factory_impl_request_unittest.cc
index 632be4ce..5cffaa6 100644
--- a/net/http/http_stream_factory_impl_request_unittest.cc
+++ b/net/http/http_stream_factory_impl_request_unittest.cc
@@ -11,8 +11,8 @@
 #include "net/http/http_stream_factory_impl_job.h"
 #include "net/http/http_stream_factory_impl_job_controller.h"
 #include "net/http/http_stream_factory_test_util.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/spdy/chromium/spdy_test_util_common.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/net/http/http_stream_factory_impl_unittest.cc b/net/http/http_stream_factory_impl_unittest.cc
index b62e0cf..5ce3817 100644
--- a/net/http/http_stream_factory_impl_unittest.cc
+++ b/net/http/http_stream_factory_impl_unittest.cc
@@ -19,6 +19,7 @@
 #include "build/build_config.h"
 #include "net/base/port_util.h"
 #include "net/base/privacy_mode.h"
+#include "net/base/proxy_server.h"
 #include "net/base/test_completion_callback.h"
 #include "net/base/test_proxy_delegate.h"
 #include "net/cert/ct_policy_enforcer.h"
@@ -37,9 +38,8 @@
 #include "net/http/http_stream.h"
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/mock_crypto_client_stream_factory.h"
 #include "net/quic/chromium/quic_http_utils.h"
 #include "net/quic/chromium/quic_stream_factory_peer.h"
diff --git a/net/http/http_stream_factory_test_util.cc b/net/http/http_stream_factory_test_util.cc
index b3c0fae1..a096479 100644
--- a/net/http/http_stream_factory_test_util.cc
+++ b/net/http/http_stream_factory_test_util.cc
@@ -6,7 +6,7 @@
 
 #include <utility>
 
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 using ::testing::_;
 
diff --git a/net/http/http_stream_factory_test_util.h b/net/http/http_stream_factory_test_util.h
index b22d53a..91b2e09 100644
--- a/net/http/http_stream_factory_test_util.h
+++ b/net/http/http_stream_factory_test_util.h
@@ -8,13 +8,13 @@
 #include <memory>
 
 #include "base/memory/ptr_util.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_stream.h"
 #include "net/http/http_stream_factory.h"
 #include "net/http/http_stream_factory_impl.h"
 #include "net/http/http_stream_factory_impl_job.h"
 #include "net/http/http_stream_factory_impl_job_controller.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/socket/next_proto.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
diff --git a/net/log/net_log_util.cc b/net/log/net_log_util.cc
index 53857e5e..6f5eb79 100644
--- a/net/log/net_log_util.cc
+++ b/net/log/net_log_util.cc
@@ -33,9 +33,9 @@
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_parameters_callback.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/core/quic_error_codes.h"
 #include "net/quic/core/quic_packets.h"
 #include "net/socket/ssl_client_socket.h"
diff --git a/net/network_error_logging/network_error_logging_end_to_end_test.cc b/net/network_error_logging/network_error_logging_end_to_end_test.cc
index 3da56ed6a..e291238 100644
--- a/net/network_error_logging/network_error_logging_end_to_end_test.cc
+++ b/net/network_error_logging/network_error_logging_end_to_end_test.cc
@@ -26,8 +26,8 @@
 #include "testing/gtest/include/gtest/gtest.h"
 
 #if defined(OS_LINUX) || defined(OS_ANDROID)
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #endif  // defined(OS_LINUX) || defined(OS_ANDROID)
 
 namespace net {
diff --git a/net/proxy/OWNERS b/net/proxy_resolution/OWNERS
similarity index 100%
rename from net/proxy/OWNERS
rename to net/proxy_resolution/OWNERS
diff --git a/net/proxy/dhcp_pac_file_adapter_fetcher_win.cc b/net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.cc
similarity index 97%
rename from net/proxy/dhcp_pac_file_adapter_fetcher_win.cc
rename to net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.cc
index 31b5dae2..4f6afa8 100644
--- a/net/proxy/dhcp_pac_file_adapter_fetcher_win.cc
+++ b/net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.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 "net/proxy/dhcp_pac_file_adapter_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h"
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
@@ -14,8 +14,8 @@
 #include "base/task_runner.h"
 #include "base/time/time.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/dhcpcsvc_init_win.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/dhcpcsvc_init_win.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
 #include "net/url_request/url_request_context.h"
 
 #include <windows.h>
diff --git a/net/proxy/dhcp_pac_file_adapter_fetcher_win.h b/net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h
similarity index 100%
rename from net/proxy/dhcp_pac_file_adapter_fetcher_win.h
rename to net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h
diff --git a/net/proxy/dhcp_pac_file_adapter_fetcher_win_unittest.cc b/net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win_unittest.cc
similarity index 96%
rename from net/proxy/dhcp_pac_file_adapter_fetcher_win_unittest.cc
rename to net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win_unittest.cc
index 90e5ae1d..a84417a 100644
--- a/net/proxy/dhcp_pac_file_adapter_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win_unittest.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 "net/proxy/dhcp_pac_file_adapter_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h"
 
 #include "base/run_loop.h"
 #include "base/synchronization/waitable_event.h"
@@ -12,8 +12,8 @@
 #include "base/timer/timer.h"
 #include "net/base/net_errors.h"
 #include "net/base/test_completion_callback.h"
-#include "net/proxy/mock_pac_file_fetcher.h"
-#include "net/proxy/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/mock_pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/gtest_util.h"
 #include "net/url_request/url_request_test_util.h"
@@ -29,11 +29,10 @@
 
 const char kPacUrl[] = "http://pacserver/script.pac";
 
-// In net/proxy/dhcp_proxy_script_fetcher_win_unittest.cc there are a few
-// tests that exercise DhcpProxyScriptAdapterFetcher end-to-end along with
-// DhcpProxyScriptFetcherWin, i.e. it tests the end-to-end usage of Win32
-// APIs and the network.  In this file we test only by stubbing out
-// functionality.
+// In net/proxy_resolution/dhcp_proxy_script_fetcher_win_unittest.cc there are
+// a few tests that exercise DhcpProxyScriptAdapterFetcher end-to-end along with
+// DhcpProxyScriptFetcherWin, i.e. it tests the end-to-end usage of Win32 APIs
+// and the network.  In this file we test only by stubbing out functionality.
 
 // Version of DhcpProxyScriptAdapterFetcher that mocks out dependencies
 // to allow unit testing.
diff --git a/net/proxy/dhcp_pac_file_fetcher.cc b/net/proxy_resolution/dhcp_pac_file_fetcher.cc
similarity index 94%
rename from net/proxy/dhcp_pac_file_fetcher.cc
rename to net/proxy_resolution/dhcp_pac_file_fetcher.cc
index 8c1557b..eda798de 100644
--- a/net/proxy/dhcp_pac_file_fetcher.cc
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher.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 "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 
 #include "net/base/net_errors.h"
 
diff --git a/net/proxy/dhcp_pac_file_fetcher.h b/net/proxy_resolution/dhcp_pac_file_fetcher.h
similarity index 98%
rename from net/proxy/dhcp_pac_file_fetcher.h
rename to net/proxy_resolution/dhcp_pac_file_fetcher.h
index 5e8177c..afd9793e 100644
--- a/net/proxy/dhcp_pac_file_fetcher.h
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher.h
@@ -10,7 +10,7 @@
 #include "base/strings/string16.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
-#include "net/proxy/pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
 #include "url/gurl.h"
 
 namespace net {
diff --git a/net/proxy/dhcp_pac_file_fetcher_factory.cc b/net/proxy_resolution/dhcp_pac_file_fetcher_factory.cc
similarity index 79%
rename from net/proxy/dhcp_pac_file_fetcher_factory.cc
rename to net/proxy_resolution/dhcp_pac_file_fetcher_factory.cc
index ebcac56..255e013c 100644
--- a/net/proxy/dhcp_pac_file_fetcher_factory.cc
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_factory.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/dhcp_pac_file_fetcher_factory.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_factory.h"
 
 #include "net/base/net_errors.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 
 #if defined(OS_WIN)
-#include "net/proxy/dhcp_pac_file_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_win.h"
 #endif
 
 namespace net {
diff --git a/net/proxy/dhcp_pac_file_fetcher_factory.h b/net/proxy_resolution/dhcp_pac_file_fetcher_factory.h
similarity index 96%
rename from net/proxy/dhcp_pac_file_fetcher_factory.h
rename to net/proxy_resolution/dhcp_pac_file_fetcher_factory.h
index 5c079daa..ab62b6b 100644
--- a/net/proxy/dhcp_pac_file_fetcher_factory.h
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_factory.h
@@ -11,7 +11,7 @@
 #include "base/memory/singleton.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 
 namespace net {
 
diff --git a/net/proxy/dhcp_pac_file_fetcher_factory_unittest.cc b/net/proxy_resolution/dhcp_pac_file_fetcher_factory_unittest.cc
similarity index 89%
rename from net/proxy/dhcp_pac_file_fetcher_factory_unittest.cc
rename to net/proxy_resolution/dhcp_pac_file_fetcher_factory_unittest.cc
index 3bbed94..c8e73d3 100644
--- a/net/proxy/dhcp_pac_file_fetcher_factory_unittest.cc
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_factory_unittest.cc
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/dhcp_pac_file_fetcher_factory.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_factory.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/net/proxy/dhcp_pac_file_fetcher_win.cc b/net/proxy_resolution/dhcp_pac_file_fetcher_win.cc
similarity index 98%
rename from net/proxy/dhcp_pac_file_fetcher_win.cc
rename to net/proxy_resolution/dhcp_pac_file_fetcher_win.cc
index b4ab853..4d5ac959 100644
--- a/net/proxy/dhcp_pac_file_fetcher_win.cc
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_win.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 "net/proxy/dhcp_pac_file_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_win.h"
 
 #include <memory>
 #include <vector>
@@ -12,7 +12,7 @@
 #include "base/memory/free_deleter.h"
 #include "base/threading/sequenced_worker_pool.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/dhcp_pac_file_adapter_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h"
 
 #include <winsock2.h>
 #include <iphlpapi.h>
diff --git a/net/proxy/dhcp_pac_file_fetcher_win.h b/net/proxy_resolution/dhcp_pac_file_fetcher_win.h
similarity index 98%
rename from net/proxy/dhcp_pac_file_fetcher_win.h
rename to net/proxy_resolution/dhcp_pac_file_fetcher_win.h
index a5d9a85..8d4bd7d 100644
--- a/net/proxy/dhcp_pac_file_fetcher_win.h
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_win.h
@@ -16,7 +16,7 @@
 #include "base/time/time.h"
 #include "base/timer/timer.h"
 #include "net/base/net_export.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
 
 namespace base {
 class SequencedWorkerPool;
diff --git a/net/proxy/dhcp_pac_file_fetcher_win_unittest.cc b/net/proxy_resolution/dhcp_pac_file_fetcher_win_unittest.cc
similarity index 99%
rename from net/proxy/dhcp_pac_file_fetcher_win_unittest.cc
rename to net/proxy_resolution/dhcp_pac_file_fetcher_win_unittest.cc
index ebc1993..3490ef3 100644
--- a/net/proxy/dhcp_pac_file_fetcher_win_unittest.cc
+++ b/net/proxy_resolution/dhcp_pac_file_fetcher_win_unittest.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 "net/proxy/dhcp_pac_file_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_win.h"
 
 #include <vector>
 
@@ -14,7 +14,7 @@
 #include "base/threading/platform_thread.h"
 #include "base/timer/elapsed_timer.h"
 #include "net/base/completion_callback.h"
-#include "net/proxy/dhcp_pac_file_adapter_fetcher_win.h"
+#include "net/proxy_resolution/dhcp_pac_file_adapter_fetcher_win.h"
 #include "net/test/gtest_util.h"
 #include "net/url_request/url_request_test_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/net/proxy/dhcpcsvc_init_win.cc b/net/proxy_resolution/dhcpcsvc_init_win.cc
similarity index 94%
rename from net/proxy/dhcpcsvc_init_win.cc
rename to net/proxy_resolution/dhcpcsvc_init_win.cc
index d907960..4a6040f6 100644
--- a/net/proxy/dhcpcsvc_init_win.cc
+++ b/net/proxy_resolution/dhcpcsvc_init_win.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 "net/proxy/dhcpcsvc_init_win.h"
+#include "net/proxy_resolution/dhcpcsvc_init_win.h"
 
 #include "base/lazy_instance.h"
 #include "base/logging.h"
diff --git a/net/proxy/dhcpcsvc_init_win.h b/net/proxy_resolution/dhcpcsvc_init_win.h
similarity index 77%
rename from net/proxy/dhcpcsvc_init_win.h
rename to net/proxy_resolution/dhcpcsvc_init_win.h
index ec72d41..333cbd2 100644
--- a/net/proxy/dhcpcsvc_init_win.h
+++ b/net/proxy_resolution/dhcpcsvc_init_win.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 NET_PROXY_DHCPCSVC_INIT_WIN_H_
-#define NET_PROXY_DHCPCSVC_INIT_WIN_H_
+#ifndef NET_PROXY_RESOLUTION_DHCPCSVC_INIT_WIN_H_
+#define NET_PROXY_RESOLUTION_DHCPCSVC_INIT_WIN_H_
 
 namespace net {
 
@@ -17,4 +17,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_DHCPCSVC_INIT_WIN_H_
+#endif  // NET_PROXY_RESOLUTION_DHCPCSVC_INIT_WIN_H_
diff --git a/net/proxy/mock_pac_file_fetcher.cc b/net/proxy_resolution/mock_pac_file_fetcher.cc
similarity index 97%
rename from net/proxy/mock_pac_file_fetcher.cc
rename to net/proxy_resolution/mock_pac_file_fetcher.cc
index f5215e9..19cd39f 100644
--- a/net/proxy/mock_pac_file_fetcher.cc
+++ b/net/proxy_resolution/mock_pac_file_fetcher.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 "net/proxy/mock_pac_file_fetcher.h"
+#include "net/proxy_resolution/mock_pac_file_fetcher.h"
 
 #include "base/callback_helpers.h"
 #include "base/logging.h"
diff --git a/net/proxy/mock_pac_file_fetcher.h b/net/proxy_resolution/mock_pac_file_fetcher.h
similarity index 96%
rename from net/proxy/mock_pac_file_fetcher.h
rename to net/proxy_resolution/mock_pac_file_fetcher.h
index 07a341f..218dc77 100644
--- a/net/proxy/mock_pac_file_fetcher.h
+++ b/net/proxy_resolution/mock_pac_file_fetcher.h
@@ -6,7 +6,7 @@
 #define NET_PROXY_MOCK_PAC_FILE_FETCHER_H_
 
 #include "base/compiler_specific.h"
-#include "net/proxy/pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
 #include "url/gurl.h"
 
 #include <string>
diff --git a/net/proxy/mock_proxy_resolver.cc b/net/proxy_resolution/mock_proxy_resolver.cc
similarity index 98%
rename from net/proxy/mock_proxy_resolver.cc
rename to net/proxy_resolution/mock_proxy_resolver.cc
index 0daea49..56ac53a 100644
--- a/net/proxy/mock_proxy_resolver.cc
+++ b/net/proxy_resolution/mock_proxy_resolver.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 "net/proxy/mock_proxy_resolver.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
 
 #include <utility>
 
diff --git a/net/proxy/mock_proxy_resolver.h b/net/proxy_resolution/mock_proxy_resolver.h
similarity index 94%
rename from net/proxy/mock_proxy_resolver.h
rename to net/proxy_resolution/mock_proxy_resolver.h
index 8a68748..df8c6c1 100644
--- a/net/proxy/mock_proxy_resolver.h
+++ b/net/proxy_resolution/mock_proxy_resolver.h
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_MOCK_PROXY_RESOLVER_H_
-#define NET_PROXY_MOCK_PROXY_RESOLVER_H_
+#ifndef NET_PROXY_RESOLUTION_MOCK_PROXY_RESOLVER_H_
+#define NET_PROXY_RESOLUTION_MOCK_PROXY_RESOLVER_H_
 
 #include <memory>
 #include <vector>
 
 #include "base/macros.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "url/gurl.h"
 
 namespace net {
@@ -163,4 +163,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_MOCK_PROXY_RESOLVER_H_
+#endif  // NET_PROXY_RESOLUTION_MOCK_PROXY_RESOLVER_H_
diff --git a/net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h b/net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.h
similarity index 88%
rename from net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h
rename to net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.h
index 8a424fe..e64c422da 100644
--- a/net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h
+++ b/net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.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 NET_PROXY_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
-#define NET_PROXY_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
+#ifndef NET_PROXY_RESOLUTION_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
+#define NET_PROXY_RESOLUTION_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
 
 #include <utility>
 
@@ -11,7 +11,7 @@
 #include "base/threading/thread_checker.h"
 #include "net/dns/host_resolver_mojo.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 
 namespace net {
 
@@ -67,4 +67,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
+#endif  // NET_PROXY_RESOLUTION_MOJO_PROXY_RESOLVER_V8_TRACING_BINDINGS_H_
diff --git a/net/proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc b/net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc
similarity index 95%
rename from net/proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc
rename to net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc
index b8a5a13..ffd37b1 100644
--- a/net/proxy/mojo_proxy_resolver_v8_tracing_bindings_unittest.cc
+++ b/net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings_unittest.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 "net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h"
+#include "net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.h"
 
 #include <string>
 #include <utility>
diff --git a/net/proxy/multi_threaded_proxy_resolver.cc b/net/proxy_resolution/multi_threaded_proxy_resolver.cc
similarity index 98%
rename from net/proxy/multi_threaded_proxy_resolver.cc
rename to net/proxy_resolution/multi_threaded_proxy_resolver.cc
index a50b3f9..beaf4b7 100644
--- a/net/proxy/multi_threaded_proxy_resolver.cc
+++ b/net/proxy_resolution/multi_threaded_proxy_resolver.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 "net/proxy/multi_threaded_proxy_resolver.h"
+#include "net/proxy_resolution/multi_threaded_proxy_resolver.h"
 
 #include <utility>
 #include <vector>
@@ -23,8 +23,8 @@
 #include "net/log/net_log.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 
 namespace net {
 namespace {
diff --git a/net/proxy/multi_threaded_proxy_resolver.h b/net/proxy_resolution/multi_threaded_proxy_resolver.h
similarity index 91%
rename from net/proxy/multi_threaded_proxy_resolver.h
rename to net/proxy_resolution/multi_threaded_proxy_resolver.h
index 9ac59dc..caf36fa 100644
--- a/net/proxy/multi_threaded_proxy_resolver.h
+++ b/net/proxy_resolution/multi_threaded_proxy_resolver.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 NET_PROXY_MULTI_THREADED_PROXY_RESOLVER_H_
-#define NET_PROXY_MULTI_THREADED_PROXY_RESOLVER_H_
+#ifndef NET_PROXY_RESOLUTION_MULTI_THREADED_PROXY_RESOLVER_H_
+#define NET_PROXY_RESOLUTION_MULTI_THREADED_PROXY_RESOLVER_H_
 
 #include <stddef.h>
 
@@ -12,7 +12,7 @@
 
 #include "base/memory/ref_counted.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 
 namespace net {
 class ProxyResolver;
@@ -78,4 +78,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_MULTI_THREADED_PROXY_RESOLVER_H_
+#endif  // NET_PROXY_RESOLUTION_MULTI_THREADED_PROXY_RESOLVER_H_
diff --git a/net/proxy/multi_threaded_proxy_resolver_unittest.cc b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
similarity index 98%
rename from net/proxy/multi_threaded_proxy_resolver_unittest.cc
rename to net/proxy_resolution/multi_threaded_proxy_resolver_unittest.cc
index 8cc5bb6..53ce0aa 100644
--- a/net/proxy/multi_threaded_proxy_resolver_unittest.cc
+++ b/net/proxy_resolution/multi_threaded_proxy_resolver_unittest.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 "net/proxy/multi_threaded_proxy_resolver.h"
+#include "net/proxy_resolution/multi_threaded_proxy_resolver.h"
 
 #include <utility>
 #include <vector>
@@ -23,9 +23,9 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/proxy/network_delegate_error_observer.cc b/net/proxy_resolution/network_delegate_error_observer.cc
similarity index 97%
rename from net/proxy/network_delegate_error_observer.cc
rename to net/proxy_resolution/network_delegate_error_observer.cc
index 6fe0aaa..a588161 100644
--- a/net/proxy/network_delegate_error_observer.cc
+++ b/net/proxy_resolution/network_delegate_error_observer.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 "net/proxy/network_delegate_error_observer.h"
+#include "net/proxy_resolution/network_delegate_error_observer.h"
 
 #include "base/bind.h"
 #include "base/location.h"
diff --git a/net/proxy/network_delegate_error_observer.h b/net/proxy_resolution/network_delegate_error_observer.h
similarity index 83%
rename from net/proxy/network_delegate_error_observer.h
rename to net/proxy_resolution/network_delegate_error_observer.h
index 9aa3902..1d8264a 100644
--- a/net/proxy/network_delegate_error_observer.h
+++ b/net/proxy_resolution/network_delegate_error_observer.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 NET_PROXY_NETWORK_DELEGATE_ERROR_OBSERVER_H_
-#define NET_PROXY_NETWORK_DELEGATE_ERROR_OBSERVER_H_
+#ifndef NET_PROXY_RESOLUTION_NETWORK_DELEGATE_ERROR_OBSERVER_H_
+#define NET_PROXY_RESOLUTION_NETWORK_DELEGATE_ERROR_OBSERVER_H_
 
 #include <memory>
 
@@ -11,7 +11,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
 
 namespace base {
 class SingleThreadTaskRunner;
@@ -47,4 +47,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_NETWORK_DELEGATE_ERROR_OBSERVER_H_
+#endif  // NET_PROXY_RESOLUTION_NETWORK_DELEGATE_ERROR_OBSERVER_H_
diff --git a/net/proxy/network_delegate_error_observer_unittest.cc b/net/proxy_resolution/network_delegate_error_observer_unittest.cc
similarity index 98%
rename from net/proxy/network_delegate_error_observer_unittest.cc
rename to net/proxy_resolution/network_delegate_error_observer_unittest.cc
index 8a6fe3c..9e89418 100644
--- a/net/proxy/network_delegate_error_observer_unittest.cc
+++ b/net/proxy_resolution/network_delegate_error_observer_unittest.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 "net/proxy/network_delegate_error_observer.h"
+#include "net/proxy_resolution/network_delegate_error_observer.h"
 
 #include "base/bind.h"
 #include "base/bind_helpers.h"
diff --git a/net/proxy/pac_file_data.cc b/net/proxy_resolution/pac_file_data.cc
similarity index 97%
rename from net/proxy/pac_file_data.cc
rename to net/proxy_resolution/pac_file_data.cc
index 55d60ed..c0f8cc1 100644
--- a/net/proxy/pac_file_data.cc
+++ b/net/proxy_resolution/pac_file_data.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 "net/proxy/pac_file_data.h"
+#include "net/proxy_resolution/pac_file_data.h"
 
 #include "base/logging.h"
 #include "base/strings/utf_string_conversions.h"
diff --git a/net/proxy/pac_file_data.h b/net/proxy_resolution/pac_file_data.h
similarity index 100%
rename from net/proxy/pac_file_data.h
rename to net/proxy_resolution/pac_file_data.h
diff --git a/net/proxy/pac_file_decider.cc b/net/proxy_resolution/pac_file_decider.cc
similarity index 98%
rename from net/proxy/pac_file_decider.cc
rename to net/proxy_resolution/pac_file_decider.cc
index 8e12c59..29e8413 100644
--- a/net/proxy/pac_file_decider.cc
+++ b/net/proxy_resolution/pac_file_decider.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 "net/proxy/pac_file_decider.h"
+#include "net/proxy_resolution/pac_file_decider.h"
 
 #include <utility>
 
@@ -19,9 +19,9 @@
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_source_type.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/dhcp_pac_file_fetcher_factory.h"
-#include "net/proxy/pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher_factory.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
 #include "net/url_request/url_request_context.h"
 
 namespace net {
diff --git a/net/proxy/pac_file_decider.h b/net/proxy_resolution/pac_file_decider.h
similarity index 98%
rename from net/proxy/pac_file_decider.h
rename to net/proxy_resolution/pac_file_decider.h
index d44a906..82ec9f19 100644
--- a/net/proxy/pac_file_decider.h
+++ b/net/proxy_resolution/pac_file_decider.h
@@ -20,8 +20,8 @@
 #include "net/base/net_export.h"
 #include "net/dns/host_resolver.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "url/gurl.h"
 
 namespace base {
diff --git a/net/proxy/pac_file_decider_unittest.cc b/net/proxy_resolution/pac_file_decider_unittest.cc
similarity index 98%
rename from net/proxy/pac_file_decider_unittest.cc
rename to net/proxy_resolution/pac_file_decider_unittest.cc
index c420f46..4d7a392 100644
--- a/net/proxy/pac_file_decider_unittest.cc
+++ b/net/proxy_resolution/pac_file_decider_unittest.cc
@@ -21,12 +21,12 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/mock_pac_file_fetcher.h"
-#include "net/proxy/pac_file_decider.h"
-#include "net/proxy/pac_file_fetcher.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/mock_pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_decider.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "net/test/gtest_util.h"
 #include "net/url_request/url_request_context.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/net/proxy/pac_file_fetcher.h b/net/proxy_resolution/pac_file_fetcher.h
similarity index 100%
rename from net/proxy/pac_file_fetcher.h
rename to net/proxy_resolution/pac_file_fetcher.h
diff --git a/net/proxy/pac_file_fetcher_impl.cc b/net/proxy_resolution/pac_file_fetcher_impl.cc
similarity index 99%
rename from net/proxy/pac_file_fetcher_impl.cc
rename to net/proxy_resolution/pac_file_fetcher_impl.cc
index 90c75e2..3f5fe0fe 100644
--- a/net/proxy/pac_file_fetcher_impl.cc
+++ b/net/proxy_resolution/pac_file_fetcher_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 "net/proxy/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
 
 #include "base/compiler_specific.h"
 #include "base/location.h"
diff --git a/net/proxy/pac_file_fetcher_impl.h b/net/proxy_resolution/pac_file_fetcher_impl.h
similarity index 98%
rename from net/proxy/pac_file_fetcher_impl.h
rename to net/proxy_resolution/pac_file_fetcher_impl.h
index d68c273..3cea326 100644
--- a/net/proxy/pac_file_fetcher_impl.h
+++ b/net/proxy_resolution/pac_file_fetcher_impl.h
@@ -17,7 +17,7 @@
 #include "base/strings/string16.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
-#include "net/proxy/pac_file_fetcher.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
 #include "net/url_request/url_request.h"
 
 class GURL;
diff --git a/net/proxy/pac_file_fetcher_impl_unittest.cc b/net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
similarity index 99%
rename from net/proxy/pac_file_fetcher_impl_unittest.cc
rename to net/proxy_resolution/pac_file_fetcher_impl_unittest.cc
index 284c9a0..30d5e54 100644
--- a/net/proxy/pac_file_fetcher_impl_unittest.cc
+++ b/net/proxy_resolution/pac_file_fetcher_impl_unittest.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 "net/proxy/pac_file_fetcher_impl.h"
+#include "net/proxy_resolution/pac_file_fetcher_impl.h"
 
 #include <string>
 #include <utility>
diff --git a/net/proxy/pac_js_library.h b/net/proxy_resolution/pac_js_library.h
similarity index 98%
rename from net/proxy/pac_js_library.h
rename to net/proxy_resolution/pac_js_library.h
index a26ea80a..c99c348 100644
--- a/net/proxy/pac_js_library.h
+++ b/net/proxy_resolution/pac_js_library.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 NET_PROXY_PAC_JS_LIBRARY_H_
-#define NET_PROXY_PAC_JS_LIBRARY_H_
+#ifndef NET_PROXY_RESOLUTION_PAC_JS_LIBRARY_H_
+#define NET_PROXY_RESOLUTION_PAC_JS_LIBRARY_H_
 
 /* ***** BEGIN LICENSE BLOCK *****
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
@@ -279,4 +279,4 @@
   "    return (ipList != '');\n"           \
   "}\n"
 
-#endif  // NET_PROXY_PAC_JS_LIBRARY_H_
+#endif  // NET_PROXY_RESOLUTION_PAC_JS_LIBRARY_H_
diff --git a/net/proxy/parse_proxy_bypass_rules_fuzzer.cc b/net/proxy_resolution/parse_proxy_bypass_rules_fuzzer.cc
similarity index 89%
rename from net/proxy/parse_proxy_bypass_rules_fuzzer.cc
rename to net/proxy_resolution/parse_proxy_bypass_rules_fuzzer.cc
index 37b8971c..1232ae5 100644
--- a/net/proxy/parse_proxy_bypass_rules_fuzzer.cc
+++ b/net/proxy_resolution/parse_proxy_bypass_rules_fuzzer.cc
@@ -5,7 +5,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "net/proxy/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 
 // Entry point for LibFuzzer.
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
diff --git a/net/proxy/parse_proxy_list_fuzzer.cc b/net/proxy_resolution/parse_proxy_list_fuzzer.cc
similarity index 89%
rename from net/proxy/parse_proxy_list_fuzzer.cc
rename to net/proxy_resolution/parse_proxy_list_fuzzer.cc
index 0488549..2e2731c5 100644
--- a/net/proxy/parse_proxy_list_fuzzer.cc
+++ b/net/proxy_resolution/parse_proxy_list_fuzzer.cc
@@ -5,7 +5,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_list.h"
 
 // Entry point for LibFuzzer.
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
diff --git a/net/proxy/parse_proxy_list_pac_fuzzer.cc b/net/proxy_resolution/parse_proxy_list_pac_fuzzer.cc
similarity index 90%
rename from net/proxy/parse_proxy_list_pac_fuzzer.cc
rename to net/proxy_resolution/parse_proxy_list_pac_fuzzer.cc
index 556773c..370a647b 100644
--- a/net/proxy/parse_proxy_list_pac_fuzzer.cc
+++ b/net/proxy_resolution/parse_proxy_list_pac_fuzzer.cc
@@ -5,7 +5,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_list.h"
 
 // Entry point for LibFuzzer.
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
diff --git a/net/proxy/parse_proxy_rules_fuzzer.cc b/net/proxy_resolution/parse_proxy_rules_fuzzer.cc
similarity index 89%
rename from net/proxy/parse_proxy_rules_fuzzer.cc
rename to net/proxy_resolution/parse_proxy_rules_fuzzer.cc
index cd88cdd..19431c27 100644
--- a/net/proxy/parse_proxy_rules_fuzzer.cc
+++ b/net/proxy_resolution/parse_proxy_rules_fuzzer.cc
@@ -5,7 +5,7 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 // Entry point for LibFuzzer.
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
diff --git a/net/proxy/polling_proxy_config_service.cc b/net/proxy_resolution/polling_proxy_config_service.cc
similarity index 97%
rename from net/proxy/polling_proxy_config_service.cc
rename to net/proxy_resolution/polling_proxy_config_service.cc
index 7a78400..f54dd4d 100644
--- a/net/proxy/polling_proxy_config_service.cc
+++ b/net/proxy_resolution/polling_proxy_config_service.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 "net/proxy/polling_proxy_config_service.h"
+#include "net/proxy_resolution/polling_proxy_config_service.h"
 
 #include <memory>
 
@@ -13,7 +13,7 @@
 #include "base/synchronization/lock.h"
 #include "base/task_scheduler/post_task.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace net {
 
diff --git a/net/proxy/polling_proxy_config_service.h b/net/proxy_resolution/polling_proxy_config_service.h
similarity index 87%
rename from net/proxy/polling_proxy_config_service.h
rename to net/proxy_resolution/polling_proxy_config_service.h
index c613134..dccdab4 100644
--- a/net/proxy/polling_proxy_config_service.h
+++ b/net/proxy_resolution/polling_proxy_config_service.h
@@ -2,15 +2,15 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_POLLING_PROXY_CONFIG_SERVICE_H_
-#define NET_PROXY_POLLING_PROXY_CONFIG_SERVICE_H_
+#ifndef NET_PROXY_RESOLUTION_POLLING_PROXY_CONFIG_SERVICE_H_
+#define NET_PROXY_RESOLUTION_POLLING_PROXY_CONFIG_SERVICE_H_
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace net {
 
@@ -54,4 +54,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_POLLING_PROXY_CONFIG_SERVICE_H_
+#endif  // NET_PROXY_RESOLUTION_POLLING_PROXY_CONFIG_SERVICE_H_
diff --git a/net/proxy/proxy_bypass_rules.cc b/net/proxy_resolution/proxy_bypass_rules.cc
similarity index 99%
rename from net/proxy/proxy_bypass_rules.cc
rename to net/proxy_resolution/proxy_bypass_rules.cc
index dddfe43..372a048 100644
--- a/net/proxy/proxy_bypass_rules.cc
+++ b/net/proxy_resolution/proxy_bypass_rules.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 "net/proxy/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 
 #include "base/strings/pattern.h"
 #include "base/strings/string_piece.h"
diff --git a/net/proxy/proxy_bypass_rules.h b/net/proxy_resolution/proxy_bypass_rules.h
similarity index 97%
rename from net/proxy/proxy_bypass_rules.h
rename to net/proxy_resolution/proxy_bypass_rules.h
index 228bb61..c072aef 100644
--- a/net/proxy/proxy_bypass_rules.h
+++ b/net/proxy_resolution/proxy_bypass_rules.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 NET_PROXY_PROXY_BYPASS_RULES_H_
-#define NET_PROXY_PROXY_BYPASS_RULES_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_BYPASS_RULES_H_
+#define NET_PROXY_RESOLUTION_PROXY_BYPASS_RULES_H_
 
 #include <memory>
 #include <string>
@@ -178,4 +178,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_BYPASS_RULES_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_BYPASS_RULES_H_
diff --git a/net/proxy/proxy_bypass_rules_unittest.cc b/net/proxy_resolution/proxy_bypass_rules_unittest.cc
similarity index 98%
rename from net/proxy/proxy_bypass_rules_unittest.cc
rename to net/proxy_resolution/proxy_bypass_rules_unittest.cc
index 84cad71..c3e2b13 100644
--- a/net/proxy/proxy_bypass_rules_unittest.cc
+++ b/net/proxy_resolution/proxy_bypass_rules_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
 
 #include "base/strings/string_util.h"
 #include "base/strings/stringprintf.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_config.cc b/net/proxy_resolution/proxy_config.cc
similarity index 98%
rename from net/proxy/proxy_config.cc
rename to net/proxy_resolution/proxy_config.cc
index ec4e490..e4180fe9 100644
--- a/net/proxy/proxy_config.cc
+++ b/net/proxy_resolution/proxy_config.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 "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 #include <memory>
 #include <utility>
@@ -11,7 +11,7 @@
 #include "base/strings/string_tokenizer.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_config.h b/net/proxy_resolution/proxy_config.h
similarity index 95%
rename from net/proxy/proxy_config.h
rename to net/proxy_resolution/proxy_config.h
index 01b2814d..cd68226 100644
--- a/net/proxy/proxy_config.h
+++ b/net/proxy_resolution/proxy_config.h
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_CONFIG_H_
-#define NET_PROXY_PROXY_CONFIG_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_H_
 
 #include <string>
 
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_bypass_rules.h"
-#include "net/proxy/proxy_config_source.h"
-#include "net/proxy/proxy_list.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_config_source.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "url/gurl.h"
 
 namespace base {
@@ -264,4 +264,4 @@
 
 
 
-#endif  // NET_PROXY_PROXY_CONFIG_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_H_
diff --git a/net/proxy/proxy_config_service.h b/net/proxy_resolution/proxy_config_service.h
similarity index 93%
rename from net/proxy/proxy_config_service.h
rename to net/proxy_resolution/proxy_config_service.h
index 56d0c68..6342915 100644
--- a/net/proxy/proxy_config_service.h
+++ b/net/proxy_resolution/proxy_config_service.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 NET_PROXY_PROXY_CONFIG_SERVICE_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_H_
 
 #include "net/base/net_export.h"
 
@@ -65,4 +65,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_H_
diff --git a/net/proxy/proxy_config_service_android.cc b/net/proxy_resolution/proxy_config_service_android.cc
similarity index 98%
rename from net/proxy/proxy_config_service_android.cc
rename to net/proxy_resolution/proxy_config_service_android.cc
index 4fe8153..ba844d0 100644
--- a/net/proxy/proxy_config_service_android.cc
+++ b/net/proxy_resolution/proxy_config_service_android.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 "net/proxy/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
 
 #include <sys/system_properties.h>
 
@@ -22,7 +22,7 @@
 #include "base/strings/stringprintf.h"
 #include "jni/ProxyChangeListener_jni.h"
 #include "net/base/host_port_pair.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "url/third_party/mozilla/url_parse.h"
 
 using base::android::AttachCurrentThread;
diff --git a/net/proxy/proxy_config_service_android.h b/net/proxy_resolution/proxy_config_service_android.h
similarity index 92%
rename from net/proxy/proxy_config_service_android.h
rename to net/proxy_resolution/proxy_config_service_android.h
index aa512b6..6f229773 100644
--- a/net/proxy/proxy_config_service_android.h
+++ b/net/proxy_resolution/proxy_config_service_android.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 NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_ANDROID_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_ANDROID_H_
 
 #include <string>
 
@@ -13,7 +13,7 @@
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace base {
 class SequencedTaskRunner;
@@ -95,4 +95,4 @@
 
 } // namespace net
 
-#endif // NET_PROXY_PROXY_CONFIG_SERVICE_ANDROID_H_
+#endif // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_ANDROID_H_
diff --git a/net/proxy/proxy_config_service_android_unittest.cc b/net/proxy_resolution/proxy_config_service_android_unittest.cc
similarity index 98%
rename from net/proxy/proxy_config_service_android_unittest.cc
rename to net/proxy_resolution/proxy_config_service_android_unittest.cc
index 891c1bd1..ceae603 100644
--- a/net/proxy/proxy_config_service_android_unittest.cc
+++ b/net/proxy_resolution/proxy_config_service_android_unittest.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 "net/proxy/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
 
 #include <map>
 #include <memory>
@@ -13,8 +13,8 @@
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
 #include "jni/AndroidProxyConfigServiceTestUtil_jni.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_config_service_common_unittest.cc b/net/proxy_resolution/proxy_config_service_common_unittest.cc
similarity index 97%
rename from net/proxy/proxy_config_service_common_unittest.cc
rename to net/proxy_resolution/proxy_config_service_common_unittest.cc
index 035ecd1..aa21172b 100644
--- a/net/proxy/proxy_config_service_common_unittest.cc
+++ b/net/proxy_resolution/proxy_config_service_common_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 
 #include <string>
 #include <vector>
 
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/net/proxy/proxy_config_service_common_unittest.h b/net/proxy_resolution/proxy_config_service_common_unittest.h
similarity index 91%
rename from net/proxy/proxy_config_service_common_unittest.h
rename to net/proxy_resolution/proxy_config_service_common_unittest.h
index dbacbab..35c6fd6 100644
--- a/net/proxy/proxy_config_service_common_unittest.h
+++ b/net/proxy_resolution/proxy_config_service_common_unittest.h
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
 
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 // Helper functions to describe the expected value of a
@@ -77,4 +77,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_COMMON_UNITTEST_H_
diff --git a/net/proxy/proxy_config_service_fixed.cc b/net/proxy_resolution/proxy_config_service_fixed.cc
similarity index 89%
rename from net/proxy/proxy_config_service_fixed.cc
rename to net/proxy_resolution/proxy_config_service_fixed.cc
index ebcdbd3..9f06bf89 100644
--- a/net/proxy/proxy_config_service_fixed.cc
+++ b/net/proxy_resolution/proxy_config_service_fixed.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 "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_config_service_fixed.h b/net/proxy_resolution/proxy_config_service_fixed.h
similarity index 73%
rename from net/proxy/proxy_config_service_fixed.h
rename to net/proxy_resolution/proxy_config_service_fixed.h
index 84c6eab..578f9f0f 100644
--- a/net/proxy/proxy_config_service_fixed.h
+++ b/net/proxy_resolution/proxy_config_service_fixed.h
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_CONFIG_SERVICE_FIXED_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_FIXED_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_FIXED_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_FIXED_H_
 
 #include "base/compiler_specific.h"
 #include "net/base/net_errors.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace net {
 
@@ -30,4 +30,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_FIXED_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_FIXED_H_
diff --git a/net/proxy/proxy_config_service_ios.cc b/net/proxy_resolution/proxy_config_service_ios.cc
similarity index 96%
rename from net/proxy/proxy_config_service_ios.cc
rename to net/proxy_resolution/proxy_config_service_ios.cc
index ef29a03..468d489 100644
--- a/net/proxy/proxy_config_service_ios.cc
+++ b/net/proxy_resolution/proxy_config_service_ios.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 "net/proxy/proxy_config_service_ios.h"
+#include "net/proxy_resolution/proxy_config_service_ios.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 #include <CFNetwork/CFProxySupport.h>
@@ -11,7 +11,7 @@
 #include "base/mac/scoped_cftyperef.h"
 #include "base/message_loop/message_loop.h"
 #include "base/strings/sys_string_conversions.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_config_service_ios.h b/net/proxy_resolution/proxy_config_service_ios.h
similarity index 68%
rename from net/proxy/proxy_config_service_ios.h
rename to net/proxy_resolution/proxy_config_service_ios.h
index d239f37..f6e342c 100644
--- a/net/proxy/proxy_config_service_ios.h
+++ b/net/proxy_resolution/proxy_config_service_ios.h
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_CONFIG_SERVICE_IOS_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_IOS_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_IOS_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_IOS_H_
 
 #include "base/macros.h"
-#include "net/proxy/polling_proxy_config_service.h"
+#include "net/proxy_resolution/polling_proxy_config_service.h"
 
 namespace net {
 
@@ -22,4 +22,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_IOS_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_IOS_H_
diff --git a/net/proxy/proxy_config_service_linux.cc b/net/proxy_resolution/proxy_config_service_linux.cc
similarity index 99%
rename from net/proxy/proxy_config_service_linux.cc
rename to net/proxy_resolution/proxy_config_service_linux.cc
index 3dd26e7..2f953fd 100644
--- a/net/proxy/proxy_config_service_linux.cc
+++ b/net/proxy_resolution/proxy_config_service_linux.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 "net/proxy/proxy_config_service_linux.h"
+#include "net/proxy_resolution/proxy_config_service_linux.h"
 
 #include <errno.h>
 #include <limits.h>
@@ -29,8 +29,8 @@
 #include "base/task_scheduler/task_traits.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/timer/timer.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 #if defined(USE_GIO)
 #include <gio/gio.h>
diff --git a/net/proxy/proxy_config_service_linux.h b/net/proxy_resolution/proxy_config_service_linux.h
similarity index 97%
rename from net/proxy/proxy_config_service_linux.h
rename to net/proxy_resolution/proxy_config_service_linux.h
index 8f54bb1..58c1508 100644
--- a/net/proxy/proxy_config_service_linux.h
+++ b/net/proxy_resolution/proxy_config_service_linux.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 NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_LINUX_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_LINUX_H_
 
 #include <stddef.h>
 
@@ -17,9 +17,9 @@
 #include "base/memory/ref_counted.h"
 #include "base/observer_list.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace base {
 class SingleThreadTaskRunner;
@@ -311,4 +311,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_LINUX_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_LINUX_H_
diff --git a/net/proxy/proxy_config_service_linux_unittest.cc b/net/proxy_resolution/proxy_config_service_linux_unittest.cc
similarity index 99%
rename from net/proxy/proxy_config_service_linux_unittest.cc
rename to net/proxy_resolution/proxy_config_service_linux_unittest.cc
index 11584ac..7aec908 100644
--- a/net/proxy/proxy_config_service_linux_unittest.cc
+++ b/net/proxy_resolution/proxy_config_service_linux_unittest.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 "net/proxy/proxy_config_service_linux.h"
+#include "net/proxy_resolution/proxy_config_service_linux.h"
 
 #include <map>
 #include <string>
@@ -24,8 +24,8 @@
 #include "base/synchronization/waitable_event.h"
 #include "base/threading/thread.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/platform_test.h"
 
diff --git a/net/proxy/proxy_config_service_mac.cc b/net/proxy_resolution/proxy_config_service_mac.cc
similarity index 97%
rename from net/proxy/proxy_config_service_mac.cc
rename to net/proxy_resolution/proxy_config_service_mac.cc
index 4d98fdf1..f236aa4 100644
--- a/net/proxy/proxy_config_service_mac.cc
+++ b/net/proxy_resolution/proxy_config_service_mac.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 "net/proxy/proxy_config_service_mac.h"
+#include "net/proxy_resolution/proxy_config_service_mac.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 #include <SystemConfiguration/SystemConfiguration.h>
@@ -14,9 +14,9 @@
 #include "base/message_loop/message_loop.h"
 #include "base/strings/sys_string_conversions.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_config_service_mac.h b/net/proxy_resolution/proxy_config_service_mac.h
similarity index 90%
rename from net/proxy/proxy_config_service_mac.h
rename to net/proxy_resolution/proxy_config_service_mac.h
index a210e6a..6b434f5 100644
--- a/net/proxy/proxy_config_service_mac.h
+++ b/net/proxy_resolution/proxy_config_service_mac.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 NET_PROXY_PROXY_CONFIG_SERVICE_MAC_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_MAC_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_MAC_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_MAC_H_
 
 #include <memory>
 
@@ -12,8 +12,8 @@
 #include "base/memory/ref_counted.h"
 #include "base/observer_list.h"
 #include "net/base/network_config_watcher_mac.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 
 namespace base {
 class SequencedTaskRunner;
@@ -82,4 +82,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_MAC_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_MAC_H_
diff --git a/net/proxy/proxy_config_service_win.cc b/net/proxy_resolution/proxy_config_service_win.cc
similarity index 97%
rename from net/proxy/proxy_config_service_win.cc
rename to net/proxy_resolution/proxy_config_service_win.cc
index bc9408e..b298a13b 100644
--- a/net/proxy/proxy_config_service_win.cc
+++ b/net/proxy_resolution/proxy_config_service_win.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 "net/proxy/proxy_config_service_win.h"
+#include "net/proxy_resolution/proxy_config_service_win.h"
 
 #include <windows.h>
 #include <winhttp.h>
@@ -17,7 +17,7 @@
 #include "base/win/registry.h"
 #include "base/win/scoped_handle.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_config.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_config_service_win.h b/net/proxy_resolution/proxy_config_service_win.h
similarity index 91%
rename from net/proxy/proxy_config_service_win.h
rename to net/proxy_resolution/proxy_config_service_win.h
index d14b5df5..9ee40c5a 100644
--- a/net/proxy/proxy_config_service_win.h
+++ b/net/proxy_resolution/proxy_config_service_win.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 NET_PROXY_PROXY_CONFIG_SERVICE_WIN_H_
-#define NET_PROXY_PROXY_CONFIG_SERVICE_WIN_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_WIN_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_WIN_H_
 
 #include <windows.h>
 #include <winhttp.h>
@@ -14,7 +14,7 @@
 #include "base/compiler_specific.h"
 #include "base/gtest_prod_util.h"
 #include "net/base/net_export.h"
-#include "net/proxy/polling_proxy_config_service.h"
+#include "net/proxy_resolution/polling_proxy_config_service.h"
 
 namespace base {
 namespace win {
@@ -80,4 +80,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SERVICE_WIN_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SERVICE_WIN_H_
diff --git a/net/proxy/proxy_config_service_win_unittest.cc b/net/proxy_resolution/proxy_config_service_win_unittest.cc
similarity index 97%
rename from net/proxy/proxy_config_service_win_unittest.cc
rename to net/proxy_resolution/proxy_config_service_win_unittest.cc
index 02486388..8ea7eb3a 100644
--- a/net/proxy/proxy_config_service_win_unittest.cc
+++ b/net/proxy_resolution/proxy_config_service_win_unittest.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_config_service_win.h"
+#include "net/proxy_resolution/proxy_config_service_win.h"
 
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_config_source.cc b/net/proxy_resolution/proxy_config_source.cc
similarity index 92%
rename from net/proxy/proxy_config_source.cc
rename to net/proxy_resolution/proxy_config_source.cc
index 7ab9ce1..304719a 100644
--- a/net/proxy/proxy_config_source.cc
+++ b/net/proxy_resolution/proxy_config_source.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 "net/proxy/proxy_config_source.h"
+#include "net/proxy_resolution/proxy_config_source.h"
 
 #include "base/logging.h"
 
diff --git a/net/proxy/proxy_config_source.h b/net/proxy_resolution/proxy_config_source.h
similarity index 89%
rename from net/proxy/proxy_config_source.h
rename to net/proxy_resolution/proxy_config_source.h
index ea69e17..ff0fcfb 100644
--- a/net/proxy/proxy_config_source.h
+++ b/net/proxy_resolution/proxy_config_source.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 NET_PROXY_PROXY_CONFIG_SOURCE_H_
-#define NET_PROXY_PROXY_CONFIG_SOURCE_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_CONFIG_SOURCE_H_
+#define NET_PROXY_RESOLUTION_PROXY_CONFIG_SOURCE_H_
 
 namespace net {
 
@@ -33,4 +33,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_CONFIG_SOURCE_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_CONFIG_SOURCE_H_
diff --git a/net/proxy/proxy_config_unittest.cc b/net/proxy_resolution/proxy_config_unittest.cc
similarity index 98%
rename from net/proxy/proxy_config_unittest.cc
rename to net/proxy_resolution/proxy_config_unittest.cc
index a028613..51b5703 100644
--- a/net/proxy/proxy_config_unittest.cc
+++ b/net/proxy_resolution/proxy_config_unittest.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_common_unittest.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_common_unittest.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_info.cc b/net/proxy_resolution/proxy_info.cc
similarity index 96%
rename from net/proxy/proxy_info.cc
rename to net/proxy_resolution/proxy_info.cc
index c2da901..5879668 100644
--- a/net/proxy/proxy_info.cc
+++ b/net/proxy_resolution/proxy_info.cc
@@ -2,9 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_info.h b/net/proxy_resolution/proxy_info.h
similarity index 95%
rename from net/proxy/proxy_info.h
rename to net/proxy_resolution/proxy_info.h
index e6c050c..d052c32 100644
--- a/net/proxy/proxy_info.h
+++ b/net/proxy_resolution/proxy_info.h
@@ -2,18 +2,18 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_INFO_H_
-#define NET_PROXY_PROXY_INFO_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_INFO_H_
+#define NET_PROXY_RESOLUTION_PROXY_INFO_H_
 
 #include <string>
 
 #include "base/gtest_prod_util.h"
 #include "base/time/time.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_list.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_list.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 
 namespace net {
@@ -219,4 +219,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_INFO_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_INFO_H_
diff --git a/net/proxy/proxy_info_unittest.cc b/net/proxy_resolution/proxy_info_unittest.cc
similarity index 92%
rename from net/proxy/proxy_info_unittest.cc
rename to net/proxy_resolution/proxy_info_unittest.cc
index a8b0e8014..8aa3d67 100644
--- a/net/proxy/proxy_info_unittest.cc
+++ b/net/proxy_resolution/proxy_info_unittest.cc
@@ -2,12 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 #include "net/base/net_errors.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_list.cc b/net/proxy_resolution/proxy_list.cc
similarity index 98%
rename from net/proxy/proxy_list.cc
rename to net/proxy_resolution/proxy_list.cc
index 69b5655..60148e58 100644
--- a/net/proxy/proxy_list.cc
+++ b/net/proxy_resolution/proxy_list.cc
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_list.h"
 
 #include "base/callback.h"
 #include "base/logging.h"
 #include "base/strings/string_tokenizer.h"
 #include "base/time/time.h"
 #include "base/values.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 
 using base::TimeDelta;
 using base::TimeTicks;
diff --git a/net/proxy/proxy_list.h b/net/proxy_resolution/proxy_list.h
similarity index 96%
rename from net/proxy/proxy_list.h
rename to net/proxy_resolution/proxy_list.h
index 7455c23f..b01003b 100644
--- a/net/proxy/proxy_list.h
+++ b/net/proxy_resolution/proxy_list.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 NET_PROXY_PROXY_LIST_H_
-#define NET_PROXY_PROXY_LIST_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_LIST_H_
+#define NET_PROXY_RESOLUTION_PROXY_LIST_H_
 
 #include <stddef.h>
 
@@ -12,7 +12,7 @@
 #include <vector>
 
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 
 namespace base {
 class ListValue;
@@ -131,4 +131,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_LIST_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_LIST_H_
diff --git a/net/proxy/proxy_list_unittest.cc b/net/proxy_resolution/proxy_list_unittest.cc
similarity index 98%
rename from net/proxy/proxy_list_unittest.cc
rename to net/proxy_resolution/proxy_list_unittest.cc
index 1237b49..18ca3790 100644
--- a/net/proxy/proxy_list_unittest.cc
+++ b/net/proxy_resolution/proxy_list_unittest.cc
@@ -2,14 +2,14 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_list.h"
 
 #include <vector>
 
 #include "net/base/net_errors.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/proxy/proxy_resolver.h b/net/proxy_resolution/proxy_resolver.h
similarity index 90%
rename from net/proxy/proxy_resolver.h
rename to net/proxy_resolution/proxy_resolver.h
index c62e105..f89d3477 100644
--- a/net/proxy/proxy_resolver.h
+++ b/net/proxy_resolution/proxy_resolver.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 NET_PROXY_PROXY_RESOLVER_H_
-#define NET_PROXY_PROXY_RESOLVER_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_H_
 
 #include "base/callback_forward.h"
 #include "base/logging.h"
@@ -13,7 +13,7 @@
 #include "net/base/completion_callback.h"
 #include "net/base/load_states.h"
 #include "net/base/net_export.h"
-#include "net/proxy/pac_file_data.h"
+#include "net/proxy_resolution/pac_file_data.h"
 #include "url/gurl.h"
 
 namespace net {
@@ -55,4 +55,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_H_
diff --git a/net/proxy/proxy_resolver_error_observer.h b/net/proxy_resolution/proxy_resolver_error_observer.h
similarity index 85%
rename from net/proxy/proxy_resolver_error_observer.h
rename to net/proxy_resolution/proxy_resolver_error_observer.h
index 0212f82..e48bacc7f 100644
--- a/net/proxy/proxy_resolver_error_observer.h
+++ b/net/proxy_resolution/proxy_resolver_error_observer.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 NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
-#define NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_ERROR_OBSERVER_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_ERROR_OBSERVER_H_
 
 #include "base/macros.h"
 #include "base/strings/string16.h"
@@ -34,4 +34,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_ERROR_OBSERVER_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_ERROR_OBSERVER_H_
diff --git a/net/proxy/proxy_resolver_factory.cc b/net/proxy_resolution/proxy_resolver_factory.cc
similarity index 79%
rename from net/proxy/proxy_resolver_factory.cc
rename to net/proxy_resolution/proxy_resolver_factory.cc
index 9e88ff4..24500c0fe 100644
--- a/net/proxy/proxy_resolver_factory.cc
+++ b/net/proxy_resolution/proxy_resolver_factory.cc
@@ -2,10 +2,10 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_resolver_factory.h b/net/proxy_resolution/proxy_resolver_factory.h
similarity index 89%
rename from net/proxy/proxy_resolver_factory.h
rename to net/proxy_resolution/proxy_resolver_factory.h
index 923257b..7a9b66c 100644
--- a/net/proxy/proxy_resolver_factory.h
+++ b/net/proxy_resolution/proxy_resolver_factory.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 NET_PROXY_PROXY_RESOLVER_FACTORY_H_
-#define NET_PROXY_PROXY_RESOLVER_FACTORY_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_FACTORY_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_FACTORY_H_
 
 #include <memory>
 #include <set>
@@ -12,7 +12,7 @@
 #include "base/memory/ref_counted.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_export.h"
-#include "net/proxy/pac_file_data.h"
+#include "net/proxy_resolution/pac_file_data.h"
 
 namespace net {
 
@@ -58,4 +58,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_FACTORY_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_FACTORY_H_
diff --git a/net/proxy/proxy_resolver_mac.cc b/net/proxy_resolution/proxy_resolver_mac.cc
similarity index 98%
rename from net/proxy/proxy_resolver_mac.cc
rename to net/proxy_resolution/proxy_resolver_mac.cc
index 421692e..6d13cbd 100644
--- a/net/proxy/proxy_resolver_mac.cc
+++ b/net/proxy_resolution/proxy_resolver_mac.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 "net/proxy/proxy_resolver_mac.h"
+#include "net/proxy_resolution/proxy_resolver_mac.h"
 
 #include <CoreFoundation/CoreFoundation.h>
 
@@ -15,9 +15,9 @@
 #include "base/synchronization/lock.h"
 #include "base/threading/thread_checker.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 
 #if defined(OS_IOS)
 #include <CFNetwork/CFProxySupport.h>
diff --git a/net/proxy/proxy_resolver_mac.h b/net/proxy_resolution/proxy_resolver_mac.h
similarity index 81%
rename from net/proxy/proxy_resolver_mac.h
rename to net/proxy_resolution/proxy_resolver_mac.h
index 07ca85c..866bb1a4 100644
--- a/net/proxy/proxy_resolver_mac.h
+++ b/net/proxy_resolution/proxy_resolver_mac.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_RESOLVER_MAC_H_
-#define NET_PROXY_PROXY_RESOLVER_MAC_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_MAC_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_MAC_H_
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "url/gurl.h"
 
 namespace net {
@@ -33,4 +33,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_MAC_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_MAC_H_
diff --git a/net/proxy/proxy_resolver_v8.cc b/net/proxy_resolution/proxy_resolver_v8.cc
similarity index 99%
rename from net/proxy/proxy_resolver_v8.cc
rename to net/proxy_resolution/proxy_resolver_v8.cc
index a94a6b15..71072ea8 100644
--- a/net/proxy/proxy_resolver_v8.cc
+++ b/net/proxy_resolution/proxy_resolver_v8.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 "net/proxy/proxy_resolver_v8.h"
+#include "net/proxy_resolution/proxy_resolver_v8.h"
 
 #include <algorithm>
 #include <cstdio>
@@ -24,9 +24,9 @@
 #include "gin/v8_initializer.h"
 #include "net/base/ip_address.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/pac_file_data.h"
-#include "net/proxy/pac_js_library.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/pac_file_data.h"
+#include "net/proxy_resolution/pac_js_library.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "url/gurl.h"
 #include "url/url_canon.h"
 #include "v8/include/v8.h"
diff --git a/net/proxy/proxy_resolver_v8.h b/net/proxy_resolution/proxy_resolver_v8.h
similarity index 93%
rename from net/proxy/proxy_resolver_v8.h
rename to net/proxy_resolution/proxy_resolver_v8.h
index bebfa15..2b391c4 100644
--- a/net/proxy/proxy_resolver_v8.h
+++ b/net/proxy_resolution/proxy_resolver_v8.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 NET_PROXY_PROXY_RESOLVER_V8_H_
-#define NET_PROXY_PROXY_RESOLVER_V8_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_H_
 
 #include <stddef.h>
 
@@ -83,4 +83,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_V8_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_H_
diff --git a/net/proxy/proxy_resolver_v8_tracing.cc b/net/proxy_resolution/proxy_resolver_v8_tracing.cc
similarity index 98%
rename from net/proxy/proxy_resolver_v8_tracing.cc
rename to net/proxy_resolution/proxy_resolver_v8_tracing.cc
index 7426055..fbd268e9 100644
--- a/net/proxy/proxy_resolver_v8_tracing.cc
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing.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 "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 
 #include <map>
 #include <string>
@@ -26,9 +26,9 @@
 #include "net/base/trace_constants.h"
 #include "net/dns/host_resolver.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
-#include "net/proxy/proxy_resolver_v8.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/proxy_resolver_v8.h"
 
 // The intent of this class is explained in the design document:
 // https://docs.google.com/a/chromium.org/document/d/16Ij5OcVnR3s0MH4Z5XkhI9VTPoMJdaBn9rKreAmGOdE/edit
diff --git a/net/proxy/proxy_resolver_v8_tracing.h b/net/proxy_resolution/proxy_resolver_v8_tracing.h
similarity index 91%
rename from net/proxy/proxy_resolver_v8_tracing.h
rename to net/proxy_resolution/proxy_resolver_v8_tracing.h
index 1dd1dbe2..e95812e 100644
--- a/net/proxy/proxy_resolver_v8_tracing.h
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing.h
@@ -2,16 +2,16 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_RESOLVER_V8_TRACING_H_
-#define NET_PROXY_PROXY_RESOLVER_V8_TRACING_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_H_
 
 #include <memory>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 
 namespace net {
 
@@ -86,4 +86,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_V8_TRACING_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_H_
diff --git a/net/proxy/proxy_resolver_v8_tracing_unittest.cc b/net/proxy_resolution/proxy_resolver_v8_tracing_unittest.cc
similarity index 99%
rename from net/proxy/proxy_resolver_v8_tracing_unittest.cc
rename to net/proxy_resolution/proxy_resolver_v8_tracing_unittest.cc
index ceb9216..22e05463 100644
--- a/net/proxy/proxy_resolver_v8_tracing_unittest.cc
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing_unittest.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 "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 
 #include <string>
 #include <utility>
@@ -20,7 +20,7 @@
 #include "net/dns/host_cache.h"
 #include "net/dns/mock_host_resolver.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/net/proxy/proxy_resolver_v8_tracing_wrapper.cc b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.cc
similarity index 97%
rename from net/proxy/proxy_resolver_v8_tracing_wrapper.cc
rename to net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.cc
index 07f11186..abe63381 100644
--- a/net/proxy/proxy_resolver_v8_tracing_wrapper.cc
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.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 "net/proxy/proxy_resolver_v8_tracing_wrapper.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.h"
 
 #include <string>
 #include <utility>
@@ -16,7 +16,7 @@
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_parameters_callback.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
 
 namespace net {
 
diff --git a/net/proxy/proxy_resolver_v8_tracing_wrapper.h b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.h
similarity index 84%
rename from net/proxy/proxy_resolver_v8_tracing_wrapper.h
rename to net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.h
index d05f4af6..e5a170b 100644
--- a/net/proxy/proxy_resolver_v8_tracing_wrapper.h
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.h
@@ -2,17 +2,17 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
-#define NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
 
 #include <memory>
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_factory.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 
 namespace net {
 
@@ -63,4 +63,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_V8_TRACING_WRAPPER_H_
diff --git a/net/proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper_unittest.cc
similarity index 99%
rename from net/proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc
rename to net/proxy_resolution/proxy_resolver_v8_tracing_wrapper_unittest.cc
index 0128610..44acb35 100644
--- a/net/proxy/proxy_resolver_v8_tracing_wrapper_unittest.cc
+++ b/net/proxy_resolution/proxy_resolver_v8_tracing_wrapper_unittest.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 "net/proxy/proxy_resolver_v8_tracing_wrapper.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing_wrapper.h"
 
 #include <string>
 
@@ -26,8 +26,8 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver_error_observer.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver_error_observer.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
diff --git a/net/proxy/proxy_resolver_v8_unittest.cc b/net/proxy_resolution/proxy_resolver_v8_unittest.cc
similarity index 98%
rename from net/proxy/proxy_resolver_v8_unittest.cc
rename to net/proxy_resolution/proxy_resolver_v8_unittest.cc
index 60e7852f..2acc464 100644
--- a/net/proxy/proxy_resolver_v8_unittest.cc
+++ b/net/proxy_resolution/proxy_resolver_v8_unittest.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 "net/proxy/proxy_resolver_v8.h"
+#include "net/proxy_resolution/proxy_resolver_v8.h"
 #include "base/compiler_specific.h"
 #include "base/files/file_util.h"
 #include "base/path_service.h"
@@ -11,8 +11,8 @@
 #include "base/strings/utf_string_conversions.h"
 #include "net/base/completion_callback.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/pac_file_data.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/pac_file_data.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/proxy/proxy_resolver_winhttp.cc b/net/proxy_resolution/proxy_resolver_winhttp.cc
similarity index 97%
rename from net/proxy/proxy_resolver_winhttp.cc
rename to net/proxy_resolution/proxy_resolver_winhttp.cc
index 8b6692e..ebe5fb8 100644
--- a/net/proxy/proxy_resolver_winhttp.cc
+++ b/net/proxy_resolution/proxy_resolver_winhttp.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 "net/proxy/proxy_resolver_winhttp.h"
+#include "net/proxy_resolution/proxy_resolver_winhttp.h"
 
 #include <windows.h>
 #include <winhttp.h>
@@ -11,8 +11,8 @@
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "url/gurl.h"
 
 using base::TimeDelta;
diff --git a/net/proxy/proxy_resolver_winhttp.h b/net/proxy_resolution/proxy_resolver_winhttp.h
similarity index 79%
rename from net/proxy/proxy_resolver_winhttp.h
rename to net/proxy_resolution/proxy_resolver_winhttp.h
index 89c8b13..663e76ec 100644
--- a/net/proxy/proxy_resolver_winhttp.h
+++ b/net/proxy_resolution/proxy_resolver_winhttp.h
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef NET_PROXY_PROXY_RESOLVER_WINHTTP_H_
-#define NET_PROXY_PROXY_RESOLVER_WINHTTP_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RESOLVER_WINHTTP_H_
+#define NET_PROXY_RESOLUTION_PROXY_RESOLVER_WINHTTP_H_
 
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "net/base/net_export.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "url/gurl.h"
 
 namespace net {
@@ -32,4 +32,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RESOLVER_WINHTTP_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RESOLVER_WINHTTP_H_
diff --git a/net/proxy/proxy_retry_info.h b/net/proxy_resolution/proxy_retry_info.h
similarity index 87%
rename from net/proxy/proxy_retry_info.h
rename to net/proxy_resolution/proxy_retry_info.h
index b65f6f5..23d5d75 100644
--- a/net/proxy/proxy_retry_info.h
+++ b/net/proxy_resolution/proxy_retry_info.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 NET_PROXY_PROXY_RETRY_INFO_H_
-#define NET_PROXY_PROXY_RETRY_INFO_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_RETRY_INFO_H_
+#define NET_PROXY_RESOLUTION_PROXY_RETRY_INFO_H_
 
 #include <map>
 
@@ -37,4 +37,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_RETRY_INFO_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_RETRY_INFO_H_
diff --git a/net/proxy/proxy_server_unittest.cc b/net/proxy_resolution/proxy_server_unittest.cc
similarity index 99%
rename from net/proxy/proxy_server_unittest.cc
rename to net/proxy_resolution/proxy_server_unittest.cc
index 3589517b..67fadd6 100644
--- a/net/proxy/proxy_server_unittest.cc
+++ b/net/proxy_resolution/proxy_server_unittest.cc
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 #include "base/macros.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace net {
diff --git a/net/proxy/proxy_service.cc b/net/proxy_resolution/proxy_service.cc
similarity index 98%
rename from net/proxy/proxy_service.cc
rename to net/proxy_resolution/proxy_service.cc
index b6a860c6..62fbac0 100644
--- a/net/proxy/proxy_service.cc
+++ b/net/proxy_resolution/proxy_service.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 "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 #include <algorithm>
 #include <cmath>
@@ -27,29 +27,29 @@
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/multi_threaded_proxy_resolver.h"
-#include "net/proxy/pac_file_decider.h"
-#include "net/proxy/pac_file_fetcher.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_resolver_factory.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/multi_threaded_proxy_resolver.h"
+#include "net/proxy_resolution/pac_file_decider.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
 #include "net/url_request/url_request_context.h"
 #include "url/gurl.h"
 
 #if defined(OS_WIN)
-#include "net/proxy/proxy_config_service_win.h"
-#include "net/proxy/proxy_resolver_winhttp.h"
+#include "net/proxy_resolution/proxy_config_service_win.h"
+#include "net/proxy_resolution/proxy_resolver_winhttp.h"
 #elif defined(OS_IOS)
-#include "net/proxy/proxy_config_service_ios.h"
-#include "net/proxy/proxy_resolver_mac.h"
+#include "net/proxy_resolution/proxy_config_service_ios.h"
+#include "net/proxy_resolution/proxy_resolver_mac.h"
 #elif defined(OS_MACOSX)
-#include "net/proxy/proxy_config_service_mac.h"
-#include "net/proxy/proxy_resolver_mac.h"
+#include "net/proxy_resolution/proxy_config_service_mac.h"
+#include "net/proxy_resolution/proxy_resolver_mac.h"
 #elif defined(OS_LINUX) && !defined(OS_CHROMEOS)
-#include "net/proxy/proxy_config_service_linux.h"
+#include "net/proxy_resolution/proxy_config_service_linux.h"
 #elif defined(OS_ANDROID)
-#include "net/proxy/proxy_config_service_android.h"
+#include "net/proxy_resolution/proxy_config_service_android.h"
 #endif
 
 using base::TimeDelta;
diff --git a/net/proxy/proxy_service.h b/net/proxy_resolution/proxy_service.h
similarity index 98%
rename from net/proxy/proxy_service.h
rename to net/proxy_resolution/proxy_service.h
index 24aa304..0609f835 100644
--- a/net/proxy/proxy_service.h
+++ b/net/proxy_resolution/proxy_service.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 NET_PROXY_PROXY_SERVICE_H_
-#define NET_PROXY_PROXY_SERVICE_H_
+#ifndef NET_PROXY_RESOLUTION_PROXY_SERVICE_H_
+#define NET_PROXY_RESOLUTION_PROXY_SERVICE_H_
 
 #include <stddef.h>
 
@@ -21,9 +21,9 @@
 #include "net/base/load_states.h"
 #include "net/base/net_export.h"
 #include "net/base/network_change_notifier.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "url/gurl.h"
 
 class GURL;
@@ -488,4 +488,4 @@
 
 }  // namespace net
 
-#endif  // NET_PROXY_PROXY_SERVICE_H_
+#endif  // NET_PROXY_RESOLUTION_PROXY_SERVICE_H_
diff --git a/net/proxy/proxy_service_unittest.cc b/net/proxy_resolution/proxy_service_unittest.cc
similarity index 99%
rename from net/proxy/proxy_service_unittest.cc
rename to net/proxy_resolution/proxy_service_unittest.cc
index 7259d14a..562c1f2 100644
--- a/net/proxy/proxy_service_unittest.cc
+++ b/net/proxy_resolution/proxy_service_unittest.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 "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 #include <cstdarg>
 #include <string>
@@ -17,19 +17,19 @@
 #include "base/strings/utf_string_conversions.h"
 #include "net/base/net_errors.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/test_completion_callback.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/dhcp_pac_file_fetcher.h"
-#include "net/proxy/mock_pac_file_fetcher.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/pac_file_fetcher.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/dhcp_pac_file_fetcher.h"
+#include "net/proxy_resolution/mock_pac_file_fetcher.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/pac_file_fetcher.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "net/test/gtest_util.h"
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
diff --git a/net/quic/chromium/quic_chromium_client_session.cc b/net/quic/chromium/quic_chromium_client_session.cc
index c578354..03afc27 100644
--- a/net/quic/chromium/quic_chromium_client_session.cc
+++ b/net/quic/chromium/quic_chromium_client_session.cc
@@ -1640,7 +1640,11 @@
     // Unblock the connection before sending a PING packet, since it
     // may have been blocked before the migration started.
     connection()->OnCanWrite();
-    connection()->SendPing();
+    if (use_control_frame_manager()) {
+      SendPing();
+    } else {
+      connection()->SendPing();
+    }
     return;
   }
 
@@ -1828,7 +1832,8 @@
   current_migrations_to_non_default_network_on_path_degrading_ = 0;
 
   // Connection migration v2.
-  // If we are already on the new network.
+  // If we are already on the new network, simply cancel the timer to migrate
+  // back to the default network.
   if (GetDefaultSocket()->GetBoundNetwork() == new_network) {
     CancelMigrateBackToDefaultNetworkTimer();
     HistogramAndLogMigrationFailure(
@@ -1925,16 +1930,16 @@
         }
       } else {
         HistogramAndLogMigrationFailure(
-            migration_net_log, MIGRATION_STATUS_DISABLED, connection_id(),
-            "No alternative network on path degrading");
+            migration_net_log, MIGRATION_STATUS_NO_ALTERNATE_NETWORK,
+            connection_id(), "No alternative network on path degrading");
       }
     } else if (migrate_session_early_) {
       MigrateToAlternateNetwork(/*close_session_on_error*/ true,
                                 migration_net_log);
     } else {
-      HistogramAndLogMigrationFailure(migration_net_log,
-                                      MIGRATION_STATUS_DISABLED,
-                                      connection_id(), "Migration disabled");
+      HistogramAndLogMigrationFailure(
+          migration_net_log, MIGRATION_STATUS_NOT_ENABLED, connection_id(),
+          "Migration on path degrading not enabled");
     }
     migration_net_log.EndEvent(
         NetLogEventType::QUIC_CONNECTION_MIGRATION_TRIGGERED);
@@ -2088,9 +2093,9 @@
   if (config()->DisableConnectionMigration()) {
     DVLOG(1) << "Client disables probing network with connection migration "
              << "disabled by config";
-    HistogramAndLogMigrationFailure(migration_net_log,
-                                    MIGRATION_STATUS_DISABLED, connection_id(),
-                                    "Migration disabled by config");
+    HistogramAndLogMigrationFailure(
+        migration_net_log, MIGRATION_STATUS_DISABLED_BY_CONFIG, connection_id(),
+        "Migration disabled by config");
     // TODO(zhongyi): do we want to close the session?
     return ProbingResult::DISABLED_BY_CONFIG;
   }
@@ -2234,11 +2239,12 @@
 
   // Do not migrate sessions where connection migration is disabled.
   if (config()->DisableConnectionMigration()) {
-    HistogramAndLogMigrationFailure(migration_net_log,
-                                    MIGRATION_STATUS_DISABLED, connection_id(),
-                                    "Migration disabled");
+    HistogramAndLogMigrationFailure(
+        migration_net_log, MIGRATION_STATUS_DISABLED_BY_CONFIG, connection_id(),
+        "Migration disabled by config");
     if (close_if_cannot_migrate) {
-      CloseSessionOnErrorLater(ERR_NETWORK_CHANGED, QUIC_IP_ADDRESS_CHANGED);
+      CloseSessionOnErrorLater(ERR_NETWORK_CHANGED,
+                               QUIC_CONNECTION_MIGRATION_DISABLED_BY_CONFIG);
     } else if (migrate_session_on_network_change_v2_) {
       // Session cannot migrate, mark it as going away for v2.
       stream_factory_->OnSessionGoingAway(this);
@@ -2445,12 +2451,25 @@
 MigrationResult QuicChromiumClientSession::MigrateToAlternateNetwork(
     bool close_session_on_error,
     const NetLogWithSource& migration_net_log) {
-  if ((!migrate_session_on_network_change_ &&
-       !migrate_session_on_network_change_v2_) ||
-      HasNonMigratableStreams() || config()->DisableConnectionMigration()) {
+  if (!migrate_session_on_network_change_ &&
+      !migrate_session_on_network_change_v2_) {
     HistogramAndLogMigrationFailure(migration_net_log,
-                                    MIGRATION_STATUS_DISABLED, connection_id(),
-                                    "Migration disabled");
+                                    MIGRATION_STATUS_NOT_ENABLED,
+                                    connection_id(), "Migration not enabled");
+    return MigrationResult::FAILURE;
+  }
+
+  if (HasNonMigratableStreams()) {
+    HistogramAndLogMigrationFailure(migration_net_log,
+                                    MIGRATION_STATUS_NON_MIGRATABLE_STREAM,
+                                    connection_id(), "Non-migratable stream");
+    return MigrationResult::FAILURE;
+  }
+
+  if (config()->DisableConnectionMigration()) {
+    HistogramAndLogMigrationFailure(
+        migration_net_log, MIGRATION_STATUS_DISABLED_BY_CONFIG, connection_id(),
+        "Migration disabled by config");
     return MigrationResult::FAILURE;
   }
 
@@ -2491,9 +2510,10 @@
     if (close_session_on_error) {
       if (migrate_session_on_network_change_v2_) {
         CloseSessionOnErrorLater(ERR_NETWORK_CHANGED,
-                                 QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK);
+                                 QUIC_CONNECTION_MIGRATION_INTERNAL_ERROR);
       } else {
-        CloseSessionOnError(ERR_NETWORK_CHANGED, QUIC_INTERNAL_ERROR);
+        CloseSessionOnError(ERR_NETWORK_CHANGED,
+                            QUIC_CONNECTION_MIGRATION_INTERNAL_ERROR);
       }
     }
     return MigrationResult::FAILURE;
diff --git a/net/quic/chromium/quic_chromium_client_session.h b/net/quic/chromium/quic_chromium_client_session.h
index 6cbe458..6b6e2dc 100644
--- a/net/quic/chromium/quic_chromium_client_session.h
+++ b/net/quic/chromium/quic_chromium_client_session.h
@@ -25,9 +25,9 @@
 #include "net/base/load_timing_info.h"
 #include "net/base/net_error_details.h"
 #include "net/base/net_export.h"
+#include "net/base/proxy_server.h"
 #include "net/cert/ct_verify_result.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 #include "net/quic/chromium/quic_chromium_client_stream.h"
 #include "net/quic/chromium/quic_chromium_packet_reader.h"
 #include "net/quic/chromium/quic_chromium_packet_writer.h"
diff --git a/net/quic/chromium/quic_chromium_client_session_test.cc b/net/quic/chromium/quic_chromium_client_session_test.cc
index 61d91cf..6812119 100644
--- a/net/quic/chromium/quic_chromium_client_session_test.cc
+++ b/net/quic/chromium/quic_chromium_client_session_test.cc
@@ -1178,13 +1178,19 @@
   CompleteCryptoHandshake();
 
   char data[] = "ABCD";
-  std::unique_ptr<QuicEncryptedPacket> client_ping(
-      client_maker_.MakePingPacket(2, /*include_version=*/false));
+  std::unique_ptr<QuicEncryptedPacket> client_ping;
+  std::unique_ptr<QuicEncryptedPacket> ack_and_data_out;
+  if (session_->use_control_frame_manager()) {
+    client_ping = client_maker_.MakeAckAndPingPacket(2, false, 1, 1, 1);
+    ack_and_data_out = client_maker_.MakeDataPacket(3, 5, false, false, 0,
+                                                    QuicStringPiece(data));
+  } else {
+    client_ping = client_maker_.MakePingPacket(2, /*include_version=*/false);
+    ack_and_data_out = client_maker_.MakeAckAndDataPacket(
+        3, false, 5, 1, 1, 1, false, 0, QuicStringPiece(data));
+  }
   std::unique_ptr<QuicEncryptedPacket> server_ping(
       server_maker_.MakePingPacket(1, /*include_version=*/false));
-  std::unique_ptr<QuicEncryptedPacket> ack_and_data_out(
-      client_maker_.MakeAckAndDataPacket(3, false, 5, 1, 1, 1, false, 0,
-                                         QuicStringPiece(data)));
   MockRead reads[] = {
       MockRead(SYNCHRONOUS, server_ping->data(), server_ping->length(), 0),
       MockRead(SYNCHRONOUS, ERR_IO_PENDING, 1)};
@@ -1290,8 +1296,12 @@
 TEST_P(QuicChromiumClientSessionTest, MigrateToSocketReadError) {
   std::unique_ptr<QuicEncryptedPacket> settings_packet(
       client_maker_.MakeInitialSettingsPacket(1, nullptr));
-  std::unique_ptr<QuicEncryptedPacket> client_ping(
-      client_maker_.MakePingPacket(2, /*include_version=*/false));
+  std::unique_ptr<QuicEncryptedPacket> client_ping;
+  if (FLAGS_quic_reloadable_flag_quic_use_control_frame_manager) {
+    client_ping = client_maker_.MakeAckAndPingPacket(2, false, 1, 1, 1);
+  } else {
+    client_ping = client_maker_.MakePingPacket(2, /*include_version=*/false);
+  }
   std::unique_ptr<QuicEncryptedPacket> server_ping(
       server_maker_.MakePingPacket(1, /*include_version=*/false));
   MockWrite old_writes[] = {
diff --git a/net/quic/chromium/quic_end_to_end_unittest.cc b/net/quic/chromium/quic_end_to_end_unittest.cc
index 57f2a92..23d874b 100644
--- a/net/quic/chromium/quic_end_to_end_unittest.cc
+++ b/net/quic/chromium/quic_end_to_end_unittest.cc
@@ -28,7 +28,7 @@
 #include "net/http/http_transaction_test_util.h"
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/platform/api/quic_string_piece.h"
 #include "net/quic/test_tools/crypto_test_utils.h"
 #include "net/quic/test_tools/quic_test_utils.h"
diff --git a/net/quic/chromium/quic_network_transaction_unittest.cc b/net/quic/chromium/quic_network_transaction_unittest.cc
index 6eabefa..789bef15 100644
--- a/net/quic/chromium/quic_network_transaction_unittest.cc
+++ b/net/quic/chromium/quic_network_transaction_unittest.cc
@@ -35,9 +35,9 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_resolver.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/crypto/proof_verifier_chromium.h"
 #include "net/quic/chromium/mock_crypto_client_stream_factory.h"
 #include "net/quic/chromium/mock_quic_data.h"
diff --git a/net/quic/chromium/quic_stream_factory.h b/net/quic/chromium/quic_stream_factory.h
index 3607f5df..c658634 100644
--- a/net/quic/chromium/quic_stream_factory.h
+++ b/net/quic/chromium/quic_stream_factory.h
@@ -24,11 +24,11 @@
 #include "net/base/host_port_pair.h"
 #include "net/base/net_export.h"
 #include "net/base/network_change_notifier.h"
+#include "net/base/proxy_server.h"
 #include "net/cert/cert_database.h"
 #include "net/http/http_server_properties.h"
 #include "net/http/http_stream_factory.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 #include "net/quic/chromium/network_connection.h"
 #include "net/quic/chromium/quic_chromium_client_session.h"
 #include "net/quic/chromium/quic_clock_skew_detector.h"
@@ -82,9 +82,10 @@
   MIGRATION_STATUS_TOO_MANY_CHANGES,
   MIGRATION_STATUS_SUCCESS,
   MIGRATION_STATUS_NON_MIGRATABLE_STREAM,
-  MIGRATION_STATUS_DISABLED,
+  MIGRATION_STATUS_NOT_ENABLED,
   MIGRATION_STATUS_NO_ALTERNATE_NETWORK,
   MIGRATION_STATUS_ON_PATH_DEGRADING_DISABLED,
+  MIGRATION_STATUS_DISABLED_BY_CONFIG,
   MIGRATION_STATUS_MAX
 };
 
diff --git a/net/quic/chromium/quic_stream_factory_test.cc b/net/quic/chromium/quic_stream_factory_test.cc
index b57db4e..8ac1580 100644
--- a/net/quic/chromium/quic_stream_factory_test.cc
+++ b/net/quic/chromium/quic_stream_factory_test.cc
@@ -2048,8 +2048,13 @@
                                     callback_.callback()));
 
   // Do an async write to leave writer blocked.
-  if (async_write_before)
-    session->connection()->SendPing();
+  if (async_write_before) {
+    if (session->use_control_frame_manager()) {
+      session->SendPing();
+    } else {
+      session->connection()->SendPing();
+    }
+  }
 
   // Set up second socket data provider that is used after migration.
   // The response to the earlier request is read on this new socket.
@@ -2180,8 +2185,13 @@
                                     callback_.callback()));
 
   // Do an async write to leave writer blocked.
-  if (async_write_before)
-    session->connection()->SendPing();
+  if (async_write_before) {
+    if (session->use_control_frame_manager()) {
+      session->SendPing();
+    } else {
+      session->connection()->SendPing();
+    }
+  }
 
   // Set up second socket data provider that is used after migration.
   // The response to the earlier request is read on this new socket.
diff --git a/net/quic/chromium/quic_test_packet_maker.cc b/net/quic/chromium/quic_test_packet_maker.cc
index e93df6f7..3cccfc7 100644
--- a/net/quic/chromium/quic_test_packet_maker.cc
+++ b/net/quic/chromium/quic_test_packet_maker.cc
@@ -65,6 +65,52 @@
       MakePacket(header, QuicFrame(ping)));
 }
 
+std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeAckAndPingPacket(
+    QuicPacketNumber num,
+    bool include_version,
+    QuicPacketNumber largest_received,
+    QuicPacketNumber smallest_received,
+    QuicPacketNumber least_unacked) {
+  QuicPacketHeader header;
+  header.connection_id = connection_id_;
+  header.reset_flag = false;
+  header.version_flag = include_version;
+  header.packet_number_length = PACKET_1BYTE_PACKET_NUMBER;
+  header.packet_number = num;
+
+  QuicAckFrame ack(MakeAckFrame(largest_received));
+  ack.ack_delay_time = QuicTime::Delta::Zero();
+  for (QuicPacketNumber i = smallest_received; i <= largest_received; ++i) {
+    ack.received_packet_times.push_back(std::make_pair(i, clock_->Now()));
+  }
+  if (largest_received > 0) {
+    ack.packets.AddRange(1, largest_received + 1);
+  }
+  QuicFrames frames;
+  frames.push_back(QuicFrame(&ack));
+  DVLOG(1) << "Adding frame: " << frames[0];
+
+  QuicStopWaitingFrame stop_waiting;
+  stop_waiting.least_unacked = least_unacked;
+  frames.push_back(QuicFrame(&stop_waiting));
+  DVLOG(1) << "Adding frame: " << frames[1];
+
+  frames.push_back(QuicFrame(QuicPingFrame()));
+  DVLOG(1) << "Adding frame: " << frames[2];
+
+  QuicFramer framer(
+      SupportedVersions(ParsedQuicVersion(PROTOCOL_QUIC_CRYPTO, version_)),
+      clock_->Now(), perspective_);
+  std::unique_ptr<QuicPacket> packet(
+      BuildUnsizedDataPacket(&framer, header, frames));
+  char buffer[kMaxPacketSize];
+  size_t encrypted_size = framer.EncryptPayload(
+      ENCRYPTION_NONE, header.packet_number, *packet, buffer, kMaxPacketSize);
+  EXPECT_NE(0u, encrypted_size);
+  QuicReceivedPacket encrypted(buffer, encrypted_size, QuicTime::Zero(), false);
+  return std::unique_ptr<QuicReceivedPacket>(encrypted.Clone());
+}
+
 std::unique_ptr<QuicReceivedPacket> QuicTestPacketMaker::MakeRstPacket(
     QuicPacketNumber num,
     bool include_version,
diff --git a/net/quic/chromium/quic_test_packet_maker.h b/net/quic/chromium/quic_test_packet_maker.h
index f011002..c4dda8d 100644
--- a/net/quic/chromium/quic_test_packet_maker.h
+++ b/net/quic/chromium/quic_test_packet_maker.h
@@ -44,6 +44,12 @@
   void set_hostname(const std::string& host);
   std::unique_ptr<QuicReceivedPacket> MakePingPacket(QuicPacketNumber num,
                                                      bool include_version);
+  std::unique_ptr<QuicReceivedPacket> MakeAckAndPingPacket(
+      QuicPacketNumber num,
+      bool include_version,
+      QuicPacketNumber largest_received,
+      QuicPacketNumber smallest_received,
+      QuicPacketNumber least_unacked);
   std::unique_ptr<QuicReceivedPacket> MakeRstPacket(
       QuicPacketNumber num,
       bool include_version,
diff --git a/net/quic/core/quic_client_promised_info_test.cc b/net/quic/core/quic_client_promised_info_test.cc
index f8bed9ed..d771aae 100644
--- a/net/quic/core/quic_client_promised_info_test.cc
+++ b/net/quic/core/quic_client_promised_info_test.cc
@@ -19,6 +19,7 @@
 #include "net/tools/quic/quic_spdy_client_session.h"
 
 using std::string;
+using testing::_;
 using testing::StrictMock;
 
 namespace net {
@@ -134,8 +135,14 @@
   ASSERT_NE(promised, nullptr);
 
   // Fire the alarm that will cancel the promised stream.
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_PUSH_STREAM_TIMED_OUT, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_PUSH_STREAM_TIMED_OUT));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_PUSH_STREAM_TIMED_OUT, 0));
+  }
   alarm_factory_.FireAlarm(QuicClientPromisedInfoPeer::GetAlarm(promised));
 
   // Verify that the promise is gone after the alarm fires.
@@ -147,8 +154,14 @@
   // Promise with an unsafe method
   push_promise_[":method"] = "PUT";
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_INVALID_PROMISE_METHOD, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_INVALID_PROMISE_METHOD));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_INVALID_PROMISE_METHOD, 0));
+  }
   ReceivePromise(promise_id_);
 
   // Verify that the promise headers were ignored
@@ -160,8 +173,14 @@
   // Promise with a missing method
   push_promise_.erase(":method");
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_INVALID_PROMISE_METHOD, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_INVALID_PROMISE_METHOD));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_INVALID_PROMISE_METHOD, 0));
+  }
   ReceivePromise(promise_id_);
 
   // Verify that the promise headers were ignored
@@ -173,8 +192,14 @@
   // Remove required header field to make URL invalid
   push_promise_.erase(":authority");
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_INVALID_PROMISE_URL, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_INVALID_PROMISE_URL));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_INVALID_PROMISE_URL, 0));
+  }
   ReceivePromise(promise_id_);
 
   // Verify that the promise headers were ignored
@@ -185,8 +210,14 @@
 TEST_F(QuicClientPromisedInfoTest, PushPromiseUnauthorizedUrl) {
   session_.set_authorized(false);
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_UNAUTHORIZED_PROMISE_URL, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_UNAUTHORIZED_PROMISE_URL));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_UNAUTHORIZED_PROMISE_URL, 0));
+  }
 
   ReceivePromise(promise_id_);
 
@@ -209,8 +240,14 @@
                                      headers);
 
   TestPushPromiseDelegate delegate(/*match=*/false);
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_PROMISE_VARY_MISMATCH, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_PROMISE_VARY_MISMATCH));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_PROMISE_VARY_MISMATCH, 0));
+  }
   EXPECT_CALL(session_, CloseStream(promise_id_));
 
   promised->HandleClientRequest(client_request_, &delegate);
@@ -288,8 +325,14 @@
 
   // Cancel the promised stream.
   EXPECT_CALL(session_, CloseStream(promise_id_));
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_STREAM_CANCELLED, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_STREAM_CANCELLED));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_STREAM_CANCELLED, 0));
+  }
   promised->Cancel();
 
   // Promise is gone
@@ -312,8 +355,14 @@
                                      headers);
 
   EXPECT_CALL(session_, CloseStream(promise_id_));
-  EXPECT_CALL(*connection_,
-              SendRstStream(promise_id_, QUIC_STREAM_PEER_GOING_AWAY, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promise_id_, QUIC_STREAM_PEER_GOING_AWAY));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promise_id_, QUIC_STREAM_PEER_GOING_AWAY, 0));
+  }
   session_.SendRstStream(promise_id_, QUIC_STREAM_PEER_GOING_AWAY, 0);
 
   // Now initiate rendezvous.
diff --git a/net/quic/core/quic_connection.cc b/net/quic/core/quic_connection.cc
index d29aa42..2cbb7239 100644
--- a/net/quic/core/quic_connection.cc
+++ b/net/quic/core/quic_connection.cc
@@ -274,7 +274,9 @@
       consecutive_num_packets_with_no_retransmittable_frames_(0),
       fill_up_link_during_probing_(false),
       probing_retransmission_pending_(false),
-      last_control_frame_id_(kInvalidControlFrameId) {
+      last_control_frame_id_(kInvalidControlFrameId),
+      use_control_frame_manager_(
+          GetQuicReloadableFlag(quic_use_control_frame_manager)) {
   QUIC_DLOG(INFO) << ENDPOINT
                   << "Created connection with connection_id: " << connection_id;
   framer_.set_visitor(this);
@@ -1202,14 +1204,42 @@
   return packet_generator_.ConsumeData(id, write_length, offset, state);
 }
 
+bool QuicConnection::SendControlFrame(const QuicFrame& frame) {
+  DCHECK(use_control_frame_manager_);
+  if (!CanWrite(HAS_RETRANSMITTABLE_DATA) && frame.type != PING_FRAME) {
+    QUIC_DVLOG(1) << "Failed to send control frame: " << frame;
+    // Do not check congestion window for ping.
+    return false;
+  }
+  ScopedPacketFlusher flusher(this, SEND_ACK_IF_PENDING);
+  packet_generator_.AddControlFrame(frame);
+  if (frame.type == PING_FRAME) {
+    // Flush PING frame immediately.
+    packet_generator_.FlushAllQueuedFrames();
+    if (debug_visitor_ != nullptr) {
+      debug_visitor_->OnPingSent();
+    }
+  }
+  if (frame.type == BLOCKED_FRAME) {
+    stats_.blocked_frames_sent++;
+  }
+  return true;
+}
+
 void QuicConnection::SendRstStream(QuicStreamId id,
                                    QuicRstStreamErrorCode error,
                                    QuicStreamOffset bytes_written) {
+  DCHECK(!use_control_frame_manager_);
   // Opportunistically bundle an ack with this outgoing packet.
   ScopedPacketFlusher flusher(this, SEND_ACK_IF_PENDING);
   packet_generator_.AddControlFrame(QuicFrame(new QuicRstStreamFrame(
       ++last_control_frame_id_, id, error, bytes_written)));
 
+  OnStreamReset(id, error);
+}
+
+void QuicConnection::OnStreamReset(QuicStreamId id,
+                                   QuicRstStreamErrorCode error) {
   if (error == QUIC_STREAM_NO_ERROR) {
     // All data for streams which are reset with QUIC_STREAM_NO_ERROR must
     // be received by the peer.
@@ -1217,11 +1247,13 @@
   }
   // Flush stream frames of reset stream.
   if (packet_generator_.HasPendingStreamFramesOfStream(id)) {
+    ScopedPacketFlusher flusher(this, SEND_ACK_IF_PENDING);
     packet_generator_.FlushAllQueuedFrames();
   }
 
   sent_packet_manager_.CancelRetransmissionsForStream(id);
   // Remove all queued packets which only contain data for the reset stream.
+  // TODO(fayang): consider removing this because it should be rarely executed.
   QueuedPacketList::iterator packet_iterator = queued_packets_.begin();
   while (packet_iterator != queued_packets_.end()) {
     QuicFrames* retransmittable_frames =
@@ -1245,6 +1277,7 @@
 
 void QuicConnection::SendWindowUpdate(QuicStreamId id,
                                       QuicStreamOffset byte_offset) {
+  DCHECK(!use_control_frame_manager_);
   // Opportunistically bundle an ack with this outgoing packet.
   ScopedPacketFlusher flusher(this, SEND_ACK_IF_PENDING);
   packet_generator_.AddControlFrame(QuicFrame(
@@ -1252,6 +1285,7 @@
 }
 
 void QuicConnection::SendBlocked(QuicStreamId id) {
+  DCHECK(!use_control_frame_manager_);
   // Opportunistically bundle an ack with this outgoing packet.
   ScopedPacketFlusher flusher(this, SEND_ACK_IF_PENDING);
   packet_generator_.AddControlFrame(
@@ -1912,11 +1946,16 @@
 
 void QuicConnection::OnPingTimeout() {
   if (!retransmission_alarm_->IsSet()) {
-    SendPing();
+    if (use_control_frame_manager_) {
+      visitor_->SendPing();
+    } else {
+      SendPing();
+    }
   }
 }
 
 void QuicConnection::SendPing() {
+  DCHECK(!use_control_frame_manager_);
   ScopedPacketFlusher flusher(this, SEND_ACK_IF_QUEUED);
   packet_generator_.AddControlFrame(
       QuicFrame(QuicPingFrame(++last_control_frame_id_)));
@@ -1947,10 +1986,12 @@
   }
 
   visitor_->OnAckNeedsRetransmittableFrame();
-  if (!packet_generator_.HasRetransmittableFrames()) {
-    // Visitor did not add a retransmittable frame, add a ping frame.
-    packet_generator_.AddControlFrame(
-        QuicFrame(QuicPingFrame(++last_control_frame_id_)));
+  if (!use_control_frame_manager_) {
+    if (!packet_generator_.HasRetransmittableFrames()) {
+      // Visitor did not add a retransmittable frame, add a ping frame.
+      packet_generator_.AddControlFrame(
+          QuicFrame(QuicPingFrame(++last_control_frame_id_)));
+    }
   }
 }
 
@@ -2164,6 +2205,7 @@
 void QuicConnection::SendGoAway(QuicErrorCode error,
                                 QuicStreamId last_good_stream_id,
                                 const string& reason) {
+  DCHECK(!use_control_frame_manager_);
   QUIC_DLOG(INFO) << ENDPOINT << "Going away with error "
                   << QuicErrorCodeToString(error) << " (" << error << ")";
 
diff --git a/net/quic/core/quic_connection.h b/net/quic/core/quic_connection.h
index 3fdf5379..fa86285 100644
--- a/net/quic/core/quic_connection.h
+++ b/net/quic/core/quic_connection.h
@@ -152,6 +152,9 @@
   // to be added.
   virtual void OnAckNeedsRetransmittableFrame() = 0;
 
+  // Called when a ping needs to be sent.
+  virtual void SendPing() = 0;
+
   // Called to ask if the visitor wants to schedule write resumption as it both
   // has pending data to write, and is able to write (e.g. based on flow control
   // limits).
@@ -363,11 +366,18 @@
                                           QuicStreamOffset offset,
                                           StreamSendingState state);
 
+  // Send |frame| to the peer. Returns true if frame is consumed, false
+  // otherwise.
+  virtual bool SendControlFrame(const QuicFrame& frame);
+
   // Send a RST_STREAM frame to the peer.
   virtual void SendRstStream(QuicStreamId id,
                              QuicRstStreamErrorCode error,
                              QuicStreamOffset bytes_written);
 
+  // Called when stream |id| is reset because of |error|.
+  virtual void OnStreamReset(QuicStreamId id, QuicRstStreamErrorCode error);
+
   // Send a BLOCKED frame to the peer.
   virtual void SendBlocked(QuicStreamId id);
 
@@ -725,6 +735,8 @@
     defer_send_in_response_to_packets_ = defer;
   }
 
+  bool use_control_frame_manager() const { return use_control_frame_manager_; }
+
  protected:
   // Calls cancel() on all the alarms owned by this connection.
   void CancelAllAlarms();
@@ -1157,6 +1169,9 @@
   // Id of latest sent control frame. 0 if no control frame has been sent.
   QuicControlFrameId last_control_frame_id_;
 
+  // Latched value of quic_reloadable_flag_quic_use_control_frame_manager.
+  const bool use_control_frame_manager_;
+
   DISALLOW_COPY_AND_ASSIGN(QuicConnection);
 };
 
diff --git a/net/quic/core/quic_connection_test.cc b/net/quic/core/quic_connection_test.cc
index b35237e..22b371e 100644
--- a/net/quic/core/quic_connection_test.cc
+++ b/net/quic/core/quic_connection_test.cc
@@ -1837,10 +1837,17 @@
   }
   // Receiving Packet 40 causes 20th ack to send. Session is informed and adds
   // WINDOW_UPDATE.
-  EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame())
-      .WillOnce(
-          Invoke(testing::CreateFunctor(&QuicConnection::SendWindowUpdate,
-                                        base::Unretained(&connection_), 0, 0)));
+  if (connection_.use_control_frame_manager()) {
+    EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame())
+        .WillOnce(testing::IgnoreResult(Invoke(testing::CreateFunctor(
+            &QuicConnection::SendControlFrame, base::Unretained(&connection_),
+            QuicFrame(new QuicWindowUpdateFrame(1, 0, 0))))));
+  } else {
+    EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame())
+        .WillOnce(Invoke(
+            testing::CreateFunctor(&QuicConnection::SendWindowUpdate,
+                                   base::Unretained(&connection_), 0, 0)));
+  }
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   EXPECT_EQ(0u, writer_->window_update_frames().size());
   ProcessDataPacket(40);
@@ -1861,7 +1868,14 @@
     EXPECT_EQ(0u, writer_->window_update_frames().size());
   }
   // Session does not add a retransmittable frame.
-  EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame()).Times(1);
+  if (connection_.use_control_frame_manager()) {
+    EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame())
+        .WillOnce(testing::IgnoreResult(Invoke(testing::CreateFunctor(
+            &QuicConnection::SendControlFrame, base::Unretained(&connection_),
+            QuicFrame(QuicPingFrame(1))))));
+  } else {
+    EXPECT_CALL(visitor_, OnAckNeedsRetransmittableFrame()).Times(1);
+  }
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   EXPECT_EQ(0u, writer_->ping_frames().size());
   ProcessDataPacket(99);
@@ -2378,12 +2392,25 @@
   connection_.SendStreamDataWithString(stream_id, "foo", 0, NO_FIN);
 
   // Now that there is a queued packet, reset the stream.
-  connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  if (connection_.use_control_frame_manager()) {
+    // This RST_STREAM_FRAME cannot be sent as writer is blocked.
+    QuicRstStreamFrame rst_stream(1, stream_id, QUIC_ERROR_PROCESSING_STREAM,
+                                  14);
+    connection_.SendControlFrame(QuicFrame(&rst_stream));
+    connection_.OnStreamReset(stream_id, QUIC_ERROR_PROCESSING_STREAM);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  }
 
   // Unblock the connection and verify that only the RST_STREAM is sent.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   writer_->SetWritable();
   connection_.OnCanWrite();
+  if (connection_.use_control_frame_manager()) {
+    // OnCanWrite will cause RST_STREAM be sent again.
+    connection_.SendControlFrame(QuicFrame(new QuicRstStreamFrame(
+        1, stream_id, QUIC_ERROR_PROCESSING_STREAM, 14)));
+  }
   EXPECT_EQ(1u, writer_->frame_count());
   EXPECT_EQ(1u, writer_->rst_stream_frames().size());
 }
@@ -2396,13 +2423,25 @@
   connection_.SendStreamDataWithString(stream_id, "foo", 0, NO_FIN);
 
   // Now that there is a queued packet, reset the stream.
-  connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  if (connection_.use_control_frame_manager()) {
+    // This RST_STREAM_FRAME cannot be sent as writer is blocked.
+    QuicRstStreamFrame rst_stream(1, stream_id, QUIC_STREAM_NO_ERROR, 14);
+    connection_.SendControlFrame(QuicFrame(&rst_stream));
+    connection_.OnStreamReset(stream_id, QUIC_STREAM_NO_ERROR);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  }
 
   // Unblock the connection and verify that the RST_STREAM is sent and the data
   // packet is sent.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(AtLeast(2));
   writer_->SetWritable();
   connection_.OnCanWrite();
+  if (connection_.use_control_frame_manager()) {
+    // OnCanWrite will cause RST_STREAM be sent again.
+    connection_.SendControlFrame(QuicFrame(
+        new QuicRstStreamFrame(1, stream_id, QUIC_STREAM_NO_ERROR, 14)));
+  }
   EXPECT_EQ(1u, writer_->frame_count());
   EXPECT_EQ(1u, writer_->rst_stream_frames().size());
 }
@@ -2415,7 +2454,13 @@
   SendStreamDataToPeer(stream_id, "fooos", 7, NO_FIN, &last_packet);
 
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
-  connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(new QuicRstStreamFrame(
+        1, stream_id, QUIC_ERROR_PROCESSING_STREAM, 14)));
+    connection_.OnStreamReset(stream_id, QUIC_ERROR_PROCESSING_STREAM);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  }
 
   // Lose a packet and ensure it does not trigger retransmission.
   QuicAckFrame nack_two = ConstructAckFrame(last_packet, last_packet - 1);
@@ -2434,7 +2479,13 @@
   SendStreamDataToPeer(stream_id, "fooos", 7, NO_FIN, &last_packet);
 
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
-  connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(
+        new QuicRstStreamFrame(1, stream_id, QUIC_STREAM_NO_ERROR, 14)));
+    connection_.OnStreamReset(stream_id, QUIC_STREAM_NO_ERROR);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  }
 
   // Lose a packet, ensure it triggers retransmission.
   QuicAckFrame nack_two = ConstructAckFrame(last_packet, last_packet - 1);
@@ -2454,7 +2505,13 @@
   SendStreamDataToPeer(stream_id, "foo", 0, NO_FIN, &last_packet);
 
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
-  connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(new QuicRstStreamFrame(
+        1, stream_id, QUIC_ERROR_PROCESSING_STREAM, 14)));
+    connection_.OnStreamReset(stream_id, QUIC_ERROR_PROCESSING_STREAM);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  }
 
   // Fire the RTO and verify that the RST_STREAM is resent, not stream data.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
@@ -2475,7 +2532,13 @@
   // Cancel the stream.
   const QuicPacketNumber rst_packet = last_data_packet + 1;
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, rst_packet, _, _)).Times(1);
-  connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(new QuicRstStreamFrame(
+        1, stream_id, QUIC_ERROR_PROCESSING_STREAM, 14)));
+    connection_.OnStreamReset(stream_id, QUIC_ERROR_PROCESSING_STREAM);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  }
 
   // Ack the RST_STREAM frame (since it's retransmittable), but not the data
   // packet, which is no longer retransmittable since the stream was cancelled.
@@ -2500,7 +2563,13 @@
   SendStreamDataToPeer(stream_id, "foo", 0, NO_FIN, &last_packet);
 
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
-  connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(
+        new QuicRstStreamFrame(1, stream_id, QUIC_STREAM_NO_ERROR, 14)));
+    connection_.OnStreamReset(stream_id, QUIC_STREAM_NO_ERROR);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  }
 
   // Fire the RTO and verify that the RST_STREAM is resent, the stream data
   // is sent.
@@ -2528,13 +2597,26 @@
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
   ProcessAckPacket(&ack);
 
-  connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  if (connection_.use_control_frame_manager()) {
+    // This RST_STREAM_FRAME will be failed to write as writer is blocked.
+    QuicRstStreamFrame rst_stream(1, stream_id, QUIC_ERROR_PROCESSING_STREAM,
+                                  14);
+    connection_.SendControlFrame(QuicFrame(&rst_stream));
+    connection_.OnStreamReset(stream_id, QUIC_ERROR_PROCESSING_STREAM);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_ERROR_PROCESSING_STREAM, 14);
+  }
 
   // Unblock the connection and verify that the RST_STREAM is sent but not the
   // second data packet nor a retransmit.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   writer_->SetWritable();
   connection_.OnCanWrite();
+  if (connection_.use_control_frame_manager()) {
+    // OnCanWrite will cause this RST_STREAM_FRAME be sent again.
+    connection_.SendControlFrame(QuicFrame(new QuicRstStreamFrame(
+        1, stream_id, QUIC_ERROR_PROCESSING_STREAM, 14)));
+  }
   EXPECT_EQ(1u, writer_->frame_count());
   EXPECT_EQ(1u, writer_->rst_stream_frames().size());
   EXPECT_EQ(stream_id, writer_->rst_stream_frames().front().stream_id);
@@ -2559,15 +2641,31 @@
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(0);
   ProcessAckPacket(&ack);
 
-  connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  if (connection_.use_control_frame_manager()) {
+    // This RST_STREAM_FRAME will be failed to sent as writer is blocked.
+    QuicRstStreamFrame rst_stream(1, stream_id, QUIC_STREAM_NO_ERROR, 14);
+    connection_.SendControlFrame(QuicFrame(&rst_stream));
+    connection_.OnStreamReset(stream_id, QUIC_STREAM_NO_ERROR);
+  } else {
+    connection_.SendRstStream(stream_id, QUIC_STREAM_NO_ERROR, 14);
+  }
 
   // Unblock the connection and verify that the RST_STREAM is sent and the
   // second data packet or a retransmit is sent.
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(AtLeast(2));
   writer_->SetWritable();
   connection_.OnCanWrite();
-  EXPECT_EQ(1u, writer_->frame_count());
-  EXPECT_EQ(0u, writer_->rst_stream_frames().size());
+  if (connection_.use_control_frame_manager()) {
+    // The RST_STREAM_FRAME is sent after queued packets and pending
+    // retransmission.
+    connection_.SendControlFrame(QuicFrame(
+        new QuicRstStreamFrame(1, stream_id, QUIC_STREAM_NO_ERROR, 14)));
+    EXPECT_EQ(1u, writer_->frame_count());
+    EXPECT_EQ(1u, writer_->rst_stream_frames().size());
+  } else {
+    EXPECT_EQ(1u, writer_->frame_count());
+    EXPECT_EQ(0u, writer_->rst_stream_frames().size());
+  }
 }
 
 TEST_P(QuicConnectionTest, RetransmitAckedPacket) {
@@ -3245,6 +3343,12 @@
 
   writer_->Reset();
   clock_.AdvanceTime(QuicTime::Delta::FromSeconds(15));
+  if (connection_.use_control_frame_manager()) {
+    EXPECT_CALL(visitor_, SendPing())
+        .WillOnce(testing::IgnoreResult(Invoke(testing::CreateFunctor(
+            &QuicConnection::SendControlFrame, base::Unretained(&connection_),
+            QuicFrame(QuicPingFrame(1))))));
+  }
   connection_.GetPingAlarm()->Fire();
   EXPECT_EQ(1u, writer_->frame_count());
   ASSERT_EQ(1u, writer_->ping_frames().size());
@@ -3290,6 +3394,12 @@
 
   writer_->Reset();
   clock_.AdvanceTime(QuicTime::Delta::FromSeconds(10));
+  if (connection_.use_control_frame_manager()) {
+    EXPECT_CALL(visitor_, SendPing())
+        .WillOnce(testing::IgnoreResult(Invoke(testing::CreateFunctor(
+            &QuicConnection::SendControlFrame, base::Unretained(&connection_),
+            QuicFrame(QuicPingFrame(1))))));
+  }
   connection_.GetPingAlarm()->Fire();
   EXPECT_EQ(1u, writer_->frame_count());
   ASSERT_EQ(1u, writer_->ping_frames().size());
@@ -5346,7 +5456,11 @@
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   EXPECT_CALL(debug_visitor, OnPacketSent(_, _, _, _)).Times(1);
   EXPECT_CALL(debug_visitor, OnPingSent()).Times(1);
-  connection_.SendPing();
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(QuicPingFrame(1)));
+  } else {
+    connection_.SendPing();
+  }
   EXPECT_FALSE(connection_.HasQueuedData());
 }
 
@@ -5357,7 +5471,11 @@
   EXPECT_CALL(*send_algorithm_, OnPacketSent(_, _, _, _, _)).Times(1);
   EXPECT_CALL(debug_visitor, OnPacketSent(_, _, _, _)).Times(1);
   EXPECT_EQ(0u, connection_.GetStats().blocked_frames_sent);
-  connection_.SendBlocked(3);
+  if (connection_.use_control_frame_manager()) {
+    connection_.SendControlFrame(QuicFrame(new QuicBlockedFrame(1, 3)));
+  } else {
+    connection_.SendBlocked(3);
+  }
   EXPECT_EQ(1u, connection_.GetStats().blocked_frames_sent);
   EXPECT_FALSE(connection_.HasQueuedData());
 }
@@ -5611,6 +5729,11 @@
 }
 
 TEST_P(QuicConnectionTest, HasPendingControlFramesWhenRetransmittingPackets) {
+  if (connection_.use_control_frame_manager()) {
+    // When use_control_frame_manager is true, the control frame will be
+    // buffered in the control frame manager.
+    return;
+  }
   // This test mimics this scenario: writer get blocked when generator tries to
   // add a control frame, which will be pending. When writer get unblocked, this
   // pending control frame is sent in a packet before retransmissions.
diff --git a/net/quic/core/quic_control_frame_manager.cc b/net/quic/core/quic_control_frame_manager.cc
index 24f459ac..871a86af 100644
--- a/net/quic/core/quic_control_frame_manager.cc
+++ b/net/quic/core/quic_control_frame_manager.cc
@@ -5,12 +5,19 @@
 #include "net/quic/core/quic_control_frame_manager.h"
 
 #include "net/quic/core/quic_constants.h"
+#include "net/quic/core/quic_session.h"
 #include "net/quic/platform/api/quic_bug_tracker.h"
 #include "net/quic/platform/api/quic_map_util.h"
 
+using std::string;
+
 namespace net {
 
-QuicControlFrameManager::QuicControlFrameManager() : least_unacked_(1) {}
+QuicControlFrameManager::QuicControlFrameManager(QuicSession* session)
+    : last_control_frame_id_(kInvalidControlFrameId),
+      least_unacked_(1),
+      least_unsent_(1),
+      session_(session) {}
 
 QuicControlFrameManager::~QuicControlFrameManager() {
   while (!control_frames_.empty()) {
@@ -19,6 +26,71 @@
   }
 }
 
+void QuicControlFrameManager::WriteOrBufferRstStream(
+    QuicStreamId id,
+    QuicRstStreamErrorCode error,
+    QuicStreamOffset bytes_written) {
+  QUIC_DVLOG(1) << "Writing RST_STREAM_FRAME";
+  const bool had_buffered_frames = HasBufferedFrames();
+  control_frames_.emplace_back((QuicFrame(new QuicRstStreamFrame(
+      ++last_control_frame_id_, id, error, bytes_written))));
+  if (had_buffered_frames) {
+    return;
+  }
+  WriteBufferedFrames();
+}
+
+void QuicControlFrameManager::WriteOrBufferGoAway(
+    QuicErrorCode error,
+    QuicStreamId last_good_stream_id,
+    const string& reason) {
+  QUIC_DVLOG(1) << "Writing GOAWAY_FRAME";
+  const bool had_buffered_frames = HasBufferedFrames();
+  control_frames_.emplace_back(QuicFrame(new QuicGoAwayFrame(
+      ++last_control_frame_id_, error, last_good_stream_id, reason)));
+  if (had_buffered_frames) {
+    return;
+  }
+  WriteBufferedFrames();
+}
+
+void QuicControlFrameManager::WriteOrBufferWindowUpdate(
+    QuicStreamId id,
+    QuicStreamOffset byte_offset) {
+  QUIC_DVLOG(1) << "Writing WINDOW_UPDATE_FRAME";
+  const bool had_buffered_frames = HasBufferedFrames();
+  control_frames_.emplace_back(QuicFrame(
+      new QuicWindowUpdateFrame(++last_control_frame_id_, id, byte_offset)));
+  if (had_buffered_frames) {
+    return;
+  }
+  WriteBufferedFrames();
+}
+
+void QuicControlFrameManager::WriteOrBufferBlocked(QuicStreamId id) {
+  QUIC_DVLOG(1) << "Writing BLOCKED_FRAME";
+  const bool had_buffered_frames = HasBufferedFrames();
+  control_frames_.emplace_back(
+      QuicFrame(new QuicBlockedFrame(++last_control_frame_id_, id)));
+  if (had_buffered_frames) {
+    return;
+  }
+  WriteBufferedFrames();
+}
+
+void QuicControlFrameManager::WritePing() {
+  QUIC_DVLOG(1) << "Writing PING_FRAME";
+  const bool had_buffered_frames = HasBufferedFrames();
+  QUIC_BUG_IF(had_buffered_frames)
+      << "Try to send PING when there is buffered control frames.";
+  control_frames_.emplace_back(
+      QuicFrame(QuicPingFrame(++last_control_frame_id_)));
+  if (had_buffered_frames) {
+    return;
+  }
+  WriteBufferedFrames();
+}
+
 void QuicControlFrameManager::OnControlFrameSent(const QuicFrame& frame) {
   QuicControlFrameId id = GetControlFrameId(frame);
   if (id == kInvalidControlFrameId) {
@@ -26,32 +98,40 @@
         << "Send or retransmit a control frame with invalid control frame id";
     return;
   }
-  if (id == least_unacked_ + control_frames_.size()) {
-    // This is a newly sent control frame. Save a copy of this frame.
-    control_frames_.emplace_back(CopyRetransmittableControlFrame(frame));
-    return;
-  }
   if (QuicContainsKey(pending_retransmissions_, id)) {
     // This is retransmitted control frame.
     pending_retransmissions_.erase(id);
     return;
   }
-  QUIC_BUG << frame << " is neither a new or retransmitted control frame.";
+  if (id > least_unsent_) {
+    QUIC_BUG << "Try to send control frames out of order, id: " << id
+             << " least_unsent: " << least_unsent_;
+    session_->connection()->CloseConnection(
+        QUIC_INTERNAL_ERROR, "Try to send control frames out of order",
+        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+    return;
+  }
+  ++least_unsent_;
 }
 
-void QuicControlFrameManager::OnControlFrameAcked(const QuicFrame& frame) {
+bool QuicControlFrameManager::OnControlFrameAcked(const QuicFrame& frame) {
   QuicControlFrameId id = GetControlFrameId(frame);
   if (id == kInvalidControlFrameId) {
     // Frame does not have a valid control frame ID, ignore it.
-    return;
+    return false;
   }
-  if (id < least_unacked_) {
-    // This frame has already been acked.
-    return;
-  }
-  if (id >= least_unacked_ + control_frames_.size()) {
+  if (id >= least_unsent_) {
     QUIC_BUG << "Try to ack unsent control frame";
-    return;
+    session_->connection()->CloseConnection(
+        QUIC_INTERNAL_ERROR, "Try to ack unsent control frame",
+        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+    return false;
+  }
+  if (id < least_unacked_ ||
+      GetControlFrameId(control_frames_.at(id - least_unacked_)) ==
+          kInvalidControlFrameId) {
+    // This frame has already been acked.
+    return false;
   }
 
   // Set control frame ID of acked frames to 0.
@@ -66,6 +146,7 @@
     control_frames_.pop_front();
     ++least_unacked_;
   }
+  return true;
 }
 
 void QuicControlFrameManager::OnControlFrameLost(const QuicFrame& frame) {
@@ -74,16 +155,19 @@
     // Frame does not have a valid control frame ID, ignore it.
     return;
   }
+  if (id >= least_unsent_) {
+    QUIC_BUG << "Try to mark unsent control frame as lost";
+    session_->connection()->CloseConnection(
+        QUIC_INTERNAL_ERROR, "Try to mark unsent control frame as lost",
+        ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
+    return;
+  }
   if (id < least_unacked_ ||
       GetControlFrameId(control_frames_.at(id - least_unacked_)) ==
           kInvalidControlFrameId) {
     // This frame has already been acked.
     return;
   }
-  if (id >= least_unacked_ + control_frames_.size()) {
-    QUIC_BUG << "Try to mark unsent control frame as lost";
-    return;
-  }
   if (!QuicContainsKey(pending_retransmissions_, id)) {
     pending_retransmissions_[id] = true;
   }
@@ -96,11 +180,7 @@
     // Frame without a control frame ID should not be retransmitted.
     return false;
   }
-  if (id >= least_unacked_ + control_frames_.size()) {
-    QUIC_BUG << "Try to check retransmittability of an unsent frame.";
-    return false;
-  }
-  return id >= least_unacked_ &&
+  return id < least_unsent_ && id >= least_unacked_ &&
          GetControlFrameId(control_frames_.at(id - least_unacked_)) !=
              kInvalidControlFrameId;
 }
@@ -109,6 +189,10 @@
   return !pending_retransmissions_.empty();
 }
 
+bool QuicControlFrameManager::WillingToWrite() const {
+  return HasPendingRetransmission() || HasBufferedFrames();
+}
+
 QuicFrame QuicControlFrameManager::NextPendingRetransmission() const {
   QUIC_BUG_IF(pending_retransmissions_.empty())
       << "Unexpected call to NextPendingRetransmission() with empty pending "
@@ -117,8 +201,44 @@
   return control_frames_.at(id - least_unacked_);
 }
 
-size_t QuicControlFrameManager::size() const {
-  return control_frames_.size();
+void QuicControlFrameManager::OnCanWrite() {
+  if (HasPendingRetransmission()) {
+    // Exit early to allow streams to write pending retransmissions if any.
+    WritePendingRetransmission();
+    return;
+  }
+  WriteBufferedFrames();
+}
+
+void QuicControlFrameManager::WriteBufferedFrames() {
+  while (HasBufferedFrames()) {
+    QuicFrame frame_to_send =
+        control_frames_.at(least_unsent_ - least_unacked_);
+    QuicFrame copy = CopyRetransmittableControlFrame(frame_to_send);
+    if (!session_->WriteControlFrame(copy)) {
+      // Connection is write blocked.
+      DeleteFrame(&copy);
+      break;
+    }
+    OnControlFrameSent(frame_to_send);
+  }
+}
+
+void QuicControlFrameManager::WritePendingRetransmission() {
+  while (HasPendingRetransmission()) {
+    QuicFrame pending = NextPendingRetransmission();
+    QuicFrame copy = CopyRetransmittableControlFrame(pending);
+    if (!session_->WriteControlFrame(copy)) {
+      // Connection is write blocked.
+      DeleteFrame(&copy);
+      break;
+    }
+    OnControlFrameSent(pending);
+  }
+}
+
+bool QuicControlFrameManager::HasBufferedFrames() const {
+  return least_unsent_ < least_unacked_ + control_frames_.size();
 }
 
 }  // namespace net
diff --git a/net/quic/core/quic_control_frame_manager.h b/net/quic/core/quic_control_frame_manager.h
index 716ee7f..ed29c352 100644
--- a/net/quic/core/quic_control_frame_manager.h
+++ b/net/quic/core/quic_control_frame_manager.h
@@ -10,6 +10,12 @@
 
 namespace net {
 
+class QuicSession;
+
+namespace test {
+class QuicControlFrameManagerPeer;
+}  // namespace test
+
 // Control frame manager contains a list of sent control frames with valid
 // control frame IDs. Control frames without valid control frame IDs include:
 // (1) non-retransmittable frames (e.g., ACK_FRAME, PADDING_FRAME,
@@ -20,22 +26,44 @@
 // which need to be retransmitted.
 class QUIC_EXPORT_PRIVATE QuicControlFrameManager {
  public:
-  QuicControlFrameManager();
+  explicit QuicControlFrameManager(QuicSession* session);
   QuicControlFrameManager(const QuicControlFrameManager& other) = delete;
   QuicControlFrameManager(QuicControlFrameManager&& other) = delete;
   ~QuicControlFrameManager();
 
-  // Called when |frame| is sent for the first time or gets retransmitted.
-  // Please note, this function should be called when |frame| is added to the
-  // generator.
-  void OnControlFrameSent(const QuicFrame& frame);
+  // Tries to send a WINDOW_UPDATE_FRAME. Buffers the frame if it cannot be sent
+  // immediately.
+  void WriteOrBufferRstStream(QuicControlFrameId id,
+                              QuicRstStreamErrorCode error,
+                              QuicStreamOffset bytes_written);
 
-  // Called when |frame| gets acked.
-  void OnControlFrameAcked(const QuicFrame& frame);
+  // Tries to send a GOAWAY_FRAME. Buffers the frame if it cannot be sent
+  // immediately.
+  void WriteOrBufferGoAway(QuicErrorCode error,
+                           QuicStreamId last_good_stream_id,
+                           const std::string& reason);
+
+  // Tries to send a WINDOW_UPDATE_FRAME. Buffers the frame if it cannot be sent
+  // immediately.
+  void WriteOrBufferWindowUpdate(QuicStreamId id, QuicStreamOffset byte_offset);
+
+  // Tries to send a BLOCKED_FRAME. Buffers the frame if it cannot be sent
+  // immediately.
+  void WriteOrBufferBlocked(QuicStreamId id);
+
+  // Sends a PING_FRAME.
+  void WritePing();
+
+  // Called when |frame| gets acked. Returns true if |frame| gets acked for the
+  // first time, return false otherwise.
+  bool OnControlFrameAcked(const QuicFrame& frame);
 
   // Called when |frame| is considered as lost.
   void OnControlFrameLost(const QuicFrame& frame);
 
+  // Called by the session when the connection becomes writable.
+  void OnCanWrite();
+
   // Returns true if |frame| is outstanding and waiting to be acked. Returns
   // false otherwise.
   bool IsControlFrameOutstanding(const QuicFrame& frame) const;
@@ -44,22 +72,48 @@
   // retransmitted.
   bool HasPendingRetransmission() const;
 
+  // Returns true if there are any lost or new control frames waiting to be
+  // sent.
+  bool WillingToWrite() const;
+
+ private:
+  friend class test::QuicControlFrameManagerPeer;
+
+  // Tries to write buffered control frames to the peer.
+  void WriteBufferedFrames();
+
+  // Called when |frame| is sent for the first time or gets retransmitted.
+  void OnControlFrameSent(const QuicFrame& frame);
+
+  // Writes pending retransmissions if any.
+  void WritePendingRetransmission();
+
   // Retrieves the next pending retransmission. This must only be called when
   // there are pending retransmissions.
   QuicFrame NextPendingRetransmission() const;
 
-  size_t size() const;
+  // Returns true if there are buffered frames waiting to be sent for the first
+  // time.
+  bool HasBufferedFrames() const;
 
- private:
   QuicDeque<QuicFrame> control_frames_;
 
+  // Id of latest saved control frame. 0 if no control frame has been saved.
+  QuicControlFrameId last_control_frame_id_;
+
   // The control frame at the 0th index of control_frames_.
   QuicControlFrameId least_unacked_;
 
+  // ID of the least unsent control frame.
+  QuicControlFrameId least_unsent_;
+
   // TODO(fayang): switch to linked_hash_set when chromium supports it. The bool
   // is not used here.
   // Lost control frames waiting to be retransmitted.
   QuicLinkedHashMap<QuicControlFrameId, bool> pending_retransmissions_;
+
+  // Pointer to the owning QuicSession object.
+  QuicSession* session_;
 };
 
 }  // namespace net
diff --git a/net/quic/core/quic_control_frame_manager_test.cc b/net/quic/core/quic_control_frame_manager_test.cc
index 545ada0..457156069 100644
--- a/net/quic/core/quic_control_frame_manager_test.cc
+++ b/net/quic/core/quic_control_frame_manager_test.cc
@@ -4,77 +4,157 @@
 
 #include "net/quic/core/quic_control_frame_manager.h"
 
+#include "net/quic/platform/api/quic_flags.h"
 #include "net/quic/platform/api/quic_test.h"
+#include "net/quic/test_tools/quic_test_utils.h"
+
+using testing::_;
+using testing::InSequence;
+using testing::Return;
+using testing::StrictMock;
 
 namespace net {
 namespace test {
+
+class QuicControlFrameManagerPeer {
+ public:
+  static size_t QueueSize(QuicControlFrameManager* manager) {
+    return manager->control_frames_.size();
+  }
+};
+
 namespace {
 
 const QuicStreamId kTestStreamId = 5;
 
 class QuicControlFrameManagerTest : public QuicTest {
  public:
-  QuicControlFrameManagerTest()
-      : rst_stream_(1, kTestStreamId, QUIC_STREAM_CANCELLED, 0),
-        goaway_(2, QUIC_PEER_GOING_AWAY, kTestStreamId, "Going away."),
-        window_update_(3, kTestStreamId, 100),
-        blocked_(4, kTestStreamId) {}
+  bool ClearControlFrame(const QuicFrame& frame) {
+    DeleteFrame(&const_cast<QuicFrame&>(frame));
+    return true;
+  }
 
-  QuicControlFrameManager manager_;
-  QuicRstStreamFrame rst_stream_;
-  QuicGoAwayFrame goaway_;
-  QuicWindowUpdateFrame window_update_;
-  QuicBlockedFrame blocked_;
+ protected:
+  void Initialize() {
+    SetQuicReloadableFlag(quic_use_control_frame_manager, true);
+    connection_ = new MockQuicConnection(&helper_, &alarm_factory_,
+                                         Perspective::IS_SERVER);
+    session_ = QuicMakeUnique<StrictMock<MockQuicSession>>(connection_);
+    manager_ = QuicMakeUnique<QuicControlFrameManager>(session_.get());
+    EXPECT_EQ(0u, QuicControlFrameManagerPeer::QueueSize(manager_.get()));
+    EXPECT_FALSE(manager_->HasPendingRetransmission());
+    EXPECT_FALSE(manager_->WillingToWrite());
+
+    EXPECT_CALL(*connection_, SendControlFrame(_)).WillOnce(Return(false));
+    manager_->WriteOrBufferRstStream(kTestStreamId, QUIC_STREAM_CANCELLED, 0);
+    manager_->WriteOrBufferGoAway(QUIC_PEER_GOING_AWAY, kTestStreamId,
+                                  "Going away.");
+    manager_->WriteOrBufferWindowUpdate(kTestStreamId, 100);
+    manager_->WriteOrBufferBlocked(kTestStreamId);
+    EXPECT_EQ(4u, QuicControlFrameManagerPeer::QueueSize(manager_.get()));
+    EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&rst_stream_)));
+    EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&goaway_)));
+    EXPECT_FALSE(
+        manager_->IsControlFrameOutstanding(QuicFrame(&window_update_)));
+    EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&blocked_)));
+    EXPECT_FALSE(
+        manager_->IsControlFrameOutstanding(QuicFrame(QuicPingFrame(5))));
+
+    EXPECT_FALSE(manager_->HasPendingRetransmission());
+    EXPECT_TRUE(manager_->WillingToWrite());
+  }
+
+  QuicRstStreamFrame rst_stream_ = {1, kTestStreamId, QUIC_STREAM_CANCELLED, 0};
+  QuicGoAwayFrame goaway_ = {2, QUIC_PEER_GOING_AWAY, kTestStreamId,
+                             "Going away."};
+  QuicWindowUpdateFrame window_update_ = {3, kTestStreamId, 100};
+  QuicBlockedFrame blocked_ = {4, kTestStreamId};
+  MockQuicConnectionHelper helper_;
+  MockAlarmFactory alarm_factory_;
+  MockQuicConnection* connection_;
+  std::unique_ptr<StrictMock<MockQuicSession>> session_;
+  std::unique_ptr<QuicControlFrameManager> manager_;
 };
 
 TEST_F(QuicControlFrameManagerTest, OnControlFrameAcked) {
-  EXPECT_EQ(0u, manager_.size());
-  manager_.OnControlFrameSent(QuicFrame(&rst_stream_));
-  manager_.OnControlFrameSent(QuicFrame(&goaway_));
-  manager_.OnControlFrameSent(QuicFrame(&window_update_));
-  manager_.OnControlFrameSent(QuicFrame(&blocked_));
-  manager_.OnControlFrameSent(QuicFrame(QuicPingFrame(5)));
-  EXPECT_EQ(5u, manager_.size());
+  Initialize();
+  InSequence s;
+  EXPECT_CALL(*connection_, SendControlFrame(_))
+      .Times(3)
+      .WillRepeatedly(
+          Invoke(this, &QuicControlFrameManagerTest::ClearControlFrame));
+  EXPECT_CALL(*connection_, SendControlFrame(_)).WillOnce(Return(false));
+  // Send control frames 1, 2, 3.
+  manager_->OnCanWrite();
+  EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&rst_stream_)));
+  EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&goaway_)));
+  EXPECT_TRUE(manager_->IsControlFrameOutstanding(QuicFrame(&window_update_)));
+  EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&blocked_)));
+  EXPECT_FALSE(
+      manager_->IsControlFrameOutstanding(QuicFrame(QuicPingFrame(5))));
 
-  EXPECT_TRUE(manager_.IsControlFrameOutstanding(QuicFrame(&window_update_)));
-  manager_.OnControlFrameAcked(QuicFrame(&window_update_));
-  EXPECT_FALSE(manager_.IsControlFrameOutstanding(QuicFrame(&window_update_)));
-  EXPECT_EQ(5u, manager_.size());
+  EXPECT_TRUE(manager_->OnControlFrameAcked(QuicFrame(&window_update_)));
+  EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&window_update_)));
+  EXPECT_EQ(4u, QuicControlFrameManagerPeer::QueueSize(manager_.get()));
 
-  manager_.OnControlFrameAcked(QuicFrame(&goaway_));
-  EXPECT_EQ(5u, manager_.size());
-  manager_.OnControlFrameAcked(QuicFrame(&rst_stream_));
-  EXPECT_EQ(2u, manager_.size());
+  EXPECT_TRUE(manager_->OnControlFrameAcked(QuicFrame(&goaway_)));
+  EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&goaway_)));
+  EXPECT_EQ(4u, QuicControlFrameManagerPeer::QueueSize(manager_.get()));
+  EXPECT_TRUE(manager_->OnControlFrameAcked(QuicFrame(&rst_stream_)));
+  EXPECT_FALSE(manager_->IsControlFrameOutstanding(QuicFrame(&rst_stream_)));
+  EXPECT_EQ(1u, QuicControlFrameManagerPeer::QueueSize(manager_.get()));
+  // Duplicate ack.
+  EXPECT_FALSE(manager_->OnControlFrameAcked(QuicFrame(&goaway_)));
+
+  EXPECT_FALSE(manager_->HasPendingRetransmission());
+  EXPECT_TRUE(manager_->WillingToWrite());
+
+  // Send control frames 4, 5.
+  EXPECT_CALL(*connection_, SendControlFrame(_))
+      .WillRepeatedly(
+          Invoke(this, &QuicControlFrameManagerTest::ClearControlFrame));
+  manager_->OnCanWrite();
+  manager_->WritePing();
+  EXPECT_FALSE(manager_->WillingToWrite());
 }
 
 TEST_F(QuicControlFrameManagerTest, OnControlFrameLost) {
-  EXPECT_FALSE(manager_.HasPendingRetransmission());
-  EXPECT_EQ(0u, manager_.size());
-  manager_.OnControlFrameSent(QuicFrame(&rst_stream_));
-  manager_.OnControlFrameSent(QuicFrame(&goaway_));
-  manager_.OnControlFrameSent(QuicFrame(&window_update_));
-  manager_.OnControlFrameSent(QuicFrame(&blocked_));
-  manager_.OnControlFrameSent(QuicFrame(QuicPingFrame(5)));
-  EXPECT_EQ(5u, manager_.size());
+  Initialize();
+  InSequence s;
+  EXPECT_CALL(*connection_, SendControlFrame(_))
+      .Times(3)
+      .WillRepeatedly(
+          Invoke(this, &QuicControlFrameManagerTest::ClearControlFrame));
+  EXPECT_CALL(*connection_, SendControlFrame(_)).WillOnce(Return(false));
+  // Send control frames 1, 2, 3.
+  manager_->OnCanWrite();
 
-  manager_.OnControlFrameLost(QuicFrame(&window_update_));
-  manager_.OnControlFrameLost(QuicFrame(&rst_stream_));
-  EXPECT_TRUE(manager_.HasPendingRetransmission());
-  EXPECT_EQ(window_update_.control_frame_id,
-            manager_.NextPendingRetransmission()
-                .window_update_frame->control_frame_id);
-  manager_.OnControlFrameSent(QuicFrame(&window_update_));
-  EXPECT_TRUE(manager_.IsControlFrameOutstanding(QuicFrame(&window_update_)));
+  // Lost control frames 1, 2, 3.
+  manager_->OnControlFrameLost(QuicFrame(&rst_stream_));
+  manager_->OnControlFrameLost(QuicFrame(&goaway_));
+  manager_->OnControlFrameLost(QuicFrame(&window_update_));
+  EXPECT_TRUE(manager_->HasPendingRetransmission());
 
-  EXPECT_TRUE(manager_.HasPendingRetransmission());
-  EXPECT_EQ(
-      rst_stream_.control_frame_id,
-      manager_.NextPendingRetransmission().rst_stream_frame->control_frame_id);
-  manager_.OnControlFrameAcked(QuicFrame(&rst_stream_));
-  EXPECT_FALSE(manager_.IsControlFrameOutstanding(QuicFrame(&rst_stream_)));
+  // Ack control frame 2.
+  manager_->OnControlFrameAcked(QuicFrame(&goaway_));
 
-  EXPECT_FALSE(manager_.HasPendingRetransmission());
-  EXPECT_EQ(4u, manager_.size());
+  // Retransmit control frames 1, 3.
+  EXPECT_CALL(*connection_, SendControlFrame(_))
+      .Times(2)
+      .WillRepeatedly(
+          Invoke(this, &QuicControlFrameManagerTest::ClearControlFrame));
+  manager_->OnCanWrite();
+  EXPECT_FALSE(manager_->HasPendingRetransmission());
+  EXPECT_TRUE(manager_->WillingToWrite());
+
+  // Send control frames 4, 5.
+  EXPECT_CALL(*connection_, SendControlFrame(_))
+      .Times(2)
+      .WillRepeatedly(
+          Invoke(this, &QuicControlFrameManagerTest::ClearControlFrame));
+  manager_->OnCanWrite();
+  manager_->WritePing();
+  EXPECT_FALSE(manager_->WillingToWrite());
 }
 
 }  // namespace
diff --git a/net/quic/core/quic_error_codes.cc b/net/quic/core/quic_error_codes.cc
index 3bdd84c..98d0de8 100644
--- a/net/quic/core/quic_error_codes.cc
+++ b/net/quic/core/quic_error_codes.cc
@@ -132,6 +132,8 @@
     RETURN_STRING_LITERAL(QUIC_STREAM_SEQUENCER_INVALID_STATE);
     RETURN_STRING_LITERAL(QUIC_TOO_MANY_SESSIONS_ON_SERVER);
     RETURN_STRING_LITERAL(QUIC_STREAM_LENGTH_OVERFLOW);
+    RETURN_STRING_LITERAL(QUIC_CONNECTION_MIGRATION_DISABLED_BY_CONFIG);
+    RETURN_STRING_LITERAL(QUIC_CONNECTION_MIGRATION_INTERNAL_ERROR);
     RETURN_STRING_LITERAL(QUIC_LAST_ERROR);
     // Intentionally have no default case, so we'll break the build
     // if we add errors and don't put them here.
diff --git a/net/quic/core/quic_error_codes.h b/net/quic/core/quic_error_codes.h
index f5d94ee..4d4e208 100644
--- a/net/quic/core/quic_error_codes.h
+++ b/net/quic/core/quic_error_codes.h
@@ -261,6 +261,10 @@
   QUIC_CONNECTION_MIGRATION_NO_NEW_NETWORK = 83,
   // Network changed, but connection had one or more non-migratable streams.
   QUIC_CONNECTION_MIGRATION_NON_MIGRATABLE_STREAM = 84,
+  // Network changed, but connection migration was disabled by config.
+  QUIC_CONNECTION_MIGRATION_DISABLED_BY_CONFIG = 99,
+  // Network changed, but error was encountered on the alternative network.
+  QUIC_CONNECTION_MIGRATION_INTERNAL_ERROR = 100,
 
   // Stream frames arrived too discontiguously so that stream sequencer buffer
   // maintains too many intervals.
@@ -277,7 +281,7 @@
   QUIC_STREAM_LENGTH_OVERFLOW = 98,
 
   // No error. Used as bound while iterating.
-  QUIC_LAST_ERROR = 99,
+  QUIC_LAST_ERROR = 101,
 };
 // QuicErrorCodes is encoded as a single octet on-the-wire.
 static_assert(static_cast<int>(QUIC_LAST_ERROR) <=
diff --git a/net/quic/core/quic_flags_list.h b/net/quic/core/quic_flags_list.h
index bc02bba..203f9ad 100644
--- a/net/quic/core/quic_flags_list.h
+++ b/net/quic/core/quic_flags_list.h
@@ -173,3 +173,9 @@
 // When true, ignore the specified ack delay if it causes the RTT sample to be
 // less than min_rtt.
 QUIC_FLAG(bool, FLAGS_quic_reloadable_flag_quic_min_rtt_ack_delay, false)
+
+// If true, plugin control frame manager to QuicSession, and let it manage sent
+// control frames.
+QUIC_FLAG(bool,
+          FLAGS_quic_reloadable_flag_quic_use_control_frame_manager,
+          false)
diff --git a/net/quic/core/quic_flow_controller.cc b/net/quic/core/quic_flow_controller.cc
index b63349f9..91f0c9f 100644
--- a/net/quic/core/quic_flow_controller.cc
+++ b/net/quic/core/quic_flow_controller.cc
@@ -8,6 +8,7 @@
 
 #include "net/quic/core/quic_connection.h"
 #include "net/quic/core/quic_packets.h"
+#include "net/quic/core/quic_session.h"
 #include "net/quic/platform/api/quic_bug_tracker.h"
 #include "net/quic/platform/api/quic_flag_utils.h"
 #include "net/quic/platform/api/quic_flags.h"
@@ -20,6 +21,7 @@
   (perspective_ == Perspective::IS_SERVER ? "Server: " : "Client: ")
 
 QuicFlowController::QuicFlowController(
+    QuicSession* session,
     QuicConnection* connection,
     QuicStreamId id,
     Perspective perspective,
@@ -27,7 +29,8 @@
     QuicStreamOffset receive_window_offset,
     bool should_auto_tune_receive_window,
     QuicFlowControllerInterface* session_flow_controller)
-    : connection_(connection),
+    : session_(session),
+      connection_(connection),
       id_(id),
       perspective_(perspective),
       bytes_sent_(0),
@@ -228,7 +231,11 @@
                     << ", send limit: " << send_window_offset_;
     // The entire send_window has been consumed, we are now flow control
     // blocked.
-    connection_->SendBlocked(id_);
+    if (session_->use_control_frame_manager()) {
+      session_->SendBlocked(id_);
+    } else {
+      connection_->SendBlocked(id_);
+    }
 
     // Keep track of when we last sent a BLOCKED frame so that we only send one
     // at a given send offset.
@@ -291,6 +298,10 @@
 }
 
 void QuicFlowController::SendWindowUpdate() {
+  if (session_->use_control_frame_manager()) {
+    session_->SendWindowUpdate(id_, receive_window_offset_);
+    return;
+  }
   connection_->SendWindowUpdate(id_, receive_window_offset_);
 }
 
diff --git a/net/quic/core/quic_flow_controller.h b/net/quic/core/quic_flow_controller.h
index 6d79a43..f5d7ab6 100644
--- a/net/quic/core/quic_flow_controller.h
+++ b/net/quic/core/quic_flow_controller.h
@@ -16,6 +16,7 @@
 }  // namespace test
 
 class QuicConnection;
+class QuicSession;
 
 const QuicStreamId kConnectionLevelId = 0;
 
@@ -39,11 +40,12 @@
 class QUIC_EXPORT_PRIVATE QuicFlowController
     : public QuicFlowControllerInterface {
  public:
-  QuicFlowController(QuicConnection* connection,
+  QuicFlowController(QuicSession* session,
+                     QuicConnection* connection,
                      QuicStreamId id,
                      Perspective perspective,
-                     QuicStreamOffset send_window_size,
-                     QuicStreamOffset receive_window_size,
+                     QuicStreamOffset send_window_offset,
+                     QuicStreamOffset receive_window_offset,
                      bool should_auto_tune_receive_window,
                      QuicFlowControllerInterface* session_flow_controller);
 
@@ -118,9 +120,10 @@
   // Double the window size as long as we haven't hit the max window size.
   void IncreaseWindowSize();
 
-  // The parent connection, used to send connection close on flow control
-  // violation, and WINDOW_UPDATE and BLOCKED frames when appropriate.
+  // The parent session/connection, used to send connection close on flow
+  // control violation, and WINDOW_UPDATE and BLOCKED frames when appropriate.
   // Not owned.
+  QuicSession* session_;
   QuicConnection* connection_;
 
   // ID of stream this flow controller belongs to. This can be 0 if this is a
diff --git a/net/quic/core/quic_flow_controller_test.cc b/net/quic/core/quic_flow_controller_test.cc
index 9feb3c3..6ee961ca 100644
--- a/net/quic/core/quic_flow_controller_test.cc
+++ b/net/quic/core/quic_flow_controller_test.cc
@@ -35,12 +35,20 @@
 class QuicFlowControllerTest : public QuicTest {
  public:
   void Initialize() {
+    connection_ = new MockQuicConnection(&helper_, &alarm_factory_,
+                                         Perspective::IS_CLIENT);
+    session_ = QuicMakeUnique<MockQuicSession>(connection_);
     flow_controller_.reset(new QuicFlowController(
-        &connection_, stream_id_, Perspective::IS_CLIENT, send_window_,
-        receive_window_, should_auto_tune_receive_window_,
+        session_.get(), connection_, stream_id_, Perspective::IS_CLIENT,
+        send_window_, receive_window_, should_auto_tune_receive_window_,
         &session_flow_controller_));
   }
 
+  bool ClearControlFrame(const QuicFrame& frame) {
+    DeleteFrame(&const_cast<QuicFrame&>(frame));
+    return true;
+  }
+
  protected:
   QuicStreamId stream_id_ = 1234;
   QuicByteCount send_window_ = kInitialSessionFlowControlWindowForTest;
@@ -48,8 +56,8 @@
   std::unique_ptr<QuicFlowController> flow_controller_;
   MockQuicConnectionHelper helper_;
   MockAlarmFactory alarm_factory_;
-  MockQuicConnection connection_ = {&helper_, &alarm_factory_,
-                                    Perspective::IS_CLIENT};
+  MockQuicConnection* connection_;
+  std::unique_ptr<MockQuicSession> session_;
   MockFlowController session_flow_controller_;
   bool should_auto_tune_receive_window_ = false;
 };
@@ -72,7 +80,11 @@
   EXPECT_EQ(0u, flow_controller_->SendWindowSize());
 
   // BLOCKED frame should get sent.
-  EXPECT_CALL(connection_, SendBlocked(stream_id_)).Times(1);
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(stream_id_)).Times(1);
+  }
   flow_controller_->MaybeSendBlocked();
 
   // Update the send window, and verify this has unblocked.
@@ -85,7 +97,7 @@
   EXPECT_EQ(send_window_, flow_controller_->SendWindowSize());
 
   // Try to send more bytes, violating flow control.
-  EXPECT_CALL(connection_,
+  EXPECT_CALL(*connection_,
               CloseConnection(QUIC_FLOW_CONTROL_SENT_TOO_MUCH_DATA, _, _));
   EXPECT_QUIC_BUG(
       flow_controller_->AddBytesSent(send_window_ * 10),
@@ -111,7 +123,12 @@
             QuicFlowControllerPeer::ReceiveWindowSize(flow_controller_.get()));
 
   // Consume enough bytes to send a WINDOW_UPDATE frame.
-  EXPECT_CALL(connection_, SendWindowUpdate(stream_id_, ::testing::_)).Times(1);
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream_id_, ::testing::_))
+        .Times(1);
+  }
 
   flow_controller_->AddBytesConsumed(1 + receive_window_ / 2);
 
@@ -136,7 +153,14 @@
   EXPECT_EQ(0u, flow_controller_->SendWindowSize());
 
   // Expect that 2 BLOCKED frames should get sent in total.
-  EXPECT_CALL(connection_, SendBlocked(stream_id_)).Times(2);
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .Times(2)
+        .WillRepeatedly(
+            Invoke(this, &QuicFlowControllerTest::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(stream_id_)).Times(2);
+  }
 
   // BLOCKED frame should get sent.
   flow_controller_->MaybeSendBlocked();
@@ -161,18 +185,22 @@
 }
 
 TEST_F(QuicFlowControllerTest, ReceivingBytesFastIncreasesFlowWindow) {
-  // This test will generate two WINDOW_UPDATE frames.
-  EXPECT_CALL(connection_, SendWindowUpdate(stream_id_, ::testing::_)).Times(1);
-
   should_auto_tune_receive_window_ = true;
   Initialize();
+  // This test will generate two WINDOW_UPDATE frames.
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream_id_, ::testing::_))
+        .Times(1);
+  }
   EXPECT_TRUE(flow_controller_->auto_tune_receive_window());
 
   // Make sure clock is inititialized.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
 
   QuicSentPacketManager* manager =
-      QuicConnectionPeer::GetSentPacketManager(&connection_);
+      QuicConnectionPeer::GetSentPacketManager(connection_);
 
   RttStats* rtt_stats = const_cast<RttStats*>(manager->GetRttStats());
   rtt_stats->UpdateRtt(QuicTime::Delta::FromMilliseconds(kRtt),
@@ -204,7 +232,7 @@
   EXPECT_EQ(2 * kInitialSessionFlowControlWindowForTest,
             QuicFlowControllerPeer::ReceiveWindowSize(flow_controller_.get()));
 
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt - 1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt - 1));
   receive_offset += threshold + 1;
   EXPECT_TRUE(flow_controller_->UpdateHighestReceivedOffset(receive_offset));
   flow_controller_->AddBytesConsumed(threshold + 1);
@@ -215,17 +243,24 @@
 }
 
 TEST_F(QuicFlowControllerTest, ReceivingBytesFastNoAutoTune) {
-  // This test will generate two WINDOW_UPDATE frames.
-  EXPECT_CALL(connection_, SendWindowUpdate(stream_id_, ::testing::_)).Times(2);
-
   Initialize();
+  // This test will generate two WINDOW_UPDATE frames.
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .Times(2)
+        .WillRepeatedly(
+            Invoke(this, &QuicFlowControllerTest::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream_id_, ::testing::_))
+        .Times(2);
+  }
   EXPECT_FALSE(flow_controller_->auto_tune_receive_window());
 
   // Make sure clock is inititialized.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
 
   QuicSentPacketManager* manager =
-      QuicConnectionPeer::GetSentPacketManager(&connection_);
+      QuicConnectionPeer::GetSentPacketManager(connection_);
 
   RttStats* rtt_stats = const_cast<RttStats*>(manager->GetRttStats());
   rtt_stats->UpdateRtt(QuicTime::Delta::FromMilliseconds(kRtt),
@@ -257,7 +292,7 @@
   // Move time forward, but by less than two RTTs.  Then receive and consume
   // some more, forcing a second WINDOW_UPDATE with an increased max window
   // size.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt - 1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt - 1));
   receive_offset += threshold + 1;
   EXPECT_TRUE(flow_controller_->UpdateHighestReceivedOffset(receive_offset));
   flow_controller_->AddBytesConsumed(threshold + 1);
@@ -268,18 +303,22 @@
 }
 
 TEST_F(QuicFlowControllerTest, ReceivingBytesNormalStableFlowWindow) {
-  // This test will generate two WINDOW_UPDATE frames.
-  EXPECT_CALL(connection_, SendWindowUpdate(stream_id_, ::testing::_)).Times(1);
-
   should_auto_tune_receive_window_ = true;
   Initialize();
+  // This test will generate two WINDOW_UPDATE frames.
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream_id_, ::testing::_))
+        .Times(1);
+  }
   EXPECT_TRUE(flow_controller_->auto_tune_receive_window());
 
   // Make sure clock is inititialized.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
 
   QuicSentPacketManager* manager =
-      QuicConnectionPeer::GetSentPacketManager(&connection_);
+      QuicConnectionPeer::GetSentPacketManager(connection_);
   RttStats* rtt_stats = const_cast<RttStats*>(manager->GetRttStats());
   rtt_stats->UpdateRtt(QuicTime::Delta::FromMilliseconds(kRtt),
                        QuicTime::Delta::Zero(), QuicTime::Zero());
@@ -311,7 +350,7 @@
 
   // Move time forward, but by more than two RTTs.  Then receive and consume
   // some more, forcing a second WINDOW_UPDATE with unchanged max window size.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt + 1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt + 1));
 
   receive_offset += threshold + 1;
   EXPECT_TRUE(flow_controller_->UpdateHighestReceivedOffset(receive_offset));
@@ -325,17 +364,24 @@
 }
 
 TEST_F(QuicFlowControllerTest, ReceivingBytesNormalNoAutoTune) {
-  // This test will generate two WINDOW_UPDATE frames.
-  EXPECT_CALL(connection_, SendWindowUpdate(stream_id_, ::testing::_)).Times(2);
-
   Initialize();
+  // This test will generate two WINDOW_UPDATE frames.
+  if (connection_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .Times(2)
+        .WillRepeatedly(
+            Invoke(this, &QuicFlowControllerTest::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream_id_, ::testing::_))
+        .Times(2);
+  }
   EXPECT_FALSE(flow_controller_->auto_tune_receive_window());
 
   // Make sure clock is inititialized.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(1));
 
   QuicSentPacketManager* manager =
-      QuicConnectionPeer::GetSentPacketManager(&connection_);
+      QuicConnectionPeer::GetSentPacketManager(connection_);
   RttStats* rtt_stats = const_cast<RttStats*>(manager->GetRttStats());
   rtt_stats->UpdateRtt(QuicTime::Delta::FromMilliseconds(kRtt),
                        QuicTime::Delta::Zero(), QuicTime::Zero());
@@ -365,7 +411,7 @@
 
   // Move time forward, but by more than two RTTs.  Then receive and consume
   // some more, forcing a second WINDOW_UPDATE with unchanged max window size.
-  connection_.AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt + 1));
+  connection_->AdvanceTime(QuicTime::Delta::FromMilliseconds(2 * kRtt + 1));
 
   receive_offset += threshold + 1;
   EXPECT_TRUE(flow_controller_->UpdateHighestReceivedOffset(receive_offset));
diff --git a/net/quic/core/quic_headers_stream.cc b/net/quic/core/quic_headers_stream.cc
index 5f7276d..f6b80ea05 100644
--- a/net/quic/core/quic_headers_stream.cc
+++ b/net/quic/core/quic_headers_stream.cc
@@ -59,7 +59,7 @@
   }
 }
 
-void QuicHeadersStream::OnStreamFrameAcked(QuicStreamOffset offset,
+bool QuicHeadersStream::OnStreamFrameAcked(QuicStreamOffset offset,
                                            QuicByteCount data_length,
                                            bool fin_acked,
                                            QuicTime::Delta ack_delay_time) {
@@ -91,7 +91,7 @@
                  << header.unacked_length << " acked_length: " << header_length;
         CloseConnectionWithDetails(QUIC_INTERNAL_ERROR,
                                    "Unsent stream data is acked");
-        return;
+        return false;
       }
       if (header.ack_listener != nullptr && header_length > 0) {
         header.ack_listener->OnPacketAcked(header_length, ack_delay_time);
@@ -107,8 +107,8 @@
          unacked_headers_.front().unacked_length == 0) {
     unacked_headers_.pop_front();
   }
-  QuicStream::OnStreamFrameAcked(offset, data_length, fin_acked,
-                                 ack_delay_time);
+  return QuicStream::OnStreamFrameAcked(offset, data_length, fin_acked,
+                                        ack_delay_time);
 }
 
 void QuicHeadersStream::OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/net/quic/core/quic_headers_stream.h b/net/quic/core/quic_headers_stream.h
index 4892b0e..b400f76 100644
--- a/net/quic/core/quic_headers_stream.h
+++ b/net/quic/core/quic_headers_stream.h
@@ -38,7 +38,7 @@
   // Release underlying buffer if allowed.
   void MaybeReleaseSequencerBuffer();
 
-  void OnStreamFrameAcked(QuicStreamOffset offset,
+  bool OnStreamFrameAcked(QuicStreamOffset offset,
                           QuicByteCount data_length,
                           bool fin_acked,
                           QuicTime::Delta ack_delay_time) override;
diff --git a/net/quic/core/quic_headers_stream_test.cc b/net/quic/core/quic_headers_stream_test.cc
index cc5ca02..0953229 100644
--- a/net/quic/core/quic_headers_stream_test.cc
+++ b/net/quic/core/quic_headers_stream_test.cc
@@ -873,20 +873,26 @@
   // Packets are acked in order: 2, 3, 1.
   EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _));
-  headers_stream_->OnStreamFrameAcked(21, 7, false, QuicTime::Delta::Zero());
-  headers_stream_->OnStreamFrameAcked(28, 7, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(21, 7, false,
+                                                  QuicTime::Delta::Zero()));
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(28, 7, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _));
-  headers_stream_->OnStreamFrameAcked(35, 7, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(35, 7, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _));
   EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _));
-  headers_stream_->OnStreamFrameAcked(0, 7, false, QuicTime::Delta::Zero());
-  headers_stream_->OnStreamFrameAcked(7, 7, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(0, 7, false,
+                                                  QuicTime::Delta::Zero()));
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(7, 7, false,
+                                                  QuicTime::Delta::Zero()));
   // Unsent data is acked.
   EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _));
   if (GetQuicReloadableFlag(quic_allow_multiple_acks_for_data2)) {
-    headers_stream_->OnStreamFrameAcked(14, 10, false, QuicTime::Delta::Zero());
+    EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(14, 10, false,
+                                                    QuicTime::Delta::Zero()));
   } else {
     EXPECT_QUIC_BUG(headers_stream_->OnStreamFrameAcked(
                         14, 10, false, QuicTime::Delta::Zero()),
@@ -923,15 +929,18 @@
   EXPECT_CALL(*ack_listener2, OnPacketAcked(4, _));
   EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(2, _));
-  headers_stream_->OnStreamFrameAcked(17, 13, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(17, 13, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _));
   EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _));
-  headers_stream_->OnStreamFrameAcked(30, 12, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(30, 12, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener1, OnPacketAcked(14, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(3, _));
-  headers_stream_->OnStreamFrameAcked(0, 17, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(0, 17, false,
+                                                  QuicTime::Delta::Zero()));
 }
 
 TEST_P(QuicHeadersStreamTest, HeadersGetAckedMultipleTimes) {
@@ -959,23 +968,29 @@
 
   // Ack [15, 20), [5, 25), [10, 17), [0, 12) and [22, 42).
   EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _));
-  headers_stream_->OnStreamFrameAcked(15, 5, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(15, 5, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener1, OnPacketAcked(9, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(1, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(1, _));
   EXPECT_CALL(*ack_listener3, OnPacketAcked(4, _));
-  headers_stream_->OnStreamFrameAcked(5, 20, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(5, 20, false,
+                                                  QuicTime::Delta::Zero()));
 
-  headers_stream_->OnStreamFrameAcked(10, 7, false, QuicTime::Delta::Zero());
+  // Duplicate ack.
+  EXPECT_FALSE(headers_stream_->OnStreamFrameAcked(10, 7, false,
+                                                   QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener1, OnPacketAcked(5, _));
-  headers_stream_->OnStreamFrameAcked(0, 12, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(0, 12, false,
+                                                  QuicTime::Delta::Zero()));
 
   EXPECT_CALL(*ack_listener3, OnPacketAcked(3, _));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _));
   EXPECT_CALL(*ack_listener3, OnPacketAcked(7, _));
-  headers_stream_->OnStreamFrameAcked(22, 20, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(headers_stream_->OnStreamFrameAcked(22, 20, false,
+                                                  QuicTime::Delta::Zero()));
 }
 
 }  // namespace
diff --git a/net/quic/core/quic_server_session_base_test.cc b/net/quic/core/quic_server_session_base_test.cc
index e91fa77..3bbca7b 100644
--- a/net/quic/core/quic_server_session_base_test.cc
+++ b/net/quic/core/quic_server_session_base_test.cc
@@ -205,8 +205,14 @@
   QuicRstStreamFrame rst1(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                           QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
 
@@ -223,8 +229,14 @@
   QuicRstStreamFrame rst1(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                           QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
 
@@ -252,8 +264,14 @@
   QuicRstStreamFrame rst(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                          QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst);
 
   // If we were tracking, we'd probably want to reject this because it's data
@@ -302,7 +320,12 @@
   // Now violate the server's internal stream limit.
   stream_id += QuicSpdySessionPeer::NextStreamId(*session_);
   EXPECT_CALL(*connection_, CloseConnection(_, _, _)).Times(0);
-  EXPECT_CALL(*connection_, SendRstStream(stream_id, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream_id, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream_id, QUIC_REFUSED_STREAM, 0));
+  }
   // Even if the connection remains open, the stream creation should fail.
   EXPECT_FALSE(QuicServerSessionBasePeer::GetOrCreateDynamicStream(
       session_.get(), stream_id));
diff --git a/net/quic/core/quic_session.cc b/net/quic/core/quic_session.cc
index 4fe9d40..dfe4569f 100644
--- a/net/quic/core/quic_session.cc
+++ b/net/quic/core/quic_session.cc
@@ -46,7 +46,8 @@
       num_draining_incoming_streams_(0),
       num_locally_closed_incoming_streams_highest_offset_(0),
       error_(QUIC_NO_ERROR),
-      flow_controller_(connection_,
+      flow_controller_(this,
+                       connection_,
                        kConnectionLevelId,
                        perspective(),
                        kMinimumFlowControlSendWindow,
@@ -56,6 +57,7 @@
       currently_writing_stream_id_(0),
       goaway_sent_(false),
       goaway_received_(false),
+      control_frame_manager_(this),
       can_use_slices_(GetQuicReloadableFlag(quic_use_mem_slices)),
       allow_multiple_acks_for_data_(
           GetQuicReloadableFlag(quic_allow_multiple_acks_for_data2)),
@@ -64,6 +66,9 @@
   if (allow_multiple_acks_for_data_) {
     QUIC_FLAG_COUNT(quic_reloadable_flag_quic_allow_multiple_acks_for_data2);
   }
+  if (use_control_frame_manager()) {
+    QUIC_FLAG_COUNT(quic_reloadable_flag_quic_use_control_frame_manager);
+  }
 }
 
 void QuicSession::Initialize() {
@@ -271,7 +276,7 @@
 }
 
 void QuicSession::OnCanWrite() {
-  if (!RetransmitLostStreamData()) {
+  if (!RetransmitLostData()) {
     // Cannot finish retransmitting lost data, connection is write blocked.
     return;
   }
@@ -293,12 +298,16 @@
       num_writes += 1;
     }
   }
-  if (num_writes == 0) {
+  if (num_writes == 0 && (!use_control_frame_manager() ||
+                          !control_frame_manager_.WillingToWrite())) {
     return;
   }
 
   QuicConnection::ScopedPacketFlusher flusher(
       connection_, QuicConnection::SEND_ACK_IF_QUEUED);
+  if (use_control_frame_manager() && control_frame_manager_.WillingToWrite()) {
+    control_frame_manager_.OnCanWrite();
+  }
   for (size_t i = 0; i < num_writes; ++i) {
     if (!(write_blocked_streams_.HasWriteBlockedCryptoOrHeadersStream() ||
           write_blocked_streams_.HasWriteBlockedDataStreams())) {
@@ -331,11 +340,14 @@
 
 bool QuicSession::WillingAndAbleToWrite() const {
   // Schedule a write when:
-  // 1) any stream has pending retransmissions, or
-  // 2) If the crypto or headers streams are blocked, or
-  // 3) connection is not flow control blocked and there are write blocked
+  // 1) control frame manager has pending or new control frames, or
+  // 2) any stream has pending retransmissions, or
+  // 3) If the crypto or headers streams are blocked, or
+  // 4) connection is not flow control blocked and there are write blocked
   // streams.
-  return !streams_with_pending_retransmission_.empty() ||
+  return (use_control_frame_manager() &&
+          control_frame_manager_.WillingToWrite()) ||
+         !streams_with_pending_retransmission_.empty() ||
          write_blocked_streams_.HasWriteBlockedCryptoOrHeadersStream() ||
          (!flow_controller_.IsBlocked() &&
           write_blocked_streams_.HasWriteBlockedDataStreams());
@@ -390,6 +402,11 @@
   return data;
 }
 
+bool QuicSession::WriteControlFrame(const QuicFrame& frame) {
+  DCHECK(use_control_frame_manager());
+  return connection_->SendControlFrame(frame);
+}
+
 void QuicSession::SendRstStream(QuicStreamId id,
                                 QuicRstStreamErrorCode error,
                                 QuicStreamOffset bytes_written) {
@@ -400,7 +417,12 @@
 
   if (connection()->connected()) {
     // Only send a RST_STREAM frame if still connected.
-    connection_->SendRstStream(id, error, bytes_written);
+    if (use_control_frame_manager()) {
+      control_frame_manager_.WriteOrBufferRstStream(id, error, bytes_written);
+      connection_->OnStreamReset(id, error);
+    } else {
+      connection_->SendRstStream(id, error, bytes_written);
+    }
   }
   CloseStreamInner(id, true);
 }
@@ -410,8 +432,24 @@
     return;
   }
   goaway_sent_ = true;
+  if (use_control_frame_manager()) {
+    control_frame_manager_.WriteOrBufferGoAway(
+        error_code, largest_peer_created_stream_id_, reason);
+  } else {
+    connection_->SendGoAway(error_code, largest_peer_created_stream_id_,
+                            reason);
+  }
+}
 
-  connection_->SendGoAway(error_code, largest_peer_created_stream_id_, reason);
+void QuicSession::SendBlocked(QuicStreamId id) {
+  DCHECK(use_control_frame_manager());
+  control_frame_manager_.WriteOrBufferBlocked(id);
+}
+
+void QuicSession::SendWindowUpdate(QuicStreamId id,
+                                   QuicStreamOffset byte_offset) {
+  DCHECK(use_control_frame_manager());
+  control_frame_manager_.WriteOrBufferWindowUpdate(id, byte_offset);
 }
 
 void QuicSession::CloseStream(QuicStreamId stream_id) {
@@ -897,7 +935,10 @@
 bool QuicSession::HasDataToWrite() const {
   return write_blocked_streams_.HasWriteBlockedCryptoOrHeadersStream() ||
          write_blocked_streams_.HasWriteBlockedDataStreams() ||
-         connection_->HasQueuedData();
+         connection_->HasQueuedData() ||
+         !streams_with_pending_retransmission_.empty() ||
+         (use_control_frame_manager() &&
+          control_frame_manager_.WillingToWrite());
 }
 
 void QuicSession::PostProcessAfterData() {
@@ -906,6 +947,14 @@
 
 void QuicSession::OnAckNeedsRetransmittableFrame() {
   flow_controller_.SendWindowUpdate();
+  if (use_control_frame_manager() && !control_frame_manager_.WillingToWrite()) {
+    SendPing();
+  }
+}
+
+void QuicSession::SendPing() {
+  DCHECK(use_control_frame_manager());
+  control_frame_manager_.WritePing();
 }
 
 size_t QuicSession::GetNumDynamicOutgoingStreams() const {
@@ -979,21 +1028,26 @@
   return nullptr;
 }
 
-void QuicSession::OnFrameAcked(const QuicFrame& frame,
+bool QuicSession::OnFrameAcked(const QuicFrame& frame,
                                QuicTime::Delta ack_delay_time) {
   if (frame.type != STREAM_FRAME) {
-    return;
+    if (use_control_frame_manager()) {
+      return control_frame_manager_.OnControlFrameAcked(frame);
+    }
+    return false;
   }
+  bool new_stream_data_acked = false;
   QuicStream* stream = GetStream(frame.stream_frame->stream_id);
   // Stream can already be reset when sent frame gets acked.
   if (stream != nullptr) {
-    stream->OnStreamFrameAcked(frame.stream_frame->offset,
-                               frame.stream_frame->data_length,
-                               frame.stream_frame->fin, ack_delay_time);
+    new_stream_data_acked = stream->OnStreamFrameAcked(
+        frame.stream_frame->offset, frame.stream_frame->data_length,
+        frame.stream_frame->fin, ack_delay_time);
     if (!stream->HasPendingRetransmission()) {
       streams_with_pending_retransmission_.erase(stream->id());
     }
   }
+  return new_stream_data_acked;
 }
 
 void QuicSession::OnStreamFrameRetransmitted(const QuicStreamFrame& frame) {
@@ -1012,6 +1066,9 @@
 
 void QuicSession::OnFrameLost(const QuicFrame& frame) {
   if (frame.type != STREAM_FRAME) {
+    if (use_control_frame_manager()) {
+      control_frame_manager_.OnControlFrameLost(frame);
+    }
     return;
   }
   QuicStream* stream = GetStream(frame.stream_frame->stream_id);
@@ -1047,9 +1104,16 @@
   return kStatelessResetToken;
 }
 
-bool QuicSession::RetransmitLostStreamData() {
+bool QuicSession::RetransmitLostData() {
   QuicConnection::ScopedPacketFlusher retransmission_flusher(
       connection_, QuicConnection::SEND_ACK_IF_QUEUED);
+  if (use_control_frame_manager() &&
+      control_frame_manager_.HasPendingRetransmission()) {
+    control_frame_manager_.OnCanWrite();
+    if (control_frame_manager_.HasPendingRetransmission()) {
+      return false;
+    }
+  }
   while (!streams_with_pending_retransmission_.empty()) {
     if (!connection_->CanWriteStreamData()) {
       break;
@@ -1091,4 +1155,8 @@
   connection_->NeuterUnencryptedPackets();
 }
 
+bool QuicSession::use_control_frame_manager() const {
+  return connection_->use_control_frame_manager();
+}
+
 }  // namespace net
diff --git a/net/quic/core/quic_session.h b/net/quic/core/quic_session.h
index abd3a1ab..ddd8cfc 100644
--- a/net/quic/core/quic_session.h
+++ b/net/quic/core/quic_session.h
@@ -17,6 +17,7 @@
 #include "base/macros.h"
 #include "net/base/int128.h"
 #include "net/quic/core/quic_connection.h"
+#include "net/quic/core/quic_control_frame_manager.h"
 #include "net/quic/core/quic_crypto_stream.h"
 #include "net/quic/core/quic_packet_creator.h"
 #include "net/quic/core/quic_packets.h"
@@ -110,6 +111,7 @@
   void PostProcessAfterData() override;
   // Adds a connection level WINDOW_UPDATE frame.
   void OnAckNeedsRetransmittableFrame() override;
+  void SendPing() override;
   bool WillingAndAbleToWrite() const override;
   bool HasPendingHandshake() const override;
   bool HasOpenDynamicStreams() const override;
@@ -123,7 +125,7 @@
                        QuicDataWriter* writer) override;
 
   // SessionNotifierInterface methods:
-  void OnFrameAcked(const QuicFrame& frame,
+  bool OnFrameAcked(const QuicFrame& frame,
                     QuicTime::Delta ack_delay_time) override;
   void OnStreamFrameRetransmitted(const QuicStreamFrame& frame) override;
   void OnFrameLost(const QuicFrame& frame) override;
@@ -144,6 +146,10 @@
                                       QuicStreamOffset offset,
                                       StreamSendingState state);
 
+  // Called by control frame manager when it wants to write control frames to
+  // the peer. Returns true if |frame| is consumed, false otherwise.
+  virtual bool WriteControlFrame(const QuicFrame& frame);
+
   // Called by streams when they want to close the stream in both directions.
   virtual void SendRstStream(QuicStreamId id,
                              QuicRstStreamErrorCode error,
@@ -152,6 +158,12 @@
   // Called when the session wants to go away and not accept any new streams.
   void SendGoAway(QuicErrorCode error_code, const std::string& reason);
 
+  // Sends a BLOCKED frame.
+  virtual void SendBlocked(QuicStreamId id);
+
+  // Sends a WINDOW_UPDATE frame.
+  virtual void SendWindowUpdate(QuicStreamId id, QuicStreamOffset byte_offset);
+
   // Removes the stream associated with 'stream_id' from the active stream map.
   virtual void CloseStream(QuicStreamId stream_id);
 
@@ -289,6 +301,8 @@
 
   bool session_unblocks_stream() const { return session_unblocks_stream_; }
 
+  bool use_control_frame_manager() const;
+
  protected:
   using StaticStreamMap = QuicSmallMap<QuicStreamId, QuicStream*, 2>;
 
@@ -407,6 +421,10 @@
   // packet.
   virtual uint128 GetStatelessResetToken() const;
 
+  QuicControlFrameManager& control_frame_manager() {
+    return control_frame_manager_;
+  }
+
  private:
   friend class test::QuicSessionPeer;
 
@@ -432,9 +450,9 @@
   // closed.
   QuicStream* GetStream(QuicStreamId id) const;
 
-  // Let streams retransmit lost data, returns true if all lost data is
-  // retransmitted. Returns false otherwise.
-  bool RetransmitLostStreamData();
+  // Let streams and control frame managers retransmit lost data, returns true
+  // if all lost data is retransmitted. Returns false otherwise.
+  bool RetransmitLostData();
 
   // Keep track of highest received byte offset of locally closed streams, while
   // waiting for a definitive final highest offset from the peer.
@@ -510,6 +528,8 @@
   // Whether a GoAway has been received.
   bool goaway_received_;
 
+  QuicControlFrameManager control_frame_manager_;
+
   // QUIC stream can take ownership of application data provided in reference
   // counted memory to avoid data copy.
   const bool can_use_slices_;
diff --git a/net/quic/core/quic_session_test.cc b/net/quic/core/quic_session_test.cc
index 8a76566..af0e734 100644
--- a/net/quic/core/quic_session_test.cc
+++ b/net/quic/core/quic_session_test.cc
@@ -229,6 +229,11 @@
     return consumed;
   }
 
+  bool ClearControlFrame(const QuicFrame& frame) {
+    DeleteFrame(&const_cast<QuicFrame&>(frame));
+    return true;
+  }
+
   QuicConsumedData SendLargeFakeData(QuicStream* stream, int bytes) {
     DCHECK(writev_consumes_all_data_);
     return WritevData(stream, stream->id(), bytes, 0, FIN);
@@ -299,7 +304,13 @@
   }
 
   void CloseStream(QuicStreamId id) {
-    EXPECT_CALL(*connection_, SendRstStream(id, _, _));
+    if (session_.use_control_frame_manager()) {
+      EXPECT_CALL(*connection_, SendControlFrame(_))
+          .WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
+      EXPECT_CALL(*connection_, OnStreamReset(id, _));
+    } else {
+      EXPECT_CALL(*connection_, SendRstStream(id, _, _));
+    }
     session_.CloseStream(id);
     closed_streams_.insert(id);
   }
@@ -434,7 +445,12 @@
   TestStream* stream2 = session_.CreateOutgoingDynamicStream();
   QuicStreamId closed_stream_id = stream2->id();
   // Close the stream.
-  EXPECT_CALL(*connection_, SendRstStream(closed_stream_id, _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(closed_stream_id, _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(closed_stream_id, _, _));
+  }
   stream2->Reset(QUIC_BAD_APPLICATION_PAYLOAD);
   string msg =
       QuicStrCat("Marking unknown stream ", closed_stream_id, " blocked.");
@@ -753,6 +769,10 @@
   CloseStream(stream6->id());
 
   InSequence s;
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillRepeatedly(Invoke(&session_, &TestSession::ClearControlFrame));
+  }
   EXPECT_CALL(*stream2, OnCanWrite())
       .WillOnce(testing::IgnoreResult(
           Invoke(CreateFunctor(&TestSession::SendStreamData,
@@ -810,22 +830,41 @@
       QuicConnectionPeer::GetWriter(session_.connection()));
   EXPECT_CALL(*writer, WritePacket(_, _, _, _, _))
       .WillOnce(Return(WriteResult(WRITE_STATUS_OK, 0)));
-  EXPECT_CALL(*connection_, SendGoAway(_, _, _))
-      .WillOnce(Invoke(connection_, &MockQuicConnection::ReallySendGoAway));
+
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(
+            Invoke(connection_, &MockQuicConnection::ReallySendControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendGoAway(_, _, _))
+        .WillOnce(Invoke(connection_, &MockQuicConnection::ReallySendGoAway));
+  }
   session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away.");
   EXPECT_TRUE(session_.goaway_sent());
 
   const QuicStreamId kTestStreamId = 5u;
-  EXPECT_CALL(*connection_,
-              SendRstStream(kTestStreamId, QUIC_STREAM_PEER_GOING_AWAY, 0))
-      .Times(0);
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(0);
+    EXPECT_CALL(*connection_,
+                OnStreamReset(kTestStreamId, QUIC_STREAM_PEER_GOING_AWAY))
+        .Times(0);
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(kTestStreamId, QUIC_STREAM_PEER_GOING_AWAY, 0))
+        .Times(0);
+  }
   EXPECT_TRUE(session_.GetOrCreateDynamicStream(kTestStreamId));
 }
 
 TEST_P(QuicSessionTestServer, DoNotSendGoAwayTwice) {
-  EXPECT_CALL(*connection_,
-              SendGoAway(QUIC_PEER_GOING_AWAY, kHeadersStreamId, "Going Away."))
-      .Times(1);
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendGoAway(QUIC_PEER_GOING_AWAY, kHeadersStreamId,
+                                         "Going Away."))
+        .Times(1);
+  }
   session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away.");
   EXPECT_TRUE(session_.goaway_sent());
   session_.SendGoAway(QUIC_PEER_GOING_AWAY, "Going Away.");
@@ -886,7 +925,12 @@
   session_.OnStreamFrame(data1);
   EXPECT_EQ(1u, session_.GetNumOpenIncomingStreams());
 
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0), _, _));
+  }
   QuicRstStreamFrame rst1(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                           QUIC_ERROR_PROCESSING_STREAM, 0);
   session_.OnRstStream(rst1);
@@ -951,8 +995,12 @@
   EXPECT_FALSE(stream2->flow_controller()->IsBlocked());
   EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
   EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
-  EXPECT_CALL(*connection_, SendBlocked(_)).Times(AtLeast(1));
-  EXPECT_CALL(*connection_, SendBlocked(0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(AtLeast(1));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(_)).Times(AtLeast(1));
+    EXPECT_CALL(*connection_, SendBlocked(0));
+  }
   stream2->WriteOrBufferBody(body, false, nullptr);
   EXPECT_TRUE(stream2->flow_controller()->IsBlocked());
   EXPECT_TRUE(session_.IsConnectionFlowControlBlocked());
@@ -985,8 +1033,13 @@
   EXPECT_FALSE(headers_stream->flow_controller()->IsBlocked());
   EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
   EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
-  // Write until the crypto stream is flow control blocked.
-  EXPECT_CALL(*connection_, SendBlocked(kCryptoStreamId));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
+  } else {
+    // Write until the crypto stream is flow control blocked.
+    EXPECT_CALL(*connection_, SendBlocked(kCryptoStreamId));
+  }
   for (QuicStreamId i = 0;
        !crypto_stream->flow_controller()->IsBlocked() && i < 1000u; i++) {
     EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
@@ -1039,7 +1092,12 @@
   EXPECT_FALSE(session_.IsStreamFlowControlBlocked());
   QuicStreamId stream_id = 5;
   // Write until the header stream is flow control blocked.
-  EXPECT_CALL(*connection_, SendBlocked(kHeadersStreamId));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(kHeadersStreamId));
+  }
   SpdyHeaderBlock headers;
   while (!headers_stream->flow_controller()->IsBlocked() && stream_id < 2000) {
     EXPECT_FALSE(session_.IsConnectionFlowControlBlocked());
@@ -1083,14 +1141,21 @@
   const QuicStreamOffset kByteOffset =
       1 + kInitialSessionFlowControlWindowForTest / 2;
 
-  // Expect no stream WINDOW_UPDATE frames, as stream read side closed.
-  EXPECT_CALL(*connection_, SendWindowUpdate(stream->id(), _)).Times(0);
-  // We do expect a connection level WINDOW_UPDATE when the stream is reset.
-  EXPECT_CALL(*connection_,
-              SendWindowUpdate(
-                  0, kInitialSessionFlowControlWindowForTest + kByteOffset));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .Times(2)
+        .WillRepeatedly(Invoke(&session_, &TestSession::ClearControlFrame));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    // Expect no stream WINDOW_UPDATE frames, as stream read side closed.
+    EXPECT_CALL(*connection_, SendWindowUpdate(stream->id(), _)).Times(0);
+    // We do expect a connection level WINDOW_UPDATE when the stream is reset.
+    EXPECT_CALL(*connection_,
+                SendWindowUpdate(
+                    0, kInitialSessionFlowControlWindowForTest + kByteOffset));
 
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   QuicRstStreamFrame rst_frame(kInvalidControlFrameId, stream->id(),
                                QUIC_STREAM_CANCELLED, kByteOffset);
   session_.OnRstStream(rst_frame);
@@ -1118,7 +1183,12 @@
             stream->flow_controller()->highest_received_byte_offset());
 
   // Reset stream locally.
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   stream->Reset(QUIC_STREAM_CANCELLED);
   EXPECT_EQ(kByteOffset + frame.data_length,
             session_.flow_controller()->bytes_consumed());
@@ -1141,7 +1211,12 @@
 
   // Reset our stream: this results in the stream being closed locally.
   TestStream* stream = session_.CreateOutgoingDynamicStream();
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   stream->Reset(QUIC_STREAM_CANCELLED);
 
   // Now receive a response from the peer with a FIN. We should handle this by
@@ -1178,7 +1253,12 @@
 
   // Reset our stream: this results in the stream being closed locally.
   TestStream* stream = session_.CreateOutgoingDynamicStream();
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   stream->Reset(QUIC_STREAM_CANCELLED);
   EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream));
 
@@ -1241,7 +1321,12 @@
 
   // Check that stream frame + FIN results in connection close.
   TestStream* stream = session_.CreateOutgoingDynamicStream();
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   stream->Reset(QUIC_STREAM_CANCELLED);
   QuicStreamFrame frame(stream->id(), true, kLargeOffset, QuicStringPiece());
   session_.OnStreamFrame(frame);
@@ -1289,13 +1374,26 @@
     QuicStreamFrame data1(i, false, 0, QuicStringPiece("HT"));
     session_.OnStreamFrame(data1);
     // EXPECT_EQ(1u, session_.GetNumOpenStreams());
-    EXPECT_CALL(*connection_, SendRstStream(i, _, _));
+    if (session_.use_control_frame_manager()) {
+      EXPECT_CALL(*connection_, SendControlFrame(_))
+          .WillOnce(Invoke(&session_, &TestSession::ClearControlFrame));
+      EXPECT_CALL(*connection_, OnStreamReset(i, _));
+    } else {
+      EXPECT_CALL(*connection_, SendRstStream(i, _, _));
+    }
     session_.CloseStream(i);
   }
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(kFinalStreamId, QUIC_REFUSED_STREAM, _))
-      .Times(1);
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+    EXPECT_CALL(*connection_,
+                OnStreamReset(kFinalStreamId, QUIC_REFUSED_STREAM))
+        .Times(1);
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(kFinalStreamId, QUIC_REFUSED_STREAM, _))
+        .Times(1);
+  }
   // Create one more data streams to exceed limit of open stream.
   QuicStreamFrame data1(kFinalStreamId, false, 0, QuicStringPiece("HT"));
   session_.OnStreamFrame(data1);
@@ -1309,7 +1407,13 @@
   // Verify that a draining stream (which has received a FIN but not consumed
   // it) does not count against the open quota (because it is closed from the
   // protocol point of view).
-  EXPECT_CALL(*connection_, SendRstStream(_, QUIC_REFUSED_STREAM, _)).Times(0);
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(0);
+    EXPECT_CALL(*connection_, OnStreamReset(_, QUIC_REFUSED_STREAM)).Times(0);
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(_, QUIC_REFUSED_STREAM, _))
+        .Times(0);
+  }
   const QuicStreamId kMaxStreams = 5;
   QuicSessionPeer::SetMaxOpenIncomingStreams(&session_, kMaxStreams);
 
@@ -1382,7 +1486,12 @@
   EXPECT_TRUE(stream->fin_received());
 
   // Reset stream locally.
-  EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream->id(), _, _));
+  }
   stream->Reset(QUIC_STREAM_CANCELLED);
   EXPECT_TRUE(QuicStreamPeer::read_side_closed(stream));
 
@@ -1426,7 +1535,12 @@
   QuicStreamPeer::SetStreamBytesWritten(3, stream2);
   EXPECT_TRUE(stream2->IsWaitingForAcks());
 
-  EXPECT_CALL(*connection_, SendRstStream(2, _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(2, _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(2, _, _));
+  }
   session_.CloseStream(2);
   EXPECT_TRUE(QuicContainsKey(session_.zombie_streams(), 2));
   EXPECT_TRUE(session_.closed_streams()->empty());
@@ -1521,7 +1635,12 @@
   session_.MarkConnectionLevelWriteBlocked(stream6->id());
 
   // Reset stream 4 locally.
-  EXPECT_CALL(*connection_, SendRstStream(stream4->id(), _, _));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(stream4->id(), _));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(stream4->id(), _, _));
+  }
   stream4->Reset(QUIC_STREAM_CANCELLED);
 
   // Verify stream 4 is removed from streams with lost data list.
@@ -1529,6 +1648,10 @@
   EXPECT_CALL(*stream6, HasPendingRetransmission()).WillOnce(Return(false));
   EXPECT_CALL(*stream2, OnCanWrite());
   EXPECT_CALL(*stream2, HasPendingRetransmission()).WillOnce(Return(false));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillRepeatedly(Invoke(&session_, &TestSession::ClearControlFrame));
+  }
   EXPECT_CALL(*stream2, OnCanWrite());
   EXPECT_CALL(*stream6, OnCanWrite());
   session_.OnCanWrite();
diff --git a/net/quic/core/quic_spdy_stream_test.cc b/net/quic/core/quic_spdy_stream_test.cc
index 3e2c4cb7..fce8758f 100644
--- a/net/quic/core/quic_spdy_stream_test.cc
+++ b/net/quic/core/quic_spdy_stream_test.cc
@@ -414,7 +414,11 @@
   const uint64_t kOverflow = 15;
   string body(kWindow + kOverflow, 'a');
 
-  EXPECT_CALL(*connection_, SendBlocked(GetNthClientInitiatedId(0)));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(GetNthClientInitiatedId(0)));
+  }
   EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
       .WillOnce(Return(QuicConsumedData(kWindow, true)));
   stream_->WriteOrBufferData(body, false, nullptr);
@@ -501,11 +505,15 @@
   // window of kWindow bytes.
   QuicStreamFrame frame2(GetNthClientInitiatedId(0), false, kWindow / 3,
                          QuicStringPiece(body));
-  EXPECT_CALL(*connection_,
-              SendWindowUpdate(GetNthClientInitiatedId(0),
-                               QuicFlowControllerPeer::ReceiveWindowOffset(
-                                   stream_->flow_controller()) +
-                                   2 * kWindow / 3));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendWindowUpdate(GetNthClientInitiatedId(0),
+                                 QuicFlowControllerPeer::ReceiveWindowOffset(
+                                     stream_->flow_controller()) +
+                                     2 * kWindow / 3));
+  }
   stream_->OnStreamFrame(frame2);
   EXPECT_EQ(kWindow, QuicFlowControllerPeer::ReceiveWindowSize(
                          stream_->flow_controller()));
@@ -554,14 +562,18 @@
   // Now receive a further single byte on one stream - again this does not
   // trigger a stream WINDOW_UPDATE, but now the connection flow control window
   // is over half full and thus a connection WINDOW_UPDATE is sent.
-  EXPECT_CALL(*connection_, SendWindowUpdate(GetNthClientInitiatedId(0), _))
-      .Times(0);
-  EXPECT_CALL(*connection_, SendWindowUpdate(GetNthClientInitiatedId(1), _))
-      .Times(0);
-  EXPECT_CALL(*connection_,
-              SendWindowUpdate(0, QuicFlowControllerPeer::ReceiveWindowOffset(
-                                      session_->flow_controller()) +
-                                      1 + kWindow / 2));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(GetNthClientInitiatedId(0), _))
+        .Times(0);
+    EXPECT_CALL(*connection_, SendWindowUpdate(GetNthClientInitiatedId(1), _))
+        .Times(0);
+    EXPECT_CALL(*connection_,
+                SendWindowUpdate(0, QuicFlowControllerPeer::ReceiveWindowOffset(
+                                        session_->flow_controller()) +
+                                        1 + kWindow / 2));
+  }
   QuicStreamFrame frame3(GetNthClientInitiatedId(0), false, (kWindow / 4),
                          QuicStringPiece("a"));
   stream_->OnStreamFrame(frame3);
@@ -992,13 +1004,17 @@
   session_->OnStreamFrameRetransmitted(frame1);
 
   EXPECT_CALL(*ack_listener1, OnPacketAcked(7, _));
-  session_->OnFrameAcked(QuicFrame(&frame1), QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      session_->OnFrameAcked(QuicFrame(&frame1), QuicTime::Delta::Zero()));
   EXPECT_CALL(*ack_listener1, OnPacketAcked(5, _));
-  session_->OnFrameAcked(QuicFrame(&frame2), QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      session_->OnFrameAcked(QuicFrame(&frame2), QuicTime::Delta::Zero()));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(7, _));
-  session_->OnFrameAcked(QuicFrame(&frame3), QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      session_->OnFrameAcked(QuicFrame(&frame3), QuicTime::Delta::Zero()));
   EXPECT_CALL(*ack_listener2, OnPacketAcked(5, _));
-  session_->OnFrameAcked(QuicFrame(&frame4), QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      session_->OnFrameAcked(QuicFrame(&frame4), QuicTime::Delta::Zero()));
 }
 
 TEST_P(QuicSpdyStreamTest, StreamBecomesZombieWithWriteThatCloses) {
diff --git a/net/quic/core/quic_stream.cc b/net/quic/core/quic_stream.cc
index 8d1771a..0d3f38f 100644
--- a/net/quic/core/quic_stream.cc
+++ b/net/quic/core/quic_stream.cc
@@ -58,7 +58,8 @@
       rst_sent_(false),
       rst_received_(false),
       perspective_(session_->perspective()),
-      flow_controller_(session_->connection(),
+      flow_controller_(session_,
+                       session_->connection(),
                        id_,
                        perspective_,
                        GetReceivedFlowControlWindow(session),
@@ -572,7 +573,7 @@
   add_random_padding_after_fin_ = true;
 }
 
-void QuicStream::OnStreamFrameAcked(QuicStreamOffset offset,
+bool QuicStream::OnStreamFrameAcked(QuicStreamOffset offset,
                                     QuicByteCount data_length,
                                     bool fin_acked,
                                     QuicTime::Delta ack_delay_time) {
@@ -581,12 +582,12 @@
                                       &newly_acked_length)) {
     CloseConnectionWithDetails(QUIC_INTERNAL_ERROR,
                                "Trying to ack unsent data.");
-    return;
+    return false;
   }
   if (!fin_sent_ && fin_acked) {
     CloseConnectionWithDetails(QUIC_INTERNAL_ERROR,
                                "Trying to ack unsent fin.");
-    return;
+    return false;
   }
   // Indicates whether ack listener's OnPacketAcked should be called.
   const bool new_data_acked = !session()->allow_multiple_acks_for_data() ||
@@ -602,6 +603,7 @@
   if (ack_listener_ != nullptr && new_data_acked) {
     ack_listener_->OnPacketAcked(newly_acked_length, ack_delay_time);
   }
+  return new_data_acked;
 }
 
 void QuicStream::OnStreamFrameRetransmitted(QuicStreamOffset offset,
diff --git a/net/quic/core/quic_stream.h b/net/quic/core/quic_stream.h
index 52bd18f7..d2d8cd8 100644
--- a/net/quic/core/quic_stream.h
+++ b/net/quic/core/quic_stream.h
@@ -203,8 +203,9 @@
                        QuicDataWriter* writer);
 
   // Called when data [offset, offset + data_length) is acked. |fin_acked|
-  // indicates whether the fin is acked.
-  virtual void OnStreamFrameAcked(QuicStreamOffset offset,
+  // indicates whether the fin is acked. Returns true if any new stream data
+  // (including fin) gets acked.
+  virtual bool OnStreamFrameAcked(QuicStreamOffset offset,
                                   QuicByteCount data_length,
                                   bool fin_acked,
                                   QuicTime::Delta ack_delay_time);
diff --git a/net/quic/core/quic_stream_test.cc b/net/quic/core/quic_stream_test.cc
index 73bac878..55f15a7 100644
--- a/net/quic/core/quic_stream_test.cc
+++ b/net/quic/core/quic_stream_test.cc
@@ -146,6 +146,11 @@
     return QuicConsumedData(1, false);
   }
 
+  bool ClearControlFrame(const QuicFrame& frame) {
+    DeleteFrame(&const_cast<QuicFrame&>(frame));
+    return true;
+  }
+
  protected:
   MockQuicConnectionHelper helper_;
   MockAlarmFactory alarm_factory_;
@@ -444,7 +449,13 @@
   EXPECT_CALL(*connection_,
               CloseConnection(QUIC_FLOW_CONTROL_RECEIVED_TOO_MUCH_DATA, _, _))
       .Times(0);
-  EXPECT_CALL(*connection_, SendWindowUpdate(_, _)).Times(AtLeast(1));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .Times(AtLeast(1))
+        .WillRepeatedly(Invoke(this, &QuicStreamTest::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendWindowUpdate(_, _)).Times(AtLeast(1));
+  }
 
   string data(1000, 'x');
   for (QuicStreamOffset offset = 0;
@@ -676,7 +687,8 @@
   EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_TRUE(stream_->IsWaitingForAcks());
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _));
-  stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero()));
   // Stream is not waiting for acks as all sent data is acked.
   EXPECT_FALSE(stream_->IsWaitingForAcks());
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
@@ -696,14 +708,16 @@
 
   // kData2 is acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _));
-  stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero()));
   // Stream is waiting for acks as FIN is not acked.
   EXPECT_TRUE(stream_->IsWaitingForAcks());
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
 
   // FIN is acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(0, _));
-  stream_->OnStreamFrameAcked(18, 0, true, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(18, 0, true, QuicTime::Delta::Zero()));
   EXPECT_FALSE(stream_->IsWaitingForAcks());
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
 }
@@ -720,15 +734,19 @@
   EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_TRUE(stream_->IsWaitingForAcks());
 
-  stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
-  stream_->OnStreamFrameAcked(18, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(18, 9, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(3u, QuicStreamPeer::SendBuffer(stream_).size());
-  stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
   // FIN is not acked yet.
   EXPECT_TRUE(stream_->IsWaitingForAcks());
-  stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero()));
   EXPECT_FALSE(stream_->IsWaitingForAcks());
 }
 
@@ -1044,35 +1062,41 @@
   // Ack [0, 9), [5, 22) and [18, 26)
   // Verify [0, 9) 9 bytes are acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(9, _));
-  stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(0, 9, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(2u, QuicStreamPeer::SendBuffer(stream_).size());
   // Verify [9, 22) 13 bytes are acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(13, _));
-  stream_->OnStreamFrameAcked(5, 17, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(5, 17, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
   // Verify [22, 26) 4 bytes are acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(4, _));
-  stream_->OnStreamFrameAcked(18, 8, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(18, 8, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(1u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_TRUE(stream_->IsWaitingForAcks());
 
   // Ack [0, 27).
   // Verify [26, 27) 1 byte is acked.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(1, _));
-  stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(26, 1, false, QuicTime::Delta::Zero()));
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_TRUE(stream_->IsWaitingForAcks());
 
   // Ack Fin. Verify OnPacketAcked is called.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(0, _));
-  stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(27, 0, true, QuicTime::Delta::Zero()));
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_FALSE(stream_->IsWaitingForAcks());
 
   // Ack [10, 27) and fin.
   // No new data is acked, verify OnPacketAcked is not called.
   EXPECT_CALL(*mock_ack_listener, OnPacketAcked(_, _)).Times(0);
-  stream_->OnStreamFrameAcked(10, 17, true, QuicTime::Delta::Zero());
+  EXPECT_FALSE(
+      stream_->OnStreamFrameAcked(10, 17, true, QuicTime::Delta::Zero()));
   EXPECT_EQ(0u, QuicStreamPeer::SendBuffer(stream_).size());
   EXPECT_FALSE(stream_->IsWaitingForAcks());
 }
@@ -1124,7 +1148,8 @@
   EXPECT_TRUE(stream_->HasPendingRetransmission());
 
   // Ack [9, 18).
-  stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero());
+  EXPECT_TRUE(
+      stream_->OnStreamFrameAcked(9, 9, false, QuicTime::Delta::Zero()));
   EXPECT_TRUE(stream_->HasPendingRetransmission());
   // This OnCanWrite causes [18, 27) and fin to be retransmitted. Verify fin can
   // be bundled with data.
@@ -1172,7 +1197,12 @@
 
   EXPECT_CALL(*session_, WritevData(_, _, _, _, _))
       .WillRepeatedly(Invoke(MockQuicSession::ConsumeData));
-  EXPECT_CALL(*connection_, SendBlocked(stream_->id()));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(Invoke(this, &QuicStreamTest::ClearControlFrame));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(stream_->id()));
+  }
   string data(1024, '.');
   stream_->WriteOrBufferData(data, false, nullptr);
   EXPECT_FALSE(HasWriteBlockedStreams());
diff --git a/net/quic/core/quic_unacked_packet_map.cc b/net/quic/core/quic_unacked_packet_map.cc
index a8ded035..ac022ec 100644
--- a/net/quic/core/quic_unacked_packet_map.cc
+++ b/net/quic/core/quic_unacked_packet_map.cc
@@ -333,15 +333,18 @@
   session_notifier_ = session_notifier;
 }
 
-void QuicUnackedPacketMap::NotifyFramesAcked(const QuicTransmissionInfo& info,
+bool QuicUnackedPacketMap::NotifyFramesAcked(const QuicTransmissionInfo& info,
                                              QuicTime::Delta ack_delay) {
   if (session_notifier_ == nullptr) {
-    return;
+    return false;
   }
-
+  bool new_data_acked = false;
   for (const QuicFrame& frame : info.retransmittable_frames) {
-    session_notifier_->OnFrameAcked(frame, ack_delay);
+    if (session_notifier_->OnFrameAcked(frame, ack_delay)) {
+      new_data_acked = true;
+    }
   }
+  return new_data_acked;
 }
 
 }  // namespace net
diff --git a/net/quic/core/quic_unacked_packet_map.h b/net/quic/core/quic_unacked_packet_map.h
index 98dc178..01b5777e 100644
--- a/net/quic/core/quic_unacked_packet_map.h
+++ b/net/quic/core/quic_unacked_packet_map.h
@@ -42,8 +42,9 @@
   // Returns true if the packet |packet_number| is unacked.
   bool IsUnacked(QuicPacketNumber packet_number) const;
 
-  // Notifies session_notifier that frames have been acked.
-  void NotifyFramesAcked(const QuicTransmissionInfo& info,
+  // Notifies session_notifier that frames have been acked. Returns true if any
+  // new data gets acked, returns false otherwise.
+  bool NotifyFramesAcked(const QuicTransmissionInfo& info,
                          QuicTime::Delta ack_delay);
 
   // Marks |info| as no longer in flight.
diff --git a/net/quic/core/session_notifier_interface.h b/net/quic/core/session_notifier_interface.h
index 9a1e4e3..a13797dd 100644
--- a/net/quic/core/session_notifier_interface.h
+++ b/net/quic/core/session_notifier_interface.h
@@ -16,8 +16,9 @@
  public:
   virtual ~SessionNotifierInterface() {}
 
-  // Called when |frame| is acked.
-  virtual void OnFrameAcked(const QuicFrame& frame,
+  // Called when |frame| is acked. Returns true if any new data gets acked,
+  // returns false otherwise.
+  virtual bool OnFrameAcked(const QuicFrame& frame,
                             QuicTime::Delta ack_delay_time) = 0;
 
   // Called when |frame| is retransmitted.
diff --git a/net/quic/test_tools/quic_test_utils.h b/net/quic/test_tools/quic_test_utils.h
index 375ad0e1..8e1ae17 100644
--- a/net/quic/test_tools/quic_test_utils.h
+++ b/net/quic/test_tools/quic_test_utils.h
@@ -323,6 +323,7 @@
   MOCK_METHOD0(OnConfigNegotiated, void());
   MOCK_METHOD0(PostProcessAfterData, void());
   MOCK_METHOD0(OnAckNeedsRetransmittableFrame, void());
+  MOCK_METHOD0(SendPing, void());
   MOCK_CONST_METHOD0(AllowSelfAddressChange, bool());
 
  private:
@@ -443,6 +444,9 @@
                void(const CachedNetworkParameters&, bool));
   MOCK_METHOD1(SetMaxPacingRate, void(QuicBandwidth));
 
+  MOCK_METHOD2(OnStreamReset, void(QuicStreamId, QuicRstStreamErrorCode));
+  MOCK_METHOD1(SendControlFrame, bool(const QuicFrame& frame));
+
   MOCK_METHOD1(OnError, void(QuicFramer* framer));
   void QuicConnection_OnError(QuicFramer* framer) {
     QuicConnection::OnError(framer);
@@ -456,6 +460,9 @@
 
   bool OnProtocolVersionMismatch(ParsedQuicVersion version) override;
 
+  bool ReallySendControlFrame(const QuicFrame& frame) {
+    return QuicConnection::SendControlFrame(frame);
+  }
   void ReallySendGoAway(QuicErrorCode error,
                         QuicStreamId last_good_stream_id,
                         const std::string& reason) {
@@ -941,7 +948,7 @@
   MockSessionNotifier();
   ~MockSessionNotifier() override;
 
-  MOCK_METHOD2(OnFrameAcked, void(const QuicFrame&, QuicTime::Delta));
+  MOCK_METHOD2(OnFrameAcked, bool(const QuicFrame&, QuicTime::Delta));
   MOCK_METHOD1(OnStreamFrameRetransmitted, void(const QuicStreamFrame&));
   MOCK_METHOD1(OnFrameLost, void(const QuicFrame&));
 };
diff --git a/net/quic/test_tools/simulator/quic_endpoint.h b/net/quic/test_tools/simulator/quic_endpoint.h
index ab903e5d..2710ce7 100644
--- a/net/quic/test_tools/simulator/quic_endpoint.h
+++ b/net/quic/test_tools/simulator/quic_endpoint.h
@@ -94,6 +94,7 @@
   void OnPathDegrading() override {}
   void PostProcessAfterData() override {}
   void OnAckNeedsRetransmittableFrame() override {}
+  void SendPing() override {}
   bool AllowSelfAddressChange() const override;
   // End QuicConnectionVisitorInterface implementation.
 
diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc
index 4bc94e6..6adedd4 100644
--- a/net/socket/client_socket_pool_manager.cc
+++ b/net/socket/client_socket_pool_manager.cc
@@ -10,7 +10,7 @@
 #include "net/http/http_proxy_client_socket_pool.h"
 #include "net/http/http_request_info.h"
 #include "net/http/http_stream_factory.h"
-#include "net/proxy/proxy_info.h"
+#include "net/proxy_resolution/proxy_info.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/client_socket_pool.h"
 #include "net/socket/socks_client_socket_pool.h"
diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
index c584e8e..f7eef53 100644
--- a/net/socket/ssl_client_socket_impl.cc
+++ b/net/socket/ssl_client_socket_impl.cc
@@ -1187,7 +1187,6 @@
   }
 
   RecordNegotiatedProtocol();
-  RecordChannelIDSupport();
 
   const uint8_t* ocsp_response_raw;
   size_t ocsp_response_len;
@@ -2000,30 +1999,6 @@
                             negotiated_protocol_, kProtoLast + 1);
 }
 
-void SSLClientSocketImpl::RecordChannelIDSupport() const {
-  // Since this enum is used for a histogram, do not change or re-use values.
-  enum {
-    DISABLED = 0,
-    CLIENT_ONLY = 1,
-    CLIENT_AND_SERVER = 2,
-    // CLIENT_NO_ECC is unused now.
-    // CLIENT_BAD_SYSTEM_TIME is unused now.
-    CLIENT_BAD_SYSTEM_TIME = 4,
-    CLIENT_NO_CHANNEL_ID_SERVICE = 5,
-    CHANNEL_ID_USAGE_MAX
-  } supported = DISABLED;
-  if (channel_id_sent_) {
-    supported = CLIENT_AND_SERVER;
-  } else if (ssl_config_.channel_id_enabled) {
-    if (!channel_id_service_)
-      supported = CLIENT_NO_CHANNEL_ID_SERVICE;
-    else
-      supported = CLIENT_ONLY;
-  }
-  UMA_HISTOGRAM_ENUMERATION("DomainBoundCerts.Support", supported,
-                            CHANNEL_ID_USAGE_MAX);
-}
-
 bool SSLClientSocketImpl::IsChannelIDEnabled() const {
   return ssl_config_.channel_id_enabled && channel_id_service_;
 }
diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h
index 40b5d97..6d37bf5 100644
--- a/net/socket/ssl_client_socket_impl.h
+++ b/net/socket/ssl_client_socket_impl.h
@@ -233,10 +233,6 @@
   // in a UMA histogram.
   void RecordNegotiatedProtocol() const;
 
-  // Records histograms for channel id support during full handshakes - resumed
-  // handshakes are ignored.
-  void RecordChannelIDSupport() const;
-
   // Returns whether TLS channel ID is enabled.
   bool IsChannelIDEnabled() const;
 
diff --git a/net/socket/ssl_client_socket_pool_unittest.cc b/net/socket/ssl_client_socket_pool_unittest.cc
index 16fa5d9..9896863 100644
--- a/net/socket/ssl_client_socket_pool_unittest.cc
+++ b/net/socket/ssl_client_socket_pool_unittest.cc
@@ -27,7 +27,7 @@
 #include "net/http/transport_security_state.h"
 #include "net/log/net_log_source.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/next_proto.h"
 #include "net/socket/socket_tag.h"
diff --git a/net/spdy/chromium/spdy_network_transaction_unittest.cc b/net/spdy/chromium/spdy_network_transaction_unittest.cc
index 8fbd5ef..0ef486f8 100644
--- a/net/spdy/chromium/spdy_network_transaction_unittest.cc
+++ b/net/spdy/chromium/spdy_network_transaction_unittest.cc
@@ -18,6 +18,7 @@
 #include "net/base/chunked_upload_data_stream.h"
 #include "net/base/elements_upload_data_stream.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/test_proxy_delegate.h"
 #include "net/base/upload_bytes_element_reader.h"
@@ -34,7 +35,6 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/client_socket_pool_base.h"
 #include "net/socket/next_proto.h"
 #include "net/socket/socket_tag.h"
diff --git a/net/spdy/chromium/spdy_session.cc b/net/spdy/chromium/spdy_session.cc
index 682dde8..3fc1782 100644
--- a/net/spdy/chromium/spdy_session.cc
+++ b/net/spdy/chromium/spdy_session.cc
@@ -28,6 +28,7 @@
 #include "crypto/ec_private_key.h"
 #include "crypto/ec_signature_creator.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/cert/asn1_util.h"
 #include "net/cert/cert_verify_result.h"
 #include "net/cert/ct_policy_status.h"
@@ -40,7 +41,6 @@
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_source_type.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_server.h"
 #include "net/quic/chromium/quic_http_utils.h"
 #include "net/socket/socket.h"
 #include "net/socket/ssl_client_socket.h"
diff --git a/net/spdy/chromium/spdy_session_key.h b/net/spdy/chromium/spdy_session_key.h
index cf338b8..fe1e8741 100644
--- a/net/spdy/chromium/spdy_session_key.h
+++ b/net/spdy/chromium/spdy_session_key.h
@@ -7,7 +7,7 @@
 
 #include "net/base/net_export.h"
 #include "net/base/privacy_mode.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
 #include "net/socket/socket_tag.h"
 
 namespace net {
diff --git a/net/spdy/chromium/spdy_session_pool.h b/net/spdy/chromium/spdy_session_pool.h
index 09f3a82..a11ea9e 100644
--- a/net/spdy/chromium/spdy_session_pool.h
+++ b/net/spdy/chromium/spdy_session_pool.h
@@ -21,10 +21,10 @@
 #include "net/base/net_errors.h"
 #include "net/base/net_export.h"
 #include "net/base/network_change_notifier.h"
+#include "net/base/proxy_server.h"
 #include "net/cert/cert_database.h"
 #include "net/http/http_stream_factory_impl_request.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "net/spdy/chromium/http2_push_promise_index.h"
 #include "net/spdy/chromium/server_push_delegate.h"
 #include "net/spdy/chromium/spdy_session_key.h"
diff --git a/net/spdy/chromium/spdy_session_unittest.cc b/net/spdy/chromium/spdy_session_unittest.cc
index c7e2d47..93695dcc 100644
--- a/net/spdy/chromium/spdy_session_unittest.cc
+++ b/net/spdy/chromium/spdy_session_unittest.cc
@@ -18,6 +18,7 @@
 #include "net/base/io_buffer.h"
 #include "net/base/ip_endpoint.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/test_data_stream.h"
 #include "net/base/test_proxy_delegate.h"
@@ -28,7 +29,6 @@
 #include "net/log/test_net_log.h"
 #include "net/log/test_net_log_entry.h"
 #include "net/log/test_net_log_util.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/client_socket_pool_manager.h"
 #include "net/socket/socket_tag.h"
 #include "net/socket/socket_test_util.h"
diff --git a/net/spdy/chromium/spdy_test_util_common.h b/net/spdy/chromium/spdy_test_util_common.h
index 44401d8..0c2e28a7 100644
--- a/net/spdy/chromium/spdy_test_util_common.h
+++ b/net/spdy/chromium/spdy_test_util_common.h
@@ -18,6 +18,7 @@
 #include "crypto/ec_signature_creator.h"
 #include "net/base/completion_callback.h"
 #include "net/base/proxy_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/test_completion_callback.h"
 #include "net/cert/cert_verifier.h"
@@ -27,8 +28,7 @@
 #include "net/http/http_response_info.h"
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/spdy/chromium/spdy_session.h"
 #include "net/spdy/core/spdy_protocol.h"
diff --git a/net/ssl/channel_id_service.cc b/net/ssl/channel_id_service.cc
index 2e2d718..4413f4c0 100644
--- a/net/ssl/channel_id_service.cc
+++ b/net/ssl/channel_id_service.cc
@@ -37,39 +37,6 @@
 
 base::AtomicSequenceNumber g_next_id;
 
-// Used by the GetDomainBoundCertResult histogram to record the final
-// outcome of each GetChannelID or GetOrCreateChannelID call.
-// Do not re-use values.
-enum GetChannelIDResult {
-  // Synchronously found and returned an existing domain bound cert.
-  SYNC_SUCCESS = 0,
-  // Retrieved or generated and returned a domain bound cert asynchronously.
-  ASYNC_SUCCESS = 1,
-  // Retrieval/generation request was cancelled before the cert generation
-  // completed.
-  ASYNC_CANCELLED = 2,
-  // Cert generation failed.
-  ASYNC_FAILURE_KEYGEN = 3,
-  // Result code 4 was removed (ASYNC_FAILURE_CREATE_CERT)
-  ASYNC_FAILURE_EXPORT_KEY = 5,
-  ASYNC_FAILURE_UNKNOWN = 6,
-  // GetChannelID or GetOrCreateChannelID was called with
-  // invalid arguments.
-  INVALID_ARGUMENT = 7,
-  // We don't support any of the cert types the server requested.
-  UNSUPPORTED_TYPE = 8,
-  // Server asked for a different type of certs while we were generating one.
-  TYPE_MISMATCH = 9,
-  // Couldn't start a worker to generate a cert.
-  WORKER_FAILURE = 10,
-  GET_CHANNEL_ID_RESULT_MAX
-};
-
-void RecordGetChannelIDResult(GetChannelIDResult result) {
-  UMA_HISTOGRAM_ENUMERATION("DomainBoundCerts.GetDomainBoundCertResult", result,
-                            GET_CHANNEL_ID_RESULT_MAX);
-}
-
 // On success, returns a ChannelID object and sets |*error| to OK.
 // Otherwise, returns NULL, and |*error| will be set to a net error code.
 // |serial_number| is passed in because base::RandInt cannot be called from an
@@ -200,7 +167,6 @@
 
 void ChannelIDService::Request::Cancel() {
   if (service_) {
-    RecordGetChannelIDResult(ASYNC_CANCELLED);
     callback_.Reset();
     job_->CancelRequest(this);
 
@@ -223,24 +189,6 @@
 void ChannelIDService::Request::Post(
     int error,
     std::unique_ptr<crypto::ECPrivateKey> key) {
-  switch (error) {
-    case OK: {
-      RecordGetChannelIDResult(ASYNC_SUCCESS);
-      break;
-    }
-    case ERR_KEY_GENERATION_FAILED:
-      RecordGetChannelIDResult(ASYNC_FAILURE_KEYGEN);
-      break;
-    case ERR_PRIVATE_KEY_EXPORT_FAILED:
-      RecordGetChannelIDResult(ASYNC_FAILURE_EXPORT_KEY);
-      break;
-    case ERR_INSUFFICIENT_RESOURCES:
-      RecordGetChannelIDResult(WORKER_FAILURE);
-      break;
-    default:
-      RecordGetChannelIDResult(ASYNC_FAILURE_UNKNOWN);
-      break;
-  }
   service_ = NULL;
   DCHECK(!callback_.is_null());
   if (key)
@@ -283,13 +231,11 @@
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
   if (callback.is_null() || !key || host.empty()) {
-    RecordGetChannelIDResult(INVALID_ARGUMENT);
     return ERR_INVALID_ARGUMENT;
   }
 
   std::string domain = GetDomainForHost(host);
   if (domain.empty()) {
-    RecordGetChannelIDResult(INVALID_ARGUMENT);
     return ERR_INVALID_ARGUMENT;
   }
 
@@ -332,13 +278,11 @@
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
 
   if (callback.is_null() || !key || host.empty()) {
-    RecordGetChannelIDResult(INVALID_ARGUMENT);
     return ERR_INVALID_ARGUMENT;
   }
 
   std::string domain = GetDomainForHost(host);
   if (domain.empty()) {
-    RecordGetChannelIDResult(INVALID_ARGUMENT);
     return ERR_INVALID_ARGUMENT;
   }
 
@@ -461,7 +405,6 @@
     // Sync lookup found a valid channel ID.
     DVLOG(1) << "Channel ID store had valid key for " << domain;
     key_store_hits_++;
-    RecordGetChannelIDResult(SYNC_SUCCESS);
     return OK;
   }
 
diff --git a/net/tools/cert_verify_tool/verify_using_path_builder.cc b/net/tools/cert_verify_tool/verify_using_path_builder.cc
index 95657c9..6367925 100644
--- a/net/tools/cert_verify_tool/verify_using_path_builder.cc
+++ b/net/tools/cert_verify_tool/verify_using_path_builder.cc
@@ -29,8 +29,8 @@
 #include "net/url_request/url_request_context_getter.h"
 
 #if defined(OS_LINUX)
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #endif
 
 namespace {
diff --git a/net/tools/get_server_time/get_server_time.cc b/net/tools/get_server_time/get_server_time.cc
index 60efacc6..244c4792 100644
--- a/net/tools/get_server_time/get_server_time.cc
+++ b/net/tools/get_server_time/get_server_time.cc
@@ -45,8 +45,8 @@
 #if defined(OS_MACOSX)
 #include "base/mac/scoped_nsautorelease_pool.h"
 #elif defined(OS_LINUX)
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #endif
 
 using base::UTF16ToUTF8;
diff --git a/net/tools/net_watcher/net_watcher.cc b/net/tools/net_watcher/net_watcher.cc
index 817ed64e..6819f564 100644
--- a/net/tools/net_watcher/net_watcher.cc
+++ b/net/tools/net_watcher/net_watcher.cc
@@ -26,9 +26,9 @@
 #include "base/values.h"
 #include "build/build_config.h"
 #include "net/base/network_change_notifier.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 
 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
 #include "net/base/network_change_notifier_linux.h"
diff --git a/net/tools/quic/quic_simple_server_session.cc b/net/tools/quic/quic_simple_server_session.cc
index 42d195d..e417746a 100644
--- a/net/tools/quic/quic_simple_server_session.cc
+++ b/net/tools/quic/quic_simple_server_session.cc
@@ -141,7 +141,13 @@
     size_t index = (frame.stream_id - next_outgoing_stream_id()) / 2;
     DCHECK(index <= promised_streams_.size());
     promised_streams_[index].is_cancelled = true;
-    connection()->SendRstStream(frame.stream_id, QUIC_RST_ACKNOWLEDGEMENT, 0);
+    if (use_control_frame_manager()) {
+      control_frame_manager().WriteOrBufferRstStream(
+          frame.stream_id, QUIC_RST_ACKNOWLEDGEMENT, 0);
+      connection()->OnStreamReset(frame.stream_id, QUIC_RST_ACKNOWLEDGEMENT);
+    } else {
+      connection()->SendRstStream(frame.stream_id, QUIC_RST_ACKNOWLEDGEMENT, 0);
+    }
   }
 }
 
diff --git a/net/tools/quic/quic_simple_server_session_test.cc b/net/tools/quic/quic_simple_server_session_test.cc
index d1189a52..c5f5bcf 100644
--- a/net/tools/quic/quic_simple_server_session_test.cc
+++ b/net/tools/quic/quic_simple_server_session_test.cc
@@ -169,10 +169,17 @@
              SpdyPriority priority,
              const QuicReferenceCountedPointer<QuicAckListenerInterface>&
                  ack_listener));
+  MOCK_METHOD1(SendBlocked, void(QuicStreamId));
 };
 
 class QuicSimpleServerSessionTest
     : public QuicTestWithParam<ParsedQuicVersion> {
+ public:
+  bool ClearControlFrame(const QuicFrame& frame) {
+    DeleteFrame(&const_cast<QuicFrame&>(frame));
+    return true;
+  }
+
  protected:
   QuicSimpleServerSessionTest()
       : crypto_config_(QuicCryptoServerConfig::TESTING,
@@ -244,8 +251,14 @@
   QuicRstStreamFrame rst1(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                           QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
 
@@ -262,8 +275,14 @@
   QuicRstStreamFrame rst1(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                           QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst1);
   EXPECT_EQ(0u, session_->GetNumOpenIncomingStreams());
 
@@ -291,8 +310,14 @@
   QuicRstStreamFrame rst(kInvalidControlFrameId, GetNthClientInitiatedId(0),
                          QUIC_ERROR_PROCESSING_STREAM, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
-                                          QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(GetNthClientInitiatedId(0),
+                                            QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst);
 
   // If we were tracking, we'd probably want to reject this because it's data
@@ -505,7 +530,11 @@
         EXPECT_CALL(*connection_, SendStreamData(stream_id, _, 0, NO_FIN))
             .WillOnce(
                 Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
-        EXPECT_CALL(*connection_, SendBlocked(stream_id));
+        if (session_->use_control_frame_manager()) {
+          EXPECT_CALL(*session_, SendBlocked(stream_id));
+        } else {
+          EXPECT_CALL(*connection_, SendBlocked(stream_id));
+        }
       }
     }
     session_->PromisePushResources(request_url, push_resources,
@@ -543,7 +572,11 @@
   EXPECT_CALL(*connection_,
               SendStreamData(next_out_going_stream_id, _, 0, NO_FIN))
       .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
-  EXPECT_CALL(*connection_, SendBlocked(next_out_going_stream_id));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*session_, SendBlocked(next_out_going_stream_id));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(next_out_going_stream_id));
+  }
   session_->StreamDraining(2);
   // Number of open outgoing streams should still be the same, because a new
   // stream is opened. And the queue should be empty.
@@ -566,8 +599,16 @@
   QuicRstStreamFrame rst(kInvalidControlFrameId, stream_got_reset,
                          QUIC_STREAM_CANCELLED, 0);
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
-  EXPECT_CALL(*connection_,
-              SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_))
+        .WillOnce(Invoke(
+            this, &QuicSimpleServerSessionServerPushTest::ClearControlFrame));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, 0));
+  }
   visitor_->OnRstStream(rst);
 
   // When the first 2 streams becomes draining, the two queued up stream could
@@ -579,7 +620,11 @@
                                           kDefaultPriority, _));
   EXPECT_CALL(*connection_, SendStreamData(stream_not_reset, _, 0, NO_FIN))
       .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
-  EXPECT_CALL(*connection_, SendBlocked(stream_not_reset));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*session_, SendBlocked(stream_not_reset));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(stream_not_reset));
+  }
   EXPECT_CALL(*session_,
               WriteHeadersMock(stream_got_reset, _, false, kDefaultPriority, _))
       .Times(0);
@@ -599,14 +644,24 @@
   // Resetting 1st open stream will close the stream and give space for extra
   // stream to be opened.
   QuicStreamId stream_got_reset = GetNthServerInitiatedId(0);
-  EXPECT_CALL(*connection_,
-              SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, _));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(stream_got_reset, QUIC_RST_ACKNOWLEDGEMENT, _));
+  }
   EXPECT_CALL(*session_,
               WriteHeadersMock(stream_to_open, _, false, kDefaultPriority, _));
   EXPECT_CALL(*connection_, SendStreamData(stream_to_open, _, 0, NO_FIN))
       .WillOnce(Return(QuicConsumedData(kStreamFlowControlWindowSize, false)));
 
-  EXPECT_CALL(*connection_, SendBlocked(stream_to_open));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*session_, SendBlocked(stream_to_open));
+  } else {
+    EXPECT_CALL(*connection_, SendBlocked(stream_to_open));
+  }
   EXPECT_CALL(owner_, OnRstStreamReceived(_)).Times(1);
   QuicRstStreamFrame rst(kInvalidControlFrameId, stream_got_reset,
                          QUIC_STREAM_CANCELLED, 0);
diff --git a/net/tools/quic/quic_spdy_client_session_test.cc b/net/tools/quic/quic_spdy_client_session_test.cc
index a41ebe1..a0ce0e0 100644
--- a/net/tools/quic/quic_spdy_client_session_test.cc
+++ b/net/tools/quic/quic_spdy_client_session_test.cc
@@ -177,7 +177,12 @@
 }
 
 TEST_P(QuicSpdyClientSessionTest, MaxNumStreamsWithNoFinOrRst) {
-  EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(AnyNumber());
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(AnyNumber());
+    EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(AnyNumber());
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(AnyNumber());
+  }
 
   const uint32_t kServerMaxIncomingStreams = 1;
   CompleteCryptoHandshake(kServerMaxIncomingStreams);
@@ -196,7 +201,12 @@
 }
 
 TEST_P(QuicSpdyClientSessionTest, MaxNumStreamsWithRst) {
-  EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(AnyNumber());
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(AnyNumber());
+    EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(AnyNumber());
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(AnyNumber());
+  }
 
   const uint32_t kServerMaxIncomingStreams = 1;
   CompleteCryptoHandshake(kServerMaxIncomingStreams);
@@ -228,7 +238,12 @@
   EXPECT_FALSE(session_->CreateOutgoingDynamicStream());
 
   QuicStreamId stream_id = stream->id();
-  EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(1);
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+    EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(1);
+  }
   session_->SendRstStream(stream_id, QUIC_STREAM_PEER_GOING_AWAY, 0);
 
   // A new stream cannot be created as the reset stream still counts as an open
@@ -264,7 +279,12 @@
   // Send the RST, which results in the stream being closed locally (but some
   // state remains while the client waits for a response from the server).
   QuicStreamId stream_id = stream->id();
-  EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(1);
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_)).Times(1);
+    EXPECT_CALL(*connection_, OnStreamReset(_, _)).Times(1);
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(_, _, _)).Times(1);
+  }
   session_->SendRstStream(stream_id, QUIC_STREAM_PEER_GOING_AWAY, 0);
 
   // The stream receives trailers with final byte offset, but the header value
@@ -371,8 +391,14 @@
 
   session_->CreateOutgoingDynamicStream();
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(associated_stream_id_, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(associated_stream_id_, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(associated_stream_id_, QUIC_REFUSED_STREAM, 0));
+  }
   session_->ResetPromised(associated_stream_id_, QUIC_REFUSED_STREAM);
 
   session_->OnPromiseHeaderList(associated_stream_id_, promised_stream_id_, 0,
@@ -419,8 +445,14 @@
   session_->CreateOutgoingDynamicStream();
   session_->GetOrCreateStream(promised_stream_id_);
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promised_stream_id_, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  }
 
   session_->ResetPromised(promised_stream_id_, QUIC_REFUSED_STREAM);
   SpdyHeaderBlock promise_headers;
@@ -445,8 +477,14 @@
   EXPECT_NE(session_->GetPromisedByUrl(promise_url_), nullptr);
 
   promised_stream_id_ += 2;
-  EXPECT_CALL(*connection_, SendRstStream(promised_stream_id_,
-                                          QUIC_DUPLICATE_PROMISE_URL, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promised_stream_id_, QUIC_DUPLICATE_PROMISE_URL));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(promised_stream_id_,
+                                            QUIC_DUPLICATE_PROMISE_URL, 0));
+  }
 
   session_->HandlePromised(associated_stream_id_, promised_stream_id_,
                            push_promise_);
@@ -474,7 +512,12 @@
   push_promise_[":path"] = QuicStringPrintf("/bar%d", i);
 
   QuicStreamId id = promised_stream_id_ + i * 2;
-  EXPECT_CALL(*connection_, SendRstStream(id, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(id, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(id, QUIC_REFUSED_STREAM, 0));
+  }
   session_->HandlePromised(associated_stream_id_, id, push_promise_);
 
   // Verify that the promise was not created.
@@ -488,8 +531,14 @@
   CompleteCryptoHandshake();
 
   session_->GetOrCreateStream(promised_stream_id_);
-  EXPECT_CALL(*connection_,
-              SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promised_stream_id_, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  }
   session_->ResetPromised(promised_stream_id_, QUIC_REFUSED_STREAM);
   EXPECT_TRUE(session_->IsClosedStream(promised_stream_id_));
 }
@@ -498,8 +547,14 @@
   // Initialize crypto before the client session will create a stream.
   CompleteCryptoHandshake();
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(promised_stream_id_, QUIC_REFUSED_STREAM));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(promised_stream_id_, QUIC_REFUSED_STREAM, 0));
+  }
   session_->ResetPromised(promised_stream_id_, QUIC_REFUSED_STREAM);
   EXPECT_TRUE(session_->IsClosedStream(promised_stream_id_));
 }
@@ -547,8 +602,14 @@
   session_->GetOrCreateStream(promised_stream_id_);
   session_->HandlePromised(associated_stream_id_, promised_stream_id_,
                            push_promise_);
-  EXPECT_CALL(*connection_, SendRstStream(promised_stream_id_,
-                                          QUIC_STREAM_PEER_GOING_AWAY, 0));
+  if (session_->use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_, OnStreamReset(promised_stream_id_,
+                                            QUIC_STREAM_PEER_GOING_AWAY));
+  } else {
+    EXPECT_CALL(*connection_, SendRstStream(promised_stream_id_,
+                                            QUIC_STREAM_PEER_GOING_AWAY, 0));
+  }
   session_->SendRstStream(promised_stream_id_, QUIC_STREAM_PEER_GOING_AWAY, 0);
   QuicClientPromisedInfo* promised =
       session_->GetPromisedById(promised_stream_id_);
diff --git a/net/tools/quic/quic_spdy_client_stream_test.cc b/net/tools/quic/quic_spdy_client_stream_test.cc
index c8d035e..09ecf9a 100644
--- a/net/tools/quic/quic_spdy_client_stream_test.cc
+++ b/net/tools/quic/quic_spdy_client_stream_test.cc
@@ -21,6 +21,7 @@
 
 using base::IntToString;
 using std::string;
+using testing::_;
 using testing::StrictMock;
 
 namespace net {
@@ -94,8 +95,14 @@
 TEST_F(QuicSpdyClientStreamTest, TestReceivingIllegalResponseStatusCode) {
   headers_[":status"] = "200 ok";
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD, 0));
+  }
   auto headers = AsHeaderList(headers_);
   stream_->OnStreamHeaderList(false, headers.uncompressed_header_bytes(),
                               headers);
@@ -148,8 +155,14 @@
   EXPECT_EQ("200", stream_->response_headers().find(":status")->second);
   EXPECT_EQ(200, stream_->response_code());
 
-  EXPECT_CALL(*connection_,
-              SendRstStream(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD, 0));
+  if (session_.use_control_frame_manager()) {
+    EXPECT_CALL(*connection_, SendControlFrame(_));
+    EXPECT_CALL(*connection_,
+                OnStreamReset(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD));
+  } else {
+    EXPECT_CALL(*connection_,
+                SendRstStream(stream_->id(), QUIC_BAD_APPLICATION_PAYLOAD, 0));
+  }
   stream_->OnStreamFrame(
       QuicStreamFrame(stream_->id(), /*fin=*/false, /*offset=*/0, large_body));
 
diff --git a/net/url_request/test_url_fetcher_factory.h b/net/url_request/test_url_fetcher_factory.h
index 44c0cbcc..e85d322 100644
--- a/net/url_request/test_url_fetcher_factory.h
+++ b/net/url_request/test_url_fetcher_factory.h
@@ -20,9 +20,9 @@
 #include "base/memory/weak_ptr.h"
 #include "base/sequenced_task_runner.h"
 #include "base/threading/thread_checker.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_status_code.h"
-#include "net/proxy/proxy_server.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
 #include "net/url_request/url_fetcher_factory.h"
 #include "net/url_request/url_request_status.h"
diff --git a/net/url_request/url_fetcher_core.h b/net/url_request/url_fetcher_core.h
index 011a0bd5..3e261e04 100644
--- a/net/url_request/url_fetcher_core.h
+++ b/net/url_request/url_fetcher_core.h
@@ -19,8 +19,8 @@
 #include "base/timer/timer.h"
 #include "net/base/chunked_upload_data_stream.h"
 #include "net/base/host_port_pair.h"
+#include "net/base/proxy_server.h"
 #include "net/http/http_request_headers.h"
-#include "net/proxy/proxy_server.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_fetcher.h"
 #include "net/url_request/url_request.h"
diff --git a/net/url_request/url_request.h b/net/url_request/url_request.h
index 60fbf78c..178d288 100644
--- a/net/url_request/url_request.h
+++ b/net/url_request/url_request.h
@@ -26,6 +26,7 @@
 #include "net/base/net_error_details.h"
 #include "net/base/net_export.h"
 #include "net/base/network_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/upload_progress.h"
 #include "net/cookies/canonical_cookie.h"
@@ -35,7 +36,6 @@
 #include "net/http/http_response_info.h"
 #include "net/log/net_log_with_source.h"
 #include "net/net_features.h"
-#include "net/proxy/proxy_server.h"
 #include "net/socket/connection_attempts.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
 #include "net/url_request/url_request_status.h"
diff --git a/net/url_request/url_request_context_builder.h b/net/url_request/url_request_context_builder.h
index 22923fab..2ecaaf0 100644
--- a/net/url_request/url_request_context_builder.h
+++ b/net/url_request/url_request_context_builder.h
@@ -36,8 +36,8 @@
 #include "net/dns/host_resolver.h"
 #include "net/http/http_network_session.h"
 #include "net/net_features.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/core/quic_packets.h"
 #include "net/socket/next_proto.h"
 #include "net/ssl/ssl_config_service.h"
diff --git a/net/url_request/url_request_context_builder_unittest.cc b/net/url_request/url_request_context_builder_unittest.cc
index bb0e450..c044aa0 100644
--- a/net/url_request/url_request_context_builder_unittest.cc
+++ b/net/url_request/url_request_context_builder_unittest.cc
@@ -20,8 +20,8 @@
 #include "testing/platform_test.h"
 
 #if defined(OS_LINUX) || defined(OS_ANDROID)
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #endif  // defined(OS_LINUX) || defined(OS_ANDROID)
 
 namespace net {
diff --git a/net/url_request/url_request_context_storage.cc b/net/url_request/url_request_context_storage.cc
index 448cdc8..578f2fe 100644
--- a/net/url_request/url_request_context_storage.cc
+++ b/net/url_request/url_request_context_storage.cc
@@ -18,7 +18,7 @@
 #include "net/http/http_server_properties.h"
 #include "net/http/http_transaction_factory.h"
 #include "net/log/net_log.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/url_request/http_user_agent_settings.h"
 #include "net/url_request/url_request_context.h"
diff --git a/net/url_request/url_request_context_unittest.cc b/net/url_request/url_request_context_unittest.cc
index d6769d2..02b6f40 100644
--- a/net/url_request/url_request_context_unittest.cc
+++ b/net/url_request/url_request_context_unittest.cc
@@ -6,7 +6,7 @@
 
 #include "base/trace_event/memory_dump_request_args.h"
 #include "base/trace_event/process_memory_dump.h"
-#include "net/proxy/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/net/url_request/url_request_ftp_job.h b/net/url_request/url_request_ftp_job.h
index 4d1b12c..e6e8fde4e 100644
--- a/net/url_request/url_request_ftp_job.h
+++ b/net/url_request/url_request_ftp_job.h
@@ -16,8 +16,8 @@
 #include "net/ftp/ftp_transaction.h"
 #include "net/http/http_request_info.h"
 #include "net/http/http_transaction.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/url_request/url_request_job.h"
 
 namespace net {
diff --git a/net/url_request/url_request_ftp_job_unittest.cc b/net/url_request/url_request_ftp_job_unittest.cc
index 7708001..8523ef43 100644
--- a/net/url_request/url_request_ftp_job_unittest.cc
+++ b/net/url_request/url_request_ftp_job_unittest.cc
@@ -11,13 +11,13 @@
 #include "base/run_loop.h"
 #include "net/base/host_port_pair.h"
 #include "net/base/load_states.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/ftp/ftp_auth_cache.h"
 #include "net/http/http_transaction_test_util.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_server.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/gtest_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc
index ab0a6bc..451f5ba3 100644
--- a/net/url_request/url_request_http_job.cc
+++ b/net/url_request/url_request_http_job.cc
@@ -55,9 +55,9 @@
 #include "net/log/net_log_with_source.h"
 #include "net/net_features.h"
 #include "net/nqe/network_quality_estimator.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_retry_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/ssl_cert_request_info.h"
 #include "net/ssl/ssl_config_service.h"
diff --git a/net/url_request/url_request_job.cc b/net/url_request/url_request_job.cc
index 25e971d7..cf3bb707 100644
--- a/net/url_request/url_request_job.cc
+++ b/net/url_request/url_request_job.cc
@@ -23,12 +23,12 @@
 #include "net/base/load_states.h"
 #include "net/base/net_errors.h"
 #include "net/base/network_delegate.h"
+#include "net/base/proxy_server.h"
 #include "net/log/net_log.h"
 #include "net/log/net_log_capture_mode.h"
 #include "net/log/net_log_event_type.h"
 #include "net/log/net_log_with_source.h"
 #include "net/nqe/network_quality_estimator.h"
-#include "net/proxy/proxy_server.h"
 #include "net/url_request/url_request_context.h"
 
 namespace net {
diff --git a/net/url_request/url_request_test_util.cc b/net/url_request/url_request_test_util.cc
index 73c2b07..3fa0a4b5 100644
--- a/net/url_request/url_request_test_util.cc
+++ b/net/url_request/url_request_test_util.cc
@@ -22,7 +22,7 @@
 #include "net/http/http_response_headers.h"
 #include "net/http/http_server_properties_impl.h"
 #include "net/http/transport_security_state.h"
-#include "net/proxy/proxy_retry_info.h"
+#include "net/proxy_resolution/proxy_retry_info.h"
 #include "net/ssl/channel_id_service.h"
 #include "net/ssl/default_channel_id_store.h"
 #include "net/url_request/static_http_user_agent_settings.h"
diff --git a/net/url_request/url_request_test_util.h b/net/url_request/url_request_test_util.h
index 9955074..f4ccfda 100644
--- a/net/url_request/url_request_test_util.h
+++ b/net/url_request/url_request_test_util.h
@@ -35,7 +35,7 @@
 #include "net/http/http_network_layer.h"
 #include "net/http/http_network_session.h"
 #include "net/http/http_request_headers.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/ssl/ssl_config_service_defaults.h"
 #include "net/url_request/url_request.h"
 #include "net/url_request/url_request_context.h"
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index ebb098dd..2aeb8ae 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -56,6 +56,7 @@
 #include "net/base/load_timing_info_test_util.h"
 #include "net/base/net_errors.h"
 #include "net/base/net_module.h"
+#include "net/base/proxy_server.h"
 #include "net/base/request_priority.h"
 #include "net/base/test_completion_callback.h"
 #include "net/base/upload_bytes_element_reader.h"
@@ -89,8 +90,7 @@
 #include "net/log/test_net_log_util.h"
 #include "net/net_features.h"
 #include "net/nqe/external_estimate_provider.h"
-#include "net/proxy/proxy_server.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/quic/chromium/mock_crypto_client_stream_factory.h"
 #include "net/quic/chromium/quic_server_info.h"
 #include "net/socket/socket_test_util.h"
diff --git a/net/websockets/websocket_end_to_end_test.cc b/net/websockets/websocket_end_to_end_test.cc
index b1164c4..cdc6f90 100644
--- a/net/websockets/websocket_end_to_end_test.cc
+++ b/net/websockets/websocket_end_to_end_test.cc
@@ -26,7 +26,7 @@
 #include "build/build_config.h"
 #include "net/base/auth.h"
 #include "net/base/proxy_delegate.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "net/test/spawned_test_server/spawned_test_server.h"
 #include "net/test/test_data_directory.h"
diff --git a/net/websockets/websocket_stream_test.cc b/net/websockets/websocket_stream_test.cc
index c79d6ee..def32a2 100644
--- a/net/websockets/websocket_stream_test.cc
+++ b/net/websockets/websocket_stream_test.cc
@@ -22,7 +22,7 @@
 #include "net/base/net_errors.h"
 #include "net/http/http_request_headers.h"
 #include "net/http/http_response_headers.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/client_socket_handle.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/cert_test_util.h"
diff --git a/net/websockets/websocket_test_util.cc b/net/websockets/websocket_test_util.cc
index bddb3a5..bfdb376 100644
--- a/net/websockets/websocket_test_util.cc
+++ b/net/websockets/websocket_test_util.cc
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "base/strings/stringprintf.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "url/origin.h"
 
diff --git a/remoting/base/url_request_context_getter.cc b/remoting/base/url_request_context_getter.cc
index fbf00762..11b9d3f0 100644
--- a/remoting/base/url_request_context_getter.cc
+++ b/remoting/base/url_request_context_getter.cc
@@ -7,7 +7,7 @@
 #include <utility>
 
 #include "base/single_thread_task_runner.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "net/url_request/url_request_context.h"
 #include "net/url_request/url_request_context_builder.h"
 #include "remoting/base/vlog_net_log.h"
diff --git a/remoting/resources/remoting_strings_bn.xtb b/remoting/resources/remoting_strings_bn.xtb
index d26ebedd..14bb573 100644
--- a/remoting/resources/remoting_strings_bn.xtb
+++ b/remoting/resources/remoting_strings_bn.xtb
@@ -65,7 +65,7 @@
 <translation id="2314101195544969792">আপনার <ph name="APPLICATION_NAME" />-এর সেশন কিছুক্ষণের জন্য নিষ্ক্রিয় করা হয়েছে এবং কিছুক্ষণের জন্য সংযোগ বিচ্ছিন্ন করা হবে।</translation>
 <translation id="2317666076142640974">বাকি সবার আগে <ph name="LINK_BEGIN" />Chrome দূরবর্তী ডেস্কটপ ওয়েব অ্যাপ<ph name="LINK_END" /> ব্যবহার করে দেখুন। অ্যাপটির বিষয়ে আপনার মতামত পেলে আমরা বাধিত হব।</translation>
 <translation id="2320166752086256636">কীবোর্ড লুকান</translation>
-<translation id="2353140552984634198">Chromoting ব্যবহার করে আপনি হয়ত নিরাপদভাবে এই কম্পিউটারটিকে অ্যাক্সেস করতে পারবেন৷</translation>
+<translation id="2353140552984634198">Chromoting ব্যবহার করে আপনি হয়তো নিরাপদভাবে এই কম্পিউটারটিকে অ্যাক্সেস করতে পারবেন৷</translation>
 <translation id="2359808026110333948">অবিরত</translation>
 <translation id="2366718077645204424">হোস্টে পৌঁছাতে পারেনি৷ আপনার ব্যবহার করা নেটওয়ার্কের কনফিগারেশনের কারণে সম্ভবত এটি হয়েছে৷</translation>
 <translation id="2370754117186920852"><ph name="OPTIONAL_OFFLINE_REASON" /> অনলাইনে সর্বশেষ <ph name="RELATIVE_TIMESTAMP" /> দেখা গেছে।</translation>
@@ -105,7 +105,7 @@
 <translation id="3194245623920924351">Chrome দূরবর্তী ডেস্কটপ</translation>
 <translation id="3197730452537982411">দূরবর্তী ডেস্কটপ</translation>
 <translation id="324272851072175193">এই নির্দেশাবলী ইমেল করুন</translation>
-<translation id="3258789396564295715">Chrome দূরবর্তী ডেস্কটপ ব্যবহার করে আপনি হয়ত নিরাপদে এই কম্পিউটারটিকে অ্যাক্সেস করতে পারবেন৷</translation>
+<translation id="3258789396564295715">Chrome দূরবর্তী ডেস্কটপ ব্যবহার করে আপনি হয়তো নিরাপদে এই কম্পিউটারটিকে অ্যাক্সেস করতে পারবেন৷</translation>
 <translation id="3286521253923406898">Chromoting হোস্ট নিয়ন্ত্রণকারী</translation>
 <translation id="3305934114213025800"><ph name="PRODUCT_NAME" /> পরিবর্তন করতে চান।</translation>
 <translation id="331779822864701136">• এখন Android 8.0 Oreo এর সাথেও ব্যবহার করা যাবে।</translation>
diff --git a/remoting/resources/remoting_strings_mr.xtb b/remoting/resources/remoting_strings_mr.xtb
index f30c22a..897b6c55 100644
--- a/remoting/resources/remoting_strings_mr.xtb
+++ b/remoting/resources/remoting_strings_mr.xtb
@@ -288,7 +288,7 @@
 <translation id="7665369617277396874">खाते जोडा</translation>
 <translation id="7672203038394118626">या संगणकाची दूरस्‍थ कनेक्‍शन अक्षम केली गेली आहेत.</translation>
 <translation id="7678209621226490279">डावीकडे डॉक करा</translation>
-<translation id="7693372326588366043">होस्टची सूची रीफ्रेश करा</translation>
+<translation id="7693372326588366043">होस्टची सूची रिफ्रेश करा</translation>
 <translation id="7782471917492991422">कृपया आपल्या संगणकाची ऊर्जा व्यवस्‍थापन सेटिंग्ज तपासा आणि निष्क्रिय असताना त्या स्लीप मध्‍ये जाण्‍यासाठी कॉन्‍फिगर केल्या नसल्याचे सुनिश्चित करा.</translation>
 <translation id="7810127880729796595">आकडेवारी दर्शवा (कनेक्शन: <ph name="QUALITY" />)</translation>
 <translation id="7836926030608666805">काही आवश्यक घटक गहाळ आहेत. कृपया आपण Chrome ची नवीनतम आवृत्ती चालवत असल्याचे सुनिश्चित करा आणि पुन्हा प्रयत्न करा.</translation>
diff --git a/remoting/resources/remoting_strings_ru.xtb b/remoting/resources/remoting_strings_ru.xtb
index 9c0f054c..5d8173e 100644
--- a/remoting/resources/remoting_strings_ru.xtb
+++ b/remoting/resources/remoting_strings_ru.xtb
@@ -116,7 +116,7 @@
 <translation id="337167041784729019">Показать статистику</translation>
 <translation id="3385242214819933234">Недопустимый владелец хоста</translation>
 <translation id="3403830762023901068">Этот компьютер запрещено использовать в качестве хоста Пульта Chrome. Обратитесь к системному администратору.</translation>
-<translation id="3423542133075182604">Процесс удаленного управления аппаратным токеном</translation>
+<translation id="3423542133075182604">Процесс удаленного управления электронным ключом</translation>
 <translation id="3581045510967524389">Не удалось подключиться к сети. Проверьте наличие подключения на устройстве.</translation>
 <translation id="3596628256176442606">Данная служба обеспечивает входящие соединения от клиентов Пульта Chrome.</translation>
 <translation id="3606997049964069799">Ошибка. Войдите в Chromium и повторите попытку.</translation>
diff --git a/sandbox/win/src/sandbox_policy_base.cc b/sandbox/win/src/sandbox_policy_base.cc
index 471fc75a..9ce4308 100644
--- a/sandbox/win/src/sandbox_policy_base.cc
+++ b/sandbox/win/src/sandbox_policy_base.cc
@@ -544,8 +544,10 @@
 }
 
 ResultCode PolicyBase::SetDisconnectCsrss() {
-// Does not work on 32-bit.
-#if defined(_WIN64)
+// Does not work on 32-bit, and the ASAN runtime falls over with the
+// CreateThread EAT patch used when this is enabled.
+// See https://crbug.com/783296#c27.
+#if defined(_WIN64) && !defined(ADDRESS_SANITIZER)
   if (base::win::GetVersion() >= base::win::VERSION_WIN10) {
     is_csrss_connected_ = false;
     return AddKernelObjectToClose(L"ALPC Port", nullptr);
diff --git a/services/BUILD.gn b/services/BUILD.gn
index 6cbbd73f..aac63629 100644
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -19,6 +19,7 @@
   # section below. If you are unsure, contact blundell@chromium.org.
   deps = [
     "//services/identity:tests",
+    "//services/network:tests",
     "//services/network/public/cpp:tests",
   ]
 
diff --git a/services/audio/test/audio_system_to_service_adapter_test.cc b/services/audio/test/audio_system_to_service_adapter_test.cc
index c4bd6ed..2ebe366 100644
--- a/services/audio/test/audio_system_to_service_adapter_test.cc
+++ b/services/audio/test/audio_system_to_service_adapter_test.cc
@@ -39,7 +39,8 @@
     auto connector = service_manager::Connector::Create(&ignored_request);
     service_manager::Connector::TestApi connector_test_api(connector.get());
     connector_test_api.OverrideBinderForTesting(
-        mojom::kServiceName, mojom::SystemInfo::Name_,
+        service_manager::Identity(mojom::kServiceName),
+        mojom::SystemInfo::Name_,
         base::BindRepeating(
             &AudioSystemToServiceAdapterTestBase::BindSystemInfoRequest,
             base::Unretained(this)));
diff --git a/services/device/generic_sensor/generic_sensor_service_unittest.cc b/services/device/generic_sensor/generic_sensor_service_unittest.cc
index cd965f4..d10043a 100644
--- a/services/device/generic_sensor/generic_sensor_service_unittest.cc
+++ b/services/device/generic_sensor/generic_sensor_service_unittest.cc
@@ -61,8 +61,10 @@
 
   // Sensor mojo interfaces callbacks:
   void OnSensorCreated(base::OnceClosure quit_closure,
+                       mojom::SensorCreationResult result,
                        mojom::SensorInitParamsPtr params) {
     ASSERT_TRUE(params);
+    EXPECT_EQ(mojom::SensorCreationResult::SUCCESS, result);
     EXPECT_TRUE(params->memory.is_valid());
     const double expected_default_frequency =
         std::min(30.0, GetSensorMaxAllowedFrequency(type_));
diff --git a/services/device/generic_sensor/sensor_provider_impl.cc b/services/device/generic_sensor/sensor_provider_impl.cc
index afb72075..4bfebc8 100644
--- a/services/device/generic_sensor/sensor_provider_impl.cc
+++ b/services/device/generic_sensor/sensor_provider_impl.cc
@@ -59,12 +59,14 @@
                                    GetSensorCallback callback) {
   if (!base::FeatureList::IsEnabled(features::kGenericSensorExtraClasses) &&
       IsExtraSensorClass(type)) {
-    std::move(callback).Run(nullptr);
+    std::move(callback).Run(mojom::SensorCreationResult::ERROR_NOT_AVAILABLE,
+                            nullptr);
     return;
   }
   auto cloned_handle = provider_->CloneSharedBufferHandle();
   if (!cloned_handle.is_valid()) {
-    std::move(callback).Run(nullptr);
+    std::move(callback).Run(mojom::SensorCreationResult::ERROR_NOT_AVAILABLE,
+                            nullptr);
     return;
   }
 
@@ -87,7 +89,8 @@
     GetSensorCallback callback,
     scoped_refptr<PlatformSensor> sensor) {
   if (!sensor) {
-    std::move(callback).Run(nullptr);
+    std::move(callback).Run(mojom::SensorCreationResult::ERROR_NOT_AVAILABLE,
+                            nullptr);
     return;
   }
 
@@ -133,7 +136,8 @@
   DCHECK_GT(init_params->minimum_frequency, 0.0);
   DCHECK_GE(init_params->maximum_frequency, init_params->minimum_frequency);
 
-  std::move(callback).Run(std::move(init_params));
+  std::move(callback).Run(mojom::SensorCreationResult::SUCCESS,
+                          std::move(init_params));
 }
 
 }  // namespace device
diff --git a/services/device/public/interfaces/sensor_provider.mojom b/services/device/public/interfaces/sensor_provider.mojom
index 261d17a..da07a846 100644
--- a/services/device/public/interfaces/sensor_provider.mojom
+++ b/services/device/public/interfaces/sensor_provider.mojom
@@ -39,12 +39,21 @@
   const uint64 kReadBufferSizeForTests = 48;
 };
 
+enum SensorCreationResult {
+  SUCCESS,
+  ERROR_NOT_AVAILABLE, // Sensor is not available on the platform.
+  ERROR_NOT_ALLOWED,  // The required permissions are not granted.
+};
+
 interface SensorProvider {
   // Gets the sensor interface by the given type.
   //
   // |type| type of the sensor.
   //
-  // |init_params| on success will contain the SensorInitParams describing the
-  //               sensor, contains null on failure.
-  GetSensor(SensorType type) => (SensorInitParams? init_params);
+  // |result| on success contains SUCCESS, otherwise contains the
+  //          SensorCreationResult describing the failure reason.
+  // |init_params| on success will contain the SensorInitParams describing
+  //               the sensor, contains null on failure.
+  GetSensor(SensorType type) => (SensorCreationResult result,
+                                 SensorInitParams? init_params);
 };
diff --git a/services/network/BUILD.gn b/services/network/BUILD.gn
index 1b48916..eb31e56b 100644
--- a/services/network/BUILD.gn
+++ b/services/network/BUILD.gn
@@ -10,6 +10,10 @@
     "cookie_manager.h",
     "proxy_config_service_mojo.cc",
     "proxy_config_service_mojo.h",
+    "udp_socket.cc",
+    "udp_socket.h",
+    "udp_socket_factory.cc",
+    "udp_socket_factory.h",
   ]
 
   deps = [
@@ -27,9 +31,12 @@
   sources = [
     "cookie_manager_unittest.cc",
     "proxy_config_service_mojo_unittest.cc",
+    "udp_socket_factory_unittest.cc",
+    "udp_socket_unittest.cc",
   ]
 
   deps = [
+    ":test_support",
     "//base",
     "//mojo/public/cpp/bindings",
     "//net",
@@ -40,16 +47,19 @@
   ]
 }
 
-static_library("test_support") {
+source_set("test_support") {
   testonly = true
 
   sources = [
     "test/test_data_pipe_getter.cc",
+    "udp_socket_test_util.cc",
+    "udp_socket_test_util.h",
   ]
 
   deps = [
     "//base",
     "//mojo/public/cpp/bindings",
+    "//net",
     "//services/network:network_service",
     "//services/network/public/interfaces",
     "//testing/gtest",
diff --git a/services/network/proxy_config_service_mojo.h b/services/network/proxy_config_service_mojo.h
index d8fb345..06fbbca 100644
--- a/services/network/proxy_config_service_mojo.h
+++ b/services/network/proxy_config_service_mojo.h
@@ -9,8 +9,8 @@
 #include "base/observer_list.h"
 #include "base/optional.h"
 #include "mojo/public/cpp/bindings/binding.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "services/network/public/interfaces/proxy_config.mojom.h"
 
 namespace net {
diff --git a/services/network/proxy_config_service_mojo_unittest.cc b/services/network/proxy_config_service_mojo_unittest.cc
index 75730d9..37bbd8df 100644
--- a/services/network/proxy_config_service_mojo_unittest.cc
+++ b/services/network/proxy_config_service_mojo_unittest.cc
@@ -6,8 +6,8 @@
 
 #include "base/macros.h"
 #include "base/test/scoped_task_environment.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_service.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_service.h"
 #include "services/network/public/interfaces/proxy_config.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
diff --git a/services/network/public/cpp/proxy_config.typemap b/services/network/public/cpp/proxy_config.typemap
index 15f09b8..47e0cbc 100644
--- a/services/network/public/cpp/proxy_config.typemap
+++ b/services/network/public/cpp/proxy_config.typemap
@@ -4,10 +4,10 @@
 
 mojom = "//services/network/public/interfaces/proxy_config.mojom"
 public_headers = [
-  "//net/proxy/proxy_bypass_rules.h",
-  "//net/proxy/proxy_config.h",
-  "//net/proxy/proxy_config_source.h",
-  "//net/proxy/proxy_list.h",
+  "//net/proxy_resolution/proxy_bypass_rules.h",
+  "//net/proxy_resolution/proxy_config.h",
+  "//net/proxy_resolution/proxy_config_source.h",
+  "//net/proxy_resolution/proxy_list.h",
 ]
 traits_headers = [ "//services/network/public/cpp/proxy_config_traits.h" ]
 deps = [
diff --git a/services/network/public/cpp/proxy_config_traits.h b/services/network/public/cpp/proxy_config_traits.h
index 368ed811..e6232d2 100644
--- a/services/network/public/cpp/proxy_config_traits.h
+++ b/services/network/public/cpp/proxy_config_traits.h
@@ -5,10 +5,10 @@
 #ifndef SERVICES_NETWORK_PUBLIC_CPP_PROXY_CONFIG_TRAITS_H_
 #define SERVICES_NETWORK_PUBLIC_CPP_PROXY_CONFIG_TRAITS_H_
 
-#include "net/proxy/proxy_bypass_rules.h"
-#include "net/proxy/proxy_config.h"
-#include "net/proxy/proxy_config_source.h"
-#include "net/proxy/proxy_list.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_config.h"
+#include "net/proxy_resolution/proxy_config_source.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "services/network/public/interfaces/proxy_config.mojom-shared.h"
 #include "url/mojo/url_gurl_struct_traits.h"
 
diff --git a/services/network/public/cpp/proxy_config_traits_unittest.cc b/services/network/public/cpp/proxy_config_traits_unittest.cc
index 7ca3ea17..47f3bbc 100644
--- a/services/network/public/cpp/proxy_config_traits_unittest.cc
+++ b/services/network/public/cpp/proxy_config_traits_unittest.cc
@@ -4,8 +4,8 @@
 
 #include "services/network/public/cpp/proxy_config_traits.h"
 
-#include "net/proxy/proxy_bypass_rules.h"
-#include "net/proxy/proxy_config.h"
+#include "net/proxy_resolution/proxy_bypass_rules.h"
+#include "net/proxy_resolution/proxy_config.h"
 #include "services/network/public/interfaces/proxy_config.mojom.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "url/gurl.h"
diff --git a/services/network/public/cpp/proxy_resolving_client_socket.h b/services/network/public/cpp/proxy_resolving_client_socket.h
index 276f792..2f4e3ed 100644
--- a/services/network/public/cpp/proxy_resolving_client_socket.h
+++ b/services/network/public/cpp/proxy_resolving_client_socket.h
@@ -17,8 +17,8 @@
 #include "net/base/host_port_pair.h"
 #include "net/base/net_errors.h"
 #include "net/log/net_log_with_source.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/next_proto.h"
 #include "net/socket/stream_socket.h"
 #include "net/ssl/ssl_config_service.h"
diff --git a/services/network/public/cpp/proxy_resolving_client_socket_unittest.cc b/services/network/public/cpp/proxy_resolving_client_socket_unittest.cc
index b319667..ae5ed0e2 100644
--- a/services/network/public/cpp/proxy_resolving_client_socket_unittest.cc
+++ b/services/network/public/cpp/proxy_resolving_client_socket_unittest.cc
@@ -14,9 +14,9 @@
 #include "base/threading/thread_task_runner_handle.h"
 #include "net/base/test_completion_callback.h"
 #include "net/dns/mock_host_resolver.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_service.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_config_service_fixed.h"
+#include "net/proxy_resolution/proxy_service.h"
 #include "net/socket/socket_test_util.h"
 #include "net/test/gtest_util.h"
 #include "net/traffic_annotation/network_traffic_annotation_test_helper.h"
diff --git a/services/network/public/interfaces/BUILD.gn b/services/network/public/interfaces/BUILD.gn
index 19ac407..c3cdaed 100644
--- a/services/network/public/interfaces/BUILD.gn
+++ b/services/network/public/interfaces/BUILD.gn
@@ -27,6 +27,21 @@
   }
 }
 
+# UDP socket interface relies on mojo.common.mojom.ReadOnlyBuffer, which is
+# mapped to base::span<const uint8_t>. ReadOnlyBufffer doesn't yet work with
+# lazy serialization, so this needs to be in a separate target that doesn't have
+# support_lazy_serialization = true.
+mojom("udp_socket_interface") {
+  sources = [
+    "udp_socket.mojom",
+  ]
+
+  public_deps = [
+    "//mojo/common:read_only_buffer",
+    "//net/interfaces:interfaces",
+  ]
+}
+
 mojom("interfaces") {
   # URLLoader & URLLoaderFactory are used in-process in the browser when
   # navigation uses URLLoader (NavigationMojoResponse) and in the renderer
@@ -53,6 +68,7 @@
 
   public_deps = [
     ":data_pipe_interface",
+    ":udp_socket_interface",
     "//mojo/common:common_custom_types",
     "//services/proxy_resolver/public/interfaces",
     "//url/mojo:url_mojom_gurl",
diff --git a/services/network/public/interfaces/network_service.mojom b/services/network/public/interfaces/network_service.mojom
index 01843bc..64a3e481 100644
--- a/services/network/public/interfaces/network_service.mojom
+++ b/services/network/public/interfaces/network_service.mojom
@@ -7,12 +7,14 @@
 import "cookie_manager.mojom";
 import "network_change_manager.mojom";
 import "proxy_config.mojom";
+import "net/interfaces/ip_endpoint.mojom";
 import "url_loader.mojom";
 import "url_loader_factory.mojom";
 import "restricted_cookie_manager.mojom";
 import "mojo/common/file_path.mojom";
 import "mojo/common/time.mojom";
 import "url/mojo/url.mojom";
+import "services/network/public/interfaces/udp_socket.mojom";
 import "services/proxy_resolver/public/interfaces/proxy_resolver.mojom";
 
 // Parameters for constructing a network context.
@@ -152,6 +154,14 @@
   // TODO(caseq): get rid of header, make profile_id part of ResourceRequest.
   SetNetworkConditions(string profile_id, NetworkConditions? conditions);
 
+  // Creates a UDP socket. Caller can supply a |receiver| interface pointer
+  // to listen for incoming datagrams. A null |receiver| is acceptable if caller
+  // is not interested in incoming data.
+  // Any sockets that are created but are yet to be destroyed will be destroyed
+  // when NetworkContext goes away.
+  CreateUDPSocket(network.mojom.UDPSocket& request,
+                  network.mojom.UDPSocketReceiver? receiver);
+
   [Sync]
   // Adds explicitly-specified data as if it was processed from an
   // HSTS header.
diff --git a/services/network/public/interfaces/udp_socket.mojom b/services/network/public/interfaces/udp_socket.mojom
new file mode 100644
index 0000000..168d011
--- /dev/null
+++ b/services/network/public/interfaces/udp_socket.mojom
@@ -0,0 +1,145 @@
+// 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.
+
+module network.mojom;
+
+import "mojo/common/read_only_buffer.mojom";
+import "net/interfaces/address_family.mojom";
+import "net/interfaces/ip_endpoint.mojom";
+
+// UDPSocket is an interface that exposes UDP socket functionalities.
+// UDPSocketReceiver is an interface that allows consumers to consume data
+// received by the UDPSocket. The typical flow of using the interfaces is:
+// - Acquire a UDPSocket interface pointer and optionally supply a non-null
+//   UDPSocketReceiverPtr. If consumers are not interested in received data, a
+//   null UDPSocketReceiverPtr is acceptable.
+// - Open().
+// - (optional) Set options.
+// - Use either Bind() or Connect() before datagrams can be sent or received.
+// - Send / request to receive datagrams. Received datagrams will be delivered
+//   to the bound receiver's OnReceived() call.
+// - Close the socket by destroying the interface pointer.
+interface UDPSocket {
+  // Opens the socket. This requests a socket of |address_family| from the OS.
+  // Returns net::OK on success and a negative net error code on failure.
+  Open(net.interfaces.AddressFamily address_family) => (int32 result);
+
+  // Binds the address/port for this socket to |local_addr|. Caller can use port
+  // 0 to let the OS pick an available port.
+  // Should only be called after Open(). Returns net::OK and the real
+  // local address used on success and a negative net error code on failure.
+  Bind(net.interfaces.IPEndPoint local_addr) =>
+      (int32 result, net.interfaces.IPEndPoint? local_addr_out);
+
+  // Connects the socket to |remote_addr|. This automatically binds the socket
+  // to an available local port, so this cannot be used with Bind().
+  // Should only be called after Open(). The address family of the local socket
+  // will be of the same net.interfaces.AddressFamily supplied during Open().
+  // Returns net::OK and the local address of socket on success. Subsequent
+  // packets received will be from |remote_addr|. Returns a negative net error
+  // code on failure.
+  Connect(net.interfaces.IPEndPoint remote_addr) =>
+      (int32 result, net.interfaces.IPEndPoint? local_addr_out);
+
+  // Sets the OS send buffer size (in bytes) for the socket. This is the
+  // SO_SNDBUF socket option. This socket option matters less for UDP socket (as
+  // compared to TCP), because in theory all UDP data written to the kernel
+  // should directly go out to the network. The kernel usually doesn't need to
+  // buffer send data.
+  // Should only be called after Open(). Returns net::OK upon success, and a
+  // net error code upon failure.
+  SetSendBufferSize(uint32 size) => (int32 result);
+
+  // Sets the OS receive buffer size (in bytes) for the socket. This is the
+  // SO_RCVBUF socket option. The kernel allocates this much to hold the data
+  // arriving into this socket between the time when data arrives over the
+  // network and when it is read by UDPSocketReceiver. If buffer is full,
+  // new packets will be discarded.
+  // Should only be called after Open(). Returns net::OK upon success, and a
+  // net error code upon failure.
+  SetReceiveBufferSize(uint32 size) => (int32 result);
+
+  // Notifies that the receiver is ready to accept |number| of datagrams.
+  // Correspondingly, OnReceived() of the UDPSocketReceiver interface will be
+  // called |number| times (errors also count), unless the connection is closed
+  // before that. The implementation may return net::ERR_INSUFFICIENT_RESOURCES
+  // in an OnReceived() callback if the service doesn't have enough resource to
+  // complete the operation. For example, if the implementation queues the
+  // requests internally, net::ERR_INSUFFICIENT_RESOURCES can be returned if the
+  // queue doesn't have any space to accept new ReceiveMore().
+  //
+  // It is allowed to call this method again before the previous request is
+  // completely satisfied. For example:
+  //   service->ReceiveMore(3);
+  //   ...
+  //   // OnReceived() is called.
+  //   // OnReceived() is called.
+  //   ...
+  //   service->ReceiveMore(3);
+  //   // The client expects 4 more calls to OnReceived().
+  //
+  // Please note that how ReceiveMore() is used will affect performance
+  // significantly. For example:
+  //   // Approach 1:
+  //   service->ReceiveMore(3);
+  //   // OnReceived() is called.
+  //   // OnReceived() is called.
+  //   // OnReceived() is called.
+  //
+  //   // Approach 2:
+  //   service->ReceiveMore(1);
+  //   // OnReceived() is called.
+  //   service->ReceiveMore(1);
+  //   // OnReceived() is called.
+  //   service->ReceiveMore(1);
+  //   // OnReceived() is called.
+  //
+  // It is very likely that approach 1 will perform better than approach 2,
+  // because in approach 2 getting every datagram takes at least the time of a
+  // round trip to the service side.
+  // TODO(xunjieli): Allow consumer to configure the underlying read buffer
+  // size. This is currently set to be 128KB, which is likely to be too big.
+  ReceiveMore(uint32 num_additional_datagrams);
+
+  // Sends data to a particular destination, |dest_addr|. Should only be used
+  // after Bind(). There is currently no limit on the size of |data|, other
+  // than the restrictions on datagram size specified in the IP layer (e.g.
+  // 65507 bytes for IPv4) . Consumers need to be aware that sending data in
+  // larger chunks will result in higher memory usage. Upon successfully handing
+  // the data to the OS, |result| is net::OK. On failure, it is a network error
+  // code, including (but not limited to):
+  // - net::ERR_INSUFFICIENT_RESOURCES: The service doesn't have
+  //   sufficient resource to complete the operation. When this happens, the
+  //   requests will be failed quickly (which might happen before the completion
+  //   of requests that were sent earlier).
+  SendTo(net.interfaces.IPEndPoint dest_addr,
+         mojo.common.mojom.ReadOnlyBuffer data) => (int32 result);
+
+  // Same as SendTo(), except this method sends data to the destination
+  // specified in an earlier Connect(). This method should only be called after
+  // a successful Connect().
+  Send(mojo.common.mojom.ReadOnlyBuffer data) => (int32 result);
+};
+
+// An interface the consumers of UDPSocket can implement to listen for incoming
+// packets. This interface is to be used together when requesting a UDPSocket.
+interface UDPSocketReceiver {
+  // Invoked when data is received.
+  // - When UDPSocket is used with Bind():
+  //   On success, |result| is net::OK. |src_addr| indicates the address of the
+  //   sender. |data| contains the received data.
+  //   On failure, |result| is a negative network error code. |data| is null.
+  //   |src_addr| might be null.
+  // - When UDPSocket is used with Connect():
+  //   |src_addr| is always null. Data are always received from the remote
+  //   address specified in Connect().
+  //   On success, |result| is net::OK. |data| contains the received data.
+  //   On failure, |result| is a negative network error code. |data| is null.
+  //
+  // Note that in both cases, |data| can be an empty buffer when |result| is
+  // net::OK, which indicates a zero-byte payload.
+  OnReceived(int32 result,
+             net.interfaces.IPEndPoint? src_addr,
+             mojo.common.mojom.ReadOnlyBuffer? data);
+};
diff --git a/services/network/udp_socket.cc b/services/network/udp_socket.cc
new file mode 100644
index 0000000..4c84d389
--- /dev/null
+++ b/services/network/udp_socket.cc
@@ -0,0 +1,343 @@
+// 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 "services/network/udp_socket.h"
+
+#include <algorithm>
+#include <utility>
+
+#include "base/logging.h"
+#include "base/memory/ptr_util.h"
+#include "base/numerics/checked_math.h"
+#include "base/numerics/safe_conversions.h"
+#include "base/optional.h"
+#include "base/rand_util.h"
+#include "net/base/io_buffer.h"
+#include "net/base/net_errors.h"
+#include "net/base/rand_callback.h"
+#include "net/log/net_log.h"
+#include "net/socket/udp_socket.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
+
+namespace network {
+
+namespace {
+
+// TODO(xunjieli): Default read buffer size is too big. Make it customizable.
+const int kMaxReadSize = 64 * 1024;
+// The limit on data length for a UDP packet is 65,507 for IPv4 and 65,535 for
+// IPv6.
+const int kMaxPacketSize = kMaxReadSize - 1;
+
+class SocketWrapperImpl : public UDPSocket::SocketWrapper {
+ public:
+  SocketWrapperImpl(net::DatagramSocket::BindType bind_type,
+                    const net::RandIntCallback& rand_int_cb,
+                    net::NetLog* net_log,
+                    const net::NetLogSource& source)
+      : socket_(bind_type, rand_int_cb, net_log, source) {}
+  ~SocketWrapperImpl() override {}
+
+  int Open(net::AddressFamily address_family) override {
+    return socket_.Open(address_family);
+  }
+  int Connect(const net::IPEndPoint& remote_addr) override {
+    return socket_.Connect(remote_addr);
+  }
+  int Bind(const net::IPEndPoint& local_addr) override {
+    return socket_.Bind(local_addr);
+  }
+  int SetSendBufferSize(uint32_t size) override {
+    return socket_.SetSendBufferSize(size);
+  }
+  int SetReceiveBufferSize(uint32_t size) override {
+    return socket_.SetReceiveBufferSize(size);
+  }
+  int SendTo(net::IOBuffer* buf,
+             int buf_len,
+             const net::IPEndPoint& dest_addr,
+             const net::CompletionCallback& callback) override {
+    return socket_.SendTo(buf, buf_len, dest_addr, callback);
+  }
+  int Write(net::IOBuffer* buf,
+            int buf_len,
+            const net::CompletionCallback& callback) override {
+    return socket_.Write(buf, buf_len, callback,
+                         NO_TRAFFIC_ANNOTATION_BUG_656607);
+  }
+  int RecvFrom(net::IOBuffer* buf,
+               int buf_len,
+               net::IPEndPoint* address,
+               const net::CompletionCallback& callback) override {
+    return socket_.RecvFrom(buf, buf_len, address, callback);
+  }
+  int GetLocalAddress(net::IPEndPoint* address) const override {
+    return socket_.GetLocalAddress(address);
+  }
+
+ private:
+  net::UDPSocket socket_;
+
+  DISALLOW_COPY_AND_ASSIGN(SocketWrapperImpl);
+};
+
+}  // namespace
+
+UDPSocket::PendingSendRequest::PendingSendRequest() {}
+
+UDPSocket::PendingSendRequest::~PendingSendRequest() {}
+
+UDPSocket::UDPSocket(mojom::UDPSocketRequest request,
+                     mojom::UDPSocketReceiverPtr receiver)
+    : is_opened_(false),
+      is_bound_(false),
+      is_connected_(false),
+      receiver_(std::move(receiver)),
+      wrapped_socket_(std::make_unique<SocketWrapperImpl>(
+          net::DatagramSocket::RANDOM_BIND,
+          base::BindRepeating(&base::RandInt),
+          nullptr,
+          net::NetLogSource())),
+      remaining_recv_slots_(0),
+      binding_(this) {
+  binding_.Bind(std::move(request));
+}
+
+UDPSocket::~UDPSocket() {}
+
+void UDPSocket::set_connection_error_handler(base::OnceClosure handler) {
+  binding_.set_connection_error_handler(std::move(handler));
+}
+
+void UDPSocket::Open(net::AddressFamily address_family, OpenCallback callback) {
+  if (is_opened_) {
+    std::move(callback).Run(net::ERR_UNEXPECTED);
+    return;
+  }
+  int result = wrapped_socket_->Open(address_family);
+  is_opened_ = (result == net::OK);
+  std::move(callback).Run(result);
+}
+
+void UDPSocket::Connect(const net::IPEndPoint& remote_addr,
+                        ConnectCallback callback) {
+  net::IPEndPoint local_addr_out;
+  int result;
+  if (!is_opened_) {
+    result = net::ERR_UNEXPECTED;
+    std::move(callback).Run(result, base::nullopt);
+    return;
+  }
+  if (IsConnectedOrBound()) {
+    result = net::ERR_SOCKET_IS_CONNECTED;
+    std::move(callback).Run(result, base::nullopt);
+    return;
+  }
+  result = wrapped_socket_->Connect(remote_addr);
+  if (result == net::OK) {
+    is_connected_ = true;
+    result = wrapped_socket_->GetLocalAddress(&local_addr_out);
+  }
+  std::move(callback).Run(result, local_addr_out);
+}
+
+void UDPSocket::Bind(const net::IPEndPoint& local_addr, BindCallback callback) {
+  net::IPEndPoint local_addr_out;
+
+  int result;
+  if (!is_opened_) {
+    result = net::ERR_UNEXPECTED;
+    std::move(callback).Run(result, base::nullopt);
+    return;
+  }
+  if (IsConnectedOrBound()) {
+    result = net::ERR_SOCKET_IS_CONNECTED;
+    std::move(callback).Run(result, base::nullopt);
+    return;
+  }
+  result = wrapped_socket_->Bind(local_addr);
+  if (result == net::OK) {
+    is_bound_ = true;
+    result = wrapped_socket_->GetLocalAddress(&local_addr_out);
+  }
+  std::move(callback).Run(result, base::make_optional(local_addr_out));
+}
+
+void UDPSocket::SetSendBufferSize(uint32_t size,
+                                  SetSendBufferSizeCallback callback) {
+  if (!is_opened_) {
+    std::move(callback).Run(net::ERR_UNEXPECTED);
+    return;
+  }
+  int net_result =
+      wrapped_socket_->SetSendBufferSize(base::saturated_cast<int32_t>(size));
+  std::move(callback).Run(net_result);
+}
+
+void UDPSocket::SetReceiveBufferSize(uint32_t size,
+                                     SetReceiveBufferSizeCallback callback) {
+  if (!is_opened_) {
+    std::move(callback).Run(net::ERR_UNEXPECTED);
+    return;
+  }
+  int net_result = wrapped_socket_->SetReceiveBufferSize(
+      base::saturated_cast<int32_t>(size));
+  std::move(callback).Run(net_result);
+}
+
+void UDPSocket::ReceiveMore(uint32_t num_additional_datagrams) {
+  if (!receiver_)
+    return;
+  if (!IsConnectedOrBound()) {
+    receiver_->OnReceived(net::ERR_UNEXPECTED, base::nullopt, base::nullopt);
+    return;
+  }
+  if (num_additional_datagrams == 0)
+    return;
+  // Check for overflow.
+  if (!base::CheckAdd(remaining_recv_slots_, num_additional_datagrams)
+           .AssignIfValid(&remaining_recv_slots_)) {
+    return;
+  }
+  if (!recvfrom_buffer_) {
+    DCHECK_EQ(num_additional_datagrams, remaining_recv_slots_);
+    DoRecvFrom();
+  }
+}
+
+void UDPSocket::SendTo(const net::IPEndPoint& dest_addr,
+                       base::span<const uint8_t> data,
+                       SendToCallback callback) {
+  if (!is_bound_) {
+    std::move(callback).Run(net::ERR_UNEXPECTED);
+    return;
+  }
+  DoSendToOrWrite(&dest_addr, data, std::move(callback));
+}
+
+void UDPSocket::Send(base::span<const uint8_t> data, SendCallback callback) {
+  if (!is_connected_) {
+    std::move(callback).Run(net::ERR_UNEXPECTED);
+    return;
+  }
+  DoSendToOrWrite(nullptr, data, std::move(callback));
+}
+
+bool UDPSocket::IsConnectedOrBound() const {
+  return is_connected_ || is_bound_;
+}
+
+void UDPSocket::DoRecvFrom() {
+  DCHECK(receiver_);
+  DCHECK(!recvfrom_buffer_);
+  DCHECK_GT(remaining_recv_slots_, 0u);
+
+  recvfrom_buffer_ = new net::IOBuffer(kMaxReadSize);
+
+  // base::Unretained(this) is safe because socket is owned by |this|.
+  int net_result = wrapped_socket_->RecvFrom(
+      recvfrom_buffer_.get(), kMaxReadSize, &recvfrom_address_,
+      base::BindRepeating(&UDPSocket::OnRecvFromCompleted,
+                          base::Unretained(this)));
+  if (net_result != net::ERR_IO_PENDING)
+    OnRecvFromCompleted(net_result);
+}
+
+void UDPSocket::DoSendToOrWrite(const net::IPEndPoint* dest_addr,
+                                const base::span<const uint8_t>& data,
+                                SendToCallback callback) {
+  if (pending_send_requests_.size() >= kMaxPendingSendRequests) {
+    std::move(callback).Run(net::ERR_INSUFFICIENT_RESOURCES);
+    return;
+  }
+
+  if (data.size() > kMaxPacketSize) {
+    std::move(callback).Run(net::ERR_MSG_TOO_BIG);
+    return;
+  }
+
+  // |data| points to a range of bytes in the received message and will be
+  // freed when this method returns, so copy out the bytes now.
+  scoped_refptr<net::IOBufferWithSize> buffer =
+      new net::IOBufferWithSize(data.size());
+  memcpy(buffer.get()->data(), data.begin(), data.size());
+
+  if (send_buffer_.get()) {
+    auto request = std::make_unique<PendingSendRequest>();
+    if (dest_addr)
+      request->addr = std::make_unique<net::IPEndPoint>(*dest_addr);
+    request->data = buffer;
+    request->callback = std::move(callback);
+    pending_send_requests_.push_back(std::move(request));
+    return;
+  }
+
+  DoSendToOrWriteBuffer(dest_addr, buffer, std::move(callback));
+}
+
+void UDPSocket::DoSendToOrWriteBuffer(
+    const net::IPEndPoint* dest_addr,
+    scoped_refptr<net::IOBufferWithSize> buffer,
+    SendToCallback callback) {
+  DCHECK(!send_buffer_);
+  DCHECK(send_callback_.is_null());
+
+  send_buffer_ = buffer;
+  send_callback_ = std::move(callback);
+  // base::Unretained(this) is safe because socket is owned by |this|.
+  int net_result;
+  if (dest_addr) {
+    net_result = wrapped_socket_->SendTo(
+        buffer.get(), buffer->size(), *dest_addr,
+        base::BindRepeating(&UDPSocket::OnSendToCompleted,
+                            base::Unretained(this)));
+  } else {
+    net_result = wrapped_socket_->Write(
+        buffer.get(), buffer->size(),
+        base::BindRepeating(&UDPSocket::OnSendToCompleted,
+                            base::Unretained(this)));
+  }
+  if (net_result != net::ERR_IO_PENDING)
+    OnSendToCompleted(net_result);
+}
+
+void UDPSocket::OnRecvFromCompleted(int net_result) {
+  DCHECK(recvfrom_buffer_);
+
+  if (net_result >= 0) {
+    receiver_->OnReceived(
+        net::OK,
+        is_bound_ ? base::make_optional(recvfrom_address_) : base::nullopt,
+        base::span<const uint8_t>(
+            reinterpret_cast<const uint8_t*>(recvfrom_buffer_->data()),
+            static_cast<size_t>(net_result)));
+  } else {
+    receiver_->OnReceived(net_result, base::nullopt, base::nullopt);
+  }
+  recvfrom_buffer_ = nullptr;
+  DCHECK_GT(remaining_recv_slots_, 0u);
+  remaining_recv_slots_--;
+  if (remaining_recv_slots_ > 0)
+    DoRecvFrom();
+}
+
+void UDPSocket::OnSendToCompleted(int net_result) {
+  DCHECK(send_buffer_.get());
+  DCHECK(!send_callback_.is_null());
+
+  if (net_result > net::OK)
+    net_result = net::OK;
+  send_buffer_ = nullptr;
+  std::move(send_callback_).Run(net_result);
+
+  if (pending_send_requests_.empty())
+    return;
+  std::unique_ptr<PendingSendRequest> request =
+      std::move(pending_send_requests_.front());
+  pending_send_requests_.pop_front();
+  DoSendToOrWriteBuffer(request->addr.get(), request->data,
+                        std::move(request->callback));
+}
+
+}  // namespace network
diff --git a/services/network/udp_socket.h b/services/network/udp_socket.h
new file mode 100644
index 0000000..32bb21e5
--- /dev/null
+++ b/services/network/udp_socket.h
@@ -0,0 +1,153 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_NETWORK_UDP_SOCKET_H_
+#define SERVICES_NETWORK_UDP_SOCKET_H_
+
+#include <deque>
+#include <memory>
+#include <vector>
+
+#include "base/containers/span.h"
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "mojo/public/cpp/bindings/interface_request.h"
+#include "net/base/address_family.h"
+#include "net/base/completion_callback.h"
+#include "net/base/ip_endpoint.h"
+#include "net/interfaces/address_family.mojom.h"
+#include "net/interfaces/ip_endpoint.mojom.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
+
+namespace net {
+class IOBuffer;
+class IOBufferWithSize;
+}  // namespace net
+
+namespace network {
+
+class UDPSocket : public mojom::UDPSocket {
+ public:
+  // Number of Send()/SendTo() requests that are queued internally. Public for
+  // testing.
+  static const uint32_t kMaxPendingSendRequests = 32;
+  // A socket wrapper class that allows tests to substitute the default
+  // implementation (implemented using net::UDPSocket) with a test
+  // implementation.
+  class SocketWrapper {
+   public:
+    virtual ~SocketWrapper() {}
+    // This wrapper class forwards the functions to an concrete udp socket
+    // implementation. Please refer to udp_socket_posix.h/udp_socket_win.h for
+    // definitions.
+    virtual int Open(net::AddressFamily address_family) = 0;
+    virtual int Connect(const net::IPEndPoint& remote_addr) = 0;
+    virtual int Bind(const net::IPEndPoint& local_addr) = 0;
+    virtual int SetSendBufferSize(uint32_t size) = 0;
+    virtual int SetReceiveBufferSize(uint32_t size) = 0;
+    virtual int SendTo(net::IOBuffer* buf,
+                       int buf_len,
+                       const net::IPEndPoint& dest_addr,
+                       const net::CompletionCallback& callback) = 0;
+    virtual int Write(net::IOBuffer* buf,
+                      int buf_len,
+                      const net::CompletionCallback& callback) = 0;
+    virtual int RecvFrom(net::IOBuffer* buf,
+                         int buf_len,
+                         net::IPEndPoint* address,
+                         const net::CompletionCallback& callback) = 0;
+    virtual int GetLocalAddress(net::IPEndPoint* address) const = 0;
+  };
+
+  UDPSocket(mojom::UDPSocketRequest request,
+            mojom::UDPSocketReceiverPtr receiver);
+  ~UDPSocket() override;
+
+  // Sets connection error handler.
+  void set_connection_error_handler(base::OnceClosure handler);
+
+  // UDPSocket implementation.
+  void Open(net::AddressFamily address_family, OpenCallback callback) override;
+  void Connect(const net::IPEndPoint& remote_addr,
+               ConnectCallback callback) override;
+  void Bind(const net::IPEndPoint& local_addr, BindCallback callback) override;
+  void SetSendBufferSize(uint32_t size,
+                         SetSendBufferSizeCallback callback) override;
+  void SetReceiveBufferSize(uint32_t size,
+                            SetReceiveBufferSizeCallback callback) override;
+  void ReceiveMore(uint32_t num_additional_datagrams) override;
+  void SendTo(const net::IPEndPoint& dest_addr,
+              base::span<const uint8_t> data,
+              SendToCallback callback) override;
+  void Send(base::span<const uint8_t> data, SendCallback callback) override;
+
+ private:
+  friend class UDPSocketTest;
+
+  // Represents a pending Send()/SendTo() request that is yet to be sent to the
+  // |socket_|. In the case of Send(), |addr| will be not filled in.
+  struct PendingSendRequest {
+    PendingSendRequest();
+    ~PendingSendRequest();
+
+    std::unique_ptr<net::IPEndPoint> addr;
+    scoped_refptr<net::IOBufferWithSize> data;
+    SendToCallback callback;
+  };
+
+  // Returns whether a successful Connect() or Bind() has been executed.
+  bool IsConnectedOrBound() const;
+
+  void DoRecvFrom();
+  void DoSendToOrWrite(const net::IPEndPoint* dest_addr,
+                       const base::span<const uint8_t>& data,
+                       SendToCallback callback);
+  void DoSendToOrWriteBuffer(const net::IPEndPoint* dest_addr,
+                             scoped_refptr<net::IOBufferWithSize> buffer,
+                             SendToCallback callback);
+
+  void OnRecvFromCompleted(int net_result);
+  void OnSendToCompleted(int net_result);
+
+  // Whether an Open() has been successfully executed.
+  bool is_opened_;
+
+  // Whether a Bind() has been successfully executed.
+  bool is_bound_;
+
+  // Whether a Connect() has been successfully executed.
+  bool is_connected_;
+
+  // The interface which gets data from fulfilled receive requests.
+  mojom::UDPSocketReceiverPtr receiver_;
+
+  std::unique_ptr<SocketWrapper> wrapped_socket_;
+
+  // Non-null when there is a pending RecvFrom operation on socket.
+  scoped_refptr<net::IOBuffer> recvfrom_buffer_;
+
+  // Non-null when there is a pending Send/SendTo operation on socket.
+  scoped_refptr<net::IOBufferWithSize> send_buffer_;
+  SendToCallback send_callback_;
+
+  // The address of the sender of a received packet. This address might not be
+  // filled if an error occurred during the receiving of the packet.
+  net::IPEndPoint recvfrom_address_;
+
+  // How many more packets the client side expects to receive.
+  uint32_t remaining_recv_slots_;
+
+  // The queue owns the PendingSendRequest instances.
+  base::circular_deque<std::unique_ptr<PendingSendRequest>>
+      pending_send_requests_;
+
+  mojo::Binding<mojom::UDPSocket> binding_;
+
+  DISALLOW_COPY_AND_ASSIGN(UDPSocket);
+};
+
+}  // namespace network
+
+#endif  // SERVICES_NETWORK_UDP_SOCKET_H_
diff --git a/services/network/udp_socket_factory.cc b/services/network/udp_socket_factory.cc
new file mode 100644
index 0000000..54ac3e4
--- /dev/null
+++ b/services/network/udp_socket_factory.cc
@@ -0,0 +1,40 @@
+// 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 "services/network/udp_socket_factory.h"
+
+#include <utility>
+
+#include "base/memory/ptr_util.h"
+#include "base/optional.h"
+#include "net/base/net_errors.h"
+#include "services/network/udp_socket.h"
+
+namespace network {
+
+UDPSocketFactory::UDPSocketFactory() {}
+
+UDPSocketFactory::~UDPSocketFactory() {}
+
+void UDPSocketFactory::CreateUDPSocket(mojom::UDPSocketRequest request,
+                                       mojom::UDPSocketReceiverPtr receiver) {
+  auto socket =
+      std::make_unique<UDPSocket>(std::move(request), std::move(receiver));
+  // base::Unretained is safe as the destruction of |this| will also destroy
+  // |udp_sockets_| which owns this socket.
+  socket->set_connection_error_handler(
+      base::BindOnce(&UDPSocketFactory::OnPipeBroken, base::Unretained(this),
+                     base::Unretained(socket.get())));
+  udp_sockets_.push_back(std::move(socket));
+}
+
+void UDPSocketFactory::OnPipeBroken(UDPSocket* socket) {
+  udp_sockets_.erase(
+      std::find_if(udp_sockets_.begin(), udp_sockets_.end(),
+                   [socket](const std::unique_ptr<network::UDPSocket>& ptr) {
+                     return ptr.get() == socket;
+                   }));
+}
+
+}  // namespace network
diff --git a/services/network/udp_socket_factory.h b/services/network/udp_socket_factory.h
new file mode 100644
index 0000000..8f408b3
--- /dev/null
+++ b/services/network/udp_socket_factory.h
@@ -0,0 +1,40 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SERVICES_NETWORK_UDP_SOCKET_FACTORY_H_
+#define SERVICES_NETWORK_UDP_SOCKET_FACTORY_H_
+
+#include <memory>
+#include <vector>
+
+#include "base/macros.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
+
+namespace network {
+
+class UDPSocket;
+
+// Helper class that handles UDPSocketRequest. It takes care of destroying the
+// UDPSocket implementation instances when mojo pipes are broken.
+class UDPSocketFactory {
+ public:
+  UDPSocketFactory();
+  virtual ~UDPSocketFactory();
+
+  void CreateUDPSocket(mojom::UDPSocketRequest request,
+                       mojom::UDPSocketReceiverPtr receiver);
+
+ protected:
+  // Handles connection errors. This is virtual for testing.
+  virtual void OnPipeBroken(UDPSocket* client);
+
+ private:
+  std::vector<std::unique_ptr<UDPSocket>> udp_sockets_;
+
+  DISALLOW_COPY_AND_ASSIGN(UDPSocketFactory);
+};
+
+}  // namespace network
+
+#endif  // SERVICES_NETWORK_UDP_SOCKET_FACTORY_H_
diff --git a/services/network/udp_socket_factory_unittest.cc b/services/network/udp_socket_factory_unittest.cc
new file mode 100644
index 0000000..0e08576
--- /dev/null
+++ b/services/network/udp_socket_factory_unittest.cc
@@ -0,0 +1,63 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <utility>
+
+#include "services/network/udp_socket_factory.h"
+
+#include "base/logging.h"
+#include "base/macros.h"
+#include "base/run_loop.h"
+#include "base/test/scoped_task_environment.h"
+#include "net/base/net_errors.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace network {
+
+class UDPSocketFactoryTest : public testing::Test {
+ public:
+  UDPSocketFactoryTest() {}
+  ~UDPSocketFactoryTest() override {}
+
+ private:
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
+
+  DISALLOW_COPY_AND_ASSIGN(UDPSocketFactoryTest);
+};
+
+class TestUDPSocketFactory : public UDPSocketFactory {
+ public:
+  TestUDPSocketFactory() {}
+  ~TestUDPSocketFactory() override {}
+
+  void WaitUntilPipeBroken() { run_loop_.Run(); }
+
+ private:
+  // UDPSocketFactory implementation:
+  void OnPipeBroken(UDPSocket* client) override {
+    UDPSocketFactory::OnPipeBroken(client);
+    run_loop_.Quit();
+  }
+
+  base::RunLoop run_loop_;
+};
+// Tests that when client end of the pipe is closed, the factory implementation
+// cleans up the server side of the pipe.
+TEST_F(UDPSocketFactoryTest, ConnectionError) {
+  TestUDPSocketFactory factory;
+
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+
+  factory.CreateUDPSocket(mojo::MakeRequest(&socket_ptr),
+                          std::move(receiver_interface_ptr));
+
+  // Close client side of the pipe.
+  socket_ptr.reset();
+
+  factory.WaitUntilPipeBroken();
+}
+
+}  // namespace network
diff --git a/services/network/udp_socket_test_util.cc b/services/network/udp_socket_test_util.cc
new file mode 100644
index 0000000..7bb7de4f
--- /dev/null
+++ b/services/network/udp_socket_test_util.cc
@@ -0,0 +1,191 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "services/network/udp_socket_test_util.h"
+
+#include <utility>
+
+#include "base/run_loop.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace network {
+
+namespace test {
+
+int UDPSocketTestHelper::OpenSync(mojom::UDPSocketPtr* socket,
+                                  net::AddressFamily address_family) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->Open(
+      address_family,
+      base::BindOnce(
+          [](base::RunLoop* run_loop, int* result_out, int result) {
+            *result_out = result;
+            run_loop->Quit();
+          },
+          base::Unretained(&run_loop), base::Unretained(&net_error)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::ConnectSync(mojom::UDPSocketPtr* socket,
+                                     const net::IPEndPoint& remote_addr,
+                                     net::IPEndPoint* local_addr_out) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->Connect(
+      remote_addr,
+      base::BindOnce(
+          [](base::RunLoop* run_loop, int* result_out,
+             net::IPEndPoint* local_addr_out, int result,
+             const base::Optional<net::IPEndPoint>& local_addr) {
+            *result_out = result;
+            if (local_addr) {
+              *local_addr_out = local_addr.value();
+            }
+            run_loop->Quit();
+          },
+          base::Unretained(&run_loop), base::Unretained(&net_error),
+          base::Unretained(local_addr_out)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::BindSync(mojom::UDPSocketPtr* socket,
+                                  const net::IPEndPoint& local_addr,
+                                  net::IPEndPoint* local_addr_out) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->Bind(
+      local_addr, base::BindOnce(
+                      [](base::RunLoop* run_loop, int* result_out,
+                         net::IPEndPoint* local_addr_out, int result,
+                         const base::Optional<net::IPEndPoint>& local_addr) {
+                        *result_out = result;
+                        if (local_addr) {
+                          *local_addr_out = local_addr.value();
+                        }
+                        run_loop->Quit();
+                      },
+                      base::Unretained(&run_loop), base::Unretained(&net_error),
+                      base::Unretained(local_addr_out)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::SendToSync(mojom::UDPSocketPtr* socket,
+                                    const net::IPEndPoint& remote_addr,
+                                    const std::vector<uint8_t>& input) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->SendTo(
+      remote_addr, input,
+      base::BindOnce(
+          [](base::RunLoop* run_loop, int* result_out, int result) {
+            *result_out = result;
+            run_loop->Quit();
+          },
+          base::Unretained(&run_loop), base::Unretained(&net_error)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::SendSync(mojom::UDPSocketPtr* socket,
+                                  const std::vector<uint8_t>& input) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->Send(
+      input, base::BindOnce(
+                 [](base::RunLoop* run_loop, int* result_out, int result) {
+                   *result_out = result;
+                   run_loop->Quit();
+                 },
+                 base::Unretained(&run_loop), base::Unretained(&net_error)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::SetSendBufferSizeSync(mojom::UDPSocketPtr* socket,
+                                               size_t size) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->SetSendBufferSize(
+      size, base::BindOnce(
+                [](base::RunLoop* run_loop, int* result_out, int result) {
+                  *result_out = result;
+                  run_loop->Quit();
+                },
+                base::Unretained(&run_loop), base::Unretained(&net_error)));
+  run_loop.Run();
+  return net_error;
+}
+
+int UDPSocketTestHelper::SetReceiveBufferSizeSync(mojom::UDPSocketPtr* socket,
+                                                  size_t size) {
+  base::RunLoop run_loop;
+  int net_error = net::ERR_FAILED;
+  socket->get()->SetReceiveBufferSize(
+      size, base::BindOnce(
+                [](base::RunLoop* run_loop, int* result_out, int result) {
+                  *result_out = result;
+                  run_loop->Quit();
+                },
+                base::Unretained(&run_loop), base::Unretained(&net_error)));
+  run_loop.Run();
+  return net_error;
+}
+
+UDPSocketReceiverImpl::ReceivedResult::ReceivedResult(
+    int net_error_arg,
+    const base::Optional<net::IPEndPoint>& src_addr_arg,
+    base::Optional<std::vector<uint8_t>> data_arg)
+    : net_error(net_error_arg),
+      src_addr(src_addr_arg),
+      data(std::move(data_arg)) {}
+
+UDPSocketReceiverImpl::ReceivedResult::ReceivedResult(
+    const ReceivedResult& other) = default;
+
+UDPSocketReceiverImpl::ReceivedResult::~ReceivedResult() {}
+
+UDPSocketReceiverImpl::UDPSocketReceiverImpl()
+    : run_loop_(std::make_unique<base::RunLoop>()),
+      expected_receive_count_(0) {}
+
+UDPSocketReceiverImpl::~UDPSocketReceiverImpl() {}
+
+void UDPSocketReceiverImpl::WaitForReceivedResults(size_t count) {
+  DCHECK_LE(results_.size(), count);
+  DCHECK_EQ(0u, expected_receive_count_);
+
+  if (results_.size() == count)
+    return;
+
+  expected_receive_count_ = count;
+  run_loop_->Run();
+  run_loop_ = std::make_unique<base::RunLoop>();
+}
+
+void UDPSocketReceiverImpl::OnReceived(
+    int32_t result,
+    const base::Optional<net::IPEndPoint>& src_addr,
+    base::Optional<base::span<const uint8_t>> data) {
+  // OnReceive() API contracts specifies that this method will not be called
+  // with a |result| that is > 0.
+  DCHECK_GE(0, result);
+  DCHECK(result < 0 || data);
+
+  results_.emplace_back(result, src_addr,
+                        data ? base::make_optional(std::vector<uint8_t>(
+                                   data.value().begin(), data.value().end()))
+                             : base::nullopt);
+  if (results_.size() == expected_receive_count_) {
+    expected_receive_count_ = 0;
+    run_loop_->Quit();
+  }
+}
+
+}  // namespace test
+
+}  // namespace network
diff --git a/services/network/udp_socket_test_util.h b/services/network/udp_socket_test_util.h
new file mode 100644
index 0000000..01b58fdf
--- /dev/null
+++ b/services/network/udp_socket_test_util.h
@@ -0,0 +1,91 @@
+// 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 SERVICES_NETWORK_UDP_SOCKET_TEST_UTIL_H_
+#define SERVICES_NETWORK_UDP_SOCKET_TEST_UTIL_H_
+
+#include <stdint.h>
+
+#include <memory>
+#include <vector>
+
+#include "base/containers/span.h"
+#include "base/macros.h"
+#include "base/optional.h"
+#include "base/run_loop.h"
+#include "net/base/ip_endpoint.h"
+#include "net/base/net_errors.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
+
+namespace network {
+
+namespace test {
+
+// Helper functions to invoke the corresponding mojo APIs and wait for
+// completion.
+class UDPSocketTestHelper {
+ public:
+  // TODO(xunjieli): Make the helper takes in a UDPSocketPtr* and these into
+  // member methods.
+  static int OpenSync(mojom::UDPSocketPtr* socket,
+                      net::AddressFamily address_family);
+
+  static int ConnectSync(mojom::UDPSocketPtr* socket,
+                         const net::IPEndPoint& remote_addr,
+                         net::IPEndPoint* local_addr_out);
+
+  static int BindSync(mojom::UDPSocketPtr* socket,
+                      const net::IPEndPoint& local_addr,
+                      net::IPEndPoint* local_addr_out);
+
+  static int SendToSync(mojom::UDPSocketPtr* socket,
+                        const net::IPEndPoint& remote_addr,
+                        const std::vector<uint8_t>& input);
+
+  static int SendSync(mojom::UDPSocketPtr* socket,
+                      const std::vector<uint8_t>& input);
+
+  static int SetSendBufferSizeSync(mojom::UDPSocketPtr* socket, size_t size);
+
+  static int SetReceiveBufferSizeSync(mojom::UDPSocketPtr* socket, size_t size);
+};
+
+// An implementation of mojom::UDPSocketReceiver that records received results.
+class UDPSocketReceiverImpl : public mojom::UDPSocketReceiver {
+ public:
+  struct ReceivedResult {
+    ReceivedResult(int net_error_arg,
+                   const base::Optional<net::IPEndPoint>& src_addr_arg,
+                   base::Optional<std::vector<uint8_t>> data_arg);
+    ReceivedResult(const ReceivedResult& other);
+    ~ReceivedResult();
+
+    int net_error;
+    base::Optional<net::IPEndPoint> src_addr;
+    base::Optional<std::vector<uint8_t>> data;
+  };
+
+  UDPSocketReceiverImpl();
+  ~UDPSocketReceiverImpl() override;
+
+  const std::vector<ReceivedResult>& results() const { return results_; }
+
+  void WaitForReceivedResults(size_t count);
+
+ private:
+  void OnReceived(int32_t result,
+                  const base::Optional<net::IPEndPoint>& src_addr,
+                  base::Optional<base::span<const uint8_t>> data) override;
+  std::unique_ptr<base::RunLoop> run_loop_;
+  std::vector<ReceivedResult> results_;
+  size_t expected_receive_count_;
+
+  DISALLOW_COPY_AND_ASSIGN(UDPSocketReceiverImpl);
+};
+
+}  // namespace test
+
+}  // namespace network
+
+#endif  // SERVICES_NETWORK_UDP_SOCKET_TEST_UTIL_H_
diff --git a/services/network/udp_socket_unittest.cc b/services/network/udp_socket_unittest.cc
new file mode 100644
index 0000000..05c645d
--- /dev/null
+++ b/services/network/udp_socket_unittest.cc
@@ -0,0 +1,608 @@
+// 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 <stddef.h>
+#include <stdint.h>
+
+#include <limits>
+#include <utility>
+
+#include "services/network/udp_socket.h"
+
+#include "base/logging.h"
+#include "base/macros.h"
+#include "base/run_loop.h"
+#include "base/test/scoped_task_environment.h"
+#include "mojo/public/cpp/bindings/binding.h"
+#include "net/base/net_errors.h"
+#include "net/socket/udp_socket.h"
+#include "net/traffic_annotation/network_traffic_annotation.h"
+#include "services/network/public/interfaces/udp_socket.mojom.h"
+#include "services/network/udp_socket_test_util.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace network {
+
+namespace {
+
+class SocketWrapperTestImpl : public UDPSocket::SocketWrapper {
+ public:
+  SocketWrapperTestImpl() {}
+  ~SocketWrapperTestImpl() override {}
+
+  int Open(net::AddressFamily address_family) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int Connect(const net::IPEndPoint& remote_addr) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int Bind(const net::IPEndPoint& local_addr) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int SetSendBufferSize(uint32_t size) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int SetReceiveBufferSize(uint32_t size) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int SendTo(net::IOBuffer* buf,
+             int buf_len,
+             const net::IPEndPoint& dest_addr,
+             const net::CompletionCallback& callback) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int Write(net::IOBuffer* buf,
+            int buf_len,
+            const net::CompletionCallback& callback) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+  int RecvFrom(net::IOBuffer* buf,
+               int buf_len,
+               net::IPEndPoint* address,
+               const net::CompletionCallback& callback) override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+
+  int GetLocalAddress(net::IPEndPoint* address) const override {
+    NOTREACHED();
+    return net::ERR_NOT_IMPLEMENTED;
+  }
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(SocketWrapperTestImpl);
+};
+
+net::IPEndPoint GetLocalHostWithAnyPort() {
+  return net::IPEndPoint(net::IPAddress(127, 0, 0, 1), 0);
+}
+
+std::vector<uint8_t> CreateTestMessage(uint8_t initial, size_t size) {
+  std::vector<uint8_t> array(size);
+  for (size_t i = 0; i < size; ++i)
+    array[i] = static_cast<uint8_t>((i + initial) % 256);
+  return array;
+}
+
+// A Mock UDPSocket that always returns net::ERR_IO_PENDING for SendTo()s.
+class HangingUDPSocket : public SocketWrapperTestImpl {
+ public:
+  HangingUDPSocket() {}
+
+  // SocketWrapperTestImpl implementation.
+  int Open(net::AddressFamily address_family) override { return net::OK; }
+  int Bind(const net::IPEndPoint& local_addr) override { return net::OK; }
+  int SendTo(net::IOBuffer* buf,
+             int buf_len,
+             const net::IPEndPoint& address,
+             const net::CompletionCallback& callback) override {
+    EXPECT_EQ(expected_data_,
+              std::vector<unsigned char>(buf->data(), buf->data() + buf_len));
+    if (should_complete_requests_)
+      return net::OK;
+    pending_io_buffers_.push_back(buf);
+    pending_io_buffer_lengths_.push_back(buf_len);
+    pending_send_requests_.push_back(callback);
+    return net::ERR_IO_PENDING;
+  }
+  int GetLocalAddress(net::IPEndPoint* address) const override {
+    *address = GetLocalHostWithAnyPort();
+    return net::OK;
+  }
+
+  void set_expected_data(std::vector<uint8_t> expected_data) {
+    expected_data_ = expected_data;
+  }
+
+  const std::vector<net::IOBuffer*>& pending_io_buffers() const {
+    return pending_io_buffers_;
+  }
+
+  const std::vector<int>& pending_io_buffer_lengths() const {
+    return pending_io_buffer_lengths_;
+  }
+
+  // Completes all pending requests.
+  void CompleteAllPendingRequests() {
+    should_complete_requests_ = true;
+    for (auto request : pending_send_requests_) {
+      request.Run(net::OK);
+    }
+    pending_send_requests_.clear();
+  }
+
+ private:
+  std::vector<uint8_t> expected_data_;
+  bool should_complete_requests_ = false;
+  std::vector<net::IOBuffer*> pending_io_buffers_;
+  std::vector<int> pending_io_buffer_lengths_;
+  std::vector<net::CompletionCallback> pending_send_requests_;
+};
+
+// A Mock UDPSocket that returns 0 byte read.
+class ZeroByteReadUDPSocket : public SocketWrapperTestImpl {
+ public:
+  ZeroByteReadUDPSocket() {}
+  int Open(net::AddressFamily address_family) override { return net::OK; }
+  int Bind(const net::IPEndPoint& local_addr) override { return net::OK; }
+  int RecvFrom(net::IOBuffer* buf,
+               int buf_len,
+               net::IPEndPoint* address,
+               const net::CompletionCallback& callback) override {
+    *address = GetLocalHostWithAnyPort();
+    return 0;
+  }
+  int GetLocalAddress(net::IPEndPoint* address) const override {
+    *address = GetLocalHostWithAnyPort();
+    return net::OK;
+  }
+};
+
+}  // namespace
+
+class UDPSocketTest : public testing::Test {
+ public:
+  UDPSocketTest()
+      : scoped_task_environment_(
+            base::test::ScopedTaskEnvironment::MainThreadType::IO) {}
+  ~UDPSocketTest() override {}
+
+  void SetWrappedSocket(
+      UDPSocket* socket,
+      std::unique_ptr<UDPSocket::SocketWrapper> socket_wrapper) {
+    socket->wrapped_socket_ = std::move(socket_wrapper);
+  }
+
+  uint32_t GetRemainingRecvSlots(UDPSocket* socket) {
+    return socket->remaining_recv_slots_;
+  }
+
+ private:
+  base::test::ScopedTaskEnvironment scoped_task_environment_;
+
+  DISALLOW_COPY_AND_ASSIGN(UDPSocketTest);
+};
+
+TEST_F(UDPSocketTest, Settings) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+  net::IPEndPoint server_addr;
+  net::IPEndPoint any_port(GetLocalHostWithAnyPort());
+
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(&socket_ptr,
+                                                         any_port.GetFamily()));
+  net::IPEndPoint local_addr;
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(&socket_ptr, any_port,
+                                                         &local_addr));
+  EXPECT_NE(local_addr.ToString(), any_port.ToString());
+  EXPECT_EQ(net::OK, test::UDPSocketTestHelper::SetSendBufferSizeSync(
+                         &socket_ptr, 1024));
+  EXPECT_EQ(net::OK, test::UDPSocketTestHelper::SetReceiveBufferSizeSync(
+                         &socket_ptr, 2048));
+}
+
+// Tests that Send() is used after Bind() is not supported. Send() should only
+// be used after Connect().
+TEST_F(UDPSocketTest, TestSendWithBind) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+
+  // Bind() the socket.
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &socket_ptr, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &socket_ptr, server_addr, &server_addr));
+
+  // Connect() has not been used, so Send() is not supported.
+  std::vector<uint8_t> test_msg{1};
+  int result = test::UDPSocketTestHelper::SendSync(&socket_ptr, test_msg);
+  EXPECT_EQ(net::ERR_UNEXPECTED, result);
+}
+
+// Tests that when SendTo() is used after Connect() is not supported. SendTo()
+// should only be used after Bind().
+TEST_F(UDPSocketTest, TestSendToWithConnect) {
+  // Create a server socket to listen for incoming datagrams.
+  test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&receiver_interface_ptr));
+
+  mojom::UDPSocketPtr server_socket;
+  UDPSocket impl(mojo::MakeRequest(&server_socket),
+                 std::move(receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  // Create a client socket to send datagrams.
+  mojom::UDPSocketReceiverPtr client_receiver_ptr;
+  mojom::UDPSocketPtr client_socket;
+  UDPSocket client_impl(mojo::MakeRequest(&client_socket),
+                        std::move(client_receiver_ptr));
+  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &client_socket, client_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::ConnectSync(
+                         &client_socket, server_addr, &client_addr));
+
+  std::vector<uint8_t> test_msg({1});
+  int result = test::UDPSocketTestHelper::SendToSync(&client_socket,
+                                                     server_addr, test_msg);
+  EXPECT_EQ(net::ERR_UNEXPECTED, result);
+}
+
+// Tests that the sequence of calling Open(), Bind()/Connect() and setters is
+// important.
+TEST_F(UDPSocketTest, TestUnexpectedSequences) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+  net::IPEndPoint server_addr;
+  net::IPEndPoint any_port(GetLocalHostWithAnyPort());
+
+  // Before Open(), calling Connect() or Bind() will result in an error.
+  net::IPEndPoint local_addr;
+  ASSERT_EQ(net::ERR_UNEXPECTED, test::UDPSocketTestHelper::BindSync(
+                                     &socket_ptr, any_port, &local_addr));
+  ASSERT_EQ(net::ERR_UNEXPECTED, test::UDPSocketTestHelper::ConnectSync(
+                                     &socket_ptr, any_port, &local_addr));
+
+  // Calling any Setters that depend on Open() should fail.
+  EXPECT_EQ(
+      net::ERR_UNEXPECTED,
+      test::UDPSocketTestHelper::SetSendBufferSizeSync(&socket_ptr, 1024));
+  EXPECT_EQ(
+      net::ERR_UNEXPECTED,
+      test::UDPSocketTestHelper::SetReceiveBufferSizeSync(&socket_ptr, 2048));
+
+  // Now call Open().
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(&socket_ptr,
+                                                         any_port.GetFamily()));
+  EXPECT_NE(local_addr.ToString(), any_port.ToString());
+
+  // It is illegal call Open() twice.
+  ASSERT_EQ(net::ERR_UNEXPECTED, test::UDPSocketTestHelper::OpenSync(
+                                     &socket_ptr, any_port.GetFamily()));
+
+  // Now these Setters should work.
+  EXPECT_EQ(net::OK, test::UDPSocketTestHelper::SetSendBufferSizeSync(
+                         &socket_ptr, 1024));
+  EXPECT_EQ(net::OK, test::UDPSocketTestHelper::SetReceiveBufferSizeSync(
+                         &socket_ptr, 2048));
+
+  // Now Bind() the socket.
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(&socket_ptr, any_port,
+                                                         &local_addr));
+
+  // Calling Connect() after Bind() should fail because they can't be both used.
+  ASSERT_EQ(net::ERR_SOCKET_IS_CONNECTED,
+            test::UDPSocketTestHelper::ConnectSync(&socket_ptr, any_port,
+                                                   &local_addr));
+}
+
+// Tests that if the underlying socket implementation's Send() returned
+// ERR_IO_PENDING, udp_socket.cc doesn't free the send buffer.
+TEST_F(UDPSocketTest, TestBufferValid) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+
+  HangingUDPSocket* socket_raw_ptr = new HangingUDPSocket();
+  SetWrappedSocket(&impl, base::WrapUnique(socket_raw_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &socket_ptr, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &socket_ptr, server_addr, &server_addr));
+  const size_t kDatagramSize = 255;
+  std::vector<uint8_t> test_msg(CreateTestMessage(0, kDatagramSize));
+  socket_raw_ptr->set_expected_data(test_msg);
+  base::RunLoop run_loop;
+  socket_ptr->SendTo(GetLocalHostWithAnyPort(), test_msg,
+                     base::BindOnce(
+                         [](base::RunLoop* run_loop, int result) {
+                           EXPECT_EQ(net::OK, result);
+                           run_loop->Quit();
+                         },
+                         base::Unretained(&run_loop)));
+
+  socket_ptr.FlushForTesting();
+
+  ASSERT_EQ(1u, socket_raw_ptr->pending_io_buffers().size());
+  ASSERT_EQ(1u, socket_raw_ptr->pending_io_buffer_lengths().size());
+  // Make sure the caller of HangingUDPSocket doesn't destroy the send buffer,
+  // and that buffer still contains the exact same data.
+  net::IOBuffer* buf = socket_raw_ptr->pending_io_buffers()[0];
+  int buf_len = socket_raw_ptr->pending_io_buffer_lengths()[0];
+  EXPECT_EQ(test_msg,
+            std::vector<unsigned char>(buf->data(), buf->data() + buf_len));
+}
+
+// Test that exercises the queuing of send requests and makes sure
+// ERR_INSUFFICIENT_RESOURCES is returned appropriately.
+TEST_F(UDPSocketTest, TestInsufficientResources) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+
+  HangingUDPSocket* socket_raw_ptr = new HangingUDPSocket();
+  SetWrappedSocket(&impl, base::WrapUnique(socket_raw_ptr));
+
+  const size_t kQueueSize = UDPSocket::kMaxPendingSendRequests;
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &socket_ptr, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &socket_ptr, server_addr, &server_addr));
+  const size_t kDatagramSize = 255;
+  std::vector<uint8_t> test_msg(CreateTestMessage(0, kDatagramSize));
+  socket_raw_ptr->set_expected_data(test_msg);
+  // Send |kQueueSize| + 1 datagrams in a row, so the queue is filled up.
+  std::vector<std::unique_ptr<base::RunLoop>> run_loops;
+  for (size_t i = 0; i < kQueueSize + 1; ++i) {
+    run_loops.push_back(std::make_unique<base::RunLoop>());
+    socket_ptr->SendTo(GetLocalHostWithAnyPort(), test_msg,
+                       base::BindOnce(
+                           [](base::RunLoop* run_loop, int result) {
+                             EXPECT_EQ(net::OK, result);
+                             run_loop->Quit();
+                           },
+                           base::Unretained(run_loops[i].get())));
+  }
+
+  // SendTo() beyond the queue size should fail.
+  EXPECT_EQ(net::ERR_INSUFFICIENT_RESOURCES,
+            test::UDPSocketTestHelper::SendToSync(
+                &socket_ptr, GetLocalHostWithAnyPort(), test_msg));
+
+  // Complete all pending requests. Queued SendTo() should hear back.
+  socket_raw_ptr->CompleteAllPendingRequests();
+  for (const auto& loop : run_loops) {
+    loop->Run();
+  }
+}
+
+TEST_F(UDPSocketTest, TestReceiveMoreOverflow) {
+  // Create a server socket to listen for incoming datagrams.
+  test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&receiver_interface_ptr));
+
+  mojom::UDPSocketPtr server_socket;
+  UDPSocket impl(mojo::MakeRequest(&server_socket),
+                 std::move(receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  server_socket->ReceiveMore(std::numeric_limits<uint32_t>::max());
+  server_socket.FlushForTesting();
+  EXPECT_EQ(std::numeric_limits<uint32_t>::max(), GetRemainingRecvSlots(&impl));
+  server_socket->ReceiveMore(1);
+  server_socket.FlushForTesting();
+  EXPECT_EQ(std::numeric_limits<uint32_t>::max(), GetRemainingRecvSlots(&impl));
+}
+
+TEST_F(UDPSocketTest, TestReadSend) {
+  // Create a server socket to listen for incoming datagrams.
+  test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&receiver_interface_ptr));
+
+  mojom::UDPSocketPtr server_socket;
+  UDPSocket impl(mojo::MakeRequest(&server_socket),
+                 std::move(receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  // Create a client socket to send datagrams.
+  mojom::UDPSocketReceiverPtr client_receiver_ptr;
+  mojom::UDPSocketPtr client_socket;
+  UDPSocket client_impl(mojo::MakeRequest(&client_socket),
+                        std::move(client_receiver_ptr));
+  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &client_socket, client_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::ConnectSync(
+                         &client_socket, server_addr, &client_addr));
+
+  const size_t kDatagramCount = 6;
+  const size_t kDatagramSize = 255;
+  server_socket->ReceiveMore(kDatagramCount);
+
+  for (size_t i = 0; i < kDatagramCount; ++i) {
+    std::vector<uint8_t> test_msg(
+        CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize));
+    int result = test::UDPSocketTestHelper::SendSync(&client_socket, test_msg);
+    EXPECT_EQ(net::OK, result);
+  }
+
+  receiver.WaitForReceivedResults(kDatagramCount);
+  EXPECT_EQ(kDatagramCount, receiver.results().size());
+
+  int i = 0;
+  for (const auto& result : receiver.results()) {
+    EXPECT_EQ(net::OK, result.net_error);
+    EXPECT_EQ(result.src_addr, client_addr);
+    EXPECT_EQ(CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize),
+              result.data.value());
+    i++;
+  }
+  // Tests that sending a message that is larger than the specified limit
+  // results in an early rejection.
+  std::vector<uint8_t> large_msg(64 * 1024, 1);
+  EXPECT_EQ(net::ERR_MSG_TOO_BIG, test::UDPSocketTestHelper::SendToSync(
+                                      &server_socket, client_addr, large_msg));
+}
+
+TEST_F(UDPSocketTest, TestReadSendTo) {
+  // Create a server socket to send data.
+  mojom::UDPSocketPtr server_socket;
+  mojom::UDPSocketReceiverPtr receiver_ptr;
+  UDPSocket impl(mojo::MakeRequest(&server_socket), std::move(receiver_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  // Create a client socket to send datagrams.
+  test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  mojom::UDPSocketReceiverPtr client_receiver_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&client_receiver_ptr));
+
+  mojom::UDPSocketPtr client_socket;
+  UDPSocket client_impl(mojo::MakeRequest(&client_socket),
+                        std::move(client_receiver_ptr));
+  net::IPEndPoint client_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &client_socket, client_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::ConnectSync(
+                         &client_socket, server_addr, &client_addr));
+
+  const size_t kDatagramCount = 6;
+  const size_t kDatagramSize = 255;
+  client_socket->ReceiveMore(kDatagramCount);
+
+  for (size_t i = 0; i < kDatagramCount; ++i) {
+    std::vector<uint8_t> test_msg(
+        CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize));
+    int result = test::UDPSocketTestHelper::SendToSync(&server_socket,
+                                                       client_addr, test_msg);
+    EXPECT_EQ(net::OK, result);
+  }
+
+  receiver.WaitForReceivedResults(kDatagramCount);
+  EXPECT_EQ(kDatagramCount, receiver.results().size());
+
+  int i = 0;
+  for (const auto& result : receiver.results()) {
+    EXPECT_EQ(net::OK, result.net_error);
+    EXPECT_FALSE(result.src_addr);
+    EXPECT_EQ(CreateTestMessage(static_cast<uint8_t>(i), kDatagramSize),
+              result.data.value());
+    i++;
+  }
+
+  // Tests that sending a message that is larger than the specified limit
+  // results in an early rejection.
+  std::vector<uint8_t> large_msg(64 * 1024, 1);
+  EXPECT_EQ(net::ERR_MSG_TOO_BIG, test::UDPSocketTestHelper::SendToSync(
+                                      &server_socket, client_addr, large_msg));
+}
+
+// Make sure passing an invalid net::IPEndPoint will be detected by
+// serialization/deserialization in mojo.
+TEST_F(UDPSocketTest, TestSendToInvalidAddress) {
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  mojom::UDPSocketPtr server_socket;
+  UDPSocket impl(mojo::MakeRequest(&server_socket),
+                 std::move(receiver_interface_ptr));
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &server_socket, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &server_socket, server_addr, &server_addr));
+
+  std::vector<uint8_t> test_msg{1};
+  std::vector<uint8_t> invalid_ip_addr{127, 0, 0, 0, 1};
+  net::IPAddress ip_address(invalid_ip_addr.data(), invalid_ip_addr.size());
+  EXPECT_FALSE(ip_address.IsValid());
+  net::IPEndPoint invalid_addr(ip_address, 53);
+  server_socket->SendTo(invalid_addr, test_msg,
+                        base::BindOnce([](int result) {}));
+  // Make sure that the pipe is broken upon processing |invalid_addr|.
+  base::RunLoop run_loop;
+  server_socket.set_connection_error_handler(
+      base::BindOnce([](base::RunLoop* run_loop) { run_loop->Quit(); },
+                     base::Unretained(&run_loop)));
+  run_loop.Run();
+}
+
+// Tests that it is legal for UDPSocketReceiver::OnReceive() to be called with
+// 0 byte payload.
+TEST_F(UDPSocketTest, TestReadZeroByte) {
+  test::UDPSocketReceiverImpl receiver;
+  mojo::Binding<mojom::UDPSocketReceiver> receiver_binding(&receiver);
+  mojom::UDPSocketReceiverPtr receiver_interface_ptr;
+  receiver_binding.Bind(mojo::MakeRequest(&receiver_interface_ptr));
+
+  mojom::UDPSocketPtr socket_ptr;
+  UDPSocket impl(mojo::MakeRequest(&socket_ptr),
+                 std::move(receiver_interface_ptr));
+
+  SetWrappedSocket(&impl, std::make_unique<ZeroByteReadUDPSocket>());
+
+  net::IPEndPoint server_addr(GetLocalHostWithAnyPort());
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::OpenSync(
+                         &socket_ptr, server_addr.GetFamily()));
+  ASSERT_EQ(net::OK, test::UDPSocketTestHelper::BindSync(
+                         &socket_ptr, server_addr, &server_addr));
+
+  socket_ptr->ReceiveMore(1);
+
+  receiver.WaitForReceivedResults(1);
+  ASSERT_EQ(1u, receiver.results().size());
+
+  auto result = receiver.results()[0];
+  EXPECT_EQ(net::OK, result.net_error);
+  EXPECT_TRUE(result.data);
+  EXPECT_EQ(std::vector<uint8_t>(), result.data.value());
+}
+
+}  // namespace network
diff --git a/services/proxy_resolver/proxy_resolver_factory_impl.cc b/services/proxy_resolver/proxy_resolver_factory_impl.cc
index af37179e..f2616fc5 100644
--- a/services/proxy_resolver/proxy_resolver_factory_impl.cc
+++ b/services/proxy_resolver/proxy_resolver_factory_impl.cc
@@ -11,9 +11,9 @@
 #include "base/memory/ptr_util.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h"
-#include "net/proxy/proxy_resolver_factory.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.h"
+#include "net/proxy_resolution/proxy_resolver_factory.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 #include "services/proxy_resolver/proxy_resolver_impl.h"
 
 namespace proxy_resolver {
diff --git a/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc b/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc
index cb99096..4984df5 100644
--- a/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc
+++ b/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc
@@ -13,8 +13,8 @@
 #include "mojo/public/cpp/bindings/binding.h"
 #include "mojo/public/cpp/bindings/strong_binding.h"
 #include "net/base/test_completion_callback.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "services/service_manager/public/cpp/service_context_ref.h"
diff --git a/services/proxy_resolver/proxy_resolver_impl.cc b/services/proxy_resolver/proxy_resolver_impl.cc
index c1cb4d6..94369e3 100644
--- a/services/proxy_resolver/proxy_resolver_impl.cc
+++ b/services/proxy_resolver/proxy_resolver_impl.cc
@@ -9,10 +9,10 @@
 #include "base/macros.h"
 #include "base/memory/ptr_util.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/mojo_proxy_resolver_v8_tracing_bindings.h"
-#include "net/proxy/pac_file_data.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
+#include "net/proxy_resolution/mojo_proxy_resolver_v8_tracing_bindings.h"
+#include "net/proxy_resolution/pac_file_data.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 #include "services/service_manager/public/cpp/service_context_ref.h"
 
 namespace proxy_resolver {
diff --git a/services/proxy_resolver/proxy_resolver_impl.h b/services/proxy_resolver/proxy_resolver_impl.h
index d8220c9..8dd444ff 100644
--- a/services/proxy_resolver/proxy_resolver_impl.h
+++ b/services/proxy_resolver/proxy_resolver_impl.h
@@ -10,7 +10,7 @@
 
 #include "base/macros.h"
 #include "base/memory/ref_counted.h"
-#include "net/proxy/proxy_resolver.h"
+#include "net/proxy_resolution/proxy_resolver.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
 
 namespace net {
diff --git a/services/proxy_resolver/proxy_resolver_impl_unittest.cc b/services/proxy_resolver/proxy_resolver_impl_unittest.cc
index 6f315d4..129e9a39 100644
--- a/services/proxy_resolver/proxy_resolver_impl_unittest.cc
+++ b/services/proxy_resolver/proxy_resolver_impl_unittest.cc
@@ -13,10 +13,10 @@
 #include "base/test/scoped_task_environment.h"
 #include "mojo/public/cpp/bindings/binding.h"
 #include "net/base/net_errors.h"
-#include "net/proxy/mock_proxy_resolver.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_resolver_v8_tracing.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/mock_proxy_resolver.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_resolver_v8_tracing.h"
 #include "net/test/event_waiter.h"
 #include "net/test/gtest_util.h"
 #include "services/service_manager/public/cpp/service_context_ref.h"
diff --git a/services/proxy_resolver/public/cpp/proxy_resolver.typemap b/services/proxy_resolver/public/cpp/proxy_resolver.typemap
index c1c3be4..19ddb9d 100644
--- a/services/proxy_resolver/public/cpp/proxy_resolver.typemap
+++ b/services/proxy_resolver/public/cpp/proxy_resolver.typemap
@@ -4,8 +4,8 @@
 
 mojom = "//services/proxy_resolver/public/interfaces/proxy_resolver.mojom"
 public_headers = [
-  "//net/proxy/proxy_server.h",
-  "//net/proxy/proxy_info.h",
+  "//net/base/proxy_server.h",
+  "//net/proxy_resolution/proxy_info.h",
 ]
 traits_headers =
     [ "//services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.h" ]
diff --git a/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.cc b/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.cc
index 8f1a5fb..66cfaec 100644
--- a/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.cc
+++ b/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.cc
@@ -6,8 +6,8 @@
 
 #include "base/logging.h"
 #include "net/base/host_port_pair.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
 
 namespace mojo {
 
diff --git a/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.h b/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.h
index f9000922..4265dc3 100644
--- a/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.h
+++ b/services/proxy_resolver/public/cpp/proxy_resolver_struct_traits.h
@@ -9,9 +9,9 @@
 #include "mojo/public/cpp/bindings/enum_traits.h"
 #include "mojo/public/cpp/bindings/struct_traits.h"
 #include "net/base/host_port_pair.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_list.h"
-#include "net/proxy/proxy_server.h"
+#include "net/base/proxy_server.h"
+#include "net/proxy_resolution/proxy_info.h"
+#include "net/proxy_resolution/proxy_list.h"
 #include "services/proxy_resolver/public/interfaces/proxy_resolver.mojom.h"
 
 namespace net {
diff --git a/services/service_manager/public/cpp/connector.cc b/services/service_manager/public/cpp/connector.cc
index cdbbd81..776b9a7 100644
--- a/services/service_manager/public/cpp/connector.cc
+++ b/services/service_manager/public/cpp/connector.cc
@@ -69,7 +69,7 @@
 void Connector::BindInterface(const Identity& target,
                               const std::string& interface_name,
                               mojo::ScopedMessagePipeHandle interface_pipe) {
-  auto service_overrides_iter = local_binder_overrides_.find(target.name());
+  auto service_overrides_iter = local_binder_overrides_.find(target);
   if (service_overrides_iter != local_binder_overrides_.end()) {
     auto override_iter = service_overrides_iter->second.find(interface_name);
     if (override_iter != service_overrides_iter->second.end()) {
@@ -126,24 +126,25 @@
   connector_.reset();
 }
 
-void Connector::OverrideBinderForTesting(const std::string& service_name,
-                                         const std::string& interface_name,
-                                         const TestApi::Binder& binder) {
-  local_binder_overrides_[service_name][interface_name] = binder;
+void Connector::OverrideBinderForTesting(
+    const service_manager::Identity& identity,
+    const std::string& interface_name,
+    const TestApi::Binder& binder) {
+  local_binder_overrides_[identity][interface_name] = binder;
 }
 
-bool Connector::HasBinderOverride(const std::string& service_name,
+bool Connector::HasBinderOverride(const service_manager::Identity& identity,
                                   const std::string& interface_name) {
-  auto service_overrides = local_binder_overrides_.find(service_name);
+  auto service_overrides = local_binder_overrides_.find(identity);
   if (service_overrides == local_binder_overrides_.end())
     return false;
 
   return base::ContainsKey(service_overrides->second, interface_name);
 }
 
-void Connector::ClearBinderOverride(const std::string& service_name,
+void Connector::ClearBinderOverride(const service_manager::Identity& identity,
                                     const std::string& interface_name) {
-  auto service_overrides = local_binder_overrides_.find(service_name);
+  auto service_overrides = local_binder_overrides_.find(identity);
   if (service_overrides == local_binder_overrides_.end())
     return;
 
diff --git a/services/service_manager/public/cpp/connector.h b/services/service_manager/public/cpp/connector.h
index 932409079..b1f3af1 100644
--- a/services/service_manager/public/cpp/connector.h
+++ b/services/service_manager/public/cpp/connector.h
@@ -49,19 +49,18 @@
     // Allows caller to specify a callback to bind requests for |interface_name|
     // from |service_name| locally, rather than passing the request through the
     // Service Manager.
-    void OverrideBinderForTesting(const std::string& service_name,
+    void OverrideBinderForTesting(const service_manager::Identity& identity,
                                   const std::string& interface_name,
                                   const Binder& binder) {
-      connector_->OverrideBinderForTesting(service_name, interface_name,
-                                           binder);
+      connector_->OverrideBinderForTesting(identity, interface_name, binder);
     }
-    bool HasBinderOverride(const std::string& service_name,
+    bool HasBinderOverride(const service_manager::Identity& identity,
                            const std::string& interface_name) {
-      return connector_->HasBinderOverride(service_name, interface_name);
+      return connector_->HasBinderOverride(identity, interface_name);
     }
-    void ClearBinderOverride(const std::string& service_name,
+    void ClearBinderOverride(const service_manager::Identity& identity,
                              const std::string& interface_name) {
-      connector_->ClearBinderOverride(service_name, interface_name);
+      connector_->ClearBinderOverride(identity, interface_name);
     }
     void ClearBinderOverrides() { connector_->ClearBinderOverrides(); }
 
@@ -149,12 +148,12 @@
 
   void OnConnectionError();
 
-  void OverrideBinderForTesting(const std::string& service_name,
+  void OverrideBinderForTesting(const service_manager::Identity& identity,
                                 const std::string& interface_name,
                                 const TestApi::Binder& binder);
-  bool HasBinderOverride(const std::string& service_name,
+  bool HasBinderOverride(const service_manager::Identity& identity,
                          const std::string& interface_name);
-  void ClearBinderOverride(const std::string& service_name,
+  void ClearBinderOverride(const service_manager::Identity& identity,
                            const std::string& interface_name);
   void ClearBinderOverrides();
   void SetStartServiceCallback(const StartServiceCallback& callback);
@@ -171,7 +170,8 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  std::map<std::string, BinderOverrideMap> local_binder_overrides_;
+  std::map<service_manager::Identity, BinderOverrideMap>
+      local_binder_overrides_;
   StartServiceCallback start_service_callback_;
 
   base::WeakPtrFactory<Connector> weak_factory_;
diff --git a/services/ui/public/cpp/BUILD.gn b/services/ui/public/cpp/BUILD.gn
index b8903341..97085c84 100644
--- a/services/ui/public/cpp/BUILD.gn
+++ b/services/ui/public/cpp/BUILD.gn
@@ -34,10 +34,6 @@
     "//ui/gfx/geometry",
   ]
 
-  data_deps = [
-    "//services/ui",
-  ]
-
   defines = [ "GL_GLEXT_PROTOTYPES" ]
 
   allow_circular_includes_from = [ ":internal" ]
@@ -72,10 +68,6 @@
     "//ui/gfx/geometry",
   ]
 
-  data_deps = [
-    "//services/ui",
-  ]
-
   defines = [ "GL_GLEXT_PROTOTYPES" ]
 
   if (use_ozone) {
diff --git a/services/ui/public/cpp/gpu/BUILD.gn b/services/ui/public/cpp/gpu/BUILD.gn
index d761ff6..07ecf33a 100644
--- a/services/ui/public/cpp/gpu/BUILD.gn
+++ b/services/ui/public/cpp/gpu/BUILD.gn
@@ -45,6 +45,7 @@
     "//gpu/command_buffer/client",
     "//gpu/command_buffer/client:gles2_cmd_helper",
     "//gpu/command_buffer/client:gles2_implementation",
+    "//gpu/command_buffer/client:raster",
     "//gpu/skia_bindings",
     "//mojo/public/cpp/system",
     "//services/service_manager/public/cpp",
diff --git a/services/ui/public/cpp/input_devices/input_device_controller.cc b/services/ui/public/cpp/input_devices/input_device_controller.cc
index 88ea547..0f2075d 100644
--- a/services/ui/public/cpp/input_devices/input_device_controller.cc
+++ b/services/ui/public/cpp/input_devices/input_device_controller.cc
@@ -21,12 +21,14 @@
 InputDeviceController::~InputDeviceController() = default;
 
 void InputDeviceController::AddInterface(
-    service_manager::BinderRegistry* registry) {
+    service_manager::BinderRegistry* registry,
+    const scoped_refptr<base::SequencedTaskRunner>& task_runner) {
   // base::Unretained() is safe here as this class is tied to the life of
   // Service, so that no requests should come in after this class is deleted.
   registry->AddInterface<mojom::InputDeviceController>(
       base::Bind(&InputDeviceController::BindInputDeviceControllerRequest,
-                 base::Unretained(this)));
+                 base::Unretained(this)),
+      task_runner);
 }
 
 void InputDeviceController::AddKeyboardDeviceObserver(
diff --git a/services/ui/public/cpp/input_devices/input_device_controller.h b/services/ui/public/cpp/input_devices/input_device_controller.h
index bbeeaab..554d944 100644
--- a/services/ui/public/cpp/input_devices/input_device_controller.h
+++ b/services/ui/public/cpp/input_devices/input_device_controller.h
@@ -23,7 +23,9 @@
   ~InputDeviceController() override;
 
   // Registers the interface provided by this class with |registry|.
-  void AddInterface(service_manager::BinderRegistry* registry);
+  void AddInterface(
+      service_manager::BinderRegistry* registry,
+      const scoped_refptr<base::SequencedTaskRunner>& task_runner = nullptr);
 
   // mojom::InputDeviceController::
   void AddKeyboardDeviceObserver(
diff --git a/services/ui/ws/BUILD.gn b/services/ui/ws/BUILD.gn
index 7b5ffbc8..958fec9 100644
--- a/services/ui/ws/BUILD.gn
+++ b/services/ui/ws/BUILD.gn
@@ -320,6 +320,10 @@
     "//ui/gl",
     "//ui/gl/init",
   ]
+
+  data_deps = [
+    "//services/ui",
+  ]
 }
 
 service_manifest("unittests_manifest") {
diff --git a/services/viz/public/cpp/compositing/paint_filter.typemap b/services/viz/public/cpp/compositing/paint_filter.typemap
index 4761a235..8dc59bd4 100644
--- a/services/viz/public/cpp/compositing/paint_filter.typemap
+++ b/services/viz/public/cpp/compositing/paint_filter.typemap
@@ -6,9 +6,6 @@
 public_headers = [ "//cc/paint/paint_filter.h" ]
 traits_headers =
     [ "//services/viz/public/cpp/compositing/paint_filter_struct_traits.h" ]
-sources = [
-  "//services/viz/public/cpp/compositing/paint_filter_struct_traits.cc",
-]
 deps = [
   "//cc/paint",
 ]
diff --git a/services/viz/public/cpp/compositing/paint_filter_struct_traits.cc b/services/viz/public/cpp/compositing/paint_filter_struct_traits.cc
deleted file mode 100644
index 542a7eb3..0000000
--- a/services/viz/public/cpp/compositing/paint_filter_struct_traits.cc
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "services/viz/public/cpp/compositing/paint_filter_struct_traits.h"
-
-namespace mojo {
-
-PaintFilterBuffer::PaintFilterBuffer() = default;
-
-PaintFilterBuffer::PaintFilterBuffer(const PaintFilterBuffer& other) = default;
-
-PaintFilterBuffer::~PaintFilterBuffer() = default;
-
-// static
-size_t ArrayTraits<PaintFilterBuffer>::GetSize(const PaintFilterBuffer& b) {
-  return b.data.size();
-}
-
-// static
-uint8_t* ArrayTraits<PaintFilterBuffer>::GetData(PaintFilterBuffer& b) {
-  return b.data.data();
-}
-
-// static
-const uint8_t* ArrayTraits<PaintFilterBuffer>::GetData(
-    const PaintFilterBuffer& b) {
-  return b.data.data();
-}
-
-// static
-uint8_t& ArrayTraits<PaintFilterBuffer>::GetAt(PaintFilterBuffer& b, size_t i) {
-  return b.data[i];
-}
-
-// static
-const uint8_t& ArrayTraits<PaintFilterBuffer>::GetAt(const PaintFilterBuffer& b,
-                                                     size_t i) {
-  return b.data[i];
-}
-
-// static
-bool ArrayTraits<PaintFilterBuffer>::Resize(PaintFilterBuffer& b, size_t size) {
-  b.data.resize(size);
-  return true;
-}
-
-}  // namespace mojo
diff --git a/services/viz/public/cpp/compositing/paint_filter_struct_traits.h b/services/viz/public/cpp/compositing/paint_filter_struct_traits.h
index 2549650..f4e1723 100644
--- a/services/viz/public/cpp/compositing/paint_filter_struct_traits.h
+++ b/services/viz/public/cpp/compositing/paint_filter_struct_traits.h
@@ -14,51 +14,39 @@
 
 namespace mojo {
 
-struct PaintFilterBuffer {
-  PaintFilterBuffer();
-  PaintFilterBuffer(const PaintFilterBuffer& other);
-  ~PaintFilterBuffer();
-  std::vector<uint8_t> data;
-};
-
-template <>
-struct ArrayTraits<PaintFilterBuffer> {
-  using Element = uint8_t;
-  static size_t GetSize(const PaintFilterBuffer& b);
-  static uint8_t* GetData(PaintFilterBuffer& b);
-  static const uint8_t* GetData(const PaintFilterBuffer& b);
-  static uint8_t& GetAt(PaintFilterBuffer& b, size_t i);
-  static const uint8_t& GetAt(const PaintFilterBuffer& b, size_t i);
-  static bool Resize(PaintFilterBuffer& b, size_t size);
-};
-
 template <>
 struct StructTraits<viz::mojom::PaintFilterDataView, sk_sp<cc::PaintFilter>> {
-  static PaintFilterBuffer data(const sk_sp<cc::PaintFilter>& filter) {
-    PaintFilterBuffer buffer;
+  static base::Optional<std::vector<uint8_t>> data(
+      const sk_sp<cc::PaintFilter>& filter) {
     static const size_t kBufferSize = 8 * 1024;
-    buffer.data.resize(kBufferSize);
-    cc::PaintOpWriter writer(buffer.data.data(), kBufferSize, nullptr, nullptr,
+    std::vector<uint8_t> memory;
+    memory.resize(kBufferSize);
+    cc::PaintOpWriter writer(memory.data(), kBufferSize, nullptr, nullptr,
                              true /* enable_security_constraints */);
     writer.Write(filter.get());
     if (writer.size() == 0)
-      buffer.data.clear();
-    else
-      buffer.data.resize(writer.size());
-    return buffer;
+      return base::nullopt;
+    return memory;
   }
 
   static bool Read(viz::mojom::PaintFilterDataView data,
                    sk_sp<cc::PaintFilter>* out) {
-    PaintFilterBuffer buffer;
+    base::Optional<std::vector<uint8_t>> buffer;
     if (!data.ReadData(&buffer))
       return false;
 
-    cc::PaintOpReader reader(buffer.data.data(), buffer.data.size(), nullptr,
+    if (!buffer) {
+      // We may fail to serialize the filter if it doesn't fit in kBufferSize
+      // above, use an empty filter instead of rejecting the message.
+      *out = nullptr;
+      return true;
+    }
+
+    cc::PaintOpReader reader(buffer->data(), buffer->size(), nullptr,
                              true /* enable_security_constraints */);
     sk_sp<cc::PaintFilter> filter;
     reader.Read(&filter);
-    if (!filter) {
+    if (!reader.valid()) {
       *out = nullptr;
       return false;
     }
diff --git a/services/viz/public/interfaces/compositing/paint_filter.mojom b/services/viz/public/interfaces/compositing/paint_filter.mojom
index 0d7ec11..0f13529 100644
--- a/services/viz/public/interfaces/compositing/paint_filter.mojom
+++ b/services/viz/public/interfaces/compositing/paint_filter.mojom
@@ -6,5 +6,5 @@
 
 // This struct contains a serialized PaintFilter.
 struct PaintFilter {
-  array<uint8> data;
+  array<uint8>? data;
 };
\ No newline at end of file
diff --git a/storage/browser/blob/README.md b/storage/browser/blob/README.md
index dc43649..5897407 100644
--- a/storage/browser/blob/README.md
+++ b/storage/browser/blob/README.md
@@ -54,8 +54,7 @@
 
 * **Blob**: This is a blob object, which can consist of bytes or files, as
 described above.
-* **BlobItem** or **[DataElement](
-https://cs.chromium.org/chromium/src/storage/common/data_element.h)**:
+* **BlobItem**:
 This is a primitive element that can basically be a File, Bytes, or another
 Blob. It also stores an offset and size, so this can be a part of a file. (This
 can also represent a "future" file and "future" bytes, which is used to signify
diff --git a/storage/browser/blob/blob_data_builder.cc b/storage/browser/blob/blob_data_builder.cc
index ce2459e9..fdd0b6eed 100644
--- a/storage/browser/blob/blob_data_builder.cc
+++ b/storage/browser/blob/blob_data_builder.cc
@@ -18,6 +18,7 @@
 #include "base/strings/string_util.h"
 #include "base/time/time.h"
 #include "net/disk_cache/disk_cache.h"
+#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_entry.h"
 #include "storage/browser/blob/blob_storage_registry.h"
 #include "storage/browser/blob/shareable_blob_data_item.h"
@@ -29,7 +30,6 @@
 namespace {
 
 const static int kInvalidDiskCacheSideStreamIndex = -1;
-const FilePath::CharType kFutureFileName[] = FILE_PATH_LITERAL("_future_name_");
 
 }  // namespace
 
@@ -52,8 +52,6 @@
 base::span<char> BlobDataBuilder::FutureData::GetDataToPopulate(
     size_t offset,
     size_t length) const {
-  network::DataElement* element = item_->data_element_ptr();
-
   // We lazily allocate our data buffer by waiting until the first
   // PopulateFutureData call.
   // Why? The reason we have the AppendFutureData  method is to create our Blob
@@ -61,18 +59,17 @@
   // allocating the memory yet, as we might not have the quota yet. So we don't
   // want to allocate the memory until we're actually receiving the data (which
   // the browser process only does when it has quota).
-  if (element->type() == network::DataElement::TYPE_BYTES_DESCRIPTION) {
-    element->SetToAllocatedBytes(element->length());
-    // The type of the element is now TYPE_BYTES.
+  if (item_->type() == BlobDataItem::Type::kBytesDescription) {
+    item_->AllocateBytes();
   }
-  DCHECK_EQ(element->type(), network::DataElement::TYPE_BYTES);
+  DCHECK_EQ(item_->type(), BlobDataItem::Type::kBytes);
   base::CheckedNumeric<size_t> checked_end = offset;
   checked_end += length;
-  if (!checked_end.IsValid() || checked_end.ValueOrDie() > element->length()) {
+  if (!checked_end.IsValid() || checked_end.ValueOrDie() > item_->length()) {
     DVLOG(1) << "Invalid offset or length.";
     return nullptr;
   }
-  return base::make_span(element->mutable_bytes() + offset, length);
+  return item_->mutable_bytes().subspan(offset, length);
 }
 
 BlobDataBuilder::FutureData::FutureData(scoped_refptr<BlobDataItem> item)
@@ -90,13 +87,9 @@
     DVLOG(1) << "File item already populated";
     return false;
   }
-  network::DataElement* element = item_->data_element_ptr();
-  DCHECK_EQ(element->type(), network::DataElement::TYPE_FILE);
-  uint64_t length = element->length();
-  uint64_t offset = element->offset();
-  element->SetToFilePathRange(file_reference->path(), offset, length,
-                              expected_modification_time);
-  item_->data_handle_ = std::move(file_reference);
+  DCHECK_EQ(item_->type(), BlobDataItem::Type::kFile);
+  item_->PopulateFile(file_reference->path(), expected_modification_time,
+                      file_reference);
   item_ = nullptr;
   return true;
 }
@@ -104,33 +97,6 @@
 BlobDataBuilder::FutureFile::FutureFile(scoped_refptr<BlobDataItem> item)
     : item_(item) {}
 
-/* static */
-base::FilePath BlobDataBuilder::GetFutureFileItemPath(uint64_t file_id) {
-  std::string file_id_str = base::NumberToString(file_id);
-  return base::FilePath(kFutureFileName)
-      .AddExtension(
-          base::FilePath::StringType(file_id_str.begin(), file_id_str.end()));
-}
-
-/* static */
-bool BlobDataBuilder::IsFutureFileItem(const network::DataElement& element) {
-  const FilePath::StringType prefix(kFutureFileName);
-  // The prefix shouldn't occur unless the user used "AppendFutureFile". We
-  // DCHECK on AppendFile to make sure no one appends a future file.
-  return base::StartsWith(element.path().value(), prefix,
-                          base::CompareCase::SENSITIVE);
-}
-
-/* static */
-uint64_t BlobDataBuilder::GetFutureFileID(const network::DataElement& element) {
-  DCHECK(IsFutureFileItem(element));
-  uint64_t id = 0;
-  bool success =
-      base::StringToUint64(element.path().Extension().substr(1), &id);
-  DCHECK(success) << element.path().Extension();
-  return id;
-}
-
 BlobDataBuilder::BlobDataBuilder(const std::string& uuid) : uuid_(uuid) {}
 BlobDataBuilder::~BlobDataBuilder() = default;
 
@@ -174,10 +140,7 @@
 void BlobDataBuilder::AppendData(const char* data, size_t length) {
   if (!length)
     return;
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToBytes(data, length);
-  scoped_refptr<BlobDataItem> item = new BlobDataItem(std::move(element));
-
+  auto item = BlobDataItem::CreateBytes(base::make_span(data, length));
   auto shareable_item = base::MakeRefCounted<ShareableBlobDataItem>(
       std::move(item), ShareableBlobDataItem::QUOTA_NEEDED);
   // Even though we already prepopulate this data, we treat it as needing
@@ -194,10 +157,7 @@
 
 BlobDataBuilder::FutureData BlobDataBuilder::AppendFutureData(size_t length) {
   CHECK_NE(length, 0u);
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToBytesDescription(length);
-  scoped_refptr<BlobDataItem> item = new BlobDataItem(std::move(element));
-
+  auto item = BlobDataItem::CreateBytesDescription(length);
   auto shareable_item = base::MakeRefCounted<ShareableBlobDataItem>(
       item, ShareableBlobDataItem::QUOTA_NEEDED);
   pending_transport_items_.push_back(shareable_item);
@@ -217,11 +177,8 @@
     uint64_t length,
     uint64_t file_id) {
   CHECK_NE(length, 0ull);
-  DCHECK_NE(length, network::DataElement::kUnknownSize);
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToFilePathRange(GetFutureFileItemPath(file_id), offset, length,
-                              base::Time());
-  scoped_refptr<BlobDataItem> item = new BlobDataItem(std::move(element));
+  DCHECK_NE(length, BlobDataItem::kUnknownSize);
+  auto item = BlobDataItem::CreateFutureFile(offset, length, file_id);
 
   auto shareable_item = base::MakeRefCounted<ShareableBlobDataItem>(
       item, ShareableBlobDataItem::QUOTA_NEEDED);
@@ -241,19 +198,17 @@
                                  uint64_t offset,
                                  uint64_t length,
                                  const base::Time& expected_modification_time) {
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToFilePathRange(file_path, offset, length,
-                              expected_modification_time);
-  DCHECK(!IsFutureFileItem(*element)) << file_path.value();
-  scoped_refptr<BlobDataItem> item = new BlobDataItem(
-      std::move(element), ShareableFileReference::Get(file_path));
+  auto item = BlobDataItem::CreateFile(file_path, offset, length,
+                                       expected_modification_time,
+                                       ShareableFileReference::Get(file_path));
+  DCHECK(!item->IsFutureFileItem()) << file_path.value();
 
   auto shareable_item = base::MakeRefCounted<ShareableBlobDataItem>(
       std::move(item), ShareableBlobDataItem::POPULATED_WITHOUT_QUOTA);
   items_.push_back(std::move(shareable_item));
 
   total_size_ += length;
-  bool unknown_size = length == network::DataElement::kUnknownSize;
+  bool unknown_size = length == BlobDataItem::kUnknownSize;
   UMA_HISTOGRAM_BOOLEAN("Storage.BlobItemSize.File.Unknown", unknown_size);
   if (!unknown_size)
     UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.File", length / 1024);
@@ -264,9 +219,6 @@
                                  uint64_t length,
                                  const BlobStorageRegistry& blob_registry) {
   DCHECK_GT(length, 0ul);
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToBlobRange(uuid, offset, length);
-
   const BlobEntry* ref_entry = blob_registry.GetEntry(uuid);
 
   // Self-references or non-existing blob references are invalid.
@@ -283,12 +235,12 @@
   }
 
   // We can't reference a blob with unknown size.
-  if (ref_entry->total_size() == network::DataElement::kUnknownSize) {
+  if (ref_entry->total_size() == BlobDataItem::kUnknownSize) {
     has_blob_errors_ = true;
     return;
   }
 
-  if (length == network::DataElement::kUnknownSize)
+  if (length == BlobDataItem::kUnknownSize)
     length = ref_entry->total_size() - offset;
 
   UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.Blob", length / 1024);
@@ -298,9 +250,9 @@
   // If we're referencing the whole blob, then we don't need to slice.
   if (offset == 0 && length == ref_entry->total_size()) {
     for (const auto& shareable_item : ref_entry->items()) {
-      if (shareable_item->item()->type() == network::DataElement::TYPE_BYTES ||
+      if (shareable_item->item()->type() == BlobDataItem::Type::kBytes ||
           shareable_item->item()->type() ==
-              network::DataElement::TYPE_BYTES_DESCRIPTION) {
+              BlobDataItem::Type::kBytesDescription) {
         total_memory_size_ += shareable_item->item()->length();
       }
       items_.push_back(shareable_item);
@@ -338,7 +290,7 @@
     const scoped_refptr<BlobDataItem>& source_item =
         source_items[item_index]->item();
     uint64_t source_length = source_item->length();
-    network::DataElement::Type type = source_item->type();
+    BlobDataItem::Type type = source_item->type();
     DCHECK_NE(source_length, std::numeric_limits<uint64_t>::max());
     DCHECK_NE(source_length, 0ull);
 
@@ -351,8 +303,8 @@
     if (reusing_blob_item) {
       // We can share the entire item.
       items_.push_back(source_items[item_index]);
-      if (type == network::DataElement::TYPE_BYTES ||
-          type == network::DataElement::TYPE_BYTES_DESCRIPTION) {
+      if (type == BlobDataItem::Type::kBytes ||
+          type == BlobDataItem::Type::kBytesDescription) {
         total_memory_size_ += source_length;
       }
       continue;
@@ -363,8 +315,8 @@
     ShareableBlobDataItem::State state =
         ShareableBlobDataItem::POPULATED_WITHOUT_QUOTA;
     switch (type) {
-      case network::DataElement::TYPE_BYTES_DESCRIPTION:
-      case network::DataElement::TYPE_BYTES: {
+      case BlobDataItem::Type::kBytesDescription:
+      case BlobDataItem::Type::kBytes: {
         UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.BlobSlice.Bytes",
                                 read_size / 1024);
         need_copy = true;
@@ -374,62 +326,45 @@
         // for this data. When our blob is finished constructing, all dependent
         // blobs are done, and we have enough memory quota, we'll copy the data
         // over.
-        std::unique_ptr<network::DataElement> element(
-            new network::DataElement());
-        element->SetToBytesDescription(base::checked_cast<size_t>(read_size));
-        data_item = new BlobDataItem(std::move(element));
+        data_item = BlobDataItem::CreateBytesDescription(
+            base::checked_cast<size_t>(read_size));
         state = ShareableBlobDataItem::QUOTA_NEEDED;
         break;
       }
-      case network::DataElement::TYPE_FILE: {
+      case BlobDataItem::Type::kFile: {
         UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.BlobSlice.File",
                                 read_size / 1024);
-        std::unique_ptr<network::DataElement> element(
-            new network::DataElement());
-        element->SetToFilePathRange(
+        data_item = BlobDataItem::CreateFile(
             source_item->path(), source_item->offset() + item_offset, read_size,
-            source_item->expected_modification_time());
-        data_item =
-            new BlobDataItem(std::move(element), source_item->data_handle_);
+            source_item->expected_modification_time(),
+            source_item->data_handle_);
 
-        if (BlobDataBuilder::IsFutureFileItem(source_item->data_element())) {
+        if (source_item->IsFutureFileItem()) {
           // The source file isn't a real file yet (path is fake), so store the
           // items we need to copy from later.
           need_copy = true;
         }
         break;
       }
-      case network::DataElement::TYPE_FILE_FILESYSTEM: {
+      case BlobDataItem::Type::kFileFilesystem: {
         UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.BlobSlice.FileSystem",
                                 read_size / 1024);
-        std::unique_ptr<network::DataElement> element(
-            new network::DataElement());
-        element->SetToFileSystemUrlRange(
+        data_item = BlobDataItem::CreateFileFilesystem(
             source_item->filesystem_url(), source_item->offset() + item_offset,
-            read_size, source_item->expected_modification_time());
-        data_item = new BlobDataItem(std::move(element),
-                                     source_item->file_system_context());
+            read_size, source_item->expected_modification_time(),
+            source_item->file_system_context());
         break;
       }
-      case network::DataElement::TYPE_DISK_CACHE_ENTRY: {
+      case BlobDataItem::Type::kDiskCacheEntry: {
         UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.BlobSlice.CacheEntry",
                                 read_size / 1024);
-        std::unique_ptr<network::DataElement> element(
-            new network::DataElement());
-        element->SetToDiskCacheEntryRange(source_item->offset() + item_offset,
-                                          read_size);
-        data_item =
-            new BlobDataItem(std::move(element), source_item->data_handle_,
-                             source_item->disk_cache_entry(),
-                             source_item->disk_cache_stream_index(),
-                             source_item->disk_cache_side_stream_index());
+        data_item = BlobDataItem::CreateDiskCacheEntry(
+            source_item->offset() + item_offset, read_size,
+            source_item->data_handle_, source_item->disk_cache_entry(),
+            source_item->disk_cache_stream_index(),
+            source_item->disk_cache_side_stream_index());
         break;
       }
-      case network::DataElement::TYPE_RAW_FILE:
-      case network::DataElement::TYPE_BLOB:
-      case network::DataElement::TYPE_DATA_PIPE:
-      case network::DataElement::TYPE_UNKNOWN:
-        CHECK(false) << "Illegal blob item type: " << type;
     }
 
     items_.push_back(new ShareableBlobDataItem(std::move(data_item), state));
@@ -443,7 +378,7 @@
 
 void BlobDataBuilder::AppendBlob(const std::string& uuid,
                                  const BlobStorageRegistry& blob_registry) {
-  AppendBlob(uuid, 0, network::DataElement::kUnknownSize, blob_registry);
+  AppendBlob(uuid, 0, BlobDataItem::kUnknownSize, blob_registry);
 }
 
 void BlobDataBuilder::AppendFileSystemFile(
@@ -453,18 +388,16 @@
     const base::Time& expected_modification_time,
     scoped_refptr<FileSystemContext> file_system_context) {
   DCHECK_GT(length, 0ul);
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToFileSystemUrlRange(url, offset, length,
-                                   expected_modification_time);
-  scoped_refptr<BlobDataItem> item =
-      new BlobDataItem(std::move(element), std::move(file_system_context));
+  auto item = BlobDataItem::CreateFileFilesystem(
+      url, offset, length, expected_modification_time,
+      std::move(file_system_context));
 
   auto shareable_item = base::MakeRefCounted<ShareableBlobDataItem>(
       std::move(item), ShareableBlobDataItem::POPULATED_WITHOUT_QUOTA);
   items_.push_back(std::move(shareable_item));
 
   total_size_ += length;
-  bool unknown_size = length == network::DataElement::kUnknownSize;
+  bool unknown_size = length == BlobDataItem::kUnknownSize;
   UMA_HISTOGRAM_BOOLEAN("Storage.BlobItemSize.FileSystem.Unknown",
                         unknown_size);
   if (!unknown_size)
@@ -485,12 +418,9 @@
     disk_cache::Entry* disk_cache_entry,
     int disk_cache_stream_index,
     int disk_cache_side_stream_index) {
-  std::unique_ptr<network::DataElement> element(new network::DataElement());
-  element->SetToDiskCacheEntryRange(
-      0U, disk_cache_entry->GetDataSize(disk_cache_stream_index));
-  scoped_refptr<BlobDataItem> item =
-      new BlobDataItem(std::move(element), data_handle, disk_cache_entry,
-                       disk_cache_stream_index, disk_cache_side_stream_index);
+  auto item = BlobDataItem::CreateDiskCacheEntry(
+      0u, disk_cache_entry->GetDataSize(disk_cache_stream_index), data_handle,
+      disk_cache_entry, disk_cache_stream_index, disk_cache_side_stream_index);
 
   total_size_ += item->length();
   UMA_HISTOGRAM_COUNTS_1M("Storage.BlobItemSize.CacheEntry",
diff --git a/storage/browser/blob/blob_data_builder.h b/storage/browser/blob/blob_data_builder.h
index e16db19..231223c 100644
--- a/storage/browser/blob/blob_data_builder.h
+++ b/storage/browser/blob/blob_data_builder.h
@@ -27,6 +27,10 @@
 class Entry;
 }
 
+namespace network {
+class DataElement;
+}
+
 namespace storage {
 class BlobSliceTest;
 class BlobStorageContext;
@@ -42,14 +46,6 @@
   using DataHandle = BlobDataItem::DataHandle;
   using ItemCopyEntry = BlobEntry::ItemCopyEntry;
 
-  // Visible for testing.
-  static base::FilePath GetFutureFileItemPath(uint64_t file_id);
-
-  // Returns if the given item was created by AppendFutureFile.
-  static bool IsFutureFileItem(const network::DataElement& element);
-  // Returns |file_id| given to AppendFutureFile.
-  static uint64_t GetFutureFileID(const network::DataElement& element);
-
   explicit BlobDataBuilder(const std::string& uuid);
   ~BlobDataBuilder();
 
@@ -88,7 +84,7 @@
     // Returns true if:
     // * The offset and length are valid, and
     // * data is a valid pointer.
-    bool Populate(base::span<const char> data, size_t offset) const;
+    bool Populate(base::span<const char> data, size_t offset = 0) const;
 
     // Same as Populate, but rather than passing in the data to be
     // copied, this method returns a pointer where the caller can copy |length|
diff --git a/storage/browser/blob/blob_data_builder_unittest.cc b/storage/browser/blob/blob_data_builder_unittest.cc
index 80ae39c..3beeef7a 100644
--- a/storage/browser/blob/blob_data_builder_unittest.cc
+++ b/storage/browser/blob/blob_data_builder_unittest.cc
@@ -7,25 +7,22 @@
 #include <string>
 
 #include "base/logging.h"
-#include "services/network/public/cpp/data_element.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
 namespace storage {
 
 TEST(BlobDataBuilderTest, TestFutureFiles) {
   const std::string kId = "id";
+  const uint64_t kFileId = 13;
 
-  network::DataElement element;
-  element.SetToFilePath(BlobDataBuilder::GetFutureFileItemPath(0));
-  EXPECT_TRUE(BlobDataBuilder::IsFutureFileItem(element));
-  EXPECT_EQ(0ull, BlobDataBuilder::GetFutureFileID(element));
+  auto item = BlobDataItem::CreateFutureFile(0, 10, kFileId);
+  EXPECT_TRUE(item->IsFutureFileItem());
+  EXPECT_EQ(kFileId, item->GetFutureFileID());
 
   BlobDataBuilder builder(kId);
-  builder.AppendFutureFile(0, 10, 0);
-  EXPECT_TRUE(BlobDataBuilder::IsFutureFileItem(
-      builder.items()[0]->item()->data_element()));
-  EXPECT_EQ(0ull, BlobDataBuilder::GetFutureFileID(
-                      builder.items()[0]->item()->data_element()));
+  builder.AppendFutureFile(0, 10, kFileId);
+  EXPECT_TRUE(builder.items()[0]->item()->IsFutureFileItem());
+  EXPECT_EQ(kFileId, builder.items()[0]->item()->GetFutureFileID());
 }
 
 }  // namespace storage
diff --git a/storage/browser/blob/blob_data_item.cc b/storage/browser/blob/blob_data_item.cc
index 85dfba71..44d8596 100644
--- a/storage/browser/blob/blob_data_item.cc
+++ b/storage/browser/blob/blob_data_item.cc
@@ -7,71 +7,206 @@
 #include <memory>
 #include <utility>
 
+#include "base/strings/string_number_conversions.h"
 #include "storage/browser/fileapi/file_system_context.h"
 
 namespace storage {
 
+namespace {
+const base::FilePath::CharType kFutureFileName[] =
+    FILE_PATH_LITERAL("_future_name_");
+}
+
+constexpr uint64_t BlobDataItem::kUnknownSize;
+
 BlobDataItem::DataHandle::~DataHandle() = default;
 
-BlobDataItem::BlobDataItem(std::unique_ptr<network::DataElement> item)
-    : item_(std::move(item)),
-      disk_cache_entry_(nullptr),
-      disk_cache_stream_index_(-1),
-      disk_cache_side_stream_index_(-1) {
-  DCHECK_NE(item_->type(), network::DataElement::TYPE_DISK_CACHE_ENTRY);
-  DCHECK_NE(item_->type(), network::DataElement::TYPE_FILE_FILESYSTEM);
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateBytes(
+    base::span<const char> bytes) {
+  auto item =
+      base::WrapRefCounted(new BlobDataItem(Type::kBytes, 0, bytes.length()));
+  item->bytes_.assign(bytes.begin(), bytes.end());
+  return item;
 }
 
-BlobDataItem::BlobDataItem(std::unique_ptr<network::DataElement> item,
-                           const scoped_refptr<DataHandle>& data_handle)
-    : item_(std::move(item)),
-      data_handle_(data_handle),
-      disk_cache_entry_(nullptr),
-      disk_cache_stream_index_(-1),
-      disk_cache_side_stream_index_(-1) {
-  DCHECK_NE(item_->type(), network::DataElement::TYPE_DISK_CACHE_ENTRY);
-  DCHECK_NE(item_->type(), network::DataElement::TYPE_FILE_FILESYSTEM);
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateBytesDescription(
+    size_t length) {
+  return base::WrapRefCounted(
+      new BlobDataItem(Type::kBytesDescription, 0, length));
 }
 
-BlobDataItem::BlobDataItem(std::unique_ptr<network::DataElement> item,
-                           const scoped_refptr<DataHandle>& data_handle,
-                           disk_cache::Entry* entry,
-                           int disk_cache_stream_index,
-                           int disk_cache_side_stream_index)
-    : item_(std::move(item)),
-      data_handle_(data_handle),
-      disk_cache_entry_(entry),
-      disk_cache_stream_index_(disk_cache_stream_index),
-      disk_cache_side_stream_index_(disk_cache_side_stream_index) {
-  DCHECK_EQ(item_->type(), network::DataElement::TYPE_DISK_CACHE_ENTRY);
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateFile(base::FilePath path) {
+  return CreateFile(path, 0, kUnknownSize);
 }
 
-BlobDataItem::BlobDataItem(std::unique_ptr<network::DataElement> item,
-                           scoped_refptr<FileSystemContext> file_system_context)
-    : item_(std::move(item)),
-      disk_cache_entry_(nullptr),
-      disk_cache_stream_index_(-1),
-      disk_cache_side_stream_index_(-1),
-      file_system_context_(std::move(file_system_context)) {
-  DCHECK_EQ(item_->type(), network::DataElement::TYPE_FILE_FILESYSTEM);
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateFile(
+    base::FilePath path,
+    uint64_t offset,
+    uint64_t length,
+    base::Time expected_modification_time,
+    scoped_refptr<DataHandle> data_handle) {
+  auto item =
+      base::WrapRefCounted(new BlobDataItem(Type::kFile, offset, length));
+  item->path_ = std::move(path);
+  item->expected_modification_time_ = std::move(expected_modification_time);
+  item->data_handle_ = std::move(data_handle);
+  // TODO(mek): DCHECK(!item->IsFutureFileItem()) when BlobDataBuilder has some
+  // other way of slicing a future file.
+  return item;
 }
 
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateFutureFile(uint64_t offset,
+                                                           uint64_t length,
+                                                           uint64_t file_id) {
+  auto item =
+      base::WrapRefCounted(new BlobDataItem(Type::kFile, offset, length));
+  std::string file_id_str = base::NumberToString(file_id);
+  item->path_ = base::FilePath(kFutureFileName)
+                    .AddExtension(base::FilePath::StringType(
+                        file_id_str.begin(), file_id_str.end()));
+  return item;
+}
+
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateFileFilesystem(
+    const GURL& url,
+    uint64_t offset,
+    uint64_t length,
+    base::Time expected_modification_time,
+    scoped_refptr<FileSystemContext> file_system_context) {
+  auto item = base::WrapRefCounted(
+      new BlobDataItem(Type::kFileFilesystem, offset, length));
+  item->filesystem_url_ = url;
+  item->expected_modification_time_ = std::move(expected_modification_time);
+  item->file_system_context_ = std::move(file_system_context);
+  return item;
+}
+
+// static
+scoped_refptr<BlobDataItem> BlobDataItem::CreateDiskCacheEntry(
+    uint64_t offset,
+    uint64_t length,
+    scoped_refptr<DataHandle> data_handle,
+    disk_cache::Entry* entry,
+    int disk_cache_stream_index,
+    int disk_cache_side_stream_index) {
+  auto item = base::WrapRefCounted(
+      new BlobDataItem(Type::kDiskCacheEntry, offset, length));
+  item->data_handle_ = std::move(data_handle);
+  item->disk_cache_entry_ = entry;
+  item->disk_cache_stream_index_ = disk_cache_stream_index;
+  item->disk_cache_side_stream_index_ = disk_cache_side_stream_index;
+  return item;
+}
+
+bool BlobDataItem::IsFutureFileItem() const {
+  if (type_ != Type::kFile)
+    return false;
+  const base::FilePath::StringType prefix(kFutureFileName);
+  // The prefix shouldn't occur unless the user used "AppendFutureFile". We
+  // DCHECK on AppendFile to make sure no one appends a future file.
+  return base::StartsWith(path().value(), prefix, base::CompareCase::SENSITIVE);
+}
+
+uint64_t BlobDataItem::GetFutureFileID() const {
+  DCHECK(IsFutureFileItem());
+  uint64_t id = 0;
+  bool success = base::StringToUint64(path().Extension().substr(1), &id);
+  DCHECK(success) << path().Extension();
+  return id;
+}
+
+BlobDataItem::BlobDataItem(Type type, uint64_t offset, uint64_t length)
+    : type_(type), offset_(offset), length_(length) {}
+
 BlobDataItem::~BlobDataItem() = default;
 
+void BlobDataItem::AllocateBytes() {
+  DCHECK_EQ(type_, Type::kBytesDescription);
+  bytes_.resize(length_);
+  type_ = Type::kBytes;
+}
+
+void BlobDataItem::PopulateBytes(base::span<const char> data) {
+  DCHECK_EQ(type_, Type::kBytesDescription);
+  DCHECK_EQ(length_, data.length());
+  type_ = Type::kBytes;
+  bytes_.assign(data.begin(), data.end());
+}
+
+void BlobDataItem::PopulateFile(base::FilePath path,
+                                base::Time expected_modification_time,
+                                scoped_refptr<DataHandle> data_handle) {
+  DCHECK_EQ(type_, Type::kFile);
+  DCHECK(IsFutureFileItem());
+  path_ = std::move(path);
+  expected_modification_time_ = std::move(expected_modification_time);
+  data_handle_ = std::move(data_handle);
+}
+
 void PrintTo(const BlobDataItem& x, ::std::ostream* os) {
+  const uint64_t kMaxDataPrintLength = 40;
   DCHECK(os);
-  *os << "<BlobDataItem>{item: ";
-  PrintTo(*x.item_, os);
-  *os << ", has_data_handle: " << (x.data_handle_.get() ? "true" : "false")
-      << ", disk_cache_entry_ptr: " << x.disk_cache_entry_
-      << ", disk_cache_stream_index_: " << x.disk_cache_stream_index_ << "}";
+  *os << "<BlobDataItem>{type: ";
+  switch (x.type()) {
+    case BlobDataItem::Type::kBytes: {
+      uint64_t length = std::min(x.length(), kMaxDataPrintLength);
+      *os << "kBytes, data: ["
+          << base::HexEncode(x.bytes().data(), static_cast<size_t>(length));
+      if (length < x.length()) {
+        *os << "<...truncated due to length...>";
+      }
+      *os << "]";
+      break;
+    }
+    case BlobDataItem::Type::kBytesDescription:
+      *os << "kBytesDescription";
+      break;
+    case BlobDataItem::Type::kFile:
+      *os << "kFile, path: " << x.path().AsUTF8Unsafe()
+          << ", expected_modification_time: " << x.expected_modification_time();
+      break;
+    case BlobDataItem::Type::kFileFilesystem:
+      *os << "kFileFilesystem, url: " << x.filesystem_url();
+      break;
+    case BlobDataItem::Type::kDiskCacheEntry:
+      *os << "kDiskCacheEntry"
+          << ", disk_cache_entry_ptr: " << x.disk_cache_entry_
+          << ", disk_cache_stream_index_: " << x.disk_cache_stream_index_
+          << "}";
+      break;
+  }
+  *os << ", length: " << x.length() << ", offset: " << x.offset()
+      << ", has_data_handle: " << (x.data_handle_.get() ? "true" : "false");
 }
 
 bool operator==(const BlobDataItem& a, const BlobDataItem& b) {
-  return a.disk_cache_entry() == b.disk_cache_entry() &&
-         a.disk_cache_stream_index() == b.disk_cache_stream_index() &&
-         a.disk_cache_side_stream_index() == b.disk_cache_side_stream_index() &&
-         a.data_element() == b.data_element();
+  if (a.type() != b.type() || a.offset() != b.offset() ||
+      a.length() != b.length())
+    return false;
+  switch (a.type()) {
+    case BlobDataItem::Type::kBytes:
+      return a.bytes() == b.bytes();
+    case BlobDataItem::Type::kBytesDescription:
+      return true;
+    case BlobDataItem::Type::kFile:
+      return a.path() == b.path() &&
+             a.expected_modification_time() == b.expected_modification_time();
+    case BlobDataItem::Type::kFileFilesystem:
+      return a.filesystem_url() == b.filesystem_url();
+    case BlobDataItem::Type::kDiskCacheEntry:
+      return a.disk_cache_entry() == b.disk_cache_entry() &&
+             a.disk_cache_stream_index() == b.disk_cache_stream_index() &&
+             a.disk_cache_side_stream_index() ==
+                 b.disk_cache_side_stream_index();
+  }
+  NOTREACHED();
+  return false;
 }
 
 bool operator!=(const BlobDataItem& a, const BlobDataItem& b) {
diff --git a/storage/browser/blob/blob_data_item.h b/storage/browser/blob/blob_data_item.h
index 6d9b893e..1a53204 100644
--- a/storage/browser/blob/blob_data_item.h
+++ b/storage/browser/blob/blob_data_item.h
@@ -11,9 +11,11 @@
 #include <ostream>
 #include <string>
 
+#include "base/containers/span.h"
+#include "base/files/file_path.h"
 #include "base/memory/ref_counted.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/storage_browser_export.h"
+#include "url/gurl.h"
 
 namespace disk_cache {
 class Entry;
@@ -21,7 +23,6 @@
 
 namespace storage {
 class BlobDataBuilder;
-class BlobMemoryController;
 class BlobStorageContext;
 class FileSystemContext;
 
@@ -32,6 +33,16 @@
 // the BlobStorageContext.
 class STORAGE_EXPORT BlobDataItem : public base::RefCounted<BlobDataItem> {
  public:
+  static constexpr uint64_t kUnknownSize = std::numeric_limits<uint64_t>::max();
+
+  enum class Type {
+    kBytes,
+    kBytesDescription,
+    kFile,
+    kFileFilesystem,
+    kDiskCacheEntry
+  };
+
   // The DataHandle class is used to persist resources that are needed for
   // reading this BlobDataItem. This object will stay around while any reads are
   // pending. If all blobs with this item are deleted or the item is swapped for
@@ -45,64 +56,123 @@
     friend class base::RefCounted<DataHandle>;
   };
 
-  network::DataElement::Type type() const { return item_->type(); }
-  const char* bytes() const { return item_->bytes(); }
-  const base::FilePath& path() const { return item_->path(); }
-  const GURL& filesystem_url() const { return item_->filesystem_url(); }
-  const std::string& blob_uuid() const { return item_->blob_uuid(); }
-  uint64_t offset() const { return item_->offset(); }
-  uint64_t length() const { return item_->length(); }
-  const base::Time& expected_modification_time() const {
-    return item_->expected_modification_time();
-  }
-  const network::DataElement& data_element() const { return *item_; }
-  const network::DataElement* data_element_ptr() const { return item_.get(); }
-  network::DataElement* data_element_ptr() { return item_.get(); }
+  static scoped_refptr<BlobDataItem> CreateBytes(base::span<const char> bytes);
+  static scoped_refptr<BlobDataItem> CreateBytesDescription(size_t length);
+  static scoped_refptr<BlobDataItem> CreateFile(base::FilePath path);
+  static scoped_refptr<BlobDataItem> CreateFile(
+      base::FilePath path,
+      uint64_t offset,
+      uint64_t length,
+      base::Time expected_modification_time = base::Time(),
+      scoped_refptr<DataHandle> data_handle = nullptr);
+  static scoped_refptr<BlobDataItem> CreateFutureFile(uint64_t offset,
+                                                      uint64_t length,
+                                                      uint64_t file_id);
+  static scoped_refptr<BlobDataItem> CreateFileFilesystem(
+      const GURL& url,
+      uint64_t offset,
+      uint64_t length,
+      base::Time expected_modification_time,
+      scoped_refptr<FileSystemContext> file_system_context);
+  static scoped_refptr<BlobDataItem> CreateDiskCacheEntry(
+      uint64_t offset,
+      uint64_t length,
+      scoped_refptr<DataHandle> data_handle,
+      disk_cache::Entry* entry,
+      int disk_cache_stream_index,
+      int disk_cache_side_stream_index);
 
-  disk_cache::Entry* disk_cache_entry() const { return disk_cache_entry_; }
-  int disk_cache_stream_index() const { return disk_cache_stream_index_; }
-  int disk_cache_side_stream_index() const {
-    return disk_cache_side_stream_index_;
+  Type type() const { return type_; }
+  uint64_t offset() const { return offset_; }
+  uint64_t length() const { return length_; }
+
+  base::span<const char> bytes() const {
+    DCHECK_EQ(type_, Type::kBytes);
+    return base::make_span(bytes_);
+  }
+
+  const base::FilePath& path() const {
+    DCHECK_EQ(type_, Type::kFile);
+    return path_;
+  }
+
+  const GURL& filesystem_url() const {
+    DCHECK_EQ(type_, Type::kFileFilesystem);
+    return filesystem_url_;
   }
 
   FileSystemContext* file_system_context() const {
+    DCHECK_EQ(type_, Type::kFileFilesystem);
     return file_system_context_.get();
   }
 
+  const base::Time& expected_modification_time() const {
+    DCHECK(type_ == Type::kFile || type_ == Type::kFileFilesystem)
+        << static_cast<int>(type_);
+    return expected_modification_time_;
+  }
+
+  disk_cache::Entry* disk_cache_entry() const {
+    DCHECK_EQ(type_, Type::kDiskCacheEntry);
+    return disk_cache_entry_;
+  }
+
+  int disk_cache_stream_index() const {
+    DCHECK_EQ(type_, Type::kDiskCacheEntry);
+    return disk_cache_stream_index_;
+  }
+
+  int disk_cache_side_stream_index() const {
+    DCHECK_EQ(type_, Type::kDiskCacheEntry);
+    return disk_cache_side_stream_index_;
+  }
+
+  // Returns true if this item was created by CreateFutureFile.
+  bool IsFutureFileItem() const;
+  // Returns |file_id| given to CreateFutureFile.
+  uint64_t GetFutureFileID() const;
+
  private:
   friend class BlobDataBuilder;
-  friend class BlobMemoryController;
   friend class BlobStorageContext;
-  friend struct BlobSlice;
-  friend class BlobSliceTest;
-  friend class BlobFlattenerTest;
   friend class base::RefCounted<BlobDataItem>;
   friend STORAGE_EXPORT void PrintTo(const BlobDataItem& x, ::std::ostream* os);
 
-  explicit BlobDataItem(std::unique_ptr<network::DataElement> item);
-  BlobDataItem(std::unique_ptr<network::DataElement> item,
-               const scoped_refptr<DataHandle>& data_handle);
-  BlobDataItem(std::unique_ptr<network::DataElement> item,
-               const scoped_refptr<DataHandle>& data_handle,
-               disk_cache::Entry* entry,
-               int disk_cache_stream_index,
-               int disk_cache_side_stream_index);
-  BlobDataItem(std::unique_ptr<network::DataElement> item,
-               scoped_refptr<FileSystemContext> file_system_context);
-
+  BlobDataItem(Type type, uint64_t offset, uint64_t length);
   virtual ~BlobDataItem();
 
-  std::unique_ptr<network::DataElement> item_;
-  scoped_refptr<DataHandle> data_handle_;
+  base::span<char> mutable_bytes() {
+    DCHECK_EQ(type_, Type::kBytes);
+    return base::make_span(bytes_);
+  }
+
+  void AllocateBytes();
+  void PopulateBytes(base::span<const char> data);
+  void PopulateFile(base::FilePath path,
+                    base::Time expected_modification_time,
+                    scoped_refptr<DataHandle> data_handle);
+
+  Type type_;
+  uint64_t offset_;
+  uint64_t length_;
+
+  std::vector<char> bytes_;  // For Type::kBytes.
+  base::FilePath path_;      // For Type::kFile.
+  GURL filesystem_url_;      // For Type::kFileFilesystem.
+  base::Time
+      expected_modification_time_;  // For Type::kFile and kFileFilesystem.
+
+  scoped_refptr<DataHandle>
+      data_handle_;  // For Type::kFile and kDiskCacheEntry.
 
   // This naked pointer is safe because the scope is protected by the DataHandle
   // instance for disk cache entries during the lifetime of this BlobDataItem.
-  disk_cache::Entry* disk_cache_entry_;
-  int disk_cache_stream_index_;  // For TYPE_DISK_CACHE_ENTRY.
-  int disk_cache_side_stream_index_;  // For TYPE_DISK_CACHE_ENTRY.
+  disk_cache::Entry* disk_cache_entry_;  // For Type::kDiskCacheEntry.
+  int disk_cache_stream_index_;          // For Type::kDiskCacheEntry.
+  int disk_cache_side_stream_index_;     // For Type::kDiskCacheEntry.
 
   scoped_refptr<FileSystemContext>
-      file_system_context_;  // For TYPE_FILE_FILESYSTEM
+      file_system_context_;  // For Type::kFileFilesystem.
 };
 
 STORAGE_EXPORT bool operator==(const BlobDataItem& a, const BlobDataItem& b);
diff --git a/storage/browser/blob/blob_data_snapshot.cc b/storage/browser/blob/blob_data_snapshot.cc
index 3d28a18..eb8c02b 100644
--- a/storage/browser/blob/blob_data_snapshot.cc
+++ b/storage/browser/blob/blob_data_snapshot.cc
@@ -40,7 +40,7 @@
 size_t BlobDataSnapshot::GetMemoryUsage() const {
   int64_t memory = 0;
   for (const auto& data_item : items_) {
-    if (data_item->type() == network::DataElement::TYPE_BYTES)
+    if (data_item->type() == BlobDataItem::Type::kBytes)
       memory += data_item->length();
   }
   return memory;
diff --git a/storage/browser/blob/blob_entry.cc b/storage/browser/blob/blob_entry.cc
index ab36fd7..08a6877 100644
--- a/storage/browser/blob/blob_entry.cc
+++ b/storage/browser/blob/blob_entry.cc
@@ -7,7 +7,6 @@
 #include "base/callback.h"
 #include "base/containers/hash_tables.h"
 #include "base/metrics/histogram.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/blob_entry.h"
diff --git a/storage/browser/blob/blob_flattener_unittest.cc b/storage/browser/blob/blob_flattener_unittest.cc
index 53f01af..b801c0a 100644
--- a/storage/browser/blob/blob_flattener_unittest.cc
+++ b/storage/browser/blob/blob_flattener_unittest.cc
@@ -14,7 +14,6 @@
 #include "base/run_loop.h"
 #include "base/test/test_simple_task_runner.h"
 #include "base/time/time.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/blob/blob_data_item.h"
@@ -70,29 +69,20 @@
   }
 
   scoped_refptr<BlobDataItem> CreateDataDescriptionItem(size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToBytesDescription(size);
-    return scoped_refptr<BlobDataItem>(new BlobDataItem(std::move(element)));
+    return BlobDataItem::CreateBytesDescription(size);
   };
 
   scoped_refptr<BlobDataItem> CreateDataItem(const char* memory, size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToBytes(memory, size);
-    return scoped_refptr<BlobDataItem>(new BlobDataItem(std::move(element)));
+    return BlobDataItem::CreateBytes(base::make_span(memory, size));
   };
 
   scoped_refptr<BlobDataItem> CreateFileItem(size_t offset, size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToFilePathRange(fake_file_path_, offset, size,
-                                base::Time::Max());
-    return scoped_refptr<BlobDataItem>(new BlobDataItem(std::move(element)));
+    return BlobDataItem::CreateFile(fake_file_path_, offset, size,
+                                    base::Time::Max());
   };
 
   scoped_refptr<BlobDataItem> CreateFutureFileItem(size_t offset, size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToFilePathRange(BlobDataBuilder::GetFutureFileItemPath(0),
-                                offset, size, base::Time());
-    return scoped_refptr<BlobDataItem>(new BlobDataItem(std::move(element)));
+    return BlobDataItem::CreateFutureFile(offset, size, 0);
   };
 
   std::unique_ptr<BlobDataHandle> SetupBasicBlob(const std::string& id) {
diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc
index 950b6b5..b050164d 100644
--- a/storage/browser/blob/blob_memory_controller.cc
+++ b/storage/browser/blob/blob_memory_controller.cc
@@ -30,7 +30,6 @@
 #include "base/threading/thread_restrictions.h"
 #include "base/time/time.h"
 #include "base/trace_event/trace_event.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/shareable_blob_data_item.h"
@@ -179,7 +178,7 @@
     DiskSpaceFuncPtr disk_space_function,
     const FilePath& file_path,
     scoped_refptr<base::TaskRunner> file_task_runner,
-    std::vector<network::DataElement*> items,
+    std::vector<base::span<const char>> data,
     size_t total_size_bytes) {
   DCHECK_NE(0u, total_size_bytes);
   UMA_HISTOGRAM_MEMORY_KB("Storage.Blob.PageFileSize", total_size_bytes / 1024);
@@ -214,13 +213,12 @@
   // Write data.
   file.SetLength(total_size_bytes);
   int bytes_written = 0;
-  for (network::DataElement* element : items) {
-    DCHECK_EQ(network::DataElement::TYPE_BYTES, element->type());
-    size_t length = base::checked_cast<size_t>(element->length());
+  for (const auto& item : data) {
+    size_t length = item.length();
     size_t bytes_left = length;
     while (bytes_left > 0) {
       bytes_written =
-          file.WriteAtCurrentPos(element->bytes() + (length - bytes_left),
+          file.WriteAtCurrentPos(item.data() + (length - bytes_left),
                                  base::saturated_cast<int>(bytes_left));
       if (bytes_written < 0)
         break;
@@ -252,14 +250,15 @@
   uint64_t total_size_output = 0;
   base::small_map<std::map<uint64_t, uint64_t>> file_id_to_sizes;
   for (const auto& item : unreserved_file_items) {
-    const network::DataElement& element = item->item()->data_element();
-    uint64_t file_id = BlobDataBuilder::GetFutureFileID(element);
+    uint64_t file_id = item->item()->GetFutureFileID();
     auto it = file_id_to_sizes.find(file_id);
     if (it != file_id_to_sizes.end())
-      it->second = std::max(it->second, element.offset() + element.length());
+      it->second =
+          std::max(it->second, item->item()->offset() + item->item()->length());
     else
-      file_id_to_sizes[file_id] = element.offset() + element.length();
-    total_size_output += element.length();
+      file_id_to_sizes[file_id] =
+          item->item()->offset() + item->item()->length();
+    total_size_output += item->item()->length();
   }
   for (const auto& size_pair : file_id_to_sizes) {
     file_sizes_output->push_back(size_pair.second);
@@ -374,8 +373,7 @@
     // Check & set our item states.
     for (auto& shareable_item : unreserved_file_items) {
       DCHECK_EQ(ShareableBlobDataItem::QUOTA_NEEDED, shareable_item->state());
-      DCHECK_EQ(network::DataElement::TYPE_FILE,
-                shareable_item->item()->type());
+      DCHECK_EQ(BlobDataItem::Type::kFile, shareable_item->item()->type());
       shareable_item->set_state(ShareableBlobDataItem::QUOTA_REQUESTED);
     }
     pending_items_ = std::move(unreserved_file_items);
@@ -589,9 +587,8 @@
   base::CheckedNumeric<uint64_t> unsafe_total_bytes_needed = 0;
   for (auto& item : unreserved_memory_items) {
     DCHECK_EQ(ShareableBlobDataItem::QUOTA_NEEDED, item->state());
-    DCHECK(item->item()->type() ==
-               network::DataElement::TYPE_BYTES_DESCRIPTION ||
-           item->item()->type() == network::DataElement::TYPE_BYTES);
+    DCHECK(item->item()->type() == BlobDataItem::Type::kBytesDescription ||
+           item->item()->type() == BlobDataItem::Type::kBytes);
     DCHECK(item->item()->length() > 0);
     unsafe_total_bytes_needed += item->item()->length();
     item->set_state(ShareableBlobDataItem::QUOTA_REQUESTED);
@@ -643,7 +640,7 @@
 void BlobMemoryController::NotifyMemoryItemsUsed(
     const std::vector<scoped_refptr<ShareableBlobDataItem>>& items) {
   for (const auto& item : items) {
-    if (item->item()->type() != network::DataElement::TYPE_BYTES ||
+    if (item->item()->type() != BlobDataItem::Type::kBytes ||
         item->state() != ShareableBlobDataItem::POPULATED_WITH_QUOTA) {
       continue;
     }
@@ -791,7 +788,7 @@
          !populated_memory_items_.empty()) {
     auto iterator = --populated_memory_items_.end();
     ShareableBlobDataItem* item = iterator->second;
-    DCHECK_EQ(item->item()->type(), network::DataElement::TYPE_BYTES);
+    DCHECK_EQ(item->item()->type(), BlobDataItem::Type::kBytes);
     populated_memory_items_.Erase(iterator);
     size_t size = base::checked_cast<size_t>(item->item()->length());
     populated_memory_items_bytes_ -= size;
@@ -852,10 +849,10 @@
     if (total_items_size == 0)
       break;
 
-    std::vector<network::DataElement*> items_for_paging;
+    std::vector<base::span<const char>> data_for_paging;
     for (auto& shared_blob_item : items_to_swap) {
       items_paging_to_file_.insert(shared_blob_item->item_id());
-      items_for_paging.push_back(shared_blob_item->item()->data_element_ptr());
+      data_for_paging.push_back(shared_blob_item->item()->bytes());
     }
 
     // Update our bookkeeping.
@@ -878,14 +875,14 @@
     // Post the file writing task.
     base::PostTaskAndReplyWithResult(
         file_runner_.get(), FROM_HERE,
-        base::Bind(&CreateFileAndWriteItems, blob_storage_dir_,
-                   disk_space_function_, base::Passed(&page_file_path),
-                   file_runner_, base::Passed(&items_for_paging),
-                   total_items_size),
-        base::Bind(&BlobMemoryController::OnEvictionComplete,
-                   weak_factory_.GetWeakPtr(), base::Passed(&file_reference),
-                   base::Passed(&items_to_swap), total_items_size, reason,
-                   total_memory_usage));
+        base::BindOnce(&CreateFileAndWriteItems, blob_storage_dir_,
+                       disk_space_function_, std::move(page_file_path),
+                       file_runner_, std::move(data_for_paging),
+                       total_items_size),
+        base::BindOnce(&BlobMemoryController::OnEvictionComplete,
+                       weak_factory_.GetWeakPtr(), std::move(file_reference),
+                       std::move(items_to_swap), total_items_size, reason,
+                       total_memory_usage));
 
     last_eviction_time_ = base::TimeTicks::Now();
   }
@@ -920,11 +917,9 @@
   // Switch item from memory to the new file.
   uint64_t offset = 0;
   for (const scoped_refptr<ShareableBlobDataItem>& shareable_item : items) {
-    scoped_refptr<BlobDataItem> new_item(new BlobDataItem(
-        base::WrapUnique(new network::DataElement()), file_reference));
-    new_item->data_element_ptr()->SetToFilePathRange(
+    scoped_refptr<BlobDataItem> new_item = BlobDataItem::CreateFile(
         file_reference->path(), offset, shareable_item->item()->length(),
-        file_info.last_modified);
+        file_info.last_modified, file_reference);
     DCHECK(shareable_item->memory_allocation_);
     shareable_item->set_memory_allocation(nullptr);
     shareable_item->set_item(new_item);
diff --git a/storage/browser/blob/blob_memory_controller_unittest.cc b/storage/browser/blob/blob_memory_controller_unittest.cc
index b4b6971..cd601d5 100644
--- a/storage/browser/blob/blob_memory_controller_unittest.cc
+++ b/storage/browser/blob/blob_memory_controller_unittest.cc
@@ -13,7 +13,6 @@
 #include "base/test/test_simple_task_runner.h"
 #include "base/threading/thread_restrictions.h"
 #include "base/threading/thread_task_runner_handle.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/shareable_blob_data_item.h"
@@ -287,7 +286,8 @@
 
   // Add memory item that is the memory quota.
   BlobDataBuilder builder(kId);
-  builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
+  BlobDataBuilder::FutureData future_data =
+      builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
 
   std::vector<scoped_refptr<ShareableBlobDataItem>> items =
       CreateSharedDataItems(builder);
@@ -320,8 +320,8 @@
   EXPECT_FALSE(file_runner_->HasPendingTask());
 
   // Add our original item as populated so it's paged to disk.
-  items[0]->item()->data_element_ptr()->SetToBytes(
-      kData, kTestBlobStorageMaxBlobMemorySize);
+  future_data.Populate(
+      base::make_span(kData, kTestBlobStorageMaxBlobMemorySize));
   items[0]->set_state(ItemState::POPULATED_WITH_QUOTA);
   controller.NotifyMemoryItemsUsed(items);
 
@@ -331,7 +331,7 @@
   // items2 are successfuly allocated.
   EXPECT_EQ(nullptr, task);
   EXPECT_EQ(ItemState::QUOTA_GRANTED, items2[0]->state());
-  EXPECT_EQ(network::DataElement::TYPE_FILE, items[0]->item()->type());
+  EXPECT_EQ(BlobDataItem::Type::kFile, items[0]->item()->type());
   EXPECT_EQ(kTestBlobStorageMinFileSizeBytes + 1, controller.memory_usage());
   EXPECT_EQ(kTestBlobStorageMaxBlobMemorySize, controller.disk_usage());
 
@@ -373,7 +373,8 @@
 
   // Add memory item that is the memory quota.
   BlobDataBuilder builder(kId);
-  builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
+  BlobDataBuilder::FutureData future_data =
+      builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
 
   std::vector<scoped_refptr<ShareableBlobDataItem>> items =
       CreateSharedDataItems(builder);
@@ -395,8 +396,8 @@
   EXPECT_EQ(0u, controller.disk_usage());
 
   // Add our original item as populated so we start paging to disk.
-  items[0]->item()->data_element_ptr()->SetToBytes(
-      kData, kTestBlobStorageMaxBlobMemorySize);
+  future_data.Populate(
+      base::make_span(kData, kTestBlobStorageMaxBlobMemorySize));
   items[0]->set_state(ItemState::POPULATED_WITH_QUOTA);
   controller.NotifyMemoryItemsUsed(items);
 
@@ -408,7 +409,7 @@
   RunFileThreadTasks();
   base::RunLoop().RunUntilIdle();
   EXPECT_EQ(ItemState::QUOTA_REQUESTED, items2[0]->state());
-  EXPECT_EQ(network::DataElement::TYPE_FILE, items[0]->item()->type());
+  EXPECT_EQ(BlobDataItem::Type::kFile, items[0]->item()->type());
   EXPECT_EQ(0u, controller.memory_usage());
   EXPECT_EQ(kTestBlobStorageMaxBlobMemorySize, controller.disk_usage());
 
@@ -465,9 +466,8 @@
   base::ThreadRestrictions::SetIOAllowed(true);
   files_created_.clear();
   base::ThreadRestrictions::SetIOAllowed(false);
-  EXPECT_EQ(network::DataElement::TYPE_FILE, items[0]->item()->type());
-  EXPECT_FALSE(
-      BlobDataBuilder::IsFutureFileItem(items[0]->item()->data_element()));
+  EXPECT_EQ(BlobDataItem::Type::kFile, items[0]->item()->type());
+  EXPECT_FALSE(items[0]->item()->IsFutureFileItem());
 
   items.clear();
   // Run cleanup tasks from the ShareableFileReferences.
@@ -536,9 +536,9 @@
   // then add the last item to trigger the paging.
 
   BlobDataBuilder builder1(kId1);
-  builder1.AppendFutureData(kSize1);
+  BlobDataBuilder::FutureData future_data1 = builder1.AppendFutureData(kSize1);
   BlobDataBuilder builder2(kId2);
-  builder2.AppendFutureData(kSize2);
+  BlobDataBuilder::FutureData future_data2 = builder2.AppendFutureData(kSize2);
 
   std::vector<scoped_refptr<ShareableBlobDataItem>> items1 =
       CreateSharedDataItems(builder1);
@@ -571,9 +571,9 @@
   EXPECT_FALSE(file_runner_->HasPendingTask());
 
   // Add our original item as populated so it's paged to disk.
-  items1[0]->item()->data_element_ptr()->SetToBytes(kData1, kSize1);
+  future_data1.Populate(base::make_span(kData1, kSize1));
   items1[0]->set_state(ItemState::POPULATED_WITH_QUOTA);
-  items2[0]->item()->data_element_ptr()->SetToBytes(kData2, kSize2);
+  future_data2.Populate(base::make_span(kData2, kSize2));
   items2[0]->set_state(ItemState::POPULATED_WITH_QUOTA);
 
   std::vector<scoped_refptr<ShareableBlobDataItem>> both_items = {items1[0],
@@ -586,8 +586,8 @@
   base::RunLoop().RunUntilIdle();
   EXPECT_TRUE(memory_quota_result_);
   EXPECT_EQ(ItemState::QUOTA_GRANTED, items3[0]->state());
-  EXPECT_EQ(network::DataElement::TYPE_FILE, items1[0]->item()->type());
-  EXPECT_EQ(network::DataElement::TYPE_FILE, items2[0]->item()->type());
+  EXPECT_EQ(BlobDataItem::Type::kFile, items1[0]->item()->type());
+  EXPECT_EQ(BlobDataItem::Type::kFile, items2[0]->item()->type());
   EXPECT_NE(items1[0]->item()->path(), items2[0]->item()->path());
   EXPECT_EQ(kSize3, controller.memory_usage());
   EXPECT_EQ(kSize1 + kSize2, controller.disk_usage());
@@ -801,7 +801,8 @@
 
   // Add first memory item to fill up some memory quota.
   BlobDataBuilder builder(kFirstMemoryId);
-  builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
+  BlobDataBuilder::FutureData future_data =
+      builder.AppendFutureData(kTestBlobStorageMaxBlobMemorySize);
 
   std::vector<scoped_refptr<ShareableBlobDataItem>> items =
       CreateSharedDataItems(builder);
@@ -822,8 +823,7 @@
   EXPECT_EQ(0u, controller.disk_usage());
 
   // Add our original item as populated so we start paging it to disk.
-  items[0]->item()->data_element_ptr()->SetToBytes(kDataMemoryData,
-                                                   kFirstMemorySize);
+  future_data.Populate(base::make_span(kDataMemoryData, kFirstMemorySize));
   items[0]->set_state(ItemState::POPULATED_WITH_QUOTA);
   controller.NotifyMemoryItemsUsed(items);
 
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc
index 21724891..5ae9eb9 100644
--- a/storage/browser/blob/blob_reader.cc
+++ b/storage/browser/blob/blob_reader.cc
@@ -21,7 +21,6 @@
 #include "net/base/io_buffer.h"
 #include "net/base/net_errors.h"
 #include "net/disk_cache/disk_cache.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_handle.h"
 #include "storage/browser/blob/blob_data_snapshot.h"
 #include "storage/browser/fileapi/file_stream_reader.h"
@@ -33,10 +32,10 @@
 namespace {
 const char kCacheStorageRecordBytesLabel[] = "DiskCache.CacheStorage";
 
-bool IsFileType(network::DataElement::Type type) {
+bool IsFileType(BlobDataItem::Type type) {
   switch (type) {
-    case network::DataElement::TYPE_FILE:
-    case network::DataElement::TYPE_FILE_FILESYSTEM:
+    case BlobDataItem::Type::kFile:
+    case BlobDataItem::Type::kFileFilesystem:
       return true;
     default:
       return false;
@@ -112,7 +111,7 @@
   if (items.size() != 1)
     return false;
   const BlobDataItem& item = *items.at(0);
-  if (item.type() != network::DataElement::TYPE_DISK_CACHE_ENTRY)
+  if (item.type() != BlobDataItem::Type::kDiskCacheEntry)
     return false;
   const int disk_cache_side_stream_index = item.disk_cache_side_stream_index();
   if (disk_cache_side_stream_index < 0)
@@ -245,7 +244,7 @@
     return true;
   }
   for (const auto& item : blob_data_->items()) {
-    if (item->type() != network::DataElement::TYPE_BYTES) {
+    if (item->type() != BlobDataItem::Type::kBytes) {
       return false;
     }
   }
@@ -455,11 +454,11 @@
 
   // Do the reading.
   const BlobDataItem& item = *items.at(current_item_index_);
-  if (item.type() == network::DataElement::TYPE_BYTES) {
+  if (item.type() == BlobDataItem::Type::kBytes) {
     ReadBytesItem(item, bytes_to_read);
     return Status::DONE;
   }
-  if (item.type() == network::DataElement::TYPE_DISK_CACHE_ENTRY)
+  if (item.type() == BlobDataItem::Type::kDiskCacheEntry)
     return ReadDiskCacheEntryItem(item, bytes_to_read);
   if (!IsFileType(item.type())) {
     NOTREACHED();
@@ -504,7 +503,8 @@
   TRACE_EVENT1("Blob", "BlobReader::ReadBytesItem", "uuid", blob_data_->uuid());
   DCHECK_GE(read_buf_->BytesRemaining(), bytes_to_read);
 
-  memcpy(read_buf_->data(), item.bytes() + item.offset() + current_item_offset_,
+  memcpy(read_buf_->data(),
+         item.bytes().data() + item.offset() + current_item_offset_,
          bytes_to_read);
 
   AdvanceBytesRead(bytes_to_read);
@@ -649,7 +649,7 @@
   DCHECK(IsFileType(item.type()));
 
   switch (item.type()) {
-    case network::DataElement::TYPE_FILE:
+    case BlobDataItem::Type::kFile:
       if (file_stream_provider_for_testing_) {
         return file_stream_provider_for_testing_->CreateForLocalFile(
             file_task_runner_.get(), item.path(),
@@ -660,7 +660,7 @@
           file_task_runner_.get(), item.path(),
           item.offset() + additional_offset,
           item.expected_modification_time()));
-    case network::DataElement::TYPE_FILE_FILESYSTEM: {
+    case BlobDataItem::Type::kFileFilesystem: {
       int64_t max_bytes_to_read =
           item.length() == std::numeric_limits<uint64_t>::max()
               ? storage::kMaximumLength
@@ -676,13 +676,9 @@
           item.offset() + additional_offset, max_bytes_to_read,
           item.expected_modification_time());
     }
-    case network::DataElement::TYPE_RAW_FILE:
-    case network::DataElement::TYPE_BLOB:
-    case network::DataElement::TYPE_BYTES:
-    case network::DataElement::TYPE_BYTES_DESCRIPTION:
-    case network::DataElement::TYPE_DISK_CACHE_ENTRY:
-    case network::DataElement::TYPE_DATA_PIPE:
-    case network::DataElement::TYPE_UNKNOWN:
+    case BlobDataItem::Type::kBytes:
+    case BlobDataItem::Type::kBytesDescription:
+    case BlobDataItem::Type::kDiskCacheEntry:
       break;
   }
 
diff --git a/storage/browser/blob/blob_registry_impl_unittest.cc b/storage/browser/blob/blob_registry_impl_unittest.cc
index 978fa71b..37a5324 100644
--- a/storage/browser/blob/blob_registry_impl_unittest.cc
+++ b/storage/browser/blob/blob_registry_impl_unittest.cc
@@ -839,7 +839,7 @@
   EXPECT_EQ(expected_file_count, snapshot->items().size());
   size_t remaining_size = kData.size();
   for (const auto& item : snapshot->items()) {
-    EXPECT_EQ(network::DataElement::TYPE_FILE, item->type());
+    EXPECT_EQ(BlobDataItem::Type::kFile, item->type());
     EXPECT_EQ(0u, item->offset());
     if (remaining_size > kTestBlobStorageMaxFileSizeBytes)
       EXPECT_EQ(kTestBlobStorageMaxFileSizeBytes, item->length());
diff --git a/storage/browser/blob/blob_slice_unittest.cc b/storage/browser/blob/blob_slice_unittest.cc
index 18810e9b..20c3a973 100644
--- a/storage/browser/blob/blob_slice_unittest.cc
+++ b/storage/browser/blob/blob_slice_unittest.cc
@@ -7,7 +7,6 @@
 #include <memory>
 
 #include "base/files/file_path.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/blob_entry.h"
@@ -30,34 +29,26 @@
   ~BlobSliceTest() override = default;
 
   scoped_refptr<ShareableBlobDataItem> CreateDataItem(size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToAllocatedBytes(size);
-    for (size_t i = 0; i < size; i++) {
-      *(element->mutable_bytes() + i) = i;
-    }
-    return scoped_refptr<ShareableBlobDataItem>(
-        new ShareableBlobDataItem(new BlobDataItem(std::move(element)),
-                                  ShareableBlobDataItem::QUOTA_NEEDED));
+    std::vector<char> bytes(size);
+    for (size_t i = 0; i < size; ++i)
+      bytes[i] = i;
+    return scoped_refptr<ShareableBlobDataItem>(new ShareableBlobDataItem(
+        BlobDataItem::CreateBytes(bytes), ShareableBlobDataItem::QUOTA_NEEDED));
   };
 
   scoped_refptr<ShareableBlobDataItem> CreateFileItem(size_t offset,
                                                       size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToFilePathRange(base::FilePath(FILE_PATH_LITERAL("kFakePath")),
-                                offset, size, base::Time::Max());
     return scoped_refptr<ShareableBlobDataItem>(new ShareableBlobDataItem(
-        new BlobDataItem(std::move(element)),
+        BlobDataItem::CreateFile(base::FilePath(FILE_PATH_LITERAL("kFakePath")),
+                                 offset, size, base::Time::Max()),
         ShareableBlobDataItem::POPULATED_WITHOUT_QUOTA));
   };
 
   scoped_refptr<ShareableBlobDataItem> CreateTempFileItem(size_t offset,
                                                           size_t size) {
-    std::unique_ptr<network::DataElement> element(new network::DataElement());
-    element->SetToFilePathRange(BlobDataBuilder::GetFutureFileItemPath(0),
-                                offset, size, base::Time());
-    return scoped_refptr<ShareableBlobDataItem>(
-        new ShareableBlobDataItem(new BlobDataItem(std::move(element)),
-                                  ShareableBlobDataItem::QUOTA_NEEDED));
+    return scoped_refptr<ShareableBlobDataItem>(new ShareableBlobDataItem(
+        BlobDataItem::CreateFutureFile(offset, size, 0),
+        ShareableBlobDataItem::QUOTA_NEEDED));
   };
 
   void Slice(BlobDataBuilder& builder,
@@ -77,8 +68,7 @@
     EXPECT_EQ(dest_item, copy.dest_item);
     EXPECT_EQ(size, dest_item->item()->length());
     EXPECT_EQ(ShareableBlobDataItem::QUOTA_NEEDED, dest_item->state());
-    EXPECT_EQ(network::DataElement::TYPE_BYTES_DESCRIPTION,
-              dest_item->item()->data_element().type());
+    EXPECT_EQ(BlobDataItem::Type::kBytesDescription, dest_item->item()->type());
   }
 };
 
@@ -205,8 +195,7 @@
   EXPECT_EQ(dest_item, builder.copies()[0].dest_item);
   EXPECT_EQ(5u, dest_item->item()->length());
   EXPECT_EQ(ShareableBlobDataItem::POPULATED_WITHOUT_QUOTA, dest_item->state());
-  EXPECT_EQ(network::DataElement::TYPE_FILE,
-            dest_item->item()->data_element().type());
+  EXPECT_EQ(BlobDataItem::Type::kFile, dest_item->item()->type());
 }
 
 }  // namespace storage
diff --git a/storage/browser/blob/blob_storage_context.cc b/storage/browser/blob/blob_storage_context.cc
index 79cd22d..a3d417c 100644
--- a/storage/browser/blob/blob_storage_context.cc
+++ b/storage/browser/blob/blob_storage_context.cc
@@ -23,7 +23,6 @@
 #include "base/task_runner.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/trace_event/trace_event.h"
-#include "services/network/public/cpp/data_element.h"
 #include "storage/browser/blob/blob_data_builder.h"
 #include "storage/browser/blob/blob_data_item.h"
 #include "storage/browser/blob/blob_data_snapshot.h"
@@ -108,7 +107,7 @@
 
   BlobEntry* entry =
       registry_.CreateEntry(uuid, content_type, content_disposition);
-  entry->set_size(network::DataElement::kUnknownSize);
+  entry->set_size(BlobDataItem::kUnknownSize);
   entry->set_status(BlobStatus::PENDING_CONSTRUCTION);
   entry->set_building_state(std::make_unique<BlobEntry::BuildingState>(
       false, TransportAllowedCallback(), 0));
@@ -146,8 +145,8 @@
 #if DCHECK_IS_ON()
   bool contains_unpopulated_transport_items = false;
   for (const auto& item : content->pending_transport_items()) {
-    if (item->item()->type() == network::DataElement::TYPE_BYTES_DESCRIPTION ||
-        item->item()->type() == network::DataElement::TYPE_FILE)
+    if (item->item()->type() == BlobDataItem::Type::kBytesDescription ||
+        item->item()->type() == BlobDataItem::Type::kFile)
       contains_unpopulated_transport_items = true;
   }
 
@@ -446,41 +445,34 @@
       // Our source item can be a file if it was a slice of an unpopulated file,
       // or a slice of data that was then paged to disk.
       size_t dest_size = static_cast<size_t>(copy.dest_item->item()->length());
-      network::DataElement::Type dest_type = copy.dest_item->item()->type();
+      BlobDataItem::Type dest_type = copy.dest_item->item()->type();
       switch (copy.source_item->item()->type()) {
-        case network::DataElement::TYPE_BYTES: {
-          DCHECK_EQ(dest_type, network::DataElement::TYPE_BYTES_DESCRIPTION);
-          const char* src_data =
-              copy.source_item->item()->bytes() + copy.source_item_offset;
-          copy.dest_item->item()->item_->SetToBytes(src_data, dest_size);
+        case BlobDataItem::Type::kBytes: {
+          DCHECK_EQ(dest_type, BlobDataItem::Type::kBytesDescription);
+          base::span<const char> src_data =
+              copy.source_item->item()->bytes().subspan(copy.source_item_offset,
+                                                        dest_size);
+          copy.dest_item->item()->PopulateBytes(src_data);
           break;
         }
-        case network::DataElement::TYPE_FILE: {
+        case BlobDataItem::Type::kFile: {
           // If we expected a memory item (and our source was paged to disk) we
           // free that memory.
-          if (dest_type == network::DataElement::TYPE_BYTES_DESCRIPTION)
+          if (dest_type == BlobDataItem::Type::kBytesDescription)
             copy.dest_item->set_memory_allocation(nullptr);
 
-          const network::DataElement& source_element =
-              copy.source_item->item()->data_element();
-          std::unique_ptr<network::DataElement> new_element(
-              new network::DataElement());
-          new_element->SetToFilePathRange(
-              source_element.path(),
-              source_element.offset() + copy.source_item_offset, dest_size,
-              source_element.expected_modification_time());
-          scoped_refptr<BlobDataItem> new_item(new BlobDataItem(
-              std::move(new_element), copy.source_item->item()->data_handle_));
+          const auto& source_item = copy.source_item->item();
+          scoped_refptr<BlobDataItem> new_item = BlobDataItem::CreateFile(
+              source_item->path(),
+              source_item->offset() + copy.source_item_offset, dest_size,
+              source_item->expected_modification_time(),
+              source_item->data_handle_);
           copy.dest_item->set_item(std::move(new_item));
           break;
         }
-        case network::DataElement::TYPE_RAW_FILE:
-        case network::DataElement::TYPE_UNKNOWN:
-        case network::DataElement::TYPE_BLOB:
-        case network::DataElement::TYPE_BYTES_DESCRIPTION:
-        case network::DataElement::TYPE_FILE_FILESYSTEM:
-        case network::DataElement::TYPE_DISK_CACHE_ENTRY:
-        case network::DataElement::TYPE_DATA_PIPE:
+        case BlobDataItem::Type::kBytesDescription:
+        case BlobDataItem::Type::kFileFilesystem:
+        case BlobDataItem::Type::kDiskCacheEntry:
           NOTREACHED();
           break;
       }
@@ -504,7 +496,7 @@
                      base::BindOnce(std::move(callback), entry->status()));
 
   for (const auto& shareable_item : entry->items()) {
-    DCHECK_NE(network::DataElement::TYPE_BYTES_DESCRIPTION,
+    DCHECK_NE(BlobDataItem::Type::kBytesDescription,
               shareable_item->item()->type());
     DCHECK(shareable_item->IsPopulated()) << shareable_item->state();
   }
diff --git a/storage/browser/blob/shareable_blob_data_item.cc b/storage/browser/blob/shareable_blob_data_item.cc
index 9c4c2356..046f4ab 100644
--- a/storage/browser/blob/shareable_blob_data_item.cc
+++ b/storage/browser/blob/shareable_blob_data_item.cc
@@ -20,7 +20,6 @@
     scoped_refptr<BlobDataItem> item,
     ShareableBlobDataItem::State state)
     : item_id_(GetAndIncrementItemId()), state_(state), item_(std::move(item)) {
-  DCHECK_NE(item_->type(), network::DataElement::TYPE_BLOB);
 }
 
 ShareableBlobDataItem::~ShareableBlobDataItem() = default;
diff --git a/storage/browser/blob/view_blob_internals_job.cc b/storage/browser/blob/view_blob_internals_job.cc
index fc0a4bc8..696fd19 100644
--- a/storage/browser/blob/view_blob_internals_job.cc
+++ b/storage/browser/blob/view_blob_internals_job.cc
@@ -248,10 +248,10 @@
     const BlobDataItem& item = *(blob_data.items().at(i)->item());
 
     switch (item.type()) {
-      case network::DataElement::TYPE_BYTES:
+      case BlobDataItem::Type::kBytes:
         AddHTMLListItem(kType, "data", out);
         break;
-      case network::DataElement::TYPE_FILE:
+      case BlobDataItem::Type::kFile:
         AddHTMLListItem(kType, "file", out);
         AddHTMLListItem(kPath,
                  net::EscapeForHTML(item.path().AsUTF8Unsafe()),
@@ -262,10 +262,7 @@
               out);
         }
         break;
-      case network::DataElement::TYPE_BLOB:
-        NOTREACHED();   // Should be flattened in the storage context.
-        break;
-      case network::DataElement::TYPE_FILE_FILESYSTEM:
+      case BlobDataItem::Type::kFileFilesystem:
         AddHTMLListItem(kType, "filesystem", out);
         AddHTMLListItem(kURL, item.filesystem_url().spec(), out);
         if (!item.expected_modification_time().is_null()) {
@@ -274,20 +271,13 @@
               out);
         }
         break;
-      case network::DataElement::TYPE_DISK_CACHE_ENTRY:
+      case BlobDataItem::Type::kDiskCacheEntry:
         AddHTMLListItem(kType, "disk cache entry", out);
         AddHTMLListItem(kURL, item.disk_cache_entry()->GetKey(), out);
         break;
-      case network::DataElement::TYPE_BYTES_DESCRIPTION:
+      case BlobDataItem::Type::kBytesDescription:
         AddHTMLListItem(kType, "pending data", out);
         break;
-      case network::DataElement::TYPE_DATA_PIPE:
-        AddHTMLListItem(kType, "data pipe", out);
-        break;
-      case network::DataElement::TYPE_RAW_FILE:
-      case network::DataElement::TYPE_UNKNOWN:
-        NOTREACHED();
-        break;
     }
     if (item.offset()) {
       AddHTMLListItem(kOffset, base::UTF16ToUTF8(base::FormatNumber(
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
index c92d657..2483a07efe 100644
--- a/testing/buildbot/chromium.fyi.json
+++ b/testing/buildbot/chromium.fyi.json
@@ -6335,19 +6335,6 @@
       }
     ]
   },
-  "Ozone Linux": {
-    "additional_compile_targets": [
-      "chrome"
-    ],
-    "gtest_tests": [
-      {
-        "swarming": {
-          "can_use_on_swarming_builders": true
-        },
-        "test": "services_unittests"
-      }
-    ]
-  },
   "Site Isolation Android": {
     "gtest_tests": [
       {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json
index 8e22eaa8..b2a1d8d 100644
--- a/testing/buildbot/chromium.linux.json
+++ b/testing/buildbot/chromium.linux.json
@@ -2464,5 +2464,18 @@
         }
       }
     ]
+  },
+  "Ozone Linux": {
+    "additional_compile_targets": [
+      "chrome"
+    ],
+    "gtest_tests": [
+      {
+        "swarming": {
+          "can_use_on_swarming_builders": true
+        },
+        "test": "services_unittests"
+      }
+    ]
   }
 }
diff --git a/testing/buildbot/filters/ash_unittests_mash.filter b/testing/buildbot/filters/ash_unittests_mash.filter
index b6ebbc22..c4fec0c 100644
--- a/testing/buildbot/filters/ash_unittests_mash.filter
+++ b/testing/buildbot/filters/ash_unittests_mash.filter
@@ -12,6 +12,7 @@
 -AppListPresenterDelegateTest.KeyPressEnablesSearchBox
 -AppListPresenterDelegateTest.LongUpwardDragInFullscreenShouldNotClose/1
 -AppListPresenterDelegateTest.PeekingToFullscreenWhenTabletModeIsActive
+-AppListPresenterDelegateTest.SearchBoxShownOnSmallDisplay
 -AppListPresenterDelegateTest.SideShelfAlignmentTextStateTransitions
 -AppListPresenterDelegateTest.StateTransitionsByTapAndClickingAppListBodyFromHalf/0
 -AppListPresenterDelegateTest.StateTransitionsByTapAndClickingAppListBodyFromHalf/1
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl
index 915b129f..f42e689 100644
--- a/testing/buildbot/waterfalls.pyl
+++ b/testing/buildbot/waterfalls.pyl
@@ -1189,14 +1189,6 @@
           'gtest_tests': 'chromium_win_clang_gtests',
         },
       },
-      'Ozone Linux': {
-        'additional_compile_targets': [
-          'chrome',
-        ],
-        'test_suites': {
-          'gtest_tests': 'ozone_linux_gtests',
-        },
-      },
       'Site Isolation Android': {
         'swarming': {
           'dimension_sets': [
@@ -1448,6 +1440,14 @@
           'isolated_scripts': 'chromium_linux_isolated_scripts',
         },
       },
+      'Ozone Linux': {
+        'additional_compile_targets': [
+          'chrome',
+        ],
+        'test_suites': {
+          'gtest_tests': 'ozone_linux_gtests',
+        },
+      },
     },
   },
   {
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index 1bdcb40..b61fc338 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -923,6 +923,21 @@
             ]
         }
     ],
+    "Crostini": [
+        {
+            "platforms": [
+                "chromeos"
+            ],
+            "experiments": [
+                {
+                    "name": "Crostini",
+                    "enable_features": [
+                        "Crostini"
+                    ]
+                }
+            ]
+        }
+    ],
     "CustomFeedbackUi": [
         {
             "platforms": [
diff --git a/third_party/WebKit/LayoutTests/ASANExpectations b/third_party/WebKit/LayoutTests/ASANExpectations
index 9de156b..6746d91c8 100644
--- a/third_party/WebKit/LayoutTests/ASANExpectations
+++ b/third_party/WebKit/LayoutTests/ASANExpectations
@@ -64,3 +64,6 @@
 # Intentionally failed allocations, via partitionAllocGenericFlags()
 crbug.com/577889 [ Linux ] fast/js/typed-array-allocation-failure.html [ Crash ]
 
+# Memory allocation hooks are disabled on ASAN/MSAN
+crbug.com/803276 inspector-protocol/memory/sampling-native-profile.js [ Skip ]
+
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
index 0dc7dae..adbc2a5 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -75,7 +75,7 @@
 crbug.com/714962 accessibility/background-color.html [ Failure ]
 crbug.com/714962 accessibility/bounds-calc.html [ Failure ]
 crbug.com/591099 accessibility/canvas-accessibilitynodeobject.html [ Failure ]
-crbug.com/591099 accessibility/canvas-fallback-content-2.html [ Crash ]
+crbug.com/591099 accessibility/canvas-fallback-content-2.html [ Crash Timeout ]
 crbug.com/591099 accessibility/canvas-fallback-content-labels.html [ Crash ]
 crbug.com/591099 accessibility/canvas-fallback-content.html [ Failure ]
 crbug.com/591099 accessibility/clickable.html [ Crash ]
@@ -89,7 +89,7 @@
 crbug.com/591099 accessibility/description-calc-summary.html [ Crash ]
 crbug.com/714962 accessibility/dimensions-include-descendants.html [ Failure Pass ]
 crbug.com/591099 accessibility/disabled-controls-not-focusable.html [ Crash ]
-crbug.com/591099 accessibility/disabled-controls.html [ Crash ]
+crbug.com/591099 accessibility/disabled-controls.html [ Crash Failure ]
 crbug.com/714962 accessibility/div-within-anchors-causes-crash.html [ Failure ]
 crbug.com/714962 accessibility/dl-role.html [ Failure ]
 crbug.com/591099 accessibility/element-role-mapping-focusable.html [ Crash ]
@@ -108,7 +108,7 @@
 crbug.com/591099 accessibility/inline-text-changes.html [ Failure ]
 crbug.com/591099 accessibility/inline-text-input.html [ Failure ]
 crbug.com/591099 accessibility/inline-text-word-boundaries.html [ Failure ]
-crbug.com/591099 accessibility/input-type-range-aria-value.html [ Crash ]
+crbug.com/591099 accessibility/input-type-range-aria-value.html [ Crash Failure ]
 crbug.com/591099 accessibility/input-type-range-value-change-event.html [ Crash ]
 crbug.com/591099 accessibility/input-type-range-value-change.html [ Crash ]
 crbug.com/714962 accessibility/label-for-control-hittest.html [ Failure ]
@@ -120,9 +120,9 @@
 crbug.com/591099 accessibility/name-calc-summary.html [ Crash ]
 crbug.com/591099 accessibility/presentation-owned-elements.html [ Failure ]
 crbug.com/591099 accessibility/radio-button-title-label.html [ Failure ]
-crbug.com/591099 accessibility/readonly.html [ Crash ]
+crbug.com/591099 accessibility/readonly.html [ Crash Failure ]
 crbug.com/591099 accessibility/removed-continuation-element-causes-crash.html [ Failure ]
-crbug.com/591099 accessibility/role-attribute.html [ Crash ]
+crbug.com/591099 accessibility/role-attribute.html [ Crash Failure ]
 crbug.com/591099 accessibility/scroll-div-horiz-sends-notification.html [ Failure ]
 crbug.com/714962 accessibility/selection-events.html [ Failure ]
 crbug.com/714962 accessibility/set-selection-link.html [ Failure ]
@@ -308,6 +308,7 @@
 crbug.com/591099 css1/basic/contextual_selectors.html [ Failure ]
 crbug.com/591099 css1/basic/grouping.html [ Failure ]
 crbug.com/591099 css1/basic/inheritance.html [ Failure ]
+crbug.com/591099 css1/box_properties/acid_test.html [ Failure ]
 crbug.com/591099 css1/box_properties/border.html [ Failure ]
 crbug.com/591099 css1/box_properties/border_bottom.html [ Failure ]
 crbug.com/591099 css1/box_properties/border_bottom_inline.html [ Failure ]
@@ -469,6 +470,7 @@
 crbug.com/591099 css2.1/t0805-c5522-brdr-01-b-g.html [ Failure ]
 crbug.com/591099 css2.1/t0805-c5522-brdr-02-e.html [ Failure ]
 crbug.com/591099 css2.1/t0805-c5522-ibrdr-00-a.html [ Failure ]
+crbug.com/591099 css2.1/t09-c5526c-display-00-e.html [ Failure ]
 crbug.com/591099 css2.1/t090402-c42-ibx-pad-00-d-ag.html [ Failure ]
 crbug.com/591099 css2.1/t0905-c414-flt-02-c.html [ Failure ]
 crbug.com/591099 css2.1/t0905-c414-flt-03-c.html [ Failure ]
@@ -2405,6 +2407,7 @@
 crbug.com/591099 external/wpt/selection/extend-20.html [ Timeout ]
 crbug.com/591099 external/wpt/selection/selectAllChildren.html [ Timeout ]
 crbug.com/591099 external/wpt/service-workers/service-worker/navigation-preload/resource-timing.https.html [ Pass ]
+crbug.com/591099 external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure ]
 crbug.com/714962 external/wpt/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html [ Failure ]
 crbug.com/591099 external/wpt/svg/interfaces.html [ Timeout ]
 crbug.com/591099 external/wpt/svg/linking/reftests/href-filter-element.html [ Failure ]
@@ -3064,6 +3067,7 @@
 crbug.com/591099 fast/css/nested-floating-relative-position-percentages.html [ Failure ]
 crbug.com/591099 fast/css/nested-rounded-corners.html [ Failure ]
 crbug.com/591099 fast/css/non-empty-span.html [ Failure ]
+crbug.com/591099 fast/css/non-standard-checkbox-size.html [ Failure ]
 crbug.com/591099 fast/css/nth-child-dynamic.html [ Failure ]
 crbug.com/591099 fast/css/number-parsing-crash.html [ Failure ]
 crbug.com/591099 fast/css/only-child-pseudo-class.html [ Failure ]
@@ -3087,8 +3091,8 @@
 crbug.com/591099 fast/css/pseudo-element-backdrop-hit-test.html [ Crash ]
 crbug.com/591099 fast/css/pseudo-element-line-break.html [ Failure ]
 crbug.com/591099 fast/css/pseudo-first-line-border-width.html [ Failure ]
-crbug.com/591099 fast/css/pseudo-in-range-invalid-value.html [ Crash ]
-crbug.com/591099 fast/css/pseudo-in-range.html [ Crash ]
+crbug.com/591099 fast/css/pseudo-in-range-invalid-value.html [ Crash Failure ]
+crbug.com/591099 fast/css/pseudo-in-range.html [ Crash Failure ]
 crbug.com/591099 fast/css/pseudo-required-optional-005.html [ Crash ]
 crbug.com/591099 fast/css/pseudostyle-anonymous-text.html [ Failure ]
 crbug.com/591099 fast/css/recursive-delay-update-scroll.html [ Failure ]
@@ -3144,7 +3148,7 @@
 crbug.com/591099 fast/css/transformed-mask.html [ Failure ]
 crbug.com/591099 fast/css/transition-color-unspecified.html [ Failure ]
 crbug.com/591099 fast/css/universal-hover-quirk.html [ Failure ]
-crbug.com/591099 fast/css/unknown-pseudo-element-matching.html [ Crash ]
+crbug.com/591099 fast/css/unknown-pseudo-element-matching.html [ Crash Failure ]
 crbug.com/591099 fast/css/usecounter-summary-display-block.html [ Crash ]
 crbug.com/714962 fast/css/user-drag-none.html [ Crash ]
 crbug.com/591099 fast/css/vertical-align-lengths.html [ Failure ]
@@ -3405,7 +3409,7 @@
 crbug.com/714962 fast/events/click-checkbox-blur-refocus-window.html [ Failure ]
 crbug.com/714962 fast/events/click-checkbox-refocus-window.html [ Failure ]
 crbug.com/714962 fast/events/click-over-descendant-elements.html [ Failure ]
-crbug.com/591099 fast/events/click-range-slider.html [ Crash ]
+crbug.com/591099 fast/events/click-range-slider.html [ Crash Failure ]
 crbug.com/714962 fast/events/click-with-large-negative-text-indent.html [ Failure ]
 crbug.com/714962 fast/events/content-changed-during-drop.html [ Failure ]
 crbug.com/591099 fast/events/context-no-deselect.html [ Failure ]
@@ -3455,7 +3459,7 @@
 crbug.com/714962 fast/events/offsetX-offsetY.html [ Failure ]
 crbug.com/591099 fast/events/onblur-remove.html [ Failure ]
 crbug.com/714962 fast/events/onchange-click-hang.html [ Failure ]
-crbug.com/591099 fast/events/onchange-range-slider.html [ Crash ]
+crbug.com/591099 fast/events/onchange-range-slider.html [ Crash Failure ]
 crbug.com/591099 fast/events/onclick-list-marker.html [ Failure ]
 crbug.com/591099 fast/events/onload-re-entry.html [ Failure ]
 crbug.com/591099 fast/events/onload-webkit-before-webcore.html [ Failure ]
@@ -3502,13 +3506,13 @@
 crbug.com/714962 fast/events/touch/gesture/gesture-tap-mouse-events.html [ Failure ]
 crbug.com/714962 fast/events/touch/gesture/gesture-tap-result.html [ Failure ]
 crbug.com/591099 fast/events/touch/touch-action-range-input-crash.html [ Crash ]
-crbug.com/591099 fast/events/touch/touch-action-range-input-csp.html [ Crash ]
-crbug.com/591099 fast/events/touch/touch-action-range-input.html [ Crash ]
+crbug.com/591099 fast/events/touch/touch-action-range-input-csp.html [ Crash Timeout ]
+crbug.com/591099 fast/events/touch/touch-action-range-input.html [ Crash Timeout ]
 crbug.com/714962 fast/events/touch/touch-before-pressing-spin-button.html [ Failure ]
 crbug.com/591099 fast/events/touch/touch-fractional-coordinates.html [ Failure ]
 crbug.com/591099 fast/events/touch/touch-handler-assert-input-range.html [ Crash ]
-crbug.com/591099 fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash ]
-crbug.com/591099 fast/events/touch/touch-slider.html [ Crash ]
+crbug.com/591099 fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash Failure Timeout ]
+crbug.com/591099 fast/events/touch/touch-slider.html [ Crash Failure ]
 crbug.com/591099 fast/events/wheel/latched-scroll-node-removed.html [ Pass ]
 crbug.com/591099 fast/events/wheel/mainthread-touchpad-fling-latching.html [ Pass ]
 crbug.com/591099 fast/events/wheel/mouse-wheel-scroll-latching.html [ Pass ]
@@ -3543,33 +3547,20 @@
 crbug.com/591099 fast/forms/button/button-align.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-baseline-and-collapsing.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-click-DOM.html [ Failure ]
-crbug.com/714962 fast/forms/button/button-generated-content.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-in-forms-collection.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-inner-block-reuse.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-type-change.html [ Failure ]
 crbug.com/591099 fast/forms/button/button-white-space.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-ar.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-coarse.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-minimum-date.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-required-ar.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-required.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-ru.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-step.html [ Failure ]
 crbug.com/591099 fast/forms/calendar-picker/calendar-picker-appearance-zoom125.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance-zoom200.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/calendar-picker-appearance.html [ Failure ]
 crbug.com/591099 fast/forms/calendar-picker/calendar-picker-key-operations.html [ Pass Timeout ]
 crbug.com/714962 fast/forms/calendar-picker/calendar-picker-mouse-operations.html [ Failure ]
 crbug.com/714962 fast/forms/calendar-picker/calendar-picker-type-change-onclick.html [ Timeout ]
-crbug.com/714962 fast/forms/calendar-picker/month-picker-appearance-step.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/month-picker-appearance.html [ Failure ]
 crbug.com/591099 fast/forms/calendar-picker/month-picker-key-operations.html [ Timeout ]
 crbug.com/714962 fast/forms/calendar-picker/month-picker-mouse-operations.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/week-picker-appearance-step.html [ Failure ]
-crbug.com/714962 fast/forms/calendar-picker/week-picker-appearance.html [ Failure ]
 crbug.com/591099 fast/forms/calendar-picker/week-picker-key-operations.html [ Pass Timeout ]
 crbug.com/714962 fast/forms/calendar-picker/week-picker-mouse-operations.html [ Failure ]
 crbug.com/591099 fast/forms/caret-rtl.html [ Failure ]
+crbug.com/591099 fast/forms/checkbox/checkbox-appearance-basic.html [ Failure ]
 crbug.com/714962 fast/forms/checkbox/checkbox-focus-by-mouse.html [ Failure ]
 crbug.com/591099 fast/forms/color/input-appearance-color.html [ Failure ]
 crbug.com/714962 fast/forms/color/input-color-chooser-shown-readonly.html [ Timeout ]
@@ -3578,41 +3569,36 @@
 crbug.com/591099 fast/forms/control-clip-overflow.html [ Failure ]
 crbug.com/591099 fast/forms/control-clip.html [ Failure ]
 crbug.com/591099 fast/forms/control-restrict-line-height.html [ Failure ]
-crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist-rtl.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist-zoomed.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/input-appearance-range-with-padding-with-datalist.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/input-appearance-range-with-transform.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/range-snap-to-datalist.html [ Crash ]
-crbug.com/591099 fast/forms/datalist/update-range-with-datalist.html [ Crash ]
+crbug.com/591099 fast/forms/datalist/input-appearance-range-with-datalist-zoomed.html [ Crash Failure ]
+crbug.com/591099 fast/forms/datalist/input-appearance-range-with-padding-with-datalist.html [ Crash Failure ]
+crbug.com/591099 fast/forms/datalist/input-appearance-range-with-transform.html [ Crash Failure ]
+crbug.com/591099 fast/forms/datalist/range-snap-to-datalist.html [ Crash Failure ]
 crbug.com/714962 fast/forms/date-multiple-fields/date-clearbutton-preventdefault-mousecapture-status.html [ Failure ]
 crbug.com/714962 fast/forms/date-multiple-fields/date-multiple-fields-clearbutton-change-and-input-events.html [ Failure ]
 crbug.com/714962 fast/forms/date-multiple-fields/date-multiple-fields-mouse-events.html [ Failure ]
 crbug.com/714962 fast/forms/date-multiple-fields/date-multiple-fields-spinbutton-change-and-input-events.html [ Failure ]
 crbug.com/591099 fast/forms/date-multiple-fields/date-multiple-fields-wheel-event.html [ Failure ]
 crbug.com/591099 fast/forms/date/date-appearance-basic.html [ Failure ]
-crbug.com/714962 fast/forms/date/date-appearance-l10n.html [ Failure ]
 crbug.com/591099 fast/forms/date/date-appearance-pseudo-elements.html [ Failure ]
 crbug.com/714962 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-clearbutton-change-and-input-events.html [ Failure ]
 crbug.com/714962 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-mouse-events.html [ Failure ]
 crbug.com/714962 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-spinbutton-change-and-input-events.html [ Failure ]
 crbug.com/591099 fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-wheel-event.html [ Failure ]
 crbug.com/591099 fast/forms/datetimelocal/datetimelocal-appearance-basic.html [ Failure ]
-crbug.com/714962 fast/forms/datetimelocal/datetimelocal-appearance-l10n.html [ Failure ]
 crbug.com/714962 fast/forms/disabled-mousedown-event.html [ Failure ]
 crbug.com/591099 fast/forms/encoding-test.html [ Failure ]
 crbug.com/591099 fast/forms/fieldset/fieldset-crash.html [ Failure ]
-crbug.com/591099 fast/forms/fieldset/fieldset-elements.html [ Crash ]
-crbug.com/591099 fast/forms/fieldset/fieldset-form-collection-radionode-list.html [ Crash Pass ]
 crbug.com/591099 fast/forms/fieldset/fieldset-with-float.html [ Failure ]
 crbug.com/591099 fast/forms/fieldset/float-before-fieldset.html [ Failure ]
 crbug.com/714962 fast/forms/file/file-cloneNode.html [ Timeout ]
 crbug.com/714962 fast/forms/file/file-input-change-event.html [ Failure ]
+crbug.com/591099 fast/forms/file/file-input-click.html [ Failure ]
 crbug.com/591099 fast/forms/file/file-input-direction.html [ Failure ]
 crbug.com/591099 fast/forms/file/file-input-disabled.html [ Failure ]
 crbug.com/714962 fast/forms/file/file-input-empty-validation.html [ Timeout ]
 crbug.com/714962 fast/forms/file/file-input-reset-validation.html [ Timeout ]
 crbug.com/714962 fast/forms/file/file-input-reset.html [ Failure ]
+crbug.com/591099 fast/forms/file/file-input-webkitdirectory-click.html [ Failure ]
 crbug.com/591099 fast/forms/file/get-file-upload.html [ Failure ]
 crbug.com/714962 fast/forms/file/input-file-entries.html [ Timeout ]
 crbug.com/714962 fast/forms/file/input-file-value-with-zoom.html [ Failure ]
@@ -3624,11 +3610,7 @@
 crbug.com/591099 fast/forms/focus-selection-input.html [ Failure ]
 crbug.com/591099 fast/forms/focus-selection-textarea.html [ Failure ]
 crbug.com/591099 fast/forms/focus-style-pending.html [ Failure ]
-crbug.com/591099 fast/forms/focus-with-display-block.html [ Crash ]
-crbug.com/591099 fast/forms/focus2.html [ Crash ]
 crbug.com/591099 fast/forms/form-attribute-elements-order.html [ Failure ]
-crbug.com/591099 fast/forms/form-collection-elements.html [ Crash ]
-crbug.com/591099 fast/forms/form-collection-radio-node-list.html [ Crash ]
 crbug.com/591099 fast/forms/form-element-geometry.html [ Failure ]
 crbug.com/591099 fast/forms/form-hides-table.html [ Failure ]
 crbug.com/591099 fast/forms/form-in-malformed-markup.html [ Failure ]
@@ -3645,10 +3627,9 @@
 crbug.com/591099 fast/forms/image/image-alt-text.html [ Failure ]
 crbug.com/591099 fast/forms/image/image-error-event-modifies-type-crash.html [ Failure ]
 crbug.com/591099 fast/forms/image/input-align-image.html [ Failure ]
-crbug.com/591099 fast/forms/indeterminate-input-types.html [ Crash ]
 crbug.com/591099 fast/forms/indeterminate.html [ Failure ]
 crbug.com/591099 fast/forms/input-align.html [ Failure ]
-crbug.com/591099 fast/forms/input-appearance-height.html [ Crash ]
+crbug.com/591099 fast/forms/input-appearance-height.html [ Crash Failure ]
 crbug.com/591099 fast/forms/input-button-sizes.html [ Failure ]
 crbug.com/591099 fast/forms/input-common/duplicate-names.html [ Failure ]
 crbug.com/591099 fast/forms/input-common/reset-checked.html [ Failure ]
@@ -3660,31 +3641,18 @@
 crbug.com/591099 fast/forms/input-value.html [ Failure ]
 crbug.com/714962 fast/forms/label/continous-click-on-label.html [ Failure ]
 crbug.com/714962 fast/forms/label/hover-on-moving-mouse-checkbox-to-parent-label.html [ Failure ]
-crbug.com/714962 fast/forms/label/label-click.html [ Failure ]
 crbug.com/591099 fast/forms/label/label-contains-other-interactive-content.html [ Crash ]
 crbug.com/591099 fast/forms/label/label-selection-by-textSelection-and-click.html [ Failure ]
-crbug.com/591099 fast/forms/label/labelable-elements.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-add-htmlFor-label.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-add-parent-label.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-change-htmlFor-attribute.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-multiple-sibling-labels.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-parent-and-sibling-labels.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-remove-htmlFor-attribute.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-remove-htmlFor-label.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-remove-parent-label.html [ Crash ]
-crbug.com/591099 fast/forms/label/labels-set-htmlFor-attribute.html [ Crash ]
 crbug.com/591099 fast/forms/label/selection-disabled-label.html [ Failure Crash ]
 crbug.com/591099 fast/forms/long-text-in-input.html [ Crash Failure ]
 crbug.com/591099 fast/forms/mailto/advanced-get.html [ Failure ]
 crbug.com/591099 fast/forms/mailto/advanced-put.html [ Failure ]
-crbug.com/591099 fast/forms/min-content-form-controls.html [ Crash ]
 crbug.com/591099 fast/forms/minWidthPercent.html [ Failure ]
 crbug.com/714962 fast/forms/month-multiple-fields/month-multiple-fields-clearbutton-change-and-input-events.html [ Failure ]
 crbug.com/714962 fast/forms/month-multiple-fields/month-multiple-fields-mouse-events.html [ Failure ]
 crbug.com/714962 fast/forms/month-multiple-fields/month-multiple-fields-spinbutton-change-and-input-events.html [ Failure ]
 crbug.com/591099 fast/forms/month-multiple-fields/month-multiple-fields-wheel-event.html [ Failure ]
 crbug.com/591099 fast/forms/month/month-appearance-basic.html [ Failure ]
-crbug.com/714962 fast/forms/month/month-appearance-l10n.html [ Failure ]
 crbug.com/591099 fast/forms/month/month-appearance-pseudo-elements.html [ Failure ]
 crbug.com/591099 fast/forms/negativeLineHeight.html [ Failure ]
 crbug.com/591099 fast/forms/number/number-appearance-datalist.html [ Failure ]
@@ -3701,8 +3669,6 @@
 crbug.com/591099 fast/forms/number/number-wheel-event.html [ Failure ]
 crbug.com/591099 fast/forms/onselect-textfield.html [ Failure ]
 crbug.com/591099 fast/forms/output/htmloutputelement.html [ Failure ]
-crbug.com/714962 fast/forms/password-placeholder-text-security.html [ Failure ]
-crbug.com/591099 fast/forms/percent-height-auto-width-form-controls.html [ Crash ]
 crbug.com/591099 fast/forms/placeholder-position.html [ Failure ]
 crbug.com/591099 fast/forms/plaintext-mode-2.html [ Failure ]
 crbug.com/591099 fast/forms/preserveFormDuringResidualStyle.html [ Failure ]
@@ -3717,46 +3683,26 @@
 crbug.com/591099 fast/forms/radio/radio-restore-preventDefault.html [ Failure ]
 crbug.com/591099 fast/forms/radio/radio_checked.html [ Failure ]
 crbug.com/591099 fast/forms/radio/radio_checked_name.html [ Failure ]
-crbug.com/591099 fast/forms/range/ValidityState-stepMismatch-range.html [ Crash ]
-crbug.com/591099 fast/forms/range/input-appearance-range-rtl.html [ Crash ]
-crbug.com/591099 fast/forms/range/input-appearance-range.html [ Crash ]
-crbug.com/591099 fast/forms/range/input-range-progress-indicator.html [ Crash ]
-crbug.com/591099 fast/forms/range/input-range-validation-message.html [ Crash ]
-crbug.com/591099 fast/forms/range/input-valueasnumber-range.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-appearance-basic.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-change-min-max.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-default-value.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-disabled-on-input.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-drag-when-toggled-disabled.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-drag.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-focus-by-mouse.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-hit-test-with-padding.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-input-dynamic-oninput.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-keyboard-oninput-event.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-keyoperation.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-reset.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-setrangetext.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-slow-drag-to-edge.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-stepup-stepdown-from-renderer.html [ Crash ]
+crbug.com/591099 fast/forms/range/range-appearance-basic.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-disabled-on-input.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-drag-when-toggled-disabled.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-drag.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-focus-by-mouse.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-hit-test-with-padding.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-slow-drag-to-edge.html [ Crash Failure ]
 crbug.com/591099 fast/forms/range/range-thumb-height-percentage.html [ Failure ]
-crbug.com/591099 fast/forms/range/range-type-change-crash.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-type-change-onchange-2.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-type-change-onchange.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-type-change-oninput.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-update-styled.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-update.html [ Crash ]
-crbug.com/591099 fast/forms/range/range-value-rounding.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-delete-while-dragging-thumb.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-hit-testing.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-in-multi-column.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-mouse-events.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-onchange-event.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-padding.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-thumb-shared-style.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-thumb-stylability.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-transformed.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-zero-size-crash.html [ Crash ]
-crbug.com/591099 fast/forms/range/slider-zoomed.html [ Crash ]
+crbug.com/591099 fast/forms/range/range-type-change-crash.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-update-styled.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/range-update.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-delete-while-dragging-thumb.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-hit-testing.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-in-multi-column.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-mouse-events.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-onchange-event.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-padding.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-thumb-shared-style.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-thumb-stylability.html [ Crash Failure ]
+crbug.com/591099 fast/forms/range/slider-zoomed.html [ Crash Failure ]
 crbug.com/591099 fast/forms/range/thumbslider-no-parent-slider.html [ Failure ]
 crbug.com/591099 fast/forms/reportValidity-valid.html [ Failure ]
 crbug.com/591099 fast/forms/reset-autofilled.html [ Failure ]
@@ -3777,12 +3723,6 @@
 crbug.com/591099 fast/forms/search/search-vertical-alignment.html [ Failure ]
 crbug.com/714962 fast/forms/search/search-zoomed.html [ Failure ]
 crbug.com/591099 fast/forms/search/searchfield-heights.html [ Failure ]
-crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-coarse.html [ Failure ]
-crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-long.html [ Failure ]
-crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-many.html [ Failure ]
-crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-minimum-font.html [ Failure ]
-crbug.com/591099 fast/forms/select-popup/popup-menu-appearance-rtl-default.html [ Failure ]
-crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-styled.html [ Failure ]
 crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-transform.html [ Failure ]
 crbug.com/714962 fast/forms/select-popup/popup-menu-appearance-zoom.html [ Failure ]
 crbug.com/591099 fast/forms/select/003.html [ Failure ]
@@ -3802,8 +3742,13 @@
 crbug.com/591099 fast/forms/select/listbox-appearance-basic.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-bidi-align.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-clip.html [ Failure ]
+crbug.com/591099 fast/forms/select/listbox-drag-in-non-multiple.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-in-multi-column.html [ Failure ]
+crbug.com/591099 fast/forms/select/listbox-onchange.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-scrollbar-incremental-load.html [ Failure ]
+crbug.com/591099 fast/forms/select/listbox-selection-2.html [ Failure ]
+crbug.com/591099 fast/forms/select/listbox-selection.html [ Failure ]
+crbug.com/591099 fast/forms/select/listbox-tap-input-change-event.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-tap.html [ Failure ]
 crbug.com/591099 fast/forms/select/listbox-width-change.html [ Failure ]
 crbug.com/591099 fast/forms/select/menulist-appearance-basic.html [ Failure ]
@@ -3825,6 +3770,7 @@
 crbug.com/591099 fast/forms/select/option-index.html [ Failure ]
 crbug.com/591099 fast/forms/select/option-relayout-modified-text.html [ Failure ]
 crbug.com/591099 fast/forms/select/option-script.html [ Failure ]
+crbug.com/591099 fast/forms/select/option-strip-whitespace.html [ Failure ]
 crbug.com/591099 fast/forms/select/option-text-clip.html [ Failure ]
 crbug.com/591099 fast/forms/select/popup-closes-on-blur.html [ Failure ]
 crbug.com/591099 fast/forms/select/popup-with-display-none-optgroup.html [ Failure ]
@@ -3846,7 +3792,7 @@
 crbug.com/591099 fast/forms/select/select-initial-position.html [ Failure ]
 crbug.com/591099 fast/forms/select/select-item-background-clip.html [ Failure ]
 crbug.com/591099 fast/forms/select/select-list-box-with-height.html [ Failure ]
-crbug.com/591099 fast/forms/select/select-listbox-multiple-no-focusring.html [ Failure ]
+crbug.com/591099 fast/forms/select/select-live-pseudo-selectors.html [ Failure ]
 crbug.com/591099 fast/forms/select/select-multiple-elements-with-mouse-drag-with-options-less-than-size.html [ Failure ]
 crbug.com/591099 fast/forms/select/select-multiple-rtl.html [ Failure ]
 crbug.com/591099 fast/forms/select/select-overflow-scroll-inherited.html [ Failure ]
@@ -3862,14 +3808,12 @@
 crbug.com/591099 fast/forms/selection-direction.html [ Timeout ]
 crbug.com/591099 fast/forms/selection-functions.html [ Failure ]
 crbug.com/591099 fast/forms/selection-start-end-readonly.html [ Failure ]
-crbug.com/591099 fast/forms/selection-wrongtype.html [ Crash ]
 crbug.com/714962 fast/forms/setrangetext-within-events.html [ Failure ]
 crbug.com/591099 fast/forms/slow-click.html [ Failure ]
 crbug.com/591099 fast/forms/stuff-on-my-optgroup.html [ Failure ]
 crbug.com/591099 fast/forms/submit-add-remove-element.html [ Failure ]
 crbug.com/591099 fast/forms/submit-onFocus-invalidForm.html [ Failure ]
 crbug.com/591099 fast/forms/submit/submit-appearance-basic.html [ Failure ]
-crbug.com/714962 fast/forms/suggestion-picker/date-suggestion-picker-appearance-rtl.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/date-suggestion-picker-appearance-with-scroll-bar.html [ Failure ]
 crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom125.html [ Failure ]
 crbug.com/591099 fast/forms/suggestion-picker/date-suggestion-picker-appearance-zoom200.html [ Failure ]
@@ -3878,25 +3822,18 @@
 crbug.com/714962 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-rtl.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance-with-scroll-bar.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/datetimelocal-suggestion-picker-appearance.html [ Failure ]
-crbug.com/714962 fast/forms/suggestion-picker/month-suggestion-picker-appearance-rtl.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/month-suggestion-picker-appearance-with-scroll-bar.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/month-suggestion-picker-appearance.html [ Failure ]
 crbug.com/591099 fast/forms/suggestion-picker/time-suggestion-picker-appearance-locale-hebrew.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/time-suggestion-picker-appearance-rtl.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/time-suggestion-picker-appearance-with-scroll-bar.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/time-suggestion-picker-appearance.html [ Failure ]
-crbug.com/714962 fast/forms/suggestion-picker/week-suggestion-picker-appearance-rtl.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/week-suggestion-picker-appearance-with-scroll-bar.html [ Failure ]
 crbug.com/714962 fast/forms/suggestion-picker/week-suggestion-picker-appearance.html [ Failure ]
 crbug.com/591099 fast/forms/tabbing-input-iframe.html [ Failure ]
 crbug.com/591099 fast/forms/targeted-frame-submission.html [ Failure ]
 crbug.com/591099 fast/forms/text-control-intrinsic-widths.html [ Timeout ]
 crbug.com/591099 fast/forms/text-style-color.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-appearance-autocomplete-suggested-value-over-placeholder-value.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-appearance-autocomplete-suggested-value-when-underlying-placeholder-is-removed.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-appearance-autocomplete-very-long-value.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-appearance-autocomplete-with-initial-value.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-appearance-autocomplete.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-appearance-bkcolor.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-appearance-default-bkcolor.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-appearance-disabled.html [ Failure ]
@@ -3915,8 +3852,6 @@
 crbug.com/591099 fast/forms/text/input-field-text-truncated.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-hit-test-border.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-no-renderer.html [ Failure ]
-crbug.com/714962 fast/forms/text/input-placeholder-paint-order.html [ Failure ]
-crbug.com/591099 fast/forms/text/input-placeholder-text-indent.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-placeholder-visibility-1.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-placeholder-visibility-3.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-readonly-autoscroll.html [ Failure ]
@@ -3935,9 +3870,6 @@
 crbug.com/591099 fast/forms/text/input-text-self-emptying-click.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-text-word-wrap.html [ Failure ]
 crbug.com/591099 fast/forms/text/input-width.html [ Failure ]
-crbug.com/714962 fast/forms/text/password-input-suggested-value-appearance.html [ Failure ]
-crbug.com/714962 fast/forms/text/placeholder-pseudo-style.html [ Failure ]
-crbug.com/714962 fast/forms/text/placeholder-with-positioned-element.html [ Failure ]
 crbug.com/591099 fast/forms/text/text-appearance-basic.html [ Failure ]
 crbug.com/591099 fast/forms/text/text-appearance-datalist.html [ Failure ]
 crbug.com/591099 fast/forms/text/text-reset.html [ Failure ]
@@ -3974,9 +3906,7 @@
 crbug.com/591099 fast/forms/textarea/textarea-setinnerhtml.html [ Failure ]
 crbug.com/591099 fast/forms/textarea/textarea-width.html [ Failure ]
 crbug.com/714962 fast/forms/time-multiple-fields/time-multiple-fields-clearbutton-change-and-input-events.html [ Failure ]
-crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-focus.html [ Failure ]
 crbug.com/714962 fast/forms/time-multiple-fields/time-multiple-fields-mouse-events.html [ Failure ]
-crbug.com/714962 fast/forms/time-multiple-fields/time-multiple-fields-narrow-width-scroll.html [ Failure ]
 crbug.com/714962 fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-change-and-input-events.html [ Failure ]
 crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-spinbutton-click-in-iframe.html [ Failure ]
 crbug.com/591099 fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html [ Timeout ]
@@ -4195,6 +4125,7 @@
 crbug.com/591099 fast/lists/list-and-grid.html [ Failure ]
 crbug.com/591099 fast/lists/list-and-margin-collapse.html [ Failure ]
 crbug.com/591099 fast/lists/list-color-change-no-layout.html [ Failure ]
+crbug.com/591099 fast/lists/list-inside-columns-crash.html [ Crash ]
 crbug.com/591099 fast/lists/list-item-line-height.html [ Failure ]
 crbug.com/591099 fast/lists/list-marker-before-content-table.html [ Failure ]
 crbug.com/591099 fast/lists/list-marker-before-float-nested-rtl.html [ Failure ]
@@ -5150,6 +5081,7 @@
 crbug.com/714962 fast/text/content-following-inline-isolate-with-collapsed-whitespace.html [ Failure ]
 crbug.com/591099 fast/text/decorations-transformed.html [ Failure ]
 crbug.com/591099 fast/text/decorations-with-text-combine.html [ Failure ]
+crbug.com/591099 fast/text/drawBidiText.html [ Failure ]
 crbug.com/591099 fast/text/ellipsis-in-absolute-block.html [ Failure ]
 crbug.com/714962 fast/text/ellipsis-in-justified-text.html [ Failure ]
 crbug.com/591099 fast/text/ellipsis-in-relative-inline-right.html [ Failure ]
@@ -5576,7 +5508,8 @@
 crbug.com/591099 http/tests/devtools/console/console-functions.js [ Failure ]
 crbug.com/591099 http/tests/devtools/console/console-search.js [ Timeout ]
 crbug.com/591099 http/tests/devtools/console/console-uncaught-promise.js [ Failure ]
-crbug.com/591099 http/tests/devtools/console/shadow-element.js [ Timeout ]
+crbug.com/591099 http/tests/devtools/console/console-viewport-control.js [ Failure ]
+crbug.com/591099 http/tests/devtools/console/shadow-element.js [ Crash Timeout ]
 crbug.com/591099 http/tests/devtools/editor/text-editor-ctrl-d-1.js [ Timeout ]
 crbug.com/591099 http/tests/devtools/editor/text-editor-ctrl-d-2.js [ Timeout ]
 crbug.com/714962 http/tests/devtools/editor/text-editor-enter-behaviour.js [ Timeout ]
@@ -6115,6 +6048,7 @@
 crbug.com/591099 paint/invalidation/bugzilla-6388.html [ Failure ]
 crbug.com/591099 paint/invalidation/bugzilla-6473.html [ Failure ]
 crbug.com/591099 paint/invalidation/bugzilla-7235.html [ Crash ]
+crbug.com/591099 paint/invalidation/button-inner-no-repaint.html [ Failure ]
 crbug.com/714962 paint/invalidation/canvas-resize-no-full-invalidation.html [ Failure ]
 crbug.com/714962 paint/invalidation/caret-outside-block.html [ Failure ]
 crbug.com/714962 paint/invalidation/caret-subpixel.html [ Failure ]
@@ -6229,10 +6163,10 @@
 crbug.com/591099 paint/invalidation/forms/button-reset-focus-by-mouse-then-keydown.html [ Failure ]
 crbug.com/591099 paint/invalidation/forms/checkbox-focus-by-mouse-then-keydown.html [ Failure ]
 crbug.com/591099 paint/invalidation/forms/radio-focus-by-mouse-then-keydown.html [ Failure ]
-crbug.com/591099 paint/invalidation/forms/range-focus-by-mouse-then-keydown.html [ Crash ]
+crbug.com/591099 paint/invalidation/forms/range-focus-by-mouse-then-keydown.html [ Crash Failure ]
 crbug.com/591099 paint/invalidation/forms/select-option-background-color.html [ Failure ]
-crbug.com/591099 paint/invalidation/forms/slider-thumb-drag-release.html [ Crash ]
-crbug.com/591099 paint/invalidation/forms/slider-thumb-float.html [ Crash ]
+crbug.com/591099 paint/invalidation/forms/slider-thumb-drag-release.html [ Crash Failure ]
+crbug.com/591099 paint/invalidation/forms/slider-thumb-float.html [ Crash Failure ]
 crbug.com/591099 paint/invalidation/forms/submit-focus-by-mouse-then-keydown.html [ Failure ]
 crbug.com/714962 paint/invalidation/forms/textarea-appearance-none-resize-handle.html [ Failure ]
 crbug.com/714962 paint/invalidation/forms/textarea-caret.html [ Failure ]
@@ -7547,6 +7481,7 @@
 crbug.com/591099 virtual/gpu/fast/canvas/patternfill-repeat.html [ Failure ]
 crbug.com/714962 virtual/gpu/fast/canvas/setWidthResetAfterForcedRender.html [ Failure ]
 crbug.com/591099 virtual/high-contrast-mode/paint/high-contrast-mode/image-filter-all/text-on-backgrounds.html [ Failure ]
+crbug.com/591099 virtual/incremental-shadow-dom/external/wpt/shadow-dom/DocumentOrShadowRoot-prototype-elementFromPoint.html [ Failure ]
 crbug.com/591099 virtual/incremental-shadow-dom/external/wpt/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html [ Failure ]
 crbug.com/591099 virtual/incremental-shadow-dom/external/wpt/shadow-dom/untriaged/html-elements-in-shadow-trees/html-forms/test-002.html [ Pass ]
 crbug.com/591099 virtual/incremental-shadow-dom/external/wpt/shadow-dom/untriaged/shadow-trees/reprojection/reprojection-001.html [ Pass ]
@@ -7635,7 +7570,7 @@
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/click-checkbox-blur-refocus-window.html [ Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/click-checkbox-refocus-window.html [ Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/click-over-descendant-elements.html [ Failure ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/click-range-slider.html [ Crash ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/click-range-slider.html [ Crash Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/click-with-large-negative-text-indent.html [ Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/content-changed-during-drop.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/context-no-deselect.html [ Failure ]
@@ -7685,7 +7620,7 @@
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/offsetX-offsetY.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/onblur-remove.html [ Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/onchange-click-hang.html [ Failure ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/onchange-range-slider.html [ Crash ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/onchange-range-slider.html [ Crash Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/onclick-list-marker.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/onload-re-entry.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/onload-webkit-before-webcore.html [ Failure ]
@@ -7731,13 +7666,13 @@
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/touch/gesture/gesture-tap-mouse-events.html [ Failure ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/touch/gesture/gesture-tap-result.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-action-range-input-crash.html [ Crash ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-action-range-input-csp.html [ Crash ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-action-range-input.html [ Crash ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-action-range-input-csp.html [ Crash Timeout ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-action-range-input.html [ Crash Timeout ]
 crbug.com/714962 virtual/mouseevent_fractional/fast/events/touch/touch-before-pressing-spin-button.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-fractional-coordinates.html [ Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-handler-assert-input-range.html [ Crash ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash ]
-crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-slider.html [ Crash ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-slider-no-js-touch-listener.html [ Crash Failure ]
+crbug.com/591099 virtual/mouseevent_fractional/fast/events/touch/touch-slider.html [ Crash Failure ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/wheel/latched-scroll-node-removed.html [ Pass ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/wheel/mainthread-touchpad-fling-latching.html [ Pass ]
 crbug.com/591099 virtual/mouseevent_fractional/fast/events/wheel/mouse-wheel-scroll-latching.html [ Pass ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
index 123340a..ff6d600 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-features=NetworkService
@@ -31,7 +31,6 @@
 Bug(none) external/wpt/service-workers/service-worker/fetch-header-visibility.https.html [ Pass Failure Crash ]
 Bug(none) external/wpt/service-workers/service-worker/fetch-request-resources.https.html [ Pass Failure Crash ]
 Bug(none) external/wpt/service-workers/service-worker/fetch-request-xhr-sync.https.html [ Timeout ]
-Bug(none) external/wpt/service-workers/service-worker/fetch-request-xhr.https.html [ Failure ]
 Bug(none) external/wpt/service-workers/service-worker/import-scripts-resource-map.https.html [ Failure Crash ]
 crbug.com/771118 external/wpt/service-workers/service-worker/mime-sniffing.https.html [ Failure ]
 Bug(none) external/wpt/service-workers/service-worker/register-link-header.https.html [ Timeout ]
@@ -54,8 +53,6 @@
 Bug(none) http/tests/appcache/main-resource-redirect.html [ Pass Timeout ]
 Bug(none) http/tests/appcache/reload.html [ Pass Timeout ]
 
-# NetworkService won't support Foreign Fetch.
-
 # Passes on NetworkService and fails on non-NetworkService because
 # NetworkService isn't affected by https://crbug.com/595993.
 Bug(none) external/wpt/service-workers/service-worker/request-end-to-end.https.html [ Pass ]
@@ -160,10 +157,8 @@
 Bug(none) http/tests/security/mixedContent/nonwebby-scheme-in-iframe-allowed.https.html [ Failure Timeout ]
 Bug(none) http/tests/security/offscreen-canvas-worker-read-blocked-by-setting.html [ Crash Pass Timeout ]
 Bug(none) http/tests/security/suborigins/suborigin-unsafe-cookies.php [ Timeout ]
-Bug(none) http/tests/serviceworker/chromium.fetch-event-headers.html [ Failure ]
 Bug(none) http/tests/serviceworker/chromium.update-served-from-cache.html [ Failure ]
 Bug(none) http/tests/serviceworker/chromium/register-error-messages.html [ Failure ]
-Bug(none) http/tests/serviceworker/chromium/request-body-blob-crash.html [ Crash Failure ]
 Bug(none) http/tests/websocket/cookie-document-to-ws.html [ Failure ]
 Bug(none) http/tests/websocket/cookie-http-to-ws.pl [ Failure ]
 Bug(none) http/tests/websocket/httponly-cookie.pl [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175 b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
index f917f38..caff519 100644
--- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
+++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v175
@@ -66,6 +66,7 @@
 crbug.com/769942 svg/custom/focus-ring.svg [ Failure ]
 crbug.com/769942 svg/custom/image-with-transform-clip-filter.svg [ Failure ]
 crbug.com/769942 svg/custom/masking-clipping-hidpi.svg [ Failure ]
+crbug.com/769942 svg/custom/local-url-references.html [ Failure ]
 crbug.com/769942 svg/custom/recursive-clippath.svg [ Failure ]
 crbug.com/769942 svg/custom/text-clip.svg [ Failure ]
 crbug.com/769942 svg/custom/transformed-outlines.svg [ Failure ]
@@ -83,27 +84,19 @@
 crbug.com/769942 virtual/gpu-rasterization/images/color-profile-svg-foreign-object.html [ Failure ]
 crbug.com/769942 virtual/exotic-color-space/images/color-profile-svg-foreign-object.html [ Failure ]
 
-crbug.com/771643 css3/filters/effect-reference-tile.html [ Pass Failure Crash ]
+# Subpixel differences
 crbug.com/771643 external/wpt/css/css-backgrounds/background-attachment-local/attachment-local-clipping-color-5.html [ Failure ]
 crbug.com/771643 external/wpt/css/css-backgrounds/background-attachment-local/attachment-local-clipping-image-5.html [ Failure ]
-crbug.com/771643 fast/reflections/reflection-masks-outset.html [ Pass Failure ]
-crbug.com/771643 images/cross-fade-invalidation.html [ Failure ]
-crbug.com/771643 images/drag-image-transformed-parent.html [ Failure ]
-crbug.com/771643 plugins/webview-plugin-lifecycle.html [ Failure ]
-crbug.com/771643 plugins/webview-plugin-nested-iframe-scroll.html [ Failure ]
 # This will pass with --root-layer-scrolls.
 crbug.com/771643 scrollbars/custom-scrollbars-paint-outside-iframe.html [ Failure ]
-crbug.com/771643 svg/as-background-image/animated-svg-as-background.html [ Failure ]
+# A few (sub?)-pixels clipped off.
 crbug.com/771643 svg/as-background-image/svg-as-background-6.html [ Failure ]
-crbug.com/771643 svg/as-image/svg-image-with-css-animation.html [ Failure ]
+# Mask clip issue.
+crbug.com/771643 fast/reflections/reflection-masks-outset.html [ Pass Failure ]
+crbug.com/771643 fast/reflections/reflection-masks.html [ Pass Failure ]
 crbug.com/771643 svg/batik/masking/maskRegions.svg [ Failure ]
-crbug.com/771643 svg/custom/local-url-references.html [ Failure ]
 crbug.com/771643 svg/zoom/page/zoom-mask-with-percentages.svg [ Failure ]
+# Incorect LocalBorderBoxProperties for absolute-pos under transformed table section. 
 crbug.com/771643 tables/table-transform-absolute-position-child.html [ Failure ]
-crbug.com/771643 virtual/exotic-color-space/images/cross-fade-invalidation.html [ Failure ]
-crbug.com/771643 virtual/exotic-color-space/images/drag-image-transformed-parent.html [ Failure ]
-crbug.com/771643 virtual/gpu-rasterization/images/cross-fade-invalidation.html [ Failure ]
-crbug.com/771643 virtual/gpu-rasterization/images/drag-image-transformed-parent.html [ Failure ]
-crbug.com/771643 virtual/rootlayerscrolls/scrollbars/border-box-rect-clips-scrollbars.html [ Failure ]
-crbug.com/771643 virtual/rootlayerscrolls/scrollbars/custom-scrollbars-paint-outside-iframe.html [ Failure ]
+# Others.
 crbug.com/771643 virtual/threaded/printing/fixed-positioned-scrolled.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/MSANExpectations b/third_party/WebKit/LayoutTests/MSANExpectations
index fe405627..0e1745b 100644
--- a/third_party/WebKit/LayoutTests/MSANExpectations
+++ b/third_party/WebKit/LayoutTests/MSANExpectations
@@ -83,3 +83,6 @@
 # Timing out consistenly on WebKit Linux Trusty MSAN
 crbug.com/798957 [ Linux ] http/tests/devtools/audits2/audits2-limited-run.js [ Skip ]
 crbug.com/798957 [ Linux ] http/tests/devtools/audits2/audits2-successful-run.js [ Skip ]
+
+# Memory allocation hooks are disabled on ASAN/MSAN
+crbug.com/803276 inspector-protocol/memory/sampling-native-profile.js [ Skip ]
diff --git a/third_party/WebKit/LayoutTests/SlowTests b/third_party/WebKit/LayoutTests/SlowTests
index e5791c39..fdb200a 100644
--- a/third_party/WebKit/LayoutTests/SlowTests
+++ b/third_party/WebKit/LayoutTests/SlowTests
@@ -30,7 +30,6 @@
 crbug.com/24182 http/tests/accessibility/slow-document-load.html [ Slow ]
 crbug.com/24182 http/tests/cache/subresource-expiration-1.html [ Slow ]
 crbug.com/24182 http/tests/cache/subresource-expiration-2.html [ Slow ]
-crbug.com/24182 [ Release Win7 ] http/tests/media/media-source/mediasource-addsourcebuffer.html [ Slow ]
 crbug.com/24182 http/tests/misc/acid3.html [ Slow ]
 crbug.com/24182 http/tests/misc/object-embedding-svg-delayed-size-negotiation-2.htm [ Slow ]
 crbug.com/24182 http/tests/misc/uncacheable-script-repeated.html [ Slow ]
@@ -468,5 +467,7 @@
 
 crbug.com/787971 external/wpt/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker.html [ Slow ]
 
+crbug.com/564109 http/tests/webfont/font-display-intervention.html [ Slow ]
+
 # This test has many test cases and each case requires a gesture scroll with pauses in between.
 crbug.com/765326 virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html [ Slow ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations
index 9cf1dafe..5c85ab1 100644
--- a/third_party/WebKit/LayoutTests/TestExpectations
+++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -711,6 +711,8 @@
 
 crbug.com/788110 [ Linux Win10 ] inspector-protocol/layout-fonts/unicode-range-combining-chars-fallback.js [ Pass Failure ]
 
+crbug.com/803276 [ Mac Win ] inspector-protocol/memory/sampling-native-profile.js [ Skip ]
+
 # Run these tests with under virtual/scalefactor... only.
 crbug.com/567837 fast/hidpi/static [ Skip ]
 
@@ -1356,6 +1358,7 @@
 crbug.com/613672 [ Mac ] virtual/scroll_customization/fast/events/touch/multi-touch-user-gesture.html [ Skip ]
 crbug.com/613672 [ Mac ] fast/events/pointerevents/multi-pointer-event-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ]
+crbug.com/613672 [ Mac ] fast/events/pointerevents/pointerevent_touch-adjustment_click_target.html [ Skip ]
 crbug.com/613672 [ Mac ] fast/events/pointerevents/pointer-event-consumed-touchstart-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] fast/events/pointerevents/pointer-event-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] external/wpt/pointerevents/pointerlock/pointerevent_movementxy-manual.html [ Skip ]
@@ -1397,6 +1400,7 @@
 crbug.com/613672 [ Mac ] virtual/scalefactor150/fast/events/synthetic-events/tap-on-scaled-screen.html  [ Skip ]
 crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/multi-pointer-event-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointerevent_touch-action-pinch_zoom_touch.html [ Skip ]
+crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointerevent_touch-adjustment_click_target.html [ Skip ]
 crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointer-event-consumed-touchstart-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/pointerevents/pointer-event-in-slop-region.html [ Skip ]
 crbug.com/613672 [ Mac ] virtual/mouseevent_fractional/fast/events/synthetic-events/tap-on-scaled-screen.html  [ Skip ]
@@ -1454,6 +1458,10 @@
 crbug.com/467127 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-003.xhtml [ Failure ]
 crbug.com/467127 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-justify-content-horiz-005.xhtml [ Failure ]
 
+# These tests are not following the last version of the CSS Box Alignment spec (https://bugzilla.mozilla.org/show_bug.cgi?id=1432154)
+crbug.com/467127 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-001-block.xhtml [ Failure ]
+crbug.com/467127 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-001-table.xhtml [ Failure ]
+
 crbug.com/654999 [ Win Linux ] fast/forms/color/color-suggestion-picker-appearance-zoom200.html [ Pass Failure ]
 crbug.com/660185 [ Mac ] fast/forms/datalist/input-appearance-range-with-transform.html [ Pass Failure ]
 
@@ -3429,7 +3437,7 @@
 
 # Sheriff failures 2018-01-03
 crbug.com/798680 external/wpt/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-manual.html [ Pass Timeout ]
-crbug.com/799127 [ Mac Linux ] external/wpt/service-workers/service-worker/navigation-preload/resource-timing.https.html [ Failure ]
+crbug.com/804682 [ Mac ] external/wpt/service-workers/service-worker/navigation-preload/resource-timing.https.html [ Pass Failure ]
 crbug.com/799137 [ Mac ] virtual/modern-media-controls/media/controls/modern/doubletap-to-jump-backwards-at-start.html [ Pass Timeout ]
 crbug.com/799164 [ Win7 ] http/tests/devtools/startup/dom-storage-open.js [ Pass Timeout ]
 
diff --git a/third_party/WebKit/LayoutTests/accessibility/appearance-affects-role.html b/third_party/WebKit/LayoutTests/accessibility/appearance-affects-role.html
new file mode 100644
index 0000000..4bec0e3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/accessibility/appearance-affects-role.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML>
+<title>Accessibility: elements with -webkit-appearance: none retain the correct role.</title>
+<script src="../resources/testharness.js"></script>
+<script src="../resources/testharnessreport.js"></script>
+
+<!--
+This test checks that elements with -webkit-appearance: none, do not lose their
+AXRole.
+ -->
+
+<style>
+    button,
+    input,
+    meter,
+    progress,
+    textarea,
+    select {
+        -webkit-appearance: none;
+    }
+</style>
+
+<button id="button">test</button>
+<input id="ibutton" type="button" value="test">
+<input id="icolor" type="color">
+<input id="idate" type="date">
+<input id="idatetimelocal" type="datetime-local">
+<input id="ifile" type="file">
+<input id="imonth" type="month">
+<input id="inumber" type="number">
+<input id="ipassword" type="password">
+<input id="iradio" type="radio">
+<input id="irange" type="range">
+<input id="ireset" type="reset">
+<input id="isearch" type="search">
+<input id="isubmit" type="submit">
+<input id="itext" type="text">
+<input id="itime" type="time">
+<input id="iweek" type="week">
+<input id="idatalist" list="datalist">
+<datalist id="datalist">
+  <option value="foo">
+  <option value="bar">
+</datalist>
+<meter id="meter" min="0" max="100" value="50"></meter>
+<progress id="progress" value="20" max="100"></progress>
+<textarea id="textarea"></textarea>
+<select id="select">
+    <option value="0">0</option>
+</select>
+<select id="multiselect" multiple>
+    <option value="0">hello</option>
+    <option value="1">world</option>
+</select>
+
+<script>
+    function check(id, expectedRole) {
+        var axObject = accessibilityController.accessibleElementById(id);
+        assert_equals(axObject.role, expectedRole);
+    }
+
+    test(function () {
+        check("button", "AXRole: AXButton");
+    }, "Test computed AX role for <button>");
+
+    test(function () {
+        check("ibutton", "AXRole: AXButton");
+    }, "Test computed AX role for <input type=button>");
+
+    test(function () {
+        check("icolor", "AXRole: AXColorWell");
+    }, "Test computed AX role for <input type=color>");
+
+    test(function () {
+        check("idate", "AXRole: AXDateField");
+    }, "Test computed AX role for <input type=date>");
+
+    test(function () {
+        check("idatetimelocal", "AXRole: AXDateTimeField");
+    }, "Test computed AX role for <input type=datetime-local>");
+
+    test(function () {
+        check("ifile", "AXRole: AXButton");
+    }, "Test computed AX role for <input type=file>");
+
+    test(function () {
+        check("imonth", "AXRole: AXDateTimeField");
+    }, "Test computed AX role for <input type=month>");
+
+    test(function () {
+        check("inumber", "AXRole: AXSpinButton");
+    }, "Test computed AX role for <input type=number>");
+
+    test(function () {
+        check("ipassword", "AXRole: AXTextField");
+    }, "Test computed AX role for <input type=password>");
+
+    test(function () {
+        check("iradio", "AXRole: AXRadioButton");
+    }, "Test computed AX role for <input type=radio>");
+
+    test(function () {
+        check("irange", "AXRole: AXSlider");
+    }, "Test computed AX role for <input type=range>");
+
+    test(function () {
+        check("ireset", "AXRole: AXButton");
+    }, "Test computed AX role for <input type=reset>");
+
+    test(function () {
+        check("isearch", "AXRole: AXTextField");
+    }, "Test computed AX role for <input type=search>");
+
+    test(function () {
+        check("isubmit", "AXRole: AXButton");
+    }, "Test computed AX role for <input type=submit>");
+
+    test(function () {
+        check("itext", "AXRole: AXTextField");
+    }, "Test computed AX role for <input type=text>");
+
+    test(function () {
+        check("itime", "AXRole: AXInputTime");
+    }, "Test computed AX role for <input type=time>");
+
+    test(function () {
+        check("iweek", "AXRole: AXDateTimeField");
+    }, "Test computed AX role for <input type=week>");
+    
+    test(function () {
+        check("idatalist", "AXRole: AXTextFieldWithComboBox");
+    }, "Test computed AX role for <input list=datalist>");
+
+    test(function () {
+        check("meter", "AXRole: AXMeter");
+    }, "Test computed AX role for <meter>");
+
+    test(function () {
+        check("progress", "AXRole: AXProgressIndicator");
+    }, "Test computed AX role for <progress>");
+
+    test(function () {
+        check("textarea", "AXRole: AXTextField");
+    }, "Test computed AX role for <textarea>");
+
+    test(function () {
+        check("select", "AXRole: AXPopUpButton");
+    }, "Test computed AX role for <select>");
+
+    test(function () {
+        check("multiselect", "AXRole: AXListBox");
+    }, "Test computed AX role for <select multiple>");
+</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.html
deleted file mode 100644
index 82bf097..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  const DEVICE_NAME = 'a_device_name_that_is_longer_than_29_bytes_but_shorter_than_248_bytes';
-
-  return setUpPreconnectedDevice({name: DEVICE_NAME})
-    .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
-    .then(device => assert_equals(device.name, DEVICE_NAME));
-}, 'A device name between 29 and 248 bytes is valid.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html
deleted file mode 100644
index c94e519..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(t => {
-  return promise_rejects(t, new TypeError(), requestDeviceWithTrustedClick({filters: [{}]}));
-}, 'A filter must restrict the devices in some way.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html
deleted file mode 100644
index ce5e0e4a..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-    return assert_promise_rejects_with_message(
-        requestDeviceWithTrustedClick({filters: []}),
-        new TypeError('Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
-            '\'filters\' member must be non-empty to find any devices.'));
-}, 'An empty |filters| member should result in a TypeError');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html
deleted file mode 100644
index 20b8358..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-
-let test_specs = [{
-  filters: [{ namePrefix: ''}]
-}, {
-  filters: [{ namePrefix: '', name: 'Name'}]
-}, {
-  filters: [{ namePrefix: '', services: ['heart_rate']}]
-}, {
-  filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}]
-}, {
-  filters: [{ namePrefix: ''}],
-  optionalServices: ['heart_rate']
-}, {
-  filters: [{ namePrefix: '', name: 'Name'}],
-  optionalServices: ['heart_rate']
-}, {
-  filters: [{ namePrefix: '', services: ['heart_rate']}],
-  optionalServices: ['heart_rate']
-}, {
-  filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}],
-  optionalServices: ['heart_rate']
-}];
-
-bluetooth_test(t => {
-    let test_promises = Promise.resolve();
-    test_specs.forEach(args => {
-        test_promises = test_promises
-            .then(() => promise_rejects(
-                t, new TypeError(), requestDeviceWithTrustedClick(args)));
-    });
-    return test_promises;
-}, 'requestDevice with empty namePrefix. Should reject with TypeError.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html
deleted file mode 100644
index 51b1fa4..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-bluetooth_test(t => {
-  let test_promises = Promise.resolve();
-  generateRequestDeviceArgsWithServices([]).forEach(args => {
-  test_promises = test_promises.then(() => promise_rejects(
-    t, new TypeError(), requestDeviceWithTrustedClick(args)));
-  });
-  return test_promises;
-}, 'Services member must contain at least one service.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.html
deleted file mode 100644
index 1835481..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-let test_specs = [
-  {},
-  {optionalServices: ['heart_rate']},
-  {filters: [], acceptAllDevices: true},
-  {filters: [], acceptAllDevices: true, optionalServices: ['heart_rate']}
-];
-
-bluetooth_test(t => {
-  let test_promises = Promise.resolve();
-  test_specs.forEach(args => {
-    test_promises = test_promises
-      .then(() => assert_promise_rejects_with_message(
-        requestDeviceWithTrustedClick(args),
-        new TypeError(
-          'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
-          'Either \'filters\' should be present or ' +
-          '\'acceptAllDevices\' should be true, but not both.')));
-  });
-  return test_promises;
-}, 'RequestDeviceOptions should have exactly one of \'filters\' or ' +
-   '\'acceptAllDevices:true\'. Reject with TypeError if not.')
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.html
deleted file mode 100644
index e540eaa..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  // \u2764's UTF-8 respresentation is 3 bytes long.
-  // 83 chars * 3 bytes/char = 249 bytes
-  const unicode_name = '\u2764'.repeat(83);
-  return assert_promise_rejects_with_message(
-    requestDeviceWithTrustedClick({filters: [{name: unicode_name}]}),
-      new DOMException(
-        'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
-        'A device name can\'t be longer than 248 bytes.',
-      'TypeError'));
-}, 'Unicode string with utf8 representation longer than 248 bytes in ' +
-   '\'name\' must throw TypeError.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.html
deleted file mode 100644
index 433920c..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  const name_too_long = 'a'.repeat(249);
-  return assert_promise_rejects_with_message(
-    requestDeviceWithTrustedClick({filters: [{name: name_too_long}]}),
-      new DOMException(
-        'Failed to execute \'requestDevice\' on \'Bluetooth\': A device ' +
-        'name can\'t be longer than 248 bytes.',
-      'TypeError'),
-    'Device name longer than 248');
-}, 'A device name longer than 248 must reject.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.html
deleted file mode 100644
index 3557e918..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  // \u2764's UTF-8 respresentation is 3 bytes long.
-  // 83 chars * 3 bytes/char = 249 bytes
-  const unicode_name = '\u2764'.repeat(83);
-  return assert_promise_rejects_with_message(
-    requestDeviceWithTrustedClick({filters: [{namePrefix: unicode_name}]}),
-      new DOMException(
-        'Failed to execute \'requestDevice\' on \'Bluetooth\': ' +
-        'A device name can\'t be longer than 248 bytes.',
-      'TypeError'));
-}, 'Unicode string with utf8 representation longer than 248 bytes in ' +
-   '\'namePrefix\' must throw NotFoundError.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.html
deleted file mode 100644
index 9fbcef2..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  const name_too_long = 'a'.repeat(249);
-  return assert_promise_rejects_with_message(
-    requestDeviceWithTrustedClick({filters: [{namePrefix: name_too_long}]}),
-      new DOMException(
-        'Failed to execute \'requestDevice\' on \'Bluetooth\': A device ' +
-        'name can\'t be longer than 248 bytes.',
-      'TypeError'),
-    'Device name longer than 248');
-}, 'A device name prefix longer than 248 must reject.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.html
deleted file mode 100644
index cdb97fcb..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  // \u00A1's UTF-8 respresentation is 2 bytes long.
-  // 124 chars * 2 bytes/char = 248 bytes
-  const DEVICE_NAME = '\u00A1'.repeat(124);
-
-  return setUpPreconnectedDevice({name: DEVICE_NAME})
-    .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
-    .then(device => assert_equals(device.name, DEVICE_NAME));
-}, 'A unicode device name of 248 bytes is valid.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.html
deleted file mode 100644
index 7cc21a7..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  const DEVICE_NAME = 'a'.repeat(248);
-
-  return setUpPreconnectedDevice({name: DEVICE_NAME})
-    .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
-    .then(device => assert_equals(device.name, DEVICE_NAME));
-}, 'A device name of 248 bytes is valid.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.html
deleted file mode 100644
index 98e5f89..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  // \u00A1's UTF-8 respresentation is 2 bytes long.
-  // 124 chars * 2 bytes/char = 248 bytes
-  const DEVICE_NAME = '\u00A1'.repeat(124);
-
-  return setUpPreconnectedDevice({name: DEVICE_NAME})
-    .then(() => requestDeviceWithTrustedClick(
-        { filters: [{namePrefix: DEVICE_NAME}]}))
-    .then(device => assert_equals(device.name, DEVICE_NAME));
-}, 'A unicode device namePrefix of 248 bytes is valid.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.html
deleted file mode 100644
index 7314e2c3..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-bluetooth_test(() => {
-  const DEVICE_NAME = 'a'.repeat(248);
-
-  return setUpPreconnectedDevice({name: DEVICE_NAME})
-    .then(() => requestDeviceWithTrustedClick(
-        { filters: [{namePrefix: DEVICE_NAME}]}))
-    .then(device => assert_equals(device.name, DEVICE_NAME));
-}, 'A device namePrefix of 248 bytes is valid.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html
deleted file mode 100644
index 67e9054..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE html>
-<script src="../../../resources/testharness.js"></script>
-<script src="../../../resources/testharness-helpers.js"></script>
-<script src="../../../resources/testharnessreport.js"></script>
-<script src="../../../resources/testdriver.js"></script>
-<script src="../../../resources/testdriver-vendor.js"></script>
-<script src="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-promise_test(t => {
-  return promise_rejects(t, new TypeError(), requestDeviceWithTrustedClick());
-}, 'requestDevice() requires an argument.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html
deleted file mode 100644
index c88d0fdd..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-bluetooth_test(() => {
-  // \u2764's UTF-8 representation is 3 bytes long.
-  // 9 chars * 3 bytes/char = 27 bytes
-  let valid_unicode_name = '\u2764'.repeat(9);
-  return setUpPreconnectedDevice({name: valid_unicode_name})
-    .then(() => requestDeviceWithTrustedClick({
-      filters: [{name: valid_unicode_name}]}))
-    .then(device => {
-      assert_equals(device.name, valid_unicode_name);
-    });
-}, 'A name containing unicode characters whose utf8 length is less than 30 ' +
-   'must not throw an error.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html
deleted file mode 100644
index d9f361f..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-bluetooth_test(() => {
-  // \u2764's UTF-8 representation is 3 bytes long.
-  // 9 chars * 3 bytes/char = 27 bytes
-  let valid_unicode_name = '\u2764'.repeat(9);
-  return setUpPreconnectedDevice({name: valid_unicode_name})
-    .then(() => requestDeviceWithTrustedClick({
-      filters: [{namePrefix: valid_unicode_name}]}))
-    .then(device => {
-      assert_equals(device.name, valid_unicode_name);
-    });
-}, 'A namePrefix containing unicode characters whose utf8 length is less than 30 ' +
-   'must not throw an error.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html
deleted file mode 100644
index 861f3efa..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-'use strict';
-
-let test_specs = [{
-  optionalServices: ['wrong_service'],
-  filters: [{services: ['heart_rate']}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ services: ['heart_rate'], name: 'Name'}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ services: ['heart_rate'], namePrefix: 'Pre'}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ services: ['heart_rate'], name: 'Name', namePrefix: 'Pre'}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ name: 'Name'}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ name: 'Name', namePrefix: 'Pre'}]
-}, {
-  optionalServices: ['wrong_service'],
-  filters: [{ namePrefix: 'Pre'}]
-}];
-
-bluetooth_test(t => {
-  let test_promises = Promise.resolve();
-  test_specs.forEach(args => {
-    test_promises = test_promises.then(() => promise_rejects(
-      t, TypeError(), requestDeviceWithTrustedClick(args)));
-  });
-  return test_promises;
-}, 'Invalid optional service must reject the promise.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html
deleted file mode 100644
index cd4c6dd..0000000
--- a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!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="../../../external/wpt/bluetooth/resources/bluetooth-helpers.js"></script>
-<script>
-bluetooth_test(t => {
-  let test_promises = Promise.resolve();
-  generateRequestDeviceArgsWithServices(['wrong_service']).forEach(args => {
-    test_promises = test_promises.then(() => promise_rejects(
-      t, TypeError(), requestDeviceWithTrustedClick(args)));
-  });
-  return test_promises;
-}, 'Invalid service must reject the promise.');
-</script>
diff --git a/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped-expected.html b/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped-expected.html
new file mode 100644
index 0000000..6e608df
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped-expected.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<div id="bug" style="width:300px; height:200px; overflow:scroll;">
+    <div style="width:100px; height:1010px; background:green;"></div>
+</div>
+<script>
+    document.getElementById("bug").scrollTop = 300;
+</script>
diff --git a/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped.html b/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped.html
new file mode 100644
index 0000000..0a26cc9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/compositing/overflow/scrolling-content-layer-should-not-be-clipped.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<div id="bug" style="width:300px; height:200px; position:relative; z-index:0; overflow:scroll;">
+    <div style="mix-blend-mode:multiply; width:10px; height:10px;"></div>
+    <div style="width:100px; height:1000px; background:green;"></div>
+</div>
+<script src="../../resources/run-after-layout-and-paint.js"></script>
+<script>
+runAfterLayoutAndPaint(function() {
+    document.getElementById("bug").scrollTop = 300;
+}, true);
+</script>
diff --git a/third_party/WebKit/LayoutTests/crypto/subtle/resources/common.js b/third_party/WebKit/LayoutTests/crypto/subtle/resources/common.js
index 39640d7..afdfa9b 100644
--- a/third_party/WebKit/LayoutTests/crypto/subtle/resources/common.js
+++ b/third_party/WebKit/LayoutTests/crypto/subtle/resources/common.js
@@ -25,6 +25,10 @@
 {
     if (!bytes)
         return null;
+    // "bytes" could be a typed array with a detached buffer, in which case the
+    // constructor below would throw.
+    if (bytes.length === 0)
+        return "";
 
     bytes = new Uint8Array(bytes);
     var hexBytes = [];
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
index 7c5e182..1e543481 100644
--- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
+++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -78221,6 +78221,18 @@
      {}
     ]
    ],
+   "css/selectors/selector-structural-pseudo-root.html": [
+    [
+     "/css/selectors/selector-structural-pseudo-root.html",
+     [
+      [
+       "/css/selectors/selector-structural-pseudo-root-ref.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/selectors/selectors-attr-white-space-001.html": [
     [
      "/css/selectors/selectors-attr-white-space-001.html",
@@ -123706,6 +123718,11 @@
      {}
     ]
    ],
+   "css/selectors/selector-structural-pseudo-root-ref.html": [
+    [
+     {}
+    ]
+   ],
    "css/selectors/selectors-attr-white-space-001-ref.html": [
     [
      {}
@@ -125001,6 +125018,11 @@
      {}
     ]
    ],
+   "device-memory/OWNERS": [
+    [
+     {}
+    ]
+   ],
    "dom/OWNERS": [
     [
      {}
@@ -174663,6 +174685,16 @@
      {}
     ]
    ],
+   "device-memory/device-memory.https.any.js": [
+    [
+     "/device-memory/device-memory.https.any.html",
+     {}
+    ],
+    [
+     "/device-memory/device-memory.https.any.worker.html",
+     {}
+    ]
+   ],
    "dom/abort/event.any.js": [
     [
      "/dom/abort/event.any.html",
@@ -194677,16 +194709,6 @@
      {}
     ]
    ],
-   "navigator/device-memory.https.any.js": [
-    [
-     "/navigator/device-memory.https.any.html",
-     {}
-    ],
-    [
-     "/navigator/device-memory.https.any.worker.html",
-     {}
-    ]
-   ],
    "netinfo/netinfo-basics.html": [
     [
      "/netinfo/netinfo-basics.html",
@@ -298226,6 +298248,14 @@
    "601b8b8426c64717f82831e6258f8fe4188c797c",
    "reftest"
   ],
+  "css/selectors/selector-structural-pseudo-root-ref.html": [
+   "891156fb1d86a3fb5a90ef08e276d82b9bbe15b6",
+   "support"
+  ],
+  "css/selectors/selector-structural-pseudo-root.html": [
+   "698c4606188ada93f0262d0dbcaea21dc92fdaa3",
+   "reftest"
+  ],
   "css/selectors/selectors-attr-white-space-001-ref.html": [
    "0b790e2cb7a6ca66c7e6c8f769b61e3197f372fb",
    "support"
@@ -300962,6 +300992,14 @@
    "2ec52a6baa7490478ec61e72bf89b2ec09d453b5",
    "testharness"
   ],
+  "device-memory/OWNERS": [
+   "3eac63cc466a3693c3100add21ad25b0020c8f33",
+   "support"
+  ],
+  "device-memory/device-memory.https.any.js": [
+   "4e746987c6580c6ff388f1512a02cc6fe33393ea",
+   "testharness"
+  ],
   "dom/OWNERS": [
    "507f3da20e8424e7979e9fe53acc9c611fb87048",
    "support"
@@ -307087,7 +307125,7 @@
    "support"
   ],
   "generic-sensor/generic-sensor-tests.js": [
-   "22c64a2145caa9eeaf4e53243dc971d832a478e0",
+   "f83c6da49787e87d6fefbe6d5d9c87fad6c34d37",
    "support"
   ],
   "generic-sensor/idlharness.https.html": [
@@ -311883,7 +311921,7 @@
    "support"
   ],
   "html/dom/interfaces-expected.txt": [
-   "42996774350a0926ffa769c7e7fa761944f353f7",
+   "ef910b9201c1cedb8dd0f2ff730b22aef0823086",
    "support"
   ],
   "html/dom/interfaces.html": [
@@ -329874,10 +329912,6 @@
    "b9d933d6a33eabc0b9c9f856c91b802677fa1094",
    "testharness"
   ],
-  "navigator/device-memory.https.any.js": [
-   "4e746987c6580c6ff388f1512a02cc6fe33393ea",
-   "testharness"
-  ],
   "netinfo/OWNERS": [
    "b5fb0ed0774c98fb1ba91f235229564620eb7f4f",
    "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html
new file mode 100644
index 0000000..ba8a090
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html
@@ -0,0 +1,19 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A device name between 29 and 248 bytes is valid.';
+const DEVICE_NAME = 'a_device_name_that_is_longer_than_29_bytes_but_' +
+    'shorter_than_248_bytes';
+
+bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
+    .then(() => requestDeviceWithTrustedClick({
+      filters: [{name: DEVICE_NAME}]
+    }))
+    .then(device => assert_equals(device.name, DEVICE_NAME)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html
new file mode 100644
index 0000000..eed7b87
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html
@@ -0,0 +1,16 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A filter must restrict the devices in some way.';
+const expected = new TypeError();
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: [{}]}),
+    expected),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html
new file mode 100644
index 0000000..fbbd6dac
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html
@@ -0,0 +1,18 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'An empty |filters| member should result in a TypeError';
+const expected = new DOMException('Failed to execute \'requestDevice\' on ' +
+    '\'Bluetooth\': \'filters\' member must be non-empty to find any devices.',
+    new TypeError());
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: []}),
+    expected),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html
new file mode 100644
index 0000000..aa6c8308
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html
@@ -0,0 +1,44 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'requestDevice with empty namePrefix. ' +
+    'Should reject with TypeError.';
+const expected = new TypeError();
+const test_specs = [{
+  filters: [{ namePrefix: ''}]
+}, {
+  filters: [{ namePrefix: '', name: 'Name'}]
+}, {
+  filters: [{ namePrefix: '', services: ['heart_rate']}]
+}, {
+  filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}]
+}, {
+  filters: [{ namePrefix: ''}],
+  optionalServices: ['heart_rate']
+}, {
+  filters: [{ namePrefix: '', name: 'Name'}],
+  optionalServices: ['heart_rate']
+}, {
+  filters: [{ namePrefix: '', services: ['heart_rate']}],
+  optionalServices: ['heart_rate']
+}, {
+  filters: [{ namePrefix: '', name: 'Name', services: ['heart_rate']}],
+  optionalServices: ['heart_rate']
+}];
+
+bluetooth_test(() => {
+    let test_promises = Promise.resolve();
+    test_specs.forEach(args => {
+      test_promises = test_promises
+          .then(() => assert_promise_rejects_with_message(
+              requestDeviceWithTrustedClick(args),
+              expected));
+    });
+    return test_promises;
+  }, test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html
new file mode 100644
index 0000000..6cb923a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html
@@ -0,0 +1,23 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Services member must contain at least one service.';
+const expected = new TypeError();
+
+bluetooth_test(() => {
+    let test_promises = Promise.resolve();
+    generateRequestDeviceArgsWithServices([]).forEach(args => {
+      test_promises = test_promises.then(() =>
+          assert_promise_rejects_with_message(
+              requestDeviceWithTrustedClick(args),
+              expected,
+              'Services member must contain at least one service'))
+    });
+    return test_promises;
+  }, test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html
new file mode 100644
index 0000000..ab207329
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html
@@ -0,0 +1,33 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = "RequestDeviceOptions should have exactly one of " +
+    "'filters' or 'acceptAllDevices:true'. Reject with TypeError if not.";
+const expected = new DOMException(
+    "Failed to execute 'requestDevice' on 'Bluetooth': " +
+    "Either 'filters' should be present or " +
+    "'acceptAllDevices' should be true, but not both.",
+    new TypeError());
+const test_specs = [
+  {},
+  {optionalServices: ['heart_rate']},
+  {filters: [], acceptAllDevices: true},
+  {filters: [], acceptAllDevices: true, optionalServices: ['heart_rate']}
+];
+
+bluetooth_test(() => {
+    let test_promises = Promise.resolve();
+    test_specs.forEach(args => {
+        test_promises = test_promises
+            .then(() => assert_promise_rejects_with_message(
+                requestDeviceWithTrustedClick(args),
+                expected))
+    });
+    return test_promises;
+  }, test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html
new file mode 100644
index 0000000..2f2df741
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html
@@ -0,0 +1,23 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Unicode string with utf8 representation longer than 248 ' +
+    'bytes in \'name\' must throw TypeError.';
+const expected = new DOMException(
+    "Failed to execute 'requestDevice' on 'Bluetooth': " +
+    "A device name can't be longer than 248 bytes.",
+    new TypeError());
+// \u2764's UTF-8 respresentation is 3 bytes long.
+// 83 chars * 3 bytes/char = 249 bytes
+const unicode_name = '\u2764'.repeat(83);
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: [{name: unicode_name}]}),
+    expected),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html
new file mode 100644
index 0000000..dcb6c40d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html
@@ -0,0 +1,21 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A device name longer than 248 must reject.';
+const expected = new DOMException(
+    "Failed to execute 'requestDevice' on 'Bluetooth': A device " +
+    "name can't be longer than 248 bytes.",
+    new TypeError());
+const name_too_long = 'a'.repeat(249);
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: [{name: name_too_long}]}),
+    expected,
+    'Device name longer than 248'),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html
new file mode 100644
index 0000000..fe1f919
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html
@@ -0,0 +1,23 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Unicode string with utf8 representation longer than 248 ' +
+    'bytes in \'namePrefix\' must throw NotFoundError.';
+const expected = new DOMException(
+    "Failed to execute 'requestDevice' on 'Bluetooth': " +
+    "A device name can't be longer than 248 bytes.",
+    new TypeError());
+// \u2764's UTF-8 respresentation is 3 bytes long.
+// 83 chars * 3 bytes/char = 249 bytes
+const unicode_name = '\u2764'.repeat(83);
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: [{namePrefix: unicode_name}]}),
+    expected),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html
new file mode 100644
index 0000000..ab3a6ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html
@@ -0,0 +1,21 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A device name prefix longer than 248 must reject.';
+const expected = new DOMException(
+    "Failed to execute 'requestDevice' on 'Bluetooth': A device " +
+    "name can't be longer than 248 bytes.",
+    new TypeError());
+const name_too_long = 'a'.repeat(249);
+
+bluetooth_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick({filters: [{namePrefix: name_too_long}]}),
+    expected,
+    'Device name longer than 248'),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html
new file mode 100644
index 0000000..40df9d0d
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html
@@ -0,0 +1,18 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A unicode device name of 248 bytes is valid.';
+// \u00A1's UTF-8 respresentation is 2 bytes long.
+// 124 chars * 2 bytes/char = 248 bytes
+const DEVICE_NAME = '\u00A1'.repeat(124);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
+    .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
+    .then(device => assert_equals(device.name, DEVICE_NAME)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html
new file mode 100644
index 0000000..d1759d6
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html
@@ -0,0 +1,16 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A device name of 248 bytes is valid.';
+const DEVICE_NAME = 'a'.repeat(248);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
+    .then(() => requestDeviceWithTrustedClick({ filters: [{name: DEVICE_NAME}]}))
+    .then(device => assert_equals(device.name, DEVICE_NAME)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html
new file mode 100644
index 0000000..8e86844
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A unicode device namePrefix of 248 bytes is valid.';
+// \u00A1's UTF-8 respresentation is 2 bytes long.
+// 124 chars * 2 bytes/char = 248 bytes
+const DEVICE_NAME = '\u00A1'.repeat(124);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
+    .then(() => requestDeviceWithTrustedClick({
+      filters: [{namePrefix: DEVICE_NAME}]
+    }))
+    .then(device => assert_equals(device.name, DEVICE_NAME)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html
new file mode 100644
index 0000000..01ed22e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html
@@ -0,0 +1,18 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A device namePrefix of 248 bytes is valid.';
+const DEVICE_NAME = 'a'.repeat(248);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: DEVICE_NAME})
+    .then(() => requestDeviceWithTrustedClick({
+      filters: [{namePrefix: DEVICE_NAME}]
+    }))
+    .then(device => assert_equals(device.name, DEVICE_NAME)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html
new file mode 100644
index 0000000..e6337a5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharness-helpers.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'requestDevice() requires an argument.';
+const expected = new TypeError();
+
+promise_test(() => assert_promise_rejects_with_message(
+    requestDeviceWithTrustedClick(),
+    expected),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html
new file mode 100644
index 0000000..08038b9
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html
@@ -0,0 +1,21 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'A name containing unicode characters whose utf8 length ' +
+    'is less than 30 must not throw an error.';
+// \u2764's UTF-8 representation is 3 bytes long.
+// 9 chars * 3 bytes/char = 27 bytes
+const valid_unicode_name = '\u2764'.repeat(9);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: valid_unicode_name})
+    .then(() => requestDeviceWithTrustedClick({
+      filters: [{name: valid_unicode_name}]
+    }))
+    .then(device => assert_equals(device.name, valid_unicode_name)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html
new file mode 100644
index 0000000..fc444823
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html
@@ -0,0 +1,21 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc =  'A namePrefix containing unicode characters whose utf8 ' +
+    'length is less than 30 must not throw an error.';
+// \u2764's UTF-8 representation is 3 bytes long.
+// 9 chars * 3 bytes/char = 27 bytes
+const valid_unicode_name = '\u2764'.repeat(9);
+
+bluetooth_test(() => setUpPreconnectedDevice({name: valid_unicode_name})
+    .then(() => requestDeviceWithTrustedClick({
+      filters: [{namePrefix: valid_unicode_name}]
+    }))
+    .then(device => assert_equals(device.name, valid_unicode_name)),
+    test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html
new file mode 100644
index 0000000..15cf902
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html
@@ -0,0 +1,44 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Invalid optional service must reject the promise.';
+const expected = new TypeError();
+const test_specs = [{
+  optionalServices: ['wrong_service'],
+  filters: [{services: ['heart_rate']}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ services: ['heart_rate'], name: 'Name'}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ services: ['heart_rate'], namePrefix: 'Pre'}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ services: ['heart_rate'], name: 'Name', namePrefix: 'Pre'}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ name: 'Name'}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ name: 'Name', namePrefix: 'Pre'}]
+}, {
+  optionalServices: ['wrong_service'],
+  filters: [{ namePrefix: 'Pre'}]
+}];
+
+bluetooth_test(() => {
+    let test_promises = Promise.resolve();
+    test_specs.forEach(args => {
+        test_promises =
+            test_promises.then(() => assert_promise_rejects_with_message(
+                requestDeviceWithTrustedClick(args),
+                expected));
+    });
+    return test_promises;
+  }, test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html
new file mode 100644
index 0000000..5d9b245
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html
@@ -0,0 +1,22 @@
+<!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="/bluetooth/resources/bluetooth-helpers.js"></script>
+<script>
+'use strict';
+const test_desc = 'Invalid service must reject the promise.';
+const expected = new TypeError();
+
+bluetooth_test(() => {
+    let test_promises = Promise.resolve();
+    generateRequestDeviceArgsWithServices(['wrong_service']).forEach(args => {
+        test_promises = test_promises.then(() =>
+            assert_promise_rejects_with_message(
+              requestDeviceWithTrustedClick(args),
+              expected));
+    });
+    return test_promises;
+  }, test_desc);
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/resources/bluetooth-helpers.js b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/resources/bluetooth-helpers.js
index 0f378b2..5635704 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/bluetooth/resources/bluetooth-helpers.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/bluetooth/resources/bluetooth-helpers.js
@@ -218,22 +218,36 @@
       'NotSupportedError')
 }];
 
-function callWithTrustedClick(callback) {
+// Waits until the document has finished loading.
+function waitForDocumentReady() {
   return new Promise(resolve => {
-    let button = document.createElement('button');
-    button.textContent = 'click to continue test';
-    button.style.display = 'block';
-    button.style.fontSize = '20px';
-    button.style.padding = '10px';
-    button.onclick = () => {
-      document.body.removeChild(button);
-      resolve(callback());
-    };
-    document.body.appendChild(button);
-    test_driver.click(button);
+    if (document.readyState === 'complete') {
+      resolve();
+    }
+
+    window.addEventListener('load', () => {
+      resolve();
+    }, {once: true});
   });
 }
 
+function callWithTrustedClick(callback) {
+  return waitForDocumentReady()
+    .then(() => new Promise(resolve => {
+      let button = document.createElement('button');
+      button.textContent = 'click to continue test';
+      button.style.display = 'block';
+      button.style.fontSize = '20px';
+      button.style.padding = '10px';
+      button.onclick = () => {
+        document.body.removeChild(button);
+        resolve(callback());
+      };
+      document.body.appendChild(button);
+      test_driver.click(button);
+    }));
+}
+
 // Calls requestDevice() in a context that's 'allowed to show a popup'.
 function requestDeviceWithTrustedClick() {
   let args = arguments;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-002.html
index 9f4272e..5d20062 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "alignContent", "align-content", "safe left", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "safe start", "normal");
 }, "Test grid items align-content: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "alignContent", "align-content", "unsafe right", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "unsafe end", "normal");
 }, "Test flex items align-content: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignContent", "align-content", "left", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "start", "normal");
 }, "Test absolute positioned elements align-content: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignContent", "align-content", "right", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "end", "normal");
 }, "Test absolute positioned grid items align-content: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-004.html
index f2fc8bd..6a6f5b9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-004.html
@@ -13,7 +13,7 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let values = ["auto", "legacy", "self-start"].concat(invalidPositionValues, invalidDistributionValues);
+    let values = ["auto", "legacy", "self-start", "left", "safe right"].concat(invalidPositionValues, invalidDistributionValues);
 
     values.forEach(function(value) {
         test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-005.html
index e251911..fd4fa3c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-align-content-005.html
@@ -14,8 +14,8 @@
     checkInheritValues("alignContent", "align-content", "end");
 }, "Test the value 'inherit' overrides current value ('end')");
 test(function() {
-    checkInheritValues("alignContent", "align-content", "safe left");
-}, "Test the value 'inherit' overrides current value ('safe left')");
+    checkInheritValues("alignContent", "align-content", "safe start");
+}, "Test the value 'inherit' overrides current value ('safe start')");
 test(function() {
     checkInheritValues("alignContent", "align-content", "unsafe center");
 }, "Test the value 'inherit' overrides current value ('unsafe center')");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-001.html
index 287f2f6..f88c084 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-001.html
@@ -15,8 +15,8 @@
 <script src="/css/css-align/resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses,
-                                baselineClasses, overflowClasses);
+    let classes = Object.assign({"Normal":"normal", "Left":"left", "Right":"right"}, contentPositionClasses,
+                                distributionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
         let specifiedValue = classes[key];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-002.html
index a551aea..3f48a2a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "justifyContent", "justify-content", "safe left", "normal");
+    checkInitialValues(element, "justifyContent", "justify-content", "safe start", "normal");
 }, "Test grid items justify-content: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "justifyContent", "justify-content", "unsafe right", "normal");
+    checkInitialValues(element, "justifyContent", "justify-content", "unsafe end", "normal");
 }, "Test flex items justify-content: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifyContent", "justify-content", "left", "normal");
+    checkInitialValues(element, "justifyContent", "justify-content", "start", "normal");
 }, "Test absolute positioned elements justify-content: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifyContent", "justify-content", "right", "normal");
+    checkInitialValues(element, "justifyContent", "justify-content", "end", "normal");
 }, "Test absolute positioned grid items justify-content: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-003.html
index f1445c84..03aa693 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/parse-justify-content-003.html
@@ -17,8 +17,8 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses,
-                                baselineClasses, overflowClasses);
+    let classes = Object.assign({"Normal":"normal", "Left":"left", "Right":"right"}, contentPositionClasses,
+                                distributionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
         let specifiedValue = classes[key];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-001.html
index 6e62621d..6254e08 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-001.html
@@ -8,10 +8,11 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["normal"].concat(contentPositionValues, distributionValues, baselineValues);
-    values.forEach(function(value) {
+    let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, baselineClasses);
+    for (var key in classes) {
+        let value = classes[key];
         test(function() {
             checkPlaceShorhandLonghands("place-content", "align-content", "justify-content", value);
         }, "Checking place-content: " + value);
-    });
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-002.html
index 90fbb60d..9892870 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-002.html
@@ -8,12 +8,15 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["normal"].concat(contentPositionValues, distributionValues, baselineValues);
-    values.forEach(function(alignValue) {
-        values.forEach(function(justifyValue) {
-           test(function() {
-               checkPlaceShorhandLonghands("place-content", "align-content", "justify-content", alignValue, justifyValue);
-           }, "Checking place-content: " + alignValue + " " + justifyValue);
-        });
-    });
+    let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+            let justifyValue = classes2[key2];
+            test(function() {
+                checkPlaceShorhandLonghands("place-content", "align-content", "justify-content", alignValue, justifyValue);
+            }, "Checking place-content: " + alignValue + " " + justifyValue);
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-004.html
index 8a1db87..8391a95 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-004.html
@@ -14,8 +14,8 @@
     }
 
     test(function() {
-        checkInvalidValues("center safe")
-        checkInvalidValues("true center")
+        checkInvalidValues("safe center")
+        checkInvalidValues("unsafe center")
     }, "Verify overflow keywords are invalid");
 
     test(function() {
@@ -23,15 +23,21 @@
     }, "Verify fallback values are invalid");
 
     test(function() {
-        checkInvalidValues("10px left")
-        checkInvalidValues("right 10%")
+        checkInvalidValues("left")
+        checkInvalidValues("left start")
+        checkInvalidValues("right center")
+    }, "Verify 'left' and 'right' values are invalid for block/cross axis alignment");
+
+    test(function() {
+        checkInvalidValues("10px end")
+        checkInvalidValues("start 10%")
     }, "Verify numeric values are invalid");
 
     test(function() {
         checkInvalidValues("auto")
         checkInvalidValues("auto right")
         checkInvalidValues("auto auto")
-        checkInvalidValues("left auto")
+        checkInvalidValues("start auto")
     }, "Verify 'auto' values are invalid");
 
     test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-006.html
index aa99621..f9aa17c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/content-distribution/place-content-shorthand-006.html
@@ -9,13 +9,16 @@
 <div id="log"></div>
 <div id="test"></div>
 <script>
-    var values = ["normal"].concat(contentPositionValues, distributionValues, baselineValues);
-    values.forEach(function(alignValue) {
-        [""].concat(values).forEach(function(justifyValue) {
+    let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+            let justifyValue = classes2[key2];
             var value = (alignValue + " " + justifyValue).trim();
             test(function() {
                 checkPlaceShorhand("place-content", alignValue, justifyValue)
             }, "Checking place-content: " + value);
-        });
-    });
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-002.html
index dad2542..79b1d60 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "alignItems", "align-items", "safe left", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "safe start", "normal");
 }, "Test grid items align-items: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "alignItems", "align-items", "unsafe right", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "unsafe end", "normal");
 }, "Test flex items align-items: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignItems", "align-items", "left", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "start", "normal");
 }, "Test absolute positioned elements align-items: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignItems", "align-items", "right", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "end", "normal");
 }, "Test absolute positioned grid items align-items: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-004.html
index 98e03d1..2cd306a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-004.html
@@ -13,7 +13,7 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let values = ["auto", "legacy", "space-around"].concat(invalidPositionValues);
+    let values = ["auto", "legacy", "space-around", "left", "safe right"].concat(invalidPositionValues);
 
     values.forEach(function(value) {
         test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-005.html
index ef8c1bd5..6dc0ad6 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-align-items-005.html
@@ -14,8 +14,8 @@
     checkInheritValues("alignItems", "align-items", "end");
 }, "Test the value 'inherit' overrides current value ('end')");
 test(function() {
-    checkInheritValues("alignItems", "align-items", "safe left");
-}, "Test the value 'inherit' overrides current value ('safe left')");
+    checkInheritValues("alignItems", "align-items", "safe start");
+}, "Test the value 'inherit' overrides current value ('safe start')");
 test(function() {
     checkInheritValues("alignItems", "align-items", "unsafe center");
 }, "Test the value 'inherit' overrides current value ('unsafe center')");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-001.html
index 78a0b394..e2ad078c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-001.html
@@ -14,7 +14,7 @@
 <script src="/css/css-align/resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"},
+    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch", "Left":"left", "Right":"right"},
                                 selfPositionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-002.html
index 53263b9..6ba2c7c2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "justifyItems", "justify-items", "safe left", "legacy");
+    checkInitialValues(element, "justifyItems", "justify-items", "safe start", "legacy");
 }, "Test grid items justify-items: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "justifyItems", "justify-items", "unsafe right", "legacy");
+    checkInitialValues(element, "justifyItems", "justify-items", "unsafe end", "legacy");
 }, "Test flex items justify-items: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifyItems", "justify-items", "left", "legacy");
+    checkInitialValues(element, "justifyItems", "justify-items", "start", "legacy");
 }, "Test absolute positioned elements justify-items: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifyItems", "justify-items", "right", "legacy");
+    checkInitialValues(element, "justifyItems", "justify-items", "end", "legacy");
 }, "Test absolute positioned grid items justify-items: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-003.html
index 3b9ef008..fb8a067 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-003.html
@@ -16,8 +16,8 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
-                                baselineClasses, overflowClasses, legacyValues);
+    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch", "Left":"left", "Right":"right"},
+                                selfPositionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
         let specifiedValue = classes[key];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-004.html
index 0574f8e..70e80b2a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/parse-justify-items-004.html
@@ -13,7 +13,7 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let values = ["auto", "space-around"].concat(invalidPositionValues, invalidLEgacyValues);
+    let values = ["auto", "space-around"].concat(invalidPositionValues, invalidLegacyValues);
 
     values.forEach(function(value) {
         test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-001.html
index 8e1ac7a2..928149a0 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-001.html
@@ -8,10 +8,11 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(value) {
+    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses);
+    for (var key in classes) {
+        let value = classes[key];
         test(function() {
             checkPlaceShorhandLonghands("place-items", "align-items", "justify-items", value);
         }, "Checking place-items: " + value);
-    });
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-002.html
index 1608b70..822c8cf 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-002.html
@@ -8,12 +8,15 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(alignValue) {
-       ["auto"].concat(values).forEach(function(justifyValue) {
+    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+           let justifyValue = classes2[key2];
            test(function() {
                checkPlaceShorhandLonghands("place-items", "align-items", "justify-items", alignValue, justifyValue);
            }, "Checking place-items: " + alignValue + " " + justifyValue);
-        });
-    });
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-004.html
index 07f23ec..57b6ac5 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-004.html
@@ -14,8 +14,8 @@
     }
 
     test(function() {
-        checkInvalidValues("center safe")
-        checkInvalidValues("true center")
+        checkInvalidValues("safe center")
+        checkInvalidValues("unsafe center")
     }, "Verify overflow keywords are invalid");
 
     test(function() {
@@ -23,6 +23,12 @@
     }, "Verify fallback values are invalid");
 
     test(function() {
+        checkInvalidValues("left")
+        checkInvalidValues("left start")
+        checkInvalidValues("right center")
+    }, "Verify 'left' and 'right' values are invalid for block/cross axis alignment");
+
+    test(function() {
         checkInvalidValues("10px left")
         checkInvalidValues("right 10%")
     }, "Verify numeric values are invalid");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-006.html
index 4af3ad5..fcaa89f2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/default-alignment/place-items-shorthand-006.html
@@ -8,13 +8,16 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(alignValue) {
-        [""].concat(values).forEach(function(justifyValue) {
+    let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+            let justifyValue = classes2[key2];
             var value = (alignValue + " " + justifyValue).trim();
             test(function() {
                 checkPlaceShorhand("place-items", alignValue, justifyValue)
             }, "Checking place-items: " + value);
-        });
-    });
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/resources/alignment-parsing-utils.js b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/resources/alignment-parsing-utils.js
index b18c929..7effae9 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/resources/alignment-parsing-utils.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/resources/alignment-parsing-utils.js
@@ -1,12 +1,5 @@
-var selfPositionValues = [ "start", "end", "self-start", "self-end", "left", "right", "center", "flex-start", "flex-end"];
-var contentPositionValues = [ "start", "end", "left", "right", "center", "flex-start", "flex-end"];
-var distributionValues = [ "stretch", "space-around", "space-between", "space-evenly"];
-var baselineValues = [ "baseline", "first baseline", "last baseline"];
-var overflowValues = [ "safe flex-end", "unsafe start", "safe end", "unsafe self-start", "safe center"];
-var legacyValues = [ "legacy left", "legacy center", "legacy right", "left legacy", "center legacy", "right legacy", "legacy"];
-
-var selfPositionClasses = {"Start":"start", "End":"end", "SelfStart":"self-start", "SelfEnd":"self-end", "Left":"left", "Right":"right", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"};
-var contentPositionClasses = {"Start":"start", "End":"end", "Left":"left", "Right":"right", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"};
+var selfPositionClasses = {"Start":"start", "End":"end", "SelfStart":"self-start", "SelfEnd":"self-end", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"};
+var contentPositionClasses = {"Start":"start", "End":"end", "Center":"center", "FlexStart":"flex-start", "FlexEnd":"flex-end"};
 var distributionClasses = {"Stretch":"stretch", "SpaceAround":"space-around", "SpaceBetween":"space-between", "SpaceEvenly":"space-evenly"};
 var baselineClasses = {"Baseline":"baseline", "FirstBaseline":"first baseline", "LastBaseline":"last baseline"};
 var overflowClasses = {"SafeFlexEnd":"safe flex-end", "UnsafeEnd":"unsafe end", "SafeEnd":"safe end", "UnsafeFlexStart":"unsafe flex-start", "SafeCenter":"safe center"};
@@ -85,8 +78,8 @@
 function checkBadValues(element, property, propertyID, value)
 {
     var elementID = element.id || "element";
-    var initialValue = eval("window.getComputedStyle(" + elementID + " , '').getPropertyValue('" + propertyID + "')");
     element.style[property] = "";
+    var initialValue = eval("window.getComputedStyle(" + elementID + " , '').getPropertyValue('" + propertyID + "')");
     element.style[property] = value;
     checkValues(element, property, propertyID, "", initialValue);
 }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-002.html
index e04f87ff..31af780 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "alignSelf", "align-self", "safe left", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "safe start", "auto");
 }, "Test grid items align-self: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "alignSelf", "align-self", "unsafe right", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "unsafe end", "auto");
 }, "Test flex items align-self: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignSelf", "align-self", "left", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "start", "auto");
 }, "Test absolute positioned elements align-self: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignSelf", "align-self", "right", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "end", "auto");
 }, "Test absolute positioned grid items align-self: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-004.html
index 4786727e..3549947 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-004.html
@@ -13,7 +13,7 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let values = ["legacy", "space-around"].concat(invalidPositionValues);
+    let values = ["legacy", "space-around", "left", "safe right"].concat(invalidPositionValues);
 
     values.forEach(function(value) {
         test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-005.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-005.html
index c61b24a..37e15f8 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-005.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-align-self-005.html
@@ -14,8 +14,8 @@
     checkInheritValues("alignSelf", "align-self", "end");
 }, "Test the value 'inherit' overrides current value ('end')");
 test(function() {
-    checkInheritValues("alignSelf", "align-self", "safe left");
-}, "Test the value 'inherit' overrides current value ('safe left')");
+    checkInheritValues("alignSelf", "align-self", "safe start");
+}, "Test the value 'inherit' overrides current value ('safe start')");
 test(function() {
     checkInheritValues("alignSelf", "align-self", "unsafe center");
 }, "Test the value 'inherit' overrides current value ('unsafe center')");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-001.html
index c2ee62d..da5f28f 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-001.html
@@ -14,8 +14,8 @@
 <script src="/css/css-align/resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
-                                baselineClasses, overflowClasses);
+    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch", "Left":"left",
+                                 "Right":"right"}, selfPositionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
         let specifiedValue = classes[key];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-002.html
index 38bc73d..45403c7a 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-002.html
@@ -29,24 +29,24 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "justifySelf", "justify-self", "safe left", "auto");
+    checkInitialValues(element, "justifySelf", "justify-self", "safe start", "auto");
 }, "Test grid items justify-self: 'initial'");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "justifySelf", "justify-self", "unsafe right", "auto");
+    checkInitialValues(element, "justifySelf", "justify-self", "unsafe end", "auto");
 }, "Test flex items justify-self: 'initial'");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifySelf", "justify-self", "left", "auto");
+    checkInitialValues(element, "justifySelf", "justify-self", "start", "auto");
 }, "Test absolute positioned elements justify-self: 'initial'");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "justifySelf", "justify-self", "right", "auto");
+    checkInitialValues(element, "justifySelf", "justify-self", "end", "auto");
 }, "Test absolute positioned grid items justify-self: 'initial'");
 
 test(function() {
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-003.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-003.html
index 7e2dd65..a7131ef 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-003.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/parse-justify-self-003.html
@@ -16,8 +16,8 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
-                                baselineClasses, overflowClasses);
+    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch", "Left":"left",
+                                 "Right":"right"}, selfPositionClasses, baselineClasses, overflowClasses);
 
     for (var key in classes) {
         let specifiedValue = classes[key];
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-001.html
index ba2355e..8cc3a336 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-001.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-001.html
@@ -8,10 +8,12 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["auto", "normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(value) {
+    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
+                                baselineClasses);
+    for (var key in classes) {
+        let value = classes[key];
         test(function() {
             checkPlaceShorhandLonghands("place-self", "align-self", "justify-self", value);
         }, "Checking place-self: " + value);
-    });
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-002.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-002.html
index 16f807d..8725457 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-002.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-002.html
@@ -8,12 +8,16 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["auto", "normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(alignValue) {
-        values.forEach(function(justifyValue) {
+    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
+                                baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+            let justifyValue = classes2[key2];
             test(function() {
                 checkPlaceShorhandLonghands("place-self", "align-self", "justify-self", alignValue, justifyValue);
             }, "Checking place-self: " + alignValue + " " + justifyValue);
-        });
-    });
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-004.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-004.html
index b9baa6a..9fc8315 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-004.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-004.html
@@ -14,8 +14,8 @@
     }
 
     test(function() {
-        checkInvalidValues("center safe")
-        checkInvalidValues("true center")
+        checkInvalidValues("safe center")
+        checkInvalidValues("unsafe center")
     }, "Verify overflow keywords are invalid");
 
     test(function() {
@@ -23,6 +23,12 @@
     }, "Verify fallback values are invalid");
 
     test(function() {
+        checkInvalidValues("left")
+        checkInvalidValues("left start")
+        checkInvalidValues("right center")
+    }, "Verify 'left' and 'right' values are invalid for block/cross axis alignment");
+
+    test(function() {
         checkInvalidValues("10px left")
         checkInvalidValues("right 10%")
     }, "Verify numeric values are invalid");
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-006.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-006.html
index 7e420f4a..c0139c1 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-006.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-align/self-alignment/place-self-shorthand-006.html
@@ -8,13 +8,17 @@
 <script src="../resources/alignment-parsing-utils.js"></script>
 <div id="log"></div>
 <script>
-    var values = ["auto", "normal", "stretch"].concat(selfPositionValues, baselineValues);
-    values.forEach(function(alignValue) {
-        [""].concat(values).forEach(function(justifyValue) {
+    let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
+                                baselineClasses);
+    for (var key1 in classes) {
+        let alignValue = classes[key1];
+        let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+        for (var key2 in classes2) {
+            let justifyValue = classes2[key2];
             var value = (alignValue + " " + justifyValue).trim();
             test(function() {
                 checkPlaceShorhand("place-self", alignValue, justifyValue)
             }, "Checking place-self: " + value);
-        });
-    });
+        }
+    }
 </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/resources/testhelper.js b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/resources/testhelper.js
index 879d447..ae2449c 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/resources/testhelper.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/resources/testhelper.js
@@ -116,7 +116,12 @@
 // Creates a new div element with inline style |cssText| and returns
 // its computed style property map.
 function createComputedStyleMap(test, cssText) {
-  return createDivWithStyle(test, cssText).computedStyleMap();
+  return createElementWithComputedStyleMap(test, cssText)[1];
+}
+// Same as createComputedStyleMap but also returns the element itself.
+function createElementWithComputedStyleMap(test, cssText) {
+  let elem = createDivWithStyle(test, cssText);
+  return [elem, elem.computedStyleMap()];
 }
 
 // Creates a new style element with a rule |cssText| and returns
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-invalid.html
new file mode 100644
index 0000000..8117d18b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get-invalid.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed StylePropertyMap.get Error Handling</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createComputedStyleMap(t);
+  assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.html
new file mode 100644
index 0000000..c11ca73e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Computed StylePropertyMap.get</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<meta name="assert" content="Test computed StylePropertyMap.get" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, '--foo: auto');
+  assert_equals(styleMap.get('--Foo'), null);
+}, 'Getting a custom property not in the computed style returns null');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, 'width: 10px; height: 20px');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+}, 'Getting a valid property from computed style returns the correct entry');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, '--foo: auto; --bar: 10px');
+  assert_style_value_equals(styleMap.get('--foo'),
+      new CSSUnparsedValue(' auto'));
+}, 'Getting a valid custom property from computed style returns the ' +
+   'correct entry');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t,
+      'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+  assert_style_value_equals(styleMap.get('transition-duration'),
+      new CSSUnitValue(1, 's'));
+}, 'Getting a list-valued property from computed style returns only ' +
+   'the first value');
+
+test(t => {
+  const styleMap = createComputedStyleMap(t, 'height: 20px; width: 10px;');
+  assert_style_value_equals(styleMap.get('wIdTh'), new CSSUnitValue(10, 'px'));
+}, 'Computed StylePropertyMap.get is not case-sensitive');
+
+test(t => {
+  const [elem, styleMap] = createElementWithComputedStyleMap(t, 'width: 10px;');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+  elem.style.width = '20px';
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(20, 'px'));
+}, 'Computed StylePropertyMap.get reflects updates in inline style');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html
deleted file mode 100644
index 98a519a..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/computed/get.tentative.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>StylePropertyMap.get tests</title>
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/testhelper.js"></script>
-<body>
-<script>
-'use strict';
-
-test(t => {
-  const styleMap = createComputedStyleMap(t);
-  assert_throws(new TypeError(), () => styleMap.get('lemon'));
-}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
-
-test(t => {
-  const styleMap = createComputedStyleMap(t, '--foo: auto');
-  assert_equals(styleMap.get('--Foo'), null);
-}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
-
-test(t => {
-  const styleMap = createComputedStyleMap(t, 'width: 10px; height: 20px');
-  assert_style_value_equals(styleMap.get('width'), CSS.px(10));
-}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
-
-test(t => {
-  const styleMap = createComputedStyleMap(t, 'height: 20px; width: 10px;');
-  assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
-}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
-
-test(t => {
-  const styleMap = createComputedStyleMap(t, '--foo: auto; --bar: 10px');
-  assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
-}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
-
-test(t => {
-  const styleMap = createComputedStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
-  assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
-}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
-
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-invalid.html
new file mode 100644
index 0000000..a91d197
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get-invalid.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap.get Error Handling</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t);
+  assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.html
new file mode 100644
index 0000000..aa649df
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Declared StylePropertyMap.get</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<meta name="assert" content="Test declared StylePropertyMap.get" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, '--foo: auto');
+  assert_equals(styleMap.get('--Foo'), null);
+}, 'Getting a custom property not in the CSS rule returns null');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, '');
+  assert_equals(styleMap.get('width'), null);
+}, 'Getting a valid property not in the CSS rule returns null');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'width: 10px; height: 20px');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+}, 'Getting a valid property from CSS rule returns the correct entry');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, '--foo: auto; --bar: 10px');
+  assert_style_value_equals(styleMap.get('--foo'),
+      new CSSUnparsedValue(' auto'));
+}, 'Getting a valid custom property from CSS rule returns the ' +
+   'correct entry');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t,
+      'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+  assert_style_value_equals(styleMap.get('transition-duration'),
+      new CSSUnitValue(1, 's'));
+}, 'Getting a list-valued property from CSS rule returns only ' +
+   'the first value');
+
+test(t => {
+  const styleMap = createDeclaredStyleMap(t, 'height: 20px; width: 10px;');
+  assert_style_value_equals(styleMap.get('wIdTh'), new CSSUnitValue(10, 'px'));
+}, 'Declared StylePropertyMap.get is not case-sensitive');
+
+test(t => {
+  const [rule, styleMap] = createRuleWithDeclaredStyleMap(t, 'width: 10px;');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+  rule.style.width = '20px';
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(20, 'px'));
+}, 'Declared StylePropertyMap.get reflects changes in the CSS rule');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html
deleted file mode 100644
index e50fb6e..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/declared/get.tentative.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>StylePropertyMap.get tests</title>
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/testhelper.js"></script>
-<body>
-<script>
-'use strict';
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t);
-  assert_throws(new TypeError(), () => styleMap.get('lemon'));
-}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t);
-  assert_equals(styleMap.get('height'), null);
-}, 'Calling StylePropertyMap.get with a property not in the property model returns null');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t, '--foo: auto');
-  assert_equals(styleMap.get('--Foo'), null);
-}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t, 'width: 10px; height: 20px');
-  assert_style_value_equals(styleMap.get('width'), CSS.px(10));
-}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t, 'height: 20px; width: 10px;');
-  assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
-}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t, '--foo: auto; --bar: 10px');
-  assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
-}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
-
-test(t => {
-  const styleMap = createDeclaredStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
-  assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
-}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
-
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-invalid.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-invalid.html
new file mode 100644
index 0000000..b847567
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get-invalid.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Inline StylePropertyMap.get Error Handling</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createInlineStyleMap(t);
+  assert_throws(new TypeError(), () => styleMap.get('lemon'));
+}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.html
new file mode 100644
index 0000000..ac7c6e4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.html
@@ -0,0 +1,56 @@
+<!doctype html>
+<meta charset="utf-8">
+<title>Inline StylePropertyMap.get</title>
+<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
+<meta name="assert" content="Test inline StylePropertyMap.get" />
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="../../resources/testhelper.js"></script>
+<body>
+<div id="log">
+<script>
+'use strict';
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, '--foo: auto');
+  assert_equals(styleMap.get('--Foo'), null);
+}, 'Getting a custom property not in the inline style returns null');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, '');
+  assert_equals(styleMap.get('width'), null);
+}, 'Getting a valid property not in the inline style returns null');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'width: 10px; height: 20px');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+}, 'Getting a valid property from inline style returns the correct entry');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, '--foo: auto; --bar: 10px');
+  assert_style_value_equals(styleMap.get('--foo'),
+      new CSSUnparsedValue(' auto'));
+}, 'Getting a valid custom property from inline style returns the ' +
+   'correct entry');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t,
+      'width: 10px; transition-duration: 1s, 2s; height: 10px;');
+  assert_style_value_equals(styleMap.get('transition-duration'),
+      new CSSUnitValue(1, 's'));
+}, 'Getting a list-valued property from inline style returns only ' +
+   'the first value');
+
+test(t => {
+  const styleMap = createInlineStyleMap(t, 'height: 20px; width: 10px;');
+  assert_style_value_equals(styleMap.get('wIdTh'), new CSSUnitValue(10, 'px'));
+}, 'Declared StylePropertyMap.get is not case-sensitive');
+
+test(t => {
+  const [elem, styleMap] = createElementWithInlineStyleMap(t, 'width: 10px;');
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(10, 'px'));
+  elem.style.width = '20px';
+  assert_style_value_equals(styleMap.get('width'), new CSSUnitValue(20, 'px'));
+}, 'Declared StylePropertyMap.get reflects changes in the inline style');
+
+</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html
deleted file mode 100644
index 6494a26..0000000
--- a/third_party/WebKit/LayoutTests/external/wpt/css/css-typed-om/the-stylepropertymap/inline/get.tentative.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!doctype html>
-<meta charset="utf-8">
-<title>StylePropertyMap.get tests</title>
-<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#get-a-value-from-a-stylepropertymap">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="../../resources/testhelper.js"></script>
-<body>
-<script>
-'use strict';
-
-test(t => {
-  const styleMap = createInlineStyleMap(t);
-  assert_throws(new TypeError(), () => styleMap.get('lemon'));
-}, 'Calling StylePropertyMap.get with an unsupported property throws a TypeError');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t);
-  assert_equals(styleMap.get('height'), null);
-}, 'Calling StylePropertyMap.get with a property not in the property model returns null');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t, '--foo: auto');
-  assert_equals(styleMap.get('--Foo'), null);
-}, 'Calling StylePropertyMap.get with a custom property not in the property model returns null');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t, 'width: 10px; height: 20px');
-  assert_style_value_equals(styleMap.get('width'), CSS.px(10));
-}, 'Calling StylePropertyMap.get with a valid property returns the correct entry');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t, 'height: 20px; width: 10px;');
-  assert_style_value_equals(styleMap.get('wIdTh'), CSS.px(10));
-}, 'StylePropertyMap.get with a valid property in mixed case returns the correct entry');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t, '--foo: auto; --bar: 10px');
-  assert_style_value_equals(styleMap.get('--foo'), new CSSUnparsedValue(' auto'));
-}, 'Calling StylePropertyMap.get with a valid custom property returns the correct entry');
-
-test(t => {
-  const styleMap = createInlineStyleMap(t, 'width: 10px; transition-duration: 1s, 2s; height: 10px;');
-  assert_style_value_equals(styleMap.get('transition-duration'), CSS.s(1));
-}, 'Calling StylePropertyMap.get with a list-valued property returns only the first value');
-
-</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root-ref.html
new file mode 100644
index 0000000..6523fd3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root-ref.html
@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<style>
+html { background: green; }
+</style>
+<body>
+
+</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root.html b/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root.html
new file mode 100644
index 0000000..2009ec1
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/external/wpt/css/selectors/selector-structural-pseudo-root.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html>
+<style>
+html { background: red; }
+html:nth-child(1):nth-last-child(1):nth-of-type(1):nth-last-of-type(1):first-child:last-child:only-child:first-of-type:last-of-type:only-of-type { background: green; }
+</style>
+<link rel="help" href="https://www.w3.org/TR/css3-selectors/#structural-pseudos">
+<link rel="match" href="selector-structural-pseudo-root-ref.html">
+<meta name="assert" content="Structural pseudo-classes match the root element, sibling pseudos are based on siblings without needing a parent (Selectors 3 erratum)">
\ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js
index 59cb3e3..1bc27b7d 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js
+++ b/third_party/WebKit/LayoutTests/external/wpt/generic-sensor/generic-sensor-tests.js
@@ -257,6 +257,7 @@
 
     const event = await sensorWatcher.wait_for("error");
     assert_false(sensor.activated);
-    assert_equals(event.error.name, 'NotReadableError');
+    assert_true(event.error.name == 'NotReadableError' ||
+                event.error.name == 'NotAllowedError');
   }, `${sensorType.name}: 'onerror' event is fired when sensor is not supported`);
 }
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlallcollection-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlallcollection-expected.txt
index 37713ef..fca42ab 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlallcollection-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/html/infrastructure/common-dom-interfaces/collections/htmlallcollection-expected.txt
@@ -20,11 +20,11 @@
 PASS namedItem method with null
 PASS namedItem method with no argument
 PASS legacy caller
-FAIL legacy caller with invalid name assert_equals: expected (object) null but got (undefined) undefined
+PASS legacy caller with invalid name
 PASS legacy caller returning collection
 PASS legacy caller with "array index property name"
 PASS legacy caller with "array index property name" as number
-FAIL legacy caller with invalid "array index property name" assert_equals: expected (object) null but got (undefined) undefined
+PASS legacy caller with invalid "array index property name"
 FAIL legacy caller with undefined assert_equals: expected null but got Element node <div id="undefined"></div>
 PASS legacy caller with null
 FAIL legacy caller with no argument assert_equals: expected (object) null but got (undefined) undefined
@@ -33,14 +33,14 @@
   }" did not throw
 PASS legacy caller with arbitrary this value
 PASS item method
-FAIL item method with invalid name assert_equals: expected (object) null but got (undefined) undefined
+PASS item method with invalid name
 PASS item method returning collection
 PASS item method with "array index property name"
 PASS item method with "array index property name" as number
-FAIL item method with invalid "array index property name" assert_equals: expected (object) null but got (undefined) undefined
+PASS item method with invalid "array index property name"
 FAIL item method with undefined assert_equals: expected null but got Element node <div id="undefined"></div>
 PASS item method with null
-FAIL item method with no argument assert_equals: expected (object) null but got (undefined) undefined
+PASS item method with no argument
 FAIL collections are new live HTMLCollection instances assert_not_equals: got disallowed value object "[object HTMLCollection]"
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer-expected.txt
index ecaf93e..979e300 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer-expected.txt
@@ -9,6 +9,5 @@
 PASS Test addSourceBuffer() audio only
 FAIL Test addSourceBuffer() with AAC and H.264 assert_true: video/mp4;codecs="avc1.4D4001,mp4a.40.2" is supported expected true got false
 FAIL Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers assert_true: video/mp4;codecs="avc1.4D4001" is supported expected true got false
-FAIL Test addSourceBuffer() QuotaExceededError. assert_true: Reached SourceBuffer limit. expected true got false
 Harness: the test ran to completion.
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer.html b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer.html
index 9fc9463..7f6aa2ab 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-addsourcebuffer.html
@@ -21,7 +21,7 @@
 
           mediasource_test(function(test, mediaElement, mediaSource)
           {
-              assert_throws(new TypeError(),
+              assert_throws({name: "TypeError"},
                           function() { mediaSource.addSourceBuffer(""); },
                           "addSourceBuffer() threw an exception when passed an empty string.");
               test.done();
@@ -43,7 +43,6 @@
               test.done();
           }, "Test addSourceBuffer() with unsupported type");
 
-
           mediasource_test(function(test, mediaElement, mediaSource)
           {
               var mimetype = 'video/webm;codecs="vp8,vorbis"';
@@ -83,7 +82,7 @@
               var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
               assert_true(sourceBuffer != null, "New SourceBuffer returned");
               assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is in mediaSource.activeSourceBuffers");
+              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
               test.done();
           }, "Test addSourceBuffer() video only");
 
@@ -96,7 +95,7 @@
               var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
               assert_true(sourceBuffer != null, "New SourceBuffer returned");
               assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is in mediaSource.activeSourceBuffers");
+              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
               test.done();
           }, "Test addSourceBuffer() audio only");
 
@@ -129,26 +128,6 @@
               assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferB is not in mediaSource.activeSourceBuffers");
               test.done();
           }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var reachedLimit = false;
-
-             // The 20 here is an arbitrary upper limit to make sure the test terminates. This test
-             // assumes that implementations won't support more than 20 SourceBuffers simultaneously.
-             for (var i = 0; i < 20; ++i) {
-                 try {
-                     mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE);
-                 } catch(e) {
-                     assert_equals(e.name, "QuotaExceededError");
-                     reachedLimit = true;
-                     break;
-                 }
-             }
-             assert_true(reachedLimit, "Reached SourceBuffer limit.");
-             test.done();
-          }, "Test addSourceBuffer() QuotaExceededError.");
-
         </script>
     </body>
 </html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported-expected.txt
index 98a290e..e2c5dd2 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported-expected.txt
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported-expected.txt
@@ -8,18 +8,19 @@
 PASS Test invalid MIME format "video/webm;codecs=""
 PASS Test invalid MIME format "video/webm;codecs="""
 PASS Test invalid MIME format "video/webm;codecs=",""
+PASS Test invalid MIME format "unsupported_mediatype"
 PASS Test invalid MIME format ""
 PASS Test invalid MIME format "null"
 PASS Test invalid MSE MIME media type "xxx"
 PASS Test invalid MSE MIME media type "text/html"
 PASS Test invalid MSE MIME media type "image/jpeg"
-PASS Test invalid mismatch between major type and codec ID "audio/webm;codecs="vp8""
-PASS Test invalid mismatch between major type and codec ID "audio/mp4;codecs="avc1.4d001e""
-PASS Test invalid mismatch between minor type and codec ID "audio/mp4;codecs="vorbis""
-PASS Test invalid mismatch between minor type and codec ID "audio/webm;codecs="mp4a.40.2""
-PASS Test invalid mismatch between minor type and codec ID "video/mp4;codecs="vp8""
-PASS Test invalid mismatch between minor type and codec ID "video/webm;codecs="mp4a.40.2""
-PASS Test invalid mismatch between minor type and codec ID "video/mp4;codecs="vorbis""
+PASS Test invalid mismatch between MIME type and codec ID "audio/webm;codecs="vp8""
+PASS Test invalid mismatch between MIME type and codec ID "audio/mp4;codecs="avc1.4d001e""
+PASS Test invalid mismatch between MIME type and codec ID "audio/mp4;codecs="vorbis""
+PASS Test invalid mismatch between MIME type and codec ID "audio/webm;codecs="mp4a.40.2""
+PASS Test invalid mismatch between MIME type and codec ID "video/mp4;codecs="vp8""
+PASS Test invalid mismatch between MIME type and codec ID "video/mp4;codecs="vorbis""
+PASS Test invalid mismatch between MIME type and codec ID "video/webm;codecs="mp4a.40.2""
 PASS Test invalid codec ID "audio/mp4;codecs="mp4a""
 PASS Test invalid codec ID "audio/mp4;codecs="mp4a.40""
 PASS Test invalid codec ID "audio/mp4;codecs="mp4a.40.""
diff --git a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported.html b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported.html
index 985e206..a364693 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/media-source/mediasource-is-type-supported.html
@@ -5,7 +5,6 @@
         <title>MediaSource.isTypeSupported() test cases.</title>
         <script src="/resources/testharness.js"></script>
         <script src="/resources/testharnessreport.js"></script>
-        <script src="mediasource-util.js"></script>
     </head>
     <body>
         <div id="log"></div>
@@ -32,6 +31,7 @@
               'video/webm;codecs="',
               'video/webm;codecs=""',
               'video/webm;codecs=","',
+              'unsupported_mediatype',
               '',
               null
           ], false, 'Test invalid MIME format');
@@ -45,15 +45,12 @@
           test_type_support([
               'audio/webm;codecs="vp8"',
               'audio/mp4;codecs="avc1.4d001e"',
-          ], false, 'Test invalid mismatch between major type and codec ID');
-
-          test_type_support([
               'audio/mp4;codecs="vorbis"',
               'audio/webm;codecs="mp4a.40.2"',
               'video/mp4;codecs="vp8"',
-              'video/webm;codecs="mp4a.40.2"',
               'video/mp4;codecs="vorbis"',
-          ], false, 'Test invalid mismatch between minor type and codec ID');
+              'video/webm;codecs="mp4a.40.2"',
+          ], false, 'Test invalid mismatch between MIME type and codec ID');
 
           test_type_support([
               'audio/mp4;codecs="mp4a"',
diff --git a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-content.html b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-content.html
index 2f4b034..23333ba 100644
--- a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-content.html
+++ b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-content.html
@@ -44,13 +44,6 @@
     align-content: center;
 }
 
-#alignContentLeft {
-    align-content: left;
-}
-
-#alignContentRight {
-    align-content: right;
-}
 
 #alignContentFlexStart {
     align-content: flex-start;
@@ -68,14 +61,6 @@
     align-content: unsafe center ;
 }
 
-#alignContentSafeRight {
-    align-content: safe right;
-}
-
-#alignContentUnsafeLeft {
-    align-content: unsafe left;
-}
-
 #alignContentUnsafeFlexStart {
     align-content: unsafe flex-start;
 }
@@ -141,22 +126,16 @@
 <div id="alignContentStart"></div>
 <div id="alignContentEnd"></div>
 <div id="alignContentCenter"></div>
-<div id="alignContentLeft"></div>
-<div id="alignContentRight"></div>
 <div id="alignContentFlexStart"></div>
 <div id="alignContentFlexEnd"></div>
 <div id="alignContentUnsafeEnd"></div>
 <div id="alignContentUnsafeCenter"></div>
 <div id="alignContentSafeSelfEnd"></div>
 <div id="alignContentSafeSelfStart"></div>
-<div id="alignContentSafeRight"></div>
-<div id="alignContentUnsafeLeft"></div>
 <div id="alignContentUnsafeFlexStart"></div>
 <div id="alignContentSafeFlexEnd"></div>
 <div id="alignContentEndUnsafe"></div>
 <div id="alignContentCenterUnsafe"></div>
-<div id="alignContentRightSafe"></div>
-<div id="alignContentLeftUnsafe"></div>
 <div id="alignContentFlexStartUnsafe"></div>
 <div id="alignContentFlexEndSafe"></div>
 
@@ -199,10 +178,6 @@
     checkValues(alignContentEnd, "alignContent", "align-content", "", "end");
     var alignContentCenter = document.getElementById("alignContentCenter");
     checkValues(alignContentCenter, "alignContent", "align-content", "", "center");
-    var alignContentLeft = document.getElementById("alignContentLeft");
-    checkValues(alignContentLeft, "alignContent", "align-content", "", "left");
-    var alignContentRight = document.getElementById("alignContentRight");
-    checkValues(alignContentRight, "alignContent", "align-content", "", "right");
     var alignContentFlexStart = document.getElementById("alignContentFlexStart");
     checkValues(alignContentFlexStart, "alignContent", "align-content", "", "flex-start");
     var alignContentFlexEnd = document.getElementById("alignContentFlexEnd");
@@ -211,10 +186,6 @@
     checkValues(alignContentUnsafeEnd, "alignContent", "align-content", "", "unsafe end");
     var alignContentUnsafeCenter = document.getElementById("alignContentUnsafeCenter");
     checkValues(alignContentUnsafeCenter, "alignContent", "align-content", "", "unsafe center");
-    var alignContentSafeRight = document.getElementById("alignContentSafeRight");
-    checkValues(alignContentSafeRight, "alignContent", "align-content", "", "safe right");
-    var alignContentUnsafeLeft = document.getElementById("alignContentUnsafeLeft");
-    checkValues(alignContentUnsafeLeft, "alignContent", "align-content", "", "unsafe left");
     var alignContentUnsafeFlexStart = document.getElementById("alignContentUnsafeFlexStart");
     checkValues(alignContentUnsafeFlexStart, "alignContent", "align-content", "", "unsafe flex-start");
     var alignContentSafeFlexEnd = document.getElementById("alignContentSafeFlexEnd");
@@ -226,10 +197,6 @@
     checkValues(alignContentEndUnsafe, "alignContent", "align-content", "", "normal");
     var alignContentCenterUnsafe = document.getElementById("alignContentCenterUnsafe");
     checkValues(alignContentCenterUnsafe, "alignContent", "align-content", "", "normal");
-    var alignContentRightSafe = document.getElementById("alignContentRightSafe");
-    checkValues(alignContentRightSafe, "alignContent", "align-content", "", "normal");
-    var alignContentLeftUnsafe = document.getElementById("alignContentLeftUnsafe");
-    checkValues(alignContentLeftUnsafe, "alignContent", "align-content", "", "normal");
     var alignContentFlexStartUnsafe = document.getElementById("alignContentFlexStartUnsafe");
     checkValues(alignContentFlexStartUnsafe, "alignContent", "align-content", "", "normal");
     var alignContentFlexEndSafe = document.getElementById("alignContentFlexEndSafe");
@@ -276,8 +243,8 @@
     element.style.alignContent = "safe flex-end";
     checkValues(element, "alignContent", "align-content",  "safe flex-end", "safe flex-end");
 
-    element.style.alignContent = " unsafe right";
-    checkValues(element, "alignContent", "align-content",  "unsafe right", "unsafe right");
+    element.style.alignContent = "unsafe end";
+    checkValues(element, "alignContent", "align-content",  "unsafe end", "unsafe end");
 
     element.style.justifyContent = "first baseline";
     checkValues(element, "justifyContent", "justify-content",  "first baseline", "baseline");
@@ -304,11 +271,14 @@
     element = document.createElement("div");
     document.body.appendChild(element);
 
-    checkBadValues(element, "alignContent", "align-content",  "");
+    checkBadValues(element, "alignContent", "align-content",  "left");
+    checkBadValues(element, "alignContent", "align-content",  "right");
     checkBadValues(element, "alignContent", "align-content",  "auto");
     checkBadValues(element, "alignContent", "align-content",  "unsafe auto");
     checkBadValues(element, "alignContent", "align-content",  "auto safe");
     checkBadValues(element, "alignContent", "align-content",  "auto left");
+    checkBadValues(element, "alignContent", "align-content",  "safe left");
+    checkBadValues(element, "alignContent", "align-content",  "unsafe right");
     checkBadValues(element, "alignContent", "align-content",  "baseline safe");
     checkBadValues(element, "alignContent", "align-content",  "last-baseline center");
     checkBadValues(element, "alignContent", "align-content",  "unsafe unsafe");
@@ -342,17 +312,17 @@
 
 test(function() {
     element.style.display = "grid";
-    checkInitialValues(element, "alignContent", "align-content", "safe left", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "safe start", "normal");
 }, "Test the value 'initial' for grid containers");
 
 test(function() {
     element.style.display = "flex";
-    checkInitialValues(element, "alignContent", "align-content", "unsafe right", "normal");
+    checkInitialValues(element, "alignContent", "align-content", "unsafe end", "normal");
 }, "Test the value 'initial' for flex containers");
 
 test(function() {
     checkInheritValues("alignContent", "align-content", "end");
-    checkInheritValues("alignContent", "align-content", "safe left");
+    checkInheritValues("alignContent", "align-content", "safe start");
     checkInheritValues("alignContent", "align-content", "unsafe center");
 }, "Test the value 'inherit'");
 </script>
diff --git a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-items.html b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-items.html
index b21eb23..13e802ee 100644
--- a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-items.html
+++ b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-items.html
@@ -40,14 +40,6 @@
     align-items: self-end;
 }
 
-#alignItemsLeft {
-    align-items: left;
-}
-
-#alignItemsRight {
-    align-items: right;
-}
-
 #alignItemsFlexStart {
     align-items: flex-start;
 }
@@ -72,14 +64,6 @@
     align-items: safe self-start;
 }
 
-#alignItemsSafeRight {
-    align-items: safe right;
-}
-
-#alignItemsUnsafeLeft {
-    align-items: unsafe left;
-}
-
 #alignItemsUnsafeFlexStart {
     align-items: unsafe flex-start;
 }
@@ -99,8 +83,6 @@
 <div id="alignItemsCenter"></div>
 <div id="alignItemsSelfStart"></div>
 <div id="alignItemsSelfEnd"></div>
-<div id="alignItemsLeft"></div>
-<div id="alignItemsRight"></div>
 <div id="alignItemsFlexStart"></div>
 <div id="alignItemsFlexEnd"></div>
 
@@ -108,8 +90,6 @@
 <div id="alignItemsUnsafeCenter"></div>
 <div id="alignItemsSafeSelfEnd"></div>
 <div id="alignItemsSafeSelfStart"></div>
-<div id="alignItemsSafeRight"></div>
-<div id="alignItemsUnsafeLeft"></div>
 <div id="alignItemsUnsafeFlexStart"></div>
 <div id="alignItemsSafeFlexEnd"></div>
 <script src="../../resources/testharness.js"></script>
@@ -137,10 +117,6 @@
     checkValues(alignItemsSelfEnd, "alignItems", "align-items", "", "self-end");
     var alignItemsSelfStart = document.getElementById("alignItemsSelfStart");
     checkValues(alignItemsSelfStart, "alignItems", "align-items", "", "self-start");
-    var alignItemsLeft = document.getElementById("alignItemsLeft");
-    checkValues(alignItemsLeft, "alignItems", "align-items", "", "left");
-    var alignItemsRight = document.getElementById("alignItemsRight");
-    checkValues(alignItemsRight, "alignItems", "align-items", "", "right");
     var alignItemsFlexStart = document.getElementById("alignItemsFlexStart");
     checkValues(alignItemsFlexStart, "alignItems", "align-items", "", "flex-start");
     var alignItemsFlexEnd = document.getElementById("alignItemsFlexEnd");
@@ -154,10 +130,6 @@
     checkValues(alignItemsSafeSelfEnd, "alignItems", "align-items", "", "safe self-end");
     var alignItemsSafeSelfStart = document.getElementById("alignItemsSafeSelfStart");
     checkValues(alignItemsSafeSelfStart, "alignItems", "align-items", "", "safe self-start");
-    var alignItemsSafeRight = document.getElementById("alignItemsSafeRight");
-    checkValues(alignItemsSafeRight, "alignItems", "align-items", "", "safe right");
-    var alignItemsUnsafeLeft = document.getElementById("alignItemsUnsafeLeft");
-    checkValues(alignItemsUnsafeLeft, "alignItems", "align-items", "", "unsafe left");
     var alignItemsUnsafeFlexStart = document.getElementById("alignItemsUnsafeFlexStart");
     checkValues(alignItemsUnsafeFlexStart, "alignItems", "align-items", "", "unsafe flex-start");
     var alignItemsSafeFlexEnd = document.getElementById("alignItemsSafeFlexEnd");
@@ -182,9 +154,6 @@
     element.style.alignItems = "safe flex-end";
     checkValues(element, "alignItems", "align-items",  "safe flex-end", "safe flex-end");
 
-    element.style.alignItems = "right";
-    checkValues(element, "alignItems", "align-items",  "right", "right");
-
     element.style.alignItems = "center";
     checkValues(element, "alignItems", "align-items",  "center", "center");
 
@@ -216,10 +185,14 @@
     document.body.appendChild(element);
 
     checkBadValues(element, "alignItems", "align-items",  "auto");
+    checkBadValues(element, "alignItems", "align-items",  "left");
+    checkBadValues(element, "alignItems", "align-items",  "right");
     checkBadValues(element, "alignItems", "align-items",  "unsafe auto");
     checkBadValues(element, "alignItems", "align-items",  "auto safe");
     checkBadValues(element, "alignItems", "align-items",  "auto left");
-    checkBadValues(element, "alignItems", "align-items",  "normal unsafe");
+    checkBadValues(element, "alignItems", "align-items",  "safe left");
+    checkBadValues(element, "alignItems", "align-items",  "unsafe right");
+    checkBadValues(element, "alignItems", "align-items",  "unsafe normal");
     checkBadValues(element, "alignItems", "align-items",  "normal stretch");
     checkBadValues(element, "alignItems", "align-items",  "baseline normal");
     checkBadValues(element, "alignItems", "align-items",  "baseline safe");
@@ -258,17 +231,17 @@
 
 test(function() {
     element.style.display = "grid";
-    checkInitialValues(element, "alignItems", "align-items", "safe left", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "safe start", "normal");
 }, "Test the value 'initial' for grid containers");
 
 test(function() {
     element.style.display = "flex";
-    checkInitialValues(element, "alignItems", "align-items", "unsafe right", "normal");
+    checkInitialValues(element, "alignItems", "align-items", "unsafe end", "normal");
 }, "Test the value 'initial' for flex containers");
 
 test(function() {
     checkInheritValues("alignItems", "align-items", "end");
-    checkInheritValues("alignItems", "align-items", "safe left");
+    checkInheritValues("alignItems", "align-items", "safe start");
     checkInheritValues("alignItems", "align-items", "unsafe center");
 }, "Test the value 'inherit'");
 </script>
diff --git a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self-expected.txt b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self-expected.txt
deleted file mode 100644
index c77b472..0000000
--- a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = 1 duplicate test name: "Test the value 'initial' for positioned elements in grid containers"
-PASS Test getting align-self set through CSS.
-PASS Test initial value of align-self through JS
-PASS Test getting and setting align-self through JS
-PASS Test 'auto' value resolution for the root node
-PASS Test bad combinations of align-self
-PASS Test the value 'initial'
-PASS Test the value 'initial' for grid containers
-PASS Test the value 'initial' for flex containers
-PASS Test the value 'initial' for positioned elements
-PASS Test the value 'initial' for positioned elements in grid containers
-PASS Test the value 'initial' for positioned elements in grid containers
-PASS Test the value 'inherit'
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self.html b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self.html
index 57da38abe..9a771fc 100644
--- a/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self.html
+++ b/third_party/WebKit/LayoutTests/fast/alignment/parse-align-self.html
@@ -40,14 +40,6 @@
     align-self: self-end;
 }
 
-#alignSelfLeft {
-    align-self: left;
-}
-
-#alignSelfRight {
-    align-self: right;
-}
-
 #alignSelfFlexStart {
     align-self: flex-start;
 }
@@ -72,14 +64,6 @@
     align-self: safe self-start;
 }
 
-#alignSelfSafeRight {
-    align-self: safe right;
-}
-
-#alignSelfUnsafeLeft {
-    align-self: unsafe left;
-}
-
 #alignSelfUnsafeFlexStart {
     align-self: unsafe flex-start;
 }
@@ -99,8 +83,6 @@
 <div id="alignSelfCenter"></div>
 <div id="alignSelfSelfStart"></div>
 <div id="alignSelfSelfEnd"></div>
-<div id="alignSelfLeft"></div>
-<div id="alignSelfRight"></div>
 <div id="alignSelfFlexStart"></div>
 <div id="alignSelfFlexEnd"></div>
 
@@ -108,8 +90,6 @@
 <div id="alignSelfUnsafeCenter"></div>
 <div id="alignSelfSafeSelfEnd"></div>
 <div id="alignSelfSafeSelfStart"></div>
-<div id="alignSelfSafeRight"></div>
-<div id="alignSelfUnsafeLeft"></div>
 <div id="alignSelfUnsafeFlexStart"></div>
 <div id="alignSelfSafeFlexEnd"></div>
 <script src="../../resources/testharness.js"></script>
@@ -137,10 +117,6 @@
     checkValues(alignSelfSelfEnd, "alignSelf", "align-self", "", "self-end");
     var alignSelfSelfStart = document.getElementById("alignSelfSelfStart");
     checkValues(alignSelfSelfStart, "alignSelf", "align-self", "", "self-start");
-    var alignSelfLeft = document.getElementById("alignSelfLeft");
-    checkValues(alignSelfLeft, "alignSelf", "align-self", "", "left");
-    var alignSelfRight = document.getElementById("alignSelfRight");
-    checkValues(alignSelfRight, "alignSelf", "align-self", "", "right");
     var alignSelfFlexStart = document.getElementById("alignSelfFlexStart");
     checkValues(alignSelfFlexStart, "alignSelf", "align-self", "", "flex-start");
     var alignSelfFlexEnd = document.getElementById("alignSelfFlexEnd");
@@ -154,10 +130,6 @@
     checkValues(alignSelfSafeSelfEnd, "alignSelf", "align-self", "", "safe self-end");
     var alignSelfSafeSelfStart = document.getElementById("alignSelfSafeSelfStart");
     checkValues(alignSelfSafeSelfStart, "alignSelf", "align-self", "", "safe self-start");
-    var alignSelfSafeRight = document.getElementById("alignSelfSafeRight");
-    checkValues(alignSelfSafeRight, "alignSelf", "align-self", "", "safe right");
-    var alignSelfUnsafeLeft = document.getElementById("alignSelfUnsafeLeft");
-    checkValues(alignSelfUnsafeLeft, "alignSelf", "align-self", "", "unsafe left");
     var alignSelfUnsafeFlexStart = document.getElementById("alignSelfUnsafeFlexStart");
     checkValues(alignSelfUnsafeFlexStart, "alignSelf", "align-self", "", "unsafe flex-start");
     var alignSelfSafeFlexEnd = document.getElementById("alignSelfSafeFlexEnd");
@@ -184,9 +156,6 @@
     element.style.alignSelf = "safe flex-end";
     checkValues(element, "alignSelf", "align-self",  "safe flex-end", "safe flex-end");
 
-    element.style.alignSelf = "right";
-    checkValues(element, "alignSelf", "align-self",  "right", "right");
-
     element.style.alignSelf = "center";
     checkValues(element, "alignSelf", "align-self",  "center", "center");
 
@@ -222,8 +191,11 @@
     container.appendChild(element);
     document.body.appendChild(container);
 
-    checkBadValues(element, "alignSelf", "align-self",  "auto safe");
+    checkBadValues(element, "alignSelf", "align-self",  "left");
+    checkBadValues(element, "alignSelf", "align-self",  "right");
+    checkBadValues(element, "alignSelf", "align-self",  "safe auto");
     checkBadValues(element, "alignSelf", "align-self",  "auto left");
+    checkBadValues(element, "alignSelf", "align-self",  "safe right");
     checkBadValues(element, "alignSelf", "align-self",  "normal unsafe");
     checkBadValues(element, "alignSelf", "align-self",  "normal stretch");
     checkBadValues(element, "alignSelf", "align-self",  "baseline normal");
@@ -263,35 +235,35 @@
 
 test(function() {
     container.style.display = "grid";
-    checkInitialValues(element, "alignSelf", "align-self", "safe left", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "safe start", "auto");
 }, "Test the value 'initial' for grid containers");
 
 test(function() {
     container.style.display = "flex";
-    checkInitialValues(element, "alignSelf", "align-self", "unsafe right", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "unsafe end", "auto");
 }, "Test the value 'initial' for flex containers");
 
 test(function() {
     container.style.display = "";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignSelf", "align-self", "left", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "start", "auto");
 }, "Test the value 'initial' for positioned elements");
 
 test(function() {
     container.style.display = "grid";
     element.style.position = "absolute";
-    checkInitialValues(element, "alignSelf", "align-self", "right", "auto");
+    checkInitialValues(element, "alignSelf", "align-self", "end", "auto");
 }, "Test the value 'initial' for positioned elements in grid containers");
 
 test(function() {
     container.style.display = "flex";
     element.style.position = "absolute";
     checkInitialValues(element, "alignSelf", "align-self", "end", "auto");
-}, "Test the value 'initial' for positioned elements in grid containers");
+}, "Test the value 'initial' for positioned elements in flex containers");
 
 test(function() {
     checkInheritValues("alignSelf", "align-self", "end");
-    checkInheritValues("alignSelf", "align-self", "safe left");
+    checkInheritValues("alignSelf", "align-self", "safe start");
     checkInheritValues("alignSelf", "align-self", "unsafe center");
 }, "Test the value 'inherit'");
 </script>
diff --git a/third_party/WebKit/LayoutTests/fast/alignment/parse-alignment-of-root-elements.html b/third_party/WebKit/LayoutTests/fast/alignment/parse-alignment-of-root-elements.html
index 2143395..16f1b84 100644
--- a/third_party/WebKit/LayoutTests/fast/alignment/parse-alignment-of-root-elements.html
+++ b/third_party/WebKit/LayoutTests/fast/alignment/parse-alignment-of-root-elements.html
@@ -106,9 +106,9 @@
 
 test(function() {
     shadowHost.style.alignItems = "center";
-    shadowNode.style.alignItems = "right";
+    shadowNode.style.alignItems = "end";
     checkValues(shadowHost, "alignItems", "align-items", "center", "center");
-    checkValues(shadowNode, "alignItems", "align-items", "right", "right");
+    checkValues(shadowNode, "alignItems", "align-items", "end", "end");
     shadowNode.style.alignItems = "";
     checkValues(shadowNode, "alignItems", "align-items", "", "normal");
     shadowNode.style.alignSelf = "auto";
@@ -153,9 +153,9 @@
 
 test(function() {
     shadowHost.style.alignItems = "center";
-    shadowNode.style.alignItems = "right";
-    slotted.style.alignItems = "left";
-    checkValues(slotted, "alignItems", "align-items", "left", "left");
+    shadowNode.style.alignItems = "start";
+    slotted.style.alignItems = "end";
+    checkValues(slotted, "alignItems", "align-items", "end", "end");
     slotted.style.alignItems = "";
     checkValues(slotted, "alignItems", "align-items", "", "normal");
     slotted.style.alignSelf = "start";
@@ -203,9 +203,9 @@
 
 test(function() {
     shadowHost.style.alignItems = "center";
-    shadowNode.style.alignItems = "right";
-    slotted.style.alignItems = "left";
-    checkValues(slotted, "alignItems", "align-items", "left", "left");
+    shadowNode.style.alignItems = "end";
+    slotted.style.alignItems = "start";
+    checkValues(slotted, "alignItems", "align-items", "start", "start");
     slotted.style.alignItems = "";
     checkValues(slotted, "alignItems", "align-items", "", "normal");
     slotted.style.alignSelf = "start";
@@ -248,13 +248,13 @@
 
 test(function() {
     shadowHost.style.alignItems = "center";
-    shadowNode.style.alignItems = "right";
-    slot.style.alignItems = "left";
-    checkValues(slot, "alignItems", "align-items",  "left", "left");
+    shadowNode.style.alignItems = "end";
+    slot.style.alignItems = "start";
+    checkValues(slot, "alignItems", "align-items",  "start", "start");
     slot.style.alignItems = "";
     checkValues(slot, "alignItems", "align-items", "", "normal");
-    slot.style.alignSelf = "left";
-    checkValues(slot, "alignSelf", "align-self",  "left", "left");
+    slot.style.alignSelf = "start";
+    checkValues(slot, "alignSelf", "align-self",  "start", "start");
     slot.style.alignSelf = "auto";
     checkValues(slot, "alignSelf", "align-self",  "auto", "auto");
 }, "The 'slot' element should not use its parent inside the ShadowDOM tree to resolve the align-self 'auto' values because Blink does not support slots in the flat tree.");
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt
deleted file mode 100644
index cd3e44f7..0000000
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This test checks that the 'margin', 'border' and 'padding' properties are applied together correctly for 'align' and 'justify' properties.
-
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR - (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt
deleted file mode 100644
index 3ef9b59..0000000
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This test checks that the 'margin', 'border' and 'padding' properties are applied together correctly for 'align' and 'justify' properties on vertical-LR grids.
-
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html
index 24b301f..4b81040c22 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-lr.html
@@ -4,7 +4,9 @@
 <link href="../css-intrinsic-dimensions/resources/width-keyword-classes.css" rel="stylesheet">
 <link href="resources/grid.css" rel="stylesheet">
 <link href="resources/grid-alignment.css" rel="stylesheet">
-<script src="../../resources/check-layout.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="../../resources/check-layout-th.js"></script>
 <style>
 body {
     margin: 0;
@@ -77,8 +79,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content verticalLR itemsRight" data-expected-width="475" data-expected-height="350">
+        direction: LTR | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content verticalLR alignItemsStart justifyItemsRight" data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="46"  data-offset-y="58" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="110" data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="10"  data-expected-width="200" data-expected-height="100"></div>
@@ -166,8 +168,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content verticalLR directionRTL itemsLeft"      data-expected-width="475" data-expected-height="350">
+        direction: RTL | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content verticalLR directionRTL alignItemsStart justifyItemsLeft"      data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="46"  data-offset-y="214" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="200" data-expected-height="100"></div>
@@ -177,8 +179,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content verticalLR directionRTL itemsRight"     data-expected-width="475" data-expected-height="350">
+        direction: RTL | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content verticalLR directionRTL alignItemsStart justifyItemsRight"     data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="46"  data-offset-y="258" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="200" data-expected-height="100"></div>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt
deleted file mode 100644
index 565e92cc..0000000
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This test checks that the 'margin', 'border' and 'padding' properties are applied together correctly for 'align' and 'justify' properties on vertical-RL grids.
-
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html
index c1d26e0..d41754fd 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding-vertical-rl.html
@@ -4,7 +4,9 @@
 <link href="../css-intrinsic-dimensions/resources/width-keyword-classes.css" rel="stylesheet">
 <link href="resources/grid.css" rel="stylesheet">
 <link href="resources/grid-alignment.css" rel="stylesheet">
-<script src="../../resources/check-layout.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="../../resources/check-layout-th.js"></script>
 <style>
 body {
     margin: 0;
@@ -77,8 +79,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content verticalRL itemsRight" data-expected-width="475" data-expected-height="350">
+        direction: LTR | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content verticalRL alignItemsStart justifyItemsRight" data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="402" data-offset-y="58" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="230" data-offset-y="110" data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="100"></div>
@@ -167,8 +169,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content verticalRL directionRTL itemsLeft"      data-expected-width="475" data-expected-height="350">
+        direction: RTL | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content verticalRL directionRTL alignItemsStart justifyItemsLeft"      data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="402" data-offset-y="214" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="230" data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="200" data-expected-height="100"></div>
@@ -178,8 +180,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content verticalRL directionRTL itemsRight"     data-expected-width="475" data-expected-height="350">
+        direction: RTL | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content verticalRL directionRTL alignItemsStart justifyItemsRight"     data-expected-width="475" data-expected-height="350">
         <div class="cell firstRowFirstColumn"     data-offset-x="402" data-offset-y="258" data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="230" data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="200" data-expected-height="100"></div>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding.html
index 8a2b37f..f43f0e80 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-align-justify-margin-border-padding.html
@@ -4,7 +4,9 @@
 <link href="../css-intrinsic-dimensions/resources/width-keyword-classes.css" rel="stylesheet">
 <link href="resources/grid.css" rel="stylesheet">
 <link href="resources/grid-alignment.css" rel="stylesheet">
-<script src="../../resources/check-layout.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="../../resources/check-layout-th.js"></script>
 <style>
 body {
     margin: 0;
@@ -66,8 +68,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content itemsLeft" data-expected-width="375" data-expected-height="450">
+        direction: LTR | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content alignItemsStart justifyItemsLeft" data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="46"  data-offset-y="14"  data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="130" data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="100" data-expected-height="200"></div>
@@ -77,8 +79,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content itemsRight" data-expected-width="375" data-expected-height="450">
+        direction: LTR | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content alignItemsStart justifyItemsRight" data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="102" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="130" data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="100" data-expected-height="200"></div>
@@ -166,8 +168,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content directionRTL itemsLeft"      data-expected-width="375" data-expected-height="450">
+        direction: RTL | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content directionRTL alignItemsStart justifyItemsLeft"      data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="246" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="100" data-expected-height="200"></div>
@@ -177,8 +179,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content directionRTL itemsRight"     data-expected-width="375" data-expected-height="450">
+        direction: RTL | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content directionRTL alignItemsStart justifytemsRight"     data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="302" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="100" data-expected-height="200"></div>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding-expected.txt b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding-expected.txt
deleted file mode 100644
index cd3e44f7..0000000
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding-expected.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-This test checks that the 'margin', 'border' and 'padding' properties are applied together correctly for 'align' and 'justify' properties.
-
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: LTR - (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'auto' | justify-items: 'auto'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'center' | justify-items: 'center'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'end' | justify-items: 'end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'left' | justify-items: 'left'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL | align-items: 'right' | justify-items: 'right'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (ortho) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-start' | justify-items: 'self-start'
-
-PASS
-border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px
-direction: RTL (parall) | align-items: 'self-end' | justify-items: 'self-end'
-
-PASS
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html
index 309637922..df6414d 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-auto-sized-align-justify-margin-border-padding.html
@@ -4,7 +4,9 @@
 <link href="../css-intrinsic-dimensions/resources/width-keyword-classes.css" rel="stylesheet">
 <link href="resources/grid.css" rel="stylesheet">
 <link href="resources/grid-alignment.css" rel="stylesheet">
-<script src="../../resources/check-layout.js"></script>
+<script src="../../resources/testharness.js"></script>
+<script src="../../resources/testharnessreport.js"></script>
+<script src="../../resources/check-layout-th.js"></script>
 <style>
 body {
     margin: 0;
@@ -69,8 +71,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content itemsLeft" data-expected-width="375" data-expected-height="450">
+        direction: LTR | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content alignItemsStart justifyItemsLeft" data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="46"  data-offset-y="14"  data-expected-width="20"  data-expected-height="40"><div class="content"></div></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="130" data-offset-y="10"  data-expected-width="200" data-expected-height="200"><div class="content"></div></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="100" data-expected-height="200"><div class="content"></div></div>
@@ -80,8 +82,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: LTR | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content itemsRight" data-expected-width="375" data-expected-height="450">
+        direction: LTR | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content alignItemsStart justifyItemsRight" data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="102" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"><div class="content"></div></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="130" data-offset-y="10"  data-expected-width="200" data-expected-height="200"><div class="content"></div></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="30"  data-offset-y="210" data-expected-width="100" data-expected-height="200"><div class="content"></div></div>
@@ -169,8 +171,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'left' | justify-items: 'left'</p>
-    <div class="grid fit-content directionRTL itemsLeft"      data-expected-width="375" data-expected-height="450">
+        direction: RTL | align-items: 'start' | justify-items: 'left'</p>
+    <div class="grid fit-content directionRTL alignItemsStart justifyItemsLeft"      data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="246" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"><div class="content"></div></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"><div class="content"></div></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="100" data-expected-height="200"><div class="content"></div></div>
@@ -180,8 +182,8 @@
 
 <div>
     <p>border: 5px 10px 15px 20px | padding: 10px 15px 20px 30px | margin: 4px 8px 12px 16px<br>
-        direction: RTL | align-items: 'right' | justify-items: 'right'</p>
-    <div class="grid fit-content directionRTL itemsRight"     data-expected-width="375" data-expected-height="450">
+        direction: RTL | align-items: 'start' | justify-items: 'right'</p>
+    <div class="grid fit-content directionRTL alignItemsStart justifyItemsRight"     data-expected-width="375" data-expected-height="450">
         <div class="cell firstRowFirstColumn"     data-offset-x="302" data-offset-y="14"  data-expected-width="20"  data-expected-height="40"><div class="content"></div></div>
         <div class="selfStretch firstRowSecondColumn" data-offset-x="30"  data-offset-y="10"  data-expected-width="200" data-expected-height="200"><div class="content"></div></div>
         <div class="selfStretch secondRowFirstColumn" data-offset-x="230" data-offset-y="210" data-expected-width="100" data-expected-height="200"><div class="content"></div></div>
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html
index 766e66d..09caa78 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/grid-item-change-alignment-from-stretch.html
@@ -19,7 +19,7 @@
 <script>
 "use strict";
 var child = document.getElementById("item");
-const values = ['self-start', 'self-end', 'start', 'end', 'center', 'right', 'left', 'baseline'];
+const values = ['self-start', 'self-end', 'start', 'end', 'center', 'baseline'];
 values.forEach(function(value) {
   child.style.alignSelf = 'stretch';
   child.style.justifySelf = 'stretch';
diff --git a/third_party/WebKit/LayoutTests/fast/css-grid-layout/resources/grid-alignment.css b/third_party/WebKit/LayoutTests/fast/css-grid-layout/resources/grid-alignment.css
index 2c5c3b4..ebc77414 100644
--- a/third_party/WebKit/LayoutTests/fast/css-grid-layout/resources/grid-alignment.css
+++ b/third_party/WebKit/LayoutTests/fast/css-grid-layout/resources/grid-alignment.css
@@ -74,6 +74,8 @@
 .justifyItemsStart { justify-items: start; }
 .justifyItemsCenter { justify-items: center; }
 .justifyItemsEnd { justify-items: end; }
+.justifyItemsLeft { justify-items: left; }
+.justifyItemsRight { justify-items: right; }
 
 .justifyItemsCenterSafe { justify-items: safe center; }
 .justifyItemsCenterUnsafe { justify-items: unsafe center; }
@@ -123,16 +125,6 @@
     justify-items: end;
 }
 
-.itemsLeft {
-    align-items: left;
-    justify-items: left;
-}
-
-.itemsRight {
-    align-items: right;
-    justify-items: right;
-}
-
 .itemsSelfStart {
     align-items: self-start;
     justify-items: self-start;
diff --git a/third_party/WebKit/LayoutTests/fast/dom/collection-null-like-arguments-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/collection-null-like-arguments-expected.txt
index 1170658..43d9057 100644
--- a/third_party/WebKit/LayoutTests/fast/dom/collection-null-like-arguments-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/dom/collection-null-like-arguments-expected.txt
@@ -7,19 +7,19 @@
 document.all.item(0): [object HTMLHtmlElement]
 
 document.all[""]:      undefined
-document.all(""):      undefined
-document.all.item(""): undefined
+document.all(""):      null
+document.all.item(""): null
 
 document.all["0"]:      [object HTMLHtmlElement]
 document.all("0"):      [object HTMLHtmlElement]
 document.all.item("0"): [object HTMLHtmlElement]
 
 document.all[undefined]:      undefined
-document.all(undefined):      undefined
-document.all.item(undefined): undefined
+document.all(undefined):      null
+document.all.item(undefined): null
 
 document.all[null]:      undefined
-document.all(null):      undefined
-document.all.item(null): undefined
+document.all(null):      null
+document.all.item(null): null
 
 
diff --git a/third_party/WebKit/LayoutTests/fast/events/hit-test-counts-expected.txt b/third_party/WebKit/LayoutTests/fast/events/hit-test-counts-expected.txt
index 4a003e8..7b8a411 100644
--- a/third_party/WebKit/LayoutTests/fast/events/hit-test-counts-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/events/hit-test-counts-expected.txt
@@ -16,12 +16,12 @@
 MouseDown: 1+2
 MouseUp: 0+1
 Wheel: 0+1
-TouchStart: 0+1
+TouchStart: 1+1
 TouchMove: 0+0
 TouchEnd: 0+0
-GestureTapDown: 1+1
-GestureShowPress: 1+1
-GestureTap: 1+3
+GestureTapDown: 0+1
+GestureShowPress: 0+1
+GestureTap: 0+3
 GestureScrollBegin: 0+1
 GestureTapCancel: 0+1
 GestureScrollUpdate: 0+0
@@ -35,12 +35,12 @@
 MouseDown: 1+1 1+1 1+2
 MouseUp: 0+1 0+1 0+1
 Wheel: 0+1 0+1 0+1
-TouchStart: 1+0 1+0 0+1
+TouchStart: 2+0 2+0 1+1
 TouchMove: 0+0 0+0 0+0
 TouchEnd: 0+0 0+0 0+0
-GestureTapDown: 1+0 1+0 1+1
-GestureShowPress: 1+0 1+0 1+1
-GestureTap: 1+0 1+0 1+3
+GestureTapDown: 1+0 1+0 0+1
+GestureShowPress: 1+0 1+0 0+1
+GestureTap: 1+0 1+0 0+3
 GestureScrollBegin: 0+1 0+1 0+1
 GestureTapCancel: 1+0 1+0 0+1
 GestureScrollUpdate: 0+0 0+0 0+0
@@ -54,12 +54,12 @@
 MouseDown: 1+1 1+2 0+0
 MouseUp: 0+1 0+1 0+0
 Wheel: 0+1 0+1 0+0
-TouchStart: 1+0 0+1 0+0
+TouchStart: 2+0 1+1 1+0
 TouchMove: 0+0 0+0 0+0
 TouchEnd: 0+0 0+0 0+0
-GestureTapDown: 1+0 1+0 1+0
-GestureShowPress: 1+0 1+0 1+0
-GestureTap: 1+0 1+0 1+0
+GestureTapDown: 1+0 0+1 0+0
+GestureShowPress: 1+0 0+1 0+0
+GestureTap: 1+0 0+3 0+0
 GestureScrollBegin: 0+1 0+1 0+0
 GestureTapCancel: 1+0 0+1 0+0
 GestureScrollUpdate: 0+0 0+0 0+0
@@ -73,12 +73,12 @@
 MouseDown: 1+2
 MouseUp: 0+1
 Wheel: 0+1
-TouchStart: 0+1
+TouchStart: 1+1
 TouchMove: 0+0
 TouchEnd: 0+0
-GestureTapDown: 1+1
-GestureShowPress: 1+1
-GestureTap: 1+3 [with multiTargetTapNotification: 2+3]
+GestureTapDown: 0+1
+GestureShowPress: 0+1
+GestureTap: 0+3 [with multiTargetTapNotification: 1+3]
 GestureScrollBegin: 0+1
 GestureTapCancel: 0+1
 GestureScrollUpdate: 0+0
diff --git a/third_party/WebKit/LayoutTests/fast/events/hit-test-counts.html b/third_party/WebKit/LayoutTests/fast/events/hit-test-counts.html
index ea2a688..15fae9b 100644
--- a/third_party/WebKit/LayoutTests/fast/events/hit-test-counts.html
+++ b/third_party/WebKit/LayoutTests/fast/events/hit-test-counts.html
@@ -31,7 +31,7 @@
     window.internals.settings.setViewportEnabled(true);
     window.internals.settings.setMockScrollbarsEnabled(true);
 }
-
+var unique_event_id = 1;
 description("Count how many hit tests are required for various event scenarios.  Hit tests can be expensive and it's often tempting to add more.  These values should only ever be changed to go down, not up.");
 
 function hitTestCountDelta(doc)
@@ -105,32 +105,32 @@
     });
 
     logCounts('TouchStart', documents, multiTapNotification, function() {
-        eventSender.addTouchPoint(targetX, targetY);
-        eventSender.touchStart();
+        eventSender.addTouchPoint(targetX, targetY, 15, 15);
+        eventSender.touchStart(unique_event_id + 1);
     });
 
     logCounts('TouchMove', documents, multiTapNotification, function() {
-        eventSender.updateTouchPoint(0, targetX + 1, targetY);
-        eventSender.touchMove();
+        eventSender.updateTouchPoint(0, targetX + 1, targetY, 15, 15);
+        eventSender.touchMove(unique_event_id + 2);
     });
 
     logCounts('TouchEnd', documents, multiTapNotification, function() {
         eventSender.releaseTouchPoint(0);
-        eventSender.touchEnd();
+        eventSender.touchEnd(unique_event_id + 3);
     });
 
     logCounts('GestureTapDown', documents, multiTapNotification, function() {
-        eventSender.gestureTapDown(targetX, targetY, 30, 30);
+        eventSender.gestureTapDown(targetX, targetY, 30, 30, unique_event_id + 1);
     });
 
     logCounts('GestureShowPress', documents, multiTapNotification, function() {
-        eventSender.gestureShowPress(targetX, targetY, 30, 30);
+        eventSender.gestureShowPress(targetX, targetY, 30, 30, unique_event_id + 3);
     });
 
     logCounts('GestureTap', documents, multiTapNotification, function() {
         // We don't want to tap on an existing selection so we clear selections.
         window.getSelection().empty();
-        eventSender.gestureTap(targetX, targetY, 1, 30, 30);
+        eventSender.gestureTap(targetX, targetY, 1, 30, 30, unique_event_id + 3);
     });
 
     logCounts('GestureScrollBegin', documents, multiTapNotification, function() {
@@ -160,6 +160,10 @@
         eventSender.releaseTouchPoint(1);
         eventSender.touchEnd();
     });
+
+    unique_event_id = unique_event_id + 3;
+    // Leap forward to reset click count, so mouse down will not generate a double click.
+    eventSender.leapForward(1000);
 }
 
 function runTestForDocuments(targetX, targetY, documents)
@@ -182,6 +186,7 @@
 }
 
 eventCounts = {};
+
 onload = function() {
     window.internals.settings.setMultiTargetTapNotificationEnabled(false);
 
diff --git a/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-adjustment_click_target.html b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-adjustment_click_target.html
new file mode 100644
index 0000000..99b3359
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/events/pointerevents/pointerevent_touch-adjustment_click_target.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Touch-generated events should have the same target</title>
+<script src="../../../resources/testharness.js"></script>
+<script src="../../../resources/testharnessreport.js"></script>
+<body onload="inject_input()">
+<p>Touch letter 'O' below to run the test. If a "PASS" result appears the test passes, otherwise it fails</p>
+<p><a href="#" id="link">Link</a> <span id="target">O</span></p>
+<div id="log"></div>
+</body>
+<script>
+const target = document.getElementById('target');
+const xPosition = target.offsetLeft + 2;
+const yPosition = target.offsetTop + 2;
+
+async_test(t => {
+    const link = document.getElementById('link');
+    const expectedEventLog = ['pointerdown-link', 'touchstart-link', 'pointerup-link', 'touchend-link', 'click-link'];
+    const eventLogRecorder = [];
+
+    const eventNames = ['touchstart', 'touchmove', 'touchend', 'pointerdown', 'pointermove', 'pointerup', 'click'];
+    for (eventName of eventNames) {
+        document.addEventListener(eventName, t.step_func(event => {
+            // TouchEvent and PointerEvent should have the same un-adjusted coordinates.
+            // click event should have coordinates adjusted to link element.
+            const eventClientX = event.clientX || (event.touches.length > 0 ? event.touches[0].clientX : 0);
+            const eventClientY = event.clientY || (event.touches.length > 0 ? event.touches[0].clientY : 0);
+
+            if (event.type === 'click') {
+                assert_equals(document.elementFromPoint(eventClientX, eventClientY), link,
+                    'click should have clientX/Y adjusted to link.');
+            } else if (event.type != 'touchend') {
+                assert_equals(eventClientX, xPosition,
+                    `${event.type} should have un-adjusted x coordinates.`);
+                assert_equals(eventClientY, yPosition,
+                    `${event.type} should have un-adjusted y coordinates.`);
+            }
+
+            // All events should have target adjusted to link.
+            const targetName = event.target.id || event.target.nodeName || '[null]';
+            eventLogRecorder.push(`${event.type}-${targetName}`);
+            if (event.type === 'click') {
+                assert_array_equals(eventLogRecorder, expectedEventLog);
+                t.done();
+            }
+        }));
+    }
+});
+</script>
+<script>
+    function inject_input() {
+      return new Promise(function(resolve, reject) {
+        if (window.chrome && chrome.gpuBenchmarking) {
+          chrome.gpuBenchmarking.pointerActionSequence( [
+            {source: 'touch',
+             actions: [
+                { name: 'pointerDown', x: xPosition, y: yPosition },
+                { name: 'pointerUp' }
+            ]}], resolve);
+        } else {
+          reject();
+        }
+      });
+    }
+</script>
\ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/fast/harness/results.html b/third_party/WebKit/LayoutTests/fast/harness/results.html
index 62ff3c0..8881449 100644
--- a/third_party/WebKit/LayoutTests/fast/harness/results.html
+++ b/third_party/WebKit/LayoutTests/fast/harness/results.html
@@ -672,9 +672,12 @@
     html.forEach(result => {
       let key = result.key || "null";
       if (!(key in renderMap)) {
+        const number_of_items = html.filter(result => (result.key || "null") === key).length;
         let container =
             report.querySelector(`div[key="${key}"]`) ||
-            Report.createContainerForGroup(report, key, keyed_title, null_title);
+            Report.createContainerForGroup(report, key,
+                `${keyed_title} ${number_of_items}`,
+                `${null_title} ${number_of_items}`);
         renderMap[key] = {container: container, html: ""};
       }
       renderMap[key].html += result.html;
diff --git a/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash-expected.txt b/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash-expected.txt
new file mode 100644
index 0000000..1c9bdd5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash-expected.txt
@@ -0,0 +1,10 @@
+Scrollable area removed on scroll
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS removedContainer is true
+PASS successfullyParsed is true
+
+TEST COMPLETE
+This tests that an accessibility controller scroll update notification which removes the scroller from the DOM does not crash the browser.
diff --git a/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash.html b/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash.html
new file mode 100644
index 0000000..86c895c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/layers/scrollable-area-removed-on-scroll-crash.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<script src=../../resources/js-test.js></script>
+<style>
+#container {
+  overflow: scroll
+}
+.inner {
+  width: 2000px
+}
+</style>
+<p>This tests that an accessibility controller scroll update notification which
+removes the scroller from the DOM does not crash the browser.</p>
+<div id="container">
+  <div class="inner"></div>
+</div>
+<script>
+description("Scrollable area removed on scroll");
+
+window.jsTestIsAsync = true;
+var removedContainer = false;
+
+accessibilityController.addNotificationListener(function () {
+  if (!window.container)
+    return;
+  removedContainer = true;
+  container.parentNode.removeChild(container);
+});
+
+setTimeout(function() {
+  container.scrollLeft = 500;
+  setTimeout(function(){
+    shouldBeTrue("removedContainer");
+    finishJSTest();
+  }, 0);
+}, 0);
+</script>
diff --git a/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-crash-with-invalid-location-expected.txt b/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-crash-with-invalid-location-expected.txt
index b8b7d95..48b05e3 100644
--- a/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-crash-with-invalid-location-expected.txt
+++ b/third_party/WebKit/LayoutTests/fast/workers/chromium/worker-crash-with-invalid-location-expected.txt
@@ -1,5 +1,4 @@
 Blocked access to external URL http://example.com/worker.js
-CONSOLE ERROR: line 18: Failed to start loading http://example.com/worker.js
 Test worker fetch of blocked url. Should print a "PASS" statement.
 
 PASS
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources-expected.txt
new file mode 100644
index 0000000..432e72a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources-expected.txt
@@ -0,0 +1,137 @@
+Verify that JavaScript SourceMap handle different sourcemap with overlapping sources.
+
+Running: initialWorkspace
+Removed: 0 uiSourceCodes
+Workspace: 2 uiSourceCodes.
+    debugger:///VM[XXX]
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+
+Running: attachFrame1
+Removed: 0 uiSourceCodes
+Workspace: 9 uiSourceCodes.
+    debugger:///VM[XXX]
+[+] debugger:///VM[XXX] script1.js
+[+] debugger:///VM[XXX] _test_create-frame1.js
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+[+] _test_create-frame1.js
+
+Running: attachAnotherFrame1
+Removed: 0 uiSourceCodes
+Workspace: 13 uiSourceCodes.
+    debugger:///VM[XXX]
+    debugger:///VM[XXX] script1.js
+[+] debugger:///VM[XXX] script1.js
+[+] debugger:///VM[XXX] _test_create-anotherFrame1.js
+    debugger:///VM[XXX] _test_create-frame1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+[+] _test_create-anotherFrame1.js
+    _test_create-frame1.js
+
+Running: attachFrame2
+Removed: 0 uiSourceCodes
+Workspace: 19 uiSourceCodes.
+    debugger:///VM[XXX]
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script1.js
+[+] debugger:///VM[XXX] script2.js
+    debugger:///VM[XXX] _test_create-anotherFrame1.js
+    debugger:///VM[XXX] _test_create-frame1.js
+[+] debugger:///VM[XXX] _test_create-frame2.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+[+] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+[+] _test_create-frame2.js
+
+Running: detachAnotherFrame1
+Removed: 1 uiSourceCodes
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+Workspace: 20 uiSourceCodes.
+    debugger:///VM[XXX]
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script2.js
+    debugger:///VM[XXX] _test_create-anotherFrame1.js
+    debugger:///VM[XXX] _test_create-frame1.js
+    debugger:///VM[XXX] _test_create-frame2.js
+[+] debugger:///VM[XXX] _test_detach-anotherFrame1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+[+] _test_detach-anotherFrame1.js
+
+Running: detachFrame2
+Removed: 3 uiSourceCodes
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts
+Workspace: 19 uiSourceCodes.
+    debugger:///VM[XXX]
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script2.js
+    debugger:///VM[XXX] _test_create-anotherFrame1.js
+    debugger:///VM[XXX] _test_create-frame1.js
+    debugger:///VM[XXX] _test_create-frame2.js
+    debugger:///VM[XXX] _test_detach-anotherFrame1.js
+[+] debugger:///VM[XXX] _test_detachFrame2.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+    http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+    _test_detach-anotherFrame1.js
+[+] _test_detachFrame2.js
+
+Running: detachFrame1
+Removed: 4 uiSourceCodes
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
+[-] http://127.0.0.1:8000/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
+Workspace: 17 uiSourceCodes.
+    debugger:///VM[XXX]
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script1.js
+    debugger:///VM[XXX] script2.js
+    debugger:///VM[XXX] _test_create-anotherFrame1.js
+    debugger:///VM[XXX] _test_create-frame1.js
+    debugger:///VM[XXX] _test_create-frame2.js
+    debugger:///VM[XXX] _test_detach-anotherFrame1.js
+[+] debugger:///VM[XXX] _test_detachFrame1.js
+    debugger:///VM[XXX] _test_detachFrame2.js
+    http://127.0.0.1:8000/devtools/resources/inspected-page.html
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+    _test_detach-anotherFrame1.js
+[+] _test_detachFrame1.js
+    _test_detachFrame2.js
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources.js b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources.js
new file mode 100644
index 0000000..37c8451c
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-bindings-overlapping-sources.js
@@ -0,0 +1,47 @@
+// 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.
+
+(async function() {
+  TestRunner.addResult(`Verify that JavaScript SourceMap handle different sourcemap with overlapping sources.`);
+  await TestRunner.loadModule('bindings_test_runner');
+
+  TestRunner.markStep('initialWorkspace');
+  var snapshot = BindingsTestRunner.dumpWorkspace();
+
+  TestRunner.markStep('attachFrame1');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('frame1', './resources/jssourcemaps-with-overlapping-sources/frame1.html', '_test_create-frame1.js'),
+    BindingsTestRunner.waitForSourceMap('script1.js.map'),
+  ]);
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+  TestRunner.markStep('attachAnotherFrame1');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('anotherFrame1', './resources/jssourcemaps-with-overlapping-sources/frame1.html', '_test_create-anotherFrame1.js'),
+    BindingsTestRunner.waitForSourceMap('script1.js.map'),
+  ]);
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+  TestRunner.markStep('attachFrame2');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('frame2', './resources/jssourcemaps-with-overlapping-sources/frame2.html', '_test_create-frame2.js'),
+    BindingsTestRunner.waitForSourceMap('script2.js.map')
+  ]);
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+  TestRunner.markStep('detachAnotherFrame1');
+  await BindingsTestRunner.detachFrame('anotherFrame1', '_test_detach-anotherFrame1.js');
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+  TestRunner.markStep('detachFrame2');
+  await BindingsTestRunner.detachFrame('frame2', '_test_detachFrame2.js');
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+  TestRunner.markStep('detachFrame1');
+  await BindingsTestRunner.detachFrame('frame1', '_test_detachFrame1.js');
+  snapshot = BindingsTestRunner.dumpWorkspace(snapshot);
+
+
+  TestRunner.completeTest();
+})();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources-expected.txt
new file mode 100644
index 0000000..34339e4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources-expected.txt
@@ -0,0 +1,134 @@
+Verify that JavaScript SourceMap handle different sourcemaps with overlapping sources.
+
+Running: dumpInitialNavigator
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+
+Running: attachFrame1
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-frame1.js
+  frame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+
+Running: attachAnotherFrame1
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+  anotherFrame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+  frame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+
+Running: attachFrame2
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+  anotherFrame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+  frame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+  frame2 (frame2.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame2.html
+        common.ts
+        script2.js
+        unique2.ts
+
+Running: detachAnotherFrame1
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+    _test_detach-anotherFrame1.js
+  frame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+  frame2 (frame2.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame2.html
+        common.ts
+        script2.js
+        unique2.ts
+
+Running: detachFrame2
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+    _test_detach-anotherFrame1.js
+    _test_detachFrame2.js
+  frame1 (frame1.html)
+    127.0.0.1:8000
+      devtools/bindings/resources/jssourcemaps-with-overlapping-sources
+        frame1.html
+        common.ts
+        script1.js
+        unique1.ts
+
+Running: detachFrame1
+top
+  127.0.0.1:8000
+    devtools/resources
+      inspected-page.html
+  (no domain)
+    _test_create-anotherFrame1.js
+    _test_create-frame1.js
+    _test_create-frame2.js
+    _test_detach-anotherFrame1.js
+    _test_detachFrame1.js
+    _test_detachFrame2.js
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources.js b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources.js
new file mode 100644
index 0000000..a4a6c5f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/jssourcemap-navigator-overlapping-sources.js
@@ -0,0 +1,50 @@
+// 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.
+
+(async function() {
+  TestRunner.addResult(`Verify that JavaScript SourceMap handle different sourcemaps with overlapping sources.`);
+  await TestRunner.loadModule('sources_test_runner');
+  await TestRunner.loadModule('bindings_test_runner');
+
+  var sourcesNavigator = new Sources.NetworkNavigatorView();
+  sourcesNavigator.show(UI.inspectorView.element);
+
+  TestRunner.markStep('dumpInitialNavigator');
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('attachFrame1');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('frame1', './resources/jssourcemaps-with-overlapping-sources/frame1.html', '_test_create-frame1.js'),
+    BindingsTestRunner.waitForSourceMap('script1.js.map'),
+  ]);
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('attachAnotherFrame1');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('anotherFrame1', './resources/jssourcemaps-with-overlapping-sources/frame1.html', '_test_create-anotherFrame1.js'),
+    BindingsTestRunner.waitForSourceMap('script1.js.map'),
+  ]);
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('attachFrame2');
+  await Promise.all([
+    BindingsTestRunner.attachFrame('frame2', './resources/jssourcemaps-with-overlapping-sources/frame2.html', '_test_create-frame2.js'),
+    BindingsTestRunner.waitForSourceMap('script2.js.map')
+  ]);
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('detachAnotherFrame1');
+  await BindingsTestRunner.detachFrame('anotherFrame1', '_test_detach-anotherFrame1.js');
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('detachFrame2');
+  await BindingsTestRunner.detachFrame('frame2', '_test_detachFrame2.js');
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.markStep('detachFrame1');
+  await BindingsTestRunner.detachFrame('frame1', '_test_detachFrame1.js');
+  SourcesTestRunner.dumpNavigatorView(sourcesNavigator, false);
+
+  TestRunner.completeTest();
+})();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
new file mode 100644
index 0000000..729aacc0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/common.ts
@@ -0,0 +1,4 @@
+function doFoo() {
+    console.log('foo');
+}
+window.foo = console.log.bind(console, 'foo');
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
new file mode 100644
index 0000000..aa0f414
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame1.html
@@ -0,0 +1,2 @@
+<script src="script1.js"></script>
+<div>Hi, I'm a frame with sourcemaps with overlapping sources!</div>
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html
new file mode 100644
index 0000000..bb566ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/frame2.html
@@ -0,0 +1,2 @@
+<script src="script2.js"></script>
+<div>Hi, I'm a frame with sourcemaps with overlapping sources!</div>
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
new file mode 100644
index 0000000..886a0e33
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js
@@ -0,0 +1,5 @@
+function doFoo() {
+    console.log('foo');
+}
+window.foo = console.log.bind(console, 'foo');
+//# sourceMappingURL=script1.js.map
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js.map b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js.map
new file mode 100644
index 0000000..1edb8a3
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script1.js.map
@@ -0,0 +1,8 @@
+{
+    "version": 3,
+    "file": "script1.js",
+    "sourceRoot": "",
+    "sources": ["common.ts", "unique1.ts"],
+    "names": [],
+    "mappings": "AAAA"
+}
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js
new file mode 100644
index 0000000..42da59f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js
@@ -0,0 +1,5 @@
+function doFoo() {
+    console.log('foo');
+}
+window.foo = console.log.bind(console, 'foo');
+//# sourceMappingURL=script2.js.map
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js.map b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js.map
new file mode 100644
index 0000000..fa65350
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/script2.js.map
@@ -0,0 +1,8 @@
+{
+    "version": 3,
+    "file": "script2.js",
+    "sourceRoot": "",
+    "sources": ["common.ts", "unique2.ts"],
+    "names": [],
+    "mappings": "AAAA"
+}
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique1.ts
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/bindings/resources/jssourcemaps-with-overlapping-sources/unique2.ts
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control-expected.txt
index 4533938..d6aa0fc 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control-expected.txt
@@ -1,35 +1,56 @@
 Verifies viewport correctly shows and hides messages while logging and scrolling.
 
-Max visible messages count: 13, active count: 25
+Logging 100 messages
+activeCountAbove: 6, activeCountBelow: 8
+smallCount: 3, visibleCount: 11, maxActiveCount: 25
 
 Running: addSmallCount
-Messages shown: 3, hidden: 0
+Logging 3 messages
+Are there smallCount items in DOM? true
+Are there smallCount items visible? true
 
-Running: addMaxVisibleCount
-Messages shown: 13, hidden: 0
+Running: addMoreThanVisibleCount
+Logging 12 messages
+Are there visibleCount + 1 items in DOM? true
+Are there visibleCount items visible? true
 
 Running: addMaxActiveCount
-Is at bottom: true, should stick: true
-Messages shown: 25, hidden: 0
+Logging 25 messages
+Are there maxActiveCount items in DOM? true
+Are there visibleCount items visible? true
 
 Running: addMoreThanMaxActiveCount
-Is at bottom: true, should stick: true
-Messages shown: 28, hidden: 3
+Logging 28 messages
+Are there maxActiveCount items in DOM? true
+Are there visibleCount items visible? true
 
-Running: scrollUpWithinActiveWindow
-Is at bottom: true, should stick: true
-Messages shown: 0, hidden: 0
+Running: scrollToBottomInPartialActiveWindow
+Logging 15 messages
+Were no items added? true
+Were no items removed? true
+Are there visiblePlusHalfExtraRows items in DOM? true
 
-Running: scrollUpToPositionOutsideOfActiveWindow
-Is at bottom: true, should stick: true
-Messages shown: 3, hidden: 3
+Running: scrollToBottomInMoreThanActiveWindow
+Logging 26 messages
+Were some items added? true
+Were some items removed? true
+
+Running: shouldNotReconnectExistingElementsToDOM
+Logging 3 messages
+Logging 3 messages
+Were smallCount * 2 items added? true
+Were 0 items removed? true
 
 Running: logRepeatingMessages
-Messages shown: 1, hidden: 0
+Logging 11 messages
+Were 1 items added? true
+Were 0 items removed? true
+Are there 1 items in DOM? true
+Are there 1 items visible? true
 
 Running: reorderingMessages
 Logging 3 messages
-Messages shown: 3, hidden: 0
 Swapping messages 0 and 1
-Messages shown: 0, hidden: 0
+Were no items added? true
+Were no items removed? true
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control.js b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control.js
index c6b9c76c..221d015a 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-control.js
@@ -22,134 +22,196 @@
       //# sourceURL=console-viewport-control.js
     `);
 
-  const viewportHeight = 200;
-  ConsoleTestRunner.fixConsoleViewportDimensions(600, viewportHeight);
+  ConsoleTestRunner.fixConsoleViewportDimensions(600, 200);
   var consoleView = Console.ConsoleView.instance();
   var viewport = consoleView._viewport;
   const smallCount = 3;
-  const rowHeight = viewportHeight / consoleView.minimumRowHeight();
-  const maxVisibleCount = Math.ceil(rowHeight);
-  const maxActiveCount = Math.ceil(rowHeight * 2);
-  var wasShown = [];
-  var willHide = [];
 
-  TestRunner.addResult('Max visible messages count: ' + maxVisibleCount + ', active count: ' + maxActiveCount);
+  // Measure visible/active ranges.
+  await logMessages(100);
+  viewport.forceScrollItemToBeFirst(50);
+  var {first, last, count} = ConsoleTestRunner.visibleIndices();
+  var visibleCount = count;
+  var maxActiveCount = viewport._lastActiveIndex - viewport._firstActiveIndex + 1;
+  // Use this because # of active messages below visible area may be different
+  // # of active messages above visible area.
+  var minActiveCount = 2 * (first - viewport._firstActiveIndex - 1) + visibleCount;
+  var activeCountAbove = first - viewport._firstActiveIndex;
+  var activeCountBelow = viewport._lastActiveIndex - last;
+  TestRunner.addResult(`activeCountAbove: ${activeCountAbove}, activeCountBelow: ${activeCountBelow}`);
+  TestRunner.addResult(`smallCount: ${smallCount}, visibleCount: ${visibleCount}, maxActiveCount: ${maxActiveCount}`);
 
-  function onMessageShown() {
-    wasShown.push(this);
+  var wasAddedToDOM = new Set();
+  var wasRemovedFromDOM = new Set();
+  function onWasShown() {
+    wasAddedToDOM.add(this);
   }
-
-  function onMessageHidden() {
-    willHide.push(this);
+  function onWillHide() {
+    wasRemovedFromDOM.add(this);
   }
-
-  function printAndResetCounts(next) {
-    TestRunner.addResult('Messages shown: ' + wasShown.length + ', hidden: ' + willHide.length);
-    resetShowHideCounts();
-    next();
-  }
+  TestRunner.addSniffer(Console.ConsoleViewMessage.prototype, 'wasShown', onWasShown, true);
+  TestRunner.addSniffer(Console.ConsoleViewMessage.prototype, 'willHide', onWillHide, true);
 
   function resetShowHideCounts() {
-    wasShown = [];
-    willHide = [];
+    wasAddedToDOM.clear();
+    wasRemovedFromDOM.clear();
   }
 
-  function logMessages(count, repeating, callback) {
-    var awaitingMessagesCount = count;
-    function messageAdded() {
-      if (!--awaitingMessagesCount) {
-        viewport.invalidate();
-        callback();
-      } else {
-        ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
+  function logMessages(count, repeating) {
+    TestRunner.addResult('Logging ' + count + ' messages');
+    return new Promise(resolve => {
+      var awaitingMessagesCount = count;
+      function messageAdded() {
+        if (!--awaitingMessagesCount) {
+          viewport.invalidate();
+          resolve();
+        } else {
+          ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
+        }
       }
-    }
-    ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
-    if (!repeating)
-      TestRunner.evaluateInPage(String.sprintf('addMessages(%d)', count));
-    else
-      TestRunner.evaluateInPage(String.sprintf('addRepeatingMessages(%d)', count));
+      ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
+      if (!repeating)
+        TestRunner.evaluateInPage(String.sprintf('addMessages(%d)', count));
+      else
+        TestRunner.evaluateInPage(String.sprintf('addRepeatingMessages(%d)', count));
+    });
   }
 
-  function printStuckToBottom() {
-    TestRunner.addResult(
-        'Is at bottom: ' + viewport.element.isScrolledToBottom() + ', should stick: ' + viewport.stickToBottom());
-  }
-
-  function clearConsoleAndReset() {
+  function reset() {
     Console.ConsoleView.clearConsole();
     resetShowHideCounts();
   }
 
-  TestRunner.addSniffer(Console.ConsoleViewMessage.prototype, 'wasShown', onMessageShown, true);
-  TestRunner.addSniffer(Console.ConsoleViewMessage.prototype, 'willHide', onMessageHidden, true);
+  function assertDOMCount(expectMessage, count) {
+    var actual = 0;
+    for (var message of consoleView._visibleViewMessages) {
+      if (message._element && message._element.isConnected)
+        actual++;
+    }
+    var result = `Are there ${expectMessage} items in DOM? `;
+    result += (actual === count ? 'true' : `FAIL: expected ${count}, actual ${actual}`);
+    TestRunner.addResult(result);
+  }
+
+  function assertVisibleCount(expectMessage, count) {
+    var actualVisible = ConsoleTestRunner.visibleIndices().count;
+    var result = `Are there ${expectMessage} items visible? `;
+    result += (actualVisible === count ? 'true' : `FAIL: expected ${count}, actualVisible ${actualVisible}`);
+    TestRunner.addResult(result);
+  }
+
+  function assertSomeAddedRemoved(added, removed) {
+    var actualAdded = wasAddedToDOM.size > 0;
+    var actualRemoved = wasRemovedFromDOM.size > 0;
+
+    var result = `Were ${added ? 'some' : 'no'} items added? `;
+    result += (actualAdded === added ? 'true' : `FAIL: expected ${added}, actualAdded ${actualAdded}`);
+    result += `\nWere ${removed ? 'some' : 'no'} items removed? `;
+    result += (actualRemoved === removed ? 'true' : `FAIL: expected ${removed}, actualRemoved ${actualRemoved}`);
+    TestRunner.addResult(result);
+  }
+
+  function assertCountAddedRemoved(messageAdded, added, mesasgeRemoved, removed) {
+    var addedSize = wasAddedToDOM.size;
+    var removedSize = wasRemovedFromDOM.size;
+
+    var result = `Were ${messageAdded} items added? `;
+    result += (addedSize === added ? 'true' : `FAIL: expected ${added}, addedSize ${addedSize}`);
+    result += `\nWere ${mesasgeRemoved} items removed? `;
+    result += (removedSize === removed ? 'true' : `FAIL: expected ${removed}, removedSize ${removedSize}`);
+    TestRunner.addResult(result);
+  }
 
   TestRunner.runTestSuite([
-    function addSmallCount(next) {
-      clearConsoleAndReset();
-      logMessages(smallCount, false, () => printAndResetCounts(next));
+    async function addSmallCount(next) {
+      reset();
+      await logMessages(smallCount, false);
+      viewport.forceScrollItemToBeFirst(0);
+      assertDOMCount('smallCount', smallCount);
+      assertVisibleCount('smallCount', smallCount);
+      next();
     },
 
-    function addMaxVisibleCount(next) {
-      clearConsoleAndReset();
-      logMessages(maxVisibleCount, false, () => printAndResetCounts(next));
+    async function addMoreThanVisibleCount(next) {
+      reset();
+      await logMessages(visibleCount + 1, false);
+      viewport.forceScrollItemToBeFirst(0);
+      assertDOMCount('visibleCount + 1', visibleCount + 1);
+      assertVisibleCount('visibleCount', visibleCount);
+      next();
     },
 
-    function addMaxActiveCount(next) {
-      clearConsoleAndReset();
-      logMessages(maxActiveCount, false, () => printAndResetCounts(next));
-      printStuckToBottom();
+    async function addMaxActiveCount(next) {
+      reset();
+      await logMessages(maxActiveCount, false);
+      viewport.forceScrollItemToBeFirst(0);
+      assertDOMCount('maxActiveCount', maxActiveCount);
+      assertVisibleCount('visibleCount', visibleCount);
+      next();
     },
 
-    function addMoreThanMaxActiveCount(next) {
-      clearConsoleAndReset();
-      logMessages(maxActiveCount, false, step2);
-      function step2() {
-        logMessages(smallCount, false, () => printAndResetCounts(next));
-        printStuckToBottom();
-      }
+    async function addMoreThanMaxActiveCount(next) {
+      reset();
+      await logMessages(maxActiveCount + smallCount, false);
+      viewport.forceScrollItemToBeFirst(0);
+      assertDOMCount('maxActiveCount', maxActiveCount);
+      assertVisibleCount('visibleCount', visibleCount);
+      next();
     },
 
-    function scrollUpWithinActiveWindow(next) {
-      clearConsoleAndReset();
-      logMessages(maxActiveCount, false, step2);
-      printStuckToBottom();
-      function step2() {
-        resetShowHideCounts();
-        viewport.forceScrollItemToBeFirst(0);
-        printAndResetCounts(next);
-      }
+    async function scrollToBottomInPartialActiveWindow(next) {
+      reset();
+      // Few enough messages so that they all fit in DOM.
+      var visiblePlusHalfExtraRows = visibleCount + Math.floor((minActiveCount - visibleCount) / 2) - 1;
+      await logMessages(visiblePlusHalfExtraRows, false);
+      viewport.forceScrollItemToBeFirst(0);
+      resetShowHideCounts();
+      viewport.element.scrollTop = 1000000;
+      viewport.refresh();
+      assertSomeAddedRemoved(false, false);
+      assertDOMCount('visiblePlusHalfExtraRows', visiblePlusHalfExtraRows);
+      next();
     },
 
-    function scrollUpToPositionOutsideOfActiveWindow(next) {
-      clearConsoleAndReset();
-      logMessages(maxActiveCount + smallCount, false, step2);
-      printStuckToBottom();
-      function step2() {
-        resetShowHideCounts();
-        viewport.forceScrollItemToBeFirst(0);
-        printAndResetCounts(next);
-      }
+    async function scrollToBottomInMoreThanActiveWindow(next) {
+      reset();
+      await logMessages(maxActiveCount + 1, false);
+      viewport.forceScrollItemToBeFirst(0);
+      resetShowHideCounts();
+      viewport.element.scrollTop = 1000000;
+      viewport.refresh();
+      assertSomeAddedRemoved(true, true);
+      next();
     },
 
-    function logRepeatingMessages(next) {
-      clearConsoleAndReset();
-      logMessages(maxVisibleCount, true, () => printAndResetCounts(next));
+    async function shouldNotReconnectExistingElementsToDOM(next) {
+      reset();
+      await logMessages(smallCount, false);
+      await logMessages(smallCount, false);
+      assertCountAddedRemoved('smallCount * 2', smallCount * 2, '0', 0);
+      next();
     },
 
-    function reorderingMessages(next) {
-      clearConsoleAndReset();
-      TestRunner.addResult('Logging ' + smallCount + ' messages');
-      logMessages(smallCount, false, () => printAndResetCounts(step2));
-      function step2() {
-        resetShowHideCounts();
-        TestRunner.addResult('Swapping messages 0 and 1');
-        var temp = consoleView._visibleViewMessages[0];
-        consoleView._visibleViewMessages[0] = consoleView._visibleViewMessages[1];
-        consoleView._visibleViewMessages[1] = temp;
-        viewport.invalidate();
-        printAndResetCounts(next);
-      }
+    async function logRepeatingMessages(next) {
+      reset();
+      await logMessages(visibleCount, true);
+      assertCountAddedRemoved('1', 1, '0', 0);
+      assertDOMCount('1', 1);
+      assertVisibleCount('1', 1);
+      next();
+    },
+
+    async function reorderingMessages(next) {
+      reset();
+      await logMessages(smallCount, false);
+      resetShowHideCounts();
+      TestRunner.addResult('Swapping messages 0 and 1');
+      var temp = consoleView._visibleViewMessages[0];
+      consoleView._visibleViewMessages[0] = consoleView._visibleViewMessages[1];
+      consoleView._visibleViewMessages[1] = temp;
+      viewport.invalidate();
+      assertSomeAddedRemoved(false, false);
+      next();
     }
   ]);
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices-expected.txt
new file mode 100644
index 0000000..13aa580
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices-expected.txt
@@ -0,0 +1,37 @@
+Verifies viewport's visible and active message ranges.
+
+
+Running: testEmptyViewport
+Calculated visible range: -1 to -1, Total: 0
+Actual visible range: -1 to -1, Total: 0
+Active range: -1 to -1, Total: 0
+
+
+Running: testFirstLastVisibleIndices
+Logging 100 messages
+Force item to be first: 0
+Calculated visible range: 0 to 10, Total: 11
+Actual visible range: 0 to 10, Total: 11
+Active range: 0 to 24, Total: 25
+
+Force item to be first: 1
+Calculated visible range: 1 to 11, Total: 11
+Actual visible range: 1 to 11, Total: 11
+Active range: 0 to 24, Total: 25
+
+Scroll a bit down: 15px
+Calculated visible range: 1 to 12, Total: 12
+Actual visible range: 1 to 12, Total: 12
+Active range: 0 to 24, Total: 25
+
+Force item to be last: 50
+Calculated visible range: 40 to 50, Total: 11
+Actual visible range: 40 to 50, Total: 11
+Active range: 35 to 59, Total: 25
+
+Force item to be last: 99
+Calculated visible range: 89 to 99, Total: 11
+Actual visible range: 89 to 99, Total: 11
+Active range: 84 to 99, Total: 16
+
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices.js b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices.js
new file mode 100644
index 0000000..6fac148
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-indices.js
@@ -0,0 +1,89 @@
+// 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.
+
+(async function() {
+    TestRunner.addResult(`Verifies viewport's visible and active message ranges.\n`);
+    await TestRunner.loadModule('console_test_runner');
+    await TestRunner.showPanel('console');
+    await TestRunner.evaluateInPagePromise(`
+        function addMessages(count)
+        {
+            for (var i = 0; i < count; ++i)
+                console.log("Message #" + i);
+        }
+
+        //# sourceURL=console-viewport-indices.js
+      `);
+
+    ConsoleTestRunner.fixConsoleViewportDimensions(600, 200);
+    var consoleView = Console.ConsoleView.instance();
+    var viewport = consoleView._viewport;
+
+    function logMessages(count) {
+      TestRunner.addResult('Logging ' + count + ' messages');
+      return new Promise(resolve => {
+        var awaitingMessagesCount = count;
+        function messageAdded() {
+          if (!--awaitingMessagesCount) {
+            viewport.invalidate();
+            resolve();
+          } else {
+            ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
+          }
+        }
+        ConsoleTestRunner.addConsoleSniffer(messageAdded, false);
+        TestRunner.evaluateInPage(String.sprintf('addMessages(%d)', count));
+      });
+    }
+
+    function dumpVisibleIndices() {
+      var {first, last, count} = ConsoleTestRunner.visibleIndices();
+      var activeTotal = viewport._firstActiveIndex === -1 ? 0 : (viewport._lastActiveIndex - viewport._firstActiveIndex + 1);
+      var calculatedFirst = viewport.firstVisibleIndex();
+      var calculatedLast = viewport.lastVisibleIndex();
+      var calculatedTotal = calculatedFirst === -1 ? 0 : (calculatedLast - calculatedFirst + 1);
+      TestRunner.addResult(`Calculated visible range: ${calculatedFirst} to ${calculatedLast}, Total: ${calculatedTotal}
+Actual visible range: ${first} to ${last}, Total: ${count}
+Active range: ${viewport._firstActiveIndex} to ${viewport._lastActiveIndex}, Total: ${activeTotal}\n`);
+      if (calculatedFirst !== first || calculatedLast !== last) {
+        TestRunner.addResult('TEST ENDED IN ERROR: viewport is calculated incorrect visible indices!');
+        TestRunner.completeTest();
+      }
+    }
+
+    TestRunner.runTestSuite([
+      async function testEmptyViewport(next) {
+        Console.ConsoleView.clearConsole();
+        dumpVisibleIndices();
+        next();
+      },
+
+      async function testFirstLastVisibleIndices(next) {
+        Console.ConsoleView.clearConsole();
+        await logMessages(100, false);
+
+        forceItemAndDump(0, true);
+        forceItemAndDump(1, true);
+
+        var lessThanOneRowHeight = consoleView.minimumRowHeight() - 1;
+        TestRunner.addResult(`Scroll a bit down: ${lessThanOneRowHeight}px`);
+        viewport.element.scrollTop += lessThanOneRowHeight;
+        viewport.refresh();
+        dumpVisibleIndices();
+
+        forceItemAndDump(50, false);
+        forceItemAndDump(99, false);
+        next();
+
+        function forceItemAndDump(index, first) {
+          TestRunner.addResult(`Force item to be ${first ? 'first' : 'last'}: ${index}`);
+          if (first)
+            viewport.forceScrollItemToBeFirst(index);
+          else
+            viewport.forceScrollItemToBeLast(index);
+          dumpVisibleIndices();
+        }
+      }
+    ]);
+  })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection-expected.txt
index 2723626..a7ad4e1 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection-expected.txt
@@ -1,9 +1,6 @@
 Tests that console viewport handles selection properly.
 
 
-Running: verifyViewportIsTallEnough
-Viewport contains 13 messages
-
 Running: testSelectionSingleLineText
 Selected text:<<<EOL
 nsole
@@ -34,7 +31,7 @@
 
 Running: testHalfScrollSelectionDown
 anchor = {item: 72, offset: 6}, head = {item: 77, offset: 6}
-first visible message index: 63
+first visible message index: 65
 
 Running: testScrollSelectionAwayUp
 anchor = {item: 72, offset: 6}, head = {item: 77, offset: 6}
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection.js b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection.js
index 81201b1c..279eee3d 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-selection.js
@@ -25,22 +25,10 @@
   var viewportMessagesCount;
 
   var testSuite = [
-    function verifyViewportIsTallEnough(next) {
+    function testSelectionSingleLineText(next) {
       viewport.invalidate();
       viewport.forceScrollItemToBeFirst(0);
       viewportMessagesCount = viewport.lastVisibleIndex() - viewport.firstVisibleIndex() + 1;
-      if (viewportMessagesCount < minimumViewportMessagesCount) {
-        TestRunner.addResult(String.sprintf(
-            'Test cannot be run as viewport is not tall enough. It is required to contain at least %d messages, but %d only fit',
-            minimumViewportMessagesCount, viewportMessagesCount));
-        TestRunner.completeTest();
-        return;
-      }
-      TestRunner.addResult(String.sprintf('Viewport contains %d messages', viewportMessagesCount));
-      next();
-    },
-
-    function testSelectionSingleLineText(next) {
       selectMessages(middleMessage, 2, middleMessage, 7);
       dumpSelectionText();
       dumpViewportRenderedItems();
@@ -76,7 +64,7 @@
     },
 
     function testHalfScrollSelectionDown(next) {
-      viewport.forceScrollItemToBeFirst(middleMessage - viewportMessagesCount + 1);
+      viewport.forceScrollItemToBeLast(middleMessage);
       dumpSelectionModel();
       dumpViewportRenderedItems();
       next();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom-expected.txt
index 77b1f343..d78c87e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom-expected.txt
@@ -1,9 +1,6 @@
 Verifies viewport stick-to-bottom behavior.
 
 
-Running: verifyViewportIsTallEnough
-Viewport contains 13 messages
-
 Running: testScrollViewportToBottom
 Is at bottom: true, should stick: true
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom.js b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom.js
index 79213a2..ebd8506 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-viewport-stick-to-bottom.js
@@ -9,42 +9,24 @@
   await TestRunner.evaluateInPagePromise(`
       function populateConsoleWithMessages(count)
       {
-          for (var i = 0; i < count - 1; ++i)
+          for (var i = 0; i < count; ++i)
               console.log("Multiline\\nMessage #" + i);
-          console.log("hello %cworld", "color: blue");
       }
 
-      //# sourceURL=console-viewport-selection.js
+      //# sourceURL=console-viewport-stick-to-bottom.js
     `);
 
   var viewportHeight = 200;
   ConsoleTestRunner.fixConsoleViewportDimensions(600, viewportHeight);
   var consoleView = Console.ConsoleView.instance();
   var viewport = consoleView._viewport;
-  const minimumViewportMessagesCount = 10;
   const messagesCount = 150;
-  const middleMessage = messagesCount / 2;
-  var viewportMessagesCount;
 
   logMessagesToConsole(messagesCount, () => TestRunner.runTestSuite(testSuite));
 
   var testSuite = [
-    function verifyViewportIsTallEnough(next) {
-      viewport.invalidate();
-      viewport.forceScrollItemToBeFirst(0);
-      viewportMessagesCount = viewport.lastVisibleIndex() - viewport.firstVisibleIndex() + 1;
-      if (viewportMessagesCount < minimumViewportMessagesCount) {
-        TestRunner.addResult(String.sprintf(
-            'Test cannot be run as viewport is not tall enough. It is required to contain at least %d messages, but %d only fit',
-            minimumViewportMessagesCount, viewportMessagesCount));
-        TestRunner.completeTest();
-        return;
-      }
-      TestRunner.addResult(String.sprintf('Viewport contains %d messages', viewportMessagesCount));
-      next();
-    },
-
     function testScrollViewportToBottom(next) {
+      viewport.invalidate();
       consoleView._immediatelyScrollToBottom();
       dumpAndContinue(next);
     },
@@ -93,8 +75,8 @@
       ConsoleTestRunner.evaluateInConsole('1 + 1');
 
       /**
-             * @param {boolean} muted
-             */
+       * @param {boolean} muted
+       */
       function onMessageAdded(muted) {
         TestRunner.addResult('New messages were muted: ' + muted);
         TestRunner.addSniffer(
@@ -104,8 +86,8 @@
       }
 
       /**
-             * @param {boolean} muted
-             */
+       * @param {boolean} muted
+       */
       function onMouseUpScheduledRefresh(muted) {
         TestRunner.addResult('Refresh was scheduled after dirty state');
       }
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/curl-command.js b/third_party/WebKit/LayoutTests/http/tests/devtools/curl-command.js
index 47fd9c3..7319cf4 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/curl-command.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/curl-command.js
@@ -17,37 +17,38 @@
       for (var i in headers)
         headerList.push({name: i, value: headers[i]});
     }
-    if (data) {
+    request.setRequestFormData(!!data, data);
+    if (data)
       headerList.push({name: 'Content-Length', value: data.length});
-      request.requestFormData = data;
-    }
     request.setRequestHeaders(headerList);
     return request;
   }
 
-  function dumpRequest(headers, data, opt_url) {
-    TestRunner.addResult('Windows: ' + logView._generateCurlCommand(newRequest(headers, data, opt_url), 'win'));
-    TestRunner.addResult('Unix: ' + logView._generateCurlCommand(newRequest(headers, data, opt_url), 'unix'));
+  async function dumpRequest(headers, data, opt_url) {
+    var win = await logView._generateCurlCommand(newRequest(headers, data, opt_url), 'win');
+    var unix = await logView._generateCurlCommand(newRequest(headers, data, opt_url), 'unix');
+    TestRunner.addResult(`Windows: ${win}`);
+    TestRunner.addResult(`Unix: ${unix}`);
   }
 
-  dumpRequest({});
-  dumpRequest({}, '123');
-  dumpRequest({'Content-Type': 'application/x-www-form-urlencoded'}, '1&b');
-  dumpRequest({'Content-Type': 'application/json'}, '{"a":1}');
-  dumpRequest({'Content-Type': 'application/binary'}, '1234\r\n\x30\x30\2\3\4\5\'"!');
-  dumpRequest({'Content-Type': 'application/binary'}, '1234\r\n\1\x30\x30\2\3\4\5\'"!');
-  dumpRequest(
+  await dumpRequest({});
+  await dumpRequest({}, '123');
+  await dumpRequest({'Content-Type': 'application/x-www-form-urlencoded'}, '1&b');
+  await dumpRequest({'Content-Type': 'application/json'}, '{"a":1}');
+  await dumpRequest({'Content-Type': 'application/binary'}, '1234\r\n\x30\x30\2\3\4\5\'"!');
+  await dumpRequest({'Content-Type': 'application/binary'}, '1234\r\n\1\x30\x30\2\3\4\5\'"!');
+  await dumpRequest(
       {'Content-Type': 'application/binary'},
       '%OS%\r\n%%OS%%\r\n"\\"\'$&!');  // Ensure %OS% for windows is not env evaled
-  dumpRequest(
+  await dumpRequest(
       {'Content-Type': 'application/binary'},
       '!@#$%^&*()_+~`1234567890-=[]{};\':",./\r<>?\r\nqwer\nt\n\nyuiopasdfghjklmnbvcxzQWERTYUIOPLKJHGFDSAZXCVBNM');
-  dumpRequest({'Content-Type': 'application/binary'}, '\x7F\x80\x90\xFF\u0009\u0700');
-  dumpRequest(
+  await dumpRequest({'Content-Type': 'application/binary'}, '\x7F\x80\x90\xFF\u0009\u0700');
+  await dumpRequest(
       {}, '',
       'http://labs.ft.com/?querystring=[]{}');  // Character range symbols must be escaped (http://crbug.com/265449).
-  dumpRequest({'Content-Type': 'application/binary'}, '%PATH%$PATH');
-  dumpRequest({':host': 'h', 'version': 'v'});
+  await dumpRequest({'Content-Type': 'application/binary'}, '%PATH%$PATH');
+  await dumpRequest({':host': 'h', 'version': 'v'});
 
   TestRunner.completeTest();
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices-expected.txt
index 6e141ee..2fa69ec 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices-expected.txt
@@ -1,12 +1,37 @@
 Test preservation of orientation and scale when that switching devices in device mode.
 
 
-Test that devices remember their scale.
-Switch to phone 0
+Test that devices automatically zoom to fit.
+Switch to phone A
+PhoneA Scale: 1
 Setting scale to 0.5
-Phone0 Scale: 0.5
-Switch to phone 1
-Phone1 Scale: 1
-Switch to phone 0
-Phone0 Scale: 0.5
+PhoneA Scale: 0.5
+Switch to phone B
+PhoneB Scale: 1
+Switch to phone large
+PhoneLarge Scale: 0.15
+Rotating...
+PhoneLarge Scale: 0.2
+Rotating back...
+PhoneLarge Scale: 0.15
+Switch to phone A
+PhoneA Scale: 1
+
+Turning off auto-zoom.
+
+Test that devices do not automatically zoom to fit.
+Switch to phone A
+PhoneA Scale: 1
+Setting scale to 0.75
+PhoneA Scale: 0.75
+Switch to phone B
+PhoneB Scale: 0.75
+Switch to phone large
+PhoneLarge Scale: 0.75
+Rotating...
+PhoneLarge Scale: 0.75
+Rotating back...
+PhoneLarge Scale: 0.75
+Switch to phone A
+PhoneA Scale: 0.75
 
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices.js b/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices.js
index c06d003..730883c 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/device-mode/device-mode-switching-devices.js
@@ -6,8 +6,15 @@
   TestRunner.addResult(`Test preservation of orientation and scale when that switching devices in device mode.\n`);
   await TestRunner.loadModule('device_mode_test_runner');
 
-  var phone0 = DeviceModeTestRunner.buildFakePhone();
-  var phone1 = DeviceModeTestRunner.buildFakePhone();
+  var phoneA = DeviceModeTestRunner.buildFakePhone();
+  var phoneB = DeviceModeTestRunner.buildFakePhone();
+  var phoneLarge = DeviceModeTestRunner.buildFakePhone({
+    'screen': {
+      'horizontal': {'width': 3840, 'height': 720},
+      'device-pixel-ratio': 2,
+      'vertical': {'width': 720, 'height': 3840}
+    }
+  });
 
   var view = new Emulation.DeviceModeView();
   var toolbar = view._toolbar;
@@ -15,18 +22,54 @@
   var viewportSize = new UI.Size(800, 600);
   model.setAvailableSize(viewportSize, viewportSize);
 
-  TestRunner.addResult('\nTest that devices remember their scale.');
-  TestRunner.addResult('Switch to phone 0');
-  toolbar._emulateDevice(phone0);
+  TestRunner.addResult('\nTest that devices automatically zoom to fit.');
+  TestRunner.addResult('Switch to phone A');
+  toolbar._emulateDevice(phoneA);
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
   TestRunner.addResult('Setting scale to 0.5');
   toolbar._onScaleMenuChanged(0.5);
-  TestRunner.addResult('Phone0 Scale: ' + model._scaleSetting.get());
-  TestRunner.addResult('Switch to phone 1');
-  toolbar._emulateDevice(phone1);
-  TestRunner.addResult('Phone1 Scale: ' + model._scaleSetting.get());
-  TestRunner.addResult('Switch to phone 0');
-  toolbar._emulateDevice(phone0);
-  TestRunner.addResult('Phone0 Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone B');
+  toolbar._emulateDevice(phoneB);
+  TestRunner.addResult('PhoneB Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone large');
+  toolbar._emulateDevice(phoneLarge);
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Rotating...');
+  toolbar._modeButton.element.click();
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Rotating back...');
+  toolbar._modeButton.element.click();
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone A');
+  toolbar._emulateDevice(phoneA);
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
+
+  TestRunner.addResult('\nTurning off auto-zoom.');
+  toolbar._autoAdjustScaleSetting.set(false);
+
+  TestRunner.addResult('\nTest that devices do not automatically zoom to fit.');
+  TestRunner.addResult('Switch to phone A');
+  toolbar._emulateDevice(phoneA);
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Setting scale to 0.75');
+  toolbar._onScaleMenuChanged(0.75);
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone B');
+  toolbar._emulateDevice(phoneB);
+  TestRunner.addResult('PhoneB Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone large');
+  toolbar._emulateDevice(phoneLarge);
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Rotating...');
+  toolbar._modeButton.element.click();
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Rotating back...');
+  toolbar._modeButton.element.click();
+  TestRunner.addResult('PhoneLarge Scale: ' + model._scaleSetting.get());
+  TestRunner.addResult('Switch to phone A');
+  toolbar._emulateDevice(phoneA);
+  TestRunner.addResult('PhoneA Scale: ' + model._scaleSetting.get());
 
   TestRunner.completeTest();
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-cookies-pane.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-cookies-pane.js
index 3c2c56a..ce96d2eb 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-cookies-pane.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-cookies-pane.js
@@ -14,7 +14,7 @@
 
     var requestFoo = new SDK.NetworkRequest('', '', '', '', '');
     requestFoo.setResourceType(types.XHR);
-    requestFoo.setRequestId('foo');
+    requestFoo.setRequestIdForTest('foo');
     requestFoo.setRequestHeaders([{name: 'Cookie', value: 'mycookie=myvalue;myother=myvalue2'}]);
     panel._showRequest(requestFoo);
     panel._networkItemView._selectTab('cookies');
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-fetch-post-payload.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-fetch-post-payload.js
index 5d1aaa7c..c47803e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-fetch-post-payload.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-fetch-post-payload.js
@@ -12,11 +12,11 @@
   NetworkTestRunner.recordNetwork();
   NetworkTestRunner.makeFetch('resources/resource.php?foo', {method: 'POST', body: payload}, step2);
 
-  function step2() {
+  async function step2() {
     var request = NetworkTestRunner.networkRequests().pop();
     TestRunner.addResult(request.url());
     TestRunner.assertEquals('foo', request.queryString(), 'Unexpected resource query.');
-    TestRunner.assertEquals(payload, request.requestFormData, 'Payload corrupted.');
+    TestRunner.assertEquals(payload, await request.requestFormData(), 'Payload corrupted.');
     TestRunner.completeTest();
   }
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-filter-updated-requests.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-filter-updated-requests.js
index efca2f23..6dc1d22 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-filter-updated-requests.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-filter-updated-requests.js
@@ -16,12 +16,12 @@
 
   var requestFoo = new SDK.NetworkRequest('', '', '', '', '');
   requestFoo.setResourceType(types.Script);
-  requestFoo.setRequestId('foo');
+  requestFoo.setRequestIdForTest('foo');
   TestRunner.networkManager._dispatcher._startNetworkRequest(requestFoo);
 
   var requestBar = new SDK.NetworkRequest('', '', '', '', '');
   requestBar.setResourceType(types.Script);
-  requestBar.setRequestId('bar');
+  requestBar.setRequestIdForTest('bar');
   TestRunner.networkManager._dispatcher._startNetworkRequest(requestBar);
 
   async function isFilteredOut(request) {
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-update-calculator-for-all-requests.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-update-calculator-for-all-requests.js
index 0bcbde8..1a5575b 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-update-calculator-for-all-requests.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-update-calculator-for-all-requests.js
@@ -15,7 +15,7 @@
   function appendRequest(id, type, startTime, endTime) {
     var request = new SDK.NetworkRequest('', '', '', '', '');
     request.setResourceType(type);
-    request.setRequestId(id);
+    request.setRequestIdForTest(id);
     request.setIssueTime(startTime);
     request.endTime = endTime;
     TestRunner.networkManager._dispatcher._startNetworkRequest(request);
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-post-payload.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-post-payload.js
index 8550db2..7b9cced5 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-post-payload.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-post-payload.js
@@ -12,11 +12,11 @@
   NetworkTestRunner.recordNetwork();
   NetworkTestRunner.makeSimpleXHRWithPayload('POST', 'resources/resource.php?foo', true, payload, step2);
 
-  function step2() {
+  async function step2() {
     var request = NetworkTestRunner.networkRequests().pop();
     TestRunner.addResult(request.url());
     TestRunner.assertEquals('foo', request.queryString(), 'Unexpected resource query.');
-    TestRunner.assertEquals(payload, request.requestFormData, 'Payload corrupted.');
+    TestRunner.assertEquals(payload, await request.requestFormData(), 'Payload corrupted.');
     TestRunner.completeTest();
   }
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-redirect-body.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-redirect-body.js
index 37859098..cae4917 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-redirect-body.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-redirect-body.js
@@ -26,13 +26,14 @@
   function step4() {
     NetworkTestRunner.networkRequests()[offset + 1].requestContent().then(step5);
   }
-  function step5() {
+  async function step5() {
     var requests = NetworkTestRunner.networkRequests();
     for (var i = 0; i < requests.length; ++i) {
       var request = requests[i];
       var requestMethod = request.requestMethod;
       var actualMethod = request.responseHeaderValue('request-method');
-      var body = '[' + (request.requestFormData || '') + ']';
+      var formData = await request.requestFormData();
+      var body = `[${formData || ''}]`;
       TestRunner.addResult(requestMethod + ' ' + request.url());
       TestRunner.addResult('  actual http method was: ' + actualMethod);
       TestRunner.addResult('  request body: ' + body);
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-replay.js b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-replay.js
index acd6cf6..0d850fe 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-replay.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/network/network-xhr-replay.js
@@ -11,11 +11,12 @@
     return NetworkTestRunner.networkRequests().pop();
   }
 
-  function dumpRequest(request) {
+  async function dumpRequest(request) {
     TestRunner.addResult('Dumping request: ');
     TestRunner.addResult('    url: ' + request.url());
-    if (request.requestFormData)
-      TestRunner.addResult('    requestFormData: ' + request.requestFormData);
+    var formData = await request.requestFormData();
+    if (formData)
+      TestRunner.addResult('    requestFormData: ' + formData);
     TestRunner.addResult('    requestMethod: ' + request.requestMethod);
     TestRunner.addResult('    test request header value: ' + request.requestHeaderValue('headerName'));
   }
@@ -34,7 +35,7 @@
 
     var originalRequest =
         await TestRunner.waitForEvent(NetworkLog.NetworkLog.Events.RequestAdded, NetworkLog.networkLog);
-    dumpRequest(originalRequest);
+    await dumpRequest(originalRequest);
     TestRunner.NetworkAgent.replayXHR(originalRequest.requestId());
     var replayedRequest =
         await TestRunner.waitForEvent(NetworkLog.NetworkLog.Events.RequestAdded, NetworkLog.networkLog);
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-conversion.js b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-conversion.js
index e5dff99c..6b4f3a6 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-conversion.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-conversion.js
@@ -35,7 +35,7 @@
   }
 
   addCookieHeadersToRequest(findRequestByURL(/inspected-page\.html$/));
-  var log = (new NetworkLog.HARLog(NetworkTestRunner.networkRequests())).build();
+  var log = await NetworkLog.HARLog.build(NetworkTestRunner.networkRequests());
   // Filter out favicon.ico requests that only appear on certain platforms.
   log.entries = log.entries.filter(function(entry) {
     return !/favicon\.ico$/.test(entry.request.url);
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-headers.js b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-headers.js
index 0743e65e..e044892 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-headers.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-har-headers.js
@@ -53,6 +53,7 @@
     '_transferSize': 'formatAsTypeName',
     '_error': 'skip'
   };
-  TestRunner.addObject(new NetworkLog.HAREntry(testRequest).build(), stillNondeterministic, '', 'HAR:');
+  var har = await NetworkLog.HAREntry.build(testRequest);
+  TestRunner.addObject(har, stillNondeterministic, '', 'HAR:');
   TestRunner.completeTest();
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters-ipv6.js b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters-ipv6.js
index 2ab9f78..55643242 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters-ipv6.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters-ipv6.js
@@ -24,10 +24,10 @@
   TestRunner.evaluateInPage('submit()');
   TestRunner.networkManager.addEventListener(SDK.NetworkManager.Events.RequestFinished, onRequestFinished);
 
-  function onRequestFinished(event) {
+  async function onRequestFinished(event) {
     var request = event.data;
     TestRunner.addResult(request.url());
-    TestRunner.addObject(new NetworkLog.HAREntry(request).build(), NetworkTestRunner.HARPropertyFormattersWithSize);
+    TestRunner.addObject(await NetworkLog.HAREntry.build(request), NetworkTestRunner.HARPropertyFormattersWithSize);
     TestRunner.completeTest();
   }
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters.js b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters.js
index dabf054..ef28267e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters.js
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/resource-parameters.js
@@ -23,10 +23,10 @@
   TestRunner.evaluateInPage('submit()');
   TestRunner.networkManager.addEventListener(SDK.NetworkManager.Events.RequestFinished, onRequestFinished);
 
-  function onRequestFinished(event) {
+  async function onRequestFinished(event) {
     var request = event.data;
     TestRunner.addResult(request.url());
-    TestRunner.addObject(new NetworkLog.HAREntry(request).build(), NetworkTestRunner.HARPropertyFormattersWithSize);
+    TestRunner.addObject(await NetworkLog.HAREntry.build(request), NetworkTestRunner.HARPropertyFormattersWithSize);
     TestRunner.completeTest();
   }
 })();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload-expected.txt
new file mode 100644
index 0000000..30edf6e
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload-expected.txt
@@ -0,0 +1,8 @@
+Tests that sourcemap sources are updated when a new sourcemap is added
+Evaluating script with new source map..
+console.log(1);
+Evaluating script with new source map..
+console.log(2);
+Evaluating script with new source map..
+console.log(11);
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload.js
new file mode 100644
index 0000000..d9e8cee0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/sourcemap-hot-reload.js
@@ -0,0 +1,27 @@
+// 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.
+
+(async function() {
+  TestRunner.addResult(`Tests that sourcemap sources are updated when a new sourcemap is added`);
+  var contents = [
+    `console.log(1);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbC1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2YWwtaW4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKDEpOyJdfQ==`,
+    // same mappings, other encoded sourcesContent
+    `console.log(2);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbC1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2YWwtaW4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKDIpOyJdfQ==`,
+    // other mappings, other sourcesContent
+    `console.log(11);
+//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbC1pbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImV2YWwtaW4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImNvbnNvbGUubG9nKDExKTsiXX0=`
+  ];
+
+  for (var content of contents) {
+    TestRunner.addResult('Evaluating script with new source map..');
+    await TestRunner.evaluateInPageAnonymously(content);
+    await new Promise(resolve => TestRunner.addSniffer(Bindings.CompilerScriptMapping.prototype, "_sourceMapAttachedForTest", resolve));
+    var uiSourceCode = await TestRunner.waitForUISourceCode("eval-in");
+    TestRunner.addResult(await uiSourceCode.requestContent());
+  }
+  TestRunner.completeTest();
+})();
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-async-third-party-script.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-async-third-party-script.html
index 4abfca4..dfa23d4 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-async-third-party-script.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-async-third-party-script.html
@@ -8,7 +8,7 @@
     var loadSuccess = false;
     if (window.internals) {
         internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(true);
-        internals.setNetworkConnectionInfoOverride(true, 'cellular2g', 2.0);
+        internals.setNetworkConnectionInfoOverride(true, 'cellular2g', '4g', 100, 2.0);
         internals.evictAllResources();
 
         window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-all-conn-types.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-all-conn-types.html
index 9eebd2ad..590370a2 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-all-conn-types.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-all-conn-types.html
@@ -20,7 +20,7 @@
 <script>
     if (window.internals) {
         internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrame(true);
-        internals.setNetworkConnectionInfoOverride(true, 'wifi', 2.0);
+        internals.setNetworkConnectionInfoOverride(true, 'wifi', '4g', 100, 2.0);
         internals.evictAllResources();
 
         window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g-expected.txt b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g-expected.txt
index 19e70f7..e7fb2f26 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g-expected.txt
@@ -1,5 +1,5 @@
-CONSOLE WARNING: line 19: A parser-blocking, cross site (i.e. different eTLD+1) script, http://localhost:8000/loading/resources/js-loaded.js?block-effectively-2g, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
-CONSOLE WARNING: line 19: A parser-blocking, cross site (i.e. different eTLD+1) script, http://localhost:8000/loading/resources/js-loaded.js?block-effectively-2g, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
+CONSOLE WARNING: line 18: A parser-blocking, cross site (i.e. different eTLD+1) script, http://localhost:8000/loading/resources/js-loaded.js?block-effectively-2g, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
+CONSOLE WARNING: line 18: A parser-blocking, cross site (i.e. different eTLD+1) script, http://localhost:8000/loading/resources/js-loaded.js?block-effectively-2g, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.
 CONSOLE ERROR: Network request for the parser-blocking, cross site (i.e. different eTLD+1) script, http://localhost:8000/loading/resources/js-loaded.js?block-effectively-2g, invoked via document.write was BLOCKED by the browser due to poor network connectivity. 
 This is a testharness.js-based test.
 PASS Document.written scripts are blocked when effectively 2G
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g.html
index 2cb682f..794b22d 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block-effectively-2g.html
@@ -7,12 +7,11 @@
     var loadSuccess = false;
     if (window.internals && window.testRunner) {
         internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameIfEffectively2G(true);
-        internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 2.0);
+        internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 'slow-2g', 2000, 2.0);
         internals.evictAllResources();
-        window.testRunner.setEffectiveConnectionType('TypeSlow2G');
         window.addEventListener('beforeunload', function() {
             internals.clearNetworkConnectionInfoOverride();
-            window.testRunner.setEffectiveConnectionType('TypeUnknown');
+            internals.setNetworkConnectionInfoOverride(true, 'cellular3g', '4g', 100, 2.0);
             internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameIfEffectively2G(false);
         }, false);
     }
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block.html
index d6583ee..68c2218 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-block.html
@@ -21,7 +21,7 @@
 <script>
     if (window.internals) {
         internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(true);
-        internals.setNetworkConnectionInfoOverride(true, 'cellular2g', 1.0);
+        internals.setNetworkConnectionInfoOverride(true, 'cellular2g', '4g', 100, 1.0);
         internals.evictAllResources();
 
         // Reset the state of the singleton network state notifier.
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-conn-type.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-conn-type.html
index e5ec3b8..4a0d5a0 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-conn-type.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-conn-type.html
@@ -7,7 +7,7 @@
     var loadSuccess = false;
     if (window.internals) {
         internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(true);
-        internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 2.0);
+        internals.setNetworkConnectionInfoOverride(true, 'cellular3g', '4g', 100, 2.0);
         internals.evictAllResources();
 
         window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-reload.html b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-reload.html
index 00149698..c3cd794 100644
--- a/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-reload.html
+++ b/third_party/WebKit/LayoutTests/http/tests/doc-write-intervention/doc-write-sync-third-party-script-reload.html
@@ -11,7 +11,7 @@
     }, "window.internals is required for the test to run");
 
     internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(true);
-    internals.setNetworkConnectionInfoOverride(true, 'cellular2g', 1.0);
+    internals.setNetworkConnectionInfoOverride(true, 'cellular2g', '4g', 100, 1.0);
     internals.evictAllResources();
 
     window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer-expected.txt b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer-expected.txt
new file mode 100644
index 0000000..52a5ed76
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer-expected.txt
@@ -0,0 +1,12 @@
+Tests the overriden referer headers are properly reported and applied with interception
+*Not* overriding referer in interception handler:
+referer in requestWillBeSent: https://127.0.0.1:8000/
+referer in requestIntercepted: https://127.0.0.1:8000/
+response: HTTP_REFERER: https://127.0.0.1:8000/
+
+Overriding referer in interception handler:
+referer in requestWillBeSent: https://127.0.0.1:8000/
+referer in requestIntercepted: https://127.0.0.1:8000/
+response: HTTP_REFERER: http://localhost:8000/
+
+
diff --git a/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer.js b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer.js
new file mode 100644
index 0000000..9941f0c8
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/inspector-protocol/network/request-interception-referer.js
@@ -0,0 +1,35 @@
+(async function(testRunner) {
+  var {page, session, dp} = await testRunner.startBlank(
+      `Tests the overriden referer headers are properly reported and applied with interception`);
+
+  session.protocol.Network.enable();
+  session.protocol.Page.enable();
+  await dp.Network.setExtraHTTPHeaders({headers: {'ReFeReR': 'https://127.0.0.1:8000/'}});
+  await session.protocol.Network.setRequestInterception({patterns: [{urlPattern: "*"}]});
+
+  testRunner.log('*Not* overriding referer in interception handler:');
+  var {interceptionId, bodyPromise} = await sendRequestAndIntercept();
+  session.protocol.Network.continueInterceptedRequest({interceptionId: interceptionId});
+  testRunner.log(`response: ${await bodyPromise}`);
+
+  testRunner.log('Overriding referer in interception handler:');
+  var {interceptionId, bodyPromise} = await sendRequestAndIntercept();
+  session.protocol.Network.continueInterceptedRequest({interceptionId: interceptionId, headers: {'ReFeReR': 'http://localhost:8000/'}});
+  testRunner.log(`response: ${await bodyPromise}`);
+
+  testRunner.completeTest();
+
+  async function sendRequestAndIntercept() {
+    const requestPromise = session.protocol.Network.onceRequestWillBeSent();
+    const evalPromise = session.evaluateAsync(`(async function() {
+      var url = '${testRunner.url('./resources/echo-headers.php?headers=HTTP_REFERER')}';
+      var response = await fetch(new Request(url));
+      return response.text();
+    })()`);
+    const interceptedRequest = (await session.protocol.Network.onceRequestIntercepted()).params;
+    const request = (await requestPromise).params;
+    testRunner.log(`referer in requestWillBeSent: ${request.request.headers['Referer']}`);
+    testRunner.log(`referer in requestIntercepted: ${interceptedRequest.request.headers['Referer']}`);
+    return {interceptionId: interceptedRequest.interceptionId, bodyPromise: evalPromise};
+  }
+})
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-chrome.html b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-chrome.html
new file mode 100644
index 0000000..c86cf5e5f
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-chrome.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <script src="/w3c/resources/testharness.js"></script>
+        <script src="/w3c/resources/testharnessreport.js"></script>
+        <script src="mediasource-util.js"></script>
+
+        <link rel='stylesheet' href='/w3c/resources/testharness.css'>
+    </head>
+    <body>
+        <div id="log"></div>
+        <script>
+
+          // NOTE: These tests should not be upstreamed with WPT.
+          // The following tests cover Chrome-specific QuotaExceededError behavior. The spec allows
+          // UAs flexibility for when to throw this exception.
+
+          mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
+          {
+              test.expectEvent(sourceBuffer, "updateend");
+              sourceBuffer.appendBuffer(mediaData);
+              test.waitForExpectedEvents(function()
+              {
+                  assert_throws({name: "QuotaExceededError"},
+                      function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
+                      "addSourceBuffer must throw an exception if the MediaSource has already received init segments for all sourcebuffers added at the time");
+                  test.done();
+              });
+          }, "Test addSourceBuffer() throws QuotaExceededError after MediaSource has completed init.");
+
+          mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
+          {
+              var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init);
+              test.expectEvent(sourceBuffer, "updateend");
+              // Append incomplete init segment to the first SourceBuffer.
+              sourceBuffer.appendBuffer(initSegment.slice(0, initSegment.length - 1));
+              test.waitForExpectedEvents(function()
+              {
+                  // We have not added a full init segment for the first SourceBuffer yet, so MediaSource init is not yet
+                  // finished and we should be able to add/remove one more SourceBuffer.
+                  var sourceBuffer2 = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE);
+                  mediaSource.removeSourceBuffer(sourceBuffer2);
+
+                  // Now append the rest of the init segment, this should complete the initialization of the MediaSource.
+                  test.expectEvent(sourceBuffer, "updateend");
+                  test.expectEvent(mediaElement, "loadedmetadata", "mediaElement metadata.");
+                  sourceBuffer.appendBuffer(initSegment.slice(initSegment.length - 1));
+              });
+
+              test.waitForExpectedEvents(function()
+              {
+                  // MediaSource is fully initialized now, so adding new SourceBuffers is no longer possible.
+                  assert_equals(mediaElement.readyState, HTMLMediaElement.HAVE_METADATA);
+                  assert_throws({name: "QuotaExceededError"},
+                      function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
+                      "addSourceBuffer must throw an exception if the media element has already reached HAVE_METADATA");
+                  test.done();
+              });
+          }, "Test addSourceBuffer() succeeds while incomplete init segment is appended, fails after MediaSource init completed.");
+        </script>
+    </body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt
deleted file mode 100644
index dbcd6b5..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer-expected.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-CONSOLE WARNING: line 16: Ignore this warning. See https://crbug.com/568704#c2
-This is a testharness.js-based test.
-PASS Test addSourceBuffer() in 'ended' state.
-PASS Test addSourceBuffer() with empty type
-PASS Test addSourceBuffer() with null
-PASS Test addSourceBuffer() with unsupported type
-PASS Test addSourceBuffer() with Vorbis and VP8
-PASS Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffers
-PASS Test addSourceBuffer() video only
-PASS Test addSourceBuffer() audio only
-FAIL Test addSourceBuffer() with AAC and H.264 assert_true: video/mp4;codecs="avc1.4D4001,mp4a.40.2" is supported expected true got false
-FAIL Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers assert_true: video/mp4;codecs="avc1.4D4001" is supported expected true got false
-PASS Test addSourceBuffer() throws QuotaExceededError after MediaSource has completed init.
-PASS Test addSourceBuffer() succeeds while incomplete init segment is appended, fails after MediaSource init completed.
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html
deleted file mode 100644
index cacc924..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-addsourcebuffer.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <script src="/w3c/resources/testharness.js"></script>
-        <script src="/w3c/resources/testharnessreport.js"></script>
-        <script src="mediasource-util.js"></script>
-
-        <link rel='stylesheet' href='/w3c/resources/testharness.css'>
-    </head>
-    <body>
-        <div id="log"></div>
-        <script>
-          // TODO(wolenetz): Remove this hacky console warning once desktop and
-          // android expectations match. It allows a passing platform-specific
-          // expectation to override a failing non-platform-specific expectation.
-          console.warn('Ignore this warning. See https://crbug.com/568704#c2');
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              mediaSource.endOfStream();
-              assert_throws("InvalidStateError",
-                          function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
-                          "addSourceBuffer() threw an exception when in 'ended' state.");
-              test.done();
-          }, "Test addSourceBuffer() in 'ended' state.");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              assert_throws({name: "TypeError"},
-                          function() { mediaSource.addSourceBuffer(""); },
-                          "addSourceBuffer() threw an exception when passed an empty string.");
-              test.done();
-          }, "Test addSourceBuffer() with empty type");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              assert_throws("NotSupportedError",
-                          function() { mediaSource.addSourceBuffer(null); },
-                          "addSourceBuffer() threw an exception when passed null.");
-              test.done();
-          }, "Test addSourceBuffer() with null");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              assert_throws("NotSupportedError",
-                          function() { mediaSource.addSourceBuffer("invalidType"); },
-                          "addSourceBuffer() threw an exception for an unsupported type.");
-              test.done();
-          }, "Test addSourceBuffer() with unsupported type");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var mimetype = 'video/webm;codecs="vp8,vorbis"';
-
-              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
-
-              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
-              assert_true(sourceBuffer != null, "New SourceBuffer returned");
-              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() with Vorbis and VP8");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var videoMimetype = 'video/webm;codecs="vp8"';
-              var audioMimetype = 'audio/webm;codecs="vorbis"';
-
-              assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported");
-              assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported");
-
-              var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
-              var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
-              assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferA is not in mediaSource.activeSourceBuffers");
-              assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferB is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() with Vorbis and VP8 in separate SourceBuffers");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var mimetype = MediaSourceUtil.VIDEO_ONLY_TYPE;
-
-              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
-
-              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
-              assert_true(sourceBuffer != null, "New SourceBuffer returned");
-              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() video only");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var mimetype = MediaSourceUtil.AUDIO_ONLY_TYPE;
-
-              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
-
-              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
-              assert_true(sourceBuffer != null, "New SourceBuffer returned");
-              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() audio only");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var mimetype = 'video/mp4;codecs="avc1.4D4001,mp4a.40.2"';
-
-              assert_true(MediaSource.isTypeSupported(mimetype), mimetype + " is supported");
-
-              var sourceBuffer = mediaSource.addSourceBuffer(mimetype);
-              assert_true(sourceBuffer != null, "New SourceBuffer returned");
-              assert_equals(mediaSource.sourceBuffers[0], sourceBuffer, "SourceBuffer is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBuffer is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() with AAC and H.264");
-
-          mediasource_test(function(test, mediaElement, mediaSource)
-          {
-              var videoMimetype = 'video/mp4;codecs="avc1.4D4001"';
-              var audioMimetype = 'audio/mp4;codecs="mp4a.40.2"';
-
-              assert_true(MediaSource.isTypeSupported(videoMimetype), videoMimetype + " is supported");
-              assert_true(MediaSource.isTypeSupported(audioMimetype), audioMimetype + " is supported");
-
-              var sourceBufferA = mediaSource.addSourceBuffer(videoMimetype);
-              var sourceBufferB = mediaSource.addSourceBuffer(audioMimetype);
-              assert_equals(mediaSource.sourceBuffers[0], sourceBufferA, "sourceBufferA is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferA is not in mediaSource.activeSourceBuffers");
-              assert_equals(mediaSource.sourceBuffers[1], sourceBufferB, "sourceBufferB is in mediaSource.sourceBuffers");
-              assert_equals(mediaSource.activeSourceBuffers.length, 0, "SourceBufferB is not in mediaSource.activeSourceBuffers");
-              test.done();
-          }, "Test addSourceBuffer() with AAC and H.264 in separate SourceBuffers");
-
-          mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
-          {
-              test.expectEvent(sourceBuffer, "updateend");
-              sourceBuffer.appendBuffer(mediaData);
-              test.waitForExpectedEvents(function()
-              {
-                  assert_throws({name: "QuotaExceededError"},
-                      function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
-                      "addSourceBuffer must throw an exception if the MediaSource has already received init segments for all sourcebuffers added at the time");
-                  test.done();
-              });
-          }, "Test addSourceBuffer() throws QuotaExceededError after MediaSource has completed init.");
-
-          mediasource_testafterdataloaded(function(test, mediaElement, mediaSource, segmentInfo, sourceBuffer, mediaData)
-          {
-              var initSegment = MediaSourceUtil.extractSegmentData(mediaData, segmentInfo.init);
-              test.expectEvent(sourceBuffer, "updateend");
-              // Append incomplete init segment to the first SourceBuffer.
-              sourceBuffer.appendBuffer(initSegment.slice(0, initSegment.length - 1));
-              test.waitForExpectedEvents(function()
-              {
-                  // We have not added a full init segment for the first SourceBuffer yet, so MediaSource init is not yet
-                  // finished and we should be able to add/remove one more SourceBuffer.
-                  var sourceBuffer2 = mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE);
-                  mediaSource.removeSourceBuffer(sourceBuffer2);
-
-                  // Now append the rest of the init segment, this should complete the initialization of the MediaSource.
-                  test.expectEvent(sourceBuffer, "updateend");
-                  test.expectEvent(mediaElement, "loadedmetadata", "mediaElement metadata.");
-                  sourceBuffer.appendBuffer(initSegment.slice(initSegment.length - 1));
-              });
-
-              test.waitForExpectedEvents(function()
-              {
-                  // MediaSource is fully initialized now, so adding new SourceBuffers is no longer possible.
-                  assert_equals(mediaElement.readyState, HTMLMediaElement.HAVE_METADATA);
-                  assert_throws({name: "QuotaExceededError"},
-                      function() { mediaSource.addSourceBuffer(MediaSourceUtil.AUDIO_VIDEO_TYPE); },
-                      "addSourceBuffer must throw an exception if the media element has already reached HAVE_METADATA");
-                  test.done();
-              });
-          }, "Test addSourceBuffer() succeeds while incomplete init segment is appended, fails after MediaSource init completed.");
-        </script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported-expected.txt b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported-expected.txt
deleted file mode 100644
index 35e804b..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported-expected.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-This is a testharness.js-based test.
-Harness Error. harness_status.status = 1 , harness_status.message = 1 duplicate test name: "Test invalid mismatch between minor type and codec ID "video/webm;codecs="mp4a.40.2"""
-PASS Test invalid MIME format "video"
-PASS Test invalid MIME format "video/"
-PASS Test invalid MIME format "video/webm"
-PASS Test invalid MIME format "video/webm;"
-PASS Test invalid MIME format "video/webm;codecs"
-PASS Test invalid MIME format "video/webm;codecs="
-PASS Test invalid MIME format "video/webm;codecs=""
-PASS Test invalid MIME format "video/webm;codecs="""
-PASS Test invalid MIME format "video/webm;codecs=",""
-PASS Test invalid MIME format "unsupported_mediatype"
-PASS Test invalid MIME format ""
-PASS Test invalid MIME format "null"
-PASS Test invalid mismatch between major type and codec ID "audio/webm;codecs="vp8""
-PASS Test invalid mismatch between major type and codec ID "audio/mp4;codecs="avc1.4d001e""
-PASS Test invalid mismatch between minor type and codec ID "audio/mp4;codecs="vorbis""
-PASS Test invalid mismatch between minor type and codec ID "audio/webm;codecs="mp4a.40.2""
-PASS Test invalid mismatch between minor type and codec ID "video/mp4;codecs="vp8""
-PASS Test invalid mismatch between minor type and codec ID "video/webm;codecs="mp4a.40.2""
-PASS Test invalid mismatch between minor type and codec ID "video/mp4;codecs="vorbis""
-PASS Test invalid mismatch between minor type and codec ID "video/webm;codecs="mp4a.40.2""
-PASS Test invalid codec ID "audio/mp4;codecs="mp4a""
-PASS Test invalid codec ID "audio/mp4;codecs="mp4a.40""
-PASS Test invalid codec ID "audio/mp4;codecs="mp4a.40.""
-PASS Test invalid codec ID "audio/mp4;codecs="mp4a.67.3""
-PASS Test valid WebM type "video/webm;codecs="vp8""
-PASS Test valid WebM type "video/webm;codecs="vorbis""
-PASS Test valid WebM type "video/webm;codecs="vp8,vorbis""
-PASS Test valid WebM type "video/webm;codecs="vorbis, vp8""
-PASS Test valid WebM type "audio/webm;codecs="vorbis""
-PASS Test valid WebM type "AUDIO/WEBM;CODECS="vorbis""
-FAIL Test valid MP4 type "video/mp4;codecs="avc1.4d001e"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "video/mp4;codecs="avc1.42001e"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "audio/mp4;codecs="mp4a.40.2"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "audio/mp4;codecs="mp4a.40.5"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "audio/mp4;codecs="mp4a.67"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "video/mp4;codecs="mp4a.40.2"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "video/mp4;codecs="avc1.4d001e,mp4a.40.2"" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "video/mp4;codecs="mp4a.40.2 , avc1.4d001e "" assert_equals: supported expected true but got false
-FAIL Test valid MP4 type "video/mp4;codecs="avc1.4d001e,mp4a.40.5"" assert_equals: supported expected true but got false
-Harness: the test ran to completion.
-
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported.html b/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported.html
deleted file mode 100644
index 83c0480..0000000
--- a/third_party/WebKit/LayoutTests/http/tests/media/media-source/mediasource-is-type-supported.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <script src="/w3c/resources/testharness.js"></script>
-        <script src="/w3c/resources/testharnessreport.js"></script>
-        <link rel='stylesheet' href='/w3c/resources/testharness.css'>
-    </head>
-    <body>
-        <div id="log"></div>
-        <script>
-          // Generate a distinct test for each type in types
-          function test_type_support(types, expectation, description)
-          {
-              for (var i = 0; i < types.length; ++i) {
-                  test(function()
-                  {
-                      assert_equals(MediaSource.isTypeSupported(types[i]),
-                                    expectation, 'supported');
-                  },  description + ' "' + types[i] + '"');
-              }
-          };
-
-          test_type_support([
-              'video',
-              'video/',
-              'video/webm',
-              'video/webm;',
-              'video/webm;codecs',
-              'video/webm;codecs=',
-              'video/webm;codecs="',
-              'video/webm;codecs=""',
-              'video/webm;codecs=","',
-              'unsupported_mediatype',
-              '',
-              null,
-          ], false, 'Test invalid MIME format');
-
-          test_type_support([
-              'audio/webm;codecs="vp8"',
-              'audio/mp4;codecs="avc1.4d001e"',
-          ], false, 'Test invalid mismatch between major type and codec ID');
-
-          test_type_support([
-              'audio/mp4;codecs="vorbis"',
-              'audio/webm;codecs="mp4a.40.2"',
-              'video/mp4;codecs="vp8"',
-              'video/webm;codecs="mp4a.40.2"',
-              'video/mp4;codecs="vorbis"',
-              'video/webm;codecs="mp4a.40.2"',
-          ], false, 'Test invalid mismatch between minor type and codec ID');
-
-          test_type_support([
-              'audio/mp4;codecs="mp4a"',
-              'audio/mp4;codecs="mp4a.40"',
-              'audio/mp4;codecs="mp4a.40."',
-              'audio/mp4;codecs="mp4a.67.3"'
-          ], false, 'Test invalid codec ID');
-
-          test_type_support([
-              'video/webm;codecs="vp8"',
-              'video/webm;codecs="vorbis"',
-              'video/webm;codecs="vp8,vorbis"',
-              'video/webm;codecs="vorbis, vp8"',
-              'audio/webm;codecs="vorbis"',
-              'AUDIO/WEBM;CODECS="vorbis"',
-          ], true, 'Test valid WebM type');
-
-          test_type_support([
-              'video/mp4;codecs="avc1.4d001e"', // H.264 Main Profile level 3.0
-              'video/mp4;codecs="avc1.42001e"', // H.264 Baseline Profile level 3.0
-              'audio/mp4;codecs="mp4a.40.2"',   // MPEG4 AAC-LC
-              'audio/mp4;codecs="mp4a.40.5"',   // MPEG4 HE-AAC
-              'audio/mp4;codecs="mp4a.67"',     // MPEG2 AAC-LC
-              'video/mp4;codecs="mp4a.40.2"',
-              'video/mp4;codecs="avc1.4d001e,mp4a.40.2"',
-              'video/mp4;codecs="mp4a.40.2 , avc1.4d001e "',
-              'video/mp4;codecs="avc1.4d001e,mp4a.40.5"',
-          ], true, 'Test valid MP4 type');
-        </script>
-    </body>
-</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html b/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html
index 29f9182..1cd739f 100644
--- a/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html
+++ b/third_party/WebKit/LayoutTests/http/tests/media/preload-conditions.html
@@ -102,9 +102,9 @@
 
   internals.setSaveDataEnabled(test.conditions.dataSaver);
   if (test.conditions.cellular)
-    internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 2.0);
+    internals.setNetworkConnectionInfoOverride(true, 'cellular3g', '4g', 100, 2.0);
   else
-    internals.setNetworkConnectionInfoOverride(true, 'wifi', 2.0);
+    internals.setNetworkConnectionInfoOverride(true, 'wifi', '4g', 100, 2.0);
   internals.settings.setForcePreloadNoneForMediaElements(test.conditions.lowEndDevice);
 
   t.add_cleanup(() => {
diff --git a/third_party/WebKit/LayoutTests/http/tests/navigation/ping-cross-origin-from-https-expected.txt b/third_party/WebKit/LayoutTests/http/tests/navigation/ping-cross-origin-from-https-expected.txt
index fa52faf..60751e8 100644
--- a/third_party/WebKit/LayoutTests/http/tests/navigation/ping-cross-origin-from-https-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/navigation/ping-cross-origin-from-https-expected.txt
@@ -1,2 +1,3 @@
+PingLoader dispatched to 'http://example.test:8000/navigation/resources/save-Ping.php?test=cross-origin-from-https'.
 CONSOLE ERROR: line 25: Mixed Content: The page at 'https://127.0.0.1:8443/navigation/resources/ping-cross-origin-from-https-target.html' was loaded over HTTPS, but requested an insecure hyperlink auditing endpoint 'http://example.test:8000/navigation/resources/save-Ping.php?test=cross-origin-from-https'. This request has been blocked; the content must be served over HTTPS.
 This page calls testRunner.notifyDone().
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-same-origin-top-navigation-without-user-gesture.html b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-same-origin-top-navigation-without-user-gesture.html
new file mode 100644
index 0000000..e106603
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-same-origin-top-navigation-without-user-gesture.html
@@ -0,0 +1,16 @@
+<html>
+<body>
+The navigation should succeed. This text shouldn't appear.
+<script>
+window.onload = function()
+{
+    try {
+        top.location = "http://127.0.0.1:8000/security/frameNavigation/resources/navigation-changed-iframe.html";
+        top.postMessage("PASS", "*");
+    } catch(e) {
+        top.postMessage("FAIL", "*");
+    }
+}
+</script>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html
index fc545868..d07fe06 100644
--- a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html
@@ -1,14 +1,14 @@
 <html>
 <body>
-The navigation should succeed. This text shouldn't appear.
+The navigation should fail. This text should be visible.
 <script>
 window.onload = function()
 {
     try {
         top.location = "http://localhost:8000/security/frameNavigation/resources/navigation-changed-iframe.html";
-        top.postMessage("PASS", "*");
-    } catch(e) {
         top.postMessage("FAIL", "*");
+    } catch(e) {
+        top.postMessage("PASS", "*");
     }
 }
 </script>
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture-expected.txt b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture-expected.txt
new file mode 100644
index 0000000..a7d62a5
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture-expected.txt
@@ -0,0 +1,2 @@
+127.0.0.1
+PASSED: Navigation succeeded.
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture.html b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture.html
new file mode 100644
index 0000000..96658d4
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-ALLOWED-same-origin-top-navigation-without-user-gesture.html
@@ -0,0 +1,25 @@
+<html>
+<head>
+<script>
+if (window.testRunner) {
+    testRunner.dumpAsText();
+    testRunner.dumpChildFramesAsText();
+    testRunner.setDumpConsoleMessages(true);
+    testRunner.waitUntilDone();
+}
+
+if (window.internals)
+    internals.runtimeFlags.setFramebustingNeedsSameOriginOrUserGesture = true;
+
+window.addEventListener("message", e => {
+  if (e.data == "PASS")
+    testRunner.notifyDone();
+  else
+    testRunner.testFailed("'top.location' threw.");
+});
+</script>
+</head>
+<body>
+<iframe src="http://localhost:8000/security/frameNavigation/resources/iframe-that-performs-same-origin-top-navigation-without-user-gesture.html"></iframe>
+</body>
+</html>
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-user-gesture-in-parent-expected.txt b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-user-gesture-in-parent-expected.txt
index 4ec5fe0..ee18088 100644
--- a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-user-gesture-in-parent-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-user-gesture-in-parent-expected.txt
@@ -1,2 +1,6 @@
-localhost
-PASSED: Navigation succeeded.
+
+
+--------
+Frame: '<!--framePath //<!--frame0-->-->'
+--------
+The navigation should fail. This text should be visible.
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture-expected.txt b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture-expected.txt
index 5a29641..3558992 100644
--- a/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture-expected.txt
@@ -1,3 +1,8 @@
-CONSOLE WARNING: line 8: Frame with URL 'http://localhost:8000/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html' attempted to navigate its top-level window with URL 'http://127.0.0.1:8000/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html'. Navigating the top-level window from a cross-origin iframe will soon require that the iframe has received a user gesture. See https://www.chromestatus.com/features/5851021045661696.
-localhost
-PASSED: Navigation succeeded.
+CONSOLE ERROR: line 8: Unsafe JavaScript attempt to initiate navigation for frame with URL 'http://127.0.0.1:8000/security/frameNavigation/xss-DENIED-top-navigation-without-user-gesture.html' from frame with URL 'http://localhost:8000/security/frameNavigation/resources/iframe-that-performs-top-navigation-without-user-gesture.html'. The frame attempting navigation is targeting its top-level window, but is neither same-origin with its target nor has it received a user gesture. See https://www.chromestatus.com/features/5851021045661696.
+
+
+
+--------
+Frame: '<!--framePath //<!--frame0-->-->'
+--------
+The navigation should fail. This text should be visible.
diff --git a/third_party/WebKit/LayoutTests/http/tests/webfont/font-display-intervention.html b/third_party/WebKit/LayoutTests/http/tests/webfont/font-display-intervention.html
index d3f8253b..1afda17e 100644
--- a/third_party/WebKit/LayoutTests/http/tests/webfont/font-display-intervention.html
+++ b/third_party/WebKit/LayoutTests/http/tests/webfont/font-display-intervention.html
@@ -22,7 +22,7 @@
 // Slow network that allows effectively 3G cellular network speed will cause an
 // User-Agent Intervention. Under the situation, 'auto' should behave as 'swap'.
 if (window.internals) {
-    internals.setNetworkQualityInfoOverride('3g', 10.0, 0.1);
+    internals.setNetworkConnectionInfoOverride(true, 'cellular3g', '3g', 2000, 0.1);
 
     // Reset the state of the singleton network state notifier.
     window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt b/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
index f5b800f..2e6abaf 100644
--- a/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
+++ b/third_party/WebKit/LayoutTests/http/tests/worklet/webexposed/global-interface-listing-paint-worklet-expected.txt
@@ -262,7 +262,6 @@
 CONSOLE MESSAGE: line 147:     method append
 CONSOLE MESSAGE: line 147:     method constructor
 CONSOLE MESSAGE: line 147:     method delete
-CONSOLE MESSAGE: line 147:     method set
 CONSOLE MESSAGE: line 147:     method update
 CONSOLE MESSAGE: line 147: interface StylePropertyMapReadOnly
 CONSOLE MESSAGE: line 147:     method constructor
@@ -553,7 +552,6 @@
 CONSOLE MESSAGE: line 147:     method append
 CONSOLE MESSAGE: line 147:     method constructor
 CONSOLE MESSAGE: line 147:     method delete
-CONSOLE MESSAGE: line 147:     method set
 CONSOLE MESSAGE: line 147:     method update
 CONSOLE MESSAGE: line 147: interface StylePropertyMapReadOnly
 CONSOLE MESSAGE: line 147:     method constructor
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp-expected.txt
new file mode 100644
index 0000000..4594afdc
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp-expected.txt
@@ -0,0 +1,6 @@
+Tests default timestamp in Input.emulateTouchFromMouseEvent uses monotonic clock.
+-----Event-----
+type: touchstart
+-----Verify-----
+Event timestamp is larger than initial timestamp.
+
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp.js b/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp.js
new file mode 100644
index 0000000..985d309
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/input/emulateTouchFromMouseEvent-defaultTimestamp.js
@@ -0,0 +1,51 @@
+(async function(testRunner) {
+  var {page, session, dp} = await testRunner.startBlank(`Tests default timestamp in Input.emulateTouchFromMouseEvent uses monotonic clock.`);
+
+  await session.evaluate(`
+    var logs = [];
+    function log(text) {
+      logs.push(text);
+    }
+
+    var resolve;
+    var verifyTimestampsPromise = new Promise(f => resolve = f);
+    var initalTimestamp = performance.now();
+
+    function logEvent(event) {
+      log('-----Event-----');
+      log('type: ' + event.type);  // Should be mousedown
+      verifyEventTimestamp(event.timeStamp);
+    }
+
+    function verifyEventTimestamp(eventTimestamp) {
+      log('-----Verify-----');
+      if (eventTimestamp > initalTimestamp) {
+        log('Event timestamp is larger than initial timestamp.');
+      } else {
+        log('Event timestamp is not larger than initial timestamp.');
+      }
+      resolve(logs.join('\\n'));
+    }
+
+    window.addEventListener('touchstart', logEvent, {passive: false});
+  `);
+  function dumpError(message) {
+    if (message.error)
+      testRunner.fail(message.error.message);
+  }
+
+  await dp.Emulation.setTouchEmulationEnabled({enabled: true});
+  await dp.Emulation.setEmitTouchEventsForMouse({enabled: true});
+
+  // We leave out timestamp as a param so default timestamp would be used.
+  dumpError(await dp.Input.emulateTouchFromMouseEvent({
+    type: 'mousePressed',
+    button: 'left',
+    clickCount: 1,
+    x: 100,
+    y: 200
+  }));
+
+  testRunner.log(await session.evaluateAsync('verifyTimestampsPromise'));
+  testRunner.completeTest();
+})
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile-expected.txt
new file mode 100644
index 0000000..1664a79a
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile-expected.txt
@@ -0,0 +1,5 @@
+Test sampling native memory profiler.
+Sampling started
+Sampling stopped
+Found sample: true
+
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile.js b/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile.js
new file mode 100644
index 0000000..e054cca
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/memory/sampling-native-profile.js
@@ -0,0 +1,28 @@
+(async function(testRunner) {
+  var {page, session, dp} = await testRunner.startBlank(`Test sampling native memory profiler.`);
+
+  await dp.Memory.startSampling({
+      samplingInterval: 100000, suppressRandomness: true});
+  testRunner.log('Sampling started');
+  await session.evaluate(`
+    const canvas = document.createElement('canvas');
+    canvas.width = 500;
+    canvas.height = 200;
+    const ctx = canvas.getContext('2d');
+    ctx.fillStyle = 'green';
+    ctx.fillRect(0, 0, 10, 10);
+    document.body.appendChild(canvas);
+    `);
+  const message = await dp.Memory.getSamplingProfile();
+  await dp.Memory.stopSampling();
+  testRunner.log('Sampling stopped');
+
+  const profile = message.result.profile;
+  const foundTheSample = profile.samples.some(sample =>
+    sample.size >= 500 * 200 && sample.stack.some(frame => frame.includes('HTMLCanvasElement')));
+  testRunner.log('Found sample: ' + foundTheSample);
+  if (!foundTheSample)
+    testRunner.log(profile);
+
+  testRunner.completeTest();
+})
diff --git a/third_party/WebKit/LayoutTests/media/autoplay-muted-conditions.html b/third_party/WebKit/LayoutTests/media/autoplay-muted-conditions.html
index 8a0e837..cfef21f4 100644
--- a/third_party/WebKit/LayoutTests/media/autoplay-muted-conditions.html
+++ b/third_party/WebKit/LayoutTests/media/autoplay-muted-conditions.html
@@ -84,9 +84,9 @@
 
   internals.setSaveDataEnabled(test.conditions.dataSaver);
   if (test.conditions.cellular)
-    internals.setNetworkConnectionInfoOverride(true, 'cellular3g', 2.0);
+    internals.setNetworkConnectionInfoOverride(true, 'cellular3g', '4g', 100, 2.0);
   else
-    internals.setNetworkConnectionInfoOverride(true, 'wifi', 2.0);
+    internals.setNetworkConnectionInfoOverride(true, 'wifi', '4g', 100, 2.0);
   internals.settings.setForcePreloadNoneForMediaElements(test.conditions.lowEndDevice);
 
   // Generic required settings.
diff --git a/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive-expected.html b/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive-expected.html
index d8bb3eac..4bbb51b 100644
--- a/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive-expected.html
+++ b/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive-expected.html
@@ -2,7 +2,8 @@
 <html>
 <body>
 
-<h1>No image should be shown.</h1>
-
+<h1>Broken image should be shown.</h1>
+<!-- Invalid url to force display of a broken image -->
+<img src="//["></img>
 </body>
 </html>
diff --git a/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive.mht b/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive.mht
index e8cf085..fb5c425 100644
--- a/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive.mht
+++ b/third_party/WebKit/LayoutTests/mhtml/resource_not_found_in_archive.mht
@@ -15,7 +15,7 @@
 </head>
 <body>
 
-<h1>No image should be shown.</h1>
+<h1>Broken image should be shown.</h1>
 <img src="http://localhost/resources/red-square.png">
 
 </body></html>
diff --git a/third_party/WebKit/LayoutTests/netinfo/basic-operation.html b/third_party/WebKit/LayoutTests/netinfo/basic-operation.html
index bd1c5fbb..d8396ac 100644
--- a/third_party/WebKit/LayoutTests/netinfo/basic-operation.html
+++ b/third_party/WebKit/LayoutTests/netinfo/basic-operation.html
@@ -39,11 +39,11 @@
     shouldBe('connection.downlink', 'initialDownlink', false, initialDownlinkMaxNoise);
     connection.removeEventListener('change', changeListener);
     connection.addEventListener('typechange', typeChangeListener);
-	internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialDownlinkMax);
+	internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialEffectiveType, initialRtt, initialDownlinkMax);
 }
 
 connection.addEventListener('change', changeListener);
-internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, initialEffectiveType, initialRtt, newDownlinkMax);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/connection-types.html b/third_party/WebKit/LayoutTests/netinfo/connection-types.html
index 0cfb753..3b291076 100644
--- a/third_party/WebKit/LayoutTests/netinfo/connection-types.html
+++ b/third_party/WebKit/LayoutTests/netinfo/connection-types.html
@@ -47,7 +47,7 @@
 }
 
 for(var i = 0; i < types.length; i++)
-  internals.setNetworkConnectionInfoOverride(isTypeOnline(types[i][0]), convertType(types[i][0]), types[i][1]);
+  internals.setNetworkConnectionInfoOverride(isTypeOnline(types[i][0]), convertType(types[i][0]), initialEffectiveType, initialRtt, types[i][1]);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation-expected.txt b/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation-expected.txt
index 712450a..94a51ab5 100644
--- a/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation-expected.txt
+++ b/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation-expected.txt
@@ -16,14 +16,14 @@
 PASS connection.downlinkMax is initialDownlinkMax
 PASS connection.effectiveType is newEffectiveType
 PASS connection.rtt is newRtt
-PASS connection.downlink is newDownlink
+PASS connection.downlink is newDownlinkMax
 PASS typeof connection.type is "string"
 PASS connection.type is newConnectionType
 PASS connection.saveData is false
 PASS connection.downlinkMax is newDownlinkMax
 PASS connection.effectiveType is newEffectiveType
 PASS connection.rtt is newRtt
-PASS connection.downlink is newDownlink
+PASS connection.downlink is newDownlinkMax
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation.html b/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation.html
index f82a3b3..2b06ca38 100644
--- a/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation.html
+++ b/third_party/WebKit/LayoutTests/netinfo/estimate-basic-operation.html
@@ -25,7 +25,7 @@
     shouldBe('connection.downlinkMax', 'newDownlinkMax');
     shouldBe('connection.effectiveType', 'newEffectiveType');
     shouldBe('connection.rtt', 'newRtt', false, newRttMaxNoise);
-    shouldBe('connection.downlink', 'newDownlink', false, newDownlinkMaxNoise);
+    shouldBe('connection.downlink', 'newDownlinkMax', false, newDownlinkMaxNoise);
     finishJSTest();
 }
 
@@ -36,14 +36,14 @@
     shouldBe('connection.downlinkMax', 'initialDownlinkMax');
     shouldBe('connection.effectiveType', 'newEffectiveType');
     shouldBe('connection.rtt', 'newRtt', false, newRttMaxNoise);
-    shouldBe('connection.downlink', 'newDownlink', false, newDownlinkMaxNoise);
+    shouldBe('connection.downlink', 'newDownlinkMax', false, newDownlinkMaxNoise);
     connection.removeEventListener('change', changeListener);
     connection.addEventListener('typechange', typeChangeListener);
-    internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
+    internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newEffectiveType, newRtt, newDownlinkMax);
 }
 
 connection.addEventListener('change', changeListener);
-internals.setNetworkQualityInfoOverride(newEffectiveType, newRtt, newDownlink);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, newEffectiveType, newRtt, initialDownlinkMax);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/estimate-multiple-frames.html b/third_party/WebKit/LayoutTests/netinfo/estimate-multiple-frames.html
index 9928ef2..56e2456 100644
--- a/third_party/WebKit/LayoutTests/netinfo/estimate-multiple-frames.html
+++ b/third_party/WebKit/LayoutTests/netinfo/estimate-multiple-frames.html
@@ -41,7 +41,7 @@
         testFailed("Event fired but effectiveType not yet changed.");
     if (Math.abs(connection.rtt - newRtt) > newRttMaxNoise)
         testFailed("Event fired but rtt not yet changed.");
-    if (Math.abs(connection.downlink - newDownlink) > newDownlinkMaxNoise)
+    if (Math.abs(connection.downlink - newDownlinkMax) > newDownlinkMaxNoise)
         testFailed("Event fired but downlink not yet changed.");
     if (!hasChildFrameEventFired && childConnection.rtt != initialRtt)
         testFailed("Child frame rtt changed before firing its event.");
@@ -54,7 +54,7 @@
         testFailed("Child frame fired event but effectiveType not yet changed.");
     if (Math.abs(childConnection.rtt - newRtt) > newRttMaxNoise)
         testFailed("Child frame fired event but rtt not yet changed.");
-    if (Math.abs(childConnection.downlink - newDownlink) > newDownlinkMaxNoise)
+    if (Math.abs(childConnection.downlink - newDownlinkMax) > newDownlinkMaxNoise)
         testFailed("Child frame fired event but downlink not yet changed.");
     if (!hasMainFrameEventFired && connection.rtt != initialRtt)
         testFailed("Main frame rtt changed before firing its event.");
@@ -71,7 +71,7 @@
 connection.addEventListener('change', mainFrameListener);
 childConnection.addEventListener('change', childFrameListener);
 
-internals.setNetworkQualityInfoOverride(newEffectiveType, newRtt, newDownlink);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, newEffectiveType, newRtt, newDownlinkMax);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/estimate-web-worker.html b/third_party/WebKit/LayoutTests/netinfo/estimate-web-worker.html
index c99fe1cd..363514b 100644
--- a/third_party/WebKit/LayoutTests/netinfo/estimate-web-worker.html
+++ b/third_party/WebKit/LayoutTests/netinfo/estimate-web-worker.html
@@ -19,11 +19,11 @@
     if (msg_count == 0) {
         verifyOnChangeMessage(e.data, connection.type, connection.downlinkMax,
             connection.effectiveType, connection.rtt, connection.downlink);
-       internals.setNetworkQualityInfoOverride(newEffectiveType, newRtt, newDownlink);
+       internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, newEffectiveType, newRtt, newDownlinkMax);
     } else if (msg_count == 1) {
         verifyOnChangeMessage(e.data, connection.type, connection.downlinkMax,
             newEffectiveType, connection.rtt, connection.downlink);
-        internals.setNetworkQualityInfoOverride(initialEffectiveType, initialRtt, initialDownlink);
+        internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialEffectiveType, initialRtt, initialDownlink);
     } else if (msg_count == 2) {
         verifyOnChangeMessage(e.data, connection.type, connection.downlinkMax,
             initialEffectiveType, connection.rtt, connection.downlink);
diff --git a/third_party/WebKit/LayoutTests/netinfo/multiple-frames.html b/third_party/WebKit/LayoutTests/netinfo/multiple-frames.html
index 9e8bacb2..f1886f3 100644
--- a/third_party/WebKit/LayoutTests/netinfo/multiple-frames.html
+++ b/third_party/WebKit/LayoutTests/netinfo/multiple-frames.html
@@ -53,7 +53,7 @@
 connection.addEventListener('change', mainFrameListener);
 childConnection.addEventListener('change', childFrameListener);
 
-internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, initialEffectiveType, initialRtt, newDownlinkMax);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/network-quality.html b/third_party/WebKit/LayoutTests/netinfo/network-quality.html
index 6affacaa..6f0ad01 100644
--- a/third_party/WebKit/LayoutTests/netinfo/network-quality.html
+++ b/third_party/WebKit/LayoutTests/netinfo/network-quality.html
@@ -39,7 +39,7 @@
 });
 
 for(var i = 0; i < values.length; i++)
-  internals.setNetworkQualityInfoOverride(values[i][0], values[i][1], values[i][2]);
+  internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, values[i][0], values[i][1], values[i][2]);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/resources/netinfo_common.js b/third_party/WebKit/LayoutTests/netinfo/resources/netinfo_common.js
index e207801d..b486b99c 100644
--- a/third_party/WebKit/LayoutTests/netinfo/resources/netinfo_common.js
+++ b/third_party/WebKit/LayoutTests/netinfo/resources/netinfo_common.js
@@ -24,8 +24,8 @@
 
 // Suppress connection messages information from the host.
 if (window.internals) {
-    internals.setNetworkConnectionInfoOverride(true, initialType, initialDownlinkMax);
-    internals.setNetworkQualityInfoOverride(initialEffectiveType, initialRtt, initialDownlink);
+    internals.setNetworkConnectionInfoOverride(true, initialType,
+        initialEffectiveType, initialRtt, initialDownlinkMax);
 
     // Reset the state of the singleton network state notifier.
     window.addEventListener('beforeunload', function() {
diff --git a/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener-expected.txt b/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener-expected.txt
index 3e3a65d..28ddab5 100644
--- a/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener-expected.txt
+++ b/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener-expected.txt
@@ -7,7 +7,7 @@
 PASS connection.downlinkMax is newDownlinkMax
 PASS connection.effectiveType is newEffectiveType
 PASS connection.rtt is newRtt
-PASS connection.downlink is newDownlink
+PASS connection.downlink is newDownlinkMax
 PASS successfullyParsed is true
 
 TEST COMPLETE
diff --git a/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener.html b/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener.html
index 066a998..f158161 100644
--- a/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener.html
+++ b/third_party/WebKit/LayoutTests/netinfo/type-change-no-listener.html
@@ -7,13 +7,12 @@
 <script>
 description('Tests that the type changes without an active listener');
 
-internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
-internals.setNetworkQualityInfoOverride(newEffectiveType, newRtt, newDownlink);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newEffectiveType, newRtt, newDownlinkMax);
 shouldBe('connection.type', 'newConnectionType');
 shouldBe('connection.downlinkMax', 'newDownlinkMax');
 shouldBe('connection.effectiveType', 'newEffectiveType');
 shouldBe('connection.rtt', 'newRtt', false, newRttMaxNoise);
-shouldBe('connection.downlink', 'newDownlink', false, newDownlinkMaxNoise);
+shouldBe('connection.downlink', 'newDownlinkMax', false, newDownlinkMaxNoise);
 
 finishJSTest();
 </script>
diff --git a/third_party/WebKit/LayoutTests/netinfo/unregister-during-event.html b/third_party/WebKit/LayoutTests/netinfo/unregister-during-event.html
index db9e305..48c2c625 100644
--- a/third_party/WebKit/LayoutTests/netinfo/unregister-during-event.html
+++ b/third_party/WebKit/LayoutTests/netinfo/unregister-during-event.html
@@ -29,11 +29,11 @@
     shouldBe('connection.downlink', 'initialDownlink', false, initialDownlinkMaxNoise);
     connection.removeEventListener('change', handler);
     connection.addEventListener('change', otherHandler);
-    internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialDownlinkMax);
+    internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialEffectiveType, initialRtt, initialDownlinkMax);
 };
 
 connection.addEventListener('change', handler);
-internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
+internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, initialEffectiveType, initialRtt, newDownlinkMax);
 
 </script>
 </body>
diff --git a/third_party/WebKit/LayoutTests/netinfo/web-worker.html b/third_party/WebKit/LayoutTests/netinfo/web-worker.html
index 5cb9171..de586b6 100644
--- a/third_party/WebKit/LayoutTests/netinfo/web-worker.html
+++ b/third_party/WebKit/LayoutTests/netinfo/web-worker.html
@@ -20,11 +20,11 @@
         verifyOnChangeMessage(e.data, connection.type,
             connection.downlinkMax, connection.effectiveType,
             connection.rtt, connection.downlink);
-        internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType, newDownlinkMax);
+        internals.setNetworkConnectionInfoOverride(isTypeOnline(newConnectionType), newConnectionType,initialEffectiveType, initialRtt, newDownlinkMax);
     } else if (msg_count == 1) {
         verifyOnChangeMessage(e.data, newConnectionType, newDownlinkMax,
             connection.effectiveType, connection.rtt, connection.downlink);
-        internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialDownlinkMax);
+        internals.setNetworkConnectionInfoOverride(isTypeOnline(initialType), initialType, initialEffectiveType, initialRtt, initialDownlinkMax);
     } else if (msg_count == 2) {
         verifyOnChangeMessage(e.data, initialType, initialDownlinkMax,
             connection.effectiveType, connection.rtt, connection.downlink);
diff --git a/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-border-radius-expected.png
new file mode 100644
index 0000000..0ec575b
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/linux/plugins/webview-plugin-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.png
new file mode 100644
index 0000000..93e66da
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.txt
new file mode 100644
index 0000000..3a1f232
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/mac/plugins/webview-plugin-border-radius-expected.txt
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x180
+  LayoutBlockFlow {HTML} at (0,0) size 800x180
+    LayoutBlockFlow {BODY} at (8,8) size 784x164
+      LayoutText {#text} at (0,0) size 0x0
+layer at (8,8) size 160x160 clip at (13,13) size 150x150
+  LayoutEmbeddedObject {EMBED} at (0,0) size 160x160 [border: (5px solid #000000)]
diff --git a/third_party/WebKit/LayoutTests/platform/win/plugins/webview-plugin-border-radius-expected.png b/third_party/WebKit/LayoutTests/platform/win/plugins/webview-plugin-border-radius-expected.png
new file mode 100644
index 0000000..0d0144ce
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/platform/win/plugins/webview-plugin-border-radius-expected.png
Binary files differ
diff --git a/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius-expected.txt b/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius-expected.txt
new file mode 100644
index 0000000..32a16ea
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius-expected.txt
@@ -0,0 +1,8 @@
+layer at (0,0) size 800x600
+  LayoutView at (0,0) size 800x600
+layer at (0,0) size 800x181
+  LayoutBlockFlow {HTML} at (0,0) size 800x181
+    LayoutBlockFlow {BODY} at (8,8) size 784x165
+      LayoutText {#text} at (0,0) size 0x0
+layer at (8,8) size 160x160 clip at (13,13) size 150x150
+  LayoutEmbeddedObject {EMBED} at (0,0) size 160x160 [border: (5px solid #000000)]
diff --git a/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius.html b/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius.html
new file mode 100644
index 0000000..e90acd0
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/plugins/webview-plugin-border-radius.html
@@ -0,0 +1,26 @@
+<!doctype HTML>
+<style>
+  #plugin {
+    width: 150px;
+    height: 150px;
+    border: 5px solid black;
+    border-radius: 20px;
+  }
+</style>
+<embed id="plugin" type="application/x-plugin-placeholder-test"></embed>
+<script>
+onload = function() {
+    if (window.testRunner) {
+        window.testRunner.waitUntilDone();
+        // Need to paint two frames in order to allow the plugin to properly load.
+        // TODO(chrishtr): find out why and fix.
+        requestAnimationFrame(function() {
+            requestAnimationFrame(function() {
+                requestAnimationFrame(function() {
+                    window.testRunner.notifyDone();
+                });
+            });
+        });
+    }
+}
+</script>
\ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js b/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js
index 0207cd32..0b2381b 100644
--- a/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js
+++ b/third_party/WebKit/LayoutTests/sensor/resources/generic-sensor-tests.js
@@ -19,7 +19,23 @@
 
       sensorObject.onerror = wrapper.callback;
     });
-  }, `${sensorType.name}: Test that onerror is send when sensor is not supported.`);
+  }, `${sensorType.name}: Test that onerror is sent when sensor is not supported.`);
+
+  sensor_test(sensor => {
+    sensor.mockSensorProvider.setPermissionsDenied(true);
+    let sensorObject = new sensorType;
+    sensorObject.start();
+    return new Promise((resolve, reject) => {
+      let wrapper = new CallbackWrapper(event => {
+        assert_false(sensorObject.activated);
+        assert_equals(event.error.name, 'NotAllowedError');
+        sensorObject.onerror = null;
+        resolve();
+      }, reject);
+
+      sensorObject.onerror = wrapper.callback;
+    });
+  }, `${sensorType.name}: Test that onerror is sent when permissions are not granted.`);
 
   sensor_test(async sensor => {
     let sensorObject = new sensorType({frequency: 560});
diff --git a/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js b/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
index feb56ec6..3e2a8c5 100644
--- a/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
+++ b/third_party/WebKit/LayoutTests/sensor/resources/sensor-helpers.js
@@ -216,6 +216,7 @@
       this.sharedBufferHandle_ = rv.handle;
       this.activeSensor_ = null;
       this.getSensorShouldFail_ = false;
+      this.permissionsDenied_ = false;
       this.resolveFunc_ = null;
       this.isContinuous_ = false;
       this.maxFrequency_ = 60;
@@ -233,7 +234,12 @@
     // Returns initialized Sensor proxy to the client.
     async getSensor(type) {
       if (this.getSensorShouldFail_) {
-        return {initParams: null};
+        return {result: device.mojom.SensorCreationResult.ERROR_NOT_AVAILABLE,
+                initParams: null};
+      }
+      if (this.permissionsDenied_) {
+        return {result: device.mojom.SensorCreationResult.ERROR_NOT_ALLOWED,
+                initParams: null};
       }
 
       let offset = (device.mojom.SensorType.LAST - type) *
@@ -280,7 +286,8 @@
         this.resolveFunc_(this.activeSensor_);
       }
 
-      return {initParams};
+      return {result: device.mojom.SensorCreationResult.SUCCESS,
+              initParams: initParams};
     }
 
     // Binds object to mojo message pipe
@@ -301,6 +308,7 @@
       }
 
       this.getSensorShouldFail_ = false;
+      this.permissionsDenied_ = false;
       this.resolveFunc_ = null;
       this.maxFrequency_ = 60;
       this.minFrequency_ = 1;
@@ -315,6 +323,10 @@
       this.getSensorShouldFail_ = shouldFail;
     }
 
+    setPermissionsDenied(permissionsDenied) {
+      this.permissionsDenied_ = permissionsDenied;
+    }
+
     // Returns mock sensor that was created in getSensor to the layout test.
     getCreatedSensor() {
       if (this.activeSensor_ != null) {
diff --git a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-active.html b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-active.html
index 4869f98e..3bd9059 100644
--- a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-active.html
+++ b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-active.html
@@ -15,7 +15,7 @@
         }
         a:active {
             background-color: rgb(0,0,255);
-        }        
+        }
     </style>
 </head>
 
@@ -36,15 +36,16 @@
     ['sandbox', 'link1', 'link2', 'link3'].forEach(function(a) {
         e[a] = document.getElementById(a);
     });
-    
+
     var curElement;
-    
+    var uniqueId = 1234;
+
     function isLinkActive()
     {
         // These need to match the background-color used above, after round-tripping.
         var defaultColor = "rgb(255, 255, 255)";
         var activeColor = "rgb(0, 0, 255)";
-    
+
         color = window.getComputedStyle(curElement).backgroundColor;
         if (color == activeColor)
             return true;
@@ -52,14 +53,24 @@
             testFailed('Got unexpected backgroundColor: ' + color);
         return false;
     }
-    
+
     function testTapDown(touchpoint, element)
     {
         curElement = element;
         if (isLinkActive()) testFailed('Link unexpectedly active on entry');
-        eventSender.gestureShowPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+
+        eventSender.addTouchPoint(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+        eventSender.touchStart(uniqueId + 1);
+        eventSender.releaseTouchPoint(0);
+        eventSender.touchEnd(uniqueId + 2);
+        eventSender.gestureTapDown(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 1);
+        eventSender.gestureShowPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 2);
+
         shouldBeTrue("isLinkActive()");
-        eventSender.gestureTapCancel(touchpoint.x, touchpoint.y);
+
+        eventSender.gestureTapCancel(touchpoint.x, touchpoint.y, uniqueId + 2);
+
+        uniqueId += 2;
         if (isLinkActive()) testFailed('Link unexpectedly active on exit');
     }
 
@@ -82,7 +93,7 @@
         }
         return false;
     }
-    
+
     function testIndirectTouch(element)
     {
         // Touch just right of the element.
@@ -117,8 +128,8 @@
         if (!window.eventSender.gestureShowPress) {
             debug('GestureShowPress not supported by this platform');
             return;
-        } 
-          
+        }
+
         description('Tests that tapDown will trigger the active state.');
         testIndirectTouches();
         testDirectTouches();
diff --git a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-longpress.html b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-longpress.html
index c737d0cd..daec62d 100644
--- a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-longpress.html
+++ b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-longpress.html
@@ -31,7 +31,9 @@
         e[a] = document.getElementById(a);
     });
 
-    document.ondragstart = function(e) { debug("PASS"); e.preventDefault();}
+    document.ondragstart = function(event) { debug("PASS"); event.preventDefault();}
+
+    var uniqueId = 1234;
 
     function testLongPress(touchpoint)
     {
@@ -40,9 +42,22 @@
             // instead.
             // The first long press selects the text. The second long press will
             // initiate drag and drop.
-            eventSender.gestureLongPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+            eventSender.addTouchPoint(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+            eventSender.touchStart(uniqueId + 1);
+            eventSender.releaseTouchPoint(0);
+            eventSender.touchEnd(uniqueId + 2);
+            eventSender.gestureTapDown(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 1);
+            eventSender.gestureLongPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 2);
+
             eventSender.leapForward(100);
-            eventSender.gestureLongPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+
+            eventSender.addTouchPoint(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+            eventSender.touchStart(uniqueId + 3);
+            eventSender.releaseTouchPoint(0);
+            eventSender.touchEnd(uniqueId + 4);
+            eventSender.gestureTapDown(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 3);
+            eventSender.gestureLongPress(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 4);
+            uniqueId += 4;
         }
         else
             debug("gestureLongPress not implemented by this platform.");
diff --git a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-two-finger-tap.html b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-two-finger-tap.html
index 178e151..02ac660 100644
--- a/third_party/WebKit/LayoutTests/touchadjustment/touch-links-two-finger-tap.html
+++ b/third_party/WebKit/LayoutTests/touchadjustment/touch-links-two-finger-tap.html
@@ -25,6 +25,7 @@
 <script>
     var element;
     var adjustedNode;
+    var uniqueId = 1234;
     // Set up shortcut access to elements
     var e = {};
     ['sandbox', 'link1', 'link2', 'link3'].forEach(function(a) {
@@ -35,8 +36,20 @@
 
     function testTwoFingerTap(touchpoint)
     {
-        if (eventSender.gestureTwoFingerTap)
+        if (eventSender.gestureTwoFingerTap) {
+
+            eventSender.addTouchPoint(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+            eventSender.touchStart(uniqueId + 1);
+            eventSender.addTouchPoint(touchpoint.x + 20, touchpoint.y  + 20, touchpoint.width, touchpoint.height);
+            eventSender.touchStart(uniqueId + 2);
+            eventSender.releaseTouchPoint(1);
+            eventSender.touchEnd(uniqueId + 3);
+            eventSender.releaseTouchPoint(0);
+            eventSender.touchEnd(uniqueId + 4);
+            eventSender.gestureTapDown(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height, uniqueId + 1);
             eventSender.gestureTwoFingerTap(touchpoint.x, touchpoint.y, touchpoint.width, touchpoint.height);
+            uniqueId += 4;
+        }
         else
             debug("gestureTwoFingerTap not implemented by this platform.");
     }
diff --git a/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html b/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html
index 642c98aa..d2d082d 100644
--- a/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html
+++ b/third_party/WebKit/LayoutTests/virtual/scroll_customization/fast/scroll-behavior/scroll-customization/scroll-customization-property.html
@@ -187,9 +187,8 @@
         source: 'touch',
         actions: [
         { name: 'pointerDown', x: startingX, y: startingY },
-        //{ name: 'pause', duration: pauseSeconds},
         { name: 'pointerMove', x: (startingX + deltaX),
-        y: (startingY + deltaY)},
+          y: (startingY + deltaY)},
         { name: 'pause', duration: pauseSeconds},
         { name: 'pointerUp'}
         ]
diff --git a/third_party/WebKit/Source/bindings/bindings.gni b/third_party/WebKit/Source/bindings/bindings.gni
index 4afa9a8..56f5726 100644
--- a/third_party/WebKit/Source/bindings/bindings.gni
+++ b/third_party/WebKit/Source/bindings/bindings.gni
@@ -197,7 +197,7 @@
           "core/v8/ScriptPromiseResolverTest.cpp",
           "core/v8/ScriptPromiseTest.cpp",
           "core/v8/ScriptStreamerTest.cpp",
-          "core/v8/ScriptWrappableVisitorTest.cpp",
+          "core/v8/ScriptWrappableMarkingVisitorTest.cpp",
           "core/v8/ToV8Test.cpp",
           "core/v8/TraceWrapperMemberTest.cpp",
           "core/v8/V8BindingForTesting.cpp",
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableMarkingVisitorTest.cpp
similarity index 96%
rename from third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
rename to third_party/WebKit/Source/bindings/core/v8/ScriptWrappableMarkingVisitorTest.cpp
index 0671710..78da3da9 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableVisitorTest.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptWrappableMarkingVisitorTest.cpp
@@ -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 "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 
 #include "bindings/core/v8/ToV8ForCore.h"
 #include "bindings/core/v8/V8BindingForTesting.h"
@@ -26,15 +26,6 @@
   V8GCController::CollectGarbage(isolate, false);
 }
 
-static bool DequeContains(const WTF::Deque<WrapperMarkingData>& deque,
-                          void* needle) {
-  for (auto item : deque) {
-    if (item.RawObjectPointer() == needle)
-      return true;
-  }
-  return false;
-}
-
 TEST(ScriptWrappableMarkingVisitorTest,
      ScriptWrappableMarkingVisitorTracesWrappers) {
   V8TestingScope scope;
@@ -240,7 +231,7 @@
   target->AddWrappedHashMapDependency(dependencies[2], dependencies[3]);
 
   for (int i = 0; i < 4; i++) {
-    EXPECT_TRUE(DequeContains(*visitor->MarkingDeque(), dependencies[i]));
+    EXPECT_TRUE(visitor->MarkingDequeContains(dependencies[i]));
   }
 
   visitor->AbortTracing();
@@ -418,8 +409,8 @@
   EXPECT_TRUE(visitor->MarkingDeque()->IsEmpty());
   swap(vector1, vector2);
 
-  EXPECT_TRUE(DequeContains(*visitor->MarkingDeque(), entry1));
-  EXPECT_TRUE(DequeContains(*visitor->MarkingDeque(), entry2));
+  EXPECT_TRUE(visitor->MarkingDequeContains(entry1));
+  EXPECT_TRUE(visitor->MarkingDequeContains(entry2));
 
   visitor->AbortTracing();
 }
@@ -444,7 +435,7 @@
 
   // Only entry2 is held alive by TraceWrapperMember, so we only expect this
   // barrier to fire.
-  EXPECT_TRUE(DequeContains(*visitor->MarkingDeque(), entry2));
+  EXPECT_TRUE(visitor->MarkingDequeContains(entry2));
 
   visitor->AbortTracing();
 }
@@ -525,7 +516,7 @@
   TraceWrapperMember<Mixin> mixin_handle = mixin;
   EXPECT_TRUE(base_header->IsWrapperHeaderMarked());
   EXPECT_FALSE(visitor->MarkingDeque()->IsEmpty());
-  EXPECT_TRUE(DequeContains(*visitor->MarkingDeque(), mixin));
+  EXPECT_TRUE(visitor->MarkingDequeContains(mixin));
 
   visitor->AdvanceTracing(
       0, v8::EmbedderHeapTracer::AdvanceTracingActions(
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
index d790900..61c684f 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8GCController.cpp
@@ -46,7 +46,7 @@
 #include "core/html/imports/HTMLImportsController.h"
 #include "core/inspector/InspectorTraceEvents.h"
 #include "platform/Histogram.h"
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/WrapperTypeInfo.h"
 #include "platform/instrumentation/tracing/TraceEvent.h"
 #include "platform/wtf/allocator/Partitions.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
index 5a26332..44558f7 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8Initializer.cpp
@@ -55,7 +55,7 @@
 #include "core/workers/WorkerGlobalScope.h"
 #include "platform/EventDispatchForbiddenScope.h"
 #include "platform/bindings/DOMWrapperWorld.h"
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/V8PerContextData.h"
 #include "platform/bindings/V8PrivateProperty.h"
 #include "platform/instrumentation/tracing/TraceEvent.h"
diff --git a/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLAllCollectionCustom.cpp b/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLAllCollectionCustom.cpp
index 78a4e46..2561c4f 100644
--- a/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLAllCollectionCustom.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/custom/V8HTMLAllCollectionCustom.cpp
@@ -33,32 +33,12 @@
 #include "bindings/core/v8/V8BindingForCore.h"
 #include "bindings/core/v8/V8Element.h"
 #include "bindings/core/v8/V8NodeList.h"
-#include "core/dom/StaticNodeList.h"
 #include "core/frame/UseCounter.h"
 #include "core/html/HTMLAllCollection.h"
 
 namespace blink {
 
 template <class CallbackInfo>
-static v8::Local<v8::Value> GetNamedItems(HTMLAllCollection* collection,
-                                          AtomicString name,
-                                          const CallbackInfo& info) {
-  HeapVector<Member<Element>> named_items;
-  collection->NamedItems(name, named_items);
-
-  if (!named_items.size())
-    return V8Undefined();
-
-  if (named_items.size() == 1)
-    return ToV8(named_items.at(0).Release(), info.Holder(), info.GetIsolate());
-
-  // FIXME: HTML5 specification says this should be a HTMLCollection.
-  // http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmlallcollection
-  return ToV8(StaticElementList::Adopt(named_items), info.Holder(),
-              info.GetIsolate());
-}
-
-template <class CallbackInfo>
 static v8::Local<v8::Value> GetItem(
     HTMLAllCollection* collection,
     v8::Local<v8::Value> argument,
@@ -72,11 +52,14 @@
     UseCounter::Count(CurrentExecutionContext(info.GetIsolate()),
                       named_feature);
     TOSTRING_DEFAULT(V8StringResource<>, name, argument,
-                     v8::Undefined(info.GetIsolate()));
-    v8::Local<v8::Value> result = GetNamedItems(collection, name, info);
+                     v8::Null(info.GetIsolate()));
+    HTMLCollectionOrElement named_items;
+    collection->namedGetter(name, named_items);
+    v8::Local<v8::Value> result =
+        ToV8(named_items, info.Holder(), info.GetIsolate());
 
     if (result.IsEmpty())
-      return v8::Undefined(info.GetIsolate());
+      return v8::Null(info.GetIsolate());
 
     return result;
   }
@@ -96,6 +79,7 @@
   if (info.Length() < 1) {
     UseCounter::Count(CurrentExecutionContext(info.GetIsolate()),
                       WebFeature::kDocumentAllItemNoArguments);
+    V8SetReturnValue(info, v8::Null(info.GetIsolate()));
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/BUILD.gn b/third_party/WebKit/Source/core/BUILD.gn
index 0aee4be..cfce44c 100644
--- a/third_party/WebKit/Source/core/BUILD.gn
+++ b/third_party/WebKit/Source/core/BUILD.gn
@@ -108,7 +108,6 @@
 
 source_set("prerequisites") {
   public_deps = [
-    "//gpu/command_buffer/client:gles2_c_lib",
     "//services/network/public/cpp:cpp",
     "//services/service_manager/public/cpp",
     "//skia",
@@ -1941,6 +1940,7 @@
     "layout/ng/geometry/ng_physical_offset_rect_test.cc",
     "layout/ng/geometry/ng_physical_offset_test.cc",
     "layout/ng/geometry/ng_physical_rect_test.cc",
+    "layout/ng/inline/ng_caret_rect_test.cc",
     "layout/ng/inline/ng_inline_fragment_traversal_test.cc",
     "layout/ng/inline/ng_inline_items_builder_test.cc",
     "layout/ng/inline/ng_inline_layout_algorithm_test.cc",
diff --git a/third_party/WebKit/Source/core/animation/README.md b/third_party/WebKit/Source/core/animation/README.md
index bee9d10..51b36cd 100644
--- a/third_party/WebKit/Source/core/animation/README.md
+++ b/third_party/WebKit/Source/core/animation/README.md
@@ -155,39 +155,61 @@
 in the Web Animations spec.
 
 This describes a hierarchy of entities:
-*   DocumentTimeline: Represents the wall clock time
-    *   Animation: Represents an individual animation and when it started
-        playing.
-        *   AnimationEffect: Represents the effect an animation has during the
-            animation e.g. updating an elements color property.
 
-Time trickles down from the DocumentTimeline and is transformed at each stage to
-produce some progress fraction that can be used to apply the effects of the
-animations.
+*   __[DocumentTimeline][]__: Represents the wall clock time.
+    *   __[Animation][]__: Represents an individual animation and when it
+        started playing.
+        *   __[AnimationEffect][]__: Represents the effect an animation has
+            during the animation (e.g. updating an element's color property).
+
+Time trickles down from the [DocumentTimeline][] and is transformed at each
+stage to produce some progress fraction that can be used to apply the effects of
+the animations.
 
 For example:
 
-*   DocumentTimeline notifies that the time is 20 seconds.
-    *   Animation was started at 18 seconds and computes that it has a current
-        time of 2 seconds.
-        *   AnimationEffect has a duration of 8 seconds and computes that it has
-            a progress of 25%.
+```javascript
+// Page was loaded at 2:00:00PM, the time is currently 2:00:10PM.
+// document.timeline.currentTime is currently 10000 (10 seconds).
 
-            The effect is animating an element8s transform property from `none`
-            to `rotate(360deg)` so it computes the current effect to be
-            `rotate(90deg)`.
+let animation = element.animate([
+    {transform: 'none'},
+    {transform: 'rotate(200deg)'},
+  ], {
+    duration: 20000,  // 20 seconds
+  });
 
-### Life cycle of an animation
+animation.startTime = 6000;  // 6 seconds
+```
 
-1.  An Animation is created via CSS<sup>1</sup> or `element.animate()`.
-2.  At the start of the next frame the Animation and its AnimationEffect are
-    updated with the currentTime of the DocumentTimeline.
-3.  The AnimationEffect gets sampled with its computed localTime, pushes a
-    SampledEffect into its target element s EffectStack and marks the elements
-    style as dirty to ensure it gets updated later in the document lifecycle.
-4.  During the next style resolve on the target element all the SampledEffects
-    in its EffectStack are incorporated into building the element's
-    ComputedStyle.
+*   __[DocumentTimeline][]__ notifies that the time is 10 seconds.
+    *   __[Animation][]__ computes that its currentTime is 4 seconds due to its
+        startTime being at 6 seconds.
+        *   __[AnimationEffect][]__ has a duration of 20 seconds and computes
+            that it has a progress of 20% from the parent animation being 4
+            seconds into the animation.
+
+            The effect is animating an element from `transform: none` to
+            `transform: rotate(200deg)` so it computes the current effect to be
+            `transfrom: rotate(40deg)`.
+
+[Animation]: https://cs.chromium.org/search/?q=class:blink::Animation$
+[AnimationEffect]: https://cs.chromium.org/search/?q=class:blink::AnimationEffectReadOnly$
+[DocumentTimeline]: https://cs.chromium.org/search/?q=class:blink::DocumentTimeline$
+[EffectStack]: https://cs.chromium.org/search/?q=class:blink::EffectStack
+
+### Lifecycle of an Animation
+
+1.  An [Animation][] is created via CSS<sup>1</sup> or `element.animate()`.
+2.  At the start of the next frame the [Animation][] and its [AnimationEffect][]
+    are updated with the currentTime of the [DocumentTimeline][].
+3.  The [AnimationEffect][] gets sampled with its computed localTime, pushes a
+    [SampledEffect][] into its target element's [EffectStack][] and marks the
+    elements style as dirty to ensure it gets updated later in the document
+    lifecycle.
+4.  During the next [style resolve][styleForElement()] on the target element all
+    the [SampledEffect][]s in its [EffectStack][] are incorporated into building
+    the element's [ComputedStyle][].
 
 One key takeaway here is to note that timing updates are done in a separate
 phase to effect application. Effect application must occur during style
@@ -202,21 +224,107 @@
 resolution can cause style to get dirtied, this is currently a
 [code health bug](http://crbug.com/492887).
 
-### KeyframeEffects
+[SampledEffect]: https://cs.chromium.org/search/?q=class:blink::SampledEffect
 
-TODO: Describe how KeyframeEffects represent an animation's keyframes.
+### [KeyframeEffect][]
 
-### Keyframe Interpolations
+Currently all animations use [KeyframeEffect][] for their [AnimationEffect][].
+The generic [AnimationEffect][] from which it inherits is an extention point in
+Web Animations where other kinds of animation effects can be defined later by
+other specs (for example Javascript callback based effects).
 
-TODO: Describe how interpolation works and where to look for further details.
+#### Structure of a [KeyframeEffect][]
 
-#### InterpolationTypes
+*   __[KeyframeEffect][]__ represents the effect an animation has (without any
+    details of when it started or whether it's playing) and is comprised of
+    three things:
+    *   Some __[Timing][]__ information (inherited from [AnimationEffect][]).  
+        [Example](http://jsbin.com/nuyohulojo/edit?js,output):  
+        ```javascript
+        {
+          duration: 4000,
+          easing: 'ease-in-out',
+          iterations: 8,
+          direction: 'alternate',
+        }
+        ```
+        This is used to [compute][UpdateInheritedTime()] the percentage progress
+        of the effect given the duration of time that the animation has been
+        playing for.
 
-TODO: Describe various interpolation types and where they are defined.
+    *   The DOM __[Element][]__ that is being animated.
 
-#### Applying a stack of Interpolations
+    *   A __[KeyframeEffectModel][]__ that holds a sequence of keyframes to
+        specify the properties being animated and what values they pass
+        through.  
+        [Example](http://jsbin.com/wiyefaxiru/1/edit?js,output):  
+        ```javascript
+        [
+          {backgroundColor: 'red', transform: 'rotate(0deg)'},
+          {backgroundColor: 'yellow'},
+          {backgroundColor: 'lime'},
+          {backgroundColor: 'blue'},
+          {backgroundColor: 'red', transform: 'rotate(360deg)'},
+        ]
+        ```
 
-TODO: Describe how interpolations interact with the effect stack.
+        These keyframes are used to compute:
+        *   A __[PropertySpecificKeyframe map][KeyframeGroupMap]__ that simply
+            breaks up the input multi-property keyframes into per-property
+            keyframe lists.
+        *   An __[InterpolationEffect][]__ which holds a set of
+            [Interpolation][]s, each one representing the animated values
+            between adjacent pairs of [PropertySpecificKeyframe][]s, and where
+            in the percentage progress they are active.  
+            In the example keyframes above the [Interpolations][] generated
+            would include, among the 5 different property specific keyframe
+            pairs, one for `backgroundColor: 'red'` to
+            `backgroundColor: 'yellow'` that applied from 0% to 25% and one for
+            `transform: 'rotate(0deg)'` to `transform: 'rotate(360deg)'` that
+            applied from 0% to 100%.
+
+[Element]: https://cs.chromium.org/search/?q=class:blink::Element$
+[KeyframeGroupMap]: https://cs.chromium.org/search/?q=class:blink::KeyframeEffectModelBase+KeyframeGroupMap
+[PropertySpecificKeyframe]: https://cs.chromium.org/search/?q=class:blink::Keyframe::PropertySpecificKeyframe
+[KeyframeEffect]: https://cs.chromium.org/search/?q=class:blink::KeyframeEffectReadOnly$
+[KeyframeEffectModel]: https://cs.chromium.org/search/?q=class:blink::KeyframeEffectModelBase$
+[Timing]: https://cs.chromium.org/search/?q=class:blink::Timing$
+[UpdateInheritedTime()]: https://cs.chromium.org/search/?q=function:%5CbAnimationEffectReadOnly::UpdateInheritedTime
+
+#### Lifecycle of an [Interpolation][]
+
+[Interpolation][] is the data structure that [style
+resolution][styleForElement()] uses to resolve what animated value to apply
+to an animated element's [ComputedStyle][].
+
+1.   [Interpolation][]s are lazily
+     [instantiated][EnsureInterpolationEffectPopulated()] prior to sampling.
+2.   [KeyframeEffectModel][]s are [sampled][Sample()] every frame (or as
+     necessary) for a stack of [Interpolation][]s to
+     [apply][ApplyAnimatedStandardProperties()] to the associated [Element][]
+     and stashed away in the [Element][]'s [ElementAnimations][]'
+     [EffectStack][]'s [SampledEffect][]s.
+3.   During [style resolution][styleForElement()] on the target [Element][] all
+     the [Interpolation][]s are [collected and organised by
+     category][AdoptActiveInterpolations] according to whether it's a transition
+     or not (transitions in Blink are
+     [suppressed][CalculateTransitionUpdateForProperty()] in the presence of
+     non-transition animations on the same property) and whether it affects
+     custom properties or not (animated custom properties are
+     [animation-tainted](https://www.w3.org/TR/css-variables-1/#animation-tainted)
+     and affect the [processing of animation
+     properties][animation-tainted-processing].
+4.   TODO(alancutter): Describe what happens in processing a stack of
+     interpolations.
+
+[AdoptActiveInterpolations]: https://cs.chromium.org/search/?q=AdoptActiveInterpolations%5Cw%2B
+[animation-tainted-processing]: https://cs.chromium.org/search/?q=function:blink::StyleBuilder::ApplyProperty+animation_tainted
+[CalculateTransitionUpdateForProperty()]: https://cs.chromium.org/search/?q=function:blink::CSSAnimations::CalculateTransitionUpdateForProperty
+[ElementAnimations]: https://cs.chromium.org/search/?q=class:blink::ElementAnimations
+[EnsureInterpolationEffectPopulated()]: https://cs.chromium.org/search/?q=function:KeyframeEffectModelBase::EnsureInterpolationEffectPopulated
+[Interpolation]: https://cs.chromium.org/search/?q=class:blink::Interpolation$
+[InterpolationEffect]: https://cs.chromium.org/search/?q=class:blink::InterpolationEffect
+[Sample()]: https://cs.chromium.org/search/?q=function:KeyframeEffectModelBase::Sample
 
 ## Testing pointers
 
diff --git a/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp b/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
index 625d887..9b5b328 100644
--- a/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
+++ b/third_party/WebKit/Source/core/clipboard/DataTransfer.cpp
@@ -133,7 +133,7 @@
         DocumentLifecycle::kPaintClean);
 
     PropertyTreeState border_box_properties = PropertyTreeState::Root();
-    if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) {
+    if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) {
       border_box_properties =
           *layer->GetLayoutObject().FirstFragment().LocalBorderBoxProperties();
     }
diff --git a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp
index 9d3c77e..ef1e6f4 100644
--- a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.cpp
@@ -226,7 +226,7 @@
     const ImageResourceObserver& client,
     const Document& document,
     const ComputedStyle&,
-    const LayoutSize& size) {
+    const FloatSize& size) {
   if (size.IsEmpty())
     return nullptr;
 
@@ -247,9 +247,9 @@
     to_image_ref = SVGImageForContainer::Create(
         ToSVGImage(to_image), size, 1, UrlForCSSValue(to_value_.Get()));
 
-  return CrossfadeGeneratedImage::Create(
-      from_image_ref, to_image_ref, percentage_value_->GetFloatValue(),
-      FixedSize(document, FloatSize(size)), FloatSize(size));
+  return CrossfadeGeneratedImage::Create(from_image_ref, to_image_ref,
+                                         percentage_value_->GetFloatValue(),
+                                         FixedSize(document, size), size);
 }
 
 void CSSCrossfadeValue::CrossfadeChanged(
diff --git a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.h b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.h
index 41929673..21167d36 100644
--- a/third_party/WebKit/Source/core/css/CSSCrossfadeValue.h
+++ b/third_party/WebKit/Source/core/css/CSSCrossfadeValue.h
@@ -57,7 +57,7 @@
   scoped_refptr<Image> GetImage(const ImageResourceObserver&,
                                 const Document&,
                                 const ComputedStyle&,
-                                const LayoutSize& container_size);
+                                const FloatSize& target_size);
   bool IsFixedSize() const { return true; }
   FloatSize FixedSize(const Document&, const FloatSize&);
 
diff --git a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
index 68d7120..050342d 100644
--- a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.cpp
@@ -79,7 +79,7 @@
   return fetched_ && fetched_->GetResource()->LoadFailedOrCanceled();
 }
 
-FontResource* CSSFontFaceSrcValue::Fetch(ExecutionContext* context,
+FontResource& CSSFontFaceSrcValue::Fetch(ExecutionContext* context,
                                          FontResourceClient* client) const {
   if (!fetched_) {
     ResourceRequest resource_request(absolute_resource_);
@@ -104,12 +104,9 @@
     if (context->IsWorkerGlobalScope()) {
       ToWorkerGlobalScope(context)->EnsureFetcher();
     }
-    FontResource* resource =
-        FontResource::Fetch(params, context->Fetcher(), client);
-    if (!resource)
-      return nullptr;
     fetched_ = FontResourceHelper::Create(
-        resource, context->GetTaskRunner(TaskType::kUnspecedLoading).get());
+        FontResource::Fetch(params, context->Fetcher(), client),
+        context->GetTaskRunner(TaskType::kUnspecedLoading).get());
   } else {
     // FIXME: CSSFontFaceSrcValue::Fetch is invoked when @font-face rule
     // is processed by StyleResolver / StyleEngine.
@@ -120,7 +117,7 @@
           context->GetTaskRunner(TaskType::kUnspecedLoading).get());
     }
   }
-  return ToFontResource(fetched_->GetResource());
+  return *ToFontResource(fetched_->GetResource());
 }
 
 void CSSFontFaceSrcValue::RestoreCachedResourceIfNeeded(
diff --git a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.h b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.h
index a807cdc..f74db17 100644
--- a/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.h
+++ b/third_party/WebKit/Source/core/css/CSSFontFaceSrcValue.h
@@ -67,7 +67,7 @@
 
   bool HasFailedOrCanceledSubresources() const;
 
-  FontResource* Fetch(ExecutionContext*, FontResourceClient*) const;
+  FontResource& Fetch(ExecutionContext*, FontResourceClient*) const;
 
   bool Equals(const CSSFontFaceSrcValue&) const;
 
diff --git a/third_party/WebKit/Source/core/css/CSSGradientValue.cpp b/third_party/WebKit/Source/core/css/CSSGradientValue.cpp
index a2130a8..de2a0fe 100644
--- a/third_party/WebKit/Source/core/css/CSSGradientValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSGradientValue.cpp
@@ -106,7 +106,7 @@
     const ImageResourceObserver& client,
     const Document& document,
     const ComputedStyle& style,
-    const LayoutSize& size) {
+    const FloatSize& size) {
   if (size.IsEmpty())
     return nullptr;
 
@@ -143,7 +143,7 @@
   }
 
   scoped_refptr<Image> new_image =
-      GradientGeneratedImage::Create(gradient, FloatSize(size));
+      GradientGeneratedImage::Create(gradient, size);
   if (is_cacheable_)
     PutImage(size, new_image);
 
@@ -625,12 +625,11 @@
 
 static float PositionFromValue(const CSSValue* value,
                                const CSSToLengthConversionData& conversion_data,
-                               const LayoutSize& size,
+                               const FloatSize& size,
                                bool is_horizontal) {
   float origin = 0;
   int sign = 1;
-  float edge_distance =
-      is_horizontal ? size.Width().ToFloat() : size.Height().ToFloat();
+  float edge_distance = is_horizontal ? size.Width() : size.Height();
 
   // In this case the center of the gradient is given relative to an edge in the
   // form of: [ top | bottom | right | left ] [ <percentage> | <length> ].
@@ -691,7 +690,7 @@
     const CSSValue* horizontal,
     const CSSValue* vertical,
     const CSSToLengthConversionData& conversion_data,
-    const LayoutSize& size) {
+    const FloatSize& size) {
   FloatPoint result;
 
   if (horizontal)
@@ -802,7 +801,7 @@
 // Compute the endpoints so that a gradient of the given angle covers a box of
 // the given size.
 static void EndPointsFromAngle(float angle_deg,
-                               const LayoutSize& size,
+                               const FloatSize& size,
                                FloatPoint& first_point,
                                FloatPoint& second_point,
                                CSSGradientType type) {
@@ -874,7 +873,7 @@
 
 scoped_refptr<Gradient> CSSLinearGradientValue::CreateGradient(
     const CSSToLengthConversionData& conversion_data,
-    const LayoutSize& size,
+    const FloatSize& size,
     const Document& document,
     const ComputedStyle& style) {
   DCHECK(!size.IsEmpty());
@@ -1241,7 +1240,7 @@
 
 scoped_refptr<Gradient> CSSRadialGradientValue::CreateGradient(
     const CSSToLengthConversionData& conversion_data,
-    const LayoutSize& size,
+    const FloatSize& size,
     const Document& document,
     const ComputedStyle& style) {
   DCHECK(!size.IsEmpty());
@@ -1285,23 +1284,22 @@
                              ? kCircleEndShape
                              : kEllipseEndShape;
 
-    FloatSize float_size(size);
     switch (sizing_behavior_ ? sizing_behavior_->GetValueID() : 0) {
       case CSSValueContain:
       case CSSValueClosestSide:
-        second_radius = RadiusToSide(second_point, float_size, shape,
+        second_radius = RadiusToSide(second_point, size, shape,
                                      [](float a, float b) { return a < b; });
         break;
       case CSSValueFarthestSide:
-        second_radius = RadiusToSide(second_point, float_size, shape,
+        second_radius = RadiusToSide(second_point, size, shape,
                                      [](float a, float b) { return a > b; });
         break;
       case CSSValueClosestCorner:
-        second_radius = RadiusToCorner(second_point, float_size, shape,
+        second_radius = RadiusToCorner(second_point, size, shape,
                                        [](float a, float b) { return a < b; });
         break;
       default:
-        second_radius = RadiusToCorner(second_point, float_size, shape,
+        second_radius = RadiusToCorner(second_point, size, shape,
                                        [](float a, float b) { return a > b; });
         break;
     }
@@ -1418,7 +1416,7 @@
 
 scoped_refptr<Gradient> CSSConicGradientValue::CreateGradient(
     const CSSToLengthConversionData& conversion_data,
-    const LayoutSize& size,
+    const FloatSize& size,
     const Document& document,
     const ComputedStyle& style) {
   DCHECK(!size.IsEmpty());
diff --git a/third_party/WebKit/Source/core/css/CSSGradientValue.h b/third_party/WebKit/Source/core/css/CSSGradientValue.h
index 5a4ab0d64..fbfa38e 100644
--- a/third_party/WebKit/Source/core/css/CSSGradientValue.h
+++ b/third_party/WebKit/Source/core/css/CSSGradientValue.h
@@ -95,7 +95,7 @@
   scoped_refptr<Image> GetImage(const ImageResourceObserver&,
                                 const Document&,
                                 const ComputedStyle&,
-                                const LayoutSize&);
+                                const FloatSize&);
 
   void AddStop(const CSSGradientColorStop& stop) {
     stops_.push_back(stop);
@@ -170,7 +170,7 @@
 
   // Create the gradient for a given size.
   scoped_refptr<Gradient> CreateGradient(const CSSToLengthConversionData&,
-                                         const LayoutSize&,
+                                         const FloatSize&,
                                          const Document&,
                                          const ComputedStyle&);
 
@@ -244,7 +244,7 @@
 
   // Create the gradient for a given size.
   scoped_refptr<Gradient> CreateGradient(const CSSToLengthConversionData&,
-                                         const LayoutSize&,
+                                         const FloatSize&,
                                          const Document&,
                                          const ComputedStyle&);
 
@@ -311,7 +311,7 @@
 
   // Create the gradient for a given size.
   scoped_refptr<Gradient> CreateGradient(const CSSToLengthConversionData&,
-                                         const LayoutSize&,
+                                         const FloatSize&,
                                          const Document&,
                                          const ComputedStyle&);
 
diff --git a/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp b/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
index 906bd0f..5efd6bf8 100644
--- a/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.cpp
@@ -37,29 +37,43 @@
 using cssvalue::ToCSSLinearGradientValue;
 using cssvalue::ToCSSRadialGradientValue;
 
-Image* GeneratedImageCache::GetImage(const LayoutSize& size) const {
+Image* GeneratedImageCache::GetImage(const FloatSize& size) const {
   if (size.IsEmpty())
     return nullptr;
-  return images_.at(size);
+
+  DCHECK(sizes_.find(size) != sizes_.end());
+  GeneratedImageMap::const_iterator image_iter = images_.find(size);
+  if (image_iter == images_.end())
+    return nullptr;
+  return image_iter->second.get();
 }
 
-void GeneratedImageCache::PutImage(const LayoutSize& size,
+void GeneratedImageCache::PutImage(const FloatSize& size,
                                    scoped_refptr<Image> image) {
   DCHECK(!size.IsEmpty());
-  images_.insert(size, std::move(image));
+  images_.insert(
+      std::pair<FloatSize, scoped_refptr<Image>>(size, std::move(image)));
 }
 
-void GeneratedImageCache::AddSize(const LayoutSize& size) {
+void GeneratedImageCache::AddSize(const FloatSize& size) {
   DCHECK(!size.IsEmpty());
-  sizes_.insert(size);
+  ImageSizeCountMap::iterator size_entry = sizes_.find(size);
+  if (size_entry == sizes_.end())
+    sizes_.insert(std::pair<FloatSize, unsigned>(size, 1));
+  else
+    size_entry->second++;
 }
 
-void GeneratedImageCache::RemoveSize(const LayoutSize& size) {
+void GeneratedImageCache::RemoveSize(const FloatSize& size) {
   DCHECK(!size.IsEmpty());
-  DCHECK(sizes_.Contains(size));
-  DCHECK(images_.Contains(size));
-  if (sizes_.erase(size))
-    images_.erase(size);
+  SECURITY_DCHECK(sizes_.find(size) != sizes_.end());
+  unsigned& count = sizes_[size];
+  count--;
+  if (count == 0) {
+    DCHECK(images_.find(size) != images_.end());
+    sizes_.erase(sizes_.find(size));
+    images_.erase(images_.find(size));
+  }
 }
 
 CSSImageGeneratorValue::CSSImageGeneratorValue(ClassType class_type)
@@ -93,7 +107,7 @@
   SizeAndCount& size_count = it->value;
   if (!size_count.size.IsEmpty()) {
     cached_images_.RemoveSize(size_count.size);
-    size_count.size = LayoutSize();
+    size_count.size = FloatSize();
   }
 
   if (!--size_count.count)
@@ -106,7 +120,7 @@
 }
 
 Image* CSSImageGeneratorValue::GetImage(const ImageResourceObserver* client,
-                                        const LayoutSize& size) {
+                                        const FloatSize& size) {
   ClientSizeCountMap::iterator it = clients_.find(client);
   if (it != clients_.end()) {
     DCHECK(keep_alive_);
@@ -114,7 +128,7 @@
     if (size_count.size != size) {
       if (!size_count.size.IsEmpty()) {
         cached_images_.RemoveSize(size_count.size);
-        size_count.size = LayoutSize();
+        size_count.size = FloatSize();
       }
 
       if (!size.IsEmpty()) {
@@ -126,7 +140,7 @@
   return cached_images_.GetImage(size);
 }
 
-void CSSImageGeneratorValue::PutImage(const LayoutSize& size,
+void CSSImageGeneratorValue::PutImage(const FloatSize& size,
                                       scoped_refptr<Image> image) {
   cached_images_.PutImage(size, std::move(image));
 }
@@ -135,23 +149,23 @@
     const ImageResourceObserver& client,
     const Document& document,
     const ComputedStyle& style,
-    const LayoutSize& container_size) {
+    const FloatSize& target_size) {
   switch (GetClassType()) {
     case kCrossfadeClass:
       return ToCSSCrossfadeValue(this)->GetImage(client, document, style,
-                                                 container_size);
+                                                 target_size);
     case kLinearGradientClass:
       return ToCSSLinearGradientValue(this)->GetImage(client, document, style,
-                                                      container_size);
+                                                      target_size);
     case kPaintClass:
       return ToCSSPaintValue(this)->GetImage(client, document, style,
-                                             container_size);
+                                             target_size);
     case kRadialGradientClass:
       return ToCSSRadialGradientValue(this)->GetImage(client, document, style,
-                                                      container_size);
+                                                      target_size);
     case kConicGradientClass:
       return ToCSSConicGradientValue(this)->GetImage(client, document, style,
-                                                     container_size);
+                                                     target_size);
     default:
       NOTREACHED();
   }
diff --git a/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.h b/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.h
index e896effa..83ae35a 100644
--- a/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.h
+++ b/third_party/WebKit/Source/core/css/CSSImageGeneratorValue.h
@@ -26,35 +26,54 @@
 #ifndef CSSImageGeneratorValue_h
 #define CSSImageGeneratorValue_h
 
+#include <map>
 #include "base/memory/scoped_refptr.h"
 #include "core/CoreExport.h"
 #include "core/css/CSSValue.h"
-#include "platform/geometry/LayoutSizeHash.h"
+#include "platform/geometry/FloatSize.h"
 #include "platform/heap/SelfKeepAlive.h"
-#include "platform/wtf/HashCountedSet.h"
+#include "platform/wtf/HashMap.h"
 
 namespace blink {
 
 class Document;
 class Image;
-class FloatSize;
 class ComputedStyle;
 class ImageResourceObserver;
 
+struct FloatSizeCompare {
+  bool operator()(const FloatSize& lhs, const FloatSize& rhs) const {
+    if (lhs.Width() < rhs.Width())
+      return true;
+    if (lhs.Width() > rhs.Width())
+      return false;
+    return lhs.Height() < rhs.Height();
+  }
+};
+
+// Use std::map because the WTF versions require a hashing function, while
+// the stl maps require a weak comparison operator that can be defined for
+// FloatSize. These maps do not contain many objects because we do not expect
+// any particular CSSGeneratedImageValue to have clients at many different
+// sizes at any given time.
+using ImageSizeCountMap = std::map<FloatSize, unsigned, FloatSizeCompare>;
+using GeneratedImageMap =
+    std::map<FloatSize, scoped_refptr<Image>, FloatSizeCompare>;
+
 class GeneratedImageCache {
  public:
-  void AddSize(const LayoutSize&);
-  void RemoveSize(const LayoutSize&);
+  void AddSize(const FloatSize&);
+  void RemoveSize(const FloatSize&);
 
-  Image* GetImage(const LayoutSize&) const;
-  void PutImage(const LayoutSize&, scoped_refptr<Image>);
+  Image* GetImage(const FloatSize&) const;
+  void PutImage(const FloatSize&, scoped_refptr<Image>);
 
  private:
   // A count of how many times a given image size is in use.
-  HashCountedSet<LayoutSize> sizes_;
+  ImageSizeCountMap sizes_;
 
   // A cache of Image objects by image size.
-  HashMap<LayoutSize, scoped_refptr<Image>> images_;
+  GeneratedImageMap images_;
 };
 
 struct SizeAndCount {
@@ -63,7 +82,7 @@
 
   // The non-zero size associated with this client. A client must only
   // ever be present at one non-zero size, with as many zero sizes as it wants.
-  LayoutSize size;
+  FloatSize size;
 
   // The net number of times this client has been added.
   int count;
@@ -76,12 +95,14 @@
   ~CSSImageGeneratorValue();
 
   void AddClient(const ImageResourceObserver*);
+
   void RemoveClient(const ImageResourceObserver*);
-  // The |container_size| is the container size with subpixel snapping.
+  // The |target_size| is the desired image size. Background images should not
+  // be snapped. In other case the target size must be pixel snapped already.
   scoped_refptr<Image> GetImage(const ImageResourceObserver&,
                                 const Document&,
                                 const ComputedStyle&,
-                                const LayoutSize& container_size);
+                                const FloatSize& target_size);
 
   bool IsFixedSize() const;
   FloatSize FixedSize(const Document&, const FloatSize& default_object_size);
@@ -100,8 +121,8 @@
  protected:
   explicit CSSImageGeneratorValue(ClassType);
 
-  Image* GetImage(const ImageResourceObserver*, const LayoutSize&);
-  void PutImage(const LayoutSize&, scoped_refptr<Image>);
+  Image* GetImage(const ImageResourceObserver*, const FloatSize&);
+  void PutImage(const FloatSize&, scoped_refptr<Image>);
   const ClientSizeCountMap& Clients() const { return clients_; }
 
   // A map from LayoutObjects (with entry count) to image sizes.
diff --git a/third_party/WebKit/Source/core/css/CSSImageSetValue.cpp b/third_party/WebKit/Source/core/css/CSSImageSetValue.cpp
index 02e7447..8bc2f813 100644
--- a/third_party/WebKit/Source/core/css/CSSImageSetValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSImageSetValue.cpp
@@ -131,8 +131,9 @@
         placeholder_image_request_type == FetchParameters::kAllowPlaceholder)
       document.GetFrame()->MaybeAllowImagePlaceholder(params);
 
-    if (ImageResourceContent* cached_image =
-            ImageResourceContent::Fetch(params, document.Fetcher())) {
+    ImageResourceContent* cached_image =
+        ImageResourceContent::Fetch(params, document.Fetcher());
+    if (!cached_image->ErrorOccurred()) {
       cached_image_ = StyleFetchedImageSet::Create(
           cached_image, image.scale_factor, this, params.Url());
     } else {
diff --git a/third_party/WebKit/Source/core/css/CSSImageValue.cpp b/third_party/WebKit/Source/core/css/CSSImageValue.cpp
index f28d6d0..f64aad9 100644
--- a/third_party/WebKit/Source/core/css/CSSImageValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSImageValue.cpp
@@ -78,8 +78,9 @@
         placeholder_image_request_type == FetchParameters::kAllowPlaceholder)
       document.GetFrame()->MaybeAllowImagePlaceholder(params);
 
-    if (ImageResourceContent* cached_image =
-            ImageResourceContent::Fetch(params, document.Fetcher())) {
+    ImageResourceContent* cached_image =
+        ImageResourceContent::Fetch(params, document.Fetcher());
+    if (!cached_image->ErrorOccurred()) {
       cached_image_ =
           StyleFetchedImage::Create(cached_image, document, params.Url());
     } else {
diff --git a/third_party/WebKit/Source/core/css/CSSPaintValue.cpp b/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
index 85933ca..8c3ea7c2 100644
--- a/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
+++ b/third_party/WebKit/Source/core/css/CSSPaintValue.cpp
@@ -47,7 +47,7 @@
     const ImageResourceObserver& client,
     const Document& document,
     const ComputedStyle&,
-    const LayoutSize& container_size) {
+    const FloatSize& target_size) {
   if (!generator_) {
     generator_ = CSSPaintImageGenerator::Create(
         GetName(), document, paint_image_generator_observer_);
@@ -56,7 +56,7 @@
   if (!ParseInputArguments(document))
     return nullptr;
 
-  return generator_->Paint(client, RoundedIntSize(container_size),
+  return generator_->Paint(client, RoundedIntSize(target_size),
                            parsed_input_arguments_);
 }
 
diff --git a/third_party/WebKit/Source/core/css/CSSPaintValue.h b/third_party/WebKit/Source/core/css/CSSPaintValue.h
index f3b2820b..9e8bff2 100644
--- a/third_party/WebKit/Source/core/css/CSSPaintValue.h
+++ b/third_party/WebKit/Source/core/css/CSSPaintValue.h
@@ -33,11 +33,12 @@
 
   String GetName() const;
 
-  // The |container_size| is container size with subpixel snapping.
+  // The |target_size| is container size with subpixel snapping when used
+  // in the context of paint images.
   scoped_refptr<Image> GetImage(const ImageResourceObserver&,
                                 const Document&,
                                 const ComputedStyle&,
-                                const LayoutSize& container_size);
+                                const FloatSize& target_size);
   bool IsFixedSize() const { return false; }
   FloatSize FixedSize(const Document&) { return FloatSize(); }
 
diff --git a/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5 b/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
index 78f6c4d..5b1af4d 100644
--- a/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
+++ b/third_party/WebKit/Source/core/css/ComputedStyleExtraFields.json5
@@ -1014,5 +1014,13 @@
       keywords: ["no-auto-repeat", "auto-fill", "auto-fit"],
       default_value: "no-auto-repeat",
     },
+    {
+      name: "ForceLegacyLayout",
+      inherited: true,
+      field_template: "primitive",
+      type_name: "bool",
+      default_value: "false",
+      field_group: "*",
+    },
   ],
 }
diff --git a/third_party/WebKit/Source/core/css/FontFace.cpp b/third_party/WebKit/Source/core/css/FontFace.cpp
index 1a1e08e..e6cbcc4 100644
--- a/third_party/WebKit/Source/core/css/FontFace.cpp
+++ b/third_party/WebKit/Source/core/css/FontFace.cpp
@@ -734,8 +734,8 @@
         RemoteFontFaceSource* source =
             new RemoteFontFaceSource(css_font_face_, font_selector,
                                      CSSValueToFontDisplay(display_.Get()));
-        if (item.Fetch(context, source))
-          css_font_face_->AddSource(source);
+        item.Fetch(context, source);
+        css_font_face_->AddSource(source);
       }
     } else {
       css_font_face_->AddSource(new LocalFontFaceSource(item.GetResource()));
diff --git a/third_party/WebKit/Source/core/css/StyleRuleImport.cpp b/third_party/WebKit/Source/core/css/StyleRuleImport.cpp
index 40cf99a8..f3b9eb9 100644
--- a/third_party/WebKit/Source/core/css/StyleRuleImport.cpp
+++ b/third_party/WebKit/Source/core/css/StyleRuleImport.cpp
@@ -138,9 +138,8 @@
   params.SetCharset(parent_style_sheet_->Charset());
   loading_ = true;
   DCHECK(!style_sheet_client_->GetResource());
-  if (!CSSStyleSheetResource::Fetch(params, fetcher, style_sheet_client_)) {
-    loading_ = false;
-  } else if (loading_) {
+  CSSStyleSheetResource::Fetch(params, fetcher, style_sheet_client_);
+  if (loading_) {
     // if the import rule is issued dynamically, the sheet may be
     // removed from the pending sheet count, so let the doc know
     // the sheet being imported is pending.
diff --git a/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl b/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl
index fcbbfad..bec4cf8 100644
--- a/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl
+++ b/third_party/WebKit/Source/core/css/cssom/StylePropertyMap.idl
@@ -12,6 +12,7 @@
 ] interface StylePropertyMap : StylePropertyMapReadOnly {
     [RaisesException, CallWith=ExecutionContext] void append(DOMString property, (CSSStyleValue or DOMString)... values);
     [RaisesException, ImplementedAs=remove] void delete(DOMString property);
-    [RaisesException, CallWith=ExecutionContext] void set(DOMString property, (CSSStyleValue or DOMString)... values);
+    // Putting Exposed=Window in the next line makes |set| not exposed to PaintWorklet.
+    [RaisesException, CallWith=ExecutionContext, Exposed=Window] void set(DOMString property, (CSSStyleValue or DOMString)... values);
     [RaisesException] void update(DOMString property, UpdateFunction updateFunction);
 };
diff --git a/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.cpp b/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.cpp
index 94ebb6e8..2609e63 100644
--- a/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.cpp
+++ b/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.cpp
@@ -49,17 +49,9 @@
 namespace CSSParsingUtils {
 namespace {
 
-bool IsSelfPositionKeyword(CSSValueID id) {
-  return CSSPropertyParserHelpers::IdentMatches<
-      CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueSelfStart,
-      CSSValueSelfEnd, CSSValueFlexStart, CSSValueFlexEnd, CSSValueLeft,
-      CSSValueRight>(id);
-}
-
-CSSIdentifierValue* ConsumeSelfPositionKeyword(CSSParserTokenRange& range) {
-  return IsSelfPositionKeyword(range.Peek().Id())
-             ? CSSPropertyParserHelpers::ConsumeIdent(range)
-             : nullptr;
+bool IsLeftOrRightKeyword(CSSValueID id) {
+  return CSSPropertyParserHelpers::IdentMatches<CSSValueLeft, CSSValueRight>(
+      id);
 }
 
 bool IsAutoOrNormalOrStretch(CSSValueID id) {
@@ -73,12 +65,6 @@
       CSSValueStretch>(id);
 }
 
-bool IsContentPositionKeyword(CSSValueID id) {
-  return CSSPropertyParserHelpers::IdentMatches<
-      CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueFlexStart,
-      CSSValueFlexEnd, CSSValueLeft, CSSValueRight>(id);
-}
-
 bool IsOverflowKeyword(CSSValueID id) {
   return CSSPropertyParserHelpers::IdentMatches<CSSValueUnsafe, CSSValueSafe>(
       id);
@@ -90,12 +76,6 @@
              : nullptr;
 }
 
-CSSIdentifierValue* ConsumeContentPositionKeyword(CSSParserTokenRange& range) {
-  return IsContentPositionKeyword(range.Peek().Id())
-             ? CSSPropertyParserHelpers::ConsumeIdent(range)
-             : nullptr;
-}
-
 bool IsBaselineKeyword(CSSValueID id) {
   return CSSPropertyParserHelpers::IdentMatches<CSSValueFirst, CSSValueLast,
                                                 CSSValueBaseline>(id);
@@ -546,7 +526,29 @@
 
 }  // namespace
 
-CSSValue* ConsumeSelfPositionOverflowPosition(CSSParserTokenRange& range) {
+bool IsSelfPositionKeyword(CSSValueID id) {
+  return CSSPropertyParserHelpers::IdentMatches<
+      CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueSelfStart,
+      CSSValueSelfEnd, CSSValueFlexStart, CSSValueFlexEnd>(id);
+}
+
+bool IsSelfPositionOrLeftOrRightKeyword(CSSValueID id) {
+  return IsSelfPositionKeyword(id) || IsLeftOrRightKeyword(id);
+}
+
+bool IsContentPositionKeyword(CSSValueID id) {
+  return CSSPropertyParserHelpers::IdentMatches<
+      CSSValueStart, CSSValueEnd, CSSValueCenter, CSSValueFlexStart,
+      CSSValueFlexEnd>(id);
+}
+
+bool IsContentPositionOrLeftOrRightKeyword(CSSValueID id) {
+  return IsContentPositionKeyword(id) || IsLeftOrRightKeyword(id);
+}
+
+CSSValue* ConsumeSelfPositionOverflowPosition(
+    CSSParserTokenRange& range,
+    IsPositionKeyword is_position_keyword) {
   CSSValueID id = range.Peek().Id();
   if (IsAutoOrNormalOrStretch(id))
     return CSSPropertyParserHelpers::ConsumeIdent(range);
@@ -555,9 +557,10 @@
     return ConsumeBaselineKeyword(range);
 
   CSSIdentifierValue* overflow_position = ConsumeOverflowPositionKeyword(range);
-  CSSIdentifierValue* self_position = ConsumeSelfPositionKeyword(range);
-  if (!self_position)
+  if (!is_position_keyword(range.Peek().Id()))
     return nullptr;
+  CSSIdentifierValue* self_position =
+      CSSPropertyParserHelpers::ConsumeIdent(range);
   if (overflow_position) {
     return CSSValuePair::Create(overflow_position, self_position,
                                 CSSValuePair::kDropIdenticalValues);
@@ -565,19 +568,21 @@
   return self_position;
 }
 
-CSSValue* ConsumeSimplifiedItemPosition(CSSParserTokenRange& range) {
+CSSValue* ConsumeSimplifiedItemPosition(CSSParserTokenRange& range,
+                                        IsPositionKeyword is_position_keyword) {
   CSSValueID id = range.Peek().Id();
-  if (IsAutoOrNormalOrStretch(id))
+  if (IsAutoOrNormalOrStretch(id) || is_position_keyword(id))
     return CSSPropertyParserHelpers::ConsumeIdent(range);
 
   if (IsBaselineKeyword(id))
     return ConsumeBaselineKeyword(range);
 
-  return ConsumeSelfPositionKeyword(range);
+  return nullptr;
 }
 
 CSSValue* ConsumeContentDistributionOverflowPosition(
-    CSSParserTokenRange& range) {
+    CSSParserTokenRange& range,
+    IsPositionKeyword is_position_keyword) {
   CSSValueID id = range.Peek().Id();
   if (CSSPropertyParserHelpers::IdentMatches<CSSValueNormal>(id)) {
     return CSSContentDistributionValue::Create(
@@ -594,44 +599,47 @@
   }
 
   if (IsContentDistributionKeyword(id)) {
-    range.ConsumeIncludingWhitespace();
-    return CSSContentDistributionValue::Create(id, CSSValueInvalid,
-                                               CSSValueInvalid);
-  }
-
-  CSSIdentifierValue* overflow = ConsumeOverflowPositionKeyword(range);
-  CSSIdentifierValue* position = ConsumeContentPositionKeyword(range);
-  if (!position)
-    return nullptr;
-
-  CSSValueID overflow_id = overflow ? overflow->GetValueID() : CSSValueInvalid;
-  CSSValueID position_id = position->GetValueID();
-  return CSSContentDistributionValue::Create(CSSValueInvalid, position_id,
-                                             overflow_id);
-}
-
-CSSValue* ConsumeSimplifiedContentPosition(CSSParserTokenRange& range) {
-  CSSValueID id = range.Peek().Id();
-  if (CSSPropertyParserHelpers::IdentMatches<CSSValueNormal>(id) ||
-      IsContentPositionKeyword(id)) {
-    return CSSContentDistributionValue::Create(
-        CSSValueInvalid, range.ConsumeIncludingWhitespace().Id(),
-        CSSValueInvalid);
-  }
-
-  if (IsBaselineKeyword(id)) {
-    CSSValue* baseline = ConsumeBaselineKeyword(range);
-    if (!baseline)
-      return nullptr;
-    return CSSContentDistributionValue::Create(
-        CSSValueInvalid, GetBaselineKeyword(*baseline), CSSValueInvalid);
-  }
-
-  if (IsContentDistributionKeyword(id)) {
     return CSSContentDistributionValue::Create(
         range.ConsumeIncludingWhitespace().Id(), CSSValueInvalid,
         CSSValueInvalid);
   }
+
+  CSSValueID overflow = IsOverflowKeyword(id)
+                            ? range.ConsumeIncludingWhitespace().Id()
+                            : CSSValueInvalid;
+  if (is_position_keyword(range.Peek().Id())) {
+    return CSSContentDistributionValue::Create(
+        CSSValueInvalid, range.ConsumeIncludingWhitespace().Id(), overflow);
+  }
+
+  return nullptr;
+}
+
+CSSValue* ConsumeSimplifiedContentPosition(
+    CSSParserTokenRange& range,
+    IsPositionKeyword is_position_keyword) {
+  CSSValueID id = range.Peek().Id();
+  if (CSSPropertyParserHelpers::IdentMatches<CSSValueNormal>(id) ||
+      is_position_keyword(id)) {
+    return CSSContentDistributionValue::Create(
+        CSSValueInvalid, range.ConsumeIncludingWhitespace().Id(),
+        CSSValueInvalid);
+  }
+
+  if (IsBaselineKeyword(id)) {
+    CSSValue* baseline = ConsumeBaselineKeyword(range);
+    if (!baseline)
+      return nullptr;
+    return CSSContentDistributionValue::Create(
+        CSSValueInvalid, GetBaselineKeyword(*baseline), CSSValueInvalid);
+  }
+
+  if (IsContentDistributionKeyword(id)) {
+    return CSSContentDistributionValue::Create(
+        range.ConsumeIncludingWhitespace().Id(), CSSValueInvalid,
+        CSSValueInvalid);
+  }
+
   return nullptr;
 }
 
@@ -2372,11 +2380,14 @@
   DCHECK(!align_value);
   DCHECK(!justify_value);
 
-  align_value = consume_alignment_value(range);
+  align_value = consume_alignment_value(range, IsSelfPositionKeyword);
   if (!align_value)
     return false;
 
-  justify_value = range.AtEnd() ? align_value : consume_alignment_value(range);
+  justify_value =
+      range.AtEnd()
+          ? align_value
+          : consume_alignment_value(range, IsSelfPositionOrLeftOrRightKeyword);
 
   return justify_value && range.AtEnd();
 }
diff --git a/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.h b/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.h
index 8af21eb..16203863 100644
--- a/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.h
+++ b/third_party/WebKit/Source/core/css/properties/CSSParsingUtils.h
@@ -36,14 +36,25 @@
                                                 CSSParserTokenRange&,
                                                 const CSSParserContext&,
                                                 bool use_legacy_parsing);
-using ConsumePlaceAlignmentValue = CSSValue* (*)(CSSParserTokenRange&);
+using IsPositionKeyword = bool (*)(CSSValueID);
+using ConsumePlaceAlignmentValue = CSSValue* (*)(CSSParserTokenRange&,
+                                                 IsPositionKeyword);
 
 constexpr size_t kMaxNumAnimationLonghands = 8;
 
-CSSValue* ConsumeSelfPositionOverflowPosition(CSSParserTokenRange&);
-CSSValue* ConsumeSimplifiedItemPosition(CSSParserTokenRange&);
-CSSValue* ConsumeContentDistributionOverflowPosition(CSSParserTokenRange&);
-CSSValue* ConsumeSimplifiedContentPosition(CSSParserTokenRange&);
+bool IsSelfPositionKeyword(CSSValueID);
+bool IsSelfPositionOrLeftOrRightKeyword(CSSValueID);
+bool IsContentPositionKeyword(CSSValueID);
+bool IsContentPositionOrLeftOrRightKeyword(CSSValueID);
+
+CSSValue* ConsumeSelfPositionOverflowPosition(CSSParserTokenRange&,
+                                              IsPositionKeyword);
+CSSValue* ConsumeSimplifiedItemPosition(CSSParserTokenRange&,
+                                        IsPositionKeyword);
+CSSValue* ConsumeContentDistributionOverflowPosition(CSSParserTokenRange&,
+                                                     IsPositionKeyword);
+CSSValue* ConsumeSimplifiedContentPosition(CSSParserTokenRange&,
+                                           IsPositionKeyword);
 
 CSSValue* ConsumeAnimationIterationCount(CSSParserTokenRange&);
 CSSValue* ConsumeAnimationName(CSSParserTokenRange&,
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/AlignContentCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/AlignContentCustom.cpp
index 692e272f..6977ebe 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/AlignContentCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/AlignContentCustom.cpp
@@ -15,7 +15,8 @@
     CSSParserTokenRange& range,
     const CSSParserContext& context,
     const CSSParserLocalContext&) const {
-  return CSSParsingUtils::ConsumeContentDistributionOverflowPosition(range);
+  return CSSParsingUtils::ConsumeContentDistributionOverflowPosition(
+      range, CSSParsingUtils::IsContentPositionKeyword);
 }
 
 const CSSValue* AlignContent::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/AlignItemsCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/AlignItemsCustom.cpp
index 656c2ab2..6c8f03b 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/AlignItemsCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/AlignItemsCustom.cpp
@@ -19,7 +19,8 @@
   // align-items property does not allow the 'auto' value.
   if (CSSPropertyParserHelpers::IdentMatches<CSSValueAuto>(range.Peek().Id()))
     return nullptr;
-  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(range);
+  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(
+      range, CSSParsingUtils::IsSelfPositionKeyword);
 }
 
 const CSSValue* AlignItems::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/AlignSelfCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/AlignSelfCustom.cpp
index 0411fc3..316924e 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/AlignSelfCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/AlignSelfCustom.cpp
@@ -15,7 +15,8 @@
     CSSParserTokenRange& range,
     const CSSParserContext& context,
     const CSSParserLocalContext&) const {
-  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(range);
+  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(
+      range, CSSParsingUtils::IsSelfPositionKeyword);
 }
 
 const CSSValue* AlignSelf::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/JustifyContentCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/JustifyContentCustom.cpp
index b7094fe..d6636b40 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/JustifyContentCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/JustifyContentCustom.cpp
@@ -15,7 +15,8 @@
     CSSParserTokenRange& range,
     const CSSParserContext& context,
     const CSSParserLocalContext&) const {
-  return CSSParsingUtils::ConsumeContentDistributionOverflowPosition(range);
+  return CSSParsingUtils::ConsumeContentDistributionOverflowPosition(
+      range, CSSParsingUtils::IsContentPositionOrLeftOrRightKeyword);
 }
 
 const CSSValue* JustifyContent::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/JustifyItemsCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/JustifyItemsCustom.cpp
index 8dad0bb..941f53c 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/JustifyItemsCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/JustifyItemsCustom.cpp
@@ -30,7 +30,9 @@
     return CSSValuePair::Create(legacy, position_keyword,
                                 CSSValuePair::kDropIdenticalValues);
   }
-  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(range);
+
+  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(
+      range, CSSParsingUtils::IsSelfPositionOrLeftOrRightKeyword);
 }
 
 const CSSValue* JustifyItems::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/properties/longhands/JustifySelfCustom.cpp b/third_party/WebKit/Source/core/css/properties/longhands/JustifySelfCustom.cpp
index b3a1253a..2b27cab 100644
--- a/third_party/WebKit/Source/core/css/properties/longhands/JustifySelfCustom.cpp
+++ b/third_party/WebKit/Source/core/css/properties/longhands/JustifySelfCustom.cpp
@@ -15,7 +15,8 @@
     CSSParserTokenRange& range,
     const CSSParserContext& context,
     const CSSParserLocalContext&) const {
-  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(range);
+  return CSSParsingUtils::ConsumeSelfPositionOverflowPosition(
+      range, CSSParsingUtils::IsSelfPositionOrLeftOrRightKeyword);
 }
 
 const CSSValue* JustifySelf::CSSValueFromComputedStyleInternal(
diff --git a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
index ff449d3..a1c1db4 100644
--- a/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
+++ b/third_party/WebKit/Source/core/css/resolver/StyleAdjuster.cpp
@@ -640,13 +640,20 @@
     }
   }
 
-  // TODO(layout-dev): Once LayoutnG handles inline content editable, we should
-  // get rid of following code fragment.
-  if (RuntimeEnabledFeatures::LayoutNGEnabled() &&
-      style.UserModify() != EUserModify::kReadOnly &&
-      style.Display() == EDisplay::kInline &&
-      parent_style.UserModify() == EUserModify::kReadOnly) {
-    style.SetDisplay(EDisplay::kInlineBlock);
+  if (RuntimeEnabledFeatures::LayoutNGEnabled()) {
+    // Form controls are not supported yet.
+    if (!style.ForceLegacyLayout() && element &&
+        element->ShouldForceLegacyLayout()) {
+      style.SetForceLegacyLayout(true);
+    }
+
+    // TODO(layout-dev): Once LayoutNG handles inline content editable, we
+    // should get rid of following code fragment.
+    else if (style.UserModify() != EUserModify::kReadOnly &&
+             style.Display() == EDisplay::kInline &&
+             parent_style.UserModify() == EUserModify::kReadOnly) {
+      style.SetDisplay(EDisplay::kInlineBlock);
+    }
   }
 }
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/dom/ContainerNode.cpp b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
index 306fd877..374a0de 100644
--- a/third_party/WebKit/Source/core/dom/ContainerNode.cpp
+++ b/third_party/WebKit/Source/core/dom/ContainerNode.cpp
@@ -1654,8 +1654,7 @@
   if (!GetDocument().ShouldInvalidateNodeListCaches(attr_name))
     return;
 
-  if (isConnected())
-    GetDocument().InvalidateNodeListCaches(attr_name);
+  GetDocument().InvalidateNodeListCaches(attr_name);
 
   for (ContainerNode* node = this; node; node = node->parentNode()) {
     if (NodeListsNodeData* lists = node->NodeLists())
diff --git a/third_party/WebKit/Source/core/dom/Element.h b/third_party/WebKit/Source/core/dom/Element.h
index c244f88b..650dab5 100644
--- a/third_party/WebKit/Source/core/dom/Element.h
+++ b/third_party/WebKit/Source/core/dom/Element.h
@@ -756,6 +756,8 @@
   // sent at all.
   virtual bool IsDisabledFormControl() const { return false; }
 
+  virtual bool ShouldForceLegacyLayout() const { return false; }
+
   bool HasPendingResources() const {
     return HasElementFlag(kHasPendingResources);
   }
diff --git a/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp b/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
index ee3b8ae5..28fceff 100644
--- a/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
+++ b/third_party/WebKit/Source/core/dom/ProcessingInstruction.cpp
@@ -147,33 +147,22 @@
 
   ClearResource();
 
-  String url = GetDocument().CompleteURL(href).GetString();
+  if (is_xsl_ && !RuntimeEnabledFeatures::XSLTEnabled())
+    return;
 
-  TextResource* resource = nullptr;
   ResourceLoaderOptions options;
   options.initiator_info.name = FetchInitiatorTypeNames::processinginstruction;
   FetchParameters params(ResourceRequest(GetDocument().CompleteURL(href)),
                          options);
   loading_ = true;
   if (is_xsl_) {
-    if (RuntimeEnabledFeatures::XSLTEnabled()) {
-      resource =
-          XSLStyleSheetResource::Fetch(params, GetDocument().Fetcher(), this);
-    }
+    DCHECK(RuntimeEnabledFeatures::XSLTEnabled());
+    XSLStyleSheetResource::Fetch(params, GetDocument().Fetcher(), this);
   } else {
     params.SetCharset(charset.IsEmpty() ? GetDocument().Encoding()
                                         : WTF::TextEncoding(charset));
     GetDocument().GetStyleEngine().AddPendingSheet(style_engine_context_);
-    resource =
-        CSSStyleSheetResource::Fetch(params, GetDocument().Fetcher(), this);
-  }
-
-  if (!resource) {
-    loading_ = false;
-    if (!is_xsl_) {
-      GetDocument().GetStyleEngine().RemovePendingSheet(*this,
-                                                        style_engine_context_);
-    }
+    CSSStyleSheetResource::Fetch(params, GetDocument().Fetcher(), this);
   }
 }
 
diff --git a/third_party/WebKit/Source/core/editing/DOMSelection.cpp b/third_party/WebKit/Source/core/editing/DOMSelection.cpp
index 5040612..e5378d1 100644
--- a/third_party/WebKit/Source/core/editing/DOMSelection.cpp
+++ b/third_party/WebKit/Source/core/editing/DOMSelection.cpp
@@ -112,7 +112,7 @@
   DCHECK(GetFrame());
   const SelectionInDOMTree& selection =
       GetFrame()->Selection().GetSelectionInDOMTree();
-  return selection.Base() <= selection.Extent();
+  return selection.IsBaseFirst();
 }
 
 // TODO(tkent): Following four functions based on VisibleSelection should be
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
index 5dc17974..45ee12b 100644
--- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
@@ -138,6 +138,15 @@
   return selection_root ? selection_root : GetDocument().documentElement();
 }
 
+size_t FrameSelection::CharacterIndexForPoint(const IntPoint& point) const {
+  const EphemeralRange range = GetFrame()->RangeForPoint(point);
+  if (range.IsNull())
+    return kNotFound;
+  Element* const editable = RootEditableElementOrDocumentElement();
+  DCHECK(editable);
+  return PlainTextRange::Create(*editable, range).Start();
+}
+
 VisibleSelection FrameSelection::ComputeVisibleSelectionInDOMTreeDeprecated()
     const {
   // TODO(editing-dev): Hoist updateStyleAndLayoutIgnorePendingStylesheets
@@ -750,6 +759,34 @@
   SelectAll(SetSelectionBy::kSystem);
 }
 
+// Implementation of |SVGTextControlElement::selectSubString()|
+void FrameSelection::SelectSubString(const Element& element,
+                                     int offset,
+                                     int length) {
+  // Find selection start
+  VisiblePosition start = VisiblePosition::FirstPositionInNode(element);
+  for (int i = 0; i < offset; ++i)
+    start = NextPositionOf(start);
+  if (start.IsNull())
+    return;
+
+  // Find selection end
+  VisiblePosition end(start);
+  for (int i = 0; i < length; ++i)
+    end = NextPositionOf(end);
+  if (end.IsNull())
+    return;
+
+  // TODO(editing-dev): We assume |start| and |end| are not null and we don't
+  // known when |start| and |end| are null. Once we get a such case, we check
+  // null for |start| and |end|.
+  SetSelectionAndEndTyping(
+      SelectionInDOMTree::Builder()
+          .SetBaseAndExtent(start.DeepEquivalent(), end.DeepEquivalent())
+          .SetAffinity(start.Affinity())
+          .Build());
+}
+
 void FrameSelection::NotifyAccessibilityForSelectionChange() {
   if (GetSelectionInDOMTree().IsNone())
     return;
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h
index 9306dd4..0e6d421 100644
--- a/third_party/WebKit/Source/core/editing/FrameSelection.h
+++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -80,6 +80,7 @@
   Document& GetDocument() const;
   LocalFrame* GetFrame() const { return frame_; }
   Element* RootEditableElementOrDocumentElement() const;
+  size_t CharacterIndexForPoint(const IntPoint&) const;
 
   // An implementation of |WebFrame::moveCaretSelection()|
   void MoveCaretSelection(const IntPoint&);
@@ -97,6 +98,7 @@
   void SetSelectionAndEndTyping(const SelectionInDOMTree&);
   void SelectAll(SetSelectionBy);
   void SelectAll();
+  void SelectSubString(const Element&, int offset, int count);
   void Clear();
   bool IsHidden() const;
 
diff --git a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp
index 9fb5b1e..856629c 100644
--- a/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp
+++ b/third_party/WebKit/Source/core/editing/commands/DeleteSelectionCommand.cpp
@@ -226,6 +226,29 @@
       SelectionForUndoStep::From(visible_selection.AsSelection()));
 }
 
+// This assumes that it starts in editable content.
+static Position TrailingWhitespacePosition(const Position& position,
+                                           WhitespacePositionOption option) {
+  DCHECK(!NeedsLayoutTreeUpdate(position));
+  DCHECK(IsEditablePosition(position)) << position;
+  if (position.IsNull())
+    return Position();
+
+  const VisiblePosition visible_position = CreateVisiblePosition(position);
+  const UChar character_after_visible_position =
+      CharacterAfter(visible_position);
+  const bool is_space =
+      option == kConsiderNonCollapsibleWhitespace
+          ? (IsSpaceOrNewline(character_after_visible_position) ||
+             character_after_visible_position == kNoBreakSpaceCharacter)
+          : IsCollapsibleWhitespace(character_after_visible_position);
+  // The space must not be in another paragraph and it must be editable.
+  if (is_space && !IsEndOfParagraph(visible_position) &&
+      NextPositionOf(visible_position, kCannotCrossEditingBoundary).IsNotNull())
+    return position;
+  return Position();
+}
+
 void DeleteSelectionCommand::InitializePositionData(
     EditingState* editing_state) {
   DCHECK(!GetDocument().NeedsLayoutTreeUpdate());
@@ -303,7 +326,8 @@
   // to the selection
   leading_whitespace_ = LeadingCollapsibleWhitespacePosition(
       upstream_start_, selection_to_delete_.Affinity());
-  trailing_whitespace_ = TrailingWhitespacePosition(downstream_end_);
+  trailing_whitespace_ = TrailingWhitespacePosition(
+      downstream_end_, kNotConsiderNonCollapsibleWhitespace);
 
   if (smart_delete_) {
     // skip smart delete if the selection to delete already starts or ends with
@@ -354,7 +378,8 @@
                 .DeepEquivalent();
       upstream_end_ = MostBackwardCaretPosition(pos);
       downstream_end_ = MostForwardCaretPosition(pos);
-      trailing_whitespace_ = TrailingWhitespacePosition(downstream_end_);
+      trailing_whitespace_ = TrailingWhitespacePosition(
+          downstream_end_, kNotConsiderNonCollapsibleWhitespace);
 
       SetStartingSelectionOnSmartDelete(downstream_start_, downstream_end_);
     }
diff --git a/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp b/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
index 54b2c2e..77bf610 100644
--- a/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
+++ b/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.cpp
@@ -317,28 +317,6 @@
   return prev;
 }
 
-// This assumes that it starts in editable content.
-Position TrailingWhitespacePosition(const Position& position,
-                                    WhitespacePositionOption option) {
-  DCHECK(!NeedsLayoutTreeUpdate(position));
-  DCHECK(IsEditablePosition(position)) << position;
-  if (position.IsNull())
-    return Position();
-
-  VisiblePosition visible_position = CreateVisiblePosition(position);
-  UChar character_after_visible_position = CharacterAfter(visible_position);
-  bool is_space =
-      option == kConsiderNonCollapsibleWhitespace
-          ? (IsSpaceOrNewline(character_after_visible_position) ||
-             character_after_visible_position == kNoBreakSpaceCharacter)
-          : IsCollapsibleWhitespace(character_after_visible_position);
-  // The space must not be in another paragraph and it must be editable.
-  if (is_space && !IsEndOfParagraph(visible_position) &&
-      NextPositionOf(visible_position, kCannotCrossEditingBoundary).IsNotNull())
-    return position;
-  return Position();
-}
-
 unsigned NumEnclosingMailBlockquotes(const Position& p) {
   unsigned num = 0;
   for (const Node* n = p.AnchorNode(); n; n = n->parentNode()) {
diff --git a/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.h b/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.h
index dbfd222..8ec9f381 100644
--- a/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.h
+++ b/third_party/WebKit/Source/core/editing/commands/EditingCommandsUtilities.h
@@ -89,12 +89,6 @@
     TextAffinity,
     WhitespacePositionOption = kNotConsiderNonCollapsibleWhitespace);
 
-// TDOO(editing-dev): We should move |TrailingWhitespacePosition()| to
-// "DeleteSelection.cpp" since it is used only in "DeleteSelection.cpp".
-Position TrailingWhitespacePosition(
-    const Position&,
-    WhitespacePositionOption = kNotConsiderNonCollapsibleWhitespace);
-
 unsigned NumEnclosingMailBlockquotes(const Position&);
 
 // -------------------------------------------------------------------------
diff --git a/third_party/WebKit/Source/core/editing/commands/SelectionForUndoStep.cpp b/third_party/WebKit/Source/core/editing/commands/SelectionForUndoStep.cpp
index 0073de3..eb251f8 100644
--- a/third_party/WebKit/Source/core/editing/commands/SelectionForUndoStep.cpp
+++ b/third_party/WebKit/Source/core/editing/commands/SelectionForUndoStep.cpp
@@ -18,10 +18,7 @@
   result.extent_ = selection.Extent();
   result.affinity_ = selection.Affinity();
   result.is_directional_ = selection.IsDirectional();
-  // TODO(editing-dev): We'll use |selection.IsBaseFirst()| once the bug[1]
-  // is resolved. [1] http://crbug.com/751945
-  result.is_base_first_ =
-      result.base_.IsNull() || result.base_ <= result.extent_;
+  result.is_base_first_ = selection.IsBaseFirst();
   return result;
 }
 
diff --git a/third_party/WebKit/Source/core/events/BeforeUnloadEvent.idl b/third_party/WebKit/Source/core/events/BeforeUnloadEvent.idl
index cf47d45..0495a685 100644
--- a/third_party/WebKit/Source/core/events/BeforeUnloadEvent.idl
+++ b/third_party/WebKit/Source/core/events/BeforeUnloadEvent.idl
@@ -30,6 +30,7 @@
 
 // https://html.spec.whatwg.org/#the-beforeunloadevent-interface
 
+[Exposed=Window]
 interface BeforeUnloadEvent : Event {
     attribute DOMString returnValue;
 };
diff --git a/third_party/WebKit/Source/core/events/CompositionEvent.idl b/third_party/WebKit/Source/core/events/CompositionEvent.idl
index 6a98cfe4..891ba59 100644
--- a/third_party/WebKit/Source/core/events/CompositionEvent.idl
+++ b/third_party/WebKit/Source/core/events/CompositionEvent.idl
@@ -26,7 +26,8 @@
 // https://w3c.github.io/uievents/#interface-CompositionEvent
 
 [
-    Constructor(DOMString type, optional CompositionEventInit eventInitDict)
+    Constructor(DOMString type, optional CompositionEventInit eventInitDict),
+    Exposed=Window
 ] interface CompositionEvent : UIEvent {
     readonly attribute DOMString data;
 
diff --git a/third_party/WebKit/Source/core/events/DragEvent.idl b/third_party/WebKit/Source/core/events/DragEvent.idl
index 13cf4b6..57bfcec 100644
--- a/third_party/WebKit/Source/core/events/DragEvent.idl
+++ b/third_party/WebKit/Source/core/events/DragEvent.idl
@@ -5,6 +5,7 @@
 // https://html.spec.whatwg.org/multipage/interaction.html#dragevent
 
 [
+    Exposed=Window,
     Constructor(DOMString type, optional DragEventInit eventInitDict)
 ] interface DragEvent : MouseEvent {
     [ImplementedAs=getDataTransfer] readonly attribute DataTransfer? dataTransfer;
diff --git a/third_party/WebKit/Source/core/events/FocusEvent.idl b/third_party/WebKit/Source/core/events/FocusEvent.idl
index a1cdb613..15b682cd 100644
--- a/third_party/WebKit/Source/core/events/FocusEvent.idl
+++ b/third_party/WebKit/Source/core/events/FocusEvent.idl
@@ -26,7 +26,8 @@
 // https://w3c.github.io/uievents/#interface-FocusEvent
 
 [
-    Constructor(DOMString type, optional FocusEventInit eventInitDict)
+    Constructor(DOMString type, optional FocusEventInit eventInitDict),
+    Exposed=Window
 ] interface FocusEvent : UIEvent {
     readonly attribute EventTarget? relatedTarget;
 };
diff --git a/third_party/WebKit/Source/core/events/HashChangeEvent.idl b/third_party/WebKit/Source/core/events/HashChangeEvent.idl
index 26297463..d317e1b 100644
--- a/third_party/WebKit/Source/core/events/HashChangeEvent.idl
+++ b/third_party/WebKit/Source/core/events/HashChangeEvent.idl
@@ -20,8 +20,9 @@
 // https://html.spec.whatwg.org/multipage/browsers.html#the-hashchangeevent-interface
 
 [
-    Constructor(DOMString type, optional HashChangeEventInit eventInitDict)
+    Constructor(DOMString type, optional HashChangeEventInit eventInitDict),
     // TODO(foolip): Exposed=(Window,Worker)
+    Exposed=Window
 ] interface HashChangeEvent : Event {
     readonly attribute DOMString oldURL;
     readonly attribute DOMString newURL;
diff --git a/third_party/WebKit/Source/core/events/InputEvent.idl b/third_party/WebKit/Source/core/events/InputEvent.idl
index 8d4d35bc..0ba6e09 100644
--- a/third_party/WebKit/Source/core/events/InputEvent.idl
+++ b/third_party/WebKit/Source/core/events/InputEvent.idl
@@ -6,7 +6,8 @@
 // https://w3c.github.io/uievents/#idl-inputevent
 
 [
-    Constructor(DOMString type, optional InputEventInit eventInitDict)
+    Constructor(DOMString type, optional InputEventInit eventInitDict),
+    Exposed=Window
 ] interface InputEvent : UIEvent {
     readonly attribute DOMString? data;
     readonly attribute boolean isComposing;
diff --git a/third_party/WebKit/Source/core/events/KeyboardEvent.idl b/third_party/WebKit/Source/core/events/KeyboardEvent.idl
index c9d23ec..a808fcb99 100644
--- a/third_party/WebKit/Source/core/events/KeyboardEvent.idl
+++ b/third_party/WebKit/Source/core/events/KeyboardEvent.idl
@@ -22,7 +22,8 @@
 
 [
     Constructor(DOMString type, optional KeyboardEventInit eventInitDict),
-    ConstructorCallWith=ScriptState
+    ConstructorCallWith=ScriptState,
+    Exposed=Window
 ] interface KeyboardEvent : UIEvent {
     // KeyLocationCode
     const unsigned long DOM_KEY_LOCATION_STANDARD = 0x00;
diff --git a/third_party/WebKit/Source/core/events/MouseEvent.idl b/third_party/WebKit/Source/core/events/MouseEvent.idl
index bf41fc8..5c76727 100644
--- a/third_party/WebKit/Source/core/events/MouseEvent.idl
+++ b/third_party/WebKit/Source/core/events/MouseEvent.idl
@@ -21,7 +21,8 @@
 
 [
     Constructor(DOMString type, optional MouseEventInit eventInitDict),
-    ConstructorCallWith=ScriptState
+    ConstructorCallWith=ScriptState,
+    Exposed=Window
 ] interface MouseEvent : UIEvent {
     readonly attribute double           screenX;
     readonly attribute double           screenY;
diff --git a/third_party/WebKit/Source/core/events/PageTransitionEvent.idl b/third_party/WebKit/Source/core/events/PageTransitionEvent.idl
index edd5d8b..eb7e57cb 100644
--- a/third_party/WebKit/Source/core/events/PageTransitionEvent.idl
+++ b/third_party/WebKit/Source/core/events/PageTransitionEvent.idl
@@ -26,8 +26,9 @@
 // https://html.spec.whatwg.org/multipage/browsers.html#the-pagetransitionevent-interface
 
 [
-    Constructor(DOMString type, optional PageTransitionEventInit eventInitDict)
+    Constructor(DOMString type, optional PageTransitionEventInit eventInitDict),
     // TODO(foolip): Exposed=(Window,Worker)
+    Exposed=Window
 ] interface PageTransitionEvent : Event {
     readonly attribute boolean persisted;
 };
diff --git a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
index 48d8ec2..9f734b9 100644
--- a/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
+++ b/third_party/WebKit/Source/core/events/PointerEventFactory.cpp
@@ -544,6 +544,22 @@
   return pointer_id_mapping_.Contains(pointer_id);
 }
 
+bool PointerEventFactory::IsPrimary(
+    const WebPointerProperties& properties) const {
+  // Mouse event is always primary.
+  if (properties.pointer_type == WebPointerProperties::PointerType::kMouse)
+    return true;
+
+  // If !id_count, no pointer active, current WebPointerEvent will
+  // be primary pointer when added to map.
+  if (!id_count_[static_cast<int>(properties.pointer_type)])
+    return true;
+
+  int pointer_id = GetPointerEventId(properties);
+  return (pointer_id != PointerEventFactory::kInvalidId &&
+          IsPrimary(pointer_id));
+}
+
 bool PointerEventFactory::IsActiveButtonsState(const int pointer_id) const {
   return pointer_id_mapping_.Contains(pointer_id) &&
          pointer_id_mapping_.at(pointer_id).is_active_buttons;
diff --git a/third_party/WebKit/Source/core/events/PointerEventFactory.h b/third_party/WebKit/Source/core/events/PointerEventFactory.h
index de3f860..af7befe 100644
--- a/third_party/WebKit/Source/core/events/PointerEventFactory.h
+++ b/third_party/WebKit/Source/core/events/PointerEventFactory.h
@@ -76,6 +76,9 @@
   // Otherwise it returns WebPointerProperties::PointerType::Unknown.
   WebPointerProperties::PointerType GetPointerType(int pointer_id) const;
 
+  // Returns whether a WebPoinerProperties is primary pointer.
+  bool IsPrimary(const WebPointerProperties&) const;
+
   static const int kMouseId;
 
  private:
diff --git a/third_party/WebKit/Source/core/events/PopStateEvent.idl b/third_party/WebKit/Source/core/events/PopStateEvent.idl
index ae8210ce..b632977 100644
--- a/third_party/WebKit/Source/core/events/PopStateEvent.idl
+++ b/third_party/WebKit/Source/core/events/PopStateEvent.idl
@@ -28,8 +28,9 @@
 
 [
     Constructor(DOMString type, optional PopStateEventInit eventInitDict),
-    ConstructorCallWith=ScriptState
+    ConstructorCallWith=ScriptState,
     // TODO(foolip): Exposed=(Window,Worker)
+    Exposed=Window
 ] interface PopStateEvent : Event {
     [Custom=Getter] readonly attribute any state;
 };
diff --git a/third_party/WebKit/Source/core/events/TouchEvent.idl b/third_party/WebKit/Source/core/events/TouchEvent.idl
index 04300c54db..50a667e 100644
--- a/third_party/WebKit/Source/core/events/TouchEvent.idl
+++ b/third_party/WebKit/Source/core/events/TouchEvent.idl
@@ -26,7 +26,8 @@
 // https://w3c.github.io/touch-events/#touchevent-interface
 
 [
-    Constructor(DOMString type, optional TouchEventInit eventInitDict)
+    Constructor(DOMString type, optional TouchEventInit eventInitDict),
+    Exposed=Window
 ] interface TouchEvent : UIEvent {
     readonly attribute TouchList touches;
     readonly attribute TouchList targetTouches;
diff --git a/third_party/WebKit/Source/core/events/UIEvent.idl b/third_party/WebKit/Source/core/events/UIEvent.idl
index 2b0e986..20e8fc9 100644
--- a/third_party/WebKit/Source/core/events/UIEvent.idl
+++ b/third_party/WebKit/Source/core/events/UIEvent.idl
@@ -20,7 +20,8 @@
 // https://w3c.github.io/uievents/#interface-UIEvent
 
 [
-    Constructor(DOMString type, optional UIEventInit eventInitDict)
+    Constructor(DOMString type, optional UIEventInit eventInitDict),
+    Exposed=Window
 ] interface UIEvent : Event {
     readonly attribute Window? view;
     readonly attribute long detail;
diff --git a/third_party/WebKit/Source/core/events/WheelEvent.idl b/third_party/WebKit/Source/core/events/WheelEvent.idl
index 4d1163f9..c95ebd8 100644
--- a/third_party/WebKit/Source/core/events/WheelEvent.idl
+++ b/third_party/WebKit/Source/core/events/WheelEvent.idl
@@ -22,7 +22,8 @@
 // https://w3c.github.io/uievents/#interface-WheelEvent
 
 [
-    Constructor(DOMString type, optional WheelEventInit eventInitDict)
+    Constructor(DOMString type, optional WheelEventInit eventInitDict),
+    Exposed=Window
 ] interface WheelEvent : MouseEvent {
     // DeltaModeCode
     const unsigned long DOM_DELTA_PIXEL = 0x00;
diff --git a/third_party/WebKit/Source/core/exported/WebDevToolsAgentImpl.cpp b/third_party/WebKit/Source/core/exported/WebDevToolsAgentImpl.cpp
index 0fa2449..d8538b6f 100644
--- a/third_party/WebKit/Source/core/exported/WebDevToolsAgentImpl.cpp
+++ b/third_party/WebKit/Source/core/exported/WebDevToolsAgentImpl.cpp
@@ -425,12 +425,6 @@
 
 void WebDevToolsAgentImpl::Session::InitializeInspectorSession(
     const String& reattach_state) {
-  String state = reattach_state;
-  // TODO(dgozman): make InspectorSession check for IsNull() instead.
-  String* state_ptr = nullptr;
-  if (!reattach_state.IsNull())
-    state_ptr = &state;
-
   ClientMessageLoopAdapter::EnsureMainThreadDebuggerCreated();
   MainThreadDebugger* main_thread_debugger = MainThreadDebugger::Instance();
   v8::Isolate* isolate = V8PerIsolateData::MainThreadIsolate();
@@ -440,7 +434,7 @@
       this, agent_->probe_sink_.Get(), 0,
       main_thread_debugger->GetV8Inspector(),
       main_thread_debugger->ContextGroupId(inspected_frames->Root()),
-      state_ptr);
+      reattach_state);
 
   InspectorDOMAgent* dom_agent = new InspectorDOMAgent(
       isolate, inspected_frames, inspector_session_->V8Session());
@@ -520,12 +514,11 @@
       inspector_session_, agent_->include_view_agents_, dom_agent,
       inspected_frames, frame_->ViewImpl()->GetPage());
 
-  if (!reattach_state.IsNull())
+  if (!reattach_state.IsNull()) {
     inspector_session_->Restore();
-
-  // TODO(dgozman): do not send empty state from the browser side.
-  if (agent_->worker_client_ && !reattach_state.IsEmpty())
-    agent_->worker_client_->ResumeStartup();
+    if (agent_->worker_client_)
+      agent_->worker_client_->ResumeStartup();
+  }
 }
 
 // --------- WebDevToolsAgentImpl -------------
diff --git a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
index 28e351f..ded5d68c 100644
--- a/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameSerializer.cpp
@@ -557,20 +557,20 @@
   }
 }
 
-void FrameSerializer::AddFontToResources(FontResource* font) {
-  if (!font || !ShouldAddURL(font->Url()))
+void FrameSerializer::AddFontToResources(FontResource& font) {
+  if (!ShouldAddURL(font.Url()))
     return;
-  resource_urls_.insert(font->Url());
-  if (!font || !font->IsLoaded() || !font->ResourceBuffer())
+  resource_urls_.insert(font.Url());
+  if (!font.IsLoaded() || !font.ResourceBuffer())
     return;
 
-  scoped_refptr<const SharedBuffer> data(font->ResourceBuffer());
+  scoped_refptr<const SharedBuffer> data(font.ResourceBuffer());
 
-  AddToResources(font->GetResponse().MimeType(),
-                 font->HasCacheControlNoStoreHeader()
+  AddToResources(font.GetResponse().MimeType(),
+                 font.HasCacheControlNoStoreHeader()
                      ? kHasCacheControlNoStoreHeader
                      : kNoCacheControlNoStoreHeader,
-                 data, font->Url());
+                 data, font.Url());
 }
 
 void FrameSerializer::RetrieveResourcesForProperties(
diff --git a/third_party/WebKit/Source/core/frame/FrameSerializer.h b/third_party/WebKit/Source/core/frame/FrameSerializer.h
index 7e775f5..9f26842 100644
--- a/third_party/WebKit/Source/core/frame/FrameSerializer.h
+++ b/third_party/WebKit/Source/core/frame/FrameSerializer.h
@@ -150,7 +150,7 @@
                       scoped_refptr<const SharedBuffer>,
                       const KURL&);
   void AddImageToResources(ImageResourceContent*, const KURL&);
-  void AddFontToResources(FontResource*);
+  void AddFontToResources(FontResource&);
 
   void RetrieveResourcesForProperties(const CSSPropertyValueSet*, Document&);
   void RetrieveResourcesForProperties(const AtRuleDescriptorValueSet*,
diff --git a/third_party/WebKit/Source/core/frame/LocalFrame.cpp b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
index b76797e..818c9576 100644
--- a/third_party/WebKit/Source/core/frame/LocalFrame.cpp
+++ b/third_party/WebKit/Source/core/frame/LocalFrame.cpp
@@ -884,11 +884,14 @@
     if (is_allowed_navigation)
       framebust_params |= kAllowedBit;
     framebust_histogram.Count(framebust_params);
-    if (has_user_gesture || is_allowed_navigation)
+    if (has_user_gesture || is_allowed_navigation ||
+        target_frame.GetSecurityContext()->GetSecurityOrigin()->CanAccess(
+            SecurityOrigin::Create(destination_url).get())) {
       return true;
+    }
     // Frame-busting used to be generally allowed in most situations, but may
     // now blocked if the document initiating the navigation has never received
-    // a user gesture.
+    // a user gesture and the navigation isn't same-origin with the target.
     if (!RuntimeEnabledFeatures::
             FramebustingNeedsSameOriginOrUserGestureEnabled()) {
       String target_frame_description =
diff --git a/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
index f07a696..638ac79 100644
--- a/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
+++ b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
@@ -1012,14 +1012,8 @@
   LayoutPoint point = GetFrame()->View()->ViewportToContents(point_in_viewport);
   HitTestResult result = GetFrame()->GetEventHandler().HitTestResultAtPoint(
       point, HitTestRequest::kReadOnly | HitTestRequest::kActive);
-  const EphemeralRange range =
-      GetFrame()->RangeForPoint(result.RoundedPointInInnerNodeFrame());
-  if (range.IsNull())
-    return kNotFound;
-  Element* editable =
-      GetFrame()->Selection().RootEditableElementOrDocumentElement();
-  DCHECK(editable);
-  return PlainTextRange::Create(*editable, range).Start();
+  return GetFrame()->Selection().CharacterIndexForPoint(
+      result.RoundedPointInInnerNodeFrame());
 }
 
 bool WebLocalFrameImpl::ExecuteCommand(const WebString& name) {
@@ -2535,6 +2529,10 @@
   return &input_method_controller_;
 }
 
+// TODO(editing-dev): We should move |CreateMarkupInRect()| to
+// "core/editing/serializers/Serialization.cpp".
+static String CreateMarkupInRect(LocalFrame*, const IntPoint&, const IntPoint&);
+
 void WebLocalFrameImpl::ExtractSmartClipData(WebRect rect_in_viewport,
                                              WebString& clip_text,
                                              WebString& clip_html) {
@@ -2544,27 +2542,36 @@
   WebPoint start_point(rect_in_viewport.x, rect_in_viewport.y);
   WebPoint end_point(rect_in_viewport.x + rect_in_viewport.width,
                      rect_in_viewport.y + rect_in_viewport.height);
+  clip_html = CreateMarkupInRect(
+      GetFrame(), GetFrame()->View()->ViewportToContents(start_point),
+      GetFrame()->View()->ViewportToContents(end_point));
+}
+
+// TODO(editing-dev): We should move |CreateMarkupInRect()| to
+// "core/editing/serializers/Serialization.cpp".
+static String CreateMarkupInRect(LocalFrame* frame,
+                                 const IntPoint& start_point,
+                                 const IntPoint& end_point) {
   VisiblePosition start_visible_position =
-      VisiblePositionForViewportPoint(start_point);
+      VisiblePositionForContentsPoint(start_point, frame);
   VisiblePosition end_visible_position =
-      VisiblePositionForViewportPoint(end_point);
+      VisiblePositionForContentsPoint(end_point, frame);
 
   Position start_position = start_visible_position.DeepEquivalent();
   Position end_position = end_visible_position.DeepEquivalent();
 
   // document() will return null if -webkit-user-select is set to none.
   if (!start_position.GetDocument() || !end_position.GetDocument())
-    return;
+    return String();
 
   if (start_position.CompareTo(end_position) <= 0) {
-    clip_html =
-        CreateMarkup(start_position, end_position, kAnnotateForInterchange,
-                     ConvertBlocksToInlines::kNotConvert, kResolveNonLocalURLs);
-  } else {
-    clip_html =
-        CreateMarkup(end_position, start_position, kAnnotateForInterchange,
-                     ConvertBlocksToInlines::kNotConvert, kResolveNonLocalURLs);
+    return CreateMarkup(start_position, end_position, kAnnotateForInterchange,
+                        ConvertBlocksToInlines::kNotConvert,
+                        kResolveNonLocalURLs);
   }
+  return CreateMarkup(end_position, start_position, kAnnotateForInterchange,
+                      ConvertBlocksToInlines::kNotConvert,
+                      kResolveNonLocalURLs);
 }
 
 void WebLocalFrameImpl::AdvanceFocusInForm(WebFocusType focus_type) {
diff --git a/third_party/WebKit/Source/core/html/HTMLAllCollection.idl b/third_party/WebKit/Source/core/html/HTMLAllCollection.idl
index 7dc30f4..7a91a9f 100644
--- a/third_party/WebKit/Source/core/html/HTMLAllCollection.idl
+++ b/third_party/WebKit/Source/core/html/HTMLAllCollection.idl
@@ -32,9 +32,7 @@
 ] interface HTMLAllCollection {
     readonly attribute unsigned long length;
     [ImplementedAs=item] getter Element (unsigned long index);
-    // FIXME: The custom item() implementation may return a NodeList, but the
-    // spec has a (HTMLCollection or Element)? item(DOMString name) method.
-    [Custom] Element? item([Default=Undefined] optional unsigned long index);
+    [Custom] (HTMLCollection or Element)? item(optional DOMString nameOrIndex);
     // FIXME: namedItem() should be a legacycaller.
     [ImplementedAs=namedGetter] getter (HTMLCollection or Element)? namedItem(DOMString name);
 };
diff --git a/third_party/WebKit/Source/core/html/HTMLMeterElement.h b/third_party/WebKit/Source/core/html/HTMLMeterElement.h
index bf3e06b..d0e0970 100644
--- a/third_party/WebKit/Source/core/html/HTMLMeterElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLMeterElement.h
@@ -72,6 +72,7 @@
   bool AreAuthorShadowsAllowed() const override { return false; }
 
   bool SupportLabels() const override { return true; }
+  bool ShouldForceLegacyLayout() const final { return true; }
 
   LayoutObject* CreateLayoutObject(const ComputedStyle&) override;
   void ParseAttribute(const AttributeModificationParams&) override;
diff --git a/third_party/WebKit/Source/core/html/HTMLProgressElement.h b/third_party/WebKit/Source/core/html/HTMLProgressElement.h
index 76d85f16..2106b88 100644
--- a/third_party/WebKit/Source/core/html/HTMLProgressElement.h
+++ b/third_party/WebKit/Source/core/html/HTMLProgressElement.h
@@ -56,6 +56,7 @@
   bool AreAuthorShadowsAllowed() const override { return false; }
   bool ShouldAppearIndeterminate() const override;
   bool SupportLabels() const override { return true; }
+  bool ShouldForceLegacyLayout() const final { return true; }
 
   LayoutObject* CreateLayoutObject(const ComputedStyle&) override;
   LayoutProgress* GetLayoutProgress() const;
diff --git a/third_party/WebKit/Source/core/html/canvas/ImageElementBase.cpp b/third_party/WebKit/Source/core/html/canvas/ImageElementBase.cpp
index 6e839c7..2b4d8bb 100644
--- a/third_party/WebKit/Source/core/html/canvas/ImageElementBase.cpp
+++ b/third_party/WebKit/Source/core/html/canvas/ImageElementBase.cpp
@@ -59,8 +59,7 @@
   if (source_image->IsSVGImage()) {
     UseCounter::Count(GetElement().GetDocument(), WebFeature::kSVGInCanvas2D);
     SVGImage* svg_image = ToSVGImage(source_image.get());
-    LayoutSize image_size =
-        RoundedLayoutSize(svg_image->ConcreteObjectSize(default_object_size));
+    FloatSize image_size = svg_image->ConcreteObjectSize(default_object_size);
     source_image = SVGImageForContainer::Create(
         svg_image, image_size, 1,
         GetElement().GetDocument().CompleteURL(GetElement().ImageSourceURL()));
diff --git a/third_party/WebKit/Source/core/html/forms/HTMLButtonElement.h b/third_party/WebKit/Source/core/html/forms/HTMLButtonElement.h
index 14ec75c..846d7d7 100644
--- a/third_party/WebKit/Source/core/html/forms/HTMLButtonElement.h
+++ b/third_party/WebKit/Source/core/html/forms/HTMLButtonElement.h
@@ -62,6 +62,7 @@
 
   bool IsEnumeratable() const override { return true; }
   bool SupportLabels() const override { return true; }
+  bool ShouldForceLegacyLayout() const final { return true; }
   bool IsInteractiveContent() const override;
   bool SupportsAutofocus() const override;
   bool MatchesDefaultPseudoClass() const override;
diff --git a/third_party/WebKit/Source/core/html/forms/HTMLFormControlElementWithState.h b/third_party/WebKit/Source/core/html/forms/HTMLFormControlElementWithState.h
index 8f5c0c6b..bb4217da 100644
--- a/third_party/WebKit/Source/core/html/forms/HTMLFormControlElementWithState.h
+++ b/third_party/WebKit/Source/core/html/forms/HTMLFormControlElementWithState.h
@@ -65,6 +65,8 @@
   bool IsFormControlElementWithState() const final;
 
  private:
+  bool ShouldForceLegacyLayout() const final { return true; }
+
   // Pointers for DoublyLinkedListNode<HTMLFormControlElementWithState>. This
   // is used for adding an instance to a list of form controls stored in
   // DocumentState. Each instance is only added to its containing document's
diff --git a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
index 182ebb57..2bcecce 100644
--- a/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
+++ b/third_party/WebKit/Source/core/html/imports/HTMLImportsController.cpp
@@ -113,8 +113,7 @@
 
   HTMLImportLoader* loader = HTMLImportLoader::Create(this);
   ResourceFetcher* fetcher = parent->GetDocument()->Fetcher();
-  if (!RawResource::FetchImport(params, fetcher, loader))
-    return nullptr;
+  RawResource::FetchImport(params, fetcher, loader);
   loaders_.push_back(loader);
   HTMLImportChild* child = CreateChild(url, loader, parent, client);
   child->DidStartLoading();
diff --git a/third_party/WebKit/Source/core/html/media/HTMLMediaElementTest.cpp b/third_party/WebKit/Source/core/html/media/HTMLMediaElementTest.cpp
index da6dfb4..ca7ca2a 100644
--- a/third_party/WebKit/Source/core/html/media/HTMLMediaElementTest.cpp
+++ b/third_party/WebKit/Source/core/html/media/HTMLMediaElementTest.cpp
@@ -126,7 +126,8 @@
         data.force_preload_none_for_media_elements);
     if (data.is_cellular) {
       GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(
-          true, WebConnectionType::kWebConnectionTypeCellular3G, 2.0);
+          true, WebConnectionType::kWebConnectionTypeCellular3G,
+          WebEffectiveConnectionType::kTypeUnknown, 1.0, 2.0);
     } else {
       GetNetworkStateNotifier().ClearOverride();
     }
diff --git a/third_party/WebKit/Source/core/html/parser/CSSPreloadScannerTest.cpp b/third_party/WebKit/Source/core/html/parser/CSSPreloadScannerTest.cpp
index 6986c3ee..53372d0 100644
--- a/third_party/WebKit/Source/core/html/parser/CSSPreloadScannerTest.cpp
+++ b/third_party/WebKit/Source/core/html/parser/CSSPreloadScannerTest.cpp
@@ -40,10 +40,8 @@
                const NetworkHintsInterface&) override {
     if (expected_referrer_) {
       Resource* resource = preload_request->Start(GetDocument(), nullptr);
-      if (resource) {
-        EXPECT_EQ(expected_referrer_,
-                  resource->GetResourceRequest().HttpReferrer());
-      }
+      EXPECT_EQ(expected_referrer_,
+                resource->GetResourceRequest().HttpReferrer());
     }
   }
 
diff --git a/third_party/WebKit/Source/core/input/EventHandler.cpp b/third_party/WebKit/Source/core/input/EventHandler.cpp
index 7dfbb4f..23041de 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.cpp
+++ b/third_party/WebKit/Source/core/input/EventHandler.cpp
@@ -85,6 +85,7 @@
 #include "core/paint/PaintLayer.h"
 #include "core/style/ComputedStyle.h"
 #include "core/style/CursorData.h"
+#include "platform/Histogram.h"
 #include "platform/WindowsKeyboardCodes.h"
 #include "platform/geometry/FloatPoint.h"
 #include "platform/graphics/Image.h"
@@ -201,6 +202,8 @@
   mouse_wheel_event_manager_->Clear();
   last_deferred_tap_element_ = nullptr;
   event_handler_will_reset_capturing_mouse_events_node_ = false;
+  should_use_touch_event_adjusted_point_ = false;
+  touch_adjustment_result_.unique_event_id = 0;
 }
 
 void EventHandler::UpdateSelectionForMouseDrag() {
@@ -1372,6 +1375,39 @@
   return !event.TapAreaInRootFrame().IsEmpty();
 }
 
+void EventHandler::CacheTouchAdjustmentResult(uint32_t id,
+                                              FloatPoint adjusted_point) {
+  touch_adjustment_result_.unique_event_id = id;
+  touch_adjustment_result_.adjusted_point = adjusted_point;
+}
+
+bool EventHandler::GestureCorrespondsToAdjustedTouch(
+    const WebGestureEvent& event) {
+  if (!RuntimeEnabledFeatures::UnifiedTouchAdjustmentEnabled())
+    return false;
+  // Gesture events start with a GestureTapDown. If GestureTapDown's unique id
+  // matches stored adjusted touchstart event id, then we can use the stored
+  // result for following gesture event.
+  if (event.GetType() == WebInputEvent::kGestureTapDown) {
+    should_use_touch_event_adjusted_point_ =
+        (event.unique_touch_event_id != 0 &&
+         event.unique_touch_event_id ==
+             touch_adjustment_result_.unique_event_id);
+  }
+
+  // Check if the adjusted point is in the gesture event tap rect.
+  // If not, should not use this touch point in following events.
+  if (should_use_touch_event_adjusted_point_) {
+    FloatRect tap_rect(FloatPoint(event.PositionInRootFrame()) -
+                           FloatSize(event.TapAreaInRootFrame()) * 0.5,
+                       FloatSize(event.TapAreaInRootFrame()));
+    should_use_touch_event_adjusted_point_ =
+        tap_rect.Contains(touch_adjustment_result_.adjusted_point);
+  }
+
+  return should_use_touch_event_adjusted_point_;
+}
+
 bool EventHandler::BestClickableNodeForHitTestResult(
     const HitTestResult& result,
     IntPoint& target_point,
@@ -1634,58 +1670,70 @@
 GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent(
     const WebGestureEvent& gesture_event,
     HitTestRequest::HitTestRequestType hit_type) {
-  // Perform the rect-based hit-test (or point-based if adjustment is disabled).
-  // Note that we don't yet apply hover/active state here because we need to
-  // resolve touch adjustment first so that we apply hover/active it to the
-  // final adjusted node.
-  IntPoint hit_test_point = frame_->View()->RootFrameToContents(
-      FlooredIntPoint(gesture_event.PositionInRootFrame()));
+  // Perform the rect-based hit-test (or point-based if adjustment is
+  // disabled). Note that we don't yet apply hover/active state here because
+  // we need to resolve touch adjustment first so that we apply hover/active
+  // it to the final adjusted node.
+  WebGestureEvent adjusted_event = gesture_event;
   LayoutSize padding;
+
   if (ShouldApplyTouchAdjustment(gesture_event)) {
-    padding = LayoutSize(gesture_event.TapAreaInRootFrame());
-    if (!padding.IsEmpty()) {
-      padding.Scale(1.f / 2);
-      hit_type |= HitTestRequest::kListBased;
+    // If gesture_event unique id matches the stored touch event result, do
+    // point-base hit test. Otherwise add padding to do rect-based hit test.
+    if (GestureCorrespondsToAdjustedTouch(gesture_event)) {
+      adjusted_event.ApplyTouchAdjustment(
+          touch_adjustment_result_.adjusted_point);
+    } else {
+      padding = LayoutSize(adjusted_event.TapAreaInRootFrame());
+      if (!padding.IsEmpty()) {
+        padding.Scale(1.f / 2);
+        hit_type |= HitTestRequest::kListBased;
+      }
     }
   }
+  LayoutPoint hit_test_point(frame_->View()->RootFrameToContents(
+      adjusted_event.PositionInRootFrame()));
   HitTestResult hit_test_result = HitTestResultAtPoint(
       hit_test_point, hit_type | HitTestRequest::kReadOnly, padding);
 
-  // Adjust the location of the gesture to the most likely nearby node, as
-  // appropriate for the type of event.
-  WebGestureEvent adjusted_event = gesture_event;
-  ApplyTouchAdjustment(&adjusted_event, &hit_test_result);
+  if (hit_test_result.IsRectBasedTest()) {
+    // Adjust the location of the gesture to the most likely nearby node, as
+    // appropriate for the type of event.
+    ApplyTouchAdjustment(&adjusted_event, &hit_test_result);
 
-  // Do a new hit-test at the (adjusted) gesture co-ordinates. This is necessary
-  // because rect-based hit testing and touch adjustment sometimes return a
-  // different node than what a point-based hit test would return for the same
-  // point.
-  // FIXME: Fix touch adjustment to avoid the need for a redundant hit test.
-  // http://crbug.com/398914
-  if (ShouldApplyTouchAdjustment(gesture_event)) {
+    // Do a new hit-test at the (adjusted) gesture co-ordinates. This is
+    // necessary because rect-based hit testing and touch adjustment sometimes
+    // return a different node than what a point-based hit test would return for
+    // the same point.
+    // FIXME: Fix touch adjustment to avoid the need for a redundant hit test.
+    // http://crbug.com/398914
     LocalFrame* hit_frame = hit_test_result.InnerNodeFrame();
     if (!hit_frame)
       hit_frame = frame_;
     hit_test_result = EventHandlingUtil::HitTestResultInFrame(
         hit_frame,
         hit_frame->View()->RootFrameToContents(
-            FlooredIntPoint(adjusted_event.PositionInRootFrame())),
+            LayoutPoint(adjusted_event.PositionInRootFrame())),
         (hit_type | HitTestRequest::kReadOnly) & ~HitTestRequest::kListBased);
   }
-
   // If we did a rect-based hit test it must be resolved to the best single node
   // by now to ensure consumers don't accidentally use one of the other
   // candidates.
   DCHECK(!hit_test_result.IsRectBasedTest());
-
+  if (ShouldApplyTouchAdjustment(gesture_event) &&
+      (gesture_event.GetType() == WebInputEvent::kGestureTap ||
+       gesture_event.GetType() == WebInputEvent::kGestureLongPress)) {
+    float adjusted_distance = FloatSize(adjusted_event.PositionInRootFrame() -
+                                        gesture_event.PositionInRootFrame())
+                                  .DiagonalLength();
+    UMA_HISTOGRAM_COUNTS_100("Event.Touch.TouchAdjustment.AdjustDistance",
+                             static_cast<int>(adjusted_distance));
+  }
   return GestureEventWithHitTestResults(adjusted_event, hit_test_result);
 }
 
 void EventHandler::ApplyTouchAdjustment(WebGestureEvent* gesture_event,
                                         HitTestResult* hit_test_result) {
-  if (!ShouldApplyTouchAdjustment(*gesture_event))
-    return;
-
   Node* adjusted_node = nullptr;
   IntPoint adjusted_point =
       FlooredIntPoint(gesture_event->PositionInRootFrame());
diff --git a/third_party/WebKit/Source/core/input/EventHandler.h b/third_party/WebKit/Source/core/input/EventHandler.h
index 8f7d76d..e3be349 100644
--- a/third_party/WebKit/Source/core/input/EventHandler.h
+++ b/third_party/WebKit/Source/core/input/EventHandler.h
@@ -192,6 +192,7 @@
   bool BestContextMenuNodeForHitTestResult(const HitTestResult&,
                                            IntPoint& target_point,
                                            Node*& target_node);
+  void CacheTouchAdjustmentResult(uint32_t, FloatPoint);
 
   WebInputEventResult SendContextMenuEvent(
       const WebMouseEvent&,
@@ -302,7 +303,7 @@
       const GestureEventWithHitTestResults&);
 
   bool ShouldApplyTouchAdjustment(const WebGestureEvent&) const;
-
+  bool GestureCorrespondsToAdjustedTouch(const WebGestureEvent&);
   bool IsSelectingLink(const HitTestResult&);
   bool ShouldShowIBeamForNode(const Node*, const HitTestResult&);
   bool ShouldShowResizeForNode(const Node*, const HitTestResult&);
@@ -400,10 +401,13 @@
   double last_show_press_timestamp_;
   Member<Element> last_deferred_tap_element_;
 
-  // Set on GestureTapDown if the |pointerdown| event corresponding to the
-  // triggering |touchstart| event was canceled. This suppresses mouse event
-  // firing for the current gesture sequence (i.e. until next GestureTapDown).
-  bool suppress_mouse_events_from_gestures_;
+  // Set on GestureTapDown if unique_touch_event_id_ matches cached adjusted
+  // touchstart event id.
+  bool should_use_touch_event_adjusted_point_;
+
+  // Stored the last touch type primary pointer down adjustment result.
+  // This is used in gesture event hit test.
+  TouchAdjustmentResult touch_adjustment_result_;
 
   // ShouldShowIBeamForNode's unit tests:
   FRIEND_TEST_ALL_PREFIXES(EventHandlerTest, HitOnNothingDoesNotShowIBeam);
diff --git a/third_party/WebKit/Source/core/input/PointerEventManager.cpp b/third_party/WebKit/Source/core/input/PointerEventManager.cpp
index 6e0a75c..df53dad 100644
--- a/third_party/WebKit/Source/core/input/PointerEventManager.cpp
+++ b/third_party/WebKit/Source/core/input/PointerEventManager.cpp
@@ -10,6 +10,7 @@
 #include "core/events/MouseEvent.h"
 #include "core/frame/EventHandlerRegistry.h"
 #include "core/frame/LocalFrameView.h"
+#include "core/frame/Settings.h"
 #include "core/frame/UseCounter.h"
 #include "core/html/canvas/HTMLCanvasElement.h"
 #include "core/input/EventHandler.h"
@@ -26,6 +27,8 @@
 
 namespace {
 
+const float kMaxAdjustmentRadiusDips = 16.f;
+
 size_t ToPointerTypeIndex(WebPointerProperties::PointerType t) {
   return static_cast<size_t>(t);
 }
@@ -33,6 +36,11 @@
   return registry.HasEventHandlers(EventHandlerRegistry::kPointerEvent);
 }
 
+LayoutSize GetHitTestRectForAdjustment(const IntSize& touch_area) {
+  const LayoutSize kMaxSize(kMaxAdjustmentRadiusDips, kMaxAdjustmentRadiusDips);
+  return LayoutSize(touch_area).ShrunkTo(kMaxSize);
+}
+
 }  // namespace
 
 PointerEventManager::PointerEventManager(LocalFrame& frame,
@@ -295,6 +303,51 @@
   }
 }
 
+bool PointerEventManager::ShouldAdjustPointerEvent(
+    const WebPointerEvent& pointer_event) const {
+  if (frame_->GetSettings() &&
+      !frame_->GetSettings()->GetTouchAdjustmentEnabled())
+    return false;
+
+  return RuntimeEnabledFeatures::UnifiedTouchAdjustmentEnabled() &&
+         pointer_event.pointer_type ==
+             WebPointerProperties::PointerType::kTouch &&
+         pointer_event.GetType() == WebInputEvent::kPointerDown &&
+         pointer_event_factory_.IsPrimary(pointer_event);
+}
+
+void PointerEventManager::AdjustTouchPointerEvent(
+    WebPointerEvent& pointer_event) {
+  DCHECK(pointer_event.pointer_type ==
+         WebPointerProperties::PointerType::kTouch);
+
+  LayoutSize padding = GetHitTestRectForAdjustment(
+      IntSize(pointer_event.width / 2, pointer_event.height / 2));
+
+  if (padding.IsEmpty())
+    return;
+
+  HitTestRequest::HitTestRequestType hit_type =
+      HitTestRequest::kTouchEvent | HitTestRequest::kReadOnly |
+      HitTestRequest::kActive | HitTestRequest::kListBased;
+  LayoutPoint hit_test_point = frame_->View()->RootFrameToContents(
+      LayoutPoint(pointer_event.PositionInWidget()));
+  HitTestResult hit_test_result =
+      frame_->GetEventHandler().HitTestResultAtPoint(hit_test_point, hit_type,
+                                                     padding);
+
+  Node* adjusted_node = nullptr;
+  IntPoint adjusted_point;
+  bool adjusted = frame_->GetEventHandler().BestClickableNodeForHitTestResult(
+      hit_test_result, adjusted_point, adjusted_node);
+
+  if (adjusted)
+    pointer_event.SetPositionInWidget(adjusted_point.X(), adjusted_point.Y());
+
+  frame_->GetEventHandler().CacheTouchAdjustmentResult(
+      pointer_event.unique_touch_event_id, pointer_event.PositionInWidget());
+}
+
 EventHandlingUtil::PointerEventTarget
 PointerEventManager::ComputePointerEventTarget(
     const WebPointerEvent& web_pointer_event) {
@@ -435,8 +488,11 @@
   // The rest of this function does not handle non-scrolling
   // (i.e. mouse like) events yet.
 
+  WebPointerEvent pointer_event = event.WebPointerEventInRootFrame();
+  if (ShouldAdjustPointerEvent(event))
+    AdjustTouchPointerEvent(pointer_event);
   EventHandlingUtil::PointerEventTarget pointer_event_target =
-      ComputePointerEventTarget(event.WebPointerEventInRootFrame());
+      ComputePointerEventTarget(pointer_event);
 
   // Any finger lifting is a user gesture only when it wasn't associated with a
   // scroll.
diff --git a/third_party/WebKit/Source/core/input/PointerEventManager.h b/third_party/WebKit/Source/core/input/PointerEventManager.h
index 5cd4178..b251905 100644
--- a/third_party/WebKit/Source/core/input/PointerEventManager.h
+++ b/third_party/WebKit/Source/core/input/PointerEventManager.h
@@ -11,6 +11,7 @@
 #include "core/events/PointerEventFactory.h"
 #include "core/input/BoundaryEventDispatcher.h"
 #include "core/input/TouchEventManager.h"
+#include "core/page/TouchAdjustment.h"
 #include "platform/wtf/Allocator.h"
 #include "platform/wtf/HashMap.h"
 #include "public/platform/WebInputEventResult.h"
@@ -197,6 +198,11 @@
                               EventTarget** pointer_capture_target,
                               EventTarget** pending_pointer_capture_target);
 
+  // Only adjust touch type primary pointer down.
+  bool ShouldAdjustPointerEvent(const WebPointerEvent&) const;
+  // Adjust coordinates so it can be used to find the best clickable target.
+  void AdjustTouchPointerEvent(WebPointerEvent&);
+
   // NOTE: If adding a new field to this class please ensure that it is
   // cleared in |PointerEventManager::clear()|.
 
diff --git a/third_party/WebKit/Source/core/input/Touch.idl b/third_party/WebKit/Source/core/input/Touch.idl
index c5266122..ca22262 100644
--- a/third_party/WebKit/Source/core/input/Touch.idl
+++ b/third_party/WebKit/Source/core/input/Touch.idl
@@ -27,7 +27,8 @@
 
 [
     Constructor(TouchInit initDict),
-    ConstructorCallWith=Document
+    ConstructorCallWith=Document,
+    Exposed=Window
 ] interface Touch {
     readonly attribute long identifier;
     readonly attribute EventTarget target;
diff --git a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.cpp
index 2fd5a1f..b425d02 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.cpp
@@ -30,12 +30,21 @@
 
 #include "core/inspector/InspectorMemoryAgent.h"
 
+#include "base/debug/stack_trace.h"
 #include "core/frame/LocalFrameClient.h"
 #include "core/inspector/InspectedFrames.h"
 #include "platform/InstanceCounters.h"
+#include "platform/memory_profiler/SamplingNativeHeapProfiler.h"
 
 namespace blink {
 
+const unsigned kDefaultNativeMemorySamplingInterval = 128 * 1024;
+
+namespace MemoryAgentState {
+static const char samplingProfileInterval[] =
+    "memoryAgentSamplingProfileInterval";
+}  // namespace MemoryAgentState
+
 using PrepareForLeakDetectionCallback =
     protocol::Memory::Backend::PrepareForLeakDetectionCallback;
 using protocol::Response;
@@ -76,4 +85,87 @@
   InspectorBaseAgent::Trace(visitor);
 }
 
+void InspectorMemoryAgent::Restore() {
+  int sampling_interval = 0;
+  state_->getInteger(MemoryAgentState::samplingProfileInterval,
+                     &sampling_interval);
+  // The action below won't start sampling if the sampling_interval is zero.
+  startSampling(protocol::Maybe<int>(sampling_interval),
+                protocol::Maybe<bool>());
+}
+
+Response InspectorMemoryAgent::startSampling(
+    protocol::Maybe<int> in_sampling_interval,
+    protocol::Maybe<bool> in_suppressRandomness) {
+  int interval =
+      in_sampling_interval.fromMaybe(kDefaultNativeMemorySamplingInterval);
+  if (interval <= 0)
+    return Response::Error("Invalid sampling rate.");
+  SamplingNativeHeapProfiler::GetInstance()->SetSamplingInterval(interval);
+  state_->setInteger(MemoryAgentState::samplingProfileInterval, interval);
+  if (in_suppressRandomness.fromMaybe(false))
+    SamplingNativeHeapProfiler::GetInstance()->SuppressRandomnessForTest();
+  SamplingNativeHeapProfiler::GetInstance()->Start();
+  return Response::OK();
+}
+
+Response InspectorMemoryAgent::stopSampling() {
+  int sampling_interval = 0;
+  state_->getInteger(MemoryAgentState::samplingProfileInterval,
+                     &sampling_interval);
+  if (!sampling_interval)
+    return Response::Error("Sampling profiler is not started.");
+  SamplingNativeHeapProfiler::GetInstance()->Stop();
+  state_->setInteger(MemoryAgentState::samplingProfileInterval, 0);
+  return Response::OK();
+}
+
+Response InspectorMemoryAgent::getSamplingProfile(
+    std::unique_ptr<protocol::Memory::SamplingProfile>* out_profile) {
+  std::unique_ptr<protocol::Array<protocol::Memory::SamplingProfileNode>>
+      samples =
+          protocol::Array<protocol::Memory::SamplingProfileNode>::create();
+  std::vector<SamplingNativeHeapProfiler::Sample> raw_samples =
+      SamplingNativeHeapProfiler::GetInstance()->GetSamples();
+  // TODO(alph): Only report samples recorded within the current session.
+  for (auto it = raw_samples.begin(); it != raw_samples.end(); ++it) {
+    std::unique_ptr<protocol::Array<protocol::String>> stack =
+        protocol::Array<protocol::String>::create();
+    std::vector<std::string> source_stack = Symbolize(it->stack);
+    for (auto it2 = source_stack.begin(); it2 != source_stack.end(); ++it2)
+      stack->addItem(it2->c_str());
+    samples->addItem(protocol::Memory::SamplingProfileNode::create()
+                         .setSize(it->size)
+                         .setCount(it->count)
+                         .setStack(std::move(stack))
+                         .build());
+  }
+  std::unique_ptr<protocol::Memory::SamplingProfile> result =
+      protocol::Memory::SamplingProfile::create()
+          .setSamples(std::move(samples))
+          .build();
+  *out_profile = std::move(result);
+  return Response::OK();
+}
+
+std::vector<std::string> InspectorMemoryAgent::Symbolize(
+    const std::vector<void*>& addresses) {
+  // TODO(alph): Move symbolization to the client.
+  std::vector<std::string> result;
+  base::debug::StackTrace trace(addresses.data(), addresses.size());
+  std::string text = trace.ToString();
+
+  size_t next_pos;
+  for (size_t pos = 0;; pos = next_pos + 1) {
+    next_pos = text.find('\n', pos);
+    if (next_pos == std::string::npos)
+      break;
+    std::string line = text.substr(pos, next_pos - pos);
+    size_t space_pos = line.rfind(' ');
+    result.push_back(
+        line.substr(space_pos == std::string::npos ? 0 : space_pos + 1));
+  }
+  return result;
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
index 2c953846..8f88c04a 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorMemoryAgent.h
@@ -52,6 +52,7 @@
   ~InspectorMemoryAgent() override;
 
   void Trace(blink::Visitor*) override;
+  void Restore() override;
 
   protocol::Response getDOMCounters(int* documents,
                                     int* nodes,
@@ -62,11 +63,24 @@
   // BlinkLeakDetectorClient:
   void OnLeakDetectionComplete() override;
 
+  // Memory protocol domain:
+  protocol::Response startSampling(
+      protocol::Maybe<int> in_samplingInterval,
+      protocol::Maybe<bool> in_suppressRandomness) override;
+  protocol::Response stopSampling() override;
+  protocol::Response getSamplingProfile(
+      std::unique_ptr<protocol::Memory::SamplingProfile>*) override;
+
  private:
   explicit InspectorMemoryAgent(InspectedFrames*);
+
+  std::vector<std::string> Symbolize(const std::vector<void*>& addresses);
+
   std::unique_ptr<BlinkLeakDetector> detector_;
   std::unique_ptr<PrepareForLeakDetectionCallback> callback_;
   Member<InspectedFrames> frames_;
+  std::map<void*, std::string> symbols_cache_;
+
   DISALLOW_COPY_AND_ASSIGN(InspectorMemoryAgent);
 };
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
index e7f334c..db06689 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorNetworkAgent.cpp
@@ -76,6 +76,7 @@
 #include "platform/wtf/Time.h"
 #include "platform/wtf/text/Base64.h"
 #include "public/platform/TaskType.h"
+#include "public/platform/WebEffectiveConnectionType.h"
 #include "public/platform/WebMixedContentContextType.h"
 #include "public/platform/WebURLLoaderClient.h"
 #include "public/platform/WebURLRequest.h"
@@ -1460,11 +1461,13 @@
   }
   // TODO(dgozman): networkStateNotifier is per-process. It would be nice to
   // have per-frame override instead.
-  if (offline || latency || download_throughput || upload_throughput)
+  if (offline || latency || download_throughput || upload_throughput) {
     GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(
-        !offline, type, download_throughput / (1024 * 1024 / 8));
-  else
+        !offline, type, base::nullopt, latency,
+        download_throughput / (1024 * 1024 / 8));
+  } else {
     GetNetworkStateNotifier().ClearOverride();
+  }
   return Response::OK();
 }
 
diff --git a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
index 7c495805..53fac37 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorResourceContentLoader.cpp
@@ -95,13 +95,10 @@
       options.initiator_info.name = FetchInitiatorTypeNames::internal;
       FetchParameters params(resource_request, options);
       ResourceClient* resource_client = new ResourceClient(this);
-      Resource* resource =
-          RawResource::Fetch(params, document->Fetcher(), resource_client);
-      if (resource) {
-        // Prevent garbage collection by holding a reference to this resource.
-        resources_.push_back(resource);
-        pending_resource_clients_.insert(resource_client);
-      }
+      // Prevent garbage collection by holding a reference to this resource.
+      resources_.push_back(
+          RawResource::Fetch(params, document->Fetcher(), resource_client));
+      pending_resource_clients_.insert(resource_client);
     }
 
     HeapVector<Member<CSSStyleSheet>> style_sheets;
@@ -120,12 +117,9 @@
       options.initiator_info.name = FetchInitiatorTypeNames::internal;
       FetchParameters params(resource_request, options);
       ResourceClient* resource_client = new ResourceClient(this);
-      Resource* resource = CSSStyleSheetResource::Fetch(
-          params, document->Fetcher(), resource_client);
-      if (!resource)
-        continue;
       // Prevent garbage collection by holding a reference to this resource.
-      resources_.push_back(resource);
+      resources_.push_back(CSSStyleSheetResource::Fetch(
+          params, document->Fetcher(), resource_client));
       // A cache hit for a css stylesheet will complete synchronously. Don't
       // mark the client as pending if it already finished.
       if (resource_client->GetResource())
diff --git a/third_party/WebKit/Source/core/inspector/InspectorSession.cpp b/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
index 0722ee3..1d9af75 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
+++ b/third_party/WebKit/Source/core/inspector/InspectorSession.cpp
@@ -23,27 +23,25 @@
                                    int session_id,
                                    v8_inspector::V8Inspector* inspector,
                                    int context_group_id,
-                                   const String* saved_state)
+                                   const String& reattach_state)
     : client_(client),
       v8_session_(nullptr),
       session_id_(session_id),
       disposed_(false),
       instrumenting_agents_(instrumenting_agents),
       inspector_backend_dispatcher_(new protocol::UberDispatcher(this)) {
-  if (saved_state) {
+  String v8_state;
+  if (!reattach_state.IsNull()) {
     std::unique_ptr<protocol::Value> state =
-        protocol::StringUtil::parseJSON(*saved_state);
+        protocol::StringUtil::parseJSON(reattach_state);
     if (state)
       state_ = protocol::DictionaryValue::cast(std::move(state));
     if (!state_)
       state_ = protocol::DictionaryValue::create();
+    state_->getString(kV8StateKey, &v8_state);
   } else {
     state_ = protocol::DictionaryValue::create();
   }
-
-  String v8_state;
-  if (saved_state)
-    state_->getString(kV8StateKey, &v8_state);
   v8_session_ = inspector->connect(context_group_id, this,
                                    ToV8InspectorStringView(v8_state));
 }
diff --git a/third_party/WebKit/Source/core/inspector/InspectorSession.h b/third_party/WebKit/Source/core/inspector/InspectorSession.h
index b85aacc..d98050f 100644
--- a/third_party/WebKit/Source/core/inspector/InspectorSession.h
+++ b/third_party/WebKit/Source/core/inspector/InspectorSession.h
@@ -39,7 +39,7 @@
                    int session_id,
                    v8_inspector::V8Inspector*,
                    int context_group_id,
-                   const String* saved_state);
+                   const String& reattach_state);
   ~InspectorSession() override;
   // TODO(dgozman): remove session id once WokrerInspectorController
   // does not use it anymore.
diff --git a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
index ce2779e..953c76a 100644
--- a/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
+++ b/third_party/WebKit/Source/core/inspector/WorkerInspectorController.cpp
@@ -74,7 +74,7 @@
 
   InspectorSession* session = new InspectorSession(
       this, probe_sink_.Get(), session_id, debugger_->GetV8Inspector(),
-      debugger_->ContextGroupId(thread_), nullptr);
+      debugger_->ContextGroupId(thread_), String());
   session->Append(new InspectorLogAgent(thread_->GetConsoleMessageStorage(),
                                         nullptr, session->V8Session()));
   if (thread_->GlobalScope()->IsWorkerGlobalScope()) {
diff --git a/third_party/WebKit/Source/core/inspector/browser_protocol.json b/third_party/WebKit/Source/core/inspector/browser_protocol.json
index 377abc97..53e02ae3 100644
--- a/third_party/WebKit/Source/core/inspector/browser_protocol.json
+++ b/third_party/WebKit/Source/core/inspector/browser_protocol.json
@@ -6066,11 +6066,6 @@
                             "type": "integer"
                         },
                         {
-                            "name": "timestamp",
-                            "description": "Time at which the event occurred.",
-                            "$ref": "TimeSinceEpoch"
-                        },
-                        {
                             "name": "button",
                             "description": "Mouse button.",
                             "type": "string",
@@ -6082,6 +6077,12 @@
                             ]
                         },
                         {
+                            "name": "timestamp",
+                            "description": "Time at which the event occurred (default: current time).",
+                            "optional": true,
+                            "$ref": "TimeSinceEpoch"
+                        },
+                        {
                             "name": "deltaX",
                             "description": "X delta in DIP for mouse wheel event (default: 0).",
                             "optional": true,
@@ -6886,6 +6887,45 @@
                         "moderate",
                         "critical"
                     ]
+                },
+                {
+                    "id": "SamplingProfileNode",
+                    "description": "Heap profile sample.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "size",
+                            "description": "Size of the sampled allocation.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "count",
+                            "description": "Number of sampled allocations of that size.",
+                            "type": "number"
+                        },
+                        {
+                            "name": "stack",
+                            "description": "Execution stack at the point of allocation.",
+                            "type": "array",
+                            "items": {
+                                "type": "string"
+                            }
+                        }
+                    ]
+                },
+                {
+                    "id": "SamplingProfile",
+                    "description": "Array of heap profile samples.",
+                    "type": "object",
+                    "properties": [
+                        {
+                            "name": "samples",
+                            "type": "array",
+                            "items": {
+                                "$ref": "SamplingProfileNode"
+                            }
+                        }
+                    ]
                 }
             ],
             "commands": [
@@ -6930,6 +6970,38 @@
                             "$ref": "PressureLevel"
                         }
                     ]
+                },
+                {
+                    "name": "startSampling",
+                    "description": "Start collecting native memory profile.",
+                    "parameters": [
+                        {
+                            "name": "samplingInterval",
+                            "description": "Average number of bytes between samples.",
+                            "optional": true,
+                            "type": "integer"
+                        },
+                        {
+                            "name": "suppressRandomness",
+                            "description": "Do not randomize intervals between samples.",
+                            "optional": true,
+                            "type": "boolean"
+                        }
+                    ]
+                },
+                {
+                    "name": "stopSampling",
+                    "description": "Stop collecting native memory profile."
+                },
+                {
+                    "name": "getSamplingProfile",
+                    "description": "Retrieve collected native memory profile.",
+                    "returns": [
+                        {
+                            "name": "profile",
+                            "$ref": "SamplingProfile"
+                        }
+                    ]
                 }
             ]
         },
diff --git a/third_party/WebKit/Source/core/inspector/browser_protocol.pdl b/third_party/WebKit/Source/core/inspector/browser_protocol.pdl
index 20af43d7..4a2f52b6 100644
--- a/third_party/WebKit/Source/core/inspector/browser_protocol.pdl
+++ b/third_party/WebKit/Source/core/inspector/browser_protocol.pdl
@@ -2764,14 +2764,14 @@
       integer x
       # Y coordinate of the mouse pointer in DIP.
       integer y
-      # Time at which the event occurred.
-      TimeSinceEpoch timestamp
       # Mouse button.
       enum button
         none
         left
         middle
         right
+      # Time at which the event occurred (default: current time).
+      optional TimeSinceEpoch timestamp
       # X delta in DIP for mouse wheel event (default: 0).
       optional number deltaX
       # Y delta in DIP for mouse wheel event (default: 0).
@@ -3151,6 +3151,37 @@
       # Memory pressure level of the notification.
       PressureLevel level
 
+  # Start collecting native memory profile.
+  command startSampling
+    parameters
+      # Average number of bytes between samples.
+      optional integer samplingInterval
+      # Do not randomize intervals between samples.
+      optional boolean suppressRandomness
+
+  # Stop collecting native memory profile.
+  command stopSampling
+
+  # Retrieve collected native memory profile.
+  command getSamplingProfile
+    returns
+      SamplingProfile profile
+
+  # Heap profile sample.
+  type SamplingProfileNode extends object
+    properties
+      # Size of the sampled allocation.
+      number size
+      # Number of sampled allocations of that size.
+      number count
+      # Execution stack at the point of allocation.
+      array of string stack
+
+  # Array of heap profile samples.
+  type SamplingProfile extends object
+    properties
+      array of SamplingProfileNode samples
+
 # Network domain allows tracking network activities of the page. It exposes information about http,
 # file, data and other requests and responses, their headers, bodies, timing, etc.
 domain Network
diff --git a/third_party/WebKit/Source/core/inspector/inspector_protocol_config.json b/third_party/WebKit/Source/core/inspector/inspector_protocol_config.json
index 7cc7e78..0a1aa05 100644
--- a/third_party/WebKit/Source/core/inspector/inspector_protocol_config.json
+++ b/third_party/WebKit/Source/core/inspector/inspector_protocol_config.json
@@ -69,7 +69,7 @@
             },
             {
                 "domain": "Memory",
-                "include": ["getDOMCounters", "prepareForLeakDetection"],
+                "include": ["getDOMCounters", "prepareForLeakDetection", "startSampling", "stopSampling", "getSamplingProfile"],
                 "async": ["prepareForLeakDetection"]
             },
             {
diff --git a/third_party/WebKit/Source/core/layout/BUILD.gn b/third_party/WebKit/Source/core/layout/BUILD.gn
index 7a7c3c02..c0fbbff 100644
--- a/third_party/WebKit/Source/core/layout/BUILD.gn
+++ b/third_party/WebKit/Source/core/layout/BUILD.gn
@@ -333,6 +333,8 @@
     "ng/inline/ng_baseline.h",
     "ng/inline/ng_bidi_paragraph.cc",
     "ng/inline/ng_bidi_paragraph.h",
+    "ng/inline/ng_caret_rect.cc",
+    "ng/inline/ng_caret_rect.h",
     "ng/inline/ng_inline_box_state.cc",
     "ng/inline/ng_inline_box_state.h",
     "ng/inline/ng_inline_break_token.cc",
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
index 7165e08..3236ea9b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
@@ -4401,18 +4401,16 @@
     return true;
   }
 
-  // Non-container appearances (checkboxes and radio) behave as if it creates
-  // BFC. LayoutNG requires when empty non-NG LayoutObject has intrinsic sizes,
-  // it must create a new BFC.
-  if (StyleRef().HasAppearance() &&
-      !LayoutTheme::GetTheme().IsControlContainer(StyleRef().Appearance()))
-    return true;
-
   // NGBlockNode cannot compute margin collapsing across NG/non-NG boundary.
   // Create a new formatting context for non-NG node to prevent margin
   // collapsing.
-  if (RuntimeEnabledFeatures::LayoutNGEnabled())
+  if (RuntimeEnabledFeatures::LayoutNGEnabled()) {
+    if (Node* node = GetNode()) {
+      if (node->IsElementNode() && ToElement(*node).ShouldForceLegacyLayout())
+        return true;
+    }
     return StyleRef().UserModify() != EUserModify::kReadOnly;
+  }
 
   return false;
 }
diff --git a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
index 11af824..d6f1c022 100644
--- a/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutGrid.cpp
@@ -1870,16 +1870,6 @@
       // self-end is based on the child's block-flow direction. That's why we
       // need to check against the grid container's block-flow direction.
       return has_same_writing_mode ? kGridAxisEnd : kGridAxisStart;
-    case ItemPosition::kLeft:
-      // Aligns the alignment subject to be flush with the alignment container's
-      // 'line-left' edge. The alignment axis (column axis) is always orthogonal
-      // to the inline axis, hence this value behaves as 'start'.
-      return kGridAxisStart;
-    case ItemPosition::kRight:
-      // Aligns the alignment subject to be flush with the alignment container's
-      // 'line-right' edge. The alignment axis (column axis) is always
-      // orthogonal to the inline axis, hence this value behaves as 'start'.
-      return kGridAxisStart;
     case ItemPosition::kCenter:
       return kGridAxisCenter;
     // Only used in flex layout, otherwise equivalent to 'start'.
@@ -1901,6 +1891,8 @@
       return kGridAxisStart;
     case ItemPosition::kAuto:
     case ItemPosition::kNormal:
+    case ItemPosition::kLeft:
+    case ItemPosition::kRight:
       break;
   }
 
@@ -2326,13 +2318,13 @@
   bool is_row_axis = direction == kForColumns;
   switch (position) {
     case ContentPosition::kLeft:
-      // The align-content's axis is always orthogonal to the inline-axis.
-      return {LayoutUnit(), LayoutUnit()};
+      if (is_row_axis)
+        return {LayoutUnit(), LayoutUnit()};
+      break;
     case ContentPosition::kRight:
       if (is_row_axis)
         return {available_free_space, LayoutUnit()};
-      // The align-content's axis is always orthogonal to the inline-axis.
-      return {LayoutUnit(), LayoutUnit()};
+      break;
     case ContentPosition::kCenter:
       return {available_free_space / 2, LayoutUnit()};
     // Only used in flex layout, for other layout, it's equivalent to 'End'.
diff --git a/third_party/WebKit/Source/core/layout/LayoutImageResource.cpp b/third_party/WebKit/Source/core/layout/LayoutImageResource.cpp
index d8a0fda..796f867b 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImageResource.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutImageResource.cpp
@@ -158,7 +158,7 @@
     url = node->GetDocument().CompleteURL(url_string);
   }
   return SVGImageForContainer::Create(
-      ToSVGImage(image), container_size,
+      ToSVGImage(image), FloatSize(container_size),
       layout_object_->StyleRef().EffectiveZoom(), url);
 }
 
diff --git a/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.cpp b/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.cpp
index 62e0995..ac991b7 100644
--- a/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutImageResourceStyleImage.cpp
@@ -65,7 +65,7 @@
   if (style_image_->IsPendingImage())
     return nullptr;
   return style_image_->GetImage(*layout_object_, layout_object_->GetDocument(),
-                                layout_object_->StyleRef(), size);
+                                layout_object_->StyleRef(), FloatSize(size));
 }
 
 FloatSize LayoutImageResourceStyleImage::ImageSize(float multiplier) const {
diff --git a/third_party/WebKit/Source/core/layout/LayoutObject.cpp b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
index 36f1b34..2c5747d5 100644
--- a/third_party/WebKit/Source/core/layout/LayoutObject.cpp
+++ b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
@@ -78,6 +78,7 @@
 #include "core/layout/ng/layout_ng_block_flow.h"
 #include "core/layout/ng/layout_ng_list_item.h"
 #include "core/layout/ng/layout_ng_table_cell.h"
+#include "core/layout/ng/ng_block_node.h"
 #include "core/layout/ng/ng_layout_result.h"
 #include "core/layout/ng/ng_unpositioned_float.h"
 #include "core/layout/svg/LayoutSVGResourceClipper.h"
@@ -110,12 +111,10 @@
 
 static bool g_modify_layout_tree_structure_any_state = false;
 
-bool ShouldUseNewLayout(const ComputedStyle& style) {
-  if (!RuntimeEnabledFeatures::LayoutNGEnabled())
-    return false;
-  // TODO(layout-dev): Remove user-modify style check once editing handles
-  // LayoutNG.
-  return style.UserModify() == EUserModify::kReadOnly;
+inline bool ShouldUseNewLayout(const ComputedStyle& style) {
+  return RuntimeEnabledFeatures::LayoutNGEnabled() &&
+         !style.ForceLegacyLayout() &&
+         style.UserModify() == EUserModify::kReadOnly;
 }
 
 }  // namespace
@@ -223,7 +222,7 @@
     case EDisplay::kTableColumn:
       return new LayoutTableCol(element);
     case EDisplay::kTableCell:
-      if (RuntimeEnabledFeatures::LayoutNGEnabled())
+      if (ShouldUseNewLayout(style))
         return new LayoutNGTableCell(element);
       return new LayoutTableCell(element);
     case EDisplay::kTableCaption:
@@ -703,7 +702,7 @@
     return nullptr;
   LayoutBox* box = EnclosingBox();
   DCHECK(box);
-  return box->IsLayoutNGMixin() ? ToLayoutBlockFlow(box) : nullptr;
+  return NGBlockNode::CanUseNewLayout(*box) ? ToLayoutBlockFlow(box) : nullptr;
 }
 
 const NGPhysicalBoxFragment* LayoutObject::EnclosingBlockFlowFragment() const {
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.cc
new file mode 100644
index 0000000..b948e91
--- /dev/null
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.cc
@@ -0,0 +1,260 @@
+// 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 "core/layout/ng/inline/ng_caret_rect.h"
+
+#include "core/editing/LocalCaretRect.h"
+#include "core/editing/PositionWithAffinity.h"
+#include "core/layout/LayoutBlockFlow.h"
+#include "core/layout/LayoutTextFragment.h"
+#include "core/layout/ng/geometry/ng_physical_offset_rect.h"
+#include "core/layout/ng/inline/ng_inline_break_token.h"
+#include "core/layout/ng/inline/ng_inline_fragment_traversal.h"
+#include "core/layout/ng/inline/ng_offset_mapping.h"
+#include "core/layout/ng/inline/ng_physical_line_box_fragment.h"
+#include "core/layout/ng/inline/ng_physical_text_fragment.h"
+#include "core/layout/ng/ng_physical_box_fragment.h"
+
+namespace blink {
+
+namespace {
+
+// -------------------------------------
+
+// Caret position calculation and its helpers.
+
+// The calculation takes the following input:
+// - An inline formatting context as a |LayoutBlockFlow|
+// - An offset in the |text_content_| string of the above context
+// - A TextAffinity
+//
+// The calculation iterates all inline fragments in the context, and tries to
+// compute an NGCaretPosition using the "caret resolution process" below:
+//
+// The (offset, affinity) pair is compared against each inline fragment to see
+// if the corresponding caret should be placed in the fragment, using the
+// |TryResolveCaretPositionInXXX()| functions. These functions may return:
+// - Failed, indicating that the caret must not be placed in the fragment;
+// - Resolved, indicating that the care should be placed in the fragment, and
+//   no further search is required. The result NGCaretPosition is returned
+//   together.
+// - FoundCandidate, indicating that the caret may be placed in the fragment;
+//   however, further search may find a better position. The candidate
+//   NGCaretPosition is also returned together.
+
+enum class ResolutionType { kFailed, kFoundCandidate, kResolved };
+struct CaretPositionResolution {
+  ResolutionType type = ResolutionType::kFailed;
+  NGCaretPosition caret_position;
+};
+
+// TODO(xiaochengh): Try to avoid passing the seemingly redundant line boxes.
+// TODO(xiaochengh): Move this function to NGPhysicalFragment.
+bool IsFragmentAfterLineWrap(const NGPhysicalFragment& fragment,
+                             const NGPhysicalLineBoxFragment& current_line,
+                             const NGPhysicalLineBoxFragment* last_line) {
+  if (!last_line)
+    return false;
+  // Only the logically first fragment in each line can be continuation from the
+  // last line.
+  // TODO(xiaochengh): Verify if this works for RtL
+  if (&fragment != current_line.Children().front().get())
+    return false;
+  DCHECK(last_line->BreakToken());
+  DCHECK(last_line->BreakToken()->IsInlineType());
+  DCHECK(!last_line->BreakToken()->IsFinished());
+  return !ToNGInlineBreakToken(last_line->BreakToken())->IsForcedBreak();
+}
+
+bool CanResolveCaretPositionBeforeFragment(
+    const NGPhysicalFragment& fragment,
+    TextAffinity affinity,
+    const NGPhysicalLineBoxFragment& current_line,
+    const NGPhysicalLineBoxFragment* last_line) {
+  if (affinity == TextAffinity::kDownstream)
+    return true;
+  return !IsFragmentAfterLineWrap(fragment, current_line, last_line);
+}
+
+// TODO(xiaochengh): Try to avoid passing the seemingly redundant line box.
+// TODO(xiaochengh): Move this function to NGPhysicalFragment.
+bool IsFragmentBeforeLineWrap(const NGPhysicalFragment& fragment,
+                              const NGPhysicalLineBoxFragment& current_line) {
+  // Only the logically last fragment in each line can have continuation in the
+  // next line.
+  // TODO(xiaochengh): Verify if this works for RtL
+  if (&fragment != current_line.Children().back().get())
+    return false;
+  DCHECK(current_line.BreakToken());
+  DCHECK(current_line.BreakToken()->IsInlineType());
+  const NGInlineBreakToken& break_token =
+      ToNGInlineBreakToken(*current_line.BreakToken());
+  return !break_token.IsFinished() && !break_token.IsForcedBreak();
+}
+
+bool CanResolveCaretPositionAfterFragment(
+    const NGPhysicalFragment& fragment,
+    TextAffinity affinity,
+    const NGPhysicalLineBoxFragment& current_line) {
+  if (affinity == TextAffinity::kUpstream)
+    return true;
+  return !IsFragmentBeforeLineWrap(fragment, current_line);
+}
+
+CaretPositionResolution TryResolveCaretPositionInTextFragment(
+    const NGPhysicalTextFragment& fragment,
+    const NGPhysicalLineBoxFragment& current_line,
+    const NGPhysicalLineBoxFragment* last_line,
+    unsigned offset,
+    TextAffinity affinity) {
+  if (fragment.IsAnonymousText())
+    return CaretPositionResolution();
+
+  // [StartOffset(), EndOffset()] is the range allowing caret placement.
+  // For example, "foo" has 4 offsets allowing caret placement.
+  if (offset < fragment.StartOffset() || offset > fragment.EndOffset()) {
+    // TODO(xiaochengh): This may introduce false negatives. Investigate.
+    return CaretPositionResolution();
+  }
+  NGCaretPosition candidate = {&fragment, NGCaretPositionType::kAtTextOffset,
+                               offset};
+
+  // Offsets in the interior of a fragment can be resolved directly.
+  if (offset > fragment.StartOffset() && offset < fragment.EndOffset())
+    return {ResolutionType::kResolved, candidate};
+
+  if (offset == fragment.StartOffset() &&
+      CanResolveCaretPositionBeforeFragment(fragment, affinity, current_line,
+                                            last_line)) {
+    return {ResolutionType::kResolved, candidate};
+  }
+
+  if (offset == fragment.EndOffset() && !fragment.IsLineBreak() &&
+      CanResolveCaretPositionAfterFragment(fragment, affinity, current_line)) {
+    return {ResolutionType::kResolved, candidate};
+  }
+
+  // We may have a better candidate
+  return {ResolutionType::kFoundCandidate, candidate};
+}
+
+unsigned GetTextOffsetBefore(const NGPhysicalBoxFragment& fragment) {
+  // TODO(xiaochengh): Design more straightforward way to get text offset of
+  // atomic inline box.
+  DCHECK(fragment.IsInlineBlock());
+  const Node* node = fragment.GetNode();
+  DCHECK(node);
+  const Position before_node = Position::BeforeNode(*node);
+  Optional<unsigned> maybe_offset_before =
+      NGOffsetMapping::GetFor(before_node)->GetTextContentOffset(before_node);
+  // We should have offset mapping for atomic inline boxes.
+  DCHECK(maybe_offset_before.has_value());
+  return maybe_offset_before.value();
+}
+
+CaretPositionResolution TryResolveCaretPositionByBoxFragmentSide(
+    const NGPhysicalBoxFragment& fragment,
+    const NGPhysicalLineBoxFragment& current_line,
+    const NGPhysicalLineBoxFragment* last_line,
+    unsigned offset,
+    TextAffinity affinity) {
+  if (!fragment.GetNode()) {
+    // TODO(xiaochengh): This leads to false negatives for, e.g., RUBY, where an
+    // anonymous wrapping inline block is created.
+    return CaretPositionResolution();
+  }
+
+  const unsigned offset_before = GetTextOffsetBefore(fragment);
+  const unsigned offset_after = offset_before + 1;
+  if (offset != offset_before && offset != offset_after)
+    return CaretPositionResolution();
+  const NGCaretPositionType position_type =
+      offset == offset_before ? NGCaretPositionType::kBeforeBox
+                              : NGCaretPositionType::kAfterBox;
+  NGCaretPosition candidate{&fragment, position_type, WTF::nullopt};
+
+  if (offset == offset_before &&
+      CanResolveCaretPositionBeforeFragment(fragment, affinity, current_line,
+                                            last_line)) {
+    return {ResolutionType::kResolved, candidate};
+  }
+
+  if (offset == offset_after &&
+      CanResolveCaretPositionAfterFragment(fragment, affinity, current_line)) {
+    return {ResolutionType::kResolved, candidate};
+  }
+
+  return {ResolutionType::kFoundCandidate, candidate};
+}
+
+CaretPositionResolution TryResolveCaretPositionWithFragment(
+    const NGPhysicalFragment& fragment,
+    const NGPhysicalLineBoxFragment& current_line,
+    const NGPhysicalLineBoxFragment* last_line,
+    unsigned offset,
+    TextAffinity affinity) {
+  if (fragment.IsText()) {
+    return TryResolveCaretPositionInTextFragment(
+        ToNGPhysicalTextFragment(fragment), current_line, last_line, offset,
+        affinity);
+  }
+  if (fragment.IsBox() && fragment.IsInlineBlock()) {
+    return TryResolveCaretPositionByBoxFragmentSide(
+        ToNGPhysicalBoxFragment(fragment), current_line, last_line, offset,
+        affinity);
+  }
+  return CaretPositionResolution();
+}
+
+}  // namespace
+
+// The main function for compute an NGCaretPosition. See the comments at the top
+// of this file for details.
+NGCaretPosition ComputeNGCaretPosition(const LayoutBlockFlow& context,
+                                       unsigned offset,
+                                       TextAffinity affinity) {
+  const NGPhysicalBoxFragment* box_fragment = context.CurrentFragment();
+  // TODO(kojii): CurrentFragment isn't always available after layout clean.
+  // Investigate why.
+  if (!box_fragment)
+    return NGCaretPosition();
+
+  const NGPhysicalLineBoxFragment* last_line = nullptr;
+  const NGPhysicalLineBoxFragment* current_line = nullptr;
+
+  NGCaretPosition candidate;
+  for (const auto& child :
+       NGInlineFragmentTraversal::DescendantsOf(*box_fragment)) {
+    if (child.fragment->IsLineBox()) {
+      last_line = current_line;
+      current_line = ToNGPhysicalLineBoxFragment(child.fragment.get());
+    }
+
+    // Every inline fragment should have a line box (inclusive) ancestor.
+    DCHECK(current_line);
+
+    const CaretPositionResolution resolution =
+        TryResolveCaretPositionWithFragment(*child.fragment, *current_line,
+                                            last_line, offset, affinity);
+
+    if (resolution.type == ResolutionType::kFailed)
+      continue;
+
+    // TODO(xiaochengh): Handle caret poisition in empty container (e.g. empty
+    // line box).
+
+    if (resolution.type == ResolutionType::kResolved)
+      return resolution.caret_position;
+
+    DCHECK_EQ(ResolutionType::kFoundCandidate, resolution.type);
+    // TODO(xiaochengh): We are not sure if we can ever find multiple
+    // candidates. Handle it once reached.
+    DCHECK(candidate.IsNull());
+    candidate = resolution.caret_position;
+  }
+
+  return candidate;
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.h
new file mode 100644
index 0000000..64a8b1d3
--- /dev/null
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect.h
@@ -0,0 +1,51 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef NGCaretRect_h
+#define NGCaretRect_h
+
+#include "core/editing/Forward.h"
+#include "core/layout/ng/geometry/ng_physical_offset_rect.h"
+#include "core/layout/ng/ng_physical_fragment.h"
+#include "platform/wtf/Forward.h"
+#include "platform/wtf/Optional.h"
+
+namespace blink {
+
+// This file provides utility functions for computing caret rect in LayoutNG.
+
+class LayoutBlockFlow;
+
+// An NGCaretPosition indicates a caret position relative to an inline
+// NGPhysicalFragment:
+// - When |fragment| is box, |position_type| is either |kBeforeBox| or
+// |kAfterBox|, indicating either of the two caret positions by the box sides;
+// |text_offset| is |nullopt| in this case.
+// - When |fragment| is text, |position_type| is |kAtTextOffset|, and
+// |text_offset| is in the text offset range of the fragment.
+//
+// TODO(xiaochengh): Support "in empty container" caret type
+
+enum class NGCaretPositionType { kBeforeBox, kAfterBox, kAtTextOffset };
+struct NGCaretPosition {
+  DISALLOW_NEW_EXCEPT_PLACEMENT_NEW();
+
+  bool IsNull() const { return !fragment; }
+
+  scoped_refptr<const NGPhysicalFragment> fragment;
+  NGCaretPositionType position_type;
+  Optional<unsigned> text_offset;
+};
+
+// Given an inline formatting context, a text offset in the context and a text
+// affinity, returns the corresponding NGCaretPosition, or null if not found.
+// Note that in many cases, null result indicates that we have reached an
+// unexpected case that is not properly handled.
+CORE_EXPORT NGCaretPosition ComputeNGCaretPosition(const LayoutBlockFlow&,
+                                                   unsigned,
+                                                   TextAffinity);
+
+}  // namespace blink
+
+#endif  // NGCaretRect_h
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect_test.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect_test.cc
new file mode 100644
index 0000000..f14fd134
--- /dev/null
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_caret_rect_test.cc
@@ -0,0 +1,194 @@
+// 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 "core/layout/ng/inline/ng_caret_rect.h"
+
+#include "core/layout/LayoutBlockFlow.h"
+#include "core/layout/ng/inline/ng_inline_fragment_traversal.h"
+#include "core/layout/ng/inline/ng_physical_text_fragment.h"
+#include "core/layout/ng/ng_layout_test.h"
+#include "core/layout/ng/ng_physical_box_fragment.h"
+
+namespace blink {
+
+class NGCaretRectTest : public NGLayoutTest,
+                        private ScopedLayoutNGPaintFragmentsForTest {
+ public:
+  NGCaretRectTest()
+      : NGLayoutTest(), ScopedLayoutNGPaintFragmentsForTest(true) {}
+
+  void SetUp() override {
+    NGLayoutTest::SetUp();
+    LoadAhem();
+  }
+
+ protected:
+  void SetInlineFormattingContext(const char* id,
+                                  const char* html,
+                                  unsigned width) {
+    SetBodyInnerHTML(
+        String::Format("<div id='%s' style='font: 1em/1em Ahem; width: %uem; "
+                       "word-break: break-all'>%s</div>",
+                       id, width, html));
+    container_ = GetElementById(id);
+    DCHECK(container_);
+    context_ = ToLayoutBlockFlow(container_->GetLayoutObject());
+    DCHECK(context_);
+    DCHECK(context_->IsLayoutNGMixin());
+    root_fragment_ = context_->CurrentFragment();
+    DCHECK(root_fragment_);
+  }
+
+  NGCaretPosition ComputeNGCaretPosition(unsigned offset,
+                                         TextAffinity affinity) const {
+    return blink::ComputeNGCaretPosition(*context_, offset, affinity);
+  }
+
+  const NGPhysicalFragment* FragmentOf(const Node* node) const {
+    auto fragments = NGInlineFragmentTraversal::SelfFragmentsOf(
+        *root_fragment_, node->GetLayoutObject());
+    DCHECK_EQ(1u, fragments.size());
+    return fragments.front().fragment.get();
+  }
+
+  Persistent<Element> container_;
+  const LayoutBlockFlow* context_;
+  const NGPhysicalBoxFragment* root_fragment_;
+};
+
+#define TEST_CARET(caret, fragment_, type_, offset_)            \
+  {                                                             \
+    EXPECT_EQ(caret.fragment.get(), fragment_);                 \
+    EXPECT_EQ(caret.position_type, NGCaretPositionType::type_); \
+    EXPECT_EQ(caret.text_offset, offset_);                      \
+  }
+
+TEST_F(NGCaretRectTest, CaretPositionInOneLineOfText) {
+  SetInlineFormattingContext("t", "foo", 3);
+  const Node* text = container_->firstChild();
+  const NGPhysicalFragment* text_fragment = FragmentOf(text);
+
+  // Beginning of line
+  TEST_CARET(ComputeNGCaretPosition(0, TextAffinity::kDownstream),
+             text_fragment, kAtTextOffset, Optional<unsigned>(0));
+  TEST_CARET(ComputeNGCaretPosition(0, TextAffinity::kUpstream), text_fragment,
+             kAtTextOffset, Optional<unsigned>(0));
+
+  // Middle in the line
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kDownstream),
+             text_fragment, kAtTextOffset, Optional<unsigned>(1));
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kUpstream), text_fragment,
+             kAtTextOffset, Optional<unsigned>(1));
+
+  // End of line
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kDownstream),
+             text_fragment, kAtTextOffset, Optional<unsigned>(3));
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kUpstream), text_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+}
+
+TEST_F(NGCaretRectTest, CaretPositionAtSoftLineWrap) {
+  SetInlineFormattingContext("t", "foobar", 3);
+  const Node* text = container_->firstChild();
+  const auto text_fragments = NGInlineFragmentTraversal::SelfFragmentsOf(
+      *root_fragment_, text->GetLayoutObject());
+  const NGPhysicalFragment* foo_fragment = text_fragments[0].fragment.get();
+  const NGPhysicalFragment* bar_fragment = text_fragments[1].fragment.get();
+
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kDownstream), bar_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kUpstream), foo_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+}
+
+TEST_F(NGCaretRectTest, CaretPositionAtSoftLineWrapWithSpace) {
+  SetInlineFormattingContext("t", "foo bar", 3);
+  const Node* text = container_->firstChild();
+  const auto text_fragments = NGInlineFragmentTraversal::SelfFragmentsOf(
+      *root_fragment_, text->GetLayoutObject());
+  const NGPhysicalFragment* foo_fragment = text_fragments[0].fragment.get();
+  const NGPhysicalFragment* bar_fragment = text_fragments[1].fragment.get();
+
+  // Before the space
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kDownstream), foo_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kUpstream), foo_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+
+  // After the space
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kDownstream), bar_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kUpstream), bar_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+}
+
+TEST_F(NGCaretRectTest, CaretPositionAtForcedLineBreak) {
+  SetInlineFormattingContext("t", "foo<br>bar", 3);
+  const Node* foo = container_->firstChild();
+  const Node* br = foo->nextSibling();
+  const Node* bar = br->nextSibling();
+  const NGPhysicalFragment* foo_fragment = FragmentOf(foo);
+  const NGPhysicalFragment* bar_fragment = FragmentOf(bar);
+
+  // Before the BR
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kDownstream), foo_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+  TEST_CARET(ComputeNGCaretPosition(3, TextAffinity::kUpstream), foo_fragment,
+             kAtTextOffset, Optional<unsigned>(3));
+
+  // After the BR
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kDownstream), bar_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kUpstream), bar_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+}
+
+TEST_F(NGCaretRectTest, CaretPositionAtEmptyLine) {
+  SetInlineFormattingContext("f", "foo<br><br>bar", 3);
+  const Node* foo = container_->firstChild();
+  const Node* br1 = foo->nextSibling();
+  const Node* br2 = br1->nextSibling();
+  const NGPhysicalFragment* br2_fragment = FragmentOf(br2);
+
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kDownstream), br2_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+  TEST_CARET(ComputeNGCaretPosition(4, TextAffinity::kUpstream), br2_fragment,
+             kAtTextOffset, Optional<unsigned>(4));
+}
+
+TEST_F(NGCaretRectTest, CaretPositionInOneLineOfImage) {
+  SetInlineFormattingContext("t", "<img>", 3);
+  const Node* img = container_->firstChild();
+  const NGPhysicalFragment* img_fragment = FragmentOf(img);
+
+  // Before the image
+  TEST_CARET(ComputeNGCaretPosition(0, TextAffinity::kDownstream), img_fragment,
+             kBeforeBox, WTF::nullopt);
+  TEST_CARET(ComputeNGCaretPosition(0, TextAffinity::kUpstream), img_fragment,
+             kBeforeBox, WTF::nullopt);
+
+  // After the image
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kDownstream), img_fragment,
+             kAfterBox, WTF::nullopt);
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kUpstream), img_fragment,
+             kAfterBox, WTF::nullopt);
+}
+
+TEST_F(NGCaretRectTest, CaretPositionAtSoftLineWrapBetweenImages) {
+  SetInlineFormattingContext("t",
+                             "<img id=img1><img id=img2>"
+                             "<style>img{width: 1em; height: 1em}</style>",
+                             1);
+  const Node* img1 = container_->firstChild();
+  const Node* img2 = img1->nextSibling();
+  const NGPhysicalFragment* img1_fragment = FragmentOf(img1);
+  const NGPhysicalFragment* img2_fragment = FragmentOf(img2);
+
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kDownstream),
+             img2_fragment, kBeforeBox, WTF::nullopt);
+  TEST_CARET(ComputeNGCaretPosition(1, TextAffinity::kUpstream), img1_fragment,
+             kAfterBox, WTF::nullopt);
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
index ff538d8..fd140c3 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
+++ b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
@@ -77,7 +77,7 @@
   // writing mode child will be caught by the CreatesNewFormattingContext check.
   NGFragment fragment(child.Style().GetWritingMode(),
                       *layout_result.PhysicalFragment());
-  DCHECK_EQ(LayoutUnit(), fragment.BlockSize());
+  DCHECK_EQ(LayoutUnit(), fragment.BlockSize()) << child.ToString();
 #endif
 
   return true;
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
index 317dc35..fd14d5c 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
+++ b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
@@ -295,11 +295,16 @@
   return NGBlockNode(ToLayoutBox(child));
 }
 
-bool NGBlockNode::CanUseNewLayout() const {
-  if (!box_->IsLayoutNGMixin())
-    return false;
+bool NGBlockNode::CanUseNewLayout(const LayoutBox& box) {
+  DCHECK(RuntimeEnabledFeatures::LayoutNGEnabled());
 
-  return RuntimeEnabledFeatures::LayoutNGEnabled();
+  // When the style has |ForceLegacyLayout|, it's usually not LayoutNGMixin,
+  // but anonymous block can be.
+  return box.IsLayoutNGMixin() && !box.StyleRef().ForceLegacyLayout();
+}
+
+bool NGBlockNode::CanUseNewLayout() const {
+  return CanUseNewLayout(*box_);
 }
 
 String NGBlockNode::ToString() const {
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_node.h b/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
index 81fa842..bda0d5a4 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
@@ -62,6 +62,7 @@
   void SaveStaticOffsetForLegacy(const NGLogicalOffset&,
                                  const LayoutObject* offset_container);
 
+  static bool CanUseNewLayout(const LayoutBox&);
   bool CanUseNewLayout() const;
 
   String ToString() const;
diff --git a/third_party/WebKit/Source/core/layout/shapes/ShapeOutsideInfo.cpp b/third_party/WebKit/Source/core/layout/shapes/ShapeOutsideInfo.cpp
index 39eef53..8364c951 100644
--- a/third_party/WebKit/Source/core/layout/shapes/ShapeOutsideInfo.cpp
+++ b/third_party/WebKit/Source/core/layout/shapes/ShapeOutsideInfo.cpp
@@ -149,7 +149,7 @@
 
   scoped_refptr<Image> image =
       style_image->GetImage(layout_box_, layout_box_.GetDocument(),
-                            layout_box_.StyleRef(), image_size);
+                            layout_box_.StyleRef(), FloatSize(image_size));
 
   return Shape::CreateRasterShape(image.get(), shape_image_threshold,
                                   image_rect, margin_rect, writing_mode,
diff --git a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
index 101aae1..1f4a4e66 100644
--- a/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/DocumentLoader.cpp
@@ -867,18 +867,6 @@
   FetchParameters fetch_params(request_, options);
   RawResource::FetchMainResource(fetch_params, Fetcher(), this,
                                  substitute_data_);
-
-  // PlzNavigate:
-  // The final access checks are still performed here, potentially rejecting
-  // the "provisional" load, but the browser side already expects the renderer
-  // to be able to unconditionally commit.
-  if (!GetResource() ||
-      (frame_->GetSettings()->GetBrowserSideNavigationEnabled() &&
-       GetResource()->ErrorOccurred())) {
-    request_ = ResourceRequest(BlankURL());
-    MaybeLoadEmpty();
-    return;
-  }
   // A bunch of headers are set when the underlying resource load begins, and
   // request_ needs to include those. Even when using a cached resource, we may
   // make some modification to the request, e.g. adding the referer header.
diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
index 8ec7eff..6a0e4c2 100644
--- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
@@ -1203,26 +1203,7 @@
   } else {
     RawResource::Fetch(new_params, fetcher, this);
   }
-  if (GetResource())
-    checker_.WillAddClient();
-
-  if (!GetResource()) {
-    probe::documentThreadableLoaderFailedToStartLoadingForClient(
-        GetExecutionContext(), client_);
-    ThreadableLoaderClient* client = client_;
-    Clear();
-    // setResource() might call notifyFinished() and thus clear()
-    // synchronously, and in such cases ThreadableLoaderClient is already
-    // notified and |client| is null.
-    if (!client)
-      return;
-    String message =
-        String("Failed to start loading ") + request.Url().GetString();
-    GetExecutionContext()->AddConsoleMessage(
-        ConsoleMessage::Create(kJSMessageSource, kErrorMessageLevel, message));
-    client->DidFail(ResourceError::CancelledError(request.Url()));
-    return;
-  }
+  checker_.WillAddClient();
 
   if (GetResource()->IsLoading()) {
     unsigned long identifier = GetResource()->Identifier();
@@ -1243,21 +1224,11 @@
     fetch_params.SetOriginRestriction(FetchParameters::kNoOriginRestriction);
   Resource* resource = RawResource::FetchSynchronously(
       fetch_params, loading_context_->GetResourceFetcher());
-  ResourceResponse response =
-      resource ? resource->GetResponse() : ResourceResponse();
-  unsigned long identifier = resource
-                                 ? resource->Identifier()
-                                 : std::numeric_limits<unsigned long>::max();
+  ResourceResponse response = resource->GetResponse();
+  unsigned long identifier = resource->Identifier();
   probe::documentThreadableLoaderStartedLoadingForClient(GetExecutionContext(),
                                                          identifier, client_);
   ThreadableLoaderClient* client = client_;
-
-  if (!resource) {
-    client_ = nullptr;
-    client->DidFail(ResourceError::Failure(request.Url()));
-    return;
-  }
-
   const KURL& request_url = request.Url();
 
   // No exception for file:/// resources, see <rdar://problem/4962298>. Also, if
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
index 5b25946..9174dea 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
@@ -804,6 +804,11 @@
   return document_ && document_->LoadEventFinished();
 }
 
+bool FrameFetchContext::PageDismissalEventBeingDispatched() const {
+  return document_ && document_->PageDismissalEventBeingDispatched() !=
+                          Document::kNoDismissal;
+}
+
 bool FrameFetchContext::UpdateTimingInfoForIFrameNavigation(
     ResourceTimingInfo* info) {
   if (IsDetached())
@@ -824,6 +829,12 @@
   return true;
 }
 
+void FrameFetchContext::SendImagePing(const KURL& url) {
+  if (IsDetached())
+    return;
+  PingLoader::LoadImage(GetFrame(), url);
+}
+
 const SecurityOrigin* FrameFetchContext::GetSecurityOrigin() const {
   if (IsDetached())
     return frozen_state_->security_origin.get();
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.h b/third_party/WebKit/Source/core/loader/FrameFetchContext.h
index d9823fb..937e2173 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContext.h
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.h
@@ -134,7 +134,9 @@
   bool IsMainFrame() const override;
   bool DefersLoading() const override;
   bool IsLoadComplete() const override;
+  bool PageDismissalEventBeingDispatched() const override;
   bool UpdateTimingInfoForIFrameNavigation(ResourceTimingInfo*) override;
+  void SendImagePing(const KURL&) override;
 
   const SecurityOrigin* GetSecurityOrigin() const override;
 
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
index f15f0913..3f5d1316 100644
--- a/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
+++ b/third_party/WebKit/Source/core/loader/FrameFetchContextTest.cpp
@@ -887,9 +887,10 @@
 TEST_F(FrameFetchContextTest, ModifyPriorityForLowPriorityIframes) {
   Settings* settings = document->GetSettings();
   FrameFetchContext* childFetchContext = CreateChildFrame();
-  GetNetworkStateNotifier().SetNetworkQualityInfoOverride(
-      WebEffectiveConnectionType::kType3G, 1 /* transport_rtt_msec */,
-      10000 /* downlink_throughput_mbps */);
+  GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(
+      true, WebConnectionType::kWebConnectionTypeCellular3G,
+      WebEffectiveConnectionType::kType3G, 1 /* http_rtt_msec */,
+      10.0 /* max_bandwidth_mbps */);
 
   // Experiment is not enabled, expect default values.
   EXPECT_EQ(ResourceLoadPriority::kVeryHigh,
@@ -917,9 +918,10 @@
 
   // Low priority iframes enabled and network is slow, main frame request's
   // priorities should not change.
-  GetNetworkStateNotifier().SetNetworkQualityInfoOverride(
-      WebEffectiveConnectionType::kType2G, 1 /* transport_rtt_msec */,
-      10000 /* downlink_throughput_mbps */);
+  GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(
+      true, WebConnectionType::kWebConnectionTypeCellular3G,
+      WebEffectiveConnectionType::kType2G, 1 /* http_rtt_msec */,
+      10.0 /* max_bandwidth_mbps */);
   EXPECT_EQ(ResourceLoadPriority::kVeryHigh,
             fetch_context->ModifyPriorityForExperiments(
                 ResourceLoadPriority::kVeryHigh));
@@ -1346,6 +1348,12 @@
   EXPECT_TRUE(fetch_context->IsLoadComplete());
 }
 
+TEST_F(FrameFetchContextTest, PageDismissalEventBeingDispatchedWhenDetached) {
+  dummy_page_holder = nullptr;
+
+  EXPECT_FALSE(fetch_context->PageDismissalEventBeingDispatched());
+}
+
 TEST_F(FrameFetchContextTest, UpdateTimingInfoForIFrameNavigationWhenDetached) {
   scoped_refptr<ResourceTimingInfo> info =
       ResourceTimingInfo::Create("type", 0.3, false);
@@ -1356,6 +1364,15 @@
   // Should not crash.
 }
 
+TEST_F(FrameFetchContextTest, SendImagePingWhenDetached) {
+  const KURL url("https://www.example.com/");
+
+  dummy_page_holder = nullptr;
+
+  fetch_context->SendImagePing(url);
+  // Should not crash. Nothing should be sent.
+}
+
 TEST_F(FrameFetchContextTest, AddConsoleMessageWhenDetached) {
   dummy_page_holder = nullptr;
 
diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.cpp b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
index 48e3cc0..b259fd52 100644
--- a/third_party/WebKit/Source/core/loader/ImageLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/ImageLoader.cpp
@@ -57,11 +57,6 @@
 
 namespace blink {
 
-static inline bool PageIsBeingDismissed(Document* document) {
-  return document->PageDismissalEventBeingDispatched() !=
-         Document::kNoDismissal;
-}
-
 static ImageLoader::BypassMainWorldBehavior ShouldBypassMainWorldCSP(
     ImageLoader* loader) {
   DCHECK(loader);
@@ -400,15 +395,6 @@
         !GetElement()->FastGetAttribute(HTMLNames::srcsetAttr).IsNull())
       resource_request.SetRequestContext(
           WebURLRequest::kRequestContextImageSet);
-
-    if (document.PageDismissalEventBeingDispatched() !=
-        Document::kNoDismissal) {
-      resource_request.SetHTTPHeaderField(HTTPNames::Cache_Control,
-                                          "max-age=0");
-      resource_request.SetKeepalive(true);
-      resource_request.SetRequestContext(WebURLRequest::kRequestContextPing);
-    }
-
     FetchParameters params(resource_request, resource_loader_options);
     ConfigureRequest(params, bypass_behavior, *element_,
                      document.GetClientHintsPreferences());
@@ -417,13 +403,7 @@
       document.GetFrame()->MaybeAllowImagePlaceholder(params);
 
     new_image_content = ImageResourceContent::Fetch(params, document.Fetcher());
-
-    if (!new_image_content && !PageIsBeingDismissed(&document)) {
-      CrossSiteOrCSPViolationOccurred(image_source_url);
-      DispatchErrorEvent();
-    } else {
-      ClearFailedLoadURL();
-    }
+    ClearFailedLoadURL();
   } else {
     if (!image_source_url.IsNull()) {
       // Fire an error event if the url string is not empty, but the KURL is.
@@ -649,9 +629,8 @@
     pending_load_event_.Cancel();
 
     Optional<ResourceError> error = resource->GetResourceError();
-    if (error && error->IsAccessCheck()) {
+    if (error && error->IsAccessCheck())
       CrossSiteOrCSPViolationOccurred(AtomicString(error->FailingURL()));
-    }
 
     // The error event should not fire if the image data update is a result of
     // environment change.
diff --git a/third_party/WebKit/Source/core/loader/PingLoader.cpp b/third_party/WebKit/Source/core/loader/PingLoader.cpp
index 1c1b6a6..064dca99 100644
--- a/third_party/WebKit/Source/core/loader/PingLoader.cpp
+++ b/third_party/WebKit/Source/core/loader/PingLoader.cpp
@@ -200,18 +200,28 @@
   // mode should always be "no-cors".
   params.MutableOptions().initiator_info.name = FetchInitiatorTypeNames::beacon;
 
+  frame->Client()->DidDispatchPingLoader(request.Url());
   Resource* resource =
       RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
-  if (resource && resource->GetStatus() != ResourceStatus::kLoadError) {
-    frame->Client()->DidDispatchPingLoader(request.Url());
-    return true;
-  }
-
-  return false;
+  return resource->GetStatus() != ResourceStatus::kLoadError;
 }
 
 }  // namespace
 
+void PingLoader::LoadImage(LocalFrame* frame, const KURL& url) {
+  ResourceRequest request(url);
+  request.SetHTTPHeaderField(HTTPNames::Cache_Control, "max-age=0");
+  request.SetKeepalive(true);
+  request.SetRequestContext(WebURLRequest::kRequestContextPing);
+  FetchParameters params(request);
+  params.MutableOptions().initiator_info.name = FetchInitiatorTypeNames::ping;
+  // TODO(mkwst): Reevaluate this.
+  params.SetContentSecurityCheck(kDoNotCheckContentSecurityPolicy);
+
+  frame->Client()->DidDispatchPingLoader(request.Url());
+  RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
+}
+
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#hyperlink-auditing
 void PingLoader::SendLinkAuditPing(LocalFrame* frame,
                                    const KURL& ping_url,
@@ -242,10 +252,8 @@
   FetchParameters params(request);
   params.MutableOptions().initiator_info.name = FetchInitiatorTypeNames::ping;
 
-  Resource* resource =
-      RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
-  if (resource && resource->GetStatus() != ResourceStatus::kLoadError)
-    frame->Client()->DidDispatchPingLoader(request.Url());
+  frame->Client()->DidDispatchPingLoader(request.Url());
+  RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
 }
 
 void PingLoader::SendViolationReport(LocalFrame* frame,
@@ -274,10 +282,8 @@
   params.MutableOptions().security_origin =
       frame->GetDocument()->GetSecurityOrigin();
 
-  Resource* resource =
-      RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
-  if (resource && resource->GetStatus() != ResourceStatus::kLoadError)
-    frame->Client()->DidDispatchPingLoader(request.Url());
+  frame->Client()->DidDispatchPingLoader(request.Url());
+  RawResource::Fetch(params, frame->GetDocument()->Fetcher(), nullptr);
 }
 
 bool PingLoader::SendBeacon(LocalFrame* frame,
diff --git a/third_party/WebKit/Source/core/loader/PingLoader.h b/third_party/WebKit/Source/core/loader/PingLoader.h
index 6be5d08..af96198 100644
--- a/third_party/WebKit/Source/core/loader/PingLoader.h
+++ b/third_party/WebKit/Source/core/loader/PingLoader.h
@@ -65,6 +65,7 @@
     kXSSAuditorViolationReport
   };
 
+  static void LoadImage(LocalFrame*, const KURL&);
   static void SendLinkAuditPing(LocalFrame*,
                                 const KURL& ping_url,
                                 const KURL& destination_url);
diff --git a/third_party/WebKit/Source/core/loader/PingLoaderTest.cpp b/third_party/WebKit/Source/core/loader/PingLoaderTest.cpp
index 6d7ee0f..6448d1a 100644
--- a/third_party/WebKit/Source/core/loader/PingLoaderTest.cpp
+++ b/third_party/WebKit/Source/core/loader/PingLoaderTest.cpp
@@ -103,6 +103,20 @@
   ASSERT_TRUE(ping_request.IsNull());
 }
 
+TEST_F(PingLoaderTest, LoadImagePriority) {
+  SetDocumentURL(KURL("http://localhost/foo.html"));
+
+  KURL ping_url("https://localhost/bar.html");
+  URLTestHelpers::RegisterMockedURLLoad(
+      ping_url, testing::CoreTestDataPath("bar.html"), "text/html");
+  PingLoader::LoadImage(&page_holder_->GetFrame(), ping_url);
+  Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
+  const ResourceRequest& request = client_->PingRequest();
+  ASSERT_FALSE(request.IsNull());
+  ASSERT_EQ(request.Url(), ping_url);
+  EXPECT_EQ(ResourceLoadPriority::kVeryLow, request.Priority());
+}
+
 TEST_F(PingLoaderTest, LinkAuditPingPriority) {
   KURL destination_url("http://navigation.destination");
   SetDocumentURL(KURL("http://localhost/foo.html"));
diff --git a/third_party/WebKit/Source/core/loader/modulescript/DocumentModuleScriptFetcher.cpp b/third_party/WebKit/Source/core/loader/modulescript/DocumentModuleScriptFetcher.cpp
index 12d3381..99988a26 100644
--- a/third_party/WebKit/Source/core/loader/modulescript/DocumentModuleScriptFetcher.cpp
+++ b/third_party/WebKit/Source/core/loader/modulescript/DocumentModuleScriptFetcher.cpp
@@ -75,8 +75,7 @@
 void DocumentModuleScriptFetcher::Fetch(FetchParameters& fetch_params,
                                         ModuleScriptFetcher::Client* client) {
   SetClient(client);
-  if (!ScriptResource::Fetch(fetch_params, fetcher_, this))
-    NotifyFinished(nullptr /* resource */);
+  ScriptResource::Fetch(fetch_params, fetcher_, this);
 }
 
 void DocumentModuleScriptFetcher::NotifyFinished(Resource* resource) {
diff --git a/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp b/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp
index bec89470..1ceef1e 100644
--- a/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/FontResourceTest.cpp
@@ -53,7 +53,7 @@
   ResourceRequest request1(url);
   FetchParameters fetch_params1(request1);
   Resource* resource1 = FontResource::Fetch(fetch_params1, fetcher, nullptr);
-  ASSERT_TRUE(resource1);
+  ASSERT_FALSE(resource1->ErrorOccurred());
   fetcher->StartLoad(resource1);
   Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
   EXPECT_TRUE(resource1->IsLoaded());
@@ -67,7 +67,7 @@
   request2.SetCacheMode(mojom::FetchCacheMode::kValidateCache);
   FetchParameters fetch_params2(request2);
   Resource* resource2 = FontResource::Fetch(fetch_params2, fetcher, nullptr);
-  ASSERT_TRUE(resource2);
+  ASSERT_FALSE(resource2->ErrorOccurred());
   EXPECT_EQ(resource1, resource2);
   EXPECT_TRUE(resource2->IsCacheValidator());
   EXPECT_TRUE(resource2->StillNeedsLoad());
@@ -77,7 +77,7 @@
   request3.SetCacheMode(mojom::FetchCacheMode::kValidateCache);
   FetchParameters fetch_params3(request3);
   Resource* resource3 = FontResource::Fetch(fetch_params3, fetcher, nullptr);
-  ASSERT_TRUE(resource3);
+  ASSERT_FALSE(resource3->ErrorOccurred());
   EXPECT_EQ(resource2, resource3);
   EXPECT_TRUE(resource3->IsCacheValidator());
   EXPECT_TRUE(resource3->StillNeedsLoad());
@@ -121,46 +121,45 @@
   // correct behavior in the case where we reuse a FontResource without it being
   // a "cache hit" in ResourceFetcher's view.
   Persistent<MockFontResourceClient> client = new MockFontResourceClient;
-  FontResource* resource = src_value->Fetch(&document, client);
-  ASSERT_TRUE(resource);
+  FontResource& resource = src_value->Fetch(&document, client);
 
-  fetcher->StartLoad(resource);
-  EXPECT_TRUE(resource->Loader()->IsCacheAwareLoadingActivated());
-  resource->load_limit_state_ = FontResource::kUnderLimit;
+  fetcher->StartLoad(&resource);
+  EXPECT_TRUE(resource.Loader()->IsCacheAwareLoadingActivated());
+  resource.load_limit_state_ = FontResource::kUnderLimit;
 
   // FontResource callbacks should be blocked during cache-aware loading.
-  resource->FontLoadShortLimitCallback();
+  resource.FontLoadShortLimitCallback();
   EXPECT_FALSE(client->FontLoadShortLimitExceededCalled());
 
   // Fail first request as disk cache miss.
-  resource->Loader()->HandleError(ResourceError::CacheMissError(url));
+  resource.Loader()->HandleError(ResourceError::CacheMissError(url));
 
   // Once cache miss error returns, previously blocked callbacks should be
   // called immediately.
-  EXPECT_FALSE(resource->Loader()->IsCacheAwareLoadingActivated());
+  EXPECT_FALSE(resource.Loader()->IsCacheAwareLoadingActivated());
   EXPECT_TRUE(client->FontLoadShortLimitExceededCalled());
   EXPECT_FALSE(client->FontLoadLongLimitExceededCalled());
 
   // Add client now, FontLoadShortLimitExceeded() should be called.
   Persistent<MockFontResourceClient> client2 = new MockFontResourceClient;
-  FontResource* resource2 = src_value->Fetch(&document, client2);
-  EXPECT_EQ(resource, resource2);
+  FontResource& resource2 = src_value->Fetch(&document, client2);
+  EXPECT_EQ(&resource, &resource2);
   EXPECT_TRUE(client2->FontLoadShortLimitExceededCalled());
   EXPECT_FALSE(client2->FontLoadLongLimitExceededCalled());
 
   // FontResource callbacks are not blocked now.
-  resource->FontLoadLongLimitCallback();
+  resource.FontLoadLongLimitCallback();
   EXPECT_TRUE(client->FontLoadLongLimitExceededCalled());
 
   // Add client now, both callbacks should be called.
   Persistent<MockFontResourceClient> client3 = new MockFontResourceClient;
-  FontResource* resource3 = src_value->Fetch(&document, client3);
-  EXPECT_EQ(resource, resource3);
+  FontResource& resource3 = src_value->Fetch(&document, client3);
+  EXPECT_EQ(&resource, &resource3);
   EXPECT_TRUE(client3->FontLoadShortLimitExceededCalled());
   EXPECT_TRUE(client3->FontLoadLongLimitExceededCalled());
 
   Platform::Current()->GetURLLoaderMockFactory()->ServeAsynchronousRequests();
-  GetMemoryCache()->Remove(resource);
+  GetMemoryCache()->Remove(&resource);
 
   features_backup.Restore();
 }
diff --git a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
index a9e3300..eaa2c91 100644
--- a/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/ImageResource.cpp
@@ -169,6 +169,23 @@
       WebURLRequest::kRequestContextUnspecified) {
     params.SetRequestContext(WebURLRequest::kRequestContextImage);
   }
+  if (fetcher->Context().PageDismissalEventBeingDispatched()) {
+    KURL request_url = params.GetResourceRequest().Url();
+    if (request_url.IsValid()) {
+      ResourceRequestBlockedReason block_reason = fetcher->Context().CanRequest(
+          Resource::kImage, params.GetResourceRequest(), request_url,
+          params.Options(),
+          /* Don't send security violation reports for speculative preloads */
+          params.IsSpeculativePreload()
+              ? SecurityViolationReportingPolicy::kSuppressReporting
+              : SecurityViolationReportingPolicy::kReport,
+          params.GetOriginRestriction(),
+          params.GetResourceRequest().GetRedirectStatus());
+      if (block_reason == ResourceRequestBlockedReason::kNone)
+        fetcher->Context().SendImagePing(request_url);
+    }
+    return nullptr;
+  }
 
   ImageResource* resource = ToImageResource(
       fetcher->RequestResource(params, ImageResourceFactory(params), nullptr));
diff --git a/third_party/WebKit/Source/core/loader/resource/XSLStyleSheetResource.cpp b/third_party/WebKit/Source/core/loader/resource/XSLStyleSheetResource.cpp
index 7616119..2acc257 100644
--- a/third_party/WebKit/Source/core/loader/resource/XSLStyleSheetResource.cpp
+++ b/third_party/WebKit/Source/core/loader/resource/XSLStyleSheetResource.cpp
@@ -54,7 +54,7 @@
   XSLStyleSheetResource* resource =
       ToXSLStyleSheetResource(fetcher->RequestResource(
           params, XSLStyleSheetResourceFactory(), nullptr));
-  if (resource && resource->Data())
+  if (resource->Data())
     resource->sheet_ = resource->DecodedText();
   return resource;
 }
diff --git a/third_party/WebKit/Source/core/mojo/test/MojoInterfaceInterceptor.cpp b/third_party/WebKit/Source/core/mojo/test/MojoInterfaceInterceptor.cpp
index 4da3936ce..6e68b38 100644
--- a/third_party/WebKit/Source/core/mojo/test/MojoInterfaceInterceptor.cpp
+++ b/third_party/WebKit/Source/core/mojo/test/MojoInterfaceInterceptor.cpp
@@ -59,10 +59,11 @@
       StringUTF8Adaptor(interface_name_).AsStringPiece().as_string();
 
   if (process_scope_) {
-    std::string browser_service = Platform::Current()->GetBrowserServiceName();
+    service_manager::Identity identity(
+        Platform::Current()->GetBrowserServiceName());
     service_manager::Connector::TestApi test_api(
         Platform::Current()->GetConnector());
-    if (test_api.HasBinderOverride(browser_service, interface_name)) {
+    if (test_api.HasBinderOverride(identity, interface_name)) {
       exception_state.ThrowDOMException(
           kInvalidModificationError,
           "Interface " + interface_name_ +
@@ -72,7 +73,7 @@
 
     started_ = true;
     test_api.OverrideBinderForTesting(
-        browser_service, interface_name,
+        identity, interface_name,
         WTF::BindRepeating(&MojoInterfaceInterceptor::OnInterfaceRequest,
                            WrapWeakPersistent(this)));
     return;
@@ -103,11 +104,12 @@
       StringUTF8Adaptor(interface_name_).AsStringPiece().as_string();
 
   if (process_scope_) {
-    std::string browser_service = Platform::Current()->GetBrowserServiceName();
+    service_manager::Identity identity(
+        Platform::Current()->GetBrowserServiceName());
     service_manager::Connector::TestApi test_api(
         Platform::Current()->GetConnector());
-    DCHECK(test_api.HasBinderOverride(browser_service, interface_name));
-    test_api.ClearBinderOverride(browser_service, interface_name);
+    DCHECK(test_api.HasBinderOverride(identity, interface_name));
+    test_api.ClearBinderOverride(identity, interface_name);
     return;
   }
 
diff --git a/third_party/WebKit/Source/core/page/DragController.cpp b/third_party/WebKit/Source/core/page/DragController.cpp
index 762e1890..a90f5cd 100644
--- a/third_party/WebKit/Source/core/page/DragController.cpp
+++ b/third_party/WebKit/Source/core/page/DragController.cpp
@@ -1050,7 +1050,7 @@
   if (image->IsSVGImage()) {
     KURL url = element->GetDocument().CompleteURL(element->ImageSourceURL());
     svg_image = SVGImageForContainer::Create(
-        ToSVGImage(image), LayoutSize(image_element_size_in_pixels), 1, url);
+        ToSVGImage(image), FloatSize(image_element_size_in_pixels), 1, url);
     image = svg_image.get();
   }
 
diff --git a/third_party/WebKit/Source/core/page/TouchAdjustment.h b/third_party/WebKit/Source/core/page/TouchAdjustment.h
index 97e0408..2bd0a40 100644
--- a/third_party/WebKit/Source/core/page/TouchAdjustment.h
+++ b/third_party/WebKit/Source/core/page/TouchAdjustment.h
@@ -21,6 +21,7 @@
 #define TouchAdjustment_h
 
 #include "base/memory/scoped_refptr.h"
+#include "platform/geometry/FloatPoint.h"
 #include "platform/geometry/IntPoint.h"
 #include "platform/geometry/IntRect.h"
 #include "platform/heap/Handle.h"
@@ -42,6 +43,11 @@
                                   const HeapVector<Member<Node>>&);
 // FIXME: Implement the similar functions for other gestures here as well.
 
+struct TouchAdjustmentResult {
+  uint32_t unique_event_id;
+  FloatPoint adjusted_point;
+};
+
 }  // namespace blink
 
 #endif
diff --git a/third_party/WebKit/Source/core/page/scrolling/ScrollState.h b/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
index 93eb4b2d4..5367640 100644
--- a/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
+++ b/third_party/WebKit/Source/core/page/scrolling/ScrollState.h
@@ -63,14 +63,6 @@
   // True if this scroll is the result of the user interacting directly with
   // the screen, e.g., via touch.
   bool isDirectManipulation() const { return data_->is_direct_manipulation; }
-  // When gesture begins it equals deltaXHint(). Otherwise, it returns deltaX().
-  double effectiveDeltaX() const {
-    return data_->is_beginning ? data_->delta_x_hint : data_->delta_x;
-  }
-  // When gesture begins it equals deltaYHint(). Otherwise, it returns deltaY().
-  double effectiveDeltaY() const {
-    return data_->is_beginning ? data_->delta_y_hint : data_->delta_y;
-  }
 
   // Non web exposed methods.
   void ConsumeDeltaNative(double x, double y);
diff --git a/third_party/WebKit/Source/core/paint/BoxPainterBase.cpp b/third_party/WebKit/Source/core/paint/BoxPainterBase.cpp
index 47c048845..45be1d4 100644
--- a/third_party/WebKit/Source/core/paint/BoxPainterBase.cpp
+++ b/third_party/WebKit/Source/core/paint/BoxPainterBase.cpp
@@ -543,9 +543,9 @@
     geometry.Calculate(paint_info.PaintContainer(), paint_info.phase,
                        paint_info.GetGlobalPaintFlags(), bg_layer,
                        scrolled_paint_rect);
-    image =
-        info.image->GetImage(geometry.ImageClient(), geometry.ImageDocument(),
-                             geometry.ImageStyle(), geometry.TileSize());
+    image = info.image->GetImage(
+        geometry.ImageClient(), geometry.ImageDocument(), geometry.ImageStyle(),
+        FloatSize(geometry.TileSize()));
     interpolation_quality_context.emplace(
         context, geometry.ImageStyle().GetInterpolationQuality());
 
diff --git a/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp b/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
index 8d216571..786ca5ae 100644
--- a/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/EmbeddedContentPainter.cpp
@@ -74,25 +74,39 @@
     return;
 
   if (layout_embedded_content_.GetEmbeddedContentView()) {
+    Optional<ScopedPaintChunkProperties> scoped_paint_chunk_properties;
     Optional<RoundedInnerRectClipper> clipper;
     if (layout_embedded_content_.Style()->HasBorderRadius()) {
       if (border_rect.IsEmpty())
         return;
 
-      FloatRoundedRect rounded_inner_rect =
-          layout_embedded_content_.Style()->GetRoundedInnerBorderFor(
-              border_rect,
-              LayoutRectOutsets(-(layout_embedded_content_.PaddingTop() +
-                                  layout_embedded_content_.BorderTop()),
-                                -(layout_embedded_content_.PaddingRight() +
-                                  layout_embedded_content_.BorderRight()),
-                                -(layout_embedded_content_.PaddingBottom() +
-                                  layout_embedded_content_.BorderBottom()),
-                                -(layout_embedded_content_.PaddingLeft() +
-                                  layout_embedded_content_.BorderLeft())),
-              true, true);
-      clipper.emplace(layout_embedded_content_, local_paint_info, border_rect,
-                      rounded_inner_rect, kApplyToDisplayList);
+      if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled()) {
+        const auto* fragment =
+            local_paint_info.FragmentToPaint(layout_embedded_content_);
+        if (!fragment)
+          return;
+        const auto* properties = fragment->PaintProperties();
+        DCHECK(properties && properties->InnerBorderRadiusClip());
+        scoped_paint_chunk_properties.emplace(
+            local_paint_info.context.GetPaintController(),
+            properties->InnerBorderRadiusClip(), layout_embedded_content_,
+            DisplayItem::PaintPhaseToDrawingType(local_paint_info.phase));
+      } else {
+        FloatRoundedRect rounded_inner_rect =
+            layout_embedded_content_.Style()->GetRoundedInnerBorderFor(
+                border_rect,
+                LayoutRectOutsets(-(layout_embedded_content_.PaddingTop() +
+                                    layout_embedded_content_.BorderTop()),
+                                  -(layout_embedded_content_.PaddingRight() +
+                                    layout_embedded_content_.BorderRight()),
+                                  -(layout_embedded_content_.PaddingBottom() +
+                                    layout_embedded_content_.BorderBottom()),
+                                  -(layout_embedded_content_.PaddingLeft() +
+                                    layout_embedded_content_.BorderLeft())),
+                true, true);
+        clipper.emplace(layout_embedded_content_, local_paint_info, border_rect,
+                        rounded_inner_rect, kApplyToDisplayList);
+      }
     }
 
     layout_embedded_content_.PaintContents(local_paint_info, paint_offset);
diff --git a/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp b/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
index c8c04be..36330cc 100644
--- a/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/ListMarkerPainter.cpp
@@ -80,7 +80,7 @@
     context.DrawImage(
         layout_list_marker_.GetImage()
             ->GetImage(layout_list_marker_, layout_list_marker_.GetDocument(),
-                       layout_list_marker_.StyleRef(), marker.Size())
+                       layout_list_marker_.StyleRef(), FloatSize(marker.Size()))
             .get(),
         Image::kSyncDecode, FloatRect(marker));
     if (layout_list_marker_.GetSelectionState() != SelectionState::kNone) {
diff --git a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp
index 2453326..c8c401db 100644
--- a/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp
+++ b/third_party/WebKit/Source/core/paint/NinePieceImagePainter.cpp
@@ -94,7 +94,7 @@
   IntSize image_size = RoundedIntSize(
       style_image->ImageSize(document, 1, border_image_rect.Size()));
   scoped_refptr<Image> image =
-      style_image->GetImage(observer, document, style, LayoutSize(image_size));
+      style_image->GetImage(observer, document, style, FloatSize(image_size));
 
   TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), "PaintImage",
                "data",
diff --git a/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp b/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp
index 17428fa..93dd6e8 100644
--- a/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintInvalidator.cpp
@@ -19,6 +19,7 @@
 #include "core/paint/PaintLayer.h"
 #include "core/paint/PaintLayerScrollableArea.h"
 #include "core/paint/ng/ng_paint_fragment.h"
+#include "platform/PlatformChromeClient.h"
 #include "platform/graphics/paint/GeometryMapper.h"
 #include "platform/wtf/Optional.h"
 
@@ -449,6 +450,23 @@
   }
 }
 
+static void InvalidateChromeClient(
+    const LayoutBoxModelObject& paint_invalidation_container) {
+  if (paint_invalidation_container.GetDocument().Printing() &&
+      !RuntimeEnabledFeatures::PrintBrowserEnabled())
+    return;
+
+  DCHECK(paint_invalidation_container.IsLayoutView());
+  DCHECK(!paint_invalidation_container.IsPaintInvalidationContainer());
+
+  auto* frame_view = paint_invalidation_container.GetFrameView();
+  DCHECK(!frame_view->GetFrame().OwnerLayoutObject());
+  if (auto* client = frame_view->GetChromeClient()) {
+    client->InvalidateRect(
+        frame_view->ContentsToFrame(frame_view->VisibleContentRect()));
+  }
+}
+
 void PaintInvalidator::UpdateEmptyVisualRectFlag(
     const LayoutObject& object,
     PaintInvalidatorContext& context) {
@@ -596,6 +614,17 @@
     // requirement to the subtree.
     context.subtree_flags |= PaintInvalidatorContext::kSubtreeVisualRectUpdate;
   }
+
+  // The object is under a frame for WebViewPlugin, SVG images etc. Need to
+  // inform the chrome client of the invalidation so that the client will
+  // initiate painting of the contents. For SPv1 this is done by
+  // ObjectPaintInvalidator::InvalidatePaintUsingContainer().
+  // TODO(wangxianzhu): Do we need this for SPv2?
+  if (RuntimeEnabledFeatures::SlimmingPaintV175Enabled() &&
+      !RuntimeEnabledFeatures::SlimmingPaintV2Enabled() &&
+      !context.paint_invalidation_container->IsPaintInvalidationContainer() &&
+      object.GetPaintInvalidationReason() != PaintInvalidationReason::kNone)
+    InvalidateChromeClient(*context.paint_invalidation_container);
 }
 
 void PaintInvalidator::ProcessPendingDelayedPaintInvalidations() {
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
index e6b1031..b76896b 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp
@@ -426,12 +426,16 @@
   Optional<CompositingRecorder> compositing_recorder;
   // FIXME: this should be unified further into
   // PaintLayer::paintsWithTransparency().
+  bool compositing_already_applied =
+      painting_info.root_layer == &paint_layer_ &&
+      is_painting_overflow_contents;
   bool should_composite_for_blend_mode =
       paint_layer_.StackingNode()->IsStackingContext() &&
       paint_layer_.HasNonIsolatedDescendantWithBlendMode();
-  if (should_composite_for_blend_mode ||
-      paint_layer_.PaintsWithTransparency(
-          painting_info.GetGlobalPaintFlags())) {
+  if (!compositing_already_applied &&
+      (should_composite_for_blend_mode ||
+       paint_layer_.PaintsWithTransparency(
+           painting_info.GetGlobalPaintFlags()))) {
     FloatRect compositing_bounds = FloatRect(paint_layer_.PaintingExtent(
         painting_info.root_layer, painting_info.sub_pixel_accumulation,
         painting_info.GetGlobalPaintFlags()));
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
index 7fbc847..cb2df30 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp
@@ -112,7 +112,7 @@
 const int kResizerControlExpandRatioForTouch = 2;
 
 PaintLayerScrollableArea::PaintLayerScrollableArea(PaintLayer& layer)
-    : layer_(layer),
+    : layer_(&layer),
       next_topmost_scroll_child_(nullptr),
       topmost_scroll_child_(nullptr),
       in_resize_mode_(false),
@@ -130,8 +130,7 @@
       scroll_corner_(nullptr),
       resizer_(nullptr),
       scroll_anchor_(this),
-      non_composited_main_thread_scrolling_reasons_(0),
-      has_been_disposed_(false) {
+      non_composited_main_thread_scrolling_reasons_(0) {
   Node* node = GetLayoutBox()->GetNode();
   if (node && node->IsElementNode()) {
     // We save and restore only the scrollOffset as the other scroll values are
@@ -146,13 +145,13 @@
 }
 
 PaintLayerScrollableArea::~PaintLayerScrollableArea() {
-  DCHECK(has_been_disposed_);
+  DCHECK(HasBeenDisposed());
 }
 
 void PaintLayerScrollableArea::DidScroll(const gfx::ScrollOffset& offset) {
   ScrollableArea::DidScroll(offset);
   // This should be alive if it receives composited scroll callbacks.
-  CHECK(!has_been_disposed_);
+  CHECK(!HasBeenDisposed());
 }
 
 void PaintLayerScrollableArea::Dispose() {
@@ -211,7 +210,11 @@
   if (SmoothScrollSequencer* sequencer = GetSmoothScrollSequencer())
     sequencer->DidDisposeScrollableArea(*this);
 
-  has_been_disposed_ = true;
+  layer_ = nullptr;
+}
+
+bool PaintLayerScrollableArea::HasBeenDisposed() const {
+  return !layer_;
 }
 
 void PaintLayerScrollableArea::Trace(blink::Visitor* visitor) {
@@ -228,6 +231,8 @@
 
 SmoothScrollSequencer* PaintLayerScrollableArea::GetSmoothScrollSequencer()
     const {
+  if (HasBeenDisposed())
+    return nullptr;
   if (Page* page = GetLayoutBox()->GetFrame()->GetPage())
     return page->GetSmoothScrollSequencer();
   return nullptr;
@@ -459,8 +464,14 @@
   }
 
   if (AXObjectCache* cache =
-          GetLayoutBox()->GetDocument().ExistingAXObjectCache())
+          GetLayoutBox()->GetDocument().ExistingAXObjectCache()) {
     cache->HandleScrollPositionChanged(GetLayoutBox());
+    // The node can be removed by an accessibility notification listener
+    // handling the scroll position changed notification. If it has, we can no
+    // longer use the layer or layout box. See https://crbug.com/797298.
+    if (HasBeenDisposed())
+      return;
+  }
   GetLayoutBox()->View()->ClearHitTestCache();
 
   // Inform the FrameLoader of the new scroll position, so it can be restored
@@ -676,10 +687,10 @@
 
   // Paint properties need to be updated, because clip rects
   // are affected by overlay scrollbars.
-  layer_.GetLayoutObject().SetNeedsPaintPropertyUpdate();
+  layer_->GetLayoutObject().SetNeedsPaintPropertyUpdate();
 
   // TODO(chrishr): this should be able to be removed.
-  layer_.ClearClipRects();
+  layer_->ClearClipRects();
 
   if (LayoutView* view = GetLayoutBox()->View())
     view->ClearHitTestCache();
@@ -758,11 +769,13 @@
 }
 
 LayoutBox* PaintLayerScrollableArea::GetLayoutBox() const {
-  return layer_.GetLayoutBox();
+  if (!layer_)
+    return nullptr;
+  return layer_->GetLayoutBox();
 }
 
 PaintLayer* PaintLayerScrollableArea::Layer() const {
-  return &layer_;
+  return layer_;
 }
 
 LayoutUnit PaintLayerScrollableArea::ScrollWidth() const {
@@ -1526,7 +1539,7 @@
     return;
 
   const IntRect border_box =
-      GetLayoutBox()->PixelSnappedBorderBoxRect(layer_.SubpixelAccumulation());
+      GetLayoutBox()->PixelSnappedBorderBoxRect(layer_->SubpixelAccumulation());
 
   if (Scrollbar* vertical_scrollbar = VerticalScrollbar())
     vertical_scrollbar->SetFrameRect(RectForVerticalScrollbar(border_box));
@@ -1981,7 +1994,7 @@
     frame_view->RemoveScrollableArea(this);
   }
 
-  layer_.DidUpdateScrollsOverflow();
+  layer_->DidUpdateScrollsOverflow();
 }
 
 void PaintLayerScrollableArea::UpdateCompositingLayersAfterScroll() {
@@ -2181,18 +2194,18 @@
 
 CompositorAnimationHost* PaintLayerScrollableArea::GetCompositorAnimationHost()
     const {
-  return layer_.GetLayoutObject().GetFrameView()->GetCompositorAnimationHost();
+  return layer_->GetLayoutObject().GetFrameView()->GetCompositorAnimationHost();
 }
 
 CompositorAnimationTimeline*
 PaintLayerScrollableArea::GetCompositorAnimationTimeline() const {
-  return layer_.GetLayoutObject()
+  return layer_->GetLayoutObject()
       .GetFrameView()
       ->GetCompositorAnimationTimeline();
 }
 
 void PaintLayerScrollableArea::GetTickmarks(Vector<IntRect>& tickmarks) const {
-  if (layer_.IsRootLayer()) {
+  if (layer_->IsRootLayer()) {
     tickmarks = GetLayoutBox()
                     ->GetDocument()
                     .Markers()
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
index 4aa99dab..150ec2c 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
@@ -226,6 +226,7 @@
 
   ~PaintLayerScrollableArea() override;
   void Dispose();
+  bool HasBeenDisposed() const override;
 
   void ForceVerticalScrollbarForFirstLayout() { SetHasVerticalScrollbar(true); }
   bool HasHorizontalScrollbar() const { return HorizontalScrollbar(); }
@@ -558,7 +559,10 @@
 
   IntRect CornerRect(const IntRect& bounds) const;
 
-  PaintLayer& layer_;
+  // PaintLayer is destructed before PaintLayerScrollable area, during this
+  // time before PaintLayerScrollableArea has been collected layer_ will
+  // be set to nullptr by the Dispose method.
+  PaintLayer* layer_;
 
   PaintLayer* next_topmost_scroll_child_;
   PaintLayer* topmost_scroll_child_;
@@ -615,8 +619,6 @@
 
   // MainThreadScrollingReason due to the properties of the LayoutObject
   uint32_t non_composited_main_thread_scrolling_reasons_;
-
-  bool has_been_disposed_;
 };
 
 DEFINE_TYPE_CASTS(PaintLayerScrollableArea,
diff --git a/third_party/WebKit/Source/core/script/ClassicPendingScript.cpp b/third_party/WebKit/Source/core/script/ClassicPendingScript.cpp
index 11e8cd3..10d5413 100644
--- a/third_party/WebKit/Source/core/script/ClassicPendingScript.cpp
+++ b/third_party/WebKit/Source/core/script/ClassicPendingScript.cpp
@@ -46,10 +46,7 @@
   // Step 2. Set request's client to settings object. [spec text]
   //
   // Note: |element_document| corresponds to the settings object.
-  ScriptResource* resource =
-      ScriptResource::Fetch(params, element_document.Fetcher(), pending_script);
-  if (!resource)
-    return nullptr;
+  ScriptResource::Fetch(params, element_document.Fetcher(), pending_script);
   pending_script->CheckState();
   return pending_script;
 }
diff --git a/third_party/WebKit/Source/core/script/ScriptLoader.cpp b/third_party/WebKit/Source/core/script/ScriptLoader.cpp
index 9a2de59e..061b78f 100644
--- a/third_party/WebKit/Source/core/script/ScriptLoader.cpp
+++ b/third_party/WebKit/Source/core/script/ScriptLoader.cpp
@@ -432,12 +432,7 @@
 
       // "Fetch a classic script given url, settings object, options, CORS
       // setting, and encoding." [spec text]
-      if (!FetchClassicScript(url, element_document, options, encoding)) {
-        // TODO(hiroshige): Make this asynchronous. Currently we fire the error
-        // event synchronously to keep the existing behavior.
-        DispatchErrorEvent();
-        return false;
-      }
+      FetchClassicScript(url, element_document, options, encoding);
     } else {
       // - "module":
 
@@ -685,7 +680,7 @@
 }
 
 // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-classic-script
-bool ScriptLoader::FetchClassicScript(const KURL& url,
+void ScriptLoader::FetchClassicScript(const KURL& url,
                                       Document& element_document,
                                       const ScriptFetchOptions& options,
                                       const WTF::TextEncoding& encoding) {
@@ -696,14 +691,8 @@
 
   ClassicPendingScript* pending_script = ClassicPendingScript::Fetch(
       url, element_document, options, encoding, element_, defer);
-
-  if (!pending_script)
-    return false;
-
   prepared_pending_script_ = pending_script;
   resource_keep_alive_ = pending_script->GetResource();
-
-  return true;
 }
 
 void ScriptLoader::FetchModuleScriptTree(const KURL& url,
diff --git a/third_party/WebKit/Source/core/script/ScriptLoader.h b/third_party/WebKit/Source/core/script/ScriptLoader.h
index e6ef80d1..826d00f 100644
--- a/third_party/WebKit/Source/core/script/ScriptLoader.h
+++ b/third_party/WebKit/Source/core/script/ScriptLoader.h
@@ -146,7 +146,7 @@
   // and must NOT be called from outside of PendingScript().
   //
   // https://html.spec.whatwg.org/#fetch-a-classic-script
-  bool FetchClassicScript(const KURL&,
+  void FetchClassicScript(const KURL&,
                           Document&,
                           const ScriptFetchOptions&,
                           const WTF::TextEncoding&);
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
index 5177ae2..7981f09 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.cpp
@@ -130,11 +130,11 @@
     const ImageResourceObserver&,
     const Document&,
     const ComputedStyle& style,
-    const LayoutSize& container_size) const {
+    const FloatSize& target_size) const {
   Image* image = image_->GetImage();
   if (!image->IsSVGImage())
     return image;
-  return SVGImageForContainer::Create(ToSVGImage(image), container_size,
+  return SVGImageForContainer::Create(ToSVGImage(image), target_size,
                                       style.EffectiveZoom(), url_);
 }
 
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImage.h b/third_party/WebKit/Source/core/style/StyleFetchedImage.h
index ca737ba..490dcb28 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImage.h
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImage.h
@@ -63,11 +63,10 @@
   void RemoveClient(ImageResourceObserver*) override;
   void ImageNotifyFinished(ImageResourceContent*) override;
   String DebugName() const override { return "StyleFetchedImage"; }
-  scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const override;
+  scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                const Document&,
+                                const ComputedStyle&,
+                                const FloatSize& target_size) const override;
   bool KnownToBeOpaque(const Document&, const ComputedStyle&) const override;
   ImageResourceContent* CachedImage() const override;
 
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
index d9005ec..5650005 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.cpp
@@ -121,11 +121,11 @@
     const ImageResourceObserver&,
     const Document&,
     const ComputedStyle& style,
-    const LayoutSize& container_size) const {
+    const FloatSize& target_size) const {
   Image* image = best_fit_image_->GetImage();
   if (!image->IsSVGImage())
     return image;
-  return SVGImageForContainer::Create(ToSVGImage(image), container_size,
+  return SVGImageForContainer::Create(ToSVGImage(image), target_size,
                                       style.EffectiveZoom(), url_);
 }
 
diff --git a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
index 013d667..97b8b29d 100644
--- a/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
+++ b/third_party/WebKit/Source/core/style/StyleFetchedImageSet.h
@@ -72,11 +72,10 @@
   bool UsesImageContainerSize() const override;
   void AddClient(ImageResourceObserver*) override;
   void RemoveClient(ImageResourceObserver*) override;
-  scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const override;
+  scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                const Document&,
+                                const ComputedStyle&,
+                                const FloatSize& target_size) const override;
   float ImageScaleFactor() const override { return image_scale_factor_; }
   bool KnownToBeOpaque(const Document&, const ComputedStyle&) const override;
   ImageResourceContent* CachedImage() const override;
diff --git a/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp b/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
index 1f8bfb3..c0e424a7 100644
--- a/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
+++ b/third_party/WebKit/Source/core/style/StyleGeneratedImage.cpp
@@ -72,9 +72,9 @@
     const ImageResourceObserver& observer,
     const Document& document,
     const ComputedStyle& style,
-    const LayoutSize& container_size) const {
+    const FloatSize& target_size) const {
   return image_generator_value_->GetImage(observer, document, style,
-                                          container_size);
+                                          target_size);
 }
 
 bool StyleGeneratedImage::KnownToBeOpaque(const Document& document,
diff --git a/third_party/WebKit/Source/core/style/StyleGeneratedImage.h b/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
index e340e8d..c7ba282 100644
--- a/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
+++ b/third_party/WebKit/Source/core/style/StyleGeneratedImage.h
@@ -54,12 +54,11 @@
   bool UsesImageContainerSize() const override { return !fixed_size_; }
   void AddClient(ImageResourceObserver*) override;
   void RemoveClient(ImageResourceObserver*) override;
-  // The |container_size| is the container size
-  scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const override;
+  // The |target_size| is the desired image size
+  scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                const Document&,
+                                const ComputedStyle&,
+                                const FloatSize& target_size) const override;
   bool KnownToBeOpaque(const Document&, const ComputedStyle&) const override;
 
   virtual void Trace(blink::Visitor*);
diff --git a/third_party/WebKit/Source/core/style/StyleImage.h b/third_party/WebKit/Source/core/style/StyleImage.h
index 28df92d..d9564407 100644
--- a/third_party/WebKit/Source/core/style/StyleImage.h
+++ b/third_party/WebKit/Source/core/style/StyleImage.h
@@ -79,11 +79,13 @@
   //
   // The default object size is context dependent, see for instance the
   // "Examples of CSS Object Sizing" section of the CSS images specification.
-  // https://drafts.csswg.org/css-images/#sizing
+  // https://drafts.csswg.org/css-images/#sizing.
   //
   // The |default_object_size| is assumed to be in the effective zoom level
   // given by multiplier, i.e. if multiplier is 1 the |default_object_size| is
-  // not zoomed.
+  // not zoomed. Note that the |default_object_size| has already been snapped
+  // to LayoutUnit resolution because it represents the target painted size of
+  // a container.
   virtual FloatSize ImageSize(const Document&,
                               float multiplier,
                               const LayoutSize& default_object_size) const = 0;
@@ -98,17 +100,20 @@
   virtual void AddClient(ImageResourceObserver*) = 0;
   virtual void RemoveClient(ImageResourceObserver*) = 0;
 
-  // Retrieve an Image representation for painting this <image>, using a
-  // concrete object size (|container_size|.)
+  // Retrieve an Image representation for painting this <image>, at a particular
+  // target size. Most often, the target size is a concrete object size
+  // into which the image will be painted. But for background images the
+  // target size is the area to be filled with a single copy of the image,
+  // and can have a variety of relationships to the container's size. Hence
+  // it requires float resolution.
   //
-  // Note that the |container_size| is in the effective zoom level of the
+  // Note that the |target_size| is in the effective zoom level of the
   // computed style, i.e if the style has an effective zoom level of 1.0 the
-  // |container_size| is not zoomed.
-  virtual scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const = 0;
+  // |target_size| is not zoomed.
+  virtual scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                        const Document&,
+                                        const ComputedStyle&,
+                                        const FloatSize& target_size) const = 0;
 
   // Opaque handle representing the underlying value of this <image>.
   virtual WrappedImagePtr Data() const = 0;
diff --git a/third_party/WebKit/Source/core/style/StyleInvalidImage.h b/third_party/WebKit/Source/core/style/StyleInvalidImage.h
index ab9aba0..b503636b 100644
--- a/third_party/WebKit/Source/core/style/StyleInvalidImage.h
+++ b/third_party/WebKit/Source/core/style/StyleInvalidImage.h
@@ -39,11 +39,10 @@
   bool UsesImageContainerSize() const override { return false; }
   void AddClient(ImageResourceObserver*) override {}
   void RemoveClient(ImageResourceObserver*) override {}
-  scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const override {
+  scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                const Document&,
+                                const ComputedStyle&,
+                                const FloatSize& target_size) const override {
     return nullptr;
   }
   bool KnownToBeOpaque(const Document&, const ComputedStyle&) const override {
diff --git a/third_party/WebKit/Source/core/style/StylePendingImage.h b/third_party/WebKit/Source/core/style/StylePendingImage.h
index 9d1dd7a..cdaa09d 100644
--- a/third_party/WebKit/Source/core/style/StylePendingImage.h
+++ b/third_party/WebKit/Source/core/style/StylePendingImage.h
@@ -81,11 +81,10 @@
   bool UsesImageContainerSize() const override { return false; }
   void AddClient(ImageResourceObserver*) override {}
   void RemoveClient(ImageResourceObserver*) override {}
-  scoped_refptr<Image> GetImage(
-      const ImageResourceObserver&,
-      const Document&,
-      const ComputedStyle&,
-      const LayoutSize& container_size) const override {
+  scoped_refptr<Image> GetImage(const ImageResourceObserver&,
+                                const Document&,
+                                const ComputedStyle&,
+                                const FloatSize& target_size) const override {
     NOTREACHED();
     return nullptr;
   }
diff --git a/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp b/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
index 398f230..0f16a5f 100644
--- a/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGFEImageElement.cpp
@@ -77,9 +77,7 @@
   FetchParameters params(
       ResourceRequest(GetDocument().CompleteURL(HrefString())), options);
   cached_image_ = ImageResourceContent::Fetch(params, GetDocument().Fetcher());
-
-  if (cached_image_)
-    cached_image_->AddObserver(this);
+  cached_image_->AddObserver(this);
 }
 
 void SVGFEImageElement::ClearImageResource() {
diff --git a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
index d8b1e5b..f415426 100644
--- a/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
+++ b/third_party/WebKit/Source/core/svg/SVGTextContentElement.cpp
@@ -25,9 +25,6 @@
 #include "core/CSSPropertyNames.h"
 #include "core/CSSValueKeywords.h"
 #include "core/editing/FrameSelection.h"
-#include "core/editing/SelectionTemplate.h"
-#include "core/editing/VisiblePosition.h"
-#include "core/editing/VisibleUnits.h"
 #include "core/frame/LocalFrame.h"
 #include "core/frame/UseCounter.h"
 #include "core/layout/api/LineLayoutItem.h"
@@ -215,30 +212,7 @@
     nchars = number_of_chars - charnum;
 
   DCHECK(GetDocument().GetFrame());
-
-  // Find selection start
-  VisiblePosition start = VisiblePosition::FirstPositionInNode(
-      *const_cast<SVGTextContentElement*>(this));
-  for (unsigned i = 0; i < charnum; ++i)
-    start = NextPositionOf(start);
-  if (start.IsNull())
-    return;
-
-  // Find selection end
-  VisiblePosition end(start);
-  for (unsigned i = 0; i < nchars; ++i)
-    end = NextPositionOf(end);
-  if (end.IsNull())
-    return;
-
-  // TODO(editing-dev): We assume |start| and |end| are not null and we don't
-  // known when |start| and |end| are null. Once we get a such case, we check
-  // null for |start| and |end|.
-  GetDocument().GetFrame()->Selection().SetSelectionAndEndTyping(
-      SelectionInDOMTree::Builder()
-          .SetBaseAndExtent(start.DeepEquivalent(), end.DeepEquivalent())
-          .SetAffinity(start.Affinity())
-          .Build());
+  GetDocument().GetFrame()->Selection().SelectSubString(*this, charnum, nchars);
 }
 
 bool SVGTextContentElement::IsPresentationAttribute(
diff --git a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h
index 877661d..2e56394 100644
--- a/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h
+++ b/third_party/WebKit/Source/core/svg/graphics/SVGImageForContainer.h
@@ -39,7 +39,7 @@
 // about how the image is being used (size, fragment identifier).
 //
 // The concrete size of an SVG image is calculated based on the image itself and
-// the dimensions where the image is used (see: SVGImage::concreteObjectSize).
+// the dimensions where the image is used (see: SVGImage::ConcreteObjectSize).
 // This concrete size cannot be stored on the SVGImage itself because only a
 // single SVGImage is created per SVG image resource, but this SVGImage can be
 // referenced multiple times by containers of different sizes. Similarly, each
@@ -60,10 +60,10 @@
  public:
   static scoped_refptr<SVGImageForContainer> Create(
       SVGImage* image,
-      const LayoutSize& container_size,
+      const FloatSize& target_size,
       float zoom,
       const KURL& url) {
-    FloatSize container_size_without_zoom(container_size);
+    FloatSize container_size_without_zoom(target_size);
     container_size_without_zoom.Scale(1 / zoom);
     return base::AdoptRef(new SVGImageForContainer(
         image, container_size_without_zoom, zoom, url));
diff --git a/third_party/WebKit/Source/core/testing/Internals.cpp b/third_party/WebKit/Source/core/testing/Internals.cpp
index 447c306..71937f4 100644
--- a/third_party/WebKit/Source/core/testing/Internals.cpp
+++ b/third_party/WebKit/Source/core/testing/Internals.cpp
@@ -63,7 +63,6 @@
 #include "core/editing/FrameSelection.h"
 #include "core/editing/PlainTextRange.h"
 #include "core/editing/SelectionTemplate.h"
-#include "core/editing/VisiblePosition.h"
 #include "core/editing/iterators/TextIterator.h"
 #include "core/editing/markers/DocumentMarker.h"
 #include "core/editing/markers/DocumentMarkerController.h"
@@ -923,13 +922,13 @@
 }
 
 String Internals::textAffinity() {
-  if (GetFrame()
-          ->GetPage()
-          ->GetFocusController()
-          .FocusedFrame()
-          ->Selection()
-          .GetSelectionInDOMTree()
-          .Affinity() == TextAffinity::kUpstream) {
+  if (GetFrame() && GetFrame()
+                            ->GetPage()
+                            ->GetFocusController()
+                            .FocusedFrame()
+                            ->Selection()
+                            .GetSelectionInDOMTree()
+                            .Affinity() == TextAffinity::kUpstream) {
     return "Upstream";
   }
   return "Downstream";
@@ -3191,6 +3190,8 @@
 void Internals::setNetworkConnectionInfoOverride(
     bool on_line,
     const String& type,
+    const String& effective_type,
+    unsigned long http_rtt_msec,
     double downlink_max_mbps,
     ExceptionState& exception_state) {
   WebConnectionType webtype;
@@ -3220,14 +3221,6 @@
         ExceptionMessages::FailedToEnumerate("connection type", type));
     return;
   }
-  GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(on_line, webtype,
-                                                             downlink_max_mbps);
-}
-
-void Internals::setNetworkQualityInfoOverride(const String& effective_type,
-                                              unsigned long transport_rtt_msec,
-                                              double downlink_throughput_mbps,
-                                              ExceptionState& exception_state) {
   WebEffectiveConnectionType web_effective_type =
       WebEffectiveConnectionType::kTypeUnknown;
   if (effective_type == "offline") {
@@ -3246,10 +3239,8 @@
                             "effective connection type", effective_type));
     return;
   }
-
-  GetNetworkStateNotifier().SetNetworkQualityInfoOverride(
-      web_effective_type, transport_rtt_msec, downlink_throughput_mbps);
-
+  GetNetworkStateNotifier().SetNetworkConnectionInfoOverride(
+      on_line, webtype, web_effective_type, http_rtt_msec, downlink_max_mbps);
   GetFrame()->Client()->SetEffectiveConnectionTypeForTesting(
       web_effective_type);
 }
diff --git a/third_party/WebKit/Source/core/testing/Internals.h b/third_party/WebKit/Source/core/testing/Internals.h
index 0277c953..4d2253a 100644
--- a/third_party/WebKit/Source/core/testing/Internals.h
+++ b/third_party/WebKit/Source/core/testing/Internals.h
@@ -498,12 +498,10 @@
 
   void setNetworkConnectionInfoOverride(bool,
                                         const String&,
+                                        const String&,
+                                        unsigned long http_rtt_msec,
                                         double downlink_max_mbps,
                                         ExceptionState&);
-  void setNetworkQualityInfoOverride(const String&,
-                                     unsigned long transport_rtt_msec,
-                                     double downlink_throughput_mbps,
-                                     ExceptionState&);
   void setSaveDataEnabled(bool);
 
   void clearNetworkConnectionInfoOverride();
diff --git a/third_party/WebKit/Source/core/testing/Internals.idl b/third_party/WebKit/Source/core/testing/Internals.idl
index a05ada7f..3096c81 100644
--- a/third_party/WebKit/Source/core/testing/Internals.idl
+++ b/third_party/WebKit/Source/core/testing/Internals.idl
@@ -328,8 +328,7 @@
     boolean ignoreLayoutWithPendingStylesheets(Document document);
 
     // These functions are for testing NetInfo. You must call clearNetworkConnectionInfoOverride() at the end.
-    [RaisesException] void setNetworkConnectionInfoOverride(boolean onLine, DOMString type, double downlinkMaxMbps);
-    [RaisesException] void setNetworkQualityInfoOverride(EffectiveConnectionType effective_type, unsigned long transport_rtt_msec, double downlink_throughput_mbps);
+    [RaisesException] void setNetworkConnectionInfoOverride(boolean onLine, DOMString type, EffectiveConnectionType effective_type, unsigned long http_rtt_msec, double downlink_max_mbps);
     void setSaveDataEnabled(boolean enabled);
     void clearNetworkConnectionInfoOverride();
 
diff --git a/third_party/WebKit/Source/core/xml/XSLStyleSheetLibxslt.cpp b/third_party/WebKit/Source/core/xml/XSLStyleSheetLibxslt.cpp
index a8a4aa7..50ebdf23 100644
--- a/third_party/WebKit/Source/core/xml/XSLStyleSheetLibxslt.cpp
+++ b/third_party/WebKit/Source/core/xml/XSLStyleSheetLibxslt.cpp
@@ -230,7 +230,7 @@
   params.SetOriginRestriction(FetchParameters::kRestrictToSameOrigin);
   XSLStyleSheetResource* resource = XSLStyleSheetResource::FetchSynchronously(
       params, OwnerDocument()->Fetcher());
-  if (!resource || !resource->Sheet())
+  if (!resource->Sheet())
     return;
 
   XSLStyleSheet* style_sheet =
diff --git a/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp b/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
index 952a174..e796de6 100644
--- a/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
+++ b/third_party/WebKit/Source/core/xml/XSLTProcessorLibxslt.cpp
@@ -111,7 +111,7 @@
       params.SetOriginRestriction(FetchParameters::kRestrictToSameOrigin);
       Resource* resource =
           RawResource::FetchSynchronously(params, g_global_resource_fetcher);
-      if (!resource || !g_global_processor)
+      if (!g_global_processor)
         return nullptr;
       scoped_refptr<const SharedBuffer> data = resource->ResourceBuffer();
       if (!data)
diff --git a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
index 34d6e09..412d820 100644
--- a/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
+++ b/third_party/WebKit/Source/core/xml/parser/XMLDocumentParser.cpp
@@ -598,7 +598,7 @@
     FetchParameters params(ResourceRequest(url), options);
     Resource* resource =
         RawResource::FetchSynchronously(params, document->Fetcher());
-    if (resource && !resource->ErrorOccurred()) {
+    if (!resource->ErrorOccurred()) {
       data = resource->ResourceBuffer();
       final_url = resource->GetResponse().Url();
     }
diff --git a/third_party/WebKit/Source/devtools/front_end/Tests.js b/third_party/WebKit/Source/devtools/front_end/Tests.js
index fd97c75..f6c6444 100644
--- a/third_party/WebKit/Source/devtools/front_end/Tests.js
+++ b/third_party/WebKit/Source/devtools/front_end/Tests.js
@@ -767,19 +767,26 @@
     function step1() {
       testPreset(
           MobileThrottling.networkPresets[2],
-          ['offline event: online = false', 'connection change event: type = none; downlinkMax = 0'], step2);
+          [
+            'offline event: online = false', 'connection change event: type = none; downlinkMax = 0; effectiveType = 4g'
+          ],
+          step2);
     }
 
     function step2() {
       testPreset(
           MobileThrottling.networkPresets[1],
-          ['online event: online = true', 'connection change event: type = cellular; downlinkMax = 0.390625'], step3);
+          [
+            'online event: online = true',
+            'connection change event: type = cellular; downlinkMax = 0.390625; effectiveType = 2g'
+          ],
+          step3);
     }
 
     function step3() {
       testPreset(
           MobileThrottling.networkPresets[0],
-          ['connection change event: type = cellular; downlinkMax = 1.4400000000000002'],
+          ['connection change event: type = cellular; downlinkMax = 1.4400000000000002; effectiveType = 3g'],
           test.releaseControl.bind(test));
     }
   };
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/CompilerScriptMapping.js b/third_party/WebKit/Source/devtools/front_end/bindings/CompilerScriptMapping.js
index 45c5f43..f7356b1 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/CompilerScriptMapping.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/CompilerScriptMapping.js
@@ -52,6 +52,11 @@
     Bindings.NetworkProject.setTargetForProject(this._regularProject, target);
     Bindings.NetworkProject.setTargetForProject(this._contentScriptsProject, target);
 
+    /** @type {!Map<string, !Bindings.CompilerScriptMapping.Binding>} */
+    this._regularBindings = new Map();
+    /** @type {!Map<string, !Bindings.CompilerScriptMapping.Binding>} */
+    this._contentScriptsBindings = new Map();
+
     /** @type {!Map<!SDK.Script, !Workspace.UISourceCode>} */
     this._stubUISourceCodes = new Map();
 
@@ -221,15 +226,12 @@
     var script = /** @type {!SDK.Script} */ (event.data.client);
     var frameId = script[Bindings.CompilerScriptMapping._frameIdSymbol];
     var sourceMap = /** @type {!SDK.SourceMap} */ (event.data.sourceMap);
-    var scripts = this._sourceMapManager.clientsForSourceMap(sourceMap);
-    var hasOtherScripts = scripts.some(someScript => someScript.isContentScript() === script.isContentScript());
-    var project = script.isContentScript() ? this._contentScriptsProject : this._regularProject;
+    var bindings = script.isContentScript() ? this._contentScriptsBindings : this._regularBindings;
     for (var sourceURL of sourceMap.sourceURLs()) {
-      var uiSourceCode = /** @type {!Workspace.UISourceCode} */ (project.uiSourceCodeForURL(sourceURL));
-      if (hasOtherScripts)
-        Bindings.NetworkProject.removeFrameAttribution(uiSourceCode, frameId);
-      else
-        project.removeFile(sourceURL);
+      var binding = bindings.get(sourceURL);
+      binding.removeSourceMap(sourceMap, frameId);
+      if (!binding._uiSourceCode)
+        bindings.delete(sourceURL);
     }
     this._debuggerWorkspaceBinding.updateLocations(script);
   }
@@ -266,22 +268,14 @@
     var frameId = Bindings.frameIdForScript(script);
     script[Bindings.CompilerScriptMapping._frameIdSymbol] = frameId;
     var project = script.isContentScript() ? this._contentScriptsProject : this._regularProject;
+    var bindings = script.isContentScript() ? this._contentScriptsBindings : this._regularBindings;
     for (var sourceURL of sourceMap.sourceURLs()) {
-      var uiSourceCode = project.uiSourceCodeForURL(sourceURL);
-      if (uiSourceCode) {
-        Bindings.NetworkProject.addFrameAttribution(uiSourceCode, frameId);
-        continue;
+      var binding = bindings.get(sourceURL);
+      if (!binding) {
+        binding = new Bindings.CompilerScriptMapping.Binding(project, sourceURL);
+        bindings.set(sourceURL, binding);
       }
-
-      var contentProvider = sourceMap.sourceContentProvider(sourceURL, Common.resourceTypes.SourceMapScript);
-      var mimeType = Common.ResourceType.mimeFromURL(sourceURL) || contentProvider.contentType().canonicalMimeType();
-      var embeddedContent = sourceMap.embeddedContentByURL(sourceURL);
-      var metadata =
-          typeof embeddedContent === 'string' ? new Workspace.UISourceCodeMetadata(null, embeddedContent.length) : null;
-      uiSourceCode = project.createUISourceCode(sourceURL, contentProvider.contentType());
-      uiSourceCode[Bindings.CompilerScriptMapping._sourceMapSymbol] = sourceMap;
-      Bindings.NetworkProject.setInitialFrameAttribution(uiSourceCode, frameId);
-      project.addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata, mimeType);
+      binding.addSourceMap(sourceMap, frameId);
     }
     this._debuggerWorkspaceBinding.updateLocations(script);
   }
@@ -309,3 +303,76 @@
 
 Bindings.CompilerScriptMapping._frameIdSymbol = Symbol('Bindings.CompilerScriptMapping._frameIdSymbol');
 Bindings.CompilerScriptMapping._sourceMapSymbol = Symbol('Bindings.CompilerScriptMapping._sourceMapSymbol');
+
+
+Bindings.CompilerScriptMapping.Binding = class {
+  /**
+   * @param {!Bindings.ContentProviderBasedProject} project
+   * @param {string} url
+   */
+  constructor(project, url) {
+    this._project = project;
+    this._url = url;
+
+    /** @type {!Array<!SDK.SourceMap>} */
+    this._referringSourceMaps = [];
+    this._activeSourceMap = null;
+    this._uiSourceCode = null;
+  }
+
+  /**
+   * @param {string} frameId
+   */
+  _recreateUISourceCodeIfNeeded(frameId) {
+    var sourceMap = this._referringSourceMaps.peekLast();
+    if (this._activeSourceMap === sourceMap)
+      return;
+    this._activeSourceMap = sourceMap;
+
+    var newUISourceCode = this._project.createUISourceCode(this._url, Common.resourceTypes.SourceMapScript);
+    newUISourceCode[Bindings.CompilerScriptMapping._sourceMapSymbol] = sourceMap;
+    var contentProvider = sourceMap.sourceContentProvider(this._url, Common.resourceTypes.SourceMapScript);
+    var mimeType = Common.ResourceType.mimeFromURL(this._url) || 'text/javascript';
+    var embeddedContent = sourceMap.embeddedContentByURL(this._url);
+    var metadata =
+        typeof embeddedContent === 'string' ? new Workspace.UISourceCodeMetadata(null, embeddedContent.length) : null;
+
+    if (this._uiSourceCode) {
+      Bindings.NetworkProject.cloneInitialFrameAttribution(this._uiSourceCode, newUISourceCode);
+      this._project.removeFile(this._uiSourceCode.url());
+    } else {
+      Bindings.NetworkProject.setInitialFrameAttribution(newUISourceCode, frameId);
+    }
+    this._uiSourceCode = newUISourceCode;
+    this._project.addUISourceCodeWithProvider(this._uiSourceCode, contentProvider, metadata, mimeType);
+  }
+
+  /**
+   * @param {!SDK.SourceMap} sourceMap
+   * @param {string} frameId
+   */
+  addSourceMap(sourceMap, frameId) {
+    if (this._uiSourceCode)
+      Bindings.NetworkProject.addFrameAttribution(this._uiSourceCode, frameId);
+    this._referringSourceMaps.push(sourceMap);
+    this._recreateUISourceCodeIfNeeded(frameId);
+  }
+
+  /**
+   * @param {!SDK.SourceMap} sourceMap
+   * @param {string} frameId
+   */
+  removeSourceMap(sourceMap, frameId) {
+    Bindings.NetworkProject.removeFrameAttribution(
+        /** @type {!Workspace.UISourceCode} */ (this._uiSourceCode), frameId);
+    var lastIndex = this._referringSourceMaps.lastIndexOf(sourceMap);
+    if (lastIndex !== -1)
+      this._referringSourceMaps.splice(lastIndex, 1);
+    if (!this._referringSourceMaps.length) {
+      this._project.removeFile(this._uiSourceCode.url());
+      this._uiSourceCode = null;
+    } else {
+      this._recreateUISourceCodeIfNeeded(frameId);
+    }
+  }
+};
diff --git a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js
index cac03cf..b085092 100644
--- a/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js
+++ b/third_party/WebKit/Source/devtools/front_end/bindings/NetworkProject.js
@@ -134,12 +134,30 @@
     var frame = Bindings.NetworkProject._resolveFrame(uiSourceCode, frameId);
     if (!frame)
       return;
+    /** @type {!Map<string, !{frame: !SDK.ResourceTreeFrame, count: number}>} */
     var attribution = new Map();
     attribution.set(frameId, {frame: frame, count: 1});
     uiSourceCode[Bindings.NetworkProject._frameAttributionSymbol] = attribution;
   }
 
   /**
+   * @param {!Workspace.UISourceCode} fromUISourceCode
+   * @param {!Workspace.UISourceCode} toUISourceCode
+   */
+  static cloneInitialFrameAttribution(fromUISourceCode, toUISourceCode) {
+    var fromAttribution = fromUISourceCode[Bindings.NetworkProject._frameAttributionSymbol];
+    if (!fromAttribution)
+      return;
+    /** @type {!Map<string, !{frame: !SDK.ResourceTreeFrame, count: number}>} */
+    var toAttribution = new Map();
+    toUISourceCode[Bindings.NetworkProject._frameAttributionSymbol] = toAttribution;
+    for (var frameId of fromAttribution.keys()) {
+      var value = fromAttribution.get(frameId);
+      toAttribution.set(frameId, {frame: value.frame, count: value.count});
+    }
+  }
+
+  /**
    * @param {!Workspace.UISourceCode} uiSourceCode
    * @param {string} frameId
    */
diff --git a/third_party/WebKit/Source/devtools/front_end/components/DOMPresentationUtils.js b/third_party/WebKit/Source/devtools/front_end/components/DOMPresentationUtils.js
index cf46d18..7af2cd5f 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/DOMPresentationUtils.js
+++ b/third_party/WebKit/Source/devtools/front_end/components/DOMPresentationUtils.js
@@ -216,30 +216,47 @@
  * @param {?SDK.Target} target
  * @param {!Components.Linkifier} linkifier
  * @param {!Protocol.Runtime.StackTrace=} stackTrace
+ * @param {function()=} contentUpdated
  * @return {!Element}
  */
-Components.DOMPresentationUtils.buildStackTracePreviewContents = function(target, linkifier, stackTrace) {
+Components.DOMPresentationUtils.buildStackTracePreviewContents = function(
+    target, linkifier, stackTrace, contentUpdated) {
   var element = createElement('span');
   element.style.display = 'inline-block';
   var shadowRoot = UI.createShadowRootWithCoreStyles(element, 'components/domUtils.css');
   var contentElement = shadowRoot.createChild('table', 'stack-preview-container');
+  var debuggerModel = target ? target.model(SDK.DebuggerModel) : null;
+  var totalHiddenCallFramesCount = 0;
 
   /**
    * @param {!Protocol.Runtime.StackTrace} stackTrace
+   * @return {boolean}
    */
   function appendStackTrace(stackTrace) {
+    var hiddenCallFrames = 0;
     for (var stackFrame of stackTrace.callFrames) {
       var row = createElement('tr');
       row.createChild('td').textContent = '\n';
       row.createChild('td', 'function-name').textContent = UI.beautifyFunctionName(stackFrame.functionName);
       var link = linkifier.maybeLinkifyConsoleCallFrame(target, stackFrame);
-      link.addEventListener('contextmenu', populateContextMenu.bind(null, link));
       if (link) {
+        link.addEventListener('contextmenu', populateContextMenu.bind(null, link));
+        if (debuggerModel) {
+          var location = debuggerModel.createRawLocationByScriptId(
+              stackFrame.scriptId, stackFrame.lineNumber, stackFrame.columnNumber);
+          if (location && Bindings.blackboxManager.isBlackboxedRawLocation(location)) {
+            row.classList.add('blackboxed');
+            ++hiddenCallFrames;
+          }
+        }
+
         row.createChild('td').textContent = ' @ ';
         row.createChild('td').appendChild(link);
       }
       contentElement.appendChild(row);
     }
+    totalHiddenCallFramesCount += hiddenCallFrames;
+    return stackTrace.callFrames.length === hiddenCallFrames;
   }
 
   /**
@@ -280,10 +297,28 @@
         UI.asyncStackTraceLabel(asyncStackTrace.description);
     row.createChild('td');
     row.createChild('td');
-    appendStackTrace(asyncStackTrace);
+    if (appendStackTrace(asyncStackTrace))
+      row.classList.add('blackboxed');
     asyncStackTrace = asyncStackTrace.parent;
   }
 
+  if (totalHiddenCallFramesCount) {
+    var row = contentElement.createChild('tr', 'show-blackboxed-link');
+    row.createChild('td').textContent = '\n';
+    var cell = row.createChild('td');
+    cell.colSpan = 4;
+    var showAllLink = cell.createChild('span', 'link');
+    if (totalHiddenCallFramesCount === 1)
+      showAllLink.textContent = ls`Show 1 more blackboxed frame`;
+    else
+      showAllLink.textContent = ls`Show ${totalHiddenCallFramesCount} more blackboxed frames`;
+    showAllLink.addEventListener('click', () => {
+      contentElement.classList.add('show-blackboxed');
+      if (contentUpdated)
+        contentUpdated();
+    }, false);
+  }
+
   return element;
 };
 
diff --git a/third_party/WebKit/Source/devtools/front_end/components/domUtils.css b/third_party/WebKit/Source/devtools/front_end/components/domUtils.css
index e29312f..f958190 100644
--- a/third_party/WebKit/Source/devtools/front_end/components/domUtils.css
+++ b/third_party/WebKit/Source/devtools/front_end/components/domUtils.css
@@ -38,6 +38,18 @@
     max-width: 80em;
 }
 
+.stack-preview-container:not(.show-blackboxed) > tr.blackboxed {
+    display: none;
+}
+
+.stack-preview-container.show-blackboxed > tr.show-blackboxed-link {
+    display: none;
+}
+
+.stack-preview-container > tr.show-blackboxed-link {
+    font-style: italic;
+}
+
 .node-label-name {
     color: rgb(136, 18, 128);
 }
diff --git a/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewport.js b/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewport.js
index 62b5d03..34c8c08 100644
--- a/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewport.js
+++ b/third_party/WebKit/Source/devtools/front_end/console/ConsoleViewport.js
@@ -56,7 +56,7 @@
     this.element.addEventListener('copy', this._onCopy.bind(this), false);
     this.element.addEventListener('dragstart', this._onDragStart.bind(this), false);
 
-    this._firstActiveIndex = 0;
+    this._firstActiveIndex = -1;
     this._lastActiveIndex = -1;
     this._renderedItems = [];
     this._anchorSelection = null;
@@ -165,6 +165,18 @@
     }
   }
 
+  _rebuildCumulativeHeightsIfNeeded() {
+    // Check whether current items in DOM have changed heights. Tolerate 1-pixel
+    // error due to double-to-integer rounding errors.
+    for (var i = 0; i < this._renderedItems.length; ++i) {
+      var cachedItemHeight = this._cachedItemHeight(this._firstActiveIndex + i);
+      if (Math.abs(cachedItemHeight - this._renderedItems[i].element().offsetHeight) > 1) {
+        this._rebuildCumulativeHeights();
+        break;
+      }
+    }
+  }
+
   /**
    * @param {number} index
    * @return {number}
@@ -327,16 +339,9 @@
 
     var visibleFrom = this.element.scrollTop;
     var visibleHeight = this._visibleHeight();
-
-    for (var i = 0; i < this._renderedItems.length; ++i) {
-      // Tolerate 1-pixel error due to double-to-integer rounding errors.
-      var cachedItemHeight = this._cachedItemHeight(this._firstActiveIndex + i);
-      if (Math.abs(cachedItemHeight - this._renderedItems[i].element().offsetHeight) > 1) {
-        this._rebuildCumulativeHeights();
-        break;
-      }
-    }
     var activeHeight = visibleHeight * 2;
+    this._rebuildCumulativeHeightsIfNeeded();
+
     // When the viewport is scrolled to the bottom, using the cumulative heights estimate is not
     // precise enough to determine next visible indices. This stickToBottom check avoids extra
     // calls to refresh in those cases.
@@ -345,10 +350,8 @@
           Math.max(this._itemCount - Math.ceil(activeHeight / this._provider.minimumRowHeight()), 0);
       this._lastActiveIndex = this._itemCount - 1;
     } else {
-      this._firstActiveIndex = Math.max(
-          Int32Array.prototype.lowerBound.call(
-              this._cumulativeHeights, visibleFrom + 1 - (activeHeight - visibleHeight) / 2),
-          0);
+      this._firstActiveIndex =
+          Math.max(this._cumulativeHeights.lowerBound(visibleFrom + 1 - (activeHeight - visibleHeight) / 2), 0);
       // Proactively render more rows in case some of them will be collapsed without triggering refresh. @see crbug.com/390169
       this._lastActiveIndex = this._firstActiveIndex + Math.ceil(activeHeight / this._provider.minimumRowHeight()) - 1;
       this._lastActiveIndex = Math.min(this._lastActiveIndex, this._itemCount - 1);
@@ -493,23 +496,22 @@
    * @return {number}
    */
   firstVisibleIndex() {
-    var firstVisibleIndex =
-        Math.max(Int32Array.prototype.lowerBound.call(this._cumulativeHeights, this.element.scrollTop + 1), 0);
-    return Math.max(firstVisibleIndex, this._firstActiveIndex);
+    if (!this._cumulativeHeights.length)
+      return -1;
+    this._rebuildCumulativeHeightsIfNeeded();
+    return this._cumulativeHeights.lowerBound(this.element.scrollTop + 1);
   }
 
   /**
    * @return {number}
    */
   lastVisibleIndex() {
-    var lastVisibleIndex;
-    if (this._stickToBottom) {
-      lastVisibleIndex = this._itemCount - 1;
-    } else {
-      lastVisibleIndex =
-          this.firstVisibleIndex() + Math.ceil(this._visibleHeight() / this._provider.minimumRowHeight()) - 1;
-    }
-    return Math.min(lastVisibleIndex, this._lastActiveIndex);
+    if (!this._cumulativeHeights.length)
+      return -1;
+    this._rebuildCumulativeHeightsIfNeeded();
+    var scrollBottom = this.element.scrollTop + this.element.clientHeight;
+    var right = this._itemCount - 1;
+    return this._cumulativeHeights.lowerBound(scrollBottom, undefined, undefined, right);
   }
 
   /**
@@ -544,7 +546,9 @@
    * @param {number} index
    */
   forceScrollItemToBeFirst(index) {
+    console.assert(index >= 0 && index < this._itemCount, 'Cannot scroll item at invalid index');
     this.setStickToBottom(false);
+    this._rebuildCumulativeHeightsIfNeeded();
     this.element.scrollTop = index > 0 ? this._cumulativeHeights[index - 1] : 0;
     if (this.element.isScrolledToBottom())
       this.setStickToBottom(true);
@@ -555,7 +559,9 @@
    * @param {number} index
    */
   forceScrollItemToBeLast(index) {
+    console.assert(index >= 0 && index < this._itemCount, 'Cannot scroll item at invalid index');
     this.setStickToBottom(false);
+    this._rebuildCumulativeHeightsIfNeeded();
     this.element.scrollTop = this._cumulativeHeights[index] - this._visibleHeight();
     if (this.element.isScrolledToBottom())
       this.setStickToBottom(true);
diff --git a/third_party/WebKit/Source/devtools/front_end/console_test_runner/ConsoleTestRunner.js b/third_party/WebKit/Source/devtools/front_end/console_test_runner/ConsoleTestRunner.js
index 5b336d2..5491ed1 100644
--- a/third_party/WebKit/Source/devtools/front_end/console_test_runner/ConsoleTestRunner.js
+++ b/third_party/WebKit/Source/devtools/front_end/console_test_runner/ConsoleTestRunner.js
@@ -576,3 +576,32 @@
     }
   }
 };
+
+/**
+ * Returns actual visible indices. Messages in the margin are treated as NOT visible.
+ * @return {!{first: number, last: number, count: number}}
+ */
+ConsoleTestRunner.visibleIndices = function() {
+  var consoleView = Console.ConsoleView.instance();
+  var viewport = consoleView._viewport;
+  var viewportRect = viewport.element.getBoundingClientRect();
+  var viewportPadding = parseFloat(window.getComputedStyle(viewport.element).paddingTop);
+  var first = -1;
+  var last = -1;
+  var count = 0;
+  for (var i = 0; i < consoleView._visibleViewMessages.length; i++) {
+    // Created message elements may have a bounding rect, but not be connected to DOM.
+    var item = consoleView._visibleViewMessages[i];
+    if (!item._element || !item._element.isConnected)
+      continue;
+    var itemRect = item._element.getBoundingClientRect();
+    var isVisible = (itemRect.bottom > viewportRect.top + viewportPadding + 1) &&
+        (itemRect.top <= viewportRect.bottom - viewportPadding - 1);
+    if (isVisible) {
+      first = first === -1 ? i : first;
+      last = i;
+      count++;
+    }
+  }
+  return {first, last, count};
+};
diff --git a/third_party/WebKit/Source/devtools/front_end/devtools_compatibility.js b/third_party/WebKit/Source/devtools/front_end/devtools_compatibility.js
index 10594ac17..4850ca6 100644
--- a/third_party/WebKit/Source/devtools/front_end/devtools_compatibility.js
+++ b/third_party/WebKit/Source/devtools/front_end/devtools_compatibility.js
@@ -756,6 +756,14 @@
     // Backward-compatible methods below this line --------------------------------------------
 
     /**
+     * Support for legacy front-ends (<M65).
+     * @return {boolean}
+     */
+    isUnderTest() {
+      return false;
+    }
+
+    /**
      * Support for legacy front-ends (<M50).
      * @param {string} message
      */
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
index c023939b..e69cc32f 100644
--- a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
@@ -1805,7 +1805,7 @@
     this.element.style.removeProperty('contain');
     this.element.removeEventListener('input', this._scheduleHeightUpdate, true);
     this._editing = false;
-    if (this._parentPane.element.hasFocus())
+    if (this._parentPane.element === this._parentPane.element.ownerDocument.deepActiveElement())
       this.element.focus();
   }
 };
@@ -2751,6 +2751,7 @@
    * @param {string} moveDirection
    */
   _editingCommitted(userInput, context, moveDirection) {
+    var hadFocus = this._parentPane.element.hasFocus();
     this._removePrompt();
     this.editingEnded(context);
     var isEditingName = context.isEditingName;
@@ -2782,7 +2783,8 @@
         (isPropertySplitPaste || moveToOther || (!moveDirection && !isEditingName) || (isEditingName && blankInput));
     var section = /** @type {!Elements.StylePropertiesSection} */ (this.section());
     if (((userInput !== context.previousContent || isDirtyViaPaste) && !this._newProperty) || shouldCommitNewProperty) {
-      this._parentPane.element.focus();
+      if (hadFocus)
+        this._parentPane.element.focus();
       section._afterUpdate = moveToNextCallback.bind(this, this._newProperty, !blankInput, section);
       var propertyText;
       if (blankInput || (this._newProperty && this.valueElement.textContent.isWhitespace())) {
diff --git a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
index 896352e1..3b0a2bce 100644
--- a/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
+++ b/third_party/WebKit/Source/devtools/front_end/emulation/DeviceModeToolbar.js
@@ -22,12 +22,11 @@
     this._showUserAgentTypeSetting = Common.settings.createSetting('emulation.showUserAgentType', false);
     this._showUserAgentTypeSetting.addChangeListener(this._updateUserAgentTypeVisibility, this);
 
+    this._autoAdjustScaleSetting = Common.settings.createSetting('emulation.autoAdjustScale', true);
+
     /** @type {!Map<!Emulation.EmulatedDevice, !Emulation.EmulatedDevice.Mode>} */
     this._lastMode = new Map();
 
-    /** @type {!Map<!Emulation.EmulatedDevice, number>} */
-    this._lastScale = new Map();
-
     this._element = createElementWithClass('div', 'device-mode-toolbar');
 
     var leftContainer = this._element.createChild('div', 'device-mode-toolbar-spacer');
@@ -203,10 +202,12 @@
    */
   _appendScaleMenuItems(contextMenu) {
     if (this._model.type() === Emulation.DeviceModeModel.Type.Device) {
-      contextMenu.headerSection().appendItem(
+      contextMenu.footerSection().appendItem(
           Common.UIString('Fit to window (%.0f%%)', this._model.fitScale() * 100),
           this._onScaleMenuChanged.bind(this, this._model.fitScale()), false);
     }
+    contextMenu.footerSection().appendCheckboxItem(
+        ls`Auto-adjust zoom`, this._onAutoAdjustScaleChanged.bind(this), this._autoAdjustScaleSetting.get());
     var boundAppendScaleItem = appendScaleItem.bind(this);
     boundAppendScaleItem(Common.UIString('50%'), 0.5);
     boundAppendScaleItem(Common.UIString('75%'), 0.75);
@@ -229,12 +230,13 @@
    * @param {number} value
    */
   _onScaleMenuChanged(value) {
-    var device = this._model.device();
-    if (device)
-      this._lastScale.set(device, value);
     this._model.scaleSetting().set(value);
   }
 
+  _onAutoAdjustScaleChanged() {
+    this._autoAdjustScaleSetting.set(!this._autoAdjustScaleSetting.get());
+  }
+
   /**
    * @param {!UI.ContextMenu} contextMenu
    */
@@ -342,9 +344,9 @@
    * @param {!Emulation.EmulatedDevice} device
    */
   _emulateDevice(device) {
+    var scale = this._autoAdjustScaleSetting.get() ? undefined : this._model.scaleSetting().get();
     this._model.emulate(
-        Emulation.DeviceModeModel.Type.Device, device, this._lastMode.get(device) || device.modes[0],
-        this._lastScale.get(device));
+        Emulation.DeviceModeModel.Type.Device, device, this._lastMode.get(device) || device.modes[0], scale);
   }
 
   _switchToResponsive() {
@@ -443,15 +445,23 @@
   _modeMenuClicked(event) {
     var device = this._model.device();
     var model = this._model;
+    var autoAdjustScaleSetting = this._autoAdjustScaleSetting;
 
     if (model.type() === Emulation.DeviceModeModel.Type.Responsive) {
       var appliedSize = model.appliedDeviceSize();
-      model.setSizeAndScaleToFit(appliedSize.height, appliedSize.width);
+      if (autoAdjustScaleSetting.get()) {
+        model.setSizeAndScaleToFit(appliedSize.height, appliedSize.width);
+      } else {
+        model.setWidth(appliedSize.height);
+        model.setHeight(appliedSize.width);
+      }
       return;
     }
 
     if (device.modes.length === 2 && device.modes[0].orientation !== device.modes[1].orientation) {
-      model.emulate(model.type(), model.device(), model.mode() === device.modes[0] ? device.modes[1] : device.modes[0]);
+      var scale = autoAdjustScaleSetting.get() ? undefined : model.scaleSetting().get();
+      model.emulate(
+          model.type(), model.device(), model.mode() === device.modes[0] ? device.modes[1] : device.modes[0], scale);
       return;
     }
 
@@ -490,7 +500,8 @@
      * @param {!Emulation.EmulatedDevice.Mode} mode
      */
     function applyMode(mode) {
-      model.emulate(model.type(), model.device(), mode);
+      var scale = autoAdjustScaleSetting.get() ? undefined : model.scaleSetting().get();
+      model.emulate(model.type(), model.device(), mode, scale);
     }
   }
 
diff --git a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
index d2f52ba66..7340370 100644
--- a/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
+++ b/third_party/WebKit/Source/devtools/front_end/extensions/ExtensionServer.js
@@ -433,9 +433,9 @@
         message.expression, true, true, message.evaluateOptions, port._extensionOrigin, callback.bind(this));
   }
 
-  _onGetHAR() {
+  async _onGetHAR() {
     var requests = NetworkLog.networkLog.requests();
-    var harLog = (new NetworkLog.HARLog(requests)).build();
+    var harLog = await NetworkLog.HARLog.build(requests);
     for (var i = 0; i < harLog.entries.length; ++i)
       harLog.entries[i]._requestId = this._requestId(requests[i]);
     return harLog;
@@ -638,11 +638,10 @@
         Extensions.extensionAPI.Events.ResourceContentCommitted, this._makeResource(uiSourceCode), content);
   }
 
-  _notifyRequestFinished(event) {
+  async _notifyRequestFinished(event) {
     var request = /** @type {!SDK.NetworkRequest} */ (event.data);
-    this._postNotification(
-        Extensions.extensionAPI.Events.NetworkRequestFinished, this._requestId(request),
-        (new NetworkLog.HAREntry(request)).build());
+    var entry = await NetworkLog.HAREntry.build(request);
+    this._postNotification(Extensions.extensionAPI.Events.NetworkRequestFinished, this._requestId(request), entry);
   }
 
   _notifyElementsSelectionChanged() {
@@ -735,12 +734,12 @@
       this._registerExtension(event.origin, event.ports[0]);
   }
 
-  _onmessage(event) {
+  async _onmessage(event) {
     var message = event.data;
     var result;
 
     if (message.command in this._handlers)
-      result = this._handlers[message.command](message, event.target);
+      result = await this._handlers[message.command](message, event.target);
     else
       result = this._status.E_NOTSUPPORTED(message.command);
 
diff --git a/third_party/WebKit/Source/devtools/front_end/har_importer/HARImporter.js b/third_party/WebKit/Source/devtools/front_end/har_importer/HARImporter.js
index 184b4a24..3eeb6d9 100644
--- a/third_party/WebKit/Source/devtools/front_end/har_importer/HARImporter.js
+++ b/third_party/WebKit/Source/devtools/front_end/har_importer/HARImporter.js
@@ -57,7 +57,9 @@
   static _fillRequestFromHAREntry(request, entry, pageLoad) {
     // Request data.
     if (entry.request.postData)
-      request.requestFormData = entry.request.postData.text;
+      request.setRequestFormData(true, entry.request.postData.text);
+    else
+      request.setRequestFormData(false, null);
     request.connectionId = entry.connection || '';
     request.requestMethod = entry.request.method;
     request.setRequestHeaders(entry.request.headers);
diff --git a/third_party/WebKit/Source/devtools/front_end/main/Main.js b/third_party/WebKit/Source/devtools/front_end/main/Main.js
index ee3aed6a..909875d 100644
--- a/third_party/WebKit/Source/devtools/front_end/main/Main.js
+++ b/third_party/WebKit/Source/devtools/front_end/main/Main.js
@@ -118,6 +118,7 @@
     Runtime.experiments.register('emptySourceMapAutoStepping', 'Empty sourcemap auto-stepping');
     Runtime.experiments.register('inputEventsOnTimelineOverview', 'Input events on Timeline overview', true);
     Runtime.experiments.register('logManagement', 'Log management', true);
+    Runtime.experiments.register('nativeHeapProfiler', 'Native memory sampling heap profiler', true);
     Runtime.experiments.register('performanceMonitor', 'Performance Monitor', true);
     Runtime.experiments.register('sourceDiff', 'Source diff');
     Runtime.experiments.register(
diff --git a/third_party/WebKit/Source/devtools/front_end/network/HARWriter.js b/third_party/WebKit/Source/devtools/front_end/network/HARWriter.js
index 6afca1c..2da6a8d 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/HARWriter.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/HARWriter.js
@@ -54,8 +54,7 @@
     progress.setTitle(Common.UIString('Collecting content\u2026'));
     progress.setTotalWork(requests.length);
 
-    var harLog = (new NetworkLog.HARLog(requests)).build();
-
+    var harLog = await NetworkLog.HARLog.build(requests);
     var promises = [];
     for (var i = 0; i < requests.length; i++) {
       var promise = requests[i].contentData();
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
index eb8addc..ce59b673 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
@@ -1249,8 +1249,8 @@
     return httpRequests.filter(Network.NetworkLogView.FinishedRequestsFilter);
   }
 
-  _copyAll() {
-    var harArchive = {log: (new NetworkLog.HARLog(this._harRequests())).build()};
+  async _copyAll() {
+    var harArchive = {log: await NetworkLog.HARLog.build(this._harRequests())};
     InspectorFrontendHost.copyText(JSON.stringify(harArchive, null, 2));
   }
 
@@ -1258,18 +1258,17 @@
    * @param {!SDK.NetworkRequest} request
    * @param {string} platform
    */
-  _copyCurlCommand(request, platform) {
-    InspectorFrontendHost.copyText(this._generateCurlCommand(request, platform));
+  async _copyCurlCommand(request, platform) {
+    var command = await this._generateCurlCommand(request, platform);
+    InspectorFrontendHost.copyText(command);
   }
 
   /**
    * @param {string} platform
    */
-  _copyAllCurlCommand(platform) {
+  async _copyAllCurlCommand(platform) {
     var requests = NetworkLog.networkLog.requests();
-    var commands = [];
-    for (var request of requests)
-      commands.push(this._generateCurlCommand(request, platform));
+    var commands = await Promise.all(requests.map(request => this._generateCurlCommand(request, platform)));
     if (platform === 'win')
       InspectorFrontendHost.copyText(commands.join(' &\r\n'));
     else
@@ -1279,13 +1278,14 @@
   /**
    * @param {!SDK.NetworkRequest} request
    */
-  _copyPowerShellCommand(request) {
-    InspectorFrontendHost.copyText(this._generatePowerShellCommand(request));
+  async _copyPowerShellCommand(request) {
+    var command = await this._generatePowerShellCommand(request);
+    InspectorFrontendHost.copyText(command);
   }
 
-  _copyAllPowerShellCommand() {
+  async _copyAllPowerShellCommand() {
     var requests = NetworkLog.networkLog.requests();
-    var commands = requests.map(this._generatePowerShellCommand.bind(this));
+    var commands = await Promise.all(requests.map(request => this._generatePowerShellCommand(request)));
     InspectorFrontendHost.copyText(commands.join(';\r\n'));
   }
 
@@ -1633,9 +1633,9 @@
   /**
    * @param {!SDK.NetworkRequest} request
    * @param {string} platform
-   * @return {string}
+   * @return {!Promise<string>}
    */
-  _generateCurlCommand(request, platform) {
+  async _generateCurlCommand(request, platform) {
     var command = ['curl'];
     // These headers are derived from URL (except "version") and would be added by cURL anyway.
     var ignoredHeaders = {'host': 1, 'method': 1, 'path': 1, 'scheme': 1, 'version': 1};
@@ -1721,15 +1721,15 @@
     var inferredMethod = 'GET';
     var data = [];
     var requestContentType = request.requestContentType();
-    if (requestContentType && requestContentType.startsWith('application/x-www-form-urlencoded') &&
-        request.requestFormData) {
+    var formData = await request.requestFormData();
+    if (requestContentType && requestContentType.startsWith('application/x-www-form-urlencoded') && formData) {
       data.push('--data');
-      data.push(escapeString(request.requestFormData));
+      data.push(escapeString(formData));
       ignoredHeaders['content-length'] = true;
       inferredMethod = 'POST';
-    } else if (request.requestFormData) {
+    } else if (formData) {
       data.push('--data-binary');
-      data.push(escapeString(request.requestFormData));
+      data.push(escapeString(formData));
       ignoredHeaders['content-length'] = true;
       inferredMethod = 'POST';
     }
@@ -1758,9 +1758,9 @@
 
   /**
    * @param {!SDK.NetworkRequest} request
-   * @return {string}
+   * @return {!Promise<string>}
    */
-  _generatePowerShellCommand(request) {
+  async _generatePowerShellCommand(request) {
     var command = ['Invoke-WebRequest'];
     var ignoredHeaders = new Set(['host', 'connection', 'proxy-connection', 'content-length', 'expect', 'range']);
 
@@ -1793,11 +1793,11 @@
       command.push('-Headers');
       command.push('@{' + headerNameValuePairs.join('; ') + '}');
     }
-
-    if (request.requestFormData) {
+    var formData = await request.requestFormData();
+    if (formData) {
       command.push('-Body');
-      var body = escapeString(request.requestFormData);
-      if (/[^\x20-\x7E]/.test(request.requestFormData))
+      var body = escapeString(formData);
+      if (/[^\x20-\x7E]/.test(formData))
         command.push('([System.Text.Encoding]::UTF8.GetBytes(' + body + '))');
       else
         command.push(body);
diff --git a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
index cde25d2..6d9ac9d5 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/NetworkLogViewColumns.js
@@ -540,7 +540,8 @@
       show: popover => {
         var manager = anchor.request ? SDK.NetworkManager.forRequest(anchor.request) : null;
         var content = Components.DOMPresentationUtils.buildStackTracePreviewContents(
-            manager ? manager.target() : null, this._popupLinkifier, initiator.stack);
+            manager ? manager.target() : null, this._popupLinkifier, initiator.stack,
+            () => popover.setSizeBehavior(UI.GlassPane.SizeBehavior.MeasureContent));
         popover.contentElement.appendChild(content);
         return Promise.resolve(true);
       },
diff --git a/third_party/WebKit/Source/devtools/front_end/network/RequestHeadersView.js b/third_party/WebKit/Source/devtools/front_end/network/RequestHeadersView.js
index 781f171..4f39f1c 100644
--- a/third_party/WebKit/Source/devtools/front_end/network/RequestHeadersView.js
+++ b/third_party/WebKit/Source/devtools/front_end/network/RequestHeadersView.js
@@ -159,15 +159,15 @@
     }
   }
 
-  _refreshFormData() {
+  async _refreshFormData() {
     this._formDataCategory.hidden = true;
     this._requestPayloadCategory.hidden = true;
 
-    var formData = this._request.requestFormData;
+    var formData = await this._request.requestFormData();
     if (!formData)
       return;
 
-    var formParameters = this._request.formParameters;
+    var formParameters = await this._request.formParameters();
     if (formParameters) {
       this._formDataCategory.hidden = false;
       this._refreshParams(Common.UIString('Form Data'), formParameters, formData, this._formDataCategory);
diff --git a/third_party/WebKit/Source/devtools/front_end/network_log/HAREntry.js b/third_party/WebKit/Source/devtools/front_end/network_log/HAREntry.js
index 198992d..66d90116 100644
--- a/third_party/WebKit/Source/devtools/front_end/network_log/HAREntry.js
+++ b/third_party/WebKit/Source/devtools/front_end/network_log/HAREntry.js
@@ -53,25 +53,27 @@
   }
 
   /**
-   * @return {!Object}
+   * @param {!SDK.NetworkRequest} request
+   * @return {!Promise<!Object>}
    */
-  build() {
-    var ipAddress = this._request.remoteAddress();
+  static async build(request) {
+    var harEntry = new NetworkLog.HAREntry(request);
+    var ipAddress = harEntry._request.remoteAddress();
     var portPositionInString = ipAddress.lastIndexOf(':');
     if (portPositionInString !== -1)
       ipAddress = ipAddress.substr(0, portPositionInString);
 
-    var timings = this._buildTimings();
+    var timings = harEntry._buildTimings();
     var time = 0;
     // "ssl" is included in the connect field, so do not double count it.
     for (var t of [timings.blocked, timings.dns, timings.connect, timings.send, timings.wait, timings.receive])
       time += Math.max(t, 0);
 
     var entry = {
-      startedDateTime: NetworkLog.HARLog.pseudoWallTime(this._request, this._request.issueTime()),
+      startedDateTime: NetworkLog.HARLog.pseudoWallTime(harEntry._request, harEntry._request.issueTime()),
       time: time,
-      request: this._buildRequest(),
-      response: this._buildResponse(),
+      request: await harEntry._buildRequest(),
+      response: harEntry._buildResponse(),
       cache: {},  // Not supported yet.
       timings: timings,
       // IPv6 address should not have square brackets per (https://tools.ietf.org/html/rfc2373#section-2.2).
@@ -79,21 +81,21 @@
     };
 
     // Chrome specific.
-    if (this._request.cached())
-      entry._fromCache = this._request.cachedInMemory() ? 'memory' : 'disk';
+    if (harEntry._request.cached())
+      entry._fromCache = harEntry._request.cachedInMemory() ? 'memory' : 'disk';
 
-    if (this._request.connectionId !== '0')
-      entry.connection = this._request.connectionId;
-    var page = NetworkLog.PageLoad.forRequest(this._request);
+    if (harEntry._request.connectionId !== '0')
+      entry.connection = harEntry._request.connectionId;
+    var page = NetworkLog.PageLoad.forRequest(harEntry._request);
     if (page)
       entry.pageref = 'page_' + page.id;
     return entry;
   }
 
   /**
-   * @return {!Object}
+   * @return {!Promise<!Object>}
    */
-  _buildRequest() {
+  async _buildRequest() {
     var headersText = this._request.requestHeadersText();
     var res = {
       method: this._request.requestMethod,
@@ -105,8 +107,9 @@
       headersSize: headersText ? headersText.length : -1,
       bodySize: this.requestBodySize
     };
-    if (this._request.requestFormData)
-      res.postData = this._buildPostData();
+    var postData = await this._buildPostData();
+    if (postData)
+      res.postData = postData;
 
     return res;
   }
@@ -223,12 +226,16 @@
   }
 
   /**
-   * @return {!Object}
+   * @return {!Promise<!Object>}
    */
-  _buildPostData() {
-    var res = {mimeType: this._request.requestContentType(), text: this._request.requestFormData};
-    if (this._request.formParameters)
-      res.params = this._buildParameters(this._request.formParameters);
+  async _buildPostData() {
+    var postData = await this._request.requestFormData();
+    if (!postData)
+      return null;
+    var res = {mimeType: this._request.requestContentType(), text: postData};
+    var formParameters = await this._request.formParameters();
+    if (formParameters)
+      res.params = this._buildParameters(formParameters);
     return res;
   }
 
@@ -324,13 +331,6 @@
  */
 NetworkLog.HARLog = class {
   /**
-   * @param {!Array.<!SDK.NetworkRequest>} requests
-   */
-  constructor(requests) {
-    this._requests = requests;
-  }
-
-  /**
    * @param {!SDK.NetworkRequest} request
    * @param {number} monotonicTime
    * @return {string}
@@ -340,15 +340,16 @@
   }
 
   /**
-   * @return {!Object}
+   * @param {!Array.<!SDK.NetworkRequest>} requests
+   * @return {!Promise<!Object>}
    */
-  build() {
-    return {
-      version: '1.2',
-      creator: this._creator(),
-      pages: this._buildPages(),
-      entries: this._requests.map(this._convertResource.bind(this))
-    };
+  static async build(requests) {
+    var log = new NetworkLog.HARLog();
+    var entryPromises = [];
+    for (var request of requests)
+      entryPromises.push(NetworkLog.HAREntry.build(request));
+    var entries = await Promise.all(entryPromises);
+    return {version: '1.2', creator: log._creator(), pages: log._buildPages(requests), entries: entries};
   }
 
   _creator() {
@@ -358,13 +359,14 @@
   }
 
   /**
+   * @param {!Array.<!SDK.NetworkRequest>} requests
    * @return {!Array.<!Object>}
    */
-  _buildPages() {
+  _buildPages(requests) {
     var seenIdentifiers = {};
     var pages = [];
-    for (var i = 0; i < this._requests.length; ++i) {
-      var request = this._requests[i];
+    for (var i = 0; i < requests.length; ++i) {
+      var request = requests[i];
       var page = NetworkLog.PageLoad.forRequest(request);
       if (!page || seenIdentifiers[page.id])
         continue;
@@ -392,14 +394,6 @@
   }
 
   /**
-   * @param {!SDK.NetworkRequest} request
-   * @return {!Object}
-   */
-  _convertResource(request) {
-    return (new NetworkLog.HAREntry(request)).build();
-  }
-
-  /**
    * @param {!NetworkLog.PageLoad} page
    * @param {number} time
    * @return {number}
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js
index 98cb7b45..c3be863 100644
--- a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js
+++ b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfileView.js
@@ -47,11 +47,10 @@
 /**
  * @unrestricted
  */
-Profiler.SamplingHeapProfileType = class extends Profiler.ProfileType {
-  constructor() {
-    super(Profiler.SamplingHeapProfileType.TypeId, Common.UIString('Record allocation profile'));
+Profiler.SamplingHeapProfileTypeBase = class extends Profiler.ProfileType {
+  constructor(typeId, description) {
+    super(typeId, description);
     this._recording = false;
-    Profiler.SamplingHeapProfileType.instance = this;
   }
 
   /**
@@ -95,14 +94,6 @@
     return !wasRecording;
   }
 
-  get treeItemTitle() {
-    return Common.UIString('ALLOCATION PROFILES');
-  }
-
-  get description() {
-    return Common.UIString('Allocation profiles show memory allocations from your JavaScript functions.');
-  }
-
   startRecordingProfile() {
     var heapProfilerModel = UI.context.flavor(SDK.HeapProfilerModel);
     if (this.profileBeingRecorded() || !heapProfilerModel)
@@ -113,7 +104,7 @@
     this.addProfile(profile);
     profile.updateStatus(Common.UIString('Recording\u2026'));
     this._recording = true;
-    heapProfilerModel.startSampling();
+    this._startSampling();
   }
 
   async stopRecordingProfile() {
@@ -121,7 +112,7 @@
     if (!this.profileBeingRecorded() || !this.profileBeingRecorded()._heapProfilerModel)
       return;
 
-    var profile = await this.profileBeingRecorded()._heapProfilerModel.stopSampling();
+    var profile = await this._stopSampling();
     var recordedProfile = this.profileBeingRecorded();
     if (recordedProfile) {
       console.assert(profile);
@@ -149,6 +140,51 @@
   profileBeingRecordedRemoved() {
     this.stopRecordingProfile();
   }
+
+  _startSampling() {
+    throw 'Not implemented';
+  }
+
+  /**
+   * return {!Promise<!Protocol.HeapProfiler.SamplingHeapProfile>}
+   */
+  _stopSampling() {
+    throw 'Not implemented';
+  }
+};
+
+
+/**
+ * @unrestricted
+ */
+Profiler.SamplingHeapProfileType = class extends Profiler.SamplingHeapProfileTypeBase {
+  constructor() {
+    super(Profiler.SamplingHeapProfileType.TypeId, Common.UIString('Record allocation profile'));
+    Profiler.SamplingHeapProfileType.instance = this;
+  }
+
+  get treeItemTitle() {
+    return Common.UIString('ALLOCATION PROFILES');
+  }
+
+  get description() {
+    return Common.UIString('Allocation profiles show memory allocations from your JavaScript functions.');
+  }
+
+  /**
+   * @override
+   */
+  _startSampling() {
+    this.profileBeingRecorded()._heapProfilerModel.startSampling();
+  }
+
+  /**
+   * @override
+   * return {!Promise<!Protocol.HeapProfiler.SamplingHeapProfile>}
+   */
+  _stopSampling() {
+    return this.profileBeingRecorded()._heapProfilerModel.stopSampling();
+  }
 };
 
 Profiler.SamplingHeapProfileType.TypeId = 'SamplingHeap';
@@ -156,10 +192,45 @@
 /**
  * @unrestricted
  */
+Profiler.SamplingNativeHeapProfileType = class extends Profiler.SamplingHeapProfileTypeBase {
+  constructor() {
+    super(Profiler.SamplingNativeHeapProfileType.TypeId, Common.UIString('Record native memory allocation profile'));
+    Profiler.SamplingNativeHeapProfileType.instance = this;
+  }
+
+  get treeItemTitle() {
+    return Common.UIString('NATIVE ALLOCATION PROFILES');
+  }
+
+  get description() {
+    return Common.UIString('Allocation profiles show sampled native memory allocations from the renderer process.');
+  }
+
+  /**
+   * @override
+   */
+  _startSampling() {
+    this.profileBeingRecorded()._heapProfilerModel.startNativeSampling();
+  }
+
+  /**
+   * @override
+   * return {!Promise<!Protocol.HeapProfiler.SamplingHeapProfile>}
+   */
+  _stopSampling() {
+    return this.profileBeingRecorded()._heapProfilerModel.stopNativeSampling();
+  }
+};
+
+Profiler.SamplingNativeHeapProfileType.TypeId = 'SamplingNativeHeap';
+
+/**
+ * @unrestricted
+ */
 Profiler.SamplingHeapProfileHeader = class extends Profiler.WritableProfileHeader {
   /**
    * @param {?SDK.HeapProfilerModel} heapProfilerModel
-   * @param {!Profiler.SamplingHeapProfileType} type
+   * @param {!Profiler.SamplingHeapProfileTypeBase} type
    * @param {string=} title
    */
   constructor(heapProfilerModel, type, title) {
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfilerPanel.js b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfilerPanel.js
index ce1f80c..09dc200 100644
--- a/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfilerPanel.js
+++ b/third_party/WebKit/Source/devtools/front_end/profiler/HeapProfilerPanel.js
@@ -9,10 +9,11 @@
 Profiler.HeapProfilerPanel = class extends Profiler.ProfilesPanel {
   constructor() {
     var registry = Profiler.ProfileTypeRegistry.instance;
-    super(
-        'heap_profiler',
-        [registry.heapSnapshotProfileType, registry.samplingHeapProfileType, registry.trackingHeapSnapshotProfileType],
-        'profiler.heap-toggle-recording');
+    var profileTypes =
+        [registry.heapSnapshotProfileType, registry.samplingHeapProfileType, registry.trackingHeapSnapshotProfileType];
+    if (Runtime.experiments.isEnabled('nativeHeapProfiler'))
+      profileTypes.push(registry.samplingNativeHeapProfileType);
+    super('heap_profiler', profileTypes, 'profiler.heap-toggle-recording');
   }
 
   /**
diff --git a/third_party/WebKit/Source/devtools/front_end/profiler/ProfileTypeRegistry.js b/third_party/WebKit/Source/devtools/front_end/profiler/ProfileTypeRegistry.js
index 620af73..553ae75 100644
--- a/third_party/WebKit/Source/devtools/front_end/profiler/ProfileTypeRegistry.js
+++ b/third_party/WebKit/Source/devtools/front_end/profiler/ProfileTypeRegistry.js
@@ -9,6 +9,7 @@
     this.cpuProfileType = new Profiler.CPUProfileType();
     this.heapSnapshotProfileType = new Profiler.HeapSnapshotProfileType();
     this.samplingHeapProfileType = new Profiler.SamplingHeapProfileType();
+    this.samplingNativeHeapProfileType = new Profiler.SamplingNativeHeapProfileType();
     this.trackingHeapSnapshotProfileType = new Profiler.TrackingHeapSnapshotProfileType();
   }
 };
diff --git a/third_party/WebKit/Source/devtools/front_end/screencast/InputModel.js b/third_party/WebKit/Source/devtools/front_end/screencast/InputModel.js
index fc96e7e0..0da80509de 100644
--- a/third_party/WebKit/Source/devtools/front_end/screencast/InputModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/screencast/InputModel.js
@@ -37,7 +37,6 @@
     this._inputAgent.invoke_dispatchKeyEvent({
       type: type,
       modifiers: this._modifiersForEvent(event),
-      timestamp: event.timeStamp / 1000,
       text: text,
       unmodifiedText: text ? text.toLowerCase() : undefined,
       keyIdentifier: event.keyIdentifier,
@@ -80,7 +79,6 @@
       x: x,
       y: y,
       modifiers: this._modifiersForEvent(event),
-      timestamp: event.timeStamp / 1000,
       button: buttons[event.which],
       clickCount: 0
     };
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/HeapProfilerModel.js b/third_party/WebKit/Source/devtools/front_end/sdk/HeapProfilerModel.js
index 33ed36b3..15367feb 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/HeapProfilerModel.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/HeapProfilerModel.js
@@ -10,6 +10,7 @@
     target.registerHeapProfilerDispatcher(new SDK.HeapProfilerDispatcher(this));
     this._enabled = false;
     this._heapProfilerAgent = target.heapProfilerAgent();
+    this._memoryAgent = target.memoryAgent();
     this._runtimeModel = /** @type {!SDK.RuntimeModel} */ (target.model(SDK.RuntimeModel));
   }
 
@@ -48,6 +49,52 @@
     return this._heapProfilerAgent.stopSampling();
   }
 
+  startNativeSampling() {
+    var defaultSamplingIntervalInBytes = 16384;
+    this._memoryAgent.startSampling(defaultSamplingIntervalInBytes);
+  }
+
+  /**
+   * @return {!Promise<!Protocol.HeapProfiler.SamplingHeapProfile>}
+   */
+  async stopNativeSampling() {
+    var rawProfile = await this._memoryAgent.getSamplingProfile();
+    this._memoryAgent.stopSampling();
+    return this._convertNativeProfile(rawProfile);
+  }
+
+  /**
+   * @param {!Protocol.Memory.SamplingProfile} rawProfile
+   * @return {!Protocol.HeapProfiler.SamplingHeapProfile}
+   */
+  _convertNativeProfile(rawProfile) {
+    var head = {children: new Map(), selfSize: 0, callFrame: {functionName: '(root)', url: ''}};
+    for (var sample of rawProfile.samples) {
+      var node = sample.stack.reverse().reduce((node, name) => {
+        var child = node.children.get(name);
+        if (child)
+          return child;
+        var namespace = /^([^:]*)::/.exec(name);
+        child = {
+          children: new Map(),
+          callFrame: {functionName: name, url: namespace && namespace[1] || ''},
+          selfSize: 0
+        };
+        node.children.set(name, child);
+        return child;
+      }, head);
+      node.selfSize += sample.count * sample.size;
+    }
+
+    function convertChildren(node) {
+      node.children = Array.from(node.children.values());
+      node.children.forEach(convertChildren);
+    }
+    convertChildren(head);
+
+    return /** @type {!Protocol.HeapProfiler.SamplingHeapProfile} */ ({head});
+  }
+
   /**
    * @return {!Promise}
    */
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
index 7f1414ca..bd7611cc 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkManager.js
@@ -45,9 +45,9 @@
 
     // Limit buffer when talking to a remote device.
     if (Runtime.queryParam('remoteFrontend') || Runtime.queryParam('ws'))
-      this._networkAgent.enable(10000000, 5000000);
+      this._networkAgent.enable(10000000, 5000000, SDK.NetworkManager.MAX_EAGER_POST_REQUEST_BODY_LENGTH);
     else
-      this._networkAgent.enable();
+      this._networkAgent.enable(undefined, undefined, SDK.NetworkManager.MAX_EAGER_POST_REQUEST_BODY_LENGTH);
 
     this._bypassServiceWorkerSetting = Common.settings.createSetting('bypassServiceWorker', false);
     if (this._bypassServiceWorkerSetting.get())
@@ -117,6 +117,19 @@
     return {error: error, content: error ? null : response.body, encoded: response.base64Encoded};
   }
 
+
+  /**
+   * @param {!SDK.NetworkRequest} request
+   * @return {!Promise<?string>}
+   */
+  static requestPostData(request) {
+    var manager = SDK.NetworkManager.forRequest(request);
+    if (manager)
+      return manager._networkAgent.getRequestPostData(request.backendRequestId());
+    console.error('No network manager for request');
+    return /** @type {!Promise<?string>} */ (Promise.resolve(null));
+  }
+
   /**
    * @param {!SDK.NetworkManager.Conditions} conditions
    * @return {!Protocol.Network.ConnectionType}
@@ -256,6 +269,8 @@
 
 SDK.NetworkManager._networkManagerForRequestSymbol = Symbol('NetworkManager');
 
+SDK.NetworkManager.MAX_EAGER_POST_REQUEST_BODY_LENGTH = 64 * 1024;  // bytes
+
 /**
  * @implements {Protocol.NetworkDispatcher}
  * @unrestricted
@@ -293,7 +308,7 @@
   _updateNetworkRequestWithRequest(networkRequest, request) {
     networkRequest.requestMethod = request.method;
     networkRequest.setRequestHeaders(this._headersMapToHeadersArray(request.headers));
-    networkRequest.requestFormData = request.postData;
+    networkRequest.setRequestFormData(!!request.hasPostData, request.postData || null);
     networkRequest.setInitialPriority(request.initialPriority);
     networkRequest.mixedContentType = request.mixedContentType || Protocol.Security.MixedContentType.None;
     networkRequest.setReferrerPolicy(request.referrerPolicy);
@@ -716,7 +731,7 @@
     for (var redirect = originalNetworkRequest.redirectSource(); redirect; redirect = redirect.redirectSource())
       redirectCount++;
 
-    originalNetworkRequest.setRequestId(requestId + ':redirected.' + redirectCount);
+    originalNetworkRequest.markAsRedirect(redirectCount);
     this._finishNetworkRequest(originalNetworkRequest, time, -1);
     var newNetworkRequest = this._createNetworkRequest(
         requestId, originalNetworkRequest.frameId, originalNetworkRequest.loaderId, redirectURL,
diff --git a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkRequest.js b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkRequest.js
index 1f0881f..4a48a28 100644
--- a/third_party/WebKit/Source/devtools/front_end/sdk/NetworkRequest.js
+++ b/third_party/WebKit/Source/devtools/front_end/sdk/NetworkRequest.js
@@ -44,6 +44,7 @@
     super();
 
     this._requestId = requestId;
+    this._backendRequestId = requestId;
     this.setUrl(url);
     this._documentURL = documentURL;
     this._frameId = frameId;
@@ -101,6 +102,11 @@
 
     /** @type {string} */
     this.connectionId = '0';
+    /** @type {?Promise<?Array.<!SDK.NetworkRequest.NameValue>>} */
+    this._formParametersPromise = null;
+    // Assume no body initially
+    /** @type {?Promise<?string>} */
+    this._requestFormDataPromise = /** @type {?Promise<?string>} */ (Promise.resolve(null));
   }
 
   /**
@@ -108,9 +114,11 @@
    * @return {number}
    */
   indentityCompare(other) {
-    if (this._requestId > other._requestId)
+    var thisId = this.requestId();
+    var thatId = other.requestId();
+    if (thisId > thatId)
       return 1;
-    if (this._requestId < other._requestId)
+    if (thisId < thatId)
       return -1;
     return 0;
   }
@@ -123,10 +131,10 @@
   }
 
   /**
-   * @param {!Protocol.Network.RequestId} requestId
+   * @return {!Protocol.Network.RequestId}
    */
-  setRequestId(requestId) {
-    this._requestId = requestId;
+  backendRequestId() {
+    return this._backendRequestId;
   }
 
   /**
@@ -665,18 +673,21 @@
   }
 
   /**
-   * @return {string|undefined}
+   * @return {!Promise<?string>}
    */
-  get requestFormData() {
-    return this._requestFormData;
+  requestFormData() {
+    if (!this._requestFormDataPromise)
+      this._requestFormDataPromise = SDK.NetworkManager.requestPostData(this);
+    return this._requestFormDataPromise;
   }
 
   /**
-   * @param {string|undefined} x
+   * @param {boolean} hasData
+   * @param {?string} data
    */
-  set requestFormData(x) {
-    this._requestFormData = x;
-    delete this._parsedFormParameters;
+  setRequestFormData(hasData, data) {
+    this._requestFormDataPromise = (hasData && data === null) ? null : Promise.resolve(data);
+    this._formParametersPromise = null;
   }
 
   /**
@@ -825,18 +836,25 @@
   }
 
   /**
-   * @return {?Array.<!SDK.NetworkRequest.NameValue>}
+   * @return {!Promise<?Array<!SDK.NetworkRequest.NameValue>>}
    */
-  get formParameters() {
-    if (this._parsedFormParameters)
-      return this._parsedFormParameters;
-    if (!this.requestFormData)
-      return null;
+  async _parseFormParameters() {
     var requestContentType = this.requestContentType();
     if (!requestContentType || !requestContentType.match(/^application\/x-www-form-urlencoded\s*(;.*)?$/i))
       return null;
-    this._parsedFormParameters = this._parseParameters(this.requestFormData);
-    return this._parsedFormParameters;
+    var formData = await this.requestFormData();
+    if (formData)
+      return this._parseParameters(formData);
+    return null;
+  }
+
+  /**
+   * @return {!Promise<?Array<!SDK.NetworkRequest.NameValue>>}
+   */
+  formParameters() {
+    if (!this._formParametersPromise)
+      this._formParametersPromise = this._parseFormParameters();
+    return this._formParametersPromise;
   }
 
   /**
@@ -1092,6 +1110,21 @@
     this._eventSourceMessages.push(message);
     this.dispatchEventToListeners(SDK.NetworkRequest.Events.EventSourceMessageAdded, message);
   }
+
+  /**
+   * @param {number} redirectCount
+   */
+  markAsRedirect(redirectCount) {
+    this._requestId = `${this._backendRequestId}:redirected.${redirectCount}`;
+  }
+
+  /**
+   * @param {string} requestId
+   */
+  setRequestIdForTest(requestId) {
+    this._backendRequestId = requestId;
+    this._requestId = requestId;
+  }
 };
 
 /** @enum {symbol} */
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/CallStackSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/sources/CallStackSidebarPane.js
index bd1ae68..d866cd0 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/CallStackSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/sources/CallStackSidebarPane.js
@@ -160,10 +160,10 @@
     } else {
       if (hiddenCallFramesCount === 1) {
         this._blackboxedMessageElement.firstChild.textContent =
-            Common.UIString('1 stack frame is hidden (black-boxed).');
+            Common.UIString('1 stack frame is hidden (blackboxed).');
       } else {
         this._blackboxedMessageElement.firstChild.textContent =
-            Common.UIString('%d stack frames are hidden (black-boxed).', hiddenCallFramesCount);
+            Common.UIString('%d stack frames are hidden (blackboxed).', hiddenCallFramesCount);
       }
       this._blackboxedMessageElement.classList.remove('hidden');
     }
diff --git a/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptCompilerPlugin.js b/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptCompilerPlugin.js
index 6c9670b..c6c1933 100644
--- a/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptCompilerPlugin.js
+++ b/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptCompilerPlugin.js
@@ -21,7 +21,8 @@
     this._disposed = false;
 
     this._textEditor.addEventListener(UI.TextEditor.Events.TextChanged, this._scheduleCompile, this);
-    this._scheduleCompile();
+    if (this._uiSourceCode.hasCommits() || this._uiSourceCode.isDirty())
+      this._scheduleCompile();
   }
 
   /**
@@ -74,7 +75,7 @@
       return;
 
     var code = this._textEditor.text();
-    if (code.length > 1024 * 1024)
+    if (code.length > 1024 * 100)
       return;
 
     this._compiling = true;
diff --git a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
index c272a4b7..fc224dc 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
@@ -660,6 +660,10 @@
   if (RoleValue() == kTimeRole)
     return false;
 
+  if (RoleValue() == kProgressIndicatorRole) {
+    return false;
+  }
+
   // if this element has aria attributes on it, it should not be ignored.
   if (SupportsARIAAttributes())
     return false;
diff --git a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
index cf2bf872..c414f838 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
+++ b/third_party/WebKit/Source/modules/accessibility/AXNodeObject.cpp
@@ -422,6 +422,9 @@
   if (IsHTMLMeterElement(*GetNode()))
     return kMeterRole;
 
+  if (IsHTMLProgressElement(*GetNode()))
+    return kProgressIndicatorRole;
+
   if (IsHTMLOutputElement(*GetNode()))
     return kStatusRole;
 
diff --git a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.cpp b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.cpp
index 5182c15a..3341272 100644
--- a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.cpp
+++ b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.cpp
@@ -190,9 +190,10 @@
                                  std::move(callbacks));
 }
 
-void DOMFileSystem::CreateFile(const FileEntry* file_entry,
-                               FileCallback* success_callback,
-                               ErrorCallbackBase* error_callback) {
+void DOMFileSystem::CreateFile(
+    const FileEntry* file_entry,
+    SnapshotFileCallback::OnDidCreateSnapshotFileCallback* success_callback,
+    ErrorCallbackBase* error_callback) {
   KURL file_system_url = CreateFileSystemURL(file_entry);
   if (!FileSystem()) {
     ReportError(error_callback, FileError::kAbortErr);
diff --git a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
index 12a1d88a..cc4bb1f 100644
--- a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
+++ b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
@@ -43,7 +43,6 @@
 namespace blink {
 
 class DirectoryEntry;
-class FileCallback;
 class FileEntry;
 class FileWriterCallback;
 
@@ -79,7 +78,9 @@
   bool HasPendingActivity() const final;
 
   void CreateWriter(const FileEntry*, FileWriterCallback*, ErrorCallbackBase*);
-  void CreateFile(const FileEntry*, FileCallback*, ErrorCallbackBase*);
+  void CreateFile(const FileEntry*,
+                  SnapshotFileCallback::OnDidCreateSnapshotFileCallback*,
+                  ErrorCallbackBase*);
 
   // Schedule a callback. This should not cross threads (should be called on the
   // same context thread).
diff --git a/third_party/WebKit/Source/modules/filesystem/FileEntry.cpp b/third_party/WebKit/Source/modules/filesystem/FileEntry.cpp
index 10d5b3f8..605277b 100644
--- a/third_party/WebKit/Source/modules/filesystem/FileEntry.cpp
+++ b/third_party/WebKit/Source/modules/filesystem/FileEntry.cpp
@@ -32,7 +32,6 @@
 
 #include "core/fileapi/File.h"
 #include "modules/filesystem/DOMFileSystem.h"
-#include "modules/filesystem/FileCallback.h"
 #include "modules/filesystem/FileSystemCallbacks.h"
 #include "modules/filesystem/FileWriterCallback.h"
 
@@ -47,10 +46,13 @@
                              ScriptErrorCallback::Wrap(error_callback));
 }
 
-void FileEntry::file(FileCallback* success_callback,
+void FileEntry::file(V8FileCallback* success_callback,
                      V8ErrorCallback* error_callback) {
-  filesystem()->CreateFile(this, success_callback,
-                           ScriptErrorCallback::Wrap(error_callback));
+  filesystem()->CreateFile(
+      this,
+      SnapshotFileCallback::OnDidCreateSnapshotFileV8Impl::Create(
+          success_callback),
+      ScriptErrorCallback::Wrap(error_callback));
 }
 
 void FileEntry::Trace(blink::Visitor* visitor) {
diff --git a/third_party/WebKit/Source/modules/filesystem/FileEntry.h b/third_party/WebKit/Source/modules/filesystem/FileEntry.h
index 8b965ab1..878da5e 100644
--- a/third_party/WebKit/Source/modules/filesystem/FileEntry.h
+++ b/third_party/WebKit/Source/modules/filesystem/FileEntry.h
@@ -38,8 +38,8 @@
 namespace blink {
 
 class DOMFileSystemBase;
-class FileCallback;
 class FileWriterCallback;
+class V8FileCallback;
 
 class MODULES_EXPORT FileEntry final : public Entry {
   DEFINE_WRAPPERTYPEINFO();
@@ -51,7 +51,7 @@
   }
 
   void createWriter(FileWriterCallback*, V8ErrorCallback* = nullptr);
-  void file(FileCallback*, V8ErrorCallback* = nullptr);
+  void file(V8FileCallback*, V8ErrorCallback* = nullptr);
 
   bool isFile() const override { return true; }
 
diff --git a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
index 814f58b..74592ac7 100644
--- a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
+++ b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.cpp
@@ -35,6 +35,7 @@
 #include "base/memory/ptr_util.h"
 #include "bindings/modules/v8/V8EntryCallback.h"
 #include "bindings/modules/v8/V8ErrorCallback.h"
+#include "bindings/modules/v8/V8FileCallback.h"
 #include "core/dom/ExecutionContext.h"
 #include "core/fileapi/File.h"
 #include "core/fileapi/FileError.h"
@@ -45,7 +46,6 @@
 #include "modules/filesystem/DirectoryEntry.h"
 #include "modules/filesystem/DirectoryReader.h"
 #include "modules/filesystem/Entry.h"
-#include "modules/filesystem/FileCallback.h"
 #include "modules/filesystem/FileEntry.h"
 #include "modules/filesystem/FileSystemCallback.h"
 #include "modules/filesystem/FileWriterBase.h"
@@ -384,23 +384,35 @@
 
 // SnapshotFileCallback -------------------------------------------------------
 
+void SnapshotFileCallback::OnDidCreateSnapshotFileV8Impl::Trace(
+    blink::Visitor* visitor) {
+  visitor->Trace(callback_);
+  OnDidCreateSnapshotFileCallback::Trace(visitor);
+}
+
+void SnapshotFileCallback::OnDidCreateSnapshotFileV8Impl::OnSuccess(
+    File* file) {
+  callback_->handleEvent(file);
+}
+
 std::unique_ptr<AsyncFileSystemCallbacks> SnapshotFileCallback::Create(
     DOMFileSystemBase* filesystem,
     const String& name,
     const KURL& url,
-    FileCallback* success_callback,
+    OnDidCreateSnapshotFileCallback* success_callback,
     ErrorCallbackBase* error_callback,
     ExecutionContext* context) {
   return base::WrapUnique(new SnapshotFileCallback(
       filesystem, name, url, success_callback, error_callback, context));
 }
 
-SnapshotFileCallback::SnapshotFileCallback(DOMFileSystemBase* filesystem,
-                                           const String& name,
-                                           const KURL& url,
-                                           FileCallback* success_callback,
-                                           ErrorCallbackBase* error_callback,
-                                           ExecutionContext* context)
+SnapshotFileCallback::SnapshotFileCallback(
+    DOMFileSystemBase* filesystem,
+    const String& name,
+    const KURL& url,
+    OnDidCreateSnapshotFileCallback* success_callback,
+    ErrorCallbackBase* error_callback,
+    ExecutionContext* context)
     : FileSystemCallbacksBase(error_callback, filesystem, context),
       name_(name),
       url_(url),
@@ -413,16 +425,16 @@
     return;
 
   // We can't directly use the snapshot blob data handle because the content
-  // type on it hasn't been set.  The |snapshot| param is here to provide a a
+  // type on it hasn't been set.  The |snapshot| param is here to provide a
   // chain of custody thru thread bridging that is held onto until *after* we've
   // coined a File with a new handle that has the correct type set on it. This
   // allows the blob storage system to track when a temp file can and can't be
   // safely deleted.
 
-  HandleEventOrScheduleCallback(
-      success_callback_.Release(),
-      DOMFileSystemBase::CreateFile(metadata, url_, file_system_->GetType(),
-                                    name_));
+  InvokeOrScheduleCallback(&OnDidCreateSnapshotFileCallback::OnSuccess,
+                           success_callback_.Release(),
+                           DOMFileSystemBase::CreateFile(
+                               metadata, url_, file_system_->GetType(), name_));
 }
 
 // VoidCallbacks --------------------------------------------------------------
diff --git a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.h b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.h
index 79593a1..0830358 100644
--- a/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.h
+++ b/third_party/WebKit/Source/modules/filesystem/FileSystemCallbacks.h
@@ -47,7 +47,7 @@
 class DirectoryReaderOnDidReadCallback;
 class Entry;
 class ExecutionContext;
-class FileCallback;
+class File;
 class FileMetadata;
 class FileSystemCallback;
 class FileWriterBase;
@@ -55,6 +55,7 @@
 class MetadataCallback;
 class V8EntryCallback;
 class V8ErrorCallback;
+class V8FileCallback;
 class VoidCallback;
 
 // Passed to DOMFileSystem implementations that may report errors. Subclasses
@@ -265,12 +266,39 @@
 
 class SnapshotFileCallback final : public FileSystemCallbacksBase {
  public:
-  static std::unique_ptr<AsyncFileSystemCallbacks> Create(DOMFileSystemBase*,
-                                                          const String& name,
-                                                          const KURL&,
-                                                          FileCallback*,
-                                                          ErrorCallbackBase*,
-                                                          ExecutionContext*);
+  class OnDidCreateSnapshotFileCallback
+      : public GarbageCollectedFinalized<OnDidCreateSnapshotFileCallback> {
+   public:
+    virtual ~OnDidCreateSnapshotFileCallback() = default;
+    virtual void Trace(blink::Visitor*) {}
+    virtual void OnSuccess(File*) = 0;
+
+   protected:
+    OnDidCreateSnapshotFileCallback() = default;
+  };
+
+  class OnDidCreateSnapshotFileV8Impl : public OnDidCreateSnapshotFileCallback {
+   public:
+    static OnDidCreateSnapshotFileV8Impl* Create(V8FileCallback* callback) {
+      return callback ? new OnDidCreateSnapshotFileV8Impl(callback) : nullptr;
+    }
+    void Trace(blink::Visitor*) override;
+    void OnSuccess(File*) override;
+
+   private:
+    OnDidCreateSnapshotFileV8Impl(V8FileCallback* callback)
+        : callback_(callback) {}
+
+    Member<V8FileCallback> callback_;
+  };
+
+  static std::unique_ptr<AsyncFileSystemCallbacks> Create(
+      DOMFileSystemBase*,
+      const String& name,
+      const KURL&,
+      OnDidCreateSnapshotFileCallback*,
+      ErrorCallbackBase*,
+      ExecutionContext*);
   void DidCreateSnapshotFile(const FileMetadata&,
                              scoped_refptr<BlobDataHandle> snapshot) override;
 
@@ -278,12 +306,12 @@
   SnapshotFileCallback(DOMFileSystemBase*,
                        const String& name,
                        const KURL&,
-                       FileCallback*,
+                       OnDidCreateSnapshotFileCallback*,
                        ErrorCallbackBase*,
                        ExecutionContext*);
   String name_;
   KURL url_;
-  Persistent<FileCallback> success_callback_;
+  Persistent<OnDidCreateSnapshotFileCallback> success_callback_;
 };
 
 class VoidCallbacks final : public FileSystemCallbacksBase {
diff --git a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.cpp b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.cpp
index 8e908ce0..c47f064 100644
--- a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.cpp
+++ b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.cpp
@@ -11,6 +11,7 @@
 #include "core/layout/LayoutView.h"
 #include "core/resize_observer/ResizeObserver.h"
 #include "core/resize_observer/ResizeObserverEntry.h"
+#include "modules/media_controls/MediaControlsImpl.h"
 #include "modules/media_controls/elements/MediaControlElementsHelper.h"
 #include "platform/wtf/text/StringBuilder.h"
 
@@ -119,7 +120,7 @@
   DCHECK(segment_highlight_before_);
   before_segment_position_ = position;
   SetSegmentDivPosition(segment_highlight_before_, before_segment_position_,
-                        Width(), ZoomFactor());
+                        TrackWidth(), ZoomFactor());
 }
 
 void MediaControlSliderElement::SetAfterSegmentPosition(
@@ -127,13 +128,14 @@
   DCHECK(segment_highlight_after_);
   after_segment_position_ = position;
   SetSegmentDivPosition(segment_highlight_after_, after_segment_position_,
-                        Width(), ZoomFactor());
+                        TrackWidth(), ZoomFactor());
 }
 
-int MediaControlSliderElement::Width() {
-  if (LayoutBoxModelObject* box = GetLayoutBoxModelObject())
-    return box->OffsetWidth().Round();
-  return 0;
+int MediaControlSliderElement::TrackWidth() {
+  LayoutBoxModelObject* box = MediaControlsImpl::IsModern()
+                                  ? GetTrackElement().GetLayoutBoxModelObject()
+                                  : GetLayoutBoxModelObject();
+  return box ? box->OffsetWidth().Round() : 0;
 }
 
 float MediaControlSliderElement::ZoomFactor() const {
@@ -144,9 +146,9 @@
 
 void MediaControlSliderElement::NotifyElementSizeChanged() {
   SetSegmentDivPosition(segment_highlight_before_, before_segment_position_,
-                        Width(), ZoomFactor());
+                        TrackWidth(), ZoomFactor());
   SetSegmentDivPosition(segment_highlight_after_, after_segment_position_,
-                        Width(), ZoomFactor());
+                        TrackWidth(), ZoomFactor());
 }
 
 void MediaControlSliderElement::Trace(blink::Visitor* visitor) {
diff --git a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.h b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.h
index 26cded8..5e1f92c3 100644
--- a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.h
+++ b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlSliderElement.h
@@ -31,7 +31,7 @@
 
   // Width in CSS pixels * pageZoomFactor (ignores CSS transforms for
   // simplicity; deliberately ignores pinch zoom's pageScaleFactor).
-  int Width();
+  int TrackWidth();
 
  protected:
   class MediaControlSliderElementResizeObserverDelegate;
diff --git a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
index 7a51ef00..c7f39e0 100644
--- a/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
+++ b/third_party/WebKit/Source/modules/media_controls/elements/MediaControlTimelineElement.cpp
@@ -122,7 +122,7 @@
     return;
   metrics_.RecordPlaying(
       frame->GetChromeClient().GetScreenInfo().orientation_type,
-      MediaElement().IsFullscreen(), Width());
+      MediaElement().IsFullscreen(), TrackWidth());
 }
 
 const char* MediaControlTimelineElement::GetNameForHistograms() const {
@@ -150,7 +150,7 @@
     Platform::Current()->RecordAction(
         UserMetricsAction("Media.Controls.ScrubbingEnd"));
     GetMediaControls().EndScrubbing();
-    metrics_.RecordEndGesture(Width(), MediaElement().duration());
+    metrics_.RecordEndGesture(TrackWidth(), MediaElement().duration());
 
     if (current_time_display_)
       current_time_display_->SetIsWanted(false);
@@ -160,7 +160,7 @@
     metrics_.StartKey();
   }
   if (event->type() == EventTypeNames::keyup && event->IsKeyboardEvent()) {
-    metrics_.RecordEndKey(Width(), ToKeyboardEvent(event)->keyCode());
+    metrics_.RecordEndKey(TrackWidth(), ToKeyboardEvent(event)->keyCode());
   }
 
   MediaControlInputElement::DefaultEventHandler(event);
@@ -177,7 +177,7 @@
       return;
 
     const Touch* touch = touch_event->touches()->item(0);
-    double position = max(0.0, fmin(1.0, touch->clientX() / Width()));
+    double position = max(0.0, fmin(1.0, touch->clientX() / TrackWidth()));
     SetPosition(position * MediaElement().duration());
   } else if (event->type() != EventTypeNames::input) {
     return;
@@ -242,7 +242,6 @@
     return;
   }
 
-  // int current_position = int(current_time * Width() / duration);
   double current_position = current_time / duration;
   for (unsigned i = 0; i < buffered_time_ranges->length(); ++i) {
     float start = buffered_time_ranges->start(i, ASSERT_NO_EXCEPTION);
@@ -260,22 +259,32 @@
       continue;
     }
 
-    // int start_position = int(start * Width() / duration);
-    // int end_position = int(end * Width() / duration);
     double start_position = start / duration;
     double end_position = end / duration;
 
-    // Draw highlight to show what we have played.
-    if (current_position > start_position) {
+    if (MediaControlsImpl::IsModern()) {
+      // Draw highlight to show what we have played.
+      SetBeforeSegmentPosition(MediaControlSliderElement::Position(
+          start_position, current_position - start_position));
+
+      // Draw dark grey highlight to show what we have loaded.
       SetAfterSegmentPosition(MediaControlSliderElement::Position(
-          start_position, current_position));
+          current_position, end_position - current_position));
+    } else {
+      // Draw highlight to show what we have played.
+      if (current_position > start_position) {
+        SetAfterSegmentPosition(MediaControlSliderElement::Position(
+            start_position, current_position));
+      }
+
+      // Draw dark grey highlight to show what we have loaded.
+      if (end_position > current_position) {
+        SetBeforeSegmentPosition(MediaControlSliderElement::Position(
+            current_position, end_position - current_position));
+      }
     }
 
-    // Draw dark grey highlight to show what we have loaded.
-    if (end_position > current_position) {
-      SetBeforeSegmentPosition(MediaControlSliderElement::Position(
-          current_position, end_position - current_position));
-    }
+    // Return since we've drawn the only buffered range we're going to draw.
     return;
   }
 
diff --git a/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css b/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
index 85641ea..d69840d 100644
--- a/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
+++ b/third_party/WebKit/Source/modules/media_controls/resources/modernMediaControls.css
@@ -314,12 +314,12 @@
 }
 
 input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-before {
-  background: rgba(0, 0, 0, .54);
+  background: rgba(0, 0, 0, .87);
   border-radius: 100px;
 }
 
 input[pseudo="-webkit-media-controls-timeline" i]::-internal-track-segment-highlight-after {
-  background: rgba(0, 0, 0, .87);
+  background: rgba(0, 0, 0, .54);
   border-radius: 2px;
 }
 
diff --git a/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp b/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
index dc04c286..5bc7ead 100644
--- a/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
+++ b/third_party/WebKit/Source/modules/sensor/SensorProxy.cpp
@@ -148,7 +148,7 @@
   UpdateSuspendedStatus();
 }
 
-void SensorProxy::HandleSensorError() {
+void SensorProxy::HandleSensorError(SensorCreationResult error) {
   state_ = kUninitialized;
   active_frequencies_.clear();
   reading_ = device::SensorReading();
@@ -162,19 +162,28 @@
   default_config_.reset();
   client_binding_.Close();
 
+  ExceptionCode code = kNotReadableError;
+  String description = "Could not connect to a sensor";
+  if (error == SensorCreationResult::ERROR_NOT_ALLOWED) {
+    code = kNotAllowedError;
+    description = "Permissions to access sensor are not granted";
+  }
   auto copy = observers_;
   for (Observer* observer : copy) {
-    observer->OnSensorError(kNotReadableError, "Could not connect to a sensor",
-                            String());
+    observer->OnSensorError(code, description, String());
   }
 }
 
-void SensorProxy::OnSensorCreated(SensorInitParamsPtr params) {
+void SensorProxy::OnSensorCreated(SensorCreationResult result,
+                                  SensorInitParamsPtr params) {
   DCHECK_EQ(kInitializing, state_);
   if (!params) {
-    HandleSensorError();
+    DCHECK_NE(SensorCreationResult::SUCCESS, result);
+    HandleSensorError(result);
     return;
   }
+
+  DCHECK_EQ(SensorCreationResult::SUCCESS, result);
   const size_t kReadBufferSize = sizeof(ReadingBuffer);
 
   DCHECK_EQ(0u, params->buffer_offset % kReadBufferSize);
@@ -212,7 +221,8 @@
             frequency_limits_.second);
 
   auto error_callback =
-      WTF::Bind(&SensorProxy::HandleSensorError, WrapWeakPersistent(this));
+      WTF::Bind(&SensorProxy::HandleSensorError, WrapWeakPersistent(this),
+                SensorCreationResult::ERROR_NOT_AVAILABLE);
   sensor_.set_connection_error_handler(std::move(error_callback));
 
   state_ = kInitialized;
diff --git a/third_party/WebKit/Source/modules/sensor/SensorProxy.h b/third_party/WebKit/Source/modules/sensor/SensorProxy.h
index 2f7b42c..eebec74 100644
--- a/third_party/WebKit/Source/modules/sensor/SensorProxy.h
+++ b/third_party/WebKit/Source/modules/sensor/SensorProxy.h
@@ -99,10 +99,13 @@
   void FocusedFrameChanged() override;
 
   // Generic handler for a fatal error.
-  void HandleSensorError();
+  void HandleSensorError(
+      device::mojom::blink::SensorCreationResult =
+          device::mojom::blink::SensorCreationResult::ERROR_NOT_AVAILABLE);
 
   // mojo call callbacks.
-  void OnSensorCreated(device::mojom::blink::SensorInitParamsPtr);
+  void OnSensorCreated(device::mojom::blink::SensorCreationResult,
+                       device::mojom::blink::SensorInitParamsPtr);
 
   void OnPollingTimer(TimerBase*);
 
diff --git a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp
index 91ea8f7..6f0d645 100644
--- a/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp
+++ b/third_party/WebKit/Source/modules/webaudio/AudioWorkletGlobalScope.cpp
@@ -227,76 +227,122 @@
   ScriptState::Scope scope(script_state);
 
   v8::Isolate* isolate = script_state->GetIsolate();
+  v8::Local<v8::Context> current_context = script_state->GetContext();
   AudioWorkletProcessorDefinition* definition =
       FindDefinition(processor->Name());
   DCHECK(definition);
 
-  // To expose AudioBuffer on JS side, we have to repackage |Vector<AudioBus*>|
-  // to |sequence<sequence<Float32Array>>|.
-  HeapVector<HeapVector<Member<DOMFloat32Array>>> inputs;
-  HeapVector<HeapVector<Member<DOMFloat32Array>>> outputs;
-
-  for (const auto input_bus : *input_buses) {
-    HeapVector<Member<DOMFloat32Array>> input;
-    for (unsigned channel_index = 0;
-         channel_index < input_bus->NumberOfChannels();
-         ++channel_index) {
-      DOMFloat32Array* channel_data_array =
-          DOMFloat32Array::Create(input_bus->length());
-      memcpy(channel_data_array->Data(),
-             input_bus->Channel(channel_index)->Data(),
-             input_bus->length() * sizeof(float));
-      input.push_back(channel_data_array);
-    }
-    inputs.push_back(input);
-  }
-
-  for (const auto output_bus : *output_buses) {
-    HeapVector<Member<DOMFloat32Array>> output;
-    for (unsigned channel_index = 0;
-         channel_index < output_bus->NumberOfChannels();
-         ++channel_index) {
-      output.push_back(
-          DOMFloat32Array::Create(output_bus->length()));
-    }
-    outputs.push_back(output);
-  }
-
-  V8ObjectBuilder param_values(script_state);
-  for (const auto& param_name : param_value_map->Keys()) {
-    const AudioFloatArray* source_param_array = param_value_map->at(param_name);
-    DOMFloat32Array* param_array =
-        DOMFloat32Array::Create(source_param_array->size());
-    memcpy(param_array->Data(),
-           source_param_array->Data(),
-           sizeof(float) * source_param_array->size());
-    param_values.Add(
-        StringView(param_name.IsolatedCopy()),
-        ToV8(param_array, script_state->GetContext()->Global(), isolate));
-  }
-
-  v8::Local<v8::Value> argv[] = {
-    ToV8(inputs, script_state->GetContext()->Global(), isolate),
-    ToV8(outputs, script_state->GetContext()->Global(), isolate),
-    param_values.V8Value()
-  };
-
   v8::TryCatch block(isolate);
   block.SetVerbose(true);
 
+  // Prepare arguments of JS callback (inputs, outputs and param_values) with
+  // directly using V8 API because the overhead of
+  // ToV8(HeapVector<HeapVector<DOMFloat32Array>>) is not negligible and there
+  // is no need to externalize the array buffers.
+
+  // 1st arg of JS callback: inputs
+  v8::Local<v8::Array> inputs = v8::Array::New(isolate, input_buses->size());
+  uint32_t input_bus_index = 0;
+  for (const auto& input_bus : *input_buses) {
+    v8::Local<v8::Array> channels =
+        v8::Array::New(isolate, input_bus->NumberOfChannels());
+    bool success;
+    if (!inputs
+             ->CreateDataProperty(current_context, input_bus_index++, channels)
+             .To(&success)) {
+      return false;
+    }
+    for (uint32_t channel_index = 0;
+         channel_index < input_bus->NumberOfChannels(); ++channel_index) {
+      v8::Local<v8::ArrayBuffer> array_buffer =
+          v8::ArrayBuffer::New(isolate, input_bus->length() * sizeof(float));
+      v8::Local<v8::Float32Array> float32_array =
+          v8::Float32Array::New(array_buffer, 0, input_bus->length());
+      if (!channels
+               ->CreateDataProperty(current_context, channel_index,
+                                    float32_array)
+               .To(&success)) {
+        return false;
+      }
+      const v8::ArrayBuffer::Contents& contents = array_buffer->GetContents();
+      memcpy(contents.Data(), input_bus->Channel(channel_index)->Data(),
+             input_bus->length() * sizeof(float));
+    }
+  }
+
+  // 2nd arg of JS callback: outputs
+  v8::Local<v8::Array> outputs = v8::Array::New(isolate, output_buses->size());
+  uint32_t output_bus_index = 0;
+  // |js_output_raw_ptrs| stores raw pointers to underlying array buffers so
+  // that we can copy them back to |output_buses|. The raw pointers are valid
+  // as long as the v8::ArrayBuffers are alive, i.e. as long as |outputs| is
+  // holding v8::ArrayBuffers.
+  Vector<Vector<void*>> js_output_raw_ptrs;
+  js_output_raw_ptrs.ReserveInitialCapacity(output_buses->size());
+  for (const auto& output_bus : *output_buses) {
+    js_output_raw_ptrs.UncheckedAppend(Vector<void*>());
+    js_output_raw_ptrs.back().ReserveInitialCapacity(
+        output_bus->NumberOfChannels());
+    v8::Local<v8::Array> channels =
+        v8::Array::New(isolate, output_bus->NumberOfChannels());
+    bool success;
+    if (!outputs
+             ->CreateDataProperty(current_context, output_bus_index++, channels)
+             .To(&success)) {
+      return false;
+    }
+    for (uint32_t channel_index = 0;
+         channel_index < output_bus->NumberOfChannels(); ++channel_index) {
+      v8::Local<v8::ArrayBuffer> array_buffer =
+          v8::ArrayBuffer::New(isolate, output_bus->length() * sizeof(float));
+      v8::Local<v8::Float32Array> float32_array =
+          v8::Float32Array::New(array_buffer, 0, output_bus->length());
+      if (!channels
+               ->CreateDataProperty(current_context, channel_index,
+                                    float32_array)
+               .To(&success)) {
+        return false;
+      }
+      const v8::ArrayBuffer::Contents& contents = array_buffer->GetContents();
+      js_output_raw_ptrs.back().UncheckedAppend(contents.Data());
+    }
+  }
+
+  // 3rd arg of JS callback: param_values
+  v8::Local<v8::Object> param_values = v8::Object::New(isolate);
+  for (const auto& param : *param_value_map) {
+    const String& param_name = param.key;
+    const AudioFloatArray* param_array = param.value.get();
+    v8::Local<v8::ArrayBuffer> array_buffer =
+        v8::ArrayBuffer::New(isolate, param_array->size() * sizeof(float));
+    v8::Local<v8::Float32Array> float32_array =
+        v8::Float32Array::New(array_buffer, 0, param_array->size());
+    bool success;
+    if (!param_values
+             ->CreateDataProperty(current_context,
+                                  V8String(isolate, param_name.IsolatedCopy()),
+                                  float32_array)
+             .To(&success)) {
+      return false;
+    }
+    const v8::ArrayBuffer::Contents& contents = array_buffer->GetContents();
+    memcpy(contents.Data(), param_array->Data(),
+           param_array->size() * sizeof(float));
+  }
+
+  v8::Local<v8::Value> argv[] = {inputs, outputs, param_values};
+
   // Perform JS function process() in AudioWorkletProcessor instance. The actual
   // V8 operation happens here to make the AudioWorkletProcessor class a thin
   // wrapper of v8::Object instance.
-  v8::Local<v8::Value> processor_handle =
-      ToV8(processor, script_state->GetContext()->Global(), isolate);
+  v8::Local<v8::Value> processor_handle = ToV8(processor, script_state);
   v8::Local<v8::Value> local_result;
   if (!V8ScriptRunner::CallFunction(definition->ProcessLocal(isolate),
                                     ExecutionContext::From(script_state),
-                                    processor_handle,
-                                    WTF_ARRAY_LENGTH(argv),
-                                    argv,
-                                    isolate).ToLocal(&local_result) ||
-    block.HasCaught()) {
+                                    processor_handle, WTF_ARRAY_LENGTH(argv),
+                                    argv, isolate)
+           .ToLocal(&local_result) ||
+      block.HasCaught()) {
     // process() method call method call failed for some reason or an exception
     // was thrown by the user supplied code. Disable the processor to exclude
     // it from the subsequent rendering task.
@@ -309,17 +355,14 @@
 
   // Copy |sequence<sequence<Float32Array>>| back to the original
   // |Vector<AudioBus*>|.
-  for (unsigned output_index = 0;
-       output_index < output_buses->size();
-       ++output_index) {
-    HeapVector<Member<DOMFloat32Array>> output = outputs.at(output_index);
-    AudioBus* original_output_bus = output_buses->at(output_index);
-    for (unsigned channel_index = 0;
-         channel_index < original_output_bus->NumberOfChannels();
-         ++channel_index) {
-      memcpy(original_output_bus->Channel(channel_index)->MutableData(),
-             output.at(channel_index)->Data(),
-             sizeof(float) * original_output_bus->length());
+  for (uint32_t output_bus_index = 0; output_bus_index < output_buses->size();
+       ++output_bus_index) {
+    AudioBus* output_bus = (*output_buses)[output_bus_index];
+    for (uint32_t channel_index = 0;
+         channel_index < output_bus->NumberOfChannels(); ++channel_index) {
+      memcpy(output_bus->Channel(channel_index)->MutableData(),
+             js_output_raw_ptrs[output_bus_index][channel_index],
+             output_bus->length() * sizeof(float));
     }
   }
 
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
index 1dde3422..d5a36dc4 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -7604,17 +7604,14 @@
 }
 
 WebGLRenderingContextBase::LRUCanvasResourceProviderCache::
-    LRUCanvasResourceProviderCache(int capacity)
-    : resource_providers_(
-          std::make_unique<std::unique_ptr<CanvasResourceProvider>[]>(
-              capacity)),
-      capacity_(capacity) {}
+    LRUCanvasResourceProviderCache(size_t capacity)
+    : resource_providers_(capacity) {}
 
 CanvasResourceProvider* WebGLRenderingContextBase::
     LRUCanvasResourceProviderCache::GetCanvasResourceProvider(
         const IntSize& size) {
-  int i;
-  for (i = 0; i < capacity_; ++i) {
+  size_t i;
+  for (i = 0; i < resource_providers_.size(); ++i) {
     CanvasResourceProvider* resource_provider = resource_providers_[i].get();
     if (!resource_provider)
       break;
@@ -7628,7 +7625,7 @@
       size, CanvasResourceProvider::kSoftwareResourceUsage));
   if (!temp)
     return nullptr;
-  i = std::min(capacity_ - 1, i);
+  i = std::min(resource_providers_.size() - 1, i);
   resource_providers_[i] = std::move(temp);
 
   CanvasResourceProvider* resource_provider = resource_providers_[i].get();
@@ -7637,8 +7634,8 @@
 }
 
 void WebGLRenderingContextBase::LRUCanvasResourceProviderCache::BubbleToFront(
-    int idx) {
-  for (int i = idx; i > 0; --i)
+    size_t idx) {
+  for (size_t i = idx; i > 0; --i)
     resource_providers_[i].swap(resource_providers_[i - 1]);
 }
 
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
index 15a2ccc..37b5e02 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -745,15 +745,13 @@
   // Fixed-size cache of reusable resource providers for video texImage2D calls.
   class LRUCanvasResourceProviderCache {
    public:
-    LRUCanvasResourceProviderCache(int capacity);
+    explicit LRUCanvasResourceProviderCache(size_t capacity);
     // The pointer returned is owned by the image buffer map.
     CanvasResourceProvider* GetCanvasResourceProvider(const IntSize&);
 
    private:
-    void BubbleToFront(int idx);
-    std::unique_ptr<std::unique_ptr<CanvasResourceProvider>[]>
-        resource_providers_;
-    int capacity_;
+    void BubbleToFront(size_t idx);
+    Vector<std::unique_ptr<CanvasResourceProvider>> resource_providers_;
   };
   LRUCanvasResourceProviderCache generated_image_cache_;
 
diff --git a/third_party/WebKit/Source/platform/BUILD.gn b/third_party/WebKit/Source/platform/BUILD.gn
index 62dc3e9..d6547c6 100644
--- a/third_party/WebKit/Source/platform/BUILD.gn
+++ b/third_party/WebKit/Source/platform/BUILD.gn
@@ -202,7 +202,6 @@
     "//cc/animation",
     "//cc/paint",
     "//gpu/command_buffer/client:client",
-    "//gpu/command_buffer/client:gles2_c_lib",
     "//gpu/command_buffer/client:gles2_interface",
     "//gpu/command_buffer/common:common",
     "//media",
@@ -554,6 +553,8 @@
     "bindings/ScriptState.h",
     "bindings/ScriptWrappable.cpp",
     "bindings/ScriptWrappable.h",
+    "bindings/ScriptWrappableMarkingVisitor.cpp",
+    "bindings/ScriptWrappableMarkingVisitor.h",
     "bindings/ScriptWrappableVisitor.cpp",
     "bindings/ScriptWrappableVisitor.h",
     "bindings/ScriptWrappableVisitorVerifier.h",
@@ -885,7 +886,6 @@
     "geometry/LayoutRectOutsets.h",
     "geometry/LayoutSize.cpp",
     "geometry/LayoutSize.h",
-    "geometry/LayoutSizeHash.h",
     "geometry/Region.cpp",
     "geometry/Region.h",
     "geometry/TransformState.cpp",
@@ -1289,6 +1289,8 @@
     "mediastream/MediaStreamSource.h",
     "mediastream/MediaStreamWebAudioSource.cpp",
     "mediastream/MediaStreamWebAudioSource.h",
+    "memory_profiler/SamplingNativeHeapProfiler.cpp",
+    "memory_profiler/SamplingNativeHeapProfiler.h",
     "mhtml/ArchiveResource.cpp",
     "mhtml/ArchiveResource.h",
     "mhtml/MHTMLArchive.cpp",
@@ -1531,6 +1533,7 @@
     "//third_party/WebKit/Source/platform/scheduler",
   ]
   deps = [
+    "//base/allocator:features",
     "//components/viz/service",
     "//device/base/synchronization",
     "//device/vr:mojo_bindings_blink",
diff --git a/third_party/WebKit/Source/platform/audio/AudioDestination.cpp b/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
index 3e639f0..d49176f 100644
--- a/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
+++ b/third_party/WebKit/Source/platform/audio/AudioDestination.cpp
@@ -115,7 +115,8 @@
   // (crbug.com/692423)
   if (!fifo_ || fifo_->length() < number_of_frames) {
     TRACE_EVENT_INSTANT1(
-        "webaudio", "AudioDestination::Render - not enough data in fifo",
+        "webaudio",
+        "AudioDestination::Render - FIFO not ready or the size is too small",
         TRACE_EVENT_SCOPE_THREAD, "fifo length", fifo_ ? fifo_->length() : 0);
     TRACE_EVENT_END2("webaudio", "AudioDestination::Render", "timestamp (s)",
                      delay_timestamp, "delay (s)", delay);
diff --git a/third_party/WebKit/Source/platform/audio/PushPullFIFO.cpp b/third_party/WebKit/Source/platform/audio/PushPullFIFO.cpp
index e2d91ab..2685708c0 100644
--- a/third_party/WebKit/Source/platform/audio/PushPullFIFO.cpp
+++ b/third_party/WebKit/Source/platform/audio/PushPullFIFO.cpp
@@ -8,6 +8,7 @@
 #include "build/build_config.h"
 #include "platform/Histogram.h"
 #include "platform/audio/AudioUtilities.h"
+#include "platform/instrumentation/tracing/TraceEvent.h"
 #include "platform/wtf/PtrUtil.h"
 
 namespace blink {
@@ -57,6 +58,9 @@
 // Push the data from |input_bus| to FIFO. The size of push is determined by
 // the length of |input_bus|.
 void PushPullFIFO::Push(const AudioBus* input_bus) {
+  TRACE_EVENT1("webaudio", "PushPullFIFO::Push",
+               "input_bus length", input_bus->length());
+
   MutexLocker locker(lock_);
 
   CHECK(input_bus);
@@ -108,6 +112,10 @@
 // Pull the data out of FIFO to |output_bus|. If remaining frame in the FIFO
 // is less than the frames to pull, provides remaining frame plus the silence.
 size_t PushPullFIFO::Pull(AudioBus* output_bus, size_t frames_requested) {
+  TRACE_EVENT2("webaudio", "PushPullFIFO::Pull",
+               "output_bus length", output_bus->length(),
+               "frames_requested", frames_requested);
+
   MutexLocker locker(lock_);
 
 #if defined(OS_ANDROID)
diff --git a/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappableBase.cpp b/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappableBase.cpp
index eca3ad1d..2d67f81 100644
--- a/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappableBase.cpp
+++ b/third_party/WebKit/Source/platform/bindings/ActiveScriptWrappableBase.cpp
@@ -6,7 +6,7 @@
 
 #include "platform/bindings/DOMDataStore.h"
 #include "platform/bindings/ScriptWrappable.h"
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/V8Binding.h"
 #include "platform/bindings/V8PerIsolateData.h"
 
diff --git a/third_party/WebKit/Source/platform/bindings/DOMDataStore.h b/third_party/WebKit/Source/platform/bindings/DOMDataStore.h
index 6755e914..e2ac497e 100644
--- a/third_party/WebKit/Source/platform/bindings/DOMDataStore.h
+++ b/third_party/WebKit/Source/platform/bindings/DOMDataStore.h
@@ -36,7 +36,7 @@
 #include "platform/bindings/DOMWrapperMap.h"
 #include "platform/bindings/DOMWrapperWorld.h"
 #include "platform/bindings/ScriptWrappable.h"
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/WrapperTypeInfo.h"
 #include "platform/wtf/Allocator.h"
 #include "platform/wtf/Noncopyable.h"
diff --git a/third_party/WebKit/Source/platform/bindings/ScopedPersistent.h b/third_party/WebKit/Source/platform/bindings/ScopedPersistent.h
index d6ac533..95fa6308 100644
--- a/third_party/WebKit/Source/platform/bindings/ScopedPersistent.h
+++ b/third_party/WebKit/Source/platform/bindings/ScopedPersistent.h
@@ -33,7 +33,6 @@
 
 #include <memory>
 
-#include "platform/bindings/ScriptWrappableVisitor.h"
 #include "platform/wtf/Allocator.h"
 #include "platform/wtf/Noncopyable.h"
 #include "v8/include/v8.h"
diff --git a/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.cpp b/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.cpp
new file mode 100644
index 0000000..94ec1617
--- /dev/null
+++ b/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.cpp
@@ -0,0 +1,329 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
+
+#include "platform/Supplementable.h"
+#include "platform/bindings/ActiveScriptWrappableBase.h"
+#include "platform/bindings/DOMWrapperMap.h"
+#include "platform/bindings/DOMWrapperWorld.h"
+#include "platform/bindings/ScopedPersistent.h"
+#include "platform/bindings/ScriptWrappable.h"
+#include "platform/bindings/ScriptWrappableVisitorVerifier.h"
+#include "platform/bindings/TraceWrapperV8Reference.h"
+#include "platform/bindings/V8PerIsolateData.h"
+#include "platform/bindings/WrapperTypeInfo.h"
+#include "platform/heap/HeapCompact.h"
+#include "platform/heap/HeapPage.h"
+#include "platform/instrumentation/tracing/TraceEvent.h"
+#include "platform/scheduler/child/web_scheduler.h"
+#include "platform/wtf/AutoReset.h"
+#include "platform/wtf/Time.h"
+#include "public/platform/Platform.h"
+
+namespace blink {
+
+ScriptWrappableMarkingVisitor::~ScriptWrappableMarkingVisitor() = default;
+
+void ScriptWrappableMarkingVisitor::TracePrologue() {
+  // This CHECK ensures that wrapper tracing is not started from scopes
+  // that forbid GC execution, e.g., constructors.
+  CHECK(ThreadState::Current());
+  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
+  PerformCleanup();
+
+  CHECK(!tracing_in_progress_);
+  CHECK(!should_cleanup_);
+  CHECK(headers_to_unmark_.IsEmpty());
+  CHECK(marking_deque_.IsEmpty());
+  CHECK(verifier_deque_.IsEmpty());
+  tracing_in_progress_ = true;
+  ThreadState::Current()->SetWrapperTracingInProgress(true);
+}
+
+void ScriptWrappableMarkingVisitor::EnterFinalPause() {
+  CHECK(ThreadState::Current());
+  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
+  ActiveScriptWrappableBase::TraceActiveScriptWrappables(isolate_, this);
+}
+
+void ScriptWrappableMarkingVisitor::TraceEpilogue() {
+  CHECK(ThreadState::Current());
+  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
+  DCHECK(marking_deque_.IsEmpty());
+#if DCHECK_IS_ON()
+  ScriptWrappableVisitorVerifier verifier;
+  for (auto& marking_data : verifier_deque_) {
+    // Check that all children of this object are marked.
+    marking_data.TraceWrappers(&verifier);
+  }
+#endif
+
+  should_cleanup_ = true;
+  tracing_in_progress_ = false;
+  ThreadState::Current()->SetWrapperTracingInProgress(false);
+  ScheduleIdleLazyCleanup();
+}
+
+void ScriptWrappableMarkingVisitor::AbortTracing() {
+  CHECK(ThreadState::Current());
+  should_cleanup_ = true;
+  tracing_in_progress_ = false;
+  ThreadState::Current()->SetWrapperTracingInProgress(false);
+  PerformCleanup();
+}
+
+size_t ScriptWrappableMarkingVisitor::NumberOfWrappersToTrace() {
+  CHECK(ThreadState::Current());
+  return marking_deque_.size();
+}
+
+void ScriptWrappableMarkingVisitor::PerformCleanup() {
+  if (!should_cleanup_)
+    return;
+
+  CHECK(!tracing_in_progress_);
+  for (auto* header : headers_to_unmark_) {
+    // Dead objects residing in the marking deque may become invalid due to
+    // minor garbage collections and are therefore set to nullptr. We have
+    // to skip over such objects.
+    if (header)
+      header->UnmarkWrapperHeader();
+  }
+
+  headers_to_unmark_.clear();
+  marking_deque_.clear();
+  verifier_deque_.clear();
+  should_cleanup_ = false;
+}
+
+void ScriptWrappableMarkingVisitor::ScheduleIdleLazyCleanup() {
+  WebThread* const thread = Platform::Current()->CurrentThread();
+  // Thread might already be gone, or some threads (e.g. PPAPI) don't have a
+  // scheduler.
+  if (!thread || !thread->Scheduler())
+    return;
+
+  if (idle_cleanup_task_scheduled_)
+    return;
+
+  Platform::Current()->CurrentThread()->Scheduler()->PostIdleTask(
+      FROM_HERE, WTF::Bind(&ScriptWrappableMarkingVisitor::PerformLazyCleanup,
+                           WTF::Unretained(this)));
+  idle_cleanup_task_scheduled_ = true;
+}
+
+void ScriptWrappableMarkingVisitor::PerformLazyCleanup(
+    double deadline_seconds) {
+  idle_cleanup_task_scheduled_ = false;
+
+  if (!should_cleanup_)
+    return;
+
+  TRACE_EVENT1("blink_gc,devtools.timeline",
+               "ScriptWrappableMarkingVisitor::performLazyCleanup",
+               "idleDeltaInSeconds",
+               deadline_seconds - CurrentTimeTicksInSeconds());
+
+  const int kDeadlineCheckInterval = 2500;
+  int processed_wrapper_count = 0;
+  for (auto it = headers_to_unmark_.rbegin();
+       it != headers_to_unmark_.rend();) {
+    auto* header = *it;
+    // Dead objects residing in the marking deque may become invalid due to
+    // minor garbage collections and are therefore set to nullptr. We have
+    // to skip over such objects.
+    if (header)
+      header->UnmarkWrapperHeader();
+
+    ++it;
+    headers_to_unmark_.pop_back();
+
+    processed_wrapper_count++;
+    if (processed_wrapper_count % kDeadlineCheckInterval == 0) {
+      if (deadline_seconds <= CurrentTimeTicksInSeconds()) {
+        ScheduleIdleLazyCleanup();
+        return;
+      }
+    }
+  }
+
+  // Unmarked all headers.
+  CHECK(headers_to_unmark_.IsEmpty());
+  marking_deque_.clear();
+  verifier_deque_.clear();
+  should_cleanup_ = false;
+}
+
+void ScriptWrappableMarkingVisitor::RegisterV8Reference(
+    const std::pair<void*, void*>& internal_fields) {
+  if (!tracing_in_progress_) {
+    return;
+  }
+
+  WrapperTypeInfo* wrapper_type_info =
+      reinterpret_cast<WrapperTypeInfo*>(internal_fields.first);
+  if (wrapper_type_info->gin_embedder != gin::GinEmbedder::kEmbedderBlink) {
+    return;
+  }
+  DCHECK(wrapper_type_info->wrapper_class_id == WrapperTypeInfo::kNodeClassId ||
+         wrapper_type_info->wrapper_class_id ==
+             WrapperTypeInfo::kObjectClassId);
+
+  ScriptWrappable* script_wrappable =
+      reinterpret_cast<ScriptWrappable*>(internal_fields.second);
+
+  wrapper_type_info->TraceWrappers(this, script_wrappable);
+}
+
+void ScriptWrappableMarkingVisitor::RegisterV8References(
+    const std::vector<std::pair<void*, void*>>&
+        internal_fields_of_potential_wrappers) {
+  CHECK(ThreadState::Current());
+  // TODO(hlopko): Visit the vector in the V8 instead of passing it over if
+  // there is no performance impact
+  for (auto& pair : internal_fields_of_potential_wrappers) {
+    RegisterV8Reference(pair);
+  }
+}
+
+bool ScriptWrappableMarkingVisitor::AdvanceTracing(
+    double deadline_in_ms,
+    v8::EmbedderHeapTracer::AdvanceTracingActions actions) {
+  // Do not drain the marking deque in a state where we can generally not
+  // perform a GC. This makes sure that TraceTraits and friends find
+  // themselves in a well-defined environment, e.g., properly set up vtables.
+  CHECK(ThreadState::Current());
+  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
+  CHECK(tracing_in_progress_);
+  WTF::AutoReset<bool>(&advancing_tracing_, true);
+  while (actions.force_completion ==
+             v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION ||
+         WTF::CurrentTimeTicksInMilliseconds() < deadline_in_ms) {
+    if (marking_deque_.IsEmpty()) {
+      return false;
+    }
+    marking_deque_.TakeFirst().TraceWrappers(this);
+  }
+  return true;
+}
+
+void ScriptWrappableMarkingVisitor::MarkWrapperHeader(
+    HeapObjectHeader* header) const {
+  DCHECK(!header->IsWrapperHeaderMarked());
+  // Verify that no compactable & movable objects are slated for
+  // lazy unmarking.
+  DCHECK(!HeapCompact::IsCompactableArena(
+      PageFromObject(header)->Arena()->ArenaIndex()));
+  header->MarkWrapperHeader();
+  headers_to_unmark_.push_back(header);
+}
+
+void ScriptWrappableMarkingVisitor::WriteBarrier(
+    v8::Isolate* isolate,
+    const TraceWrapperV8Reference<v8::Value>& dst_object) {
+  ScriptWrappableMarkingVisitor* visitor = CurrentVisitor(isolate);
+  if (dst_object.IsEmpty() || !visitor->WrapperTracingInProgress())
+    return;
+
+  // Conservatively assume that the source object containing |dst_object| is
+  // marked.
+  visitor->TraceWrappers(dst_object);
+}
+
+void ScriptWrappableMarkingVisitor::WriteBarrier(
+    v8::Isolate* isolate,
+    DOMWrapperMap<ScriptWrappable>* wrapper_map,
+    ScriptWrappable* key) {
+  ScriptWrappableMarkingVisitor* visitor = CurrentVisitor(isolate);
+  if (!visitor->WrapperTracingInProgress())
+    return;
+  // Conservatively assume that the source object key is marked.
+  visitor->TraceWrappers(wrapper_map, key);
+}
+
+void ScriptWrappableMarkingVisitor::Visit(
+    const TraceWrapperV8Reference<v8::Value>& traced_wrapper) const {
+  // The write barrier may try to mark a wrapper because cleanup is still
+  // delayed. Bail out in this case. We also allow unconditional marking which
+  // requires us to bail out here when tracing is not in progress.
+  if (!tracing_in_progress_ || traced_wrapper.Get().IsEmpty())
+    return;
+  traced_wrapper.Get().RegisterExternalReference(isolate_);
+}
+
+void ScriptWrappableMarkingVisitor::Visit(
+    const WrapperDescriptor& wrapper_descriptor) const {
+  HeapObjectHeader* header = wrapper_descriptor.heap_object_header_callback(
+      wrapper_descriptor.traceable);
+  if (header->IsWrapperHeaderMarked())
+    return;
+  MarkWrapperHeader(header);
+  DCHECK(tracing_in_progress_);
+  DCHECK(header->IsWrapperHeaderMarked());
+  marking_deque_.push_back(MarkingDequeItem(wrapper_descriptor));
+#if DCHECK_IS_ON()
+  if (!advancing_tracing_) {
+    verifier_deque_.push_back(MarkingDequeItem(wrapper_descriptor));
+  }
+#endif
+}
+
+void ScriptWrappableMarkingVisitor::Visit(
+    DOMWrapperMap<ScriptWrappable>* wrapper_map,
+    const ScriptWrappable* key) const {
+  wrapper_map->MarkWrapper(const_cast<ScriptWrappable*>(key));
+}
+
+void ScriptWrappableMarkingVisitor::InvalidateDeadObjectsInMarkingDeque() {
+  for (auto it = marking_deque_.begin(); it != marking_deque_.end(); ++it) {
+    auto& marking_data = *it;
+    if (marking_data.ShouldBeInvalidated()) {
+      marking_data.Invalidate();
+    }
+  }
+  for (auto it = verifier_deque_.begin(); it != verifier_deque_.end(); ++it) {
+    auto& marking_data = *it;
+    if (marking_data.ShouldBeInvalidated()) {
+      marking_data.Invalidate();
+    }
+  }
+  for (auto** it = headers_to_unmark_.begin(); it != headers_to_unmark_.end();
+       ++it) {
+    auto* header = *it;
+    if (header && !header->IsMarked()) {
+      *it = nullptr;
+    }
+  }
+}
+
+void ScriptWrappableMarkingVisitor::InvalidateDeadObjectsInMarkingDeque(
+    v8::Isolate* isolate) {
+  ScriptWrappableMarkingVisitor* script_wrappable_visitor =
+      V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
+  if (script_wrappable_visitor)
+    script_wrappable_visitor->InvalidateDeadObjectsInMarkingDeque();
+}
+
+void ScriptWrappableMarkingVisitor::PerformCleanup(v8::Isolate* isolate) {
+  ScriptWrappableMarkingVisitor* script_wrappable_visitor =
+      V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
+  if (script_wrappable_visitor)
+    script_wrappable_visitor->PerformCleanup();
+}
+
+ScriptWrappableMarkingVisitor* ScriptWrappableMarkingVisitor::CurrentVisitor(
+    v8::Isolate* isolate) {
+  return V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
+}
+
+bool ScriptWrappableMarkingVisitor::MarkingDequeContains(void* needle) {
+  for (auto item : marking_deque_) {
+    if (item.RawObjectPointer() == needle)
+      return true;
+  }
+  return false;
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.h b/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.h
new file mode 100644
index 0000000..03ad2ec1
--- /dev/null
+++ b/third_party/WebKit/Source/platform/bindings/ScriptWrappableMarkingVisitor.h
@@ -0,0 +1,236 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef ScriptWrappableMarkingVisitor_h
+#define ScriptWrappableMarkingVisitor_h
+
+#include "platform/PlatformExport.h"
+#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/heap/HeapPage.h"
+#include "platform/heap/ThreadingTraits.h"
+#include "platform/heap/VisitorImpl.h"
+#include "platform/wtf/Deque.h"
+#include "platform/wtf/Vector.h"
+#include "v8/include/v8.h"
+
+namespace blink {
+
+template <typename T>
+class DOMWrapperMap;
+class HeapObjectHeader;
+class ScriptWrappable;
+class ScriptWrappableVisitor;
+template <typename T>
+class TraceWrapperV8Reference;
+
+// ScriptWrappableVisitor is used to trace through Blink's heap to find all
+// reachable wrappers. V8 calls this visitor during its garbage collection,
+// see v8::EmbedderHeapTracer.
+class PLATFORM_EXPORT ScriptWrappableMarkingVisitor
+    : public v8::EmbedderHeapTracer,
+      public ScriptWrappableVisitor {
+  DISALLOW_IMPLICIT_CONSTRUCTORS(ScriptWrappableMarkingVisitor);
+
+ public:
+  static ScriptWrappableMarkingVisitor* CurrentVisitor(v8::Isolate*);
+
+  bool WrapperTracingInProgress() const { return tracing_in_progress_; }
+
+  // Replace all dead objects in the marking deque with nullptr after Oilpan
+  // garbage collection.
+  static void InvalidateDeadObjectsInMarkingDeque(v8::Isolate*);
+
+  // Immediately clean up all wrappers.
+  static void PerformCleanup(v8::Isolate*);
+
+  // Conservative Dijkstra barrier.
+  //
+  // On assignment 'x.a = y' during incremental marking the Dijkstra barrier
+  // suggests checking the color of 'x' and only mark 'y' if 'x' is marked.
+
+  // Since checking 'x' is expensive in the current setting, as it requires
+  // either a back pointer or expensive lookup logic due to large objects and
+  // multiple inheritance, just assume that 'x' is black. We assume here that
+  // since an object 'x' is referenced for a write, it will generally also be
+  // alive in the current GC cycle.
+  template <typename T>
+  static void WriteBarrier(const T* dst_object) {
+    if (!dst_object)
+      return;
+
+    const ThreadState* thread_state =
+        ThreadStateFor<ThreadingTrait<T>::kAffinity>::GetState();
+    DCHECK(thread_state);
+    // Bail out if tracing is not in progress.
+    if (!thread_state->WrapperTracingInProgress())
+      return;
+
+    // If the wrapper is already marked we can bail out here.
+    if (TraceTrait<T>::GetHeapObjectHeader(dst_object)->IsWrapperHeaderMarked())
+      return;
+
+    CurrentVisitor(thread_state->GetIsolate())
+        ->Visit(WrapperDescriptorFor(dst_object));
+  }
+
+  static void WriteBarrier(v8::Isolate*,
+                           const TraceWrapperV8Reference<v8::Value>&);
+
+  static void WriteBarrier(v8::Isolate*,
+                           DOMWrapperMap<ScriptWrappable>*,
+                           ScriptWrappable* key);
+
+  ScriptWrappableMarkingVisitor(v8::Isolate* isolate) : isolate_(isolate){};
+  ~ScriptWrappableMarkingVisitor() override;
+
+  // v8::EmbedderHeapTracer interface.
+
+  void TracePrologue() override;
+  void RegisterV8References(const std::vector<std::pair<void*, void*>>&
+                                internal_fields_of_potential_wrappers) override;
+  void RegisterV8Reference(const std::pair<void*, void*>& internal_fields);
+  bool AdvanceTracing(double deadline_in_ms,
+                      v8::EmbedderHeapTracer::AdvanceTracingActions) override;
+  void TraceEpilogue() override;
+  void AbortTracing() override;
+  void EnterFinalPause() override;
+  size_t NumberOfWrappersToTrace() override;
+
+ protected:
+  // ScriptWrappableVisitor interface.
+  void Visit(const TraceWrapperV8Reference<v8::Value>&) const override;
+  void Visit(const WrapperDescriptor&) const override;
+  void Visit(DOMWrapperMap<ScriptWrappable>*,
+             const ScriptWrappable* key) const override;
+
+  v8::Isolate* isolate() const { return isolate_; }
+
+ private:
+  class MarkingDequeItem {
+   public:
+    explicit MarkingDequeItem(const WrapperDescriptor& wrapper_descriptor)
+        : trace_wrappers_callback_(wrapper_descriptor.trace_wrappers_callback),
+          heap_object_header_callback_(
+              wrapper_descriptor.heap_object_header_callback),
+          raw_object_pointer_(wrapper_descriptor.traceable) {
+      DCHECK(trace_wrappers_callback_);
+      DCHECK(heap_object_header_callback_);
+      DCHECK(raw_object_pointer_);
+    }
+
+    // Traces wrappers if the underlying object has not yet been invalidated.
+    inline void TraceWrappers(ScriptWrappableVisitor* visitor) const {
+      if (raw_object_pointer_) {
+        trace_wrappers_callback_(visitor, raw_object_pointer_);
+      }
+    }
+
+    inline const void* RawObjectPointer() { return raw_object_pointer_; }
+
+    // Returns true if the object is currently marked in Oilpan and false
+    // otherwise.
+    inline bool ShouldBeInvalidated() {
+      return raw_object_pointer_ && !GetHeapObjectHeader()->IsMarked();
+    }
+
+    // Invalidates the current wrapper marking data, i.e., calling TraceWrappers
+    // will result in a noop.
+    inline void Invalidate() { raw_object_pointer_ = nullptr; }
+
+   private:
+    inline const HeapObjectHeader* GetHeapObjectHeader() {
+      DCHECK(raw_object_pointer_);
+      return heap_object_header_callback_(raw_object_pointer_);
+    }
+
+    TraceWrappersCallback trace_wrappers_callback_;
+    HeapObjectHeaderCallback heap_object_header_callback_;
+    const void* raw_object_pointer_;
+  };
+
+  void MarkWrapperHeader(HeapObjectHeader*) const;
+
+  // Schedule an idle task to perform a lazy (incremental) clean up of
+  // wrappers.
+  void ScheduleIdleLazyCleanup();
+  void PerformLazyCleanup(double deadline_seconds);
+
+  void InvalidateDeadObjectsInMarkingDeque();
+
+  // Immediately cleans up all wrappers if necessary.
+  void PerformCleanup();
+
+  WTF::Deque<MarkingDequeItem>* MarkingDeque() const { return &marking_deque_; }
+  WTF::Vector<HeapObjectHeader*>* HeadersToUnmark() const {
+    return &headers_to_unmark_;
+  }
+
+  bool MarkingDequeContains(void* needle);
+
+  // Returns true if wrapper tracing is currently in progress, i.e.,
+  // TracePrologue has been called, and TraceEpilogue has not yet been called.
+  bool tracing_in_progress_ = false;
+
+  // Is AdvanceTracing currently running? If not, we know that all calls of
+  // pushToMarkingDeque are from V8 or new wrapper associations. And this
+  // information is used by the verifier feature.
+  bool advancing_tracing_ = false;
+
+  // Indicates whether an idle task for a lazy cleanup has already been
+  // scheduled. The flag is used to avoid scheduling multiple idle tasks for
+  // cleaning up.
+  bool idle_cleanup_task_scheduled_ = false;
+
+  // Indicates whether cleanup should currently happen. The flag is used to
+  // avoid cleaning up in the next GC cycle.
+  bool should_cleanup_ = false;
+
+  // Collection of objects we need to trace from. We assume it is safe to hold
+  // on to the raw pointers because:
+  // - oilpan object cannot move
+  // - oilpan gc will call invalidateDeadObjectsInMarkingDeque to delete all
+  //   obsolete objects
+  mutable WTF::Deque<MarkingDequeItem> marking_deque_;
+
+  // Collection of objects we started tracing from. We assume it is safe to
+  // hold on to the raw pointers because:
+  // - oilpan object cannot move
+  // - oilpan gc will call invalidateDeadObjectsInMarkingDeque to delete
+  //   all obsolete objects
+  //
+  // These objects are used when TraceWrappablesVerifier feature is enabled to
+  // verify that all objects reachable in the atomic pause were marked
+  // incrementally. If not, there is one or multiple write barriers missing.
+  mutable WTF::Deque<MarkingDequeItem> verifier_deque_;
+
+  // Collection of headers we need to unmark after the tracing finished. We
+  // assume it is safe to hold on to the headers because:
+  // - oilpan objects cannot move
+  // - objects this headers belong to are invalidated by the oilpan GC in
+  //   invalidateDeadObjectsInMarkingDeque.
+  mutable WTF::Vector<HeapObjectHeader*> headers_to_unmark_;
+  v8::Isolate* isolate_;
+
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest, MixinTracing);
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
+                           OilpanClearsMarkingDequeWhenObjectDied);
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
+                           ScriptWrappableMarkingVisitorTracesWrappers);
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
+                           OilpanClearsHeadersWhenObjectDied);
+  FRIEND_TEST_ALL_PREFIXES(
+      ScriptWrappableMarkingVisitorTest,
+      MarkedObjectDoesNothingOnWriteBarrierHitWhenDependencyIsMarkedToo);
+  FRIEND_TEST_ALL_PREFIXES(
+      ScriptWrappableMarkingVisitorTest,
+      MarkedObjectMarksDependencyOnWriteBarrierHitWhenNotMarked);
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
+                           WriteBarrierOnHeapVectorSwap1);
+  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
+                           WriteBarrierOnHeapVectorSwap2);
+};
+
+}  // namespace blink
+
+#endif  // ScriptWrappableMarkingVisitor_h
diff --git a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.cpp b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.cpp
index 49dc867c..85247611 100644
--- a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.cpp
+++ b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.cpp
@@ -5,280 +5,17 @@
 #include "platform/bindings/ScriptWrappableVisitor.h"
 
 #include "platform/Supplementable.h"
-#include "platform/bindings/ActiveScriptWrappableBase.h"
 #include "platform/bindings/DOMWrapperMap.h"
-#include "platform/bindings/DOMWrapperWorld.h"
-#include "platform/bindings/ScopedPersistent.h"
-#include "platform/bindings/ScriptWrappable.h"
-#include "platform/bindings/ScriptWrappableVisitorVerifier.h"
-#include "platform/bindings/TraceWrapperV8Reference.h"
-#include "platform/bindings/V8PerIsolateData.h"
-#include "platform/bindings/WrapperTypeInfo.h"
-#include "platform/heap/HeapCompact.h"
-#include "platform/heap/HeapPage.h"
-#include "platform/instrumentation/tracing/TraceEvent.h"
-#include "platform/scheduler/child/web_scheduler.h"
-#include "platform/wtf/AutoReset.h"
-#include "platform/wtf/Time.h"
-#include "public/platform/Platform.h"
+#include "platform/bindings/TraceWrapperBase.h"
 
 namespace blink {
 
-ScriptWrappableMarkingVisitor::~ScriptWrappableMarkingVisitor() = default;
-
-void ScriptWrappableMarkingVisitor::TracePrologue() {
-  // This CHECK ensures that wrapper tracing is not started from scopes
-  // that forbid GC execution, e.g., constructors.
-  CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
-  PerformCleanup();
-
-  CHECK(!tracing_in_progress_);
-  CHECK(!should_cleanup_);
-  CHECK(headers_to_unmark_.IsEmpty());
-  CHECK(marking_deque_.IsEmpty());
-  CHECK(verifier_deque_.IsEmpty());
-  tracing_in_progress_ = true;
-  ThreadState::Current()->SetWrapperTracingInProgress(true);
-}
-
-void ScriptWrappableMarkingVisitor::EnterFinalPause() {
-  CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
-  ActiveScriptWrappableBase::TraceActiveScriptWrappables(isolate_, this);
-}
-
-void ScriptWrappableMarkingVisitor::TraceEpilogue() {
-  CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
-  DCHECK(marking_deque_.IsEmpty());
-#if DCHECK_IS_ON()
-  ScriptWrappableVisitorVerifier verifier(&verifier_deque_);
-  verifier.Verify();
-#endif
-
-  should_cleanup_ = true;
-  tracing_in_progress_ = false;
-  ThreadState::Current()->SetWrapperTracingInProgress(false);
-  ScheduleIdleLazyCleanup();
-}
-
-void ScriptWrappableMarkingVisitor::AbortTracing() {
-  CHECK(ThreadState::Current());
-  should_cleanup_ = true;
-  tracing_in_progress_ = false;
-  ThreadState::Current()->SetWrapperTracingInProgress(false);
-  PerformCleanup();
-}
-
-size_t ScriptWrappableMarkingVisitor::NumberOfWrappersToTrace() {
-  CHECK(ThreadState::Current());
-  return marking_deque_.size();
-}
-
-void ScriptWrappableMarkingVisitor::PerformCleanup() {
-  if (!should_cleanup_)
-    return;
-
-  CHECK(!tracing_in_progress_);
-  for (auto* header : headers_to_unmark_) {
-    // Dead objects residing in the marking deque may become invalid due to
-    // minor garbage collections and are therefore set to nullptr. We have
-    // to skip over such objects.
-    if (header)
-      header->UnmarkWrapperHeader();
-  }
-
-  headers_to_unmark_.clear();
-  marking_deque_.clear();
-  verifier_deque_.clear();
-  should_cleanup_ = false;
-}
-
-void ScriptWrappableMarkingVisitor::ScheduleIdleLazyCleanup() {
-  WebThread* const thread = Platform::Current()->CurrentThread();
-  // Thread might already be gone, or some threads (e.g. PPAPI) don't have a
-  // scheduler.
-  if (!thread || !thread->Scheduler())
-    return;
-
-  if (idle_cleanup_task_scheduled_)
-    return;
-
-  Platform::Current()->CurrentThread()->Scheduler()->PostIdleTask(
-      FROM_HERE, WTF::Bind(&ScriptWrappableMarkingVisitor::PerformLazyCleanup,
-                           WTF::Unretained(this)));
-  idle_cleanup_task_scheduled_ = true;
-}
-
-void ScriptWrappableMarkingVisitor::PerformLazyCleanup(
-    double deadline_seconds) {
-  idle_cleanup_task_scheduled_ = false;
-
-  if (!should_cleanup_)
-    return;
-
-  TRACE_EVENT1("blink_gc,devtools.timeline",
-               "ScriptWrappableMarkingVisitor::performLazyCleanup",
-               "idleDeltaInSeconds",
-               deadline_seconds - CurrentTimeTicksInSeconds());
-
-  const int kDeadlineCheckInterval = 2500;
-  int processed_wrapper_count = 0;
-  for (auto it = headers_to_unmark_.rbegin();
-       it != headers_to_unmark_.rend();) {
-    auto* header = *it;
-    // Dead objects residing in the marking deque may become invalid due to
-    // minor garbage collections and are therefore set to nullptr. We have
-    // to skip over such objects.
-    if (header)
-      header->UnmarkWrapperHeader();
-
-    ++it;
-    headers_to_unmark_.pop_back();
-
-    processed_wrapper_count++;
-    if (processed_wrapper_count % kDeadlineCheckInterval == 0) {
-      if (deadline_seconds <= CurrentTimeTicksInSeconds()) {
-        ScheduleIdleLazyCleanup();
-        return;
-      }
-    }
-  }
-
-  // Unmarked all headers.
-  CHECK(headers_to_unmark_.IsEmpty());
-  marking_deque_.clear();
-  verifier_deque_.clear();
-  should_cleanup_ = false;
-}
-
-void ScriptWrappableMarkingVisitor::RegisterV8Reference(
-    const std::pair<void*, void*>& internal_fields) {
-  if (!tracing_in_progress_) {
-    return;
-  }
-
-  WrapperTypeInfo* wrapper_type_info =
-      reinterpret_cast<WrapperTypeInfo*>(internal_fields.first);
-  if (wrapper_type_info->gin_embedder != gin::GinEmbedder::kEmbedderBlink) {
-    return;
-  }
-  DCHECK(wrapper_type_info->wrapper_class_id == WrapperTypeInfo::kNodeClassId ||
-         wrapper_type_info->wrapper_class_id ==
-             WrapperTypeInfo::kObjectClassId);
-
-  ScriptWrappable* script_wrappable =
-      reinterpret_cast<ScriptWrappable*>(internal_fields.second);
-
-  wrapper_type_info->TraceWrappers(this, script_wrappable);
-}
-
-void ScriptWrappableMarkingVisitor::RegisterV8References(
-    const std::vector<std::pair<void*, void*>>&
-        internal_fields_of_potential_wrappers) {
-  CHECK(ThreadState::Current());
-  // TODO(hlopko): Visit the vector in the V8 instead of passing it over if
-  // there is no performance impact
-  for (auto& pair : internal_fields_of_potential_wrappers) {
-    RegisterV8Reference(pair);
-  }
-}
-
-bool ScriptWrappableMarkingVisitor::AdvanceTracing(
-    double deadline_in_ms,
-    v8::EmbedderHeapTracer::AdvanceTracingActions actions) {
-  // Do not drain the marking deque in a state where we can generally not
-  // perform a GC. This makes sure that TraceTraits and friends find
-  // themselves in a well-defined environment, e.g., properly set up vtables.
-  CHECK(ThreadState::Current());
-  CHECK(!ThreadState::Current()->IsWrapperTracingForbidden());
-  CHECK(tracing_in_progress_);
-  WTF::AutoReset<bool>(&advancing_tracing_, true);
-  while (actions.force_completion ==
-             v8::EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION ||
-         WTF::CurrentTimeTicksInMilliseconds() < deadline_in_ms) {
-    if (marking_deque_.IsEmpty()) {
-      return false;
-    }
-    marking_deque_.TakeFirst().TraceWrappers(this);
-  }
-  return true;
-}
-
-void ScriptWrappableMarkingVisitor::MarkWrapperHeader(
-    HeapObjectHeader* header) const {
-  DCHECK(!header->IsWrapperHeaderMarked());
-  // Verify that no compactable & movable objects are slated for
-  // lazy unmarking.
-  DCHECK(!HeapCompact::IsCompactableArena(
-      PageFromObject(header)->Arena()->ArenaIndex()));
-  header->MarkWrapperHeader();
-  headers_to_unmark_.push_back(header);
-}
-
-void ScriptWrappableMarkingVisitor::WriteBarrier(
-    v8::Isolate* isolate,
-    const TraceWrapperV8Reference<v8::Value>& dst_object) {
-  ScriptWrappableMarkingVisitor* visitor = CurrentVisitor(isolate);
-  if (dst_object.IsEmpty() || !visitor->WrapperTracingInProgress())
-    return;
-
-  // Conservatively assume that the source object containing |dst_object| is
-  // marked.
-  visitor->TraceWrappers(dst_object);
-}
-
-void ScriptWrappableMarkingVisitor::WriteBarrier(
-    v8::Isolate* isolate,
-    DOMWrapperMap<ScriptWrappable>* wrapper_map,
-    ScriptWrappable* key) {
-  ScriptWrappableMarkingVisitor* visitor = CurrentVisitor(isolate);
-  if (!visitor->WrapperTracingInProgress())
-    return;
-  // Conservatively assume that the source object key is marked.
-  visitor->TraceWrappers(wrapper_map, key);
-}
-
 void ScriptWrappableVisitor::TraceWrappers(
     DOMWrapperMap<ScriptWrappable>* wrapper_map,
     const ScriptWrappable* key) const {
   Visit(wrapper_map, key);
 }
 
-void ScriptWrappableMarkingVisitor::Visit(
-    const TraceWrapperV8Reference<v8::Value>& traced_wrapper) const {
-  // The write barrier may try to mark a wrapper because cleanup is still
-  // delayed. Bail out in this case. We also allow unconditional marking which
-  // requires us to bail out here when tracing is not in progress.
-  if (!tracing_in_progress_ || traced_wrapper.Get().IsEmpty())
-    return;
-  traced_wrapper.Get().RegisterExternalReference(isolate_);
-}
-
-void ScriptWrappableMarkingVisitor::Visit(
-    const WrapperDescriptor& wrapper_descriptor) const {
-  HeapObjectHeader* header = wrapper_descriptor.heap_object_header_callback(
-      wrapper_descriptor.traceable);
-  if (header->IsWrapperHeaderMarked())
-    return;
-  MarkWrapperHeader(header);
-  DCHECK(tracing_in_progress_);
-  DCHECK(header->IsWrapperHeaderMarked());
-  marking_deque_.push_back(WrapperMarkingData(wrapper_descriptor));
-#if DCHECK_IS_ON()
-  if (!advancing_tracing_) {
-    verifier_deque_.push_back(WrapperMarkingData(wrapper_descriptor));
-  }
-#endif
-}
-
-void ScriptWrappableMarkingVisitor::Visit(
-    DOMWrapperMap<ScriptWrappable>* wrapper_map,
-    const ScriptWrappable* key) const {
-  wrapper_map->MarkWrapper(const_cast<ScriptWrappable*>(key));
-}
-
 void ScriptWrappableVisitor::DispatchTraceWrappers(
     const TraceWrapperBase* wrapper_base) const {
   wrapper_base->TraceWrappers(this);
@@ -288,47 +25,4 @@
     const TraceWrapperBaseForSupplement* wrapper_base) const {
   wrapper_base->TraceWrappers(this);
 }
-
-void ScriptWrappableMarkingVisitor::InvalidateDeadObjectsInMarkingDeque() {
-  for (auto it = marking_deque_.begin(); it != marking_deque_.end(); ++it) {
-    auto& marking_data = *it;
-    if (marking_data.ShouldBeInvalidated()) {
-      marking_data.Invalidate();
-    }
-  }
-  for (auto it = verifier_deque_.begin(); it != verifier_deque_.end(); ++it) {
-    auto& marking_data = *it;
-    if (marking_data.ShouldBeInvalidated()) {
-      marking_data.Invalidate();
-    }
-  }
-  for (auto** it = headers_to_unmark_.begin(); it != headers_to_unmark_.end();
-       ++it) {
-    auto* header = *it;
-    if (header && !header->IsMarked()) {
-      *it = nullptr;
-    }
-  }
-}
-
-void ScriptWrappableMarkingVisitor::InvalidateDeadObjectsInMarkingDeque(
-    v8::Isolate* isolate) {
-  ScriptWrappableMarkingVisitor* script_wrappable_visitor =
-      V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
-  if (script_wrappable_visitor)
-    script_wrappable_visitor->InvalidateDeadObjectsInMarkingDeque();
-}
-
-void ScriptWrappableMarkingVisitor::PerformCleanup(v8::Isolate* isolate) {
-  ScriptWrappableMarkingVisitor* script_wrappable_visitor =
-      V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
-  if (script_wrappable_visitor)
-    script_wrappable_visitor->PerformCleanup();
-}
-
-ScriptWrappableMarkingVisitor* ScriptWrappableMarkingVisitor::CurrentVisitor(
-    v8::Isolate* isolate) {
-  return V8PerIsolateData::From(isolate)->GetScriptWrappableMarkingVisitor();
-}
-
 }  // namespace blink
diff --git a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.h b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.h
index 45f32a0..bff7364 100644
--- a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.h
+++ b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitor.h
@@ -52,50 +52,6 @@
   MissedWriteBarrierCallback missed_write_barrier_callback;
 };
 
-// TODO(ulan): rename it to MarkingDequeItem and make it a private
-// nested class of ScriptWrappableMarkingVisitor.
-class WrapperMarkingData {
- public:
-  WrapperMarkingData(const WrapperDescriptor& wrapper_descriptor)
-      : trace_wrappers_callback_(wrapper_descriptor.trace_wrappers_callback),
-        heap_object_header_callback_(
-            wrapper_descriptor.heap_object_header_callback),
-        raw_object_pointer_(wrapper_descriptor.traceable) {
-    DCHECK(trace_wrappers_callback_);
-    DCHECK(heap_object_header_callback_);
-    DCHECK(raw_object_pointer_);
-  }
-
-  // Traces wrappers if the underlying object has not yet been invalidated.
-  inline void TraceWrappers(ScriptWrappableVisitor* visitor) const {
-    if (raw_object_pointer_) {
-      trace_wrappers_callback_(visitor, raw_object_pointer_);
-    }
-  }
-
-  inline const void* RawObjectPointer() { return raw_object_pointer_; }
-
-  // Returns true if the object is currently marked in Oilpan and false
-  // otherwise.
-  inline bool ShouldBeInvalidated() {
-    return raw_object_pointer_ && !GetHeapObjectHeader()->IsMarked();
-  }
-
-  // Invalidates the current wrapper marking data, i.e., calling TraceWrappers
-  // will result in a noop.
-  inline void Invalidate() { raw_object_pointer_ = nullptr; }
-
- private:
-  inline const HeapObjectHeader* GetHeapObjectHeader() {
-    DCHECK(raw_object_pointer_);
-    return heap_object_header_callback_(raw_object_pointer_);
-  }
-
-  TraceWrappersCallback trace_wrappers_callback_;
-  HeapObjectHeaderCallback heap_object_header_callback_;
-  const void* raw_object_pointer_;
-};
-
 // Abstract visitor for wrapper references in a ScriptWrappable.
 // Usage:
 // - Define a derived class that overrides Visit(..) methods.
@@ -195,171 +151,6 @@
       const TraceWrapperBaseForSupplement*) const;
 };
 
-// ScriptWrappableVisitor is used to trace through Blink's heap to find all
-// reachable wrappers. V8 calls this visitor during its garbage collection,
-// see v8::EmbedderHeapTracer.
-class PLATFORM_EXPORT ScriptWrappableMarkingVisitor
-    : public v8::EmbedderHeapTracer,
-      public ScriptWrappableVisitor {
-  DISALLOW_IMPLICIT_CONSTRUCTORS(ScriptWrappableMarkingVisitor);
-
- public:
-  static ScriptWrappableMarkingVisitor* CurrentVisitor(v8::Isolate*);
-
-  bool WrapperTracingInProgress() const { return tracing_in_progress_; }
-
-  // Replace all dead objects in the marking deque with nullptr after Oilpan
-  // garbage collection.
-  static void InvalidateDeadObjectsInMarkingDeque(v8::Isolate*);
-
-  // Immediately clean up all wrappers.
-  static void PerformCleanup(v8::Isolate*);
-
-  // Conservative Dijkstra barrier.
-  //
-  // On assignment 'x.a = y' during incremental marking the Dijkstra barrier
-  // suggests checking the color of 'x' and only mark 'y' if 'x' is marked.
-
-  // Since checking 'x' is expensive in the current setting, as it requires
-  // either a back pointer or expensive lookup logic due to large objects and
-  // multiple inheritance, just assume that 'x' is black. We assume here that
-  // since an object 'x' is referenced for a write, it will generally also be
-  // alive in the current GC cycle.
-  template <typename T>
-  static void WriteBarrier(const T* dst_object) {
-    if (!dst_object)
-      return;
-
-    const ThreadState* thread_state =
-        ThreadStateFor<ThreadingTrait<T>::kAffinity>::GetState();
-    DCHECK(thread_state);
-    // Bail out if tracing is not in progress.
-    if (!thread_state->WrapperTracingInProgress())
-      return;
-
-    // If the wrapper is already marked we can bail out here.
-    if (TraceTrait<T>::GetHeapObjectHeader(dst_object)->IsWrapperHeaderMarked())
-      return;
-
-    CurrentVisitor(thread_state->GetIsolate())
-        ->Visit(WrapperDescriptorFor(dst_object));
-  }
-
-  static void WriteBarrier(v8::Isolate*,
-                           const TraceWrapperV8Reference<v8::Value>&);
-
-  static void WriteBarrier(v8::Isolate*,
-                           DOMWrapperMap<ScriptWrappable>*,
-                           ScriptWrappable* key);
-
-  ScriptWrappableMarkingVisitor(v8::Isolate* isolate) : isolate_(isolate){};
-  ~ScriptWrappableMarkingVisitor() override;
-
-  // v8::EmbedderHeapTracer interface.
-
-  void TracePrologue() override;
-  void RegisterV8References(const std::vector<std::pair<void*, void*>>&
-                                internal_fields_of_potential_wrappers) override;
-  void RegisterV8Reference(const std::pair<void*, void*>& internal_fields);
-  bool AdvanceTracing(double deadline_in_ms,
-                      v8::EmbedderHeapTracer::AdvanceTracingActions) override;
-  void TraceEpilogue() override;
-  void AbortTracing() override;
-  void EnterFinalPause() override;
-  size_t NumberOfWrappersToTrace() override;
-
- protected:
-  // ScriptWrappableVisitor interface.
-  void Visit(const TraceWrapperV8Reference<v8::Value>&) const override;
-  void Visit(const WrapperDescriptor&) const override;
-  void Visit(DOMWrapperMap<ScriptWrappable>*,
-             const ScriptWrappable* key) const override;
-
-  v8::Isolate* isolate() const { return isolate_; }
-
- private:
-  void MarkWrapperHeader(HeapObjectHeader*) const;
-
-  // Schedule an idle task to perform a lazy (incremental) clean up of
-  // wrappers.
-  void ScheduleIdleLazyCleanup();
-  void PerformLazyCleanup(double deadline_seconds);
-
-  void InvalidateDeadObjectsInMarkingDeque();
-
-  // Immediately cleans up all wrappers if necessary.
-  void PerformCleanup();
-
-  WTF::Deque<WrapperMarkingData>* MarkingDeque() const {
-    return &marking_deque_;
-  }
-  WTF::Vector<HeapObjectHeader*>* HeadersToUnmark() const {
-    return &headers_to_unmark_;
-  }
-
-  // Returns true if wrapper tracing is currently in progress, i.e.,
-  // TracePrologue has been called, and TraceEpilogue has not yet been called.
-  bool tracing_in_progress_ = false;
-
-  // Is AdvanceTracing currently running? If not, we know that all calls of
-  // pushToMarkingDeque are from V8 or new wrapper associations. And this
-  // information is used by the verifier feature.
-  bool advancing_tracing_ = false;
-
-  // Indicates whether an idle task for a lazy cleanup has already been
-  // scheduled. The flag is used to avoid scheduling multiple idle tasks for
-  // cleaning up.
-  bool idle_cleanup_task_scheduled_ = false;
-
-  // Indicates whether cleanup should currently happen. The flag is used to
-  // avoid cleaning up in the next GC cycle.
-  bool should_cleanup_ = false;
-
-  // Collection of objects we need to trace from. We assume it is safe to hold
-  // on to the raw pointers because:
-  // - oilpan object cannot move
-  // - oilpan gc will call invalidateDeadObjectsInMarkingDeque to delete all
-  //   obsolete objects
-  mutable WTF::Deque<WrapperMarkingData> marking_deque_;
-
-  // Collection of objects we started tracing from. We assume it is safe to
-  // hold on to the raw pointers because:
-  // - oilpan object cannot move
-  // - oilpan gc will call invalidateDeadObjectsInMarkingDeque to delete
-  //   all obsolete objects
-  //
-  // These objects are used when TraceWrappablesVerifier feature is enabled to
-  // verify that all objects reachable in the atomic pause were marked
-  // incrementally. If not, there is one or multiple write barriers missing.
-  mutable WTF::Deque<WrapperMarkingData> verifier_deque_;
-
-  // Collection of headers we need to unmark after the tracing finished. We
-  // assume it is safe to hold on to the headers because:
-  // - oilpan objects cannot move
-  // - objects this headers belong to are invalidated by the oilpan GC in
-  //   invalidateDeadObjectsInMarkingDeque.
-  mutable WTF::Vector<HeapObjectHeader*> headers_to_unmark_;
-  v8::Isolate* isolate_;
-
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest, MixinTracing);
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
-                           OilpanClearsMarkingDequeWhenObjectDied);
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
-                           ScriptWrappableMarkingVisitorTracesWrappers);
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
-                           OilpanClearsHeadersWhenObjectDied);
-  FRIEND_TEST_ALL_PREFIXES(
-      ScriptWrappableMarkingVisitorTest,
-      MarkedObjectDoesNothingOnWriteBarrierHitWhenDependencyIsMarkedToo);
-  FRIEND_TEST_ALL_PREFIXES(
-      ScriptWrappableMarkingVisitorTest,
-      MarkedObjectMarksDependencyOnWriteBarrierHitWhenNotMarked);
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
-                           WriteBarrierOnHeapVectorSwap1);
-  FRIEND_TEST_ALL_PREFIXES(ScriptWrappableMarkingVisitorTest,
-                           WriteBarrierOnHeapVectorSwap2);
-};
-
 }  // namespace blink
 
 #endif  // ScriptWrappableVisitor_h
diff --git a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitorVerifier.h b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitorVerifier.h
index 164cd59..5d198a41 100644
--- a/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitorVerifier.h
+++ b/third_party/WebKit/Source/platform/bindings/ScriptWrappableVisitorVerifier.h
@@ -9,22 +9,10 @@
 
 namespace blink {
 
+// This visitor should be applied on wrapper members of each marked object
+// after marking is complete. The Visit method checks that the given wrapper
+// is also marked.
 class ScriptWrappableVisitorVerifier final : public ScriptWrappableVisitor {
- public:
-  // The verifier deque should contain all objects encountered during marking.
-  // For each object in the deque the verifier checks that all children of
-  // the object are marked.
-  ScriptWrappableVisitorVerifier(
-      const WTF::Deque<WrapperMarkingData>* verifier_deque)
-      : verifier_deque_(verifier_deque) {}
-
-  void Verify() {
-    for (auto& marking_data : *verifier_deque_) {
-      // Check that all children of this object are marked.
-      marking_data.TraceWrappers(this);
-    }
-  }
-
  protected:
   void Visit(const TraceWrapperV8Reference<v8::Value>&) const final {}
   void Visit(const WrapperDescriptor& wrapper_descriptor) const final {
@@ -47,9 +35,6 @@
   }
   void Visit(DOMWrapperMap<ScriptWrappable>*,
              const ScriptWrappable* key) const final {}
-
- private:
-  const WTF::Deque<WrapperMarkingData>* verifier_deque_;
 };
 }
 #endif
diff --git a/third_party/WebKit/Source/platform/bindings/TraceWrapperMember.h b/third_party/WebKit/Source/platform/bindings/TraceWrapperMember.h
index fe361d80..c13e7967 100644
--- a/third_party/WebKit/Source/platform/bindings/TraceWrapperMember.h
+++ b/third_party/WebKit/Source/platform/bindings/TraceWrapperMember.h
@@ -5,7 +5,7 @@
 #ifndef TraceWrapperMember_h
 #define TraceWrapperMember_h
 
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/TraceWrapperBase.h"
 #include "platform/heap/HeapAllocator.h"
 
diff --git a/third_party/WebKit/Source/platform/bindings/TraceWrapperV8Reference.h b/third_party/WebKit/Source/platform/bindings/TraceWrapperV8Reference.h
index 6811605c..0af8edd 100644
--- a/third_party/WebKit/Source/platform/bindings/TraceWrapperV8Reference.h
+++ b/third_party/WebKit/Source/platform/bindings/TraceWrapperV8Reference.h
@@ -5,7 +5,7 @@
 #ifndef TraceWrapperV8Reference_h
 #define TraceWrapperV8Reference_h
 
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 
 namespace blink {
 
diff --git a/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h b/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
index 96097de..1db63f3 100644
--- a/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
+++ b/third_party/WebKit/Source/platform/bindings/V8PerIsolateData.h
@@ -35,7 +35,7 @@
 #include "platform/bindings/RuntimeCallStats.h"
 #include "platform/bindings/ScopedPersistent.h"
 #include "platform/bindings/ScriptState.h"
-#include "platform/bindings/ScriptWrappableVisitor.h"
+#include "platform/bindings/ScriptWrappableMarkingVisitor.h"
 #include "platform/bindings/WrapperTypeInfo.h"
 #include "platform/heap/Handle.h"
 #include "platform/wtf/HashMap.h"
diff --git a/third_party/WebKit/Source/platform/geometry/LayoutSizeHash.h b/third_party/WebKit/Source/platform/geometry/LayoutSizeHash.h
deleted file mode 100644
index bed648f..0000000
--- a/third_party/WebKit/Source/platform/geometry/LayoutSizeHash.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-#ifndef LayoutSizeHash_h
-#define LayoutSizeHash_h
-
-#include "platform/geometry/LayoutSize.h"
-#include "platform/wtf/Allocator.h"
-#include "platform/wtf/HashMap.h"
-#include "platform/wtf/HashSet.h"
-
-namespace WTF {
-
-template <>
-struct DefaultHash<blink::LayoutSize> {
-  STATIC_ONLY(DefaultHash);
-  struct Hash {
-    STATIC_ONLY(Hash);
-    static unsigned GetHash(const blink::LayoutSize& key) {
-      return HashInts(key.Width().RawValue(), key.Height().RawValue());
-    }
-    static bool Equal(const blink::LayoutSize& a, const blink::LayoutSize& b) {
-      return a == b;
-    }
-    static const bool safe_to_compare_to_empty_or_deleted = true;
-  };
-};
-
-template <>
-struct HashTraits<blink::LayoutSize> : GenericHashTraits<blink::LayoutSize> {
-  STATIC_ONLY(HashTraits);
-  static const bool kEmptyValueIsZero = true;
-  static void ConstructDeletedValue(blink::LayoutSize& slot, bool) {
-    slot = blink::LayoutSize(-1, -1);
-  }
-  static bool IsDeletedValue(const blink::LayoutSize& value) {
-    return value.Width() == -1 && value.Height() == -1;
-  }
-};
-
-}  // namespace WTF
-
-#endif
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.cpp b/third_party/WebKit/Source/platform/heap/ThreadState.cpp
index bfbe745..63c797a 100644
--- a/third_party/WebKit/Source/platform/heap/ThreadState.cpp
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.cpp
@@ -1196,23 +1196,23 @@
   ObjectResurrectionForbiddenScope object_resurrection_forbidden(this);
 
   double start_time = WTF::CurrentTimeTicksInMilliseconds();
-  if (!ordered_pre_finalizers_.IsEmpty()) {
-    // Call the prefinalizers in the opposite order to their registration.
-    //
-    // The prefinalizer callback wrapper returns |true| when its associated
-    // object is unreachable garbage and the prefinalizer callback has run.
-    // The registered prefinalizer entry must then be removed and deleted.
-    //
-    auto it = --ordered_pre_finalizers_.end();
-    bool done;
-    do {
-      auto entry = it;
-      done = it == ordered_pre_finalizers_.begin();
-      if (!done)
-        --it;
-      if ((entry->second)(entry->first))
-        ordered_pre_finalizers_.erase(entry);
-    } while (!done);
+
+  // Call the prefinalizers in the opposite order to their registration.
+  //
+  // LinkedHashSet does not support modification during iteration, so
+  // copy items first.
+  //
+  // The prefinalizer callback wrapper returns |true| when its associated
+  // object is unreachable garbage and the prefinalizer callback has run.
+  // The registered prefinalizer entry must then be removed and deleted.
+  Vector<PreFinalizer> reversed;
+  for (auto rit = ordered_pre_finalizers_.rbegin();
+       rit != ordered_pre_finalizers_.rend(); ++rit) {
+    reversed.push_back(*rit);
+  }
+  for (PreFinalizer pre_finalizer : reversed) {
+    if ((pre_finalizer.second)(pre_finalizer.first))
+      ordered_pre_finalizers_.erase(pre_finalizer);
   }
   if (IsMainThread()) {
     double time_for_invoking_pre_finalizers =
diff --git a/third_party/WebKit/Source/platform/heap/ThreadState.h b/third_party/WebKit/Source/platform/heap/ThreadState.h
index 2a4b197..e9f3cec7 100644
--- a/third_party/WebKit/Source/platform/heap/ThreadState.h
+++ b/third_party/WebKit/Source/platform/heap/ThreadState.h
@@ -43,6 +43,7 @@
 #include "platform/wtf/Functional.h"
 #include "platform/wtf/HashMap.h"
 #include "platform/wtf/HashSet.h"
+#include "platform/wtf/LinkedHashSet.h"
 #include "platform/wtf/ThreadSpecific.h"
 #include "platform/wtf/Threading.h"
 #include "platform/wtf/ThreadingPrimitives.h"
@@ -636,7 +637,7 @@
   // Pre-finalizers are called in the reverse order in which they are
   // registered by the constructors (including constructors of Mixin objects)
   // for an object, by processing the ordered_pre_finalizers_ back-to-front.
-  ListHashSet<PreFinalizer> ordered_pre_finalizers_;
+  LinkedHashSet<PreFinalizer> ordered_pre_finalizers_;
 
   v8::Isolate* isolate_;
   void (*trace_dom_wrappers_)(v8::Isolate*, Visitor*);
diff --git a/third_party/WebKit/Source/platform/heap/ThreadingTraits.h b/third_party/WebKit/Source/platform/heap/ThreadingTraits.h
index d3ea0b2..0289177a 100644
--- a/third_party/WebKit/Source/platform/heap/ThreadingTraits.h
+++ b/third_party/WebKit/Source/platform/heap/ThreadingTraits.h
@@ -11,8 +11,6 @@
 #include "platform/wtf/HashMap.h"
 #include "platform/wtf/HashSet.h"
 #include "platform/wtf/HashTable.h"
-#include "platform/wtf/LinkedHashSet.h"
-#include "platform/wtf/ListHashSet.h"
 #include "platform/wtf/TypeTraits.h"
 #include "platform/wtf/Vector.h"
 
diff --git a/third_party/WebKit/Source/platform/loader/fetch/FetchContext.cpp b/third_party/WebKit/Source/platform/loader/fetch/FetchContext.cpp
index 81f688f..156a779 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/FetchContext.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/FetchContext.cpp
@@ -110,6 +110,8 @@
 
 void FetchContext::AddResourceTiming(const ResourceTimingInfo&) {}
 
+void FetchContext::SendImagePing(const KURL&) {}
+
 void FetchContext::AddWarningConsoleMessage(const String&, LogSource) const {}
 
 void FetchContext::AddErrorConsoleMessage(const String&, LogSource) const {}
diff --git a/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h b/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h
index 213ab28c..e8900971 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h
+++ b/third_party/WebKit/Source/platform/loader/fetch/FetchContext.h
@@ -203,9 +203,11 @@
   virtual bool IsMainFrame() const { return true; }
   virtual bool DefersLoading() const { return false; }
   virtual bool IsLoadComplete() const { return false; }
+  virtual bool PageDismissalEventBeingDispatched() const { return false; }
   virtual bool UpdateTimingInfoForIFrameNavigation(ResourceTimingInfo*) {
     return false;
   }
+  virtual void SendImagePing(const KURL&);
 
   virtual void AddWarningConsoleMessage(const String&, LogSource) const;
   virtual void AddErrorConsoleMessage(const String&, LogSource) const;
diff --git a/third_party/WebKit/Source/platform/loader/fetch/MemoryCache.cpp b/third_party/WebKit/Source/platform/loader/fetch/MemoryCache.cpp
index ae29d5d..90001a2 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/MemoryCache.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/MemoryCache.cpp
@@ -163,6 +163,12 @@
 void MemoryCache::Remove(Resource* resource) {
   DCHECK(WTF::IsMainThread());
   DCHECK(resource);
+  // Resources can be created with garbage urls in error cases. These Resources
+  // should never be added to the cache (AddInternal() DCHECKs that the url is
+  // valid). Null urls will crash if we attempt to hash them, so early exit.
+  if (resource->Url().IsNull())
+    return;
+
   RESOURCE_LOADING_DVLOG(1) << "Evicting resource " << resource << " for "
                             << resource->Url().GetString() << " from cache";
   TRACE_EVENT1("blink", "MemoryCache::evict", "resource",
diff --git a/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp b/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp
index b8b2d3c4..fb91f2f 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/MemoryCacheCorrectnessTest.cpp
@@ -433,8 +433,6 @@
   request2.SetHTTPMethod(HTTPNames::POST);
   FetchParameters fetch2(request2);
   RawResource* resource2 = RawResource::FetchSynchronously(fetch2, Fetcher());
-
-  EXPECT_EQ(resource2, GetMemoryCache()->ResourceForURL(request2.Url()));
   EXPECT_NE(resource1, resource2);
 }
 
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
index e638d07..78a8f0d 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
@@ -538,12 +538,11 @@
     preloads_.erase(it);
 }
 
-ResourceFetcher::PrepareRequestResult ResourceFetcher::PrepareRequest(
+ResourceRequestBlockedReason ResourceFetcher::PrepareRequest(
     FetchParameters& params,
     const ResourceFactory& factory,
     const SubstituteData& substitute_data,
-    unsigned long identifier,
-    ResourceRequestBlockedReason& blocked_reason) {
+    unsigned long identifier) {
   ResourceRequest& resource_request = params.MutableResourceRequest();
   Resource::Type resource_type = factory.GetType();
   const ResourceLoaderOptions& options = params.Options();
@@ -579,7 +578,7 @@
       params.GetResourceWidth(), resource_request);
 
   if (!params.Url().IsValid())
-    return kAbort;
+    return ResourceRequestBlockedReason::kOther;
 
   resource_request.SetPriority(ComputeLoadPriority(
       resource_type, params.GetResourceRequest(), ResourcePriority::kNotVisible,
@@ -605,13 +604,13 @@
   network_instrumentation::ResourcePrioritySet(identifier,
                                                resource_request.Priority());
 
-  blocked_reason = Context().CanRequest(
+  ResourceRequestBlockedReason blocked_reason = Context().CanRequest(
       resource_type, resource_request,
       MemoryCache::RemoveFragmentIdentifierIfNeeded(params.Url()), options,
       reporting_policy, params.GetOriginRestriction(),
       resource_request.GetRedirectStatus());
   if (blocked_reason != ResourceRequestBlockedReason::kNone)
-    return kBlock;
+    return blocked_reason;
 
   const scoped_refptr<const SecurityOrigin>& origin = options.security_origin;
   if (origin && !origin->IsUnique() &&
@@ -633,7 +632,7 @@
                            FetchContext::RedirectType::kNotForRedirect);
 
   if (!params.Url().IsValid())
-    return kAbort;
+    return ResourceRequestBlockedReason::kOther;
 
   params.MutableOptions().cors_flag =
       !origin || !origin->CanRequestNoSuborigin(params.Url());
@@ -657,7 +656,7 @@
     resource_request.SetAllowStoredCredentials(allow_stored_credentials);
   }
 
-  return kContinue;
+  return ResourceRequestBlockedReason::kNone;
 }
 
 Resource* ResourceFetcher::RequestResource(
@@ -669,13 +668,15 @@
   // shouldn't provide a client.
   DCHECK(!client ||
          params.Options().synchronous_policy == kRequestAsynchronously);
-  Resource* resource = RequestResource(params, factory, substitute_data);
+  Resource* resource =
+      RequestResourceInternal(params, factory, substitute_data);
+  DCHECK(resource);
   if (client)
     client->SetResource(resource, Context().GetLoadingTaskRunner().get());
   return resource;
 }
 
-Resource* ResourceFetcher::RequestResource(
+Resource* ResourceFetcher::RequestResourceInternal(
     FetchParameters& params,
     const ResourceFactory& factory,
     const SubstituteData& substitute_data) {
@@ -702,13 +703,8 @@
   }
 
   ResourceRequestBlockedReason blocked_reason =
-      ResourceRequestBlockedReason::kNone;
-
-  PrepareRequestResult result = PrepareRequest(params, factory, substitute_data,
-                                               identifier, blocked_reason);
-  if (result == kAbort)
-    return nullptr;
-  if (result == kBlock)
+      PrepareRequest(params, factory, substitute_data, identifier);
+  if (blocked_reason != ResourceRequestBlockedReason::kNone)
     return ResourceForBlockedRequest(params, factory, blocked_reason);
 
   Resource::Type resource_type = factory.GetType();
@@ -734,7 +730,8 @@
       // in the case of data URLs which might have resources such as fonts that
       // need to be decoded only on demand. These data URLs are allowed to be
       // processed using the normal ResourceFetcher machinery.
-      return nullptr;
+      return ResourceForBlockedRequest(params, factory,
+                                       ResourceRequestBlockedReason::kOther);
     }
   }
 
@@ -805,18 +802,17 @@
   // loading immediately. If revalidation policy was determined as |Revalidate|,
   // the resource was already initialized for the revalidation here, but won't
   // start loading.
-  if (!ResourceNeedsLoad(resource, params, policy)) {
-    if (policy != kUse)
-      InsertAsPreloadIfNecessary(resource, params, resource_type);
-    return resource;
+  if (ResourceNeedsLoad(resource, params, policy)) {
+    if (StartLoad(resource)) {
+      scoped_resource_load_tracker.ResourceLoadContinuesBeyondScope();
+    } else {
+      resource->FinishAsError(ResourceError::CancelledError(params.Url()),
+                              Context().GetLoadingTaskRunner().get());
+    }
   }
 
-  if (!StartLoad(resource))
-    return nullptr;
-
   if (policy != kUse)
     InsertAsPreloadIfNecessary(resource, params, resource_type);
-  scoped_resource_load_tracker.ResourceLoadContinuesBeyondScope();
 
   return resource;
 }
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
index 3cf4eb6..9bb1e5f 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.h
@@ -70,6 +70,10 @@
   virtual ~ResourceFetcher();
   virtual void Trace(blink::Visitor*);
 
+  // Triggers a fetch based on the given FetchParameters (if there isn't a
+  // suitable Resource already cached) and registers the given ResourceClient
+  // with the Resource. Guaranteed to return a non-null Resource of the subtype
+  // specified by ResourceFactory::GetType().
   Resource* RequestResource(FetchParameters&,
                             const ResourceFactory&,
                             ResourceClient*,
@@ -189,16 +193,13 @@
           FetchParameters::SpeculativePreloadType::kNotSpeculative,
       bool is_link_preload = false);
 
-  enum PrepareRequestResult { kAbort, kContinue, kBlock };
-
-  Resource* RequestResource(FetchParameters&,
-                            const ResourceFactory&,
-                            const SubstituteData&);
-  PrepareRequestResult PrepareRequest(FetchParameters&,
-                                      const ResourceFactory&,
-                                      const SubstituteData&,
-                                      unsigned long identifier,
-                                      ResourceRequestBlockedReason&);
+  Resource* RequestResourceInternal(FetchParameters&,
+                                    const ResourceFactory&,
+                                    const SubstituteData&);
+  ResourceRequestBlockedReason PrepareRequest(FetchParameters&,
+                                              const ResourceFactory&,
+                                              const SubstituteData&,
+                                              unsigned long identifier);
 
   Resource* ResourceForStaticData(const FetchParameters&,
                                   const ResourceFactory&,
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
index 90202d30..a93e48fd 100644
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcherTest.cpp
@@ -469,19 +469,6 @@
             resource->GetResourceRequest().Priority());
 }
 
-TEST_F(ResourceFetcherTest, PingPriority) {
-  KURL url("http://127.0.0.1:8000/foo.png");
-  RegisterMockedURLLoad(url);
-
-  ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
-  ResourceRequest resource_request(url);
-  resource_request.SetRequestContext(WebURLRequest::kRequestContextPing);
-  FetchParameters fetch_params(resource_request);
-  Resource* resource = RawResource::Fetch(fetch_params, fetcher, nullptr);
-  EXPECT_EQ(ResourceLoadPriority::kVeryLow,
-            resource->GetResourceRequest().Priority());
-}
-
 TEST_F(ResourceFetcherTest, PreloadResourceTwice) {
   ResourceFetcher* fetcher = ResourceFetcher::Create(Context());
 
@@ -772,7 +759,8 @@
     FetchParameters fetch_params(resource_request);
     RawResource* resource = RawResource::FetchMainResource(
         fetch_params, fetcher, nullptr, SubstituteData());
-    EXPECT_NE(nullptr, resource);
+    ASSERT_NE(nullptr, resource);
+    EXPECT_FALSE(resource->ErrorOccurred());
   }
 
   // Subresource case.
@@ -782,7 +770,8 @@
     FetchParameters fetch_params(resource_request);
     RawResource* resource =
         RawResource::FetchMedia(fetch_params, fetcher, nullptr);
-    EXPECT_NE(nullptr, resource);
+    ASSERT_NE(nullptr, resource);
+    EXPECT_FALSE(resource->ErrorOccurred());
   }
 }
 
diff --git a/third_party/WebKit/Source/platform/memory_profiler/DEPS b/third_party/WebKit/Source/platform/memory_profiler/DEPS
new file mode 100644
index 0000000..70be7bf
--- /dev/null
+++ b/third_party/WebKit/Source/platform/memory_profiler/DEPS
@@ -0,0 +1,4 @@
+include_rules = [
+    "+base",
+]
+
diff --git a/third_party/WebKit/Source/platform/memory_profiler/OWNERS b/third_party/WebKit/Source/platform/memory_profiler/OWNERS
new file mode 100644
index 0000000..87c96616
--- /dev/null
+++ b/third_party/WebKit/Source/platform/memory_profiler/OWNERS
@@ -0,0 +1 @@
+alph@chromium.org
diff --git a/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.cpp b/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.cpp
new file mode 100644
index 0000000..f3f3cb5
--- /dev/null
+++ b/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.cpp
@@ -0,0 +1,331 @@
+// 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 "platform/memory_profiler/SamplingNativeHeapProfiler.h"
+
+#include <cmath>
+
+#include "base/allocator/allocator_shim.h"
+#include "base/allocator/features.h"
+#include "base/atomicops.h"
+#include "base/bits.h"
+#include "base/debug/alias.h"
+#include "base/debug/stack_trace.h"
+#include "base/memory/singleton.h"
+#include "base/rand_util.h"
+#include "build/build_config.h"
+
+namespace blink {
+
+using base::allocator::AllocatorDispatch;
+using base::subtle::Atomic32;
+using base::subtle::AtomicWord;
+
+namespace {
+
+const unsigned kMagicSignature = 0x14690ca5;
+const unsigned kDefaultAlignment = 16;
+const unsigned kSkipAllocatorFrames = 4;
+
+Atomic32 g_running;
+Atomic32 g_deterministic;
+AtomicWord g_cumulative_counter = 0;
+AtomicWord g_threshold;
+AtomicWord g_sampling_interval = 128 * 1024;
+
+static void* AllocFn(const AllocatorDispatch* self,
+                     size_t size,
+                     void* context) {
+  SamplingNativeHeapProfiler::Sample sample;
+  if (LIKELY(!base::subtle::NoBarrier_Load(&g_running) ||
+             !SamplingNativeHeapProfiler::CreateAllocSample(size, &sample))) {
+    return self->next->alloc_function(self->next, size, context);
+  }
+  void* address =
+      self->next->alloc_function(self->next, size + kDefaultAlignment, context);
+  return SamplingNativeHeapProfiler::GetInstance()->RecordAlloc(
+      sample, address, kDefaultAlignment, kSkipAllocatorFrames);
+}
+
+static void* AllocZeroInitializedFn(const AllocatorDispatch* self,
+                                    size_t n,
+                                    size_t size,
+                                    void* context) {
+  SamplingNativeHeapProfiler::Sample sample;
+  if (LIKELY(
+          !base::subtle::NoBarrier_Load(&g_running) ||
+          !SamplingNativeHeapProfiler::CreateAllocSample(n * size, &sample))) {
+    return self->next->alloc_zero_initialized_function(self->next, n, size,
+                                                       context);
+  }
+  void* address = self->next->alloc_zero_initialized_function(
+      self->next, 1, n * size + kDefaultAlignment, context);
+  return SamplingNativeHeapProfiler::GetInstance()->RecordAlloc(
+      sample, address, kDefaultAlignment, kSkipAllocatorFrames);
+}
+
+static void* AllocAlignedFn(const AllocatorDispatch* self,
+                            size_t alignment,
+                            size_t size,
+                            void* context) {
+  SamplingNativeHeapProfiler::Sample sample;
+  if (LIKELY(!base::subtle::NoBarrier_Load(&g_running) ||
+             !SamplingNativeHeapProfiler::CreateAllocSample(size, &sample))) {
+    return self->next->alloc_aligned_function(self->next, alignment, size,
+                                              context);
+  }
+  size_t offset = base::bits::Align(sizeof(kMagicSignature), alignment);
+  void* address = self->next->alloc_aligned_function(self->next, alignment,
+                                                     size + offset, context);
+  return SamplingNativeHeapProfiler::GetInstance()->RecordAlloc(
+      sample, address, offset, kSkipAllocatorFrames);
+}
+
+static void* ReallocFn(const AllocatorDispatch* self,
+                       void* address,
+                       size_t size,
+                       void* context) {
+  // Note: size == 0 actually performs free.
+  SamplingNativeHeapProfiler::Sample sample;
+  bool will_sample =
+      base::subtle::NoBarrier_Load(&g_running) &&
+      SamplingNativeHeapProfiler::CreateAllocSample(size, &sample);
+  char* client_address = reinterpret_cast<char*>(address);
+  if (UNLIKELY(address &&
+               reinterpret_cast<unsigned*>(address)[-1] == kMagicSignature)) {
+    address = SamplingNativeHeapProfiler::GetInstance()->RecordFree(address);
+  }
+  intptr_t prev_offset = client_address - reinterpret_cast<char*>(address);
+  bool was_sampled = prev_offset;
+  if (LIKELY(!was_sampled && !will_sample))
+    return self->next->realloc_function(self->next, address, size, context);
+  size_t size_to_allocate = will_sample ? size + kDefaultAlignment : size;
+  address = self->next->realloc_function(self->next, address, size_to_allocate,
+                                         context);
+  if (will_sample) {
+    return SamplingNativeHeapProfiler::GetInstance()->RecordAlloc(
+        sample, address, kDefaultAlignment, kSkipAllocatorFrames,
+        client_address && prev_offset != kDefaultAlignment);
+  }
+  DCHECK(was_sampled && !will_sample);
+  memmove(address, reinterpret_cast<char*>(address) + prev_offset, size);
+  return address;
+}
+
+static void FreeFn(const AllocatorDispatch* self,
+                   void* address,
+                   void* context) {
+  if (UNLIKELY(address &&
+               reinterpret_cast<unsigned*>(address)[-1] == kMagicSignature)) {
+    address = SamplingNativeHeapProfiler::GetInstance()->RecordFree(address);
+  }
+  self->next->free_function(self->next, address, context);
+}
+
+static size_t GetSizeEstimateFn(const AllocatorDispatch* self,
+                                void* address,
+                                void* context) {
+  size_t ret =
+      self->next->get_size_estimate_function(self->next, address, context);
+  return ret;
+}
+
+static unsigned BatchMallocFn(const AllocatorDispatch* self,
+                              size_t size,
+                              void** results,
+                              unsigned num_requested,
+                              void* context) {
+  CHECK(false) << "Not implemented.";
+  return 0;
+}
+
+static void BatchFreeFn(const AllocatorDispatch* self,
+                        void** to_be_freed,
+                        unsigned num_to_be_freed,
+                        void* context) {
+  CHECK(false) << "Not implemented.";
+}
+
+static void FreeDefiniteSizeFn(const AllocatorDispatch* self,
+                               void* ptr,
+                               size_t size,
+                               void* context) {
+  CHECK(false) << "Not implemented.";
+}
+
+AllocatorDispatch g_allocator_dispatch = {&AllocFn,
+                                          &AllocZeroInitializedFn,
+                                          &AllocAlignedFn,
+                                          &ReallocFn,
+                                          &FreeFn,
+                                          &GetSizeEstimateFn,
+                                          &BatchMallocFn,
+                                          &BatchFreeFn,
+                                          &FreeDefiniteSizeFn,
+                                          nullptr};
+
+}  // namespace
+
+// static
+void SamplingNativeHeapProfiler::InstallAllocatorHooksOnce() {
+  static bool hook_installed = InstallAllocatorHooks();
+  base::debug::Alias(&hook_installed);
+}
+
+// static
+bool SamplingNativeHeapProfiler::InstallAllocatorHooks() {
+#if BUILDFLAG(USE_ALLOCATOR_SHIM)
+  base::allocator::InsertAllocatorDispatch(&g_allocator_dispatch);
+#else
+  base::debug::Alias(&g_allocator_dispatch);
+  CHECK(false)
+      << "Can't enable native sampling heap profiler without the shim.";
+#endif  // BUILDFLAG(USE_ALLOCATOR_SHIM)
+  return true;
+}
+
+void SamplingNativeHeapProfiler::Start() {
+  InstallAllocatorHooksOnce();
+  base::subtle::Release_Store(&g_threshold, g_sampling_interval);
+  base::subtle::Release_Store(&g_running, true);
+}
+
+void SamplingNativeHeapProfiler::Stop() {
+  base::subtle::Release_Store(&g_running, false);
+}
+
+void SamplingNativeHeapProfiler::SetSamplingInterval(
+    unsigned sampling_interval) {
+  // TODO(alph): Update the threshold. Make sure not to leave it in a state
+  // when the threshold is already crossed.
+  base::subtle::Release_Store(&g_sampling_interval, sampling_interval);
+}
+
+// static
+intptr_t SamplingNativeHeapProfiler::GetNextSampleInterval(uint64_t interval) {
+  if (base::subtle::NoBarrier_Load(&g_deterministic))
+    return static_cast<intptr_t>(interval);
+  // We sample with a Poisson process, with constant average sampling
+  // interval. This follows the exponential probability distribution with
+  // parameter λ = 1/interval where |interval| is the average number of bytes
+  // between samples.
+  // Let u be a uniformly distributed random number between 0 and 1, then
+  // next_sample = -ln(u) / λ
+  double uniform = base::RandDouble();
+  double value = -log(uniform) * interval;
+  intptr_t min_value = sizeof(intptr_t);
+  // We limit the upper bound of a sample interval to make sure we don't have
+  // huge gaps in the sampling stream. Probability of the upper bound gets hit
+  // is exp(-20) ~ 2e-9, so it should not skew the distibution.
+  intptr_t max_value = interval * 20;
+  if (UNLIKELY(value < min_value))
+    return min_value;
+  if (UNLIKELY(value > max_value))
+    return max_value;
+  return static_cast<intptr_t>(value);
+}
+
+// static
+bool SamplingNativeHeapProfiler::CreateAllocSample(size_t size,
+                                                   Sample* sample) {
+  // Lock-free algorithm that adds the allocation size to the cumulative
+  // counter. When the counter reaches threshold, it picks a single thread
+  // that will record the sample and reset the counter.
+  // The thread that records the sample returns true, others return false.
+  AtomicWord threshold = base::subtle::NoBarrier_Load(&g_threshold);
+  AtomicWord accumulated = base::subtle::NoBarrier_AtomicIncrement(
+      &g_cumulative_counter, static_cast<AtomicWord>(size));
+  if (LIKELY(accumulated < threshold))
+    return false;
+
+  // Return if it was another thread that in fact crossed the threshold.
+  // That other thread is responsible for recording the sample.
+  if (UNLIKELY(accumulated >= threshold + static_cast<AtomicWord>(size)))
+    return false;
+
+  intptr_t next_interval =
+      GetNextSampleInterval(base::subtle::NoBarrier_Load(&g_sampling_interval));
+  base::subtle::Release_Store(&g_threshold, next_interval);
+  accumulated =
+      base::subtle::NoBarrier_AtomicExchange(&g_cumulative_counter, 0);
+
+  DCHECK_NE(size, 0u);
+  sample->size = size;
+  sample->count = std::max<size_t>(1, (accumulated + size / 2) / size);
+  return true;
+}
+
+void SamplingNativeHeapProfiler::RecordStackTrace(Sample* sample,
+                                                  unsigned skip_frames) {
+  // TODO(alph): Consider using debug::TraceStackFramePointers. It should be
+  // somewhat faster than base::debug::StackTrace.
+  base::debug::StackTrace trace;
+  size_t count;
+  void* const* addresses = const_cast<void* const*>(trace.Addresses(&count));
+  // Skip SamplingNativeHeapProfiler frames.
+  sample->stack.insert(
+      sample->stack.end(), &addresses[skip_frames],
+      &addresses[std::max(count, static_cast<size_t>(skip_frames))]);
+}
+
+void* SamplingNativeHeapProfiler::RecordAlloc(Sample& sample,
+                                              void* address,
+                                              unsigned offset,
+                                              unsigned skip_frames,
+                                              bool preserve_data) {
+  // TODO(alph): It's better to use a recursive mutex and move the check
+  // inside the critical section. This way we won't skip the sample generation
+  // on one thread if another thread is recording a sample.
+  if (entered_.Get())
+    return address;
+  base::AutoLock lock(mutex_);
+  entered_.Set(true);
+  sample.offset = offset;
+  void* client_address = reinterpret_cast<char*>(address) + offset;
+  if (preserve_data)
+    memmove(client_address, address, sample.size);
+  RecordStackTrace(&sample, skip_frames);
+  samples_.insert(std::make_pair(client_address, sample));
+  if (offset)
+    reinterpret_cast<unsigned*>(client_address)[-1] = kMagicSignature;
+  entered_.Set(false);
+  return client_address;
+}
+
+void* SamplingNativeHeapProfiler::RecordFree(void* address) {
+  base::AutoLock lock(mutex_);
+  auto& samples = GetInstance()->samples_;
+  auto it = samples.find(address);
+  if (it == samples.end())
+    return address;
+  void* address_to_free = reinterpret_cast<char*>(address) - it->second.offset;
+  samples.erase(it);
+  if (it->second.offset)
+    reinterpret_cast<unsigned*>(address)[-1] = 0;
+  return address_to_free;
+}
+
+// static
+SamplingNativeHeapProfiler* SamplingNativeHeapProfiler::GetInstance() {
+  return base::Singleton<SamplingNativeHeapProfiler>::get();
+}
+
+// static
+void SamplingNativeHeapProfiler::SuppressRandomnessForTest() {
+  base::subtle::Release_Store(&g_deterministic, true);
+}
+
+std::vector<SamplingNativeHeapProfiler::Sample>
+SamplingNativeHeapProfiler::GetSamples() {
+  base::AutoLock lock(mutex_);
+  CHECK(!entered_.Get());
+  entered_.Set(true);
+  std::vector<Sample> samples;
+  for (auto it = samples_.begin(); it != samples_.end(); ++it)
+    samples.push_back(it->second);
+  entered_.Set(false);
+  return samples;
+}
+
+}  // namespace blink
diff --git a/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.h b/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.h
new file mode 100644
index 0000000..21ad80e
--- /dev/null
+++ b/third_party/WebKit/Source/platform/memory_profiler/SamplingNativeHeapProfiler.h
@@ -0,0 +1,70 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef SamplingNativeHeapProfiler_h
+#define SamplingNativeHeapProfiler_h
+
+#include <unordered_map>
+#include <vector>
+
+#include "base/atomicops.h"
+#include "base/macros.h"
+#include "base/synchronization/lock.h"
+#include "base/threading/thread_local.h"
+#include "platform/PlatformExport.h"
+
+namespace base {
+template <typename T>
+struct DefaultSingletonTraits;
+}
+
+namespace blink {
+
+class PLATFORM_EXPORT SamplingNativeHeapProfiler {
+ public:
+  struct Sample {
+    size_t size;
+    size_t count;
+    unsigned offset;
+    std::vector<void*> stack;
+  };
+
+  SamplingNativeHeapProfiler() = default;
+
+  void Start();
+  void Stop();
+  void SetSamplingInterval(unsigned sampling_interval);
+  void SuppressRandomnessForTest();
+
+  std::vector<Sample> GetSamples();
+
+  static SamplingNativeHeapProfiler* GetInstance();
+
+  static inline bool CreateAllocSample(size_t, Sample*);
+  void* RecordAlloc(Sample&,
+                    void* address,
+                    unsigned offset,
+                    unsigned skip_frames,
+                    bool preserve_data = false);
+  void* RecordFree(void* address);
+
+ private:
+  static void InstallAllocatorHooksOnce();
+  static bool InstallAllocatorHooks();
+  static intptr_t GetNextSampleInterval(uint64_t base_interval);
+
+  void RecordStackTrace(Sample*, unsigned skip_frames);
+
+  base::ThreadLocalBoolean entered_;
+  base::Lock mutex_;
+  std::unordered_map<void*, Sample> samples_;
+
+  friend struct base::DefaultSingletonTraits<SamplingNativeHeapProfiler>;
+
+  DISALLOW_COPY_AND_ASSIGN(SamplingNativeHeapProfiler);
+};
+
+}  // namespace blink
+
+#endif  // SamplingNativeHeapProfiler_h
diff --git a/third_party/WebKit/Source/platform/network/DEPS b/third_party/WebKit/Source/platform/network/DEPS
index 7756279..531bbba 100644
--- a/third_party/WebKit/Source/platform/network/DEPS
+++ b/third_party/WebKit/Source/platform/network/DEPS
@@ -5,6 +5,7 @@
     # so we have separate DEPS from platform's one.
     "+net/base",
     "+net/http",
+    "+net/nqe",
     # For URLRequestDataJob::BuildResponse().
     "+net/url_request/url_request_data_job.h",
 ]
diff --git a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
index 898e172..2f772880 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp
@@ -26,6 +26,8 @@
 #include "platform/network/NetworkStateNotifier.h"
 
 #include <memory>
+#include "net/nqe/effective_connection_type.h"
+#include "net/nqe/network_quality_estimator_params.h"
 #include "platform/CrossThreadFunctional.h"
 #include "platform/wtf/Assertions.h"
 #include "platform/wtf/Functional.h"
@@ -168,6 +170,8 @@
 void NetworkStateNotifier::SetNetworkConnectionInfoOverride(
     bool on_line,
     WebConnectionType type,
+    Optional<WebEffectiveConnectionType> effective_type,
+    unsigned long http_rtt_msec,
     double max_bandwidth_mbps) {
   DCHECK(IsMainThread());
   ScopedNotifier notifier(*this);
@@ -179,25 +183,29 @@
     override_.connection_initialized = true;
     override_.type = type;
     override_.max_bandwidth_mbps = max_bandwidth_mbps;
-  }
-}
 
-void NetworkStateNotifier::SetNetworkQualityInfoOverride(
-    WebEffectiveConnectionType effective_type,
-    unsigned long transport_rtt_msec,
-    double downlink_throughput_mbps) {
-  DCHECK(IsMainThread());
-  ScopedNotifier notifier(*this);
-  {
-    MutexLocker locker(mutex_);
-    has_override_ = true;
-    override_.on_line_initialized = true;
-    override_.connection_initialized = true;
-    override_.effective_type = effective_type;
-    override_.http_rtt = base::TimeDelta::FromMilliseconds(transport_rtt_msec);
-    override_.downlink_throughput_mbps = base::nullopt;
-    if (downlink_throughput_mbps >= 0)
-      override_.downlink_throughput_mbps = downlink_throughput_mbps;
+    if (!effective_type && http_rtt_msec > 0) {
+      base::TimeDelta http_rtt(TimeDelta::FromMilliseconds(http_rtt_msec));
+      // Threshold values taken from
+      // net/nqe/network_quality_estimator_params.cc.
+      if (http_rtt >= net::kHttpRttEffectiveConnectionTypeThresholds
+                          [net::EFFECTIVE_CONNECTION_TYPE_SLOW_2G]) {
+        effective_type = WebEffectiveConnectionType::kTypeSlow2G;
+      } else if (http_rtt >= net::kHttpRttEffectiveConnectionTypeThresholds
+                                 [net::EFFECTIVE_CONNECTION_TYPE_2G]) {
+        effective_type = WebEffectiveConnectionType::kType2G;
+      } else if (http_rtt >= net::kHttpRttEffectiveConnectionTypeThresholds
+                                 [net::EFFECTIVE_CONNECTION_TYPE_3G]) {
+        effective_type = WebEffectiveConnectionType::kType3G;
+      } else {
+        effective_type = WebEffectiveConnectionType::kType4G;
+      }
+    }
+    override_.effective_type = effective_type
+                                   ? effective_type.value()
+                                   : WebEffectiveConnectionType::kTypeUnknown;
+    override_.http_rtt = TimeDelta::FromMilliseconds(http_rtt_msec);
+    override_.downlink_throughput_mbps = max_bandwidth_mbps;
   }
 }
 
diff --git a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.h b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.h
index 3d8a79d..fa79cfb 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifier.h
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifier.h
@@ -211,15 +211,18 @@
   // and supplied overridden values are used instead until clearOverride() is
   // called.  This is used for layout tests (see crbug.com/377736) and inspector
   // emulation.
+  // If |effective_type| is null, its value is computed using |http_rtt_msec|.
+  // |max_bandwidth_mbps| is used to override both the |max_bandwidth_mbps| and
+  // |downlink_throughput_mbps|.
   //
   // Since this class is a singleton, tests must clear override when completed
   // to avoid indeterminate state across the test harness.
-  void SetNetworkConnectionInfoOverride(bool on_line,
-                                        WebConnectionType,
-                                        double max_bandwidth_mbps);
-  void SetNetworkQualityInfoOverride(WebEffectiveConnectionType effective_type,
-                                     unsigned long transport_rtt_msec,
-                                     double downlink_throughput_mbps);
+  void SetNetworkConnectionInfoOverride(
+      bool on_line,
+      WebConnectionType,
+      Optional<WebEffectiveConnectionType> effective_type,
+      unsigned long http_rtt_msec,
+      double max_bandwidth_mbps);
   void SetSaveDataEnabledOverride(bool enabled);
   void ClearOverride();
 
diff --git a/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
index c5786cc..3bec382 100644
--- a/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp
@@ -174,6 +174,9 @@
   WebTaskRunner* GetTaskRunner2() { return task_runner2_.get(); }
 
   void TearDown() override {
+    // NetworkStateNotifier class is a singleton, so clear the override to avoid
+    // indeterminate state across the test harness.
+    notifier_.ClearOverride();
     RunPendingTasks();
     task_runner_ = nullptr;
     task_runner2_ = nullptr;
@@ -564,13 +567,14 @@
   EXPECT_EQ(kWebConnectionTypeBluetooth, notifier_.ConnectionType());
   EXPECT_EQ(kBluetoothMaxBandwidthMbps, notifier_.MaxBandwidth());
 
-  notifier_.SetNetworkConnectionInfoOverride(true, kWebConnectionTypeEthernet,
-                                             kEthernetMaxBandwidthMbps);
+  notifier_.SetNetworkConnectionInfoOverride(
+      true, kWebConnectionTypeEthernet, WebEffectiveConnectionType::kType4G,
+      kEthernetHttpRtt.value().InMilliseconds(), kEthernetMaxBandwidthMbps);
   RunPendingTasks();
   EXPECT_TRUE(VerifyObservations(
       observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
-      WebEffectiveConnectionType::kTypeUnknown, kUnknownRtt, kUnknownRtt,
-      kUnknownThroughputMbps, SaveData::kOff));
+      WebEffectiveConnectionType::kType4G, kEthernetHttpRtt, kUnknownRtt,
+      kEthernetMaxBandwidthMbps, SaveData::kOff));
   EXPECT_TRUE(notifier_.OnLine());
   EXPECT_EQ(kWebConnectionTypeEthernet, notifier_.ConnectionType());
   EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -584,8 +588,8 @@
   RunPendingTasks();
   EXPECT_TRUE(VerifyObservations(
       observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
-      WebEffectiveConnectionType::kTypeUnknown, kUnknownRtt, kUnknownRtt,
-      kUnknownThroughputMbps, SaveData::kOff));
+      WebEffectiveConnectionType::kType4G, kEthernetHttpRtt, kUnknownRtt,
+      kEthernetMaxBandwidthMbps, SaveData::kOff));
   EXPECT_TRUE(notifier_.OnLine());
   EXPECT_EQ(kWebConnectionTypeEthernet, notifier_.ConnectionType());
   EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.MaxBandwidth());
@@ -618,19 +622,18 @@
   EXPECT_EQ(kWebConnectionTypeBluetooth, notifier_.ConnectionType());
   EXPECT_EQ(kBluetoothMaxBandwidthMbps, notifier_.MaxBandwidth());
 
-  notifier_.SetNetworkQualityInfoOverride(
-      WebEffectiveConnectionType::kType3G,
+  notifier_.SetNetworkConnectionInfoOverride(
+      true, kWebConnectionTypeOther, WebEffectiveConnectionType::kType3G,
       kEthernetHttpRtt.value().InMilliseconds(),
       kEthernetThroughputMbps.value());
   RunPendingTasks();
   EXPECT_TRUE(VerifyObservations(
-      observer, kWebConnectionTypeOther,
-      NetworkStateNotifier::NetworkState::kInvalidMaxBandwidth,
+      observer, kWebConnectionTypeOther, kEthernetThroughputMbps.value(),
       WebEffectiveConnectionType::kType3G, kEthernetHttpRtt, kUnknownRtt,
       kEthernetThroughputMbps, SaveData::kOff));
   EXPECT_TRUE(notifier_.OnLine());
   EXPECT_EQ(kWebConnectionTypeOther, notifier_.ConnectionType());
-  EXPECT_EQ(-1, notifier_.MaxBandwidth());
+  EXPECT_EQ(kEthernetThroughputMbps, notifier_.MaxBandwidth());
   EXPECT_EQ(WebEffectiveConnectionType::kType3G, notifier_.EffectiveType());
   EXPECT_EQ(kEthernetHttpRtt, notifier_.HttpRtt());
   EXPECT_EQ(kEthernetThroughputMbps, notifier_.DownlinkThroughputMbps());
@@ -642,31 +645,31 @@
                 kUnknownRtt, kUnknownThroughputMbps, SaveData::kOff);
   RunPendingTasks();
   EXPECT_TRUE(VerifyObservations(
-      observer, kWebConnectionTypeOther,
-      NetworkStateNotifier::NetworkState::kInvalidMaxBandwidth,
+      observer, kWebConnectionTypeOther, kEthernetThroughputMbps.value(),
       WebEffectiveConnectionType::kType3G, kEthernetHttpRtt, kUnknownRtt,
       kEthernetThroughputMbps, SaveData::kOff));
   EXPECT_TRUE(notifier_.OnLine());
   EXPECT_EQ(kWebConnectionTypeOther, notifier_.ConnectionType());
-  EXPECT_EQ(-1, notifier_.MaxBandwidth());
+  EXPECT_EQ(kEthernetThroughputMbps, notifier_.MaxBandwidth());
   EXPECT_EQ(WebEffectiveConnectionType::kType3G, notifier_.EffectiveType());
   EXPECT_EQ(kEthernetHttpRtt, notifier_.HttpRtt());
   EXPECT_EQ(kEthernetThroughputMbps, notifier_.DownlinkThroughputMbps());
 
   // Override the network connection info as well.
-  notifier_.SetNetworkConnectionInfoOverride(true, kWebConnectionTypeEthernet,
-                                             kEthernetMaxBandwidthMbps);
+  notifier_.SetNetworkConnectionInfoOverride(
+      true, kWebConnectionTypeEthernet, WebEffectiveConnectionType::kType3G,
+      kEthernetHttpRtt.value().InMilliseconds(), kEthernetMaxBandwidthMbps);
   RunPendingTasks();
   EXPECT_TRUE(VerifyObservations(
       observer, kWebConnectionTypeEthernet, kEthernetMaxBandwidthMbps,
       WebEffectiveConnectionType::kType3G, kEthernetHttpRtt, kUnknownRtt,
-      kEthernetThroughputMbps, SaveData::kOff));
+      kEthernetMaxBandwidthMbps, SaveData::kOff));
   EXPECT_TRUE(notifier_.OnLine());
   EXPECT_EQ(kWebConnectionTypeEthernet, notifier_.ConnectionType());
   EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.MaxBandwidth());
   EXPECT_EQ(WebEffectiveConnectionType::kType3G, notifier_.EffectiveType());
   EXPECT_EQ(kEthernetHttpRtt, notifier_.HttpRtt());
-  EXPECT_EQ(kEthernetThroughputMbps, notifier_.DownlinkThroughputMbps());
+  EXPECT_EQ(kEthernetMaxBandwidthMbps, notifier_.DownlinkThroughputMbps());
 
   // Clearing the override should cause the network state to be changed and
   // notified to observers.
@@ -919,4 +922,43 @@
   EXPECT_EQ(observer2.CallbackCount(), 5);
 }
 
+TEST_F(NetworkStateNotifierTest, SetNetworkConnectionInfoOverrideGenerateECTs) {
+  StateObserver observer;
+  std::unique_ptr<NetworkStateNotifier::NetworkStateObserverHandle> handle =
+      notifier_.AddConnectionObserver(&observer, GetTaskRunner());
+
+  SetConnection(kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+                WebEffectiveConnectionType::kTypeUnknown, kUnknownRtt,
+                kUnknownRtt, kNoneMaxBandwidthMbps, SaveData::kOff);
+  EXPECT_TRUE(VerifyObservations(
+      observer, kWebConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps,
+      WebEffectiveConnectionType::kTypeUnknown, kUnknownRtt, kUnknownRtt,
+      kNoneMaxBandwidthMbps, SaveData::kOff));
+
+  const struct {
+    Optional<TimeDelta> rtt;
+    WebEffectiveConnectionType expected_effective_connection_type;
+  } tests[] = {
+      {TimeDelta::FromMilliseconds(100), WebEffectiveConnectionType::kType4G},
+      {TimeDelta::FromMilliseconds(600), WebEffectiveConnectionType::kType3G},
+      {TimeDelta::FromMilliseconds(1600), WebEffectiveConnectionType::kType2G},
+      {TimeDelta::FromMilliseconds(2800),
+       WebEffectiveConnectionType::kTypeSlow2G},
+  };
+
+  for (const auto& test : tests) {
+    // The effective connection type is set to Unknown.
+    // SetNetworkConnectionInfoOverride() should compute the effective
+    // connection type based on the provided RTT.
+    notifier_.SetNetworkConnectionInfoOverride(
+        true, kWebConnectionTypeEthernet, base::nullopt,
+        test.rtt.value().InMilliseconds(), kNoneMaxBandwidthMbps);
+    RunPendingTasks();
+    EXPECT_TRUE(VerifyObservations(
+        observer, kWebConnectionTypeEthernet, kNoneMaxBandwidthMbps,
+        test.expected_effective_connection_type, test.rtt, kUnknownRtt,
+        kNoneMaxBandwidthMbps, SaveData::kOff));
+  }
+}
+
 }  // namespace blink
diff --git a/third_party/WebKit/Source/platform/runtime_enabled_features.json5 b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
index c5ea098..8fb215c 100644
--- a/third_party/WebKit/Source/platform/runtime_enabled_features.json5
+++ b/third_party/WebKit/Source/platform/runtime_enabled_features.json5
@@ -450,7 +450,7 @@
     {
       name: "FramebustingNeedsSameOriginOrUserGesture",
       settable_from_internals: true,
-      status: "experimental",
+      status: "stable",
     },
     {
       name: "FramesTimingFunction",
@@ -1087,6 +1087,10 @@
       status: "experimental",
     },
     {
+      name: "UnifiedTouchAdjustment",
+      status: "experimental",
+    },
+    {
       name: "UpdateHoverPostLayout",
       status: "stable",
     },
diff --git a/third_party/WebKit/Source/platform/scheduler/child/metrics_helper.h b/third_party/WebKit/Source/platform/scheduler/child/metrics_helper.h
index 15c9b8b4..937a0ea 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/metrics_helper.h
+++ b/third_party/WebKit/Source/platform/scheduler/child/metrics_helper.h
@@ -46,9 +46,10 @@
 
   void SetThreadType(ThreadType thread_type);
 
- private:
+ protected:
   ThreadType thread_type_;
 
+ private:
   TaskDurationMetricReporter<ThreadType> thread_task_duration_reporter_;
   TaskDurationMetricReporter<ThreadType> thread_task_cpu_duration_reporter_;
   TaskDurationMetricReporter<ThreadType>
diff --git a/third_party/WebKit/Source/platform/scheduler/child/process_state.h b/third_party/WebKit/Source/platform/scheduler/child/process_state.h
index 8c34534..4eb2468 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/process_state.h
+++ b/third_party/WebKit/Source/platform/scheduler/child/process_state.h
@@ -2,6 +2,9 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_CHILD_PROCESS_STATE_H_
+#define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_CHILD_PROCESS_STATE_H_
+
 #include <atomic>
 
 namespace blink {
@@ -20,3 +23,5 @@
 }  // namespace internal
 }  // namespace scheduler
 }  // namespace blink
+
+#endif  // THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_CHILD_PROCESS_STATE_H_
diff --git a/third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.cc b/third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.cc
index efa543f8..e3f732b0 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.cc
+++ b/third_party/WebKit/Source/platform/scheduler/child/worker_global_scope_scheduler.cc
@@ -59,6 +59,7 @@
     case TaskType::kInternalTest:
     case TaskType::kInternalWebCrypto:
     case TaskType::kInternalIndexedDB:
+    case TaskType::kInternalMedia:
       // UnthrottledTaskRunner is generally discouraged in future.
       // TODO(nhiroki): Identify which tasks can be throttled / suspendable and
       // move them into other task runners. See also comments in
diff --git a/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.cc b/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.cc
index 2de7db7..625f604 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.cc
+++ b/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.cc
@@ -8,7 +8,11 @@
 namespace scheduler {
 
 WorkerMetricsHelper::WorkerMetricsHelper()
-    : MetricsHelper(ThreadType::kUnspecifiedWorkerThread) {}
+    : MetricsHelper(ThreadType::kUnspecifiedWorkerThread),
+      dedicated_worker_per_task_type_duration_reporter_(
+          "RendererScheduler.TaskDurationPerTaskType.DedicatedWorker"),
+      dedicated_worker_per_task_type_cpu_duration_reporter_(
+          "RendererScheduler.TaskCPUDurationPerTaskType.DedicatedWorker") {}
 
 WorkerMetricsHelper::~WorkerMetricsHelper() {}
 
@@ -23,6 +27,18 @@
 
   MetricsHelper::RecordCommonTaskMetrics(queue, task, start_time, end_time,
                                          thread_time);
+
+  if (thread_type_ == ThreadType::kDedicatedWorkerThread) {
+    base::Optional<TaskType> task_type = task.task_type();
+    dedicated_worker_per_task_type_duration_reporter_.RecordTask(
+        task_type ? task_type.value() : static_cast<TaskType>(0),
+        end_time - start_time);
+    if (thread_time) {
+      dedicated_worker_per_task_type_cpu_duration_reporter_.RecordTask(
+          task_type ? task_type.value() : static_cast<TaskType>(0),
+          thread_time.value());
+    }
+  }
 }
 
 }  // namespace scheduler
diff --git a/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.h b/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.h
index e50dd9c..614aad8 100644
--- a/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.h
+++ b/third_party/WebKit/Source/platform/scheduler/child/worker_metrics_helper.h
@@ -7,6 +7,8 @@
 
 #include "platform/scheduler/child/metrics_helper.h"
 #include "platform/scheduler/child/worker_task_queue.h"
+#include "platform/scheduler/util/thread_load_tracker.h"
+#include "public/platform/TaskType.h"
 
 namespace blink {
 namespace scheduler {
@@ -25,6 +27,11 @@
   using MetricsHelper::SetThreadType;
 
  private:
+  TaskDurationMetricReporter<TaskType>
+      dedicated_worker_per_task_type_duration_reporter_;
+  TaskDurationMetricReporter<TaskType>
+      dedicated_worker_per_task_type_cpu_duration_reporter_;
+
   DISALLOW_COPY_AND_ASSIGN(WorkerMetricsHelper);
 };
 
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
index 69b2767..3e5de39 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.cc
@@ -176,6 +176,8 @@
       return "InternalWebCrypto";
     case TaskType::kInternalIndexedDB:
       return "InternalIndexedDB";
+    case TaskType::kInternalMedia:
+      return "InternalMedia";
     case TaskType::kCount:
       return "Count";
   }
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc b/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
index b6bcf08..f1d5d00d 100644
--- a/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/web_frame_scheduler_impl.cc
@@ -268,6 +268,7 @@
     // smooth.
     case TaskType::kMediaElementEvent:
     case TaskType::kInternalIndexedDB:
+    case TaskType::kInternalMedia:
       return WebTaskRunnerImpl::Create(PausableTaskQueue(), type);
     case TaskType::kUnthrottled:
     case TaskType::kInternalTest:
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
index eaf0069..5cf58cd 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.cpp
@@ -305,6 +305,11 @@
   // Tell the derived class to scroll its contents.
   UpdateScrollOffset(truncated_offset, scroll_type);
 
+  // If the layout object has been detached as a result of updating the scroll
+  // this object will be cleaned up shortly.
+  if (HasBeenDisposed())
+    return;
+
   // Tell the scrollbars to update their thumb postions.
   // If the scrollbar does not have its own layer, it must always be
   // invalidated to reflect the new thumb offset, even if the theme did not
diff --git a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
index f3756ba4..9f60511 100644
--- a/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
+++ b/third_party/WebKit/Source/platform/scroll/ScrollableArea.h
@@ -421,6 +421,8 @@
   // then reset to alpha, causing spurrious "visibilityChanged" calls.
   virtual void ScrollbarVisibilityChanged() {}
 
+  virtual bool HasBeenDisposed() const { return false; }
+
  private:
   FRIEND_TEST_ALL_PREFIXES(ScrollableAreaTest,
                            PopupOverlayScrollbarShouldNotFadeOut);
diff --git a/third_party/WebKit/public/BUILD.gn b/third_party/WebKit/public/BUILD.gn
index c16c401..58cfa34 100644
--- a/third_party/WebKit/public/BUILD.gn
+++ b/third_party/WebKit/public/BUILD.gn
@@ -833,6 +833,7 @@
     "platform/modules/mediasession/media_session.mojom",
     "platform/modules/payments/payment_request.mojom",
     "platform/modules/webshare/webshare.mojom",
+    "web/remote_objects.mojom",
   ]
   public_deps = [
     "//components/payments/mojom",
diff --git a/third_party/WebKit/public/platform/TaskType.h b/third_party/WebKit/public/platform/TaskType.h
index 79e594fd..a00c0b8 100644
--- a/third_party/WebKit/public/platform/TaskType.h
+++ b/third_party/WebKit/public/platform/TaskType.h
@@ -146,7 +146,13 @@
   // * //content/renderer/indexed_db
   kInternalIndexedDB = 28,
 
-  kCount = 29,
+  // Tasks to execute media-related things. Tasks with this type are mainly
+  // posted by:
+  // * //content/renderer/media
+  // * //media
+  kInternalMedia = 29,
+
+  kCount = 30,
 };
 
 }  // namespace blink
diff --git a/third_party/WebKit/public/platform/WebMouseEvent.h b/third_party/WebKit/public/platform/WebMouseEvent.h
index 67b1a2e..5457fba 100644
--- a/third_party/WebKit/public/platform/WebMouseEvent.h
+++ b/third_party/WebKit/public/platform/WebMouseEvent.h
@@ -17,9 +17,6 @@
 
 // WebMouseEvent --------------------------------------------------------------
 
-// TODO(mustaq): We are truncating |float|s to integers whenever setting
-//   coordinate values, to avoid regressions for now. Will be fixed later
-//   on. crbug.com/456625
 class WebMouseEvent : public WebInputEvent, public WebPointerProperties {
  public:
   static constexpr PointerId kMousePointerId = std::numeric_limits<int>::max();
@@ -87,14 +84,6 @@
   BLINK_PLATFORM_EXPORT WebMouseEvent FlattenTransform() const;
 #endif
 
-  void SetPositionInWidget(float x, float y) {
-    position_in_widget_ = WebFloatPoint(x, y);
-  }
-
-  void SetPositionInScreen(float x, float y) {
-    position_in_screen_ = WebFloatPoint(x, y);
-  }
-
  protected:
   WebMouseEvent(unsigned size_param, PointerId id_param)
       : WebInputEvent(size_param), WebPointerProperties(id_param) {}
diff --git a/third_party/WebKit/public/platform/WebPointerProperties.h b/third_party/WebKit/public/platform/WebPointerProperties.h
index 2f38c8484..ce725a7 100644
--- a/third_party/WebKit/public/platform/WebPointerProperties.h
+++ b/third_party/WebKit/public/platform/WebPointerProperties.h
@@ -77,9 +77,13 @@
   WebFloatPoint PositionInWidget() const { return position_in_widget_; }
   WebFloatPoint PositionInScreen() const { return position_in_screen_; }
 
-  // TODO(mustaq): Move the setters for position_in_widget_ and
-  // position_in_screen_ here from the subclasses when mouse event coordinate
-  // truncation is removed. crbug.com/456625
+  void SetPositionInWidget(float x, float y) {
+    position_in_widget_ = WebFloatPoint(x, y);
+  }
+
+  void SetPositionInScreen(float x, float y) {
+    position_in_screen_ = WebFloatPoint(x, y);
+  }
 
   PointerId id;
 
diff --git a/third_party/WebKit/public/platform/WebTouchPoint.h b/third_party/WebKit/public/platform/WebTouchPoint.h
index a4fdc06..92c7f09 100644
--- a/third_party/WebKit/public/platform/WebTouchPoint.h
+++ b/third_party/WebKit/public/platform/WebTouchPoint.h
@@ -50,14 +50,6 @@
         radius_y(0),
         rotation_angle(0) {}
 
-  void SetPositionInWidget(float x, float y) {
-    position_in_widget_ = WebFloatPoint(x, y);
-  }
-
-  void SetPositionInScreen(float x, float y) {
-    position_in_screen_ = WebFloatPoint(x, y);
-  }
-
   enum State {
     kStateUndefined,
     kStateReleased,
diff --git a/third_party/WebKit/public/platform/web_feature.mojom b/third_party/WebKit/public/platform/web_feature.mojom
index 334d1cc..8e5775f 100644
--- a/third_party/WebKit/public/platform/web_feature.mojom
+++ b/third_party/WebKit/public/platform/web_feature.mojom
@@ -1566,6 +1566,8 @@
   kMediaSourceKeyframeTimeGreaterThanDependant = 2060,
   kMediaSourceMuxedSequenceMode = 2061,
   kPrepareModuleScript = 2062,
+  // The above items are available as of the M61 branch.
+
   kPresentationRequestStartSecureOrigin = 2063,
   kPresentationRequestStartInsecureOrigin = 2064,
   kPersistentClientHintHeader = 2065,
@@ -1647,6 +1649,8 @@
   kWebkitBoxLineClampOneChildIsLayoutBlockFlowInline = 2142,
   kWebkitBoxLineClampManyChildren = 2143,
   kWebkitBoxLineClampDoesSomething = 2144,
+  // The above items are available as of the M62 branch.
+
   kFeaturePolicyAllowAttributeDeprecatedSyntax = 2145,
   kSuppressHistoryEntryWithoutUserGesture = 2146,
   kImageInputTypeFormDataWithNonEmptyValue = 2147,
@@ -1688,6 +1692,8 @@
   kCrossOriginWorkerTextHtml = 2184,
   kCrossOriginWorkerTextPlain = 2185,
   kCrossOriginWorkerTextXml = 2186,
+  // The above items are available as of the M63 branch.
+
   kPerformanceObserverForWindow = 2188,
   kPerformanceObserverForWorker = 2189,
   kPaintTimingObserved = 2190,
@@ -1759,6 +1765,8 @@
   kLocalCSSFile = 2256,
   kLocalCSSFileExtensionRejected = 2257,
   kUserMediaDisableHardwareNoiseSuppression = 2258,
+  // The above items are available as of the M64 branch.
+
   kCertificateTransparencyRequiredErrorOnResourceLoad = 2259,
   kCSSSelectorPseudoWebkitAnyLink = 2260,
   kAudioWorkletAddModule = 2261,
@@ -1847,6 +1855,8 @@
   kScrollToFragmentFailWithMixed = 2344,
   kScrollToFragmentFailWithInvalidEncoding = 2345,
   kRTCPeerConnectionWithActiveCsp = 2346,
+  // The above items are available as of the M65 branch.
+
   kImageDecodingAttribute = 2347,
   kImageDecodeAPI = 2348,
   kV8HTMLElement_Autocapitalize_AttributeGetter = 2349,
diff --git a/third_party/WebKit/public/web/remote_objects.mojom b/third_party/WebKit/public/web/remote_objects.mojom
new file mode 100644
index 0000000..2c0169b
--- /dev/null
+++ b/third_party/WebKit/public/web/remote_objects.mojom
@@ -0,0 +1,23 @@
+// 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.
+
+module blink.mojom;
+
+// These interfaces allow an object implemented outside the Blink renderer
+// process to be exposed to JavaScript via synchronous IPC.
+//
+// See also this design doc:
+//   https://docs.google.com/document/d/1T8Zj_gZK7jHsy80Etk-Rw4hXMIW4QeaTtXjy5ZKP3X0/edit
+
+// Implemented in the process hosting the remote object.
+// Allows methods to be synchronously invoked on the object.
+interface RemoteObject {
+  [Sync] HasMethod(string name) => (bool method_exists);
+  [Sync] GetMethods() => (array<string> method_names);
+  [Sync] InvokeMethod(string name, array<RemoteInvocationArgument> arguments)
+      => (RemoteInvocationResult result);
+};
+
+struct RemoteInvocationArgument {};
+struct RemoteInvocationResult {};
diff --git a/third_party/blink/tools/move_blink_source.py b/third_party/blink/tools/move_blink_source.py
index ba661ac..b5265c82 100755
--- a/third_party/blink/tools/move_blink_source.py
+++ b/third_party/blink/tools/move_blink_source.py
@@ -27,6 +27,7 @@
 from webkitpy.common.path_finder import get_chromium_src_dir
 from webkitpy.common.path_finder import get_scripts_dir
 from webkitpy.common.system.executive import Executive
+from webkitpy.common.system.executive import ScriptError
 from webkitpy.common.system.filesystem import FileSystem
 
 _log = logging.getLogger('move_blink_source')
@@ -88,13 +89,20 @@
 
         self._updated_files = []
 
-    def update(self):
+    def update(self, apply_only=None):
+        """Updates contents of files affected by Blink source move.
+
+        Args:
+            apply_only: If it's None, updates all affected files. Otherwise,
+                it should be a set of file paths and this function updates
+                only the files in |apply_only|.
+        """
         _log.info('Planning renaming ...')
         file_pairs = plan_blink_move(self._fs, [])
         _log.info('Will move %d files', len(file_pairs))
 
         self._create_basename_maps(file_pairs)
-        dirs = self._update_file_content()
+        dirs = self._update_file_content(apply_only)
 
         # Updates #includes in files in directories with updated DEPS +
         # third_party/WebKit/{Source,common,public}.
@@ -103,7 +111,7 @@
         self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'third_party', 'WebKit', 'public'))
         self._append_unless_upper_dir_exists(dirs, self._fs.join(self._repo_root, 'mojo', 'public', 'tools',
                                                                  'bindings', 'generators', 'cpp_templates'))
-        self._update_cpp_includes_in_directories(dirs)
+        self._update_cpp_includes_in_directories(dirs, apply_only)
 
         # Content update for individual files.
         # The following is a list of tuples.
@@ -177,7 +185,8 @@
              [('third_party/WebKit/public', 'third_party/blink/renderer/public')]),
         ]
         for file_path, replacement_list in file_replacement_list:
-            self._update_single_file_content(file_path, replacement_list, should_write=self._options.run)
+            if not apply_only or file_path in apply_only:
+                self._update_single_file_content(file_path, replacement_list, should_write=self._options.run)
 
         if self._options.run:
             _log.info('Formatting updated %d files ...', len(self._updated_files))
@@ -190,8 +199,9 @@
                 git.run(['cl', 'format'] + self._updated_files[:end_index])
                 self._updated_files = self._updated_files[end_index:]
 
-            _log.info('Make a local commit ...')
-            git.commit_locally_with_message("""The Great Blink mv for source files, part 1.
+            if not apply_only:
+                _log.info('Make a local commit ...')
+                git.commit_locally_with_message("""The Great Blink mv for source files, part 1.
 
 Update file contents without moving files.
 
@@ -199,9 +209,21 @@
 Bug: 768828
 """)
 
-    def move(self):
+    def move(self, apply_only=None):
+        """Move Blink source files.
+
+        Args:
+            apply_only: If it's None, move all affected files. Otherwise,
+                it should be a set of file paths and this function moves
+                only the files in |apply_only|.
+        """
         _log.info('Planning renaming ...')
         file_pairs = plan_blink_move(self._fs, [])
+
+        if apply_only:
+            file_pairs = [(src, dest) for (src, dest) in file_pairs
+                          if 'third_party/WebKit/' + src.replace('\\', '/') in apply_only]
+            print 'Update file_pairs = ', file_pairs
         _log.info('Will move %d files', len(file_pairs))
 
         git = Git(cwd=self._repo_root)
@@ -220,6 +242,9 @@
                 self._fs.move(self._fs.join(self._repo_root, src_from_repo),
                               self._fs.join(self._repo_root, dest_from_repo))
                 _log.info('[%d/%d] Moved %s', i + 1, len(file_pairs), src)
+        if apply_only:
+            return
+
         self._update_single_file_content(
             'build/get_landmines.py',
             [('\ndef main', '  print \'The Great Blink mv for source files (crbug.com/768828)\'\n\ndef main')])
@@ -243,10 +268,20 @@
     def fix_branch(self):
         git = Git(cwd=self._repo_root)
         status = self._get_local_change_status(git)
+        if len(status) == 0:
+            _log.info('No local changes.')
+            return
+        modified_files = {f for (s, f) in status if s != 'D'}
+        deleted_files = {f for (s, f) in status if s == 'D'}
 
-        # TODO(tkent): Apply "update" command only to files without "D" status.
-        # TODO(tkent): Apply "move" command only to them
-        # TODO(tkent): Show a message about "D" status files.
+        self.update(apply_only=modified_files)
+        self.move(apply_only=modified_files)
+        try:
+            git.commit_locally_with_message('This commit should be squashed.')
+        except ScriptError:
+            _log.info('move_blink_source.py modified nothing.')
+
+        # TODO(tkent): Show a message about deleted_files.
 
     def _get_local_change_status(self, git):
         """Returns a list of tuples representing local change summary.
@@ -392,7 +427,7 @@
                 return
         dirs.append(new_dir)
 
-    def _update_file_content(self):
+    def _update_file_content(self, apply_only):
         _log.info('Find *.gn, *.mojom, *.py, *.typemap, DEPS, and OWNERS ...')
         files = self._fs.files_under(
             self._repo_root, dirs_to_skip=['.git', 'out'], file_filter=self._filter_file)
@@ -424,7 +459,7 @@
 
             if original_content == content:
                 continue
-            if self._options.run:
+            if self._options.run and (not apply_only or file_path.replace('\\', '/') in apply_only):
                 self._fs.write_text_file(file_path, content)
                 self._updated_files.append(file_path)
             if file_type == FileType.DEPS:
@@ -432,7 +467,7 @@
             _log.info('Updated %s', self._shorten_path(file_path))
         return updated_deps_dirs
 
-    def _update_cpp_includes_in_directories(self, dirs):
+    def _update_cpp_includes_in_directories(self, dirs, apply_only):
         for dirname in dirs:
             _log.info('Processing #include in %s ...', self._shorten_path(dirname))
             files = self._fs.files_under(
@@ -440,17 +475,18 @@
                     ('.h', '.cc', '.cpp', '.mm', '.cc.tmpl', '.cpp.tmpl',
                      '.h.tmpl', 'XPathGrammar.y', '.gperf')))
             for file_path in files:
+                posix_file_path = file_path.replace('\\', '/')
                 original_content = self._fs.read_text_file(file_path)
 
                 content = self._update_cpp_includes(original_content)
-                if file_path.endswith('.h') and '/third_party/WebKit/public/' in file_path.replace('\\', '/'):
+                if file_path.endswith('.h') and '/third_party/WebKit/public/' in posix_file_path:
                     content = self._update_basename_only_includes(content, file_path)
-                if file_path.endswith('.h') and '/third_party/WebKit/' in file_path.replace('\\', '/'):
+                if file_path.endswith('.h') and '/third_party/WebKit/' in posix_file_path:
                     content = self._update_include_guard(content, file_path)
 
                 if original_content == content:
                     continue
-                if self._options.run:
+                if self._options.run and (not apply_only or posix_file_path in apply_only):
                     self._fs.write_text_file(file_path, content)
                     self._updated_files.append(file_path)
                 _log.info('Updated %s', self._shorten_path(file_path))
diff --git a/third_party/closure_compiler/closure_args.gni b/third_party/closure_compiler/closure_args.gni
index 4d0f326..50e6b9f 100644
--- a/third_party/closure_compiler/closure_args.gni
+++ b/third_party/closure_compiler/closure_args.gni
@@ -12,8 +12,6 @@
   "extra_annotation_name=homepage",
   "extra_annotation_name=status",
   "extra_annotation_name=submodule",
-
-  "source_map_format=V3",
 ]
 
 # Additional closure args for performing full checks.
diff --git a/third_party/closure_compiler/closure_args.gypi b/third_party/closure_compiler/closure_args.gypi
index d89de3d..718f8e2 100644
--- a/third_party/closure_compiler/closure_args.gypi
+++ b/third_party/closure_compiler/closure_args.gypi
@@ -42,8 +42,6 @@
     'checks_only',
     'chrome_pass',
     'polymer_pass',
-
-    'source_map_format=V3',
   ],
 
   'default_disabled_closure_args': [
diff --git a/third_party/closure_compiler/compile2.py b/third_party/closure_compiler/compile2.py
index 260c57e7..3d77842 100755
--- a/third_party/closure_compiler/compile2.py
+++ b/third_party/closure_compiler/compile2.py
@@ -31,8 +31,6 @@
     "-XX:+TieredCompilation"
   ]
 
-  _MAP_FILE_FORMAT = "%s.map"
-
   _POLYMER_EXTERNS = os.path.join(_CURRENT_DIR, "externs", "polymer-1.0.js")
 
   def __init__(self, verbose=False):
@@ -174,6 +172,8 @@
       closure_args: Arguments passed directly to the Closure compiler.
       custom_sources: Whether |sources| was customized by the target (e.g. not
           in GYP dependency order).
+      custom_includes: Whether <include>s are processed when |custom_sources|
+          is True.
 
     Returns:
       (found_errors, stderr) A boolean indicating whether errors were found and
@@ -239,7 +239,6 @@
 
     if not checks_only:
       args += ["--js_output_file=%s" % out_file]
-      args += ["--create_source_map=%s" % (self._MAP_FILE_FORMAT % out_file)]
 
     self._log_debug("Args: %s" % " ".join(args))
 
@@ -260,8 +259,6 @@
     if summary.group('error_count') != "0":
       if os.path.exists(out_file):
         os.remove(out_file)
-      if os.path.exists(self._MAP_FILE_FORMAT % out_file):
-        os.remove(self._MAP_FILE_FORMAT % out_file)
     elif checks_only and return_code == 0:
       # Compile succeeded but --checks_only disables --js_output_file from
       # actually writing a file. Write a file ourselves so incremental builds
@@ -291,8 +288,8 @@
   parser.add_argument("--custom_sources", action="store_true",
                       help="Whether this rules has custom sources.")
   parser.add_argument("--custom_includes", action="store_true",
-                      help="If present, <include>s are processed when"
-                           "using --custom_files.")
+                      help="If present, <include>s are processed when "
+                           "using --custom_sources.")
   parser.add_argument("-o", "--out_file", required=True,
                       help="A file where the compiled output is written to")
   parser.add_argument("-c", "--closure_args", nargs=argparse.ZERO_OR_MORE,
diff --git a/third_party/closure_compiler/compiler_test.py b/third_party/closure_compiler/compiler_test.py
index 8478260..103d3ac5 100755
--- a/third_party/closure_compiler/compiler_test.py
+++ b/third_party/closure_compiler/compiler_test.py
@@ -46,7 +46,7 @@
   def _runChecker(self, source_code, needs_output, closure_args=None):
     file_path = "/script.js"
     FileCache._cache[file_path] = source_code
-    out_file, out_map = self._createOutFiles()
+    out_file = self._createOutFiles()
     args = _COMMON_CLOSURE_ARGS + (closure_args or [])
     if needs_output:
       args.remove("checks_only")
@@ -55,28 +55,26 @@
     found_errors, stderr = self._checker.check(sources,
                                                out_file=out_file,
                                                closure_args=args)
-    return found_errors, stderr, out_file, out_map
+    return found_errors, stderr, out_file
 
   def _runCheckerTestExpectError(self, source_code, expected_error,
                                  closure_args=None):
-    _, stderr, out_file, out_map = self._runChecker(
+    _, stderr, out_file = self._runChecker(
         source_code, needs_output=False, closure_args=closure_args)
 
     self.assertTrue(expected_error in stderr,
         msg="Expected chunk: \n%s\n\nOutput:\n%s\n" % (
             expected_error, stderr))
     self.assertFalse(os.path.exists(out_file))
-    self.assertFalse(os.path.exists(out_map))
 
   def _runCheckerTestExpectSuccess(self, source_code, expected_output=None,
                                    closure_args=None):
-    found_errors, stderr, out_file, out_map = self._runChecker(
+    found_errors, stderr, out_file = self._runChecker(
         source_code, needs_output=True, closure_args=closure_args)
 
     self.assertFalse(found_errors,
         msg="Expected success, but got failure\n\nOutput:\n%s\n" % stderr)
 
-    self.assertTrue(os.path.exists(out_map))
     self.assertTrue(os.path.exists(out_file))
     if expected_output:
       with open(out_file, "r") as file:
@@ -84,11 +82,9 @@
 
   def _createOutFiles(self):
     out_file = tempfile.NamedTemporaryFile(delete=False)
-    out_map = "%s.map" % out_file.name
 
     self._tmp_files.append(out_file.name)
-    self._tmp_files.append(out_map)
-    return out_file.name, out_map
+    return out_file.name
 
   def testGetInstance(self):
     self._runCheckerTestExpectError("""
@@ -317,7 +313,7 @@
 """)
     self._tmp_files.append(source_file2.name)
 
-    out_file, out_map = self._createOutFiles()
+    out_file = self._createOutFiles()
     sources = [source_file1.name, source_file2.name]
     closure_args = [a for a in _COMMON_CLOSURE_ARGS if a != "checks_only"]
     found_errors, stderr = self._checker.check(sources, out_file=out_file,
@@ -327,7 +323,6 @@
         msg="Expected success, but got failure\n\nOutput:\n%s\n" % stderr)
 
     expected_output = "'use strict';var testScript=function(){};testScript();\n"
-    self.assertTrue(os.path.exists(out_map))
     self.assertTrue(os.path.exists(out_file))
     with open(out_file, "r") as file:
       self.assertEquals(file.read(), expected_output)
diff --git a/third_party/closure_compiler/externs/system_display.js b/third_party/closure_compiler/externs/system_display.js
index 7adeeb6..fad8a71 100644
--- a/third_party/closure_compiler/externs/system_display.js
+++ b/third_party/closure_compiler/externs/system_display.js
@@ -128,7 +128,8 @@
  *   workArea: !chrome.system.display.Bounds,
  *   modes: !Array<!chrome.system.display.DisplayMode>,
  *   hasTouchSupport: boolean,
- *   hasAccelerometerSupport: boolean
+ *   hasAccelerometerSupport: boolean,
+ *   displayZoomFactor: number
  * }}
  * @see https://developer.chrome.com/extensions/system.display#type-DisplayUnitInfo
  */
@@ -143,7 +144,8 @@
  *   rotation: (number|undefined),
  *   boundsOriginX: (number|undefined),
  *   boundsOriginY: (number|undefined),
- *   displayMode: (!chrome.system.display.DisplayMode|undefined)
+ *   displayMode: (!chrome.system.display.DisplayMode|undefined),
+ *   displayZoomFactor: (number|undefined)
  * }}
  * @see https://developer.chrome.com/extensions/system.display#type-DisplayProperties
  */
diff --git a/third_party/libaddressinput/chromium/resources/address_input_strings_cs.xtb b/third_party/libaddressinput/chromium/resources/address_input_strings_cs.xtb
index e3273f3c..cbfb63a 100644
--- a/third_party/libaddressinput/chromium/resources/address_input_strings_cs.xtb
+++ b/third_party/libaddressinput/chromium/resources/address_input_strings_cs.xtb
@@ -1,18 +1,18 @@
 <?xml version="1.0" ?>
 <!DOCTYPE translationbundle>
 <translationbundle lang="cs">
-<translation id="1340068511406764697">Je třeba zadat poštovní směrovací číslo, například <ph name="EXAMPLE" />. Neznáte svoje poštovní směrovací číslo? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
+<translation id="1340068511406764697">Zadejte poštovní směrovací číslo, například <ph name="EXAMPLE" />. Neznáte svoje poštovní směrovací číslo? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
 <translation id="2053553514270667976">PSČ</translation>
 <translation id="2096368010154057602">Oddělení</translation>
 <translation id="2577522251608256362">Čtvrť</translation>
-<translation id="3050787670591910834">Je třeba zadat poštovní směrovací číslo, například <ph name="EXAMPLE" />.</translation>
+<translation id="3050787670591910834">Zadejte poštovní směrovací číslo, například <ph name="EXAMPLE" />.</translation>
 <translation id="3174168572213147020">Ostrov</translation>
 <translation id="3713769522066937702">Tento formát kódu ZIP není platný. Příklad platného kódu ZIP: <ph name="EXAMPLE" />. Neznáte svůj kód ZIP? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
 <translation id="3882422586004212847">Tento formát poštovního směrovacího čísla není platný. Příklad platného poštovního směrovacího čísla: <ph name="EXAMPLE" />.</translation>
 <translation id="3885155851504623709">Okrsek</translation>
 <translation id="43113324827158664">Toto pole nesmí zůstat prázdné.</translation>
 <translation id="4376888869070172068">Tento formát poštovního kódu nebyl rozpoznán.</translation>
-<translation id="4518701284698680367">Je třeba zadat kód ZIP, například <ph name="EXAMPLE" />. Neznáte svůj kód ZIP? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
+<translation id="4518701284698680367">Zadejte kód ZIP, například <ph name="EXAMPLE" />. Neznáte svůj kód ZIP? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
 <translation id="5089810972385038852">Stát/kraj</translation>
 <translation id="5095208057601539847">Provincie</translation>
 <translation id="5327248766486351172">Název</translation>
@@ -43,5 +43,5 @@
 <translation id="8449204988444194299">Sídlo pošty</translation>
 <translation id="8471101563037901452">Toto poštovní směrovací číslo neodpovídá zbytku této adresy. Neznáte svoje poštovní směrovací číslo? Vyhledejte ho <ph name="BEGIN_LINK" />zde<ph name="END_LINK" />.</translation>
 <translation id="9104066683700680171">Poštovní kód se zřejmě neshoduje se zbytkem adresy.</translation>
-<translation id="9207002871037636573">Je třeba zadat kód ZIP, například <ph name="EXAMPLE" />.</translation>
+<translation id="9207002871037636573">Zadejte kód ZIP, například <ph name="EXAMPLE" />.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/third_party/libjingle_xmpp/xmpp/xmppengineimpl_iq.cc b/third_party/libjingle_xmpp/xmpp/xmppengineimpl_iq.cc
index e206678b..27ac946 100644
--- a/third_party/libjingle_xmpp/xmpp/xmppengineimpl_iq.cc
+++ b/third_party/libjingle_xmpp/xmpp/xmppengineimpl_iq.cc
@@ -16,20 +16,16 @@
 namespace buzz {
 
 class XmppIqEntry {
-  XmppIqEntry(const std::string & id, const std::string & to,
-               XmppEngine * pxce, XmppIqHandler * iq_handler) :
-    id_(id),
-    to_(to),
-    engine_(pxce),
-    iq_handler_(iq_handler) {
-  }
+  XmppIqEntry(const std::string& id,
+              const std::string& to,
+              XmppIqHandler* iq_handler)
+      : id_(id), to_(to), iq_handler_(iq_handler) {}
 
-private:
+ private:
   friend class XmppEngineImpl;
 
   const std::string id_;
   const std::string to_;
-  XmppEngine * const engine_;
   XmppIqHandler * const iq_handler_;
 };
 
@@ -52,9 +48,7 @@
     return XMPP_RETURN_BADARGUMENT;
   const std::string& id = element->Attr(QN_ID);
 
-  XmppIqEntry * iq_entry = new XmppIqEntry(id,
-                                              element->Attr(QN_TO),
-                                              this, iq_handler);
+  XmppIqEntry* iq_entry = new XmppIqEntry(id, element->Attr(QN_TO), iq_handler);
   iq_entries_->push_back(iq_entry);
   SendStanza(element);
 
diff --git a/third_party/libxml/chromium/libxml_utils.cc b/third_party/libxml/chromium/libxml_utils.cc
index 28f0671..c0e542b0 100644
--- a/third_party/libxml/chromium/libxml_utils.cc
+++ b/third_party/libxml/chromium/libxml_utils.cc
@@ -73,8 +73,7 @@
 }
 
 bool XmlReader::Load(const std::string& input) {
-  const int kParseOptions = XML_PARSE_RECOVER |  // recover on errors
-                             XML_PARSE_NONET;    // forbid network access
+  const int kParseOptions = XML_PARSE_NONET;  // forbid network access
   // TODO(evanm): Verify it's OK to pass NULL for the URL and encoding.
   // The libxml code allows for these, but it's unclear what effect is has.
   reader_ = xmlReaderForMemory(input.data(), static_cast<int>(input.size()),
@@ -83,8 +82,7 @@
 }
 
 bool XmlReader::LoadFile(const std::string& file_path) {
-  const int kParseOptions = XML_PARSE_RECOVER |  // recover on errors
-                            XML_PARSE_NONET;     // forbid network access
+  const int kParseOptions = XML_PARSE_NONET;  // forbid network access
   reader_ = xmlReaderForFile(file_path.c_str(), NULL, kParseOptions);
   return reader_ != NULL;
 }
diff --git a/tools/cfi/blacklist.txt b/tools/cfi/blacklist.txt
index 2e6a656..a9f7aa4 100644
--- a/tools/cfi/blacklist.txt
+++ b/tools/cfi/blacklist.txt
@@ -153,7 +153,7 @@
 
 # Calls to auto-generated stubs by generate_library_loader.py
 src:*device/udev_linux/udev1_loader.cc
-src:*net/proxy/proxy_config_service_linux.cc
+src:*net/proxy_resolution/proxy_config_service_linux.cc
 
 # Calls to auto-generated stubs by ui/gl/generate_bindings.py
 src:*ui/gl/gl_bindings_autogen_*
diff --git a/tools/clang/move_raw/CMakeLists.txt b/tools/clang/move_raw/CMakeLists.txt
deleted file mode 100644
index 3375a58..0000000
--- a/tools/clang/move_raw/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-set(LLVM_LINK_COMPONENTS
-  BitReader
-  MCParser
-  Option
-  X86AsmParser
-  X86CodeGen
-  )
-
-add_llvm_executable(move_raw
-  MoveRaw.cpp
-  )
-
-target_link_libraries(move_raw
-  clangAST
-  clangASTMatchers
-  clangAnalysis
-  clangBasic
-  clangDriver
-  clangEdit
-  clangFrontend
-  clangLex
-  clangParse
-  clangSema
-  clangSerialization
-  clangTooling
-  )
-
-cr_install(TARGETS move_raw RUNTIME DESTINATION bin)
diff --git a/tools/clang/move_raw/MoveRaw.cpp b/tools/clang/move_raw/MoveRaw.cpp
deleted file mode 100644
index 516b5075..0000000
--- a/tools/clang/move_raw/MoveRaw.cpp
+++ /dev/null
@@ -1,97 +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.
-//
-// Clang tool to find where std::move is called on a raw pointer.
-// Calling std::move on a raw pointer has no useful effect and is likely a
-// sign of an error (e.g., mistaking a raw pointer for a smart pointer).
-// TODO(crbug.com/731577): Make this a clang-tidy check instead.
-
-#include <memory>
-#include <set>
-#include <string>
-
-#include "clang/AST/ASTContext.h"
-#include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/ASTMatchers/ASTMatchers.h"
-#include "clang/ASTMatchers/ASTMatchersMacros.h"
-#include "clang/Basic/SourceManager.h"
-#include "clang/Frontend/FrontendActions.h"
-#include "clang/Lex/Lexer.h"
-#include "clang/Tooling/CommonOptionsParser.h"
-#include "clang/Tooling/Refactoring.h"
-#include "clang/Tooling/Tooling.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/TargetSelect.h"
-
-using namespace clang::ast_matchers;
-using clang::tooling::CommonOptionsParser;
-
-namespace {
-
-class MoveCallCollector : public MatchFinder::MatchCallback {
- public:
-  explicit MoveCallCollector(
-      std::set<clang::tooling::Replacement>* replacements)
-      : replacements_(replacements) {}
-  virtual void run(const MatchFinder::MatchResult& result) override;
-
- private:
-  std::set<clang::tooling::Replacement>* const replacements_;
-};
-
-void MoveCallCollector::run(const MatchFinder::MatchResult& result) {
-  const clang::Expr* callsite =
-      result.Nodes.getNodeAs<clang::Expr>("move_call");
-  replacements_->insert(clang::tooling::Replacement(
-      *result.SourceManager,
-      result.SourceManager->getSpellingLoc(callsite->getLocStart()), 0,
-      "/*This tries to move a raw pointer!*/"));
-}
-
-}  // namespace
-
-static llvm::cl::extrahelp common_help(CommonOptionsParser::HelpMessage);
-
-int main(int argc, const char* argv[]) {
-  // TODO(dcheng): Clang tooling should do this itself.
-  // https://llvm.org/bugs/show_bug.cgi?id=21627
-  llvm::InitializeNativeTarget();
-  llvm::InitializeNativeTargetAsmParser();
-  llvm::cl::OptionCategory category(
-      "Catching red flags: calling std::move on raw pointers");
-  CommonOptionsParser options(argc, argv, category);
-  clang::tooling::ClangTool tool(options.getCompilations(),
-                                 options.getSourcePathList());
-
-  MatchFinder match_finder;
-  std::set<clang::tooling::Replacement> replacements;
-
-  StatementMatcher move_on_raw_matcher =
-      callExpr(argumentCountIs(1), callee(functionDecl(hasName("::std::move"))),
-               hasArgument(0, hasType(pointerType())))
-          .bind("move_call");
-  MoveCallCollector callback(&replacements);
-  match_finder.addMatcher(move_on_raw_matcher, &callback);
-
-  std::unique_ptr<clang::tooling::FrontendActionFactory> factory =
-      clang::tooling::newFrontendActionFactory(&match_finder);
-  int result = tool.run(factory.get());
-  if (result != 0)
-    return result;
-
-  if (replacements.empty())
-    return 0;
-
-  // Serialization format is documented in tools/clang/scripts/run_tool.py
-  llvm::outs() << "==== BEGIN EDITS ====\n";
-  for (const auto& r : replacements) {
-    std::string replacement_text = r.getReplacementText().str();
-    std::replace(replacement_text.begin(), replacement_text.end(), '\n', '\0');
-    llvm::outs() << "r:::" << r.getFilePath() << ":::" << r.getOffset()
-                 << ":::" << r.getLength() << ":::" << replacement_text << "\n";
-  }
-  llvm::outs() << "==== END EDITS ====\n";
-
-  return 0;
-}
diff --git a/tools/clang/move_raw/tests/test-expected.cc b/tools/clang/move_raw/tests/test-expected.cc
deleted file mode 100644
index 1432d33a..0000000
--- a/tools/clang/move_raw/tests/test-expected.cc
+++ /dev/null
@@ -1,40 +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.
-
-namespace std {
-
-// This is the move that should be flagged. Representes the unary std::move.
-template <typename T>
-T move(T t) {
-  return t;
-}
-
-// This represents the algorithm std::move, it should not be flagged.
-template <class InputIt, class OutputIt>
-OutputIt move(InputIt first, InputIt last, OutputIt d_first) {
-  return d_first;
-}
-
-}  // namespace std
-
-// This represents some non-std move. It should not be flagged.
-template <typename T>
-T move(T t) {
-  return t;
-}
-
-void Test() {
-  int x = 3;
-
-  // Should not be flagged: x is not a pointer.
-  int y = std::move(x);
-
-  int* p = &x;
-
-  // Calling std::move on a raw pointer should be flagged.
-  int* q = /*This tries to move a raw pointer!*/ std::move(p);
-
-  // Calling non-std move should not be flagged.
-  q = move(p);
-}
diff --git a/tools/clang/move_raw/tests/test-original.cc b/tools/clang/move_raw/tests/test-original.cc
deleted file mode 100644
index 0b3b5a7..0000000
--- a/tools/clang/move_raw/tests/test-original.cc
+++ /dev/null
@@ -1,40 +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.
-
-namespace std {
-
-// This is the move that should be flagged. Representes the unary std::move.
-template <typename T>
-T move(T t) {
-  return t;
-}
-
-// This represents the algorithm std::move, it should not be flagged.
-template <class InputIt, class OutputIt>
-OutputIt move(InputIt first, InputIt last, OutputIt d_first) {
-  return d_first;
-}
-
-}  // namespace std
-
-// This represents some non-std move. It should not be flagged.
-template <typename T>
-T move(T t) {
-  return t;
-}
-
-void Test() {
-  int x = 3;
-
-  // Should not be flagged: x is not a pointer.
-  int y = std::move(x);
-
-  int* p = &x;
-
-  // Calling std::move on a raw pointer should be flagged.
-  int* q = std::move(p);
-
-  // Calling non-std move should not be flagged.
-  q = move(p);
-}
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 49fc076..ee142a6 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -9299,6 +9299,9 @@
 </enum>
 
 <enum name="DomainBoundCerts.GetCertResult">
+  <obsolete>
+    Removed January 2018.
+  </obsolete>
   <int value="0" label="SYNC_SUCCESS"/>
   <int value="1" label="ASYNC_SUCCESS"/>
   <int value="2" label="ASYNC_CANCELLED"/>
@@ -26112,6 +26115,7 @@
   <int value="244697230" label="enable-theme-color-in-tabbed-mode"/>
   <int value="259021228" label="OffMainThreadFetch:disabled"/>
   <int value="262382944" label="GuestViewCrossProcessFrames:disabled"/>
+  <int value="266322815" label="ChromeModernDesign:disabled"/>
   <int value="266702296" label="disable-plugin-power-saver"/>
   <int value="270267831" label="enable-scripts-require-action"/>
   <int value="272631627" label="BookmarkAppsMac:enabled"/>
@@ -26341,6 +26345,7 @@
   <int value="854730848" label="disable-app-info-dialog-mac"/>
   <int value="855746780" label="disable-physical-keyboard-autocorrect"/>
   <int value="857445869" label="enable-captive-portal-bypass-proxy"/>
+  <int value="860336036" label="ChromeModernDesign:enabled"/>
   <int value="862453793" label="TranslateUI2016Q2:enabled"/>
   <int value="867512869" label="mark-non-secure-as"/>
   <int value="869531646" label="enable-session-crashed-bubble"/>
@@ -27157,6 +27162,7 @@
   <int value="0" label="Fetch succeeded"/>
   <int value="1" label="Fetch failed because of empty URL"/>
   <int value="2" label="Fetch failed (unspecified reason)"/>
+  <int value="3" label="Fetch failed because the document origin is unique"/>
 </enum>
 
 <enum name="MappedCSSProperties">
@@ -32717,7 +32723,7 @@
   </obsolete>
   <summary>
     Result for PAC script experiment as defined in
-    net/proxy/proxy_resolver_v8_tracing.h
+    net/proxy_resolution/proxy_resolver_v8_tracing.h
   </summary>
   <int value="0" label="SKIPPED_FALLBACK_BLOCKING_DNS"/>
   <int value="1" label="SUCCESS"/>
@@ -35986,6 +35992,7 @@
   <int value="12" label="Error: Write queue out of sync"/>
   <int value="13" label="Error: Device lost"/>
   <int value="14" label="Error: Connection dropped"/>
+  <int value="15" label="Timeout: Waiting for message to send"/>
 </enum>
 
 <enum name="ProximityAuth_BluetoothGattConnectionResult">
@@ -36417,8 +36424,10 @@
   <int value="3" label="TOO_MANY_CHANGES"/>
   <int value="4" label="SUCCESS"/>
   <int value="5" label="NON_MIGRATABLE_STREAM"/>
-  <int value="6" label="DISABLED"/>
-  <int value="7" label="MIGRATION_STATUS_NO_ALTERNATE_NETWORK"/>
+  <int value="6" label="NOT_ENABLED"/>
+  <int value="7" label="NO_ALTERNATE_NETWORK"/>
+  <int value="8" label="ON_PATH_DEGRADING_DISABLED"/>
+  <int value="9" label="DISABLED_BY_CONFIG"/>
 </enum>
 
 <enum name="QuicDisabledReason">
@@ -36557,6 +36566,9 @@
   <int value="95" label="STREAM_SEQUENCER_INVALID_STATE"/>
   <int value="96" label="TOO_MANY_SESSIONS_ON_SERVER"/>
   <int value="97" label="HEADERS_STREAM_DATA_DECOMPRESS_FAILURE"/>
+  <int value="98" label="STREAM_LENGTH_OVERFLOW"/>
+  <int value="99" label="CONNECTION_MIGRATION_DISABLED_BY_CONFIG"/>
+  <int value="100" label="CONNECTION_MIGRATION_INTERNAL_ERROR"/>
 </enum>
 
 <enum name="QuicHandshakeFailureReason">
@@ -37036,6 +37048,7 @@
   <int value="26" label="InternalTest"/>
   <int value="27" label="InternalWebCrypto"/>
   <int value="28" label="InternalIndexedDB"/>
+  <int value="29" label="InternalMedia"/>
 </enum>
 
 <enum name="RendererSchedulerThreadType">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index b385f8d..b7ea9b56 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -781,6 +781,9 @@
 
 <histogram name="Android.ChromeHome.Promo.Result.Menu"
     enum="ChromeHomePromoResult">
+  <obsolete>
+    Deprecated 01/2018 with the removal of the first version of Chrome Home.
+  </obsolete>
   <owner>mdjones@chromium.org</owner>
   <owner>twellington@chromium.org</owner>
   <summary>
@@ -791,6 +794,9 @@
 
 <histogram name="Android.ChromeHome.Promo.Result.NTP"
     enum="ChromeHomePromoResult">
+  <obsolete>
+    Deprecated 01/2018 with the removal of the first version of Chrome Home.
+  </obsolete>
   <owner>mdjones@chromium.org</owner>
   <owner>twellington@chromium.org</owner>
   <summary>
@@ -801,6 +807,9 @@
 
 <histogram name="Android.ChromeHome.Promo.Result.Startup"
     enum="ChromeHomePromoResult">
+  <obsolete>
+    Deprecated 01/2018 with the removal of the first version of Chrome Home.
+  </obsolete>
   <owner>mdjones@chromium.org</owner>
   <owner>twellington@chromium.org</owner>
   <summary>
@@ -811,6 +820,9 @@
 
 <histogram name="Android.ChromeHome.Promo.ShowReason"
     enum="ChromeHomePromoShowReason">
+  <obsolete>
+    Deprecated 01/2018 with the removal of the first version of Chrome Home.
+  </obsolete>
   <owner>mdjones@chromium.org</owner>
   <owner>twellington@chromium.org</owner>
   <summary>The reason the Chrome Home promo was shown.</summary>
@@ -16627,6 +16639,9 @@
 </histogram>
 
 <histogram name="DomainBoundCerts.DBLoadedCount">
+  <obsolete>
+    Removed January 2018.
+  </obsolete>
   <owner>mattm@chromium.org</owner>
   <summary>Number of certs loaded from domain bound cert database.</summary>
 </histogram>
@@ -16641,6 +16656,9 @@
 </histogram>
 
 <histogram name="DomainBoundCerts.DBLoadTime" units="ms">
+  <obsolete>
+    Removed January 2018.
+  </obsolete>
   <owner>mattm@chromium.org</owner>
   <summary>Time spent loading domain bound cert database.</summary>
 </histogram>
@@ -16703,6 +16721,9 @@
 
 <histogram name="DomainBoundCerts.GetDomainBoundCertResult"
     enum="DomainBoundCerts.GetCertResult">
+  <obsolete>
+    Removed January 2018.
+  </obsolete>
   <owner>mattm@chromium.org</owner>
   <summary>Result of GetDomainBoundCert function.</summary>
 </histogram>
@@ -16716,6 +16737,9 @@
 </histogram>
 
 <histogram name="DomainBoundCerts.Support" enum="DomainBoundCerts.Support">
+  <obsolete>
+    Removed January 2018.
+  </obsolete>
   <owner>mattm@chromium.org</owner>
   <summary>
     Counts of SSL client sockets broken down by support for Domain Bound
@@ -21878,6 +21902,17 @@
   </summary>
 </histogram>
 
+<histogram name="Event.Touch.TouchAdjustment.AdjustDistance" units="pixels">
+  <owner>eirage@chromium.org</owner>
+  <summary>
+    Records the euclidean distance in dips from a gesture event's original tap
+    center to its adjusted touch point. 0 if not adjusted. This only records
+    GestureTap events and GestureLongPress events.
+
+    Team: input-dev@chromium.org.
+  </summary>
+</histogram>
+
 <histogram name="Event.Touch.TouchDispositionsAfterPageLoad"
     enum="TouchEventDispatchResultType">
   <obsolete>
@@ -71394,6 +71429,19 @@
   </summary>
 </histogram>
 
+<histogram name="RendererScheduler.TaskCPUDurationPerTaskType.DedicatedWorker"
+    enum="RendererSchedulerTaskType" units="ms">
+  <owner>altimin@chromium.org</owner>
+  <summary>
+    Total duration of dedicated worker tasks (thread time) split by per thread
+    type.  Reported each time when task is completed and current accumulated
+    duration is longer than 1ms.
+
+    Note that this metric discards tasks longer than 30 seconds because they are
+    considered to be a result of measurement glitch.
+  </summary>
+</histogram>
+
 <histogram name="RendererScheduler.TaskCPUDurationPerThreadType"
     enum="RendererSchedulerThreadType" units="ms">
   <owner>altimin@chromium.org</owner>
@@ -71488,6 +71536,19 @@
   </summary>
 </histogram>
 
+<histogram name="RendererScheduler.TaskDurationPerTaskType.DedicatedWorker"
+    enum="RendererSchedulerTaskType" units="ms">
+  <owner>altimin@chromium.org</owner>
+  <summary>
+    Total duration of dedicated worker tasks (wall time) split by per thread
+    type.  Reported each time when task is completed and current accumulated
+    duration is longer than 1ms.
+
+    Note that this metric discards tasks longer than 30 seconds because they are
+    considered to be a result of measurement glitch.
+  </summary>
+</histogram>
+
 <histogram name="RendererScheduler.TaskDurationPerThreadType"
     enum="RendererSchedulerThreadType" units="ms">
   <owner>altimin@chromium.org</owner>
diff --git a/tools/metrics/ukm/ukm.xml b/tools/metrics/ukm/ukm.xml
index 8ed2946..dea6830 100644
--- a/tools/metrics/ukm/ukm.xml
+++ b/tools/metrics/ukm/ukm.xml
@@ -2080,12 +2080,24 @@
     Collects information about a browser or app window to associate with the
     TabManager.TabMetrics entries for tabs in that window.
   </summary>
+  <metric name="IsActive">
+    <summary>
+      Whether the window is the active (frontmost) window.
+    </summary>
+  </metric>
   <metric name="ShowState">
     <summary>
       Enumeration of the window show state, such as fullscreen or minimized.
       Values are enumerated in metrics::WindowMetricsEvent::ShowState.
     </summary>
   </metric>
+  <metric name="TabCount">
+    <summary>
+      Number of tabs in the tab strip. Rounded down to the nearest exponential
+      bucket (with a bucket spacing factor of 1.5). Will be 1 for windows with
+      only one top-level WebContents, such as app windows.
+    </summary>
+  </metric>
   <metric name="Type">
     <summary>
       Enumeration for the type of the window. Values are enumerated in
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml
index ba10521e..2a01af1 100644
--- a/tools/traffic_annotation/summary/annotations.xml
+++ b/tools/traffic_annotation/summary/annotations.xml
@@ -165,7 +165,7 @@
  <item id="privet_http_impl" hash_code="71251498" type="0" content_hash_code="107348604" os_list="linux,windows" file_path="chrome/browser/printing/cloud_print/privet_http_impl.cc"/>
  <item id="profile_avatar" hash_code="51164680" type="0" content_hash_code="113550845" os_list="linux,windows" file_path="chrome/browser/profiles/profile_avatar_downloader.cc"/>
  <item id="profile_resetter_upload" hash_code="105330607" type="0" content_hash_code="129329171" os_list="linux,windows" file_path="chrome/browser/profile_resetter/reset_report_uploader.cc"/>
- <item id="proxy_script_fetcher" hash_code="37531401" type="0" content_hash_code="31866133" os_list="linux,windows" file_path="net/proxy/pac_file_fetcher_impl.cc"/>
+ <item id="proxy_script_fetcher" hash_code="37531401" type="0" content_hash_code="31866133" os_list="linux,windows" file_path="net/proxy_resolution/pac_file_fetcher_impl.cc"/>
  <item id="ranker_url_fetcher" hash_code="95682324" type="0" content_hash_code="45958626" os_list="linux,windows" file_path="components/assist_ranker/ranker_url_fetcher.cc"/>
  <item id="rappor_report" hash_code="44606780" type="0" content_hash_code="111287826" os_list="linux,windows" file_path="components/rappor/log_uploader.cc"/>
  <item id="refresh_token_annotation_request" hash_code="7433837" type="1" second_id="29188932" deprecated="2018-01-17" content_hash_code="137103383" file_path=""/>
diff --git a/ui/app_list/BUILD.gn b/ui/app_list/BUILD.gn
index e985be0..53bce0f 100644
--- a/ui/app_list/BUILD.gn
+++ b/ui/app_list/BUILD.gn
@@ -63,8 +63,9 @@
     "views/image_shadow_animator.h",
     "views/indicator_chip_view.cc",
     "views/indicator_chip_view.h",
-    "views/page_switcher.cc",
     "views/page_switcher.h",
+    "views/page_switcher_vertical.cc",
+    "views/page_switcher_vertical.h",
     "views/pulsing_block_view.cc",
     "views/pulsing_block_view.h",
     "views/search_box_view.cc",
diff --git a/ui/app_list/app_list_constants.cc b/ui/app_list/app_list_constants.cc
index 1091cfc7..f6746fc 100644
--- a/ui/app_list/app_list_constants.cc
+++ b/ui/app_list/app_list_constants.cc
@@ -57,6 +57,7 @@
 // Color of the folder bubble shadow.
 const SkColor kFolderShadowColor = SkColorSetRGB(0xBF, 0xBF, 0xBF);
 const float kFolderBubbleOpacity = 0.12f;
+const int kFolderBackgroundBubbleRadius = 288;
 
 const SkColor kCardBackgroundColor = SkColorSetRGB(0xFA, 0xFA, 0xFC);
 
@@ -165,11 +166,8 @@
 // The height/width of the shelf from the bottom/side of the screen.
 const int kShelfSize = 48;
 
-// Max pages allowed in a folder.
-const size_t kMaxFolderPages = 3;
-
-// Max items per page allowed in a folder.
-const size_t kMaxFolderItemsPerPage = 16;
+// Max items allowed in a folder.
+const size_t kMaxFolderItems = 20;
 
 // Maximum length of the folder name in chars.
 const size_t kMaxFolderNameChars = 80;
@@ -178,11 +176,6 @@
 const ui::ResourceBundle::FontStyle kItemTextFontStyle =
     ui::ResourceBundle::SmallFont;
 
-// Range of the height of centerline above screen bottom that all apps should
-// change opacity. NOTE: this is used to change page switcher's opacity as well.
-const float kAllAppsOpacityStartPx = 8.0f;
-const float kAllAppsOpacityEndPx = 144.0f;
-
 // The UMA histogram that logs usage of suggested and regular apps.
 const char kAppListAppLaunched[] = "Apps.AppListAppLaunched";
 
diff --git a/ui/app_list/app_list_constants.h b/ui/app_list/app_list_constants.h
index ea0393fa..58f3b98 100644
--- a/ui/app_list/app_list_constants.h
+++ b/ui/app_list/app_list_constants.h
@@ -55,6 +55,8 @@
 APP_LIST_EXPORT extern const SkColor kFolderShadowColor;
 APP_LIST_EXPORT extern const float kFolderBubbleOpacity;
 
+APP_LIST_EXPORT extern const int kFolderBackgroundBubbleRadius;
+
 APP_LIST_EXPORT extern const SkColor kCardBackgroundColor;
 
 APP_LIST_EXPORT extern const int kPageTransitionDurationInMs;
@@ -105,15 +107,12 @@
 APP_LIST_EXPORT extern const int kPeekingAppListHeight;
 APP_LIST_EXPORT extern const int kShelfSize;
 
-APP_LIST_EXPORT extern const size_t kMaxFolderPages;
-APP_LIST_EXPORT extern const size_t kMaxFolderItemsPerPage;
+APP_LIST_EXPORT extern const size_t kMaxFolderItems;
+APP_LIST_EXPORT extern const size_t kMaxFolderItems;
 APP_LIST_EXPORT extern const size_t kMaxFolderNameChars;
 
 APP_LIST_EXPORT extern const ui::ResourceBundle::FontStyle kItemTextFontStyle;
 
-APP_LIST_EXPORT extern const float kAllAppsOpacityStartPx;
-APP_LIST_EXPORT extern const float kAllAppsOpacityEndPx;
-
 // The different ways that the app list can transition from PEEKING to
 // FULLSCREEN_ALL_APPS. These values are written to logs.  New enum
 // values can be added, but existing enums must never be renumbered or deleted
diff --git a/ui/app_list/views/app_list_folder_view.cc b/ui/app_list/views/app_list_folder_view.cc
index 36a27e8..e177d99 100644
--- a/ui/app_list/views/app_list_folder_view.cc
+++ b/ui/app_list/views/app_list_folder_view.cc
@@ -10,8 +10,6 @@
 #include "ash/app_list/model/app_list_model.h"
 #include "ui/accessibility/ax_node_data.h"
 #include "ui/app_list/app_list_constants.h"
-#include "ui/app_list/app_list_features.h"
-#include "ui/app_list/pagination_model.h"
 #include "ui/app_list/views/app_list_item_view.h"
 #include "ui/app_list/views/app_list_main_view.h"
 #include "ui/app_list/views/apps_container_view.h"
@@ -19,14 +17,11 @@
 #include "ui/app_list/views/contents_view.h"
 #include "ui/app_list/views/folder_background_view.h"
 #include "ui/app_list/views/folder_header_view.h"
-#include "ui/app_list/views/page_switcher.h"
 #include "ui/app_list/views/search_box_view.h"
 #include "ui/compositor/scoped_layer_animation_settings.h"
 #include "ui/events/event.h"
-#include "ui/gfx/canvas.h"
 #include "ui/gfx/geometry/rect_conversions.h"
 #include "ui/strings/grit/ui_strings.h"
-#include "ui/views/background.h"
 #include "ui/views/controls/textfield/textfield.h"
 #include "ui/views/view_model.h"
 #include "ui/views/view_model_utils.h"
@@ -35,37 +30,18 @@
 
 namespace {
 
-constexpr int kFolderBackgroundCornerRadius = 4;
-constexpr int kItemGridsBottomPadding = 24;
-constexpr int kFolderPadding = 12;
+// The preferred width/height for AppListFolderView.
+constexpr int kAppsFolderPreferredWidth = 576;
+constexpr int kAppsFolderPreferredHeight = 504;
 
 // Indexes of interesting views in ViewModel of AppListFolderView.
-constexpr int kIndexChildItems = 0;
-constexpr int kIndexFolderHeader = 1;
-constexpr int kIndexPageSwitcher = 2;
+const int kIndexFolderHeader = 0;
+const int kIndexChildItems = 1;
 
-// A background with rounded corner.
-class FolderBackground : public views::Background {
- public:
-  FolderBackground(SkColor color, int corner_radius)
-      : color_(color), corner_radius_(corner_radius) {}
-  ~FolderBackground() override = default;
-
- private:
-  // views::Background overrides:
-  void Paint(gfx::Canvas* canvas, views::View* view) const override {
-    gfx::Rect bounds = view->GetContentsBounds();
-    cc::PaintFlags flags;
-    flags.setAntiAlias(true);
-    flags.setColor(color_);
-    canvas->DrawRoundRect(bounds, corner_radius_, flags);
-  }
-
-  const SkColor color_;
-  const int corner_radius_;
-
-  DISALLOW_COPY_AND_ASSIGN(FolderBackground);
-};
+// Threshold for the distance from the center of the item to the circle of the
+// folder container ink bubble, beyond which, the item is considered dragged
+// out of the folder boundary.
+const int kOutOfFolderContainerBubbleDelta = 30;
 
 }  // namespace
 
@@ -79,23 +55,20 @@
       model_(model),
       folder_item_(NULL),
       hide_for_reparent_(false) {
+  AddChildView(folder_header_view_);
+  view_model_->Add(folder_header_view_, kIndexFolderHeader);
+
   items_grid_view_ =
       new AppsGridView(app_list_main_view_->contents_view(), this);
+  items_grid_view_->SetLayout(
+      container_view->apps_grid_view()->cols(),
+      container_view->apps_grid_view()->rows_per_page());
   items_grid_view_->SetModel(model);
   AddChildView(items_grid_view_);
   view_model_->Add(items_grid_view_, kIndexChildItems);
 
-  AddChildView(folder_header_view_);
-  view_model_->Add(folder_header_view_, kIndexFolderHeader);
-
-  page_switcher_ = new PageSwitcher(items_grid_view_->pagination_model(),
-                                    false /* vertical */);
-  AddChildView(page_switcher_);
-  view_model_->Add(page_switcher_, kIndexPageSwitcher);
-
   SetPaintToLayer();
-  SetBackground(std::make_unique<FolderBackground>(
-      kCardBackgroundColor, kFolderBackgroundCornerRadius));
+  layer()->SetFillsBoundsOpaquely(false);
 
   model_->AddObserver(this);
 }
@@ -125,18 +98,14 @@
   // Stop any previous animation.
   layer()->GetAnimator()->StopAnimating();
 
-  if (show) {
-    // Hide the top items temporarily if showing the view for opening the
-    // folder.
+  // Hide the top items temporarily if showing the view for opening the folder.
+  if (show)
     items_grid_view_->SetTopItemViewsVisible(false);
 
-    // Reset page if showing the view.
-    items_grid_view_->pagination_model()->SelectPage(0, false);
-  }
-
   // Set initial state.
   layer()->SetOpacity(show ? 0.0f : 1.0f);
   SetVisible(true);
+  UpdateFolderNameVisibility(true);
 
   ui::ScopedLayerAnimationSettings animation(layer()->GetAnimator());
   animation.SetTweenType(show ? kFolderFadeInTweenType
@@ -146,13 +115,11 @@
       show ? kFolderTransitionInDurationMs : kFolderTransitionOutDurationMs));
 
   layer()->SetOpacity(show ? 1.0f : 0.0f);
+  app_list_main_view_->search_box_view()->ShowBackOrGoogleIcon(show);
 }
 
 gfx::Size AppListFolderView::CalculatePreferredSize() const {
-  gfx::Size size = items_grid_view_->GetTileGridSizeWithoutPadding();
-  size.Enlarge(0, kItemGridsBottomPadding +
-                      folder_header_view_->GetPreferredSize().height());
-  size.Enlarge(kFolderPadding * 2, kFolderPadding * 2);
+  gfx::Size size(kAppsFolderPreferredWidth, kAppsFolderPreferredHeight);
   return size;
 }
 
@@ -201,30 +168,14 @@
   if (rect.IsEmpty())
     return;
 
-  rect.Inset(kFolderPadding, kFolderPadding);
-
-  // Calculate bounds for items grid view.
-  gfx::Rect grid_frame(rect);
-  grid_frame.Inset(items_grid_view_->GetTilePadding());
-  grid_frame.set_height(items_grid_view_->GetPreferredSize().height());
-  view_model_->set_ideal_bounds(kIndexChildItems, grid_frame);
-
-  // Calculate bounds for folder header view..
   gfx::Rect header_frame(rect);
-  header_frame.set_y(grid_frame.bottom() +
-                     items_grid_view_->GetTilePadding().bottom() +
-                     kItemGridsBottomPadding);
-  header_frame.set_height(folder_header_view_->GetPreferredSize().height());
+  gfx::Size size = folder_header_view_->GetPreferredSize();
+  header_frame.set_height(size.height());
   view_model_->set_ideal_bounds(kIndexFolderHeader, header_frame);
 
-  // Calculate bounds for page_switcher.
-  gfx::Rect page_switcher_frame(rect);
-  gfx::Size page_switcher_size = page_switcher_->GetPreferredSize();
-  page_switcher_frame.set_x(page_switcher_frame.right() -
-                            page_switcher_size.width());
-  page_switcher_frame.set_y(header_frame.y());
-  page_switcher_frame.set_size(page_switcher_size);
-  view_model_->set_ideal_bounds(kIndexPageSwitcher, page_switcher_frame);
+  gfx::Rect grid_frame(rect);
+  grid_frame.Subtract(header_frame);
+  view_model_->set_ideal_bounds(kIndexChildItems, grid_frame);
 }
 
 void AppListFolderView::StartSetupDragInRootLevelAppsGridView(
@@ -259,9 +210,36 @@
   return to_folder;
 }
 
+void AppListFolderView::UpdateFolderViewBackground(bool show_bubble) {
+  if (hide_for_reparent_)
+    return;
+
+  // Before showing the folder container inking bubble, hide the folder name.
+  if (show_bubble)
+    UpdateFolderNameVisibility(false);
+
+  container_view_->folder_background_view()->UpdateFolderContainerBubble(
+      show_bubble ? FolderBackgroundView::SHOW_BUBBLE
+                  : FolderBackgroundView::HIDE_BUBBLE);
+}
+
+void AppListFolderView::UpdateFolderNameVisibility(bool visible) {
+  folder_header_view_->UpdateFolderNameVisibility(visible);
+}
+
+void AppListFolderView::SetBackButtonLabel(bool folder) {
+  app_list_main_view_->search_box_view()->SetBackButtonLabel(folder);
+}
+
 bool AppListFolderView::IsPointOutsideOfFolderBoundary(
     const gfx::Point& point) {
-  return !GetLocalBounds().Contains(point);
+  if (!GetLocalBounds().Contains(point))
+    return true;
+
+  gfx::Point center = GetLocalBounds().CenterPoint();
+  float delta = (point - center).Length();
+  return delta >
+         kFolderBackgroundBubbleRadius + kOutOfFolderContainerBubbleDelta;
 }
 
 // When user drags a folder item out of the folder boundary ink bubble, the
diff --git a/ui/app_list/views/app_list_folder_view.h b/ui/app_list/views/app_list_folder_view.h
index a1b9c10..6641797 100644
--- a/ui/app_list/views/app_list_folder_view.h
+++ b/ui/app_list/views/app_list_folder_view.h
@@ -27,13 +27,12 @@
 class AppListMainView;
 class AppListModel;
 class FolderHeaderView;
-class PageSwitcher;
 
-class APP_LIST_EXPORT AppListFolderView : public views::View,
-                                          public FolderHeaderViewDelegate,
-                                          public AppListModelObserver,
-                                          public ui::ImplicitAnimationObserver,
-                                          public AppsGridViewFolderDelegate {
+class AppListFolderView : public views::View,
+                          public FolderHeaderViewDelegate,
+                          public AppListModelObserver,
+                          public ui::ImplicitAnimationObserver,
+                          public AppsGridViewFolderDelegate {
  public:
   AppListFolderView(AppsContainerView* container_view,
                     AppListModel* model,
@@ -51,6 +50,9 @@
   // AppListFolderView.
   gfx::Rect GetItemIconBoundsAt(int index);
 
+  void UpdateFolderNameVisibility(bool visible);
+  void SetBackButtonLabel(bool folder);
+
   // Hides the view immediately without animation.
   void HideViewImmediately();
 
@@ -92,6 +94,7 @@
   void SetItemName(AppListFolderItem* item, const std::string& name) override;
 
   // Overridden from AppsGridViewFolderDelegate:
+  void UpdateFolderViewBackground(bool show_bubble) override;
   void ReparentItem(AppListItemView* original_drag_view,
                     const gfx::Point& drag_point_in_folder_grid,
                     bool has_native_drag) override;
@@ -108,7 +111,6 @@
   AppListMainView* app_list_main_view_;   // Not Owned.
   FolderHeaderView* folder_header_view_;  // Owned by views hierarchy.
   AppsGridView* items_grid_view_;         // Owned by the views hierarchy.
-  PageSwitcher* page_switcher_ = nullptr;  // Owned by the views hierarchy.
 
   std::unique_ptr<views::ViewModel> view_model_;
 
diff --git a/ui/app_list/views/app_list_item_view.cc b/ui/app_list/views/app_list_item_view.cc
index 33d27e1..47874df 100644
--- a/ui/app_list/views/app_list_item_view.cc
+++ b/ui/app_list/views/app_list_item_view.cc
@@ -52,12 +52,6 @@
 // 650ms.
 constexpr int kTouchLongpressDelayInMs = 300;
 
-// The color of the title for the tiles within folder.
-constexpr SkColor kFolderGridTitleColor = SK_ColorBLACK;
-
-// The color of the selected item view within folder.
-constexpr SkColor kFolderGridSelectedColor = SkColorSetARGBMacro(31, 0, 0, 0);
-
 }  // namespace
 
 // static
@@ -88,9 +82,7 @@
   title_->SetFontList(font);
   title_->SetLineHeight(font.GetHeight());
   title_->SetHorizontalAlignment(gfx::ALIGN_CENTER);
-  title_->SetEnabledColor(apps_grid_view_->is_in_folder()
-                              ? kFolderGridTitleColor
-                              : kGridTitleColor);
+  title_->SetEnabledColor(kGridTitleColor);
 
   SetTitleSubpixelAA();
 
@@ -343,8 +335,7 @@
                (rect.height() - kGridSelectedSize) / 2);
     cc::PaintFlags flags;
     flags.setAntiAlias(true);
-    flags.setColor(apps_grid_view_->is_in_folder() ? kFolderGridSelectedColor
-                                                   : kGridSelectedColor);
+    flags.setColor(kGridSelectedColor);
     flags.setStyle(cc::PaintFlags::kFill_Style);
     canvas->DrawRoundRect(gfx::RectF(rect), kGridSelectedCornerRadius, flags);
   }
diff --git a/ui/app_list/views/app_list_view.cc b/ui/app_list/views/app_list_view.cc
index 054d1c1..2e821a3 100644
--- a/ui/app_list/views/app_list_view.cc
+++ b/ui/app_list/views/app_list_view.cc
@@ -510,13 +510,7 @@
   // No-op if app list is on fullscreen all apps state and the event location is
   // within apps grid view's bounds.
   if (app_list_state_ == AppListViewState::FULLSCREEN_ALL_APPS &&
-      GetRootAppsGridView()->GetBoundsInScreen().Contains(event->location())) {
-    return;
-  }
-
-  if (GetAppsContainerView()->IsInFolderView()) {
-    // Close the folder if it is opened.
-    GetAppsContainerView()->app_list_folder_view()->CloseFolderPage();
+      GetAppsGridView()->GetBoundsInScreen().Contains(event->location())) {
     return;
   }
 
@@ -690,8 +684,11 @@
       target_state != AppListViewState::FULLSCREEN_ALL_APPS)
     return;
 
-  if (GetAppsContainerView()->IsInFolderView())
-    GetAppsContainerView()->ResetForShowApps();
+  AppsContainerView* apps_container_view =
+      app_list_main_view_->contents_view()->apps_container_view();
+
+  if (apps_container_view->IsInFolderView())
+    apps_container_view->ResetForShowApps();
 
   if (target_state == AppListViewState::PEEKING) {
     app_list_main_view_->contents_view()->SetActiveState(
@@ -704,7 +701,7 @@
     }
   } else {
     // Set timer to ignore further scroll events for this transition.
-    GetRootAppsGridView()->StartTimerToIgnoreScrollEvents();
+    GetAppsGridView()->StartTimerToIgnoreScrollEvents();
 
     app_list_main_view_->contents_view()->SetActiveState(
         AppListModel::STATE_APPS, !is_side_shelf_);
@@ -777,16 +774,10 @@
   return display::Screen::GetScreen()->GetDisplayNearestView(parent_window_);
 }
 
-AppsContainerView* AppListView::GetAppsContainerView() {
-  return app_list_main_view_->contents_view()->apps_container_view();
-}
-
-AppsGridView* AppListView::GetRootAppsGridView() {
-  return GetAppsContainerView()->apps_grid_view();
-}
-
-AppsGridView* AppListView::GetFolderAppsGridView() {
-  return GetAppsContainerView()->app_list_folder_view()->items_grid_view();
+AppsGridView* AppListView::GetAppsGridView() const {
+  return app_list_main_view_->contents_view()
+      ->apps_container_view()
+      ->apps_grid_view();
 }
 
 AppListStateTransitionSource AppListView::GetAppListStateTransitionSource(
@@ -1009,16 +1000,12 @@
     return false;
 
   // Let the Apps grid view handle the event first in FULLSCREEN_ALL_APPS.
-  if (app_list_state_ == AppListViewState::FULLSCREEN_ALL_APPS) {
-    AppsGridView* apps_grid_view = GetAppsContainerView()->IsInFolderView()
-                                       ? GetFolderAppsGridView()
-                                       : GetRootAppsGridView();
-    if (apps_grid_view->HandleScrollFromAppListView(offset, type)) {
-      // Set the scroll ignore timer to avoid processing the tail end of the
-      // stream of scroll events, which would close the view.
-      SetOrRestartScrollIgnoreTimer();
-      return true;
-    }
+  if (app_list_state_ == AppListViewState::FULLSCREEN_ALL_APPS &&
+      GetAppsGridView()->HandleScrollFromAppListView(offset, type)) {
+    // Set the scroll ignore timer to avoid processing the tail end of the
+    // stream of scroll events, which would close the view.
+    SetOrRestartScrollIgnoreTimer();
+    return true;
   }
 
   if (ShouldIgnoreScrollEvents())
@@ -1078,7 +1065,10 @@
 
   // Updates the visibility of app list items according to the change of
   // |app_list_state_|.
-  GetAppsContainerView()->UpdateControlVisibility(app_list_state_, is_in_drag_);
+  app_list_main_view_->contents_view()
+      ->apps_container_view()
+      ->apps_grid_view()
+      ->UpdateControlVisibility(app_list_state_, is_in_drag_);
 }
 
 void AppListView::StartAnimationForState(AppListViewState target_state) {
@@ -1093,7 +1083,7 @@
       target_state_y = display_height - kPeekingAppListHeight;
       break;
     case AppListViewState::HALF:
-      target_state_y = display_height - kHalfAppListHeight;
+      target_state_y = std::max(0, display_height - kHalfAppListHeight);
       break;
     case AppListViewState::CLOSED:
       // The close animation is handled by the delegate.
@@ -1206,8 +1196,8 @@
   DraggingLayout();
 }
 
-PaginationModel* AppListView::GetAppsPaginationModel() {
-  return GetRootAppsGridView()->pagination_model();
+PaginationModel* AppListView::GetAppsPaginationModel() const {
+  return GetAppsGridView()->pagination_model();
 }
 
 gfx::Rect AppListView::GetAppInfoDialogBounds() const {
@@ -1225,7 +1215,10 @@
     return;
 
   is_in_drag_ = is_in_drag;
-  GetAppsContainerView()->UpdateControlVisibility(app_list_state_, is_in_drag_);
+  app_list_main_view_->contents_view()
+      ->apps_container_view()
+      ->apps_grid_view()
+      ->UpdateControlVisibility(app_list_state_, is_in_drag_);
 }
 
 int AppListView::GetScreenBottom() {
@@ -1243,7 +1236,7 @@
 
   // Updates the opacity of the items in the app list.
   search_box_view_->UpdateOpacity();
-  GetAppsContainerView()->UpdateOpacity();
+  GetAppsGridView()->UpdateOpacity();
 
   Layout();
 }
@@ -1254,10 +1247,12 @@
 
   views::Textfield* search_box = search_box_view_->search_box();
   const bool is_search_box_focused = search_box->HasFocus();
-  const bool is_folder_header_view_focused = GetAppsContainerView()
-                                                 ->app_list_folder_view()
-                                                 ->folder_header_view()
-                                                 ->HasTextFocus();
+  const bool is_folder_header_view_focused =
+      app_list_main_view_->contents_view()
+          ->apps_container_view()
+          ->app_list_folder_view()
+          ->folder_header_view()
+          ->HasTextFocus();
   if (is_search_box_focused || is_folder_header_view_focused) {
     // Do not redirect the key event to the |search_box_| when focus is on a
     // text field.
diff --git a/ui/app_list/views/app_list_view.h b/ui/app_list/views/app_list_view.h
index 4524adf..684e8a0 100644
--- a/ui/app_list/views/app_list_view.h
+++ b/ui/app_list/views/app_list_view.h
@@ -37,7 +37,6 @@
 }
 
 namespace app_list {
-class AppsContainerView;
 class ApplicationDragAndDropHost;
 class AppListMainView;
 class AppListModel;
@@ -179,7 +178,7 @@
   }
 
   // Gets the PaginationModel owned by this view's apps grid.
-  PaginationModel* GetAppsPaginationModel();
+  PaginationModel* GetAppsPaginationModel() const;
 
   // Gets the content bounds of the app info dialog of the app list in the
   // screen coordinates.
@@ -272,14 +271,8 @@
   // Gets the display nearest to the parent window.
   display::Display GetDisplayNearestView() const;
 
-  // Gets the apps container view owned by this view.
-  AppsContainerView* GetAppsContainerView();
-
-  // Gets the root apps grid view owned by this view.
-  AppsGridView* GetRootAppsGridView();
-
-  // Gets the apps grid view within the folder view owned by this view.
-  AppsGridView* GetFolderAppsGridView();
+  // Gets the apps grid view owned by this view.
+  AppsGridView* GetAppsGridView() const;
 
   // Gets the AppListStateTransitionSource for |app_list_state_| to
   // |target_state|. If we are not interested in recording a state transition
diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc
index c090f1b..c817c77 100644
--- a/ui/app_list/views/app_list_view_unittest.cc
+++ b/ui/app_list/views/app_list_view_unittest.cc
@@ -595,12 +595,13 @@
 
   std::vector<views::View*> forward_view_list;
   forward_view_list.push_back(search_box_view()->search_box());
+  forward_view_list.push_back(
+      app_list_folder_view()->folder_header_view()->GetFolderNameViewForTest());
   const views::ViewModelT<AppListItemView>* view_model =
       app_list_folder_view()->items_grid_view()->view_model_for_test();
   for (int i = 0; i < view_model->view_size(); ++i)
     forward_view_list.push_back(view_model->view_at(i));
-  forward_view_list.push_back(
-      app_list_folder_view()->folder_header_view()->GetFolderNameViewForTest());
+  forward_view_list.push_back(search_box_view()->back_button());
   forward_view_list.push_back(search_box_view()->search_box());
   std::vector<views::View*> backward_view_list = forward_view_list;
   std::reverse(backward_view_list.begin(), backward_view_list.end());
@@ -743,13 +744,12 @@
 
   std::vector<views::View*> forward_view_list;
   forward_view_list.push_back(search_box_view()->search_box());
-  const views::ViewModelT<AppListItemView>* view_model =
-      app_list_folder_view()->items_grid_view()->view_model_for_test();
-  for (int i = 0; i < view_model->view_size();
-       i += app_list_folder_view()->items_grid_view()->cols())
-    forward_view_list.push_back(view_model->view_at(i));
   forward_view_list.push_back(
       app_list_folder_view()->folder_header_view()->GetFolderNameViewForTest());
+  const views::ViewModelT<AppListItemView>* view_model =
+      app_list_folder_view()->items_grid_view()->view_model_for_test();
+  for (int i = 0; i < view_model->view_size(); i += apps_grid_view()->cols())
+    forward_view_list.push_back(view_model->view_at(i));
   forward_view_list.push_back(search_box_view()->search_box());
 
   // Test traversal triggered by down.
@@ -757,11 +757,11 @@
 
   std::vector<views::View*> backward_view_list;
   backward_view_list.push_back(search_box_view()->search_box());
+  for (int i = view_model->view_size() - 1; i >= 0;
+       i -= apps_grid_view()->cols())
+    backward_view_list.push_back(view_model->view_at(i));
   backward_view_list.push_back(
       app_list_folder_view()->folder_header_view()->GetFolderNameViewForTest());
-  for (int i = view_model->view_size() - 1; i >= 0;
-       i -= app_list_folder_view()->items_grid_view()->cols())
-    backward_view_list.push_back(view_model->view_at(i));
   backward_view_list.push_back(search_box_view()->search_box());
 
   // Test traversal triggered by up.
diff --git a/ui/app_list/views/apps_container_view.cc b/ui/app_list/views/apps_container_view.cc
index 962ded1..5db8047 100644
--- a/ui/app_list/views/apps_container_view.cc
+++ b/ui/app_list/views/apps_container_view.cc
@@ -17,7 +17,6 @@
 #include "ui/app_list/views/apps_grid_view.h"
 #include "ui/app_list/views/contents_view.h"
 #include "ui/app_list/views/folder_background_view.h"
-#include "ui/app_list/views/page_switcher.h"
 #include "ui/app_list/views/search_box_view.h"
 #include "ui/app_list/views/suggestions_container_view.h"
 #include "ui/base/l10n/l10n_util.h"
@@ -43,17 +42,13 @@
   apps_grid_view_->SetLayout(kPreferredCols, kPreferredRows);
   AddChildView(apps_grid_view_);
 
-  // Page switcher should be initialized after AppsGridView.
-  page_switcher_ = new PageSwitcher(apps_grid_view_->pagination_model(),
-                                    true /* vertical */);
-  AddChildView(page_switcher_);
+  folder_background_view_ = new FolderBackgroundView();
+  AddChildView(folder_background_view_);
 
   app_list_folder_view_ =
       new AppListFolderView(this, model, app_list_main_view);
   // The folder view is initially hidden.
   app_list_folder_view_->SetVisible(false);
-  folder_background_view_ = new FolderBackgroundView(app_list_folder_view_);
-  AddChildView(folder_background_view_);
   AddChildView(app_list_folder_view_);
 
   apps_grid_view_->SetModel(model);
@@ -74,10 +69,7 @@
 
   CreateViewsForFolderTopItemsAnimation(folder_item, true);
 
-  // Disable all the items behind the folder so that they will not be reached
-  // during focus traversal.
   contents_view()->GetSearchBoxView()->search_box()->RequestFocus();
-  apps_grid_view_->DisableFocusForShowingActiveFolder(true);
 }
 
 void AppsContainerView::ShowApps(AppListFolderItem* folder_item) {
@@ -86,12 +78,12 @@
 
   PrepareToShowApps(folder_item);
   SetShowState(SHOW_APPS, true);
-  apps_grid_view_->DisableFocusForShowingActiveFolder(false);
 }
 
 void AppsContainerView::ResetForShowApps() {
   SetShowState(SHOW_APPS, false);
-  apps_grid_view_->DisableFocusForShowingActiveFolder(false);
+  folder_background_view_->UpdateFolderContainerBubble(
+      FolderBackgroundView::NO_BUBBLE);
 }
 
 void AppsContainerView::SetDragAndDropHostOfCurrentAppList(
@@ -108,7 +100,6 @@
 
   PrepareToShowApps(folder_item);
   SetShowState(SHOW_ITEM_REPARENT, false);
-  apps_grid_view_->DisableFocusForShowingActiveFolder(false);
 }
 
 bool AppsContainerView::IsInFolderView() const {
@@ -120,40 +111,13 @@
   show_state_ = AppsContainerView::SHOW_APPS;
 }
 
-void AppsContainerView::UpdateControlVisibility(AppListViewState app_list_state,
-                                                bool is_in_drag) {
-  apps_grid_view_->UpdateControlVisibility(app_list_state, is_in_drag);
-  page_switcher_->SetVisible(
-      app_list_state == AppListViewState::FULLSCREEN_ALL_APPS || is_in_drag);
-}
-
-void AppsContainerView::UpdateOpacity() {
-  apps_grid_view_->UpdateOpacity();
-
-  // Updates the opacity of page switcher buttons. The same rule as all apps in
-  // AppsGridView.
-  AppListView* app_list_view = contents_view()->app_list_view();
-  bool should_restore_opacity =
-      !app_list_view->is_in_drag() &&
-      (app_list_view->app_list_state() != AppListViewState::CLOSED);
-  int screen_bottom = app_list_view->GetScreenBottom();
-  gfx::Rect switcher_bounds = page_switcher_->GetBoundsInScreen();
-  float centerline_above_work_area =
-      std::max<float>(screen_bottom - switcher_bounds.CenterPoint().y(), 0.f);
-  float opacity =
-      std::min(std::max((centerline_above_work_area - kAllAppsOpacityStartPx) /
-                            (kAllAppsOpacityEndPx - kAllAppsOpacityStartPx),
-                        0.f),
-               1.0f);
-  page_switcher_->layer()->SetOpacity(should_restore_opacity ? 1.0f : opacity);
-}
-
 gfx::Size AppsContainerView::CalculatePreferredSize() const {
-  gfx::Size size = apps_grid_view_->GetPreferredSize();
-  // Add padding to both side of the apps grid to keep it horizontally
-  // centered since we place page switcher on the right side.
-  size.Enlarge(kAppsGridLeftRightPadding * 2, 0);
-  return size;
+  const gfx::Size grid_size = apps_grid_view_->GetPreferredSize();
+  const gfx::Size folder_view_size = app_list_folder_view_->GetPreferredSize();
+
+  int width = std::max(grid_size.width(), folder_view_size.width());
+  int height = std::max(grid_size.height(), folder_view_size.height());
+  return gfx::Size(width, height);
 }
 
 void AppsContainerView::Layout() {
@@ -162,36 +126,13 @@
     return;
 
   switch (show_state_) {
-    case SHOW_APPS: {
-      gfx::Rect grid_rect = rect;
-      grid_rect.Inset(kAppsGridLeftRightPadding, 0);
-      apps_grid_view_->SetBoundsRect(grid_rect);
-
-      gfx::Rect page_switcher_rect = rect;
-      const int page_switcher_width =
-          page_switcher_->GetPreferredSize().width();
-      page_switcher_rect.set_x(page_switcher_rect.right() -
-                               page_switcher_width);
-      page_switcher_rect.set_width(page_switcher_width);
-      page_switcher_->SetBoundsRect(page_switcher_rect);
+    case SHOW_APPS:
+      apps_grid_view_->SetBoundsRect(rect);
       break;
-    }
-    case SHOW_ACTIVE_FOLDER: {
+    case SHOW_ACTIVE_FOLDER:
       folder_background_view_->SetBoundsRect(rect);
-
-      // The opened folder view's center should try to overlap with the folder
-      // item's center while it must fit within the bounds of this view.
-      DCHECK(apps_grid_view_->activated_folder_item_view());
-      gfx::Rect item_bounds_in_container = apps_grid_view_->ConvertRectToParent(
-          apps_grid_view_->activated_folder_item_view()->bounds());
-      gfx::Rect folder_bounds_in_container =
-          gfx::Rect(app_list_folder_view_->GetPreferredSize());
-      folder_bounds_in_container += (item_bounds_in_container.CenterPoint() -
-                                     folder_bounds_in_container.CenterPoint());
-      folder_bounds_in_container.AdjustToFit(rect);
-      app_list_folder_view_->SetBoundsRect(folder_bounds_in_container);
+      app_list_folder_view_->SetBoundsRect(rect);
       break;
-    }
     case SHOW_ITEM_REPARENT:
       break;
     default:
@@ -334,24 +275,31 @@
   switch (show_state_) {
     case SHOW_APPS:
       folder_background_view_->SetVisible(false);
-      apps_grid_view_->ResetForShowApps();
-      if (show_apps_with_animation)
+      if (show_apps_with_animation) {
         app_list_folder_view_->ScheduleShowHideAnimation(false, false);
-      else
+        apps_grid_view_->ScheduleShowHideAnimation(true);
+      } else {
         app_list_folder_view_->HideViewImmediately();
+        apps_grid_view_->ResetForShowApps();
+      }
       break;
     case SHOW_ACTIVE_FOLDER:
       folder_background_view_->SetVisible(true);
+      apps_grid_view_->ScheduleShowHideAnimation(false);
       app_list_folder_view_->ScheduleShowHideAnimation(true, false);
       break;
     case SHOW_ITEM_REPARENT:
       folder_background_view_->SetVisible(false);
+      folder_background_view_->UpdateFolderContainerBubble(
+          FolderBackgroundView::NO_BUBBLE);
       app_list_folder_view_->ScheduleShowHideAnimation(false, true);
+      apps_grid_view_->ScheduleShowHideAnimation(true);
       break;
     default:
       NOTREACHED();
   }
 
+  app_list_folder_view_->SetBackButtonLabel(IsInFolderView());
   Layout();
 }
 
@@ -369,9 +317,6 @@
 void AppsContainerView::CreateViewsForFolderTopItemsAnimation(
     AppListFolderItem* active_folder,
     bool open_folder) {
-  if (!is_folder_top_items_animation_enabled_)
-    return;
-
   top_icon_views_.clear();
   std::vector<gfx::Rect> top_items_bounds =
       GetTopItemIconBoundsInActiveFolder();
diff --git a/ui/app_list/views/apps_container_view.h b/ui/app_list/views/apps_container_view.h
index 400823a..3a18695c 100644
--- a/ui/app_list/views/apps_container_view.h
+++ b/ui/app_list/views/apps_container_view.h
@@ -27,7 +27,6 @@
 class AppListMainView;
 class AppListModel;
 class FolderBackgroundView;
-class PageSwitcher;
 
 // AppsContainerView contains a root level AppsGridView to render the root level
 // app items, and a AppListFolderView to render the app items inside the
@@ -66,14 +65,6 @@
   // Called to notify the AppsContainerView that a reparent drag has completed.
   void ReparentDragEnded();
 
-  // Updates the visibility of the items in this view according to
-  // |app_list_state| and |is_in_drag|.
-  void UpdateControlVisibility(AppListViewState app_list_state,
-                               bool is_in_drag);
-
-  // Updates the opacity of the items in this view during dragging.
-  void UpdateOpacity();
-
   // views::View overrides:
   gfx::Size CalculatePreferredSize() const override;
   void Layout() override;
@@ -100,10 +91,6 @@
   }
   AppListFolderView* app_list_folder_view() { return app_list_folder_view_; }
 
-  void set_folder_top_items_animation_enabled_for_test(bool enabled) {
-    is_folder_top_items_animation_enabled_ = enabled;
-  }
-
  private:
   enum ShowState {
     SHOW_NONE,  // initial state
@@ -136,7 +123,6 @@
   // The views below are owned by views hierarchy.
   AppsGridView* apps_grid_view_ = nullptr;
   AppListFolderView* app_list_folder_view_ = nullptr;
-  PageSwitcher* page_switcher_ = nullptr;
   FolderBackgroundView* folder_background_view_ = nullptr;
 
   ShowState show_state_ = SHOW_NONE;
@@ -147,9 +133,6 @@
 
   size_t top_icon_animation_pending_count_ = 0u;
 
-  // True if the animation for the folder top items is enabled.
-  bool is_folder_top_items_animation_enabled_ = true;
-
   DISALLOW_COPY_AND_ASSIGN(AppsContainerView);
 };
 
diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc
index eba96767..f0fbc48 100644
--- a/ui/app_list/views/apps_grid_view.cc
+++ b/ui/app_list/views/apps_grid_view.cc
@@ -31,6 +31,7 @@
 #include "ui/app_list/views/contents_view.h"
 #include "ui/app_list/views/expand_arrow_view.h"
 #include "ui/app_list/views/indicator_chip_view.h"
+#include "ui/app_list/views/page_switcher_vertical.h"
 #include "ui/app_list/views/pulsing_block_view.h"
 #include "ui/app_list/views/search_box_view.h"
 #include "ui/app_list/views/search_result_tile_item_view.h"
@@ -83,9 +84,6 @@
 constexpr int kTileHorizontalPadding = 12;
 constexpr int kTileVerticalPadding = 6;
 
-// Padding of a tile within the folder view.
-constexpr int kFolderTilePadding = 6;
-
 // Width in pixels of the area on the sides that triggers a page flip.
 constexpr int kPageFlipZoneSize = 40;
 
@@ -137,6 +135,11 @@
 constexpr float kExpandArrowShowStartFraction = 0.5f;
 constexpr float kExpandArrowShowEndFraction = 1.0f;
 
+// Range of the height of centerline above screen bottom that all apps should
+// change opacity.
+constexpr float kAllAppsOpacityStartPx = 8.0f;
+constexpr float kAllAppsOpacityEndPx = 144.0f;
+
 // The length of time we ignore scroll events on the AppsGridView after the
 // AppListView transitions to FULLSCREEN_ALL_APPS.
 constexpr base::TimeDelta kIgnoreScrollEventsDurationMs =
@@ -375,10 +378,10 @@
 
   pagination_model_.AddObserver(this);
 
+  page_switcher_view_ = new PageSwitcherVertical(&pagination_model_);
   pagination_controller_.reset(new PaginationController(
-      &pagination_model_, folder_delegate_
-                              ? PaginationController::SCROLL_AXIS_HORIZONTAL
-                              : PaginationController::SCROLL_AXIS_VERTICAL));
+      &pagination_model_, PaginationController::SCROLL_AXIS_VERTICAL));
+  AddChildView(page_switcher_view_);
 }
 
 AppsGridView::~AppsGridView() {
@@ -396,6 +399,7 @@
   if (item_list_)
     item_list_->RemoveObserver(this);
 
+  // Make sure |page_switcher_view_| is deleted before |pagination_model_|.
   view_model_.Clear();
   RemoveAllChildViews(true);
 }
@@ -405,7 +409,8 @@
   rows_per_page_ = rows_per_page;
 }
 
-gfx::Size AppsGridView::GetTotalTileSize() const {
+// static
+gfx::Size AppsGridView::GetTotalTileSize() {
   static gfx::Size rect_size;
 
   if (!rect_size.IsEmpty())
@@ -418,17 +423,17 @@
   return rect_size;
 }
 
-gfx::Insets AppsGridView::GetTilePadding() const {
-  if (folder_delegate_)
-    return gfx::Insets(-kFolderTilePadding, -kFolderTilePadding);
-  return gfx::Insets(-kTileVerticalPadding, -kTileHorizontalPadding);
-}
+// static
+gfx::Insets AppsGridView::GetTilePadding() {
+  static gfx::Insets tile_padding_full_screen;
 
-gfx::Size AppsGridView::GetTileGridSizeWithoutPadding() const {
-  gfx::Size size = GetTileGridSize();
-  gfx::Insets grid_padding = GetTilePadding();
-  size.Enlarge(grid_padding.width(), grid_padding.height());
-  return size;
+  // Full screen mode.
+  if (!tile_padding_full_screen.IsEmpty())
+    return tile_padding_full_screen;
+  tile_padding_full_screen =
+      gfx::Insets(-kTileVerticalPadding, -kTileHorizontalPadding,
+                  -kTileVerticalPadding, -kTileHorizontalPadding);
+  return tile_padding_full_screen;
 }
 
 void AppsGridView::ResetForShowApps() {
@@ -446,14 +451,6 @@
            static_cast<size_t>(view_model_.view_size()));
 }
 
-void AppsGridView::DisableFocusForShowingActiveFolder(bool disabled) {
-  for (auto* v : suggestions_container_->tile_views())
-    v->SetEnabled(!disabled);
-  for (int i = 0; i < view_model_.view_size(); ++i) {
-    view_model_.view_at(i)->SetEnabled(!disabled);
-  }
-}
-
 void AppsGridView::SetModel(AppListModel* model) {
   if (model_)
     model_->RemoveObserver(this);
@@ -597,6 +594,11 @@
 
   MaybeStartPageFlipTimer(last_drag_point_);
 
+  gfx::Point page_switcher_point(last_drag_point_);
+  views::View::ConvertPointToTarget(this, page_switcher_view_,
+                                    &page_switcher_point);
+  page_switcher_view_->UpdateUIForDragPoint(page_switcher_point);
+
   if (last_folder_drop_target != folder_drop_target_ ||
       last_reorder_drop_target != reorder_drop_target_ ||
       last_drop_attempt != drop_attempt_) {
@@ -687,6 +689,11 @@
   AnimateToIdealBounds();
 
   StopPageFlipTimer();
+
+  // If user releases mouse inside a folder's grid view, burst the folder
+  // container ink bubble.
+  if (folder_delegate_ && !IsDraggingForReparentInHiddenGridView())
+    folder_delegate_->UpdateFolderViewBackground(false);
 }
 
 void AppsGridView::StopPageFlipTimer() {
@@ -817,10 +824,10 @@
 }
 
 gfx::Size AppsGridView::CalculatePreferredSize() const {
-  if (folder_delegate_)
-    return GetTileGridSize();
-
   gfx::Size size = gfx::Size(kAppsGridPreferredWidth, kAppsGridPreferredHeight);
+  // Add padding to both side of the apps grid to keep it horizontally
+  // centered since we place page switcher on the right side.
+  size.Enlarge(kAppsGridLeftRightPadding * 2, 0);
   return size;
 }
 
@@ -902,6 +909,12 @@
       view->SetBoundsRect(view_model_.ideal_bounds(i));
   }
   views::ViewModelUtils::SetViewBoundsToIdealBounds(pulsing_blocks_model_);
+
+  const int page_switcher_width =
+      page_switcher_view_->GetPreferredSize().width();
+  rect.set_x(rect.right() - page_switcher_width);
+  rect.set_width(page_switcher_width);
+  page_switcher_view_->SetBoundsRect(rect);
 }
 
 void AppsGridView::UpdateControlVisibility(AppListViewState app_list_state,
@@ -920,6 +933,8 @@
     AppListItemView* view = GetItemViewAt(i);
     view->SetVisible(fullscreen_apps_in_drag);
   }
+
+  page_switcher_view_->SetVisible(fullscreen_apps_in_drag);
 }
 
 bool AppsGridView::OnKeyPressed(const ui::KeyEvent& event) {
@@ -983,7 +998,6 @@
     view_model_.Add(view, i);
     AddChildView(view);
   }
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
   UpdatePulsingBlockViews();
   Layout();
@@ -1000,8 +1014,6 @@
 }
 
 int AppsGridView::TilesPerPage(int page) const {
-  if (folder_delegate_)
-    return kMaxFolderItemsPerPage;
   if (page == 0)
     return cols_ * (rows_per_page_ - 1);
   return cols_ * rows_per_page_;
@@ -1382,8 +1394,7 @@
   // Items can only be dropped into non-folders (which have no children) or
   // folders that have fewer than the max allowed items.
   // The OEM folder does not allow drag/drop of other items into it.
-  const size_t kMaxItemCount = kMaxFolderItemsPerPage * kMaxFolderPages;
-  if (target_item->ChildItemCount() >= kMaxItemCount ||
+  if (target_item->ChildItemCount() >= kMaxFolderItems ||
       IsOEMFolderItem(target_item)) {
     return false;
   }
@@ -1466,6 +1477,9 @@
     return;
   }
 
+  // Regular drag and drop in a folder's grid view.
+  folder_delegate_->UpdateFolderViewBackground(true);
+
   // Calculate if the drag_view_ is dragged out of the folder's container
   // ink bubble.
   gfx::Rect bounds_to_folder_view = ConvertRectToParent(drag_view_->bounds());
@@ -1573,7 +1587,7 @@
   // Move focus based on target global focus index.
   if (target_global_index < 0 || target_global_index >= cols_ * row_total) {
     // Target index is outside apps grid view.
-    if (folder_delegate_ && !arrow_up) {
+    if (folder_delegate_ && arrow_up) {
       contents_view_->apps_container_view()
           ->app_list_folder_view()
           ->folder_header_view()
@@ -1591,17 +1605,6 @@
   return true;
 }
 
-void AppsGridView::UpdateColsAndRowsForFolder() {
-  if (!folder_delegate_ || !item_list_->item_count())
-    return;
-
-  // Try to shape the apps grid into a square.
-  int items_in_one_page =
-      std::min(kMaxFolderItemsPerPage, item_list_->item_count());
-  cols_ = std::sqrt(items_in_one_page - 1) + 1;
-  rows_per_page_ = (items_in_one_page - 1) / cols_ + 1;
-}
-
 void AppsGridView::DispatchDragEventForReparent(Pointer pointer,
                                                 const gfx::Point& drag_point) {
   folder_delegate_->DispatchDragEventForReparent(pointer, drag_point);
@@ -1786,6 +1789,20 @@
 
     item_view->layer()->SetOpacity(should_restore_opacity ? 1.0f : opacity);
   }
+
+  // Updates the opacity of page switcher buttons. The same rule as all apps.
+  if (page_switcher_view_) {
+    gfx::Rect switcher_bounds = page_switcher_view_->GetBoundsInScreen();
+    centerline_above_work_area =
+        std::max<float>(screen_bottom - switcher_bounds.CenterPoint().y(), 0.f);
+    opacity = std::min(
+        std::max((centerline_above_work_area - kAllAppsOpacityStartPx) /
+                     (kAllAppsOpacityEndPx - kAllAppsOpacityStartPx),
+                 0.f),
+        1.0f);
+    page_switcher_view_->layer()->SetOpacity(should_restore_opacity ? 1.0f
+                                                                    : opacity);
+  }
 }
 
 void AppsGridView::StartTimerToIgnoreScrollEvents() {
@@ -1879,6 +1896,14 @@
     else if (drag_point.y() > height() - kPageFlipZoneSize)
       new_page_flip_target = pagination_model_.selected_page() + 1;
   } else {
+    if (page_switcher_view_->bounds().Contains(drag_point)) {
+      gfx::Point page_switcher_point(drag_point);
+      views::View::ConvertPointToTarget(this, page_switcher_view_,
+                                        &page_switcher_point);
+      new_page_flip_target =
+          page_switcher_view_->GetPageForPoint(page_switcher_point);
+    }
+
     // TODO(xiyuan): Fix this for RTL.
     if (new_page_flip_target == -1 && drag_point.x() < kPageFlipZoneSize)
       new_page_flip_target = pagination_model_.selected_page() - 1;
@@ -1976,7 +2001,6 @@
   bounds_animator_.SetAnimationDelegate(
       drag_view_, std::unique_ptr<gfx::AnimationDelegate>(
                       new ItemRemoveAnimationDelegate(drag_view_)));
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
 }
 
@@ -2019,7 +2043,6 @@
 
   item_list_->AddObserver(this);
   model_->AddObserver(this);
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
 }
 
@@ -2092,7 +2115,6 @@
   bounds_animator_.SetAnimationDelegate(
       drag_view_, std::unique_ptr<gfx::AnimationDelegate>(
                       new ItemRemoveAnimationDelegate(drag_view_)));
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
 
   return true;
@@ -2218,7 +2240,6 @@
   // on drag/animation from PEEKING.
   view->SetVisible(model_->state_fullscreen() != AppListViewState::PEEKING);
 
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
   UpdatePulsingBlockViews();
   Layout();
@@ -2230,7 +2251,6 @@
 
   DeleteItemViewAtIndex(index);
 
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
   UpdatePulsingBlockViews();
   Layout();
@@ -2243,7 +2263,6 @@
   EndDrag(true);
   view_model_.Move(from_index, to_index);
 
-  UpdateColsAndRowsForFolder();
   UpdatePaging();
   AnimateToIdealBounds();
 }
@@ -2341,13 +2360,7 @@
 }
 
 gfx::Size AppsGridView::GetTileGridSize() const {
-  if (!folder_delegate_)
-    return gfx::Size(kAppsGridPreferredWidth, kAppsGridPreferredHeight);
-
-  gfx::Rect bounds = GetExpectedTileBounds(Index(0, 0));
-  bounds.Union(GetExpectedTileBounds(Index(0, rows_per_page_ * cols_ - 1)));
-  bounds.Inset(GetTilePadding());
-  return bounds.size();
+  return gfx::Size(kAppsGridPreferredWidth, kAppsGridPreferredHeight);
 }
 
 int AppsGridView::GetHeightOnTopOfAllAppsTiles(int page) const {
@@ -2366,13 +2379,8 @@
 }
 
 gfx::Rect AppsGridView::GetExpectedTileBounds(const Index& index) const {
-  if (!cols_)
-    return gfx::Rect();
-
   gfx::Rect bounds(GetContentsBounds());
-  if (!folder_delegate_)
-    bounds.Offset(-kTileHorizontalPadding, 0);
-
+  bounds.Offset(kAppsGridLeftRightPadding - kTileHorizontalPadding, 0);
   bounds.Inset(0, GetHeightOnTopOfAllAppsTiles(index.page), 0, 0);
   int row = index.slot / cols_;
   int col = index.slot % cols_;
diff --git a/ui/app_list/views/apps_grid_view.h b/ui/app_list/views/apps_grid_view.h
index 2a7fb28..deac6e1 100644
--- a/ui/app_list/views/apps_grid_view.h
+++ b/ui/app_list/views/apps_grid_view.h
@@ -51,6 +51,7 @@
 class ContentsView;
 class IndicatorChipView;
 class SuggestionsContainerView;
+class PageSwitcher;
 class PaginationController;
 class PulsingBlockView;
 class ExpandArrowView;
@@ -81,21 +82,14 @@
   int rows_per_page() const { return rows_per_page_; }
 
   // Returns the size of a tile view including its padding.
-  gfx::Size GetTotalTileSize() const;
+  static gfx::Size GetTotalTileSize();
 
   // Returns the padding around a tile view.
-  gfx::Insets GetTilePadding() const;
-
-  // Returns the size of the entire tile grid without padding.
-  gfx::Size GetTileGridSizeWithoutPadding() const;
+  static gfx::Insets GetTilePadding();
 
   // This resets the grid view to a fresh state for showing the app list.
   void ResetForShowApps();
 
-  // All items in this view become unfocusable if |disabled| is true. This is
-  // used to trap focus within the folder when it is opened.
-  void DisableFocusForShowingActiveFolder(bool disabled);
-
   // Sets |model| to use. Note this does not take ownership of |model|.
   void SetModel(AppListModel* model);
 
@@ -242,8 +236,6 @@
     folder_delegate_ = folder_delegate;
   }
 
-  bool is_in_folder() const { return !!folder_delegate_; }
-
   AppListItemView* activated_folder_item_view() const {
     return activated_folder_item_view_;
   }
@@ -524,9 +516,6 @@
   // state.
   bool HandleFocusMovementInFullscreenAllAppsState(bool arrow_up);
 
-  // Update number of columns and rows for apps within a folder.
-  void UpdateColsAndRowsForFolder();
-
   AppListModel* model_ = nullptr;         // Owned by AppListView.
   AppListItemList* item_list_ = nullptr;  // Not owned.
 
@@ -536,6 +525,7 @@
   PaginationModel pagination_model_;
   // Must appear after |pagination_model_|.
   std::unique_ptr<PaginationController> pagination_controller_;
+  PageSwitcher* page_switcher_view_ = nullptr;  // Owned by views hierarchy.
 
   // Created by AppListMainView, owned by views hierarchy.
   ContentsView* contents_view_ = nullptr;
diff --git a/ui/app_list/views/apps_grid_view_folder_delegate.h b/ui/app_list/views/apps_grid_view_folder_delegate.h
index 402fc7b..924a653 100644
--- a/ui/app_list/views/apps_grid_view_folder_delegate.h
+++ b/ui/app_list/views/apps_grid_view_folder_delegate.h
@@ -19,6 +19,10 @@
 // A delegate which allows an AppsGridView to communicate with its host folder.
 class APP_LIST_EXPORT AppsGridViewFolderDelegate {
  public:
+  // Updates the folder view background to show or hide folder container ink
+  // bubble.
+  virtual void UpdateFolderViewBackground(bool show_bubble) = 0;
+
   // Called when a folder item is dragged out of the folder to be re-parented.
   // |original_drag_view| is the |drag_view_| inside the folder's grid view.
   // |drag_point_in_folder_grid| is the last drag point in coordinate of the
diff --git a/ui/app_list/views/apps_grid_view_unittest.cc b/ui/app_list/views/apps_grid_view_unittest.cc
index 2a33975..38b2222 100644
--- a/ui/app_list/views/apps_grid_view_unittest.cc
+++ b/ui/app_list/views/apps_grid_view_unittest.cc
@@ -30,7 +30,6 @@
 #include "ui/app_list/test/app_list_test_model.h"
 #include "ui/app_list/test/app_list_test_view_delegate.h"
 #include "ui/app_list/test/test_search_result.h"
-#include "ui/app_list/views/app_list_folder_view.h"
 #include "ui/app_list/views/app_list_item_view.h"
 #include "ui/app_list/views/app_list_main_view.h"
 #include "ui/app_list/views/app_list_view.h"
@@ -38,7 +37,6 @@
 #include "ui/app_list/views/apps_grid_view_folder_delegate.h"
 #include "ui/app_list/views/contents_view.h"
 #include "ui/app_list/views/expand_arrow_view.h"
-#include "ui/app_list/views/folder_background_view.h"
 #include "ui/app_list/views/search_box_view.h"
 #include "ui/app_list/views/search_result_tile_item_view.h"
 #include "ui/app_list/views/suggestions_container_view.h"
@@ -180,10 +178,6 @@
     return apps_grid_view_->pagination_model();
   }
 
-  AppListFolderView* app_list_folder_view() const {
-    return contents_view_->apps_container_view()->app_list_folder_view();
-  }
-
   // Points are in |apps_grid_view_|'s coordinates, and fixed for RTL.
   AppListItemView* SimulateDrag(AppsGridView::Pointer pointer,
                                 const gfx::Point& from,
@@ -251,6 +245,11 @@
   TestAppsGridViewFolderDelegate() = default;
   ~TestAppsGridViewFolderDelegate() override = default;
 
+  // Overridden from AppsGridViewFolderDelegate:
+  void UpdateFolderViewBackground(bool show_bubble) override {
+    show_bubble_ = show_bubble;
+  }
+
   void ReparentItem(AppListItemView* original_drag_view,
                     const gfx::Point& drag_point_in_folder_grid,
                     bool has_native_drag) override {}
@@ -270,7 +269,11 @@
 
   void SetRootLevelDragViewVisible(bool visible) override {}
 
+  bool show_bubble() { return show_bubble_; }
+
  private:
+  bool show_bubble_ = false;
+
   DISALLOW_COPY_AND_ASSIGN(TestAppsGridViewFolderDelegate);
 };
 
@@ -380,8 +383,7 @@
 
 TEST_P(AppsGridViewTest, MouseDragMaxItemsInFolder) {
   // Create and add a folder with |kMaxFolderItemsFullscreen - 1| items.
-  const size_t kMaxItems = kMaxFolderItemsPerPage * kMaxFolderPages;
-  const size_t kTotalItems = kMaxItems - 1;
+  size_t kTotalItems = kMaxFolderItems - 1;
   model_->CreateAndPopulateFolderWithApps(kTotalItems);
   EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(AppListFolderItem::kItemType,
@@ -395,9 +397,9 @@
   model_->PopulateAppWithId(kTotalItems + 1);
   EXPECT_EQ(3u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems - 1),
+  EXPECT_EQ(model_->GetItemName(kMaxFolderItems - 1),
             model_->top_level_item_list()->item_at(1)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
+  EXPECT_EQ(model_->GetItemName(kMaxFolderItems),
             model_->top_level_item_list()->item_at(2)->id());
 
   gfx::Point from = GetItemRectOnCurrentPageAt(0, 1).CenterPoint();
@@ -408,8 +410,8 @@
   apps_grid_view_->EndDrag(false);
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
-  EXPECT_EQ(kMaxItems, folder_item->ChildItemCount());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
+  EXPECT_EQ(kMaxFolderItems, folder_item->ChildItemCount());
+  EXPECT_EQ(model_->GetItemName(kMaxFolderItems),
             model_->top_level_item_list()->item_at(1)->id());
   test_api_->LayoutToIdealBounds();
 
@@ -418,7 +420,7 @@
   SimulateDrag(AppsGridView::MOUSE, from, to);
   apps_grid_view_->EndDrag(false);
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(kMaxItems, folder_item->ChildItemCount());
+  EXPECT_EQ(kMaxFolderItems, folder_item->ChildItemCount());
   test_api_->LayoutToIdealBounds();
 }
 
@@ -426,9 +428,8 @@
 // folder.
 TEST_P(AppsGridViewTest, MouseDragMaxItemsInFolderWithMovement) {
   // Create and add a folder with |kMaxFolderItemsFullscreen| in it.
-  const size_t kMaxItems = kMaxFolderItemsPerPage * kMaxFolderPages;
-  size_t kTotalItems = kMaxItems;
-  model_->CreateAndPopulateFolderWithApps(kMaxItems);
+  size_t kTotalItems = kMaxFolderItems;
+  model_->CreateAndPopulateFolderWithApps(kTotalItems);
   EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(AppListFolderItem::kItemType,
             model_->top_level_item_list()->item_at(0)->GetItemType());
@@ -440,7 +441,7 @@
   model_->PopulateAppWithId(kTotalItems);
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
   EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
-  EXPECT_EQ(model_->GetItemName(kMaxItems),
+  EXPECT_EQ(model_->GetItemName(kMaxFolderItems),
             model_->top_level_item_list()->item_at(1)->id());
 
   AppListItemView* folder_view =
@@ -470,7 +471,7 @@
 
   // The item should not have moved into the folder.
   EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(kMaxItems, folder_item->ChildItemCount());
+  EXPECT_EQ(kMaxFolderItems, folder_item->ChildItemCount());
   test_api_->LayoutToIdealBounds();
 }
 
@@ -660,7 +661,9 @@
 
   // Starts a mouse drag and then cancels it.
   SimulateDrag(AppsGridView::MOUSE, mouse_from, mouse_to);
+  EXPECT_TRUE(folder_delegate.show_bubble());
   apps_grid_view_->EndDrag(true);
+  EXPECT_FALSE(folder_delegate.show_bubble());
   EXPECT_EQ(std::string("Item 0,Item 1,Item 2,Item 3"),
             model_->GetModelContent());
 }
@@ -828,103 +831,5 @@
   ASSERT_NE(0, GetPaginationModel()->transition().progress);
 }
 
-TEST_F(AppsGridViewTest, CloseFolderByClickingBackground) {
-  // Disable the animation for the folder top items for test purpose.
-  AppsContainerView* apps_container_view =
-      contents_view_->apps_container_view();
-  apps_container_view->set_folder_top_items_animation_enabled_for_test(false);
-
-  const size_t kTotalItems = kMaxFolderItemsPerPage;
-  model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-
-  // Open the folder.
-  test_api_->PressItemAt(0);
-  EXPECT_TRUE(apps_container_view->IsInFolderView());
-
-  // Simulate mouse press on folder background to close the folder.
-  ui::MouseEvent event(ui::ET_MOUSE_PRESSED, gfx::Point(), gfx::Point(),
-                       ui::EventTimeForNow(), ui::EF_LEFT_MOUSE_BUTTON,
-                       ui::EF_LEFT_MOUSE_BUTTON);
-  apps_container_view->folder_background_view()->OnMouseEvent(&event);
-  EXPECT_FALSE(apps_container_view->IsInFolderView());
-}
-
-TEST_F(AppsGridViewTest, PageResetAfterOpenFolder) {
-  // Disable the animation for the folder top items for test purpose.
-  contents_view_->apps_container_view()
-      ->set_folder_top_items_animation_enabled_for_test(false);
-
-  const size_t kTotalItems = kMaxFolderPages * kMaxFolderItemsPerPage;
-  model_->CreateAndPopulateFolderWithApps(kTotalItems);
-  EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
-  EXPECT_EQ(AppListFolderItem::kItemType,
-            model_->top_level_item_list()->item_at(0)->GetItemType());
-
-  // Open the folder. It should be at page 0.
-  test_api_->PressItemAt(0);
-  PaginationModel* pagination_model =
-      app_list_folder_view()->items_grid_view()->pagination_model();
-  EXPECT_EQ(3, pagination_model->total_pages());
-  EXPECT_EQ(0, pagination_model->selected_page());
-
-  // Select page 2.
-  pagination_model->SelectPage(2, false /* animate */);
-  EXPECT_EQ(2, pagination_model->selected_page());
-
-  // Close the folder and reopen it. It should be at page 0.
-  app_list_folder_view()->CloseFolderPage();
-  test_api_->PressItemAt(0);
-  EXPECT_EQ(3, pagination_model->total_pages());
-  EXPECT_EQ(0, pagination_model->selected_page());
-}
-
-TEST_F(AppsGridViewTest, FolderColsAndRows) {
-  // Disable the animation for the folder top items for test purpose.
-  contents_view_->apps_container_view()
-      ->set_folder_top_items_animation_enabled_for_test(false);
-
-  // Populate folders with different number of apps.
-  model_->CreateAndPopulateFolderWithApps(2);
-  model_->CreateAndPopulateFolderWithApps(5);
-  model_->CreateAndPopulateFolderWithApps(9);
-  model_->CreateAndPopulateFolderWithApps(15);
-  model_->CreateAndPopulateFolderWithApps(17);
-
-  // Check the number of cols and rows for each opened folder.
-  AppsGridView* items_grid_view = app_list_folder_view()->items_grid_view();
-  test_api_->PressItemAt(0);
-  EXPECT_EQ(2, items_grid_view->view_model_for_test()->view_size());
-  EXPECT_EQ(2, items_grid_view->cols());
-  EXPECT_EQ(1, items_grid_view->rows_per_page());
-  app_list_folder_view()->CloseFolderPage();
-
-  test_api_->PressItemAt(1);
-  EXPECT_EQ(5, items_grid_view->view_model_for_test()->view_size());
-  EXPECT_EQ(3, items_grid_view->cols());
-  EXPECT_EQ(2, items_grid_view->rows_per_page());
-  app_list_folder_view()->CloseFolderPage();
-
-  test_api_->PressItemAt(2);
-  EXPECT_EQ(9, items_grid_view->view_model_for_test()->view_size());
-  EXPECT_EQ(3, items_grid_view->cols());
-  EXPECT_EQ(3, items_grid_view->rows_per_page());
-  app_list_folder_view()->CloseFolderPage();
-
-  test_api_->PressItemAt(3);
-  EXPECT_EQ(15, items_grid_view->view_model_for_test()->view_size());
-  EXPECT_EQ(4, items_grid_view->cols());
-  EXPECT_EQ(4, items_grid_view->rows_per_page());
-  app_list_folder_view()->CloseFolderPage();
-
-  test_api_->PressItemAt(4);
-  EXPECT_EQ(17, items_grid_view->view_model_for_test()->view_size());
-  EXPECT_EQ(4, items_grid_view->cols());
-  EXPECT_EQ(4, items_grid_view->rows_per_page());
-  app_list_folder_view()->CloseFolderPage();
-}
-
 }  // namespace test
 }  // namespace app_list
diff --git a/ui/app_list/views/folder_background_view.cc b/ui/app_list/views/folder_background_view.cc
index a7e1dfe..6fffa54d 100644
--- a/ui/app_list/views/folder_background_view.cc
+++ b/ui/app_list/views/folder_background_view.cc
@@ -4,29 +4,94 @@
 
 #include "ui/app_list/views/folder_background_view.h"
 
+#include <algorithm>
+
+#include "ui/app_list/app_list_constants.h"
+#include "ui/app_list/app_list_features.h"
 #include "ui/app_list/views/app_list_folder_view.h"
+#include "ui/app_list/views/apps_container_view.h"
+#include "ui/compositor/scoped_layer_animation_settings.h"
+#include "ui/gfx/canvas.h"
+#include "ui/gfx/transform_util.h"
 
 namespace app_list {
 
-FolderBackgroundView::FolderBackgroundView(AppListFolderView* folder_view)
-    : folder_view_(folder_view) {}
+namespace {
 
-FolderBackgroundView::~FolderBackgroundView() = default;
+const float kFolderInkBubbleScale = 1.2f;
+const int kBubbleTransitionDurationMs = 200;
 
-bool FolderBackgroundView::OnMousePressed(const ui::MouseEvent& event) {
-  HandleClickOrTap();
-  return true;
+}  // namespace
+
+FolderBackgroundView::FolderBackgroundView()
+    : folder_view_(NULL), show_state_(NO_BUBBLE) {
+  SetPaintToLayer();
+  layer()->SetFillsBoundsOpaquely(false);
 }
 
-void FolderBackgroundView::OnGestureEvent(ui::GestureEvent* event) {
-  if (event->type() != ui::ET_GESTURE_TAP)
+FolderBackgroundView::~FolderBackgroundView() {
+}
+
+void FolderBackgroundView::UpdateFolderContainerBubble(ShowState state) {
+  if (show_state_ == state ||
+      (state == HIDE_BUBBLE && show_state_ == NO_BUBBLE)) {
     return;
-  HandleClickOrTap();
-  event->SetHandled();
+  }
+
+  show_state_ = state;
+
+  // Set the initial state before the animation starts.
+  const gfx::Rect bounds(layer()->bounds().size());
+  gfx::Transform transform =
+      gfx::GetScaleTransform(bounds.CenterPoint(), kFolderInkBubbleScale);
+  if (show_state_ == SHOW_BUBBLE) {
+    layer()->SetOpacity(0.0f);
+    layer()->SetTransform(transform);
+  } else {
+    layer()->SetOpacity(GetBubbleOpacity());
+    layer()->SetTransform(gfx::Transform());
+  }
+
+  ui::ScopedLayerAnimationSettings settings(layer()->GetAnimator());
+  settings.AddObserver(this);
+  settings.SetTransitionDuration(
+      base::TimeDelta::FromMilliseconds((kBubbleTransitionDurationMs)));
+  if (show_state_ == SHOW_BUBBLE) {
+    settings.SetTweenType(gfx::Tween::LINEAR_OUT_SLOW_IN);
+    layer()->SetOpacity(GetBubbleOpacity());
+    layer()->SetTransform(gfx::Transform());
+  } else {
+    settings.SetTweenType(gfx::Tween::FAST_OUT_LINEAR_IN);
+    layer()->SetOpacity(0.0f);
+    layer()->SetTransform(transform);
+  }
+
+  SchedulePaint();
 }
 
-void FolderBackgroundView::HandleClickOrTap() {
-  folder_view_->CloseFolderPage();
+void FolderBackgroundView::OnPaint(gfx::Canvas* canvas) {
+  if (show_state_ == NO_BUBBLE)
+    return;
+
+  // Draw ink bubble that shows the folder boundary.
+  cc::PaintFlags flags;
+  flags.setStyle(cc::PaintFlags::kFill_Style);
+  flags.setAntiAlias(true);
+  flags.setColor(FolderImage::kFolderBubbleColor);
+  canvas->DrawCircle(GetContentsBounds().CenterPoint(),
+                     kFolderBackgroundBubbleRadius, flags);
+}
+
+void FolderBackgroundView::OnImplicitAnimationsCompleted() {
+  // Show folder name after the ink bubble disappears.
+  if (show_state_ == HIDE_BUBBLE) {
+    static_cast<AppsContainerView*>(parent())->app_list_folder_view()->
+        UpdateFolderNameVisibility(true);
+  }
+}
+
+float FolderBackgroundView::GetBubbleOpacity() const {
+  return kFolderBubbleOpacity;
 }
 
 }  // namespace app_list
diff --git a/ui/app_list/views/folder_background_view.h b/ui/app_list/views/folder_background_view.h
index 5f16274..cd5a0fa 100644
--- a/ui/app_list/views/folder_background_view.h
+++ b/ui/app_list/views/folder_background_view.h
@@ -5,32 +5,46 @@
 #ifndef UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_
 #define UI_APP_LIST_VIEWS_FOLDER_BACKGROUND_VIEW_H_
 
+#include "base/macros.h"
+#include "ui/compositor/layer_animation_observer.h"
 #include "ui/views/view.h"
 
 namespace app_list {
 
 class AppListFolderView;
 
-// An invisible background view of the folder in fullscreen app list. It is used
-// to close folder when the user clicks/taps outside the opened folder.
-class FolderBackgroundView : public views::View {
+// Draws the ink bubble indicating the boundary of the folder when user drags an
+// item inside a folder.
+class FolderBackgroundView : public views::View,
+                             public ui::ImplicitAnimationObserver {
  public:
-  explicit FolderBackgroundView(AppListFolderView* folder_view);
+  enum ShowState {
+    NO_BUBBLE,
+    SHOW_BUBBLE,
+    HIDE_BUBBLE,
+  };
+
+  FolderBackgroundView();
   ~FolderBackgroundView() override;
 
+  // Updates the ink bubble's ShowState.
+  void UpdateFolderContainerBubble(ShowState state);
+
   void set_folder_view(AppListFolderView* folder_view) {
     folder_view_ = folder_view;
   }
 
  private:
   // views::View overrides:
-  bool OnMousePressed(const ui::MouseEvent& event) override;
-  void OnGestureEvent(ui::GestureEvent* event) override;
+  void OnPaint(gfx::Canvas* canvas) override;
 
-  // Handles mouse click event or gesture tap event.
-  void HandleClickOrTap();
+  // ui::ImplicitAnimationObserver overrides:
+  void OnImplicitAnimationsCompleted() override;
+
+  float GetBubbleOpacity() const;
 
   AppListFolderView* folder_view_;
+  ShowState show_state_;
 
   DISALLOW_COPY_AND_ASSIGN(FolderBackgroundView);
 };
diff --git a/ui/app_list/views/folder_header_view.cc b/ui/app_list/views/folder_header_view.cc
index 41860ae..e71dd35 100644
--- a/ui/app_list/views/folder_header_view.cc
+++ b/ui/app_list/views/folder_header_view.cc
@@ -27,8 +27,10 @@
 
 namespace {
 
-constexpr int kMaxFolderNameWidth = 204;
-constexpr SkColor kFolderNameColor = SkColorSetARGBMacro(138, 0, 0, 0);
+constexpr int kPreferredWidth = 360;
+constexpr int kPreferredHeight = 48;
+constexpr int kBottomSeparatorHeight = 1;
+constexpr int kMaxFolderNameWidthFullScreen = 236;
 
 }  // namespace
 
@@ -36,7 +38,7 @@
  public:
   FolderNameView() { SetBorder(views::CreateEmptyBorder(1, 1, 1, 1)); }
 
-  ~FolderNameView() override = default;
+  ~FolderNameView() override {}
 
   void OnFocus() override {
     SelectAll(false);
@@ -64,7 +66,8 @@
   // Make folder name font size 14px.
   folder_name_view_->SetFontList(font_list.DeriveWithSizeDelta(-1));
   folder_name_view_->SetBackgroundColor(SK_ColorTRANSPARENT);
-  folder_name_view_->SetTextColor(kFolderNameColor);
+  folder_name_view_->SetTextColor(kGridTitleColor);
+
   folder_name_view_->set_controller(this);
   AddChildView(folder_name_view_);
 }
@@ -146,8 +149,10 @@
 }
 
 gfx::Size FolderHeaderView::CalculatePreferredSize() const {
-  return gfx::Size(kMaxFolderNameWidth,
-                   folder_name_view_->GetPreferredSize().height());
+  const int preferred_height = kPreferredHeight +
+                               kBottomSeparatorBottomPadding +
+                               AppsGridView::GetTilePadding().top();
+  return gfx::Size(kPreferredWidth, preferred_height);
 }
 
 views::View* FolderHeaderView::GetFolderNameViewForTest() const {
@@ -155,7 +160,7 @@
 }
 
 int FolderHeaderView::GetMaxFolderNameWidth() const {
-  return kMaxFolderNameWidth;
+  return kMaxFolderNameWidthFullScreen;
 }
 
 base::string16 FolderHeaderView::GetElidedFolderName(
@@ -200,6 +205,26 @@
   return false;
 }
 
+void FolderHeaderView::OnPaint(gfx::Canvas* canvas) {
+  views::View::OnPaint(canvas);
+
+  gfx::Rect rect(GetContentsBounds());
+  if (rect.IsEmpty() || !folder_name_visible_)
+    return;
+
+  // Draw bottom separator line.
+  rect.Inset(kAppsGridLeftRightPadding +
+                 (-AppsGridView::GetTilePadding().left()) +
+                 kBottomSeparatorLeftRightPadding,
+             0);
+  int extra_bottom_padding =
+      kBottomSeparatorBottomPadding + AppsGridView::GetTilePadding().top();
+  rect.set_y(rect.bottom() - kBottomSeparatorHeight - extra_bottom_padding);
+  rect.set_height(kBottomSeparatorHeight);
+  SkColor color = kBottomSeparatorColor;
+  canvas->FillRect(rect, color);
+}
+
 void FolderHeaderView::ContentsChanged(views::Textfield* sender,
                                        const base::string16& new_contents) {
   // Temporarily remove from observer to ignore data change caused by us.
diff --git a/ui/app_list/views/folder_header_view.h b/ui/app_list/views/folder_header_view.h
index 5d5cb2f..52a49a4 100644
--- a/ui/app_list/views/folder_header_view.h
+++ b/ui/app_list/views/folder_header_view.h
@@ -68,6 +68,7 @@
   // views::View overrides:
   void Layout() override;
   bool OnKeyPressed(const ui::KeyEvent& event) override;
+  void OnPaint(gfx::Canvas* canvas) override;
 
   // views::TextfieldController overrides:
   void ContentsChanged(views::Textfield* sender,
diff --git a/ui/app_list/views/page_switcher.h b/ui/app_list/views/page_switcher.h
index 67348355f..5cb6c0bc 100644
--- a/ui/app_list/views/page_switcher.h
+++ b/ui/app_list/views/page_switcher.h
@@ -5,46 +5,26 @@
 #ifndef UI_APP_LIST_VIEWS_PAGE_SWITCHER_H_
 #define UI_APP_LIST_VIEWS_PAGE_SWITCHER_H_
 
-#include "base/macros.h"
-#include "ui/app_list/pagination_model_observer.h"
-#include "ui/views/controls/button/button.h"
+#include "ui/views/view.h"
 
 namespace app_list {
 
-class PaginationModel;
-
-// PageSwitcher represents its underlying PaginationModel with a button
-// strip. Each page in the PageinationModel has a button in the strip and
-// when the button is clicked, the corresponding page becomes selected.
-class PageSwitcher : public views::View,
-                     public views::ButtonListener,
-                     public PaginationModelObserver {
+// PageSwitcher represents its underlying PaginationModel with a button strip.
+// Each page in the PageinationModel has a button in the strip and when the
+// button is clicked, the corresponding page becomes selected.
+class PageSwitcher : public views::View {
  public:
-  PageSwitcher(PaginationModel* model, bool vertical);
-  ~PageSwitcher() override;
+  // Returns the page index of the page switcher button under the point. If no
+  // page switcher button is under the point, -1 is return. |point| is in
+  // PageSwitcher's coordinates.
+  virtual int GetPageForPoint(const gfx::Point& point) const = 0;
 
-  // Overridden from views::View:
-  gfx::Size CalculatePreferredSize() const override;
-  void Layout() override;
+  // Shows hover for button under the point. |point| is in PageSwitcher's
+  // coordinates.
+  virtual void UpdateUIForDragPoint(const gfx::Point& point) = 0;
 
- private:
-  // Overridden from views::ButtonListener:
-  void ButtonPressed(views::Button* sender, const ui::Event& event) override;
-
-  // Overridden from PaginationModelObserver:
-  void TotalPagesChanged() override;
-  void SelectedPageChanged(int old_selected, int new_selected) override;
-  void TransitionStarted() override;
-  void TransitionChanged() override;
-  void TransitionEnded() override;
-
-  PaginationModel* model_;  // Owned by AppsGridView.
-  views::View* buttons_;    // Owned by views hierarchy.
-
-  // True if the page switcher button strip should grow vertically.
-  const bool vertical_;
-
-  DISALLOW_COPY_AND_ASSIGN(PageSwitcher);
+  // Gets the screen bounds of the buttons in the page switcher.
+  virtual gfx::Rect GetButtonsBoundsInScreen() = 0;
 };
 
 }  // namespace app_list
diff --git a/ui/app_list/views/page_switcher.cc b/ui/app_list/views/page_switcher_vertical.cc
similarity index 66%
rename from ui/app_list/views/page_switcher.cc
rename to ui/app_list/views/page_switcher_vertical.cc
index c14d7c7b..05a652a 100644
--- a/ui/app_list/views/page_switcher.cc
+++ b/ui/app_list/views/page_switcher_vertical.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 "ui/app_list/views/page_switcher.h"
+#include "ui/app_list/views/page_switcher_vertical.h"
 
 #include <algorithm>
 
@@ -34,35 +34,26 @@
 constexpr int kNormalButtonRadius = 3;
 constexpr int kSelectedButtonRadius = 4;
 constexpr int kInkDropRadius = 8;
+// The padding on top/bottom side of each button.
+constexpr int kButtonPadding = 12;
 constexpr int kMaxButtonRadius = 8;
 constexpr int kPreferredButtonStripWidth = kMaxButtonRadius * 2;
-constexpr SkScalar kStrokeWidth = SkIntToScalar(1);
 
-// Constants for the button strip that grows vertically.
-// The padding on top/bottom side of each button.
-constexpr int kVerticalButtonPadding = 12;
 // The selected button color.
-constexpr SkColor kVerticalSelectedButtonColor = SK_ColorWHITE;
+constexpr SkColor kSelectedButtonColor = SK_ColorWHITE;
 // The normal button color (54% white).
-constexpr SkColor kVerticalNormalColor = SkColorSetA(SK_ColorWHITE, 138);
-constexpr SkColor kVerticalInkDropBaseColor = SK_ColorWHITE;
-constexpr SkColor kVerticalInkDropRippleColor =
-    SkColorSetA(kVerticalInkDropBaseColor, 20);
-constexpr SkColor kVerticalInkDropHighlightColor =
-    SkColorSetA(kVerticalInkDropBaseColor, 15);
+constexpr SkColor kNormalColor = SkColorSetA(SK_ColorWHITE, 138);
+constexpr SkColor kInkDropBaseColor = SK_ColorWHITE;
+constexpr SkColor kInkDropRippleColor = SkColorSetA(kInkDropBaseColor, 20);
+constexpr SkColor kInkDropHighlightColor = SkColorSetA(kInkDropBaseColor, 15);
 
-// Constants for the button strip that grows horizontally.
-// The padding on left/right side of each button.
-constexpr int kHorizontalButtonPadding = 6;
-// The normal button color (54% black).
-constexpr SkColor kHorizontalNormalColor = SkColorSetA(SK_ColorBLACK, 138);
+constexpr SkScalar kStrokeWidth = SkIntToScalar(1);
 
 class PageSwitcherButton : public views::Button {
  public:
-  PageSwitcherButton(views::ButtonListener* listener, bool vertical)
-      : views::Button(listener), vertical_(vertical) {
-    if (vertical)
-      SetInkDropMode(InkDropMode::ON);
+  explicit PageSwitcherButton(views::ButtonListener* listener)
+      : views::Button(listener) {
+    SetInkDropMode(InkDropMode::ON);
   }
 
   ~PageSwitcherButton() override {}
@@ -108,15 +99,15 @@
                      2 * kMaxButtonRadius);
     return std::make_unique<views::FloodFillInkDropRipple>(
         size(), GetLocalBounds().InsetsFrom(bounds),
-        GetInkDropCenterBasedOnLastEvent(), kVerticalInkDropRippleColor, 1.0f);
+        GetInkDropCenterBasedOnLastEvent(), kInkDropRippleColor, 1.0f);
   }
 
   std::unique_ptr<views::InkDropHighlight> CreateInkDropHighlight()
       const override {
     return std::make_unique<views::InkDropHighlight>(
         gfx::PointF(GetLocalBounds().CenterPoint()),
-        std::make_unique<views::CircleLayerDelegate>(
-            kVerticalInkDropHighlightColor, kInkDropRadius));
+        std::make_unique<views::CircleLayerDelegate>(kInkDropHighlightColor,
+                                                     kInkDropRadius));
   }
 
   void NotifyClick(const ui::Event& event) override {
@@ -137,13 +128,12 @@
   PaintButtonInfo BuildPaintButtonInfo() {
     PaintButtonInfo info;
     if (selected_) {
-      info.color =
-          vertical_ ? kVerticalSelectedButtonColor : kHorizontalNormalColor;
+      info.color = kSelectedButtonColor;
       info.style = cc::PaintFlags::kFill_Style;
       info.radius = SkIntToScalar(kSelectedButtonRadius);
       info.stroke_width = SkIntToScalar(0);
     } else {
-      info.color = vertical_ ? kVerticalNormalColor : kHorizontalNormalColor;
+      info.color = kNormalColor;
       info.style = cc::PaintFlags::kStroke_Style;
       info.radius = SkIntToScalar(kNormalButtonRadius);
       info.stroke_width = kStrokeWidth;
@@ -167,9 +157,6 @@
   // If this button is selected, set to true. By default, set to false;
   bool selected_ = false;
 
-  // True if the page switcher button strip should grow vertically.
-  const bool vertical_;
-
   DISALLOW_COPY_AND_ASSIGN(PageSwitcherButton);
 };
 
@@ -180,19 +167,13 @@
 
 }  // namespace
 
-PageSwitcher::PageSwitcher(PaginationModel* model, bool vertical)
-    : model_(model), buttons_(new views::View), vertical_(vertical) {
+PageSwitcherVertical::PageSwitcherVertical(PaginationModel* model)
+    : model_(model), buttons_(new views::View) {
   SetPaintToLayer();
   layer()->SetFillsBoundsOpaquely(false);
 
-  if (vertical_) {
-    buttons_->SetLayoutManager(std::make_unique<views::BoxLayout>(
-        views::BoxLayout::kVertical, gfx::Insets(), kVerticalButtonPadding));
-  } else {
-    buttons_->SetLayoutManager(std::make_unique<views::BoxLayout>(
-        views::BoxLayout::kHorizontal, gfx::Insets(),
-        kHorizontalButtonPadding));
-  }
+  buttons_->SetLayoutManager(std::make_unique<views::BoxLayout>(
+      views::BoxLayout::kVertical, gfx::Insets(), kButtonPadding));
 
   AddChildView(buttons_);
 
@@ -201,34 +182,68 @@
   model_->AddObserver(this);
 }
 
-PageSwitcher::~PageSwitcher() {
-  if (model_)
-    model_->RemoveObserver(this);
+PageSwitcherVertical::~PageSwitcherVertical() {
+  model_->RemoveObserver(this);
 }
 
-gfx::Size PageSwitcher::CalculatePreferredSize() const {
+int PageSwitcherVertical::GetPageForPoint(const gfx::Point& point) const {
+  if (!buttons_->bounds().Contains(point))
+    return -1;
+
+  gfx::Point buttons_point(point);
+  views::View::ConvertPointToTarget(this, buttons_, &buttons_point);
+
+  for (int i = 0; i < buttons_->child_count(); ++i) {
+    const views::View* button = buttons_->child_at(i);
+    if (button->bounds().Contains(buttons_point))
+      return i;
+  }
+
+  return -1;
+}
+
+void PageSwitcherVertical::UpdateUIForDragPoint(const gfx::Point& point) {
+  int page = GetPageForPoint(point);
+
+  const int button_count = buttons_->child_count();
+  if (page >= 0 && page < button_count) {
+    PageSwitcherButton* button =
+        static_cast<PageSwitcherButton*>(buttons_->child_at(page));
+    button->SetState(views::Button::STATE_HOVERED);
+    return;
+  }
+
+  for (int i = 0; i < button_count; ++i) {
+    PageSwitcherButton* button =
+        static_cast<PageSwitcherButton*>(buttons_->child_at(i));
+    button->SetState(views::Button::STATE_NORMAL);
+  }
+}
+
+gfx::Rect PageSwitcherVertical::GetButtonsBoundsInScreen() {
+  return buttons_->GetBoundsInScreen();
+}
+
+gfx::Size PageSwitcherVertical::CalculatePreferredSize() const {
   // Always return a size with correct width so that container resize is not
   // needed when more pages are added.
-  if (vertical_) {
-    return gfx::Size(kPreferredButtonStripWidth,
-                     buttons_->GetPreferredSize().height());
-  }
-  return gfx::Size(buttons_->GetPreferredSize().width(),
-                   kPreferredButtonStripWidth);
+  return gfx::Size(kPreferredButtonStripWidth,
+                   buttons_->GetPreferredSize().height());
 }
 
-void PageSwitcher::Layout() {
+void PageSwitcherVertical::Layout() {
   gfx::Rect rect(GetContentsBounds());
+
+  // Makes |buttons_| vertically center and horizontally fill.
   gfx::Size buttons_size(buttons_->GetPreferredSize());
-  rect.ClampToCenteredSize(buttons_size);
-  buttons_->SetBoundsRect(rect);
+  gfx::Rect buttons_bounds(rect.x(),
+                           rect.CenterPoint().y() - buttons_size.height() / 2,
+                           rect.width(), buttons_size.height());
+  buttons_->SetBoundsRect(gfx::IntersectRects(rect, buttons_bounds));
 }
 
-void PageSwitcher::ButtonPressed(views::Button* sender,
-                                 const ui::Event& event) {
-  if (!model_)
-    return;
-
+void PageSwitcherVertical::ButtonPressed(views::Button* sender,
+                                         const ui::Event& event) {
   for (int i = 0; i < buttons_->child_count(); ++i) {
     if (sender == static_cast<views::Button*>(buttons_->child_at(i))) {
       if (model_->selected_page() == i)
@@ -243,13 +258,10 @@
   }
 }
 
-void PageSwitcher::TotalPagesChanged() {
-  if (!model_)
-    return;
-
+void PageSwitcherVertical::TotalPagesChanged() {
   buttons_->RemoveAllChildViews(true);
   for (int i = 0; i < model_->total_pages(); ++i) {
-    PageSwitcherButton* button = new PageSwitcherButton(this, vertical_);
+    PageSwitcherButton* button = new PageSwitcherButton(this);
     button->SetAccessibleName(l10n_util::GetStringFUTF16(
         IDS_APP_LIST_PAGE_SWITCHER, base::FormatNumber(i + 1),
         base::FormatNumber(model_->total_pages())));
@@ -260,17 +272,18 @@
   Layout();
 }
 
-void PageSwitcher::SelectedPageChanged(int old_selected, int new_selected) {
+void PageSwitcherVertical::SelectedPageChanged(int old_selected,
+                                               int new_selected) {
   if (old_selected >= 0 && old_selected < buttons_->child_count())
     GetButtonByIndex(buttons_, old_selected)->SetSelected(false);
   if (new_selected >= 0 && new_selected < buttons_->child_count())
     GetButtonByIndex(buttons_, new_selected)->SetSelected(true);
 }
 
-void PageSwitcher::TransitionStarted() {}
+void PageSwitcherVertical::TransitionStarted() {}
 
-void PageSwitcher::TransitionChanged() {}
+void PageSwitcherVertical::TransitionChanged() {}
 
-void PageSwitcher::TransitionEnded() {}
+void PageSwitcherVertical::TransitionEnded() {}
 
 }  // namespace app_list
diff --git a/ui/app_list/views/page_switcher_vertical.h b/ui/app_list/views/page_switcher_vertical.h
new file mode 100644
index 0000000..25650aa
--- /dev/null
+++ b/ui/app_list/views/page_switcher_vertical.h
@@ -0,0 +1,55 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_APP_LIST_VIEWS_PAGE_SWITCHER_VERTICAL_H_
+#define UI_APP_LIST_VIEWS_PAGE_SWITCHER_VERTICAL_H_
+
+#include "base/macros.h"
+#include "ui/app_list/pagination_model_observer.h"
+#include "ui/app_list/views/page_switcher.h"
+#include "ui/views/controls/button/button.h"
+
+namespace app_list {
+
+class PaginationModel;
+
+// PageSwitcher represents its underlying PaginationModel with a button strip.
+// Each page in the PageinationModel has a button in the strip and when the
+// button is clicked, the corresponding page becomes selected.
+class PageSwitcherVertical : public PageSwitcher,
+                             public views::ButtonListener,
+                             public PaginationModelObserver {
+ public:
+  explicit PageSwitcherVertical(PaginationModel* model);
+  ~PageSwitcherVertical() override;
+
+  // Overridden from PageSwitcher:
+  int GetPageForPoint(const gfx::Point& point) const override;
+  void UpdateUIForDragPoint(const gfx::Point& point) override;
+  gfx::Rect GetButtonsBoundsInScreen() override;
+
+  // Overridden from views::View:
+  gfx::Size CalculatePreferredSize() const override;
+  void Layout() override;
+
+ private:
+  // Overridden from views::ButtonListener:
+  void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+
+  // Overridden from PaginationModelObserver:
+  void TotalPagesChanged() override;
+  void SelectedPageChanged(int old_selected, int new_selected) override;
+  void TransitionStarted() override;
+  void TransitionChanged() override;
+  void TransitionEnded() override;
+
+  PaginationModel* model_;  // Owned by AppsGridView.
+  views::View* buttons_;    // Owned by views hierarchy.
+
+  DISALLOW_COPY_AND_ASSIGN(PageSwitcherVertical);
+};
+
+}  // namespace app_list
+
+#endif  // UI_APP_LIST_VIEWS_PAGE_SWITCHER_VERTICAL_H_
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index 0e63f4b..38afc9c 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -176,10 +176,6 @@
     "//ui/compositor",
   ]
 
-  data_deps = [
-    "//services/ui",
-  ]
-
   if (use_x11) {
     deps += [
       "//ui/events/platform/x11",
diff --git a/ui/chromeos/ksv/BUILD.gn b/ui/chromeos/ksv/BUILD.gn
new file mode 100644
index 0000000..293a8f9
--- /dev/null
+++ b/ui/chromeos/ksv/BUILD.gn
@@ -0,0 +1,22 @@
+# 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.
+
+# ksv: Keyboard Shortcut Viewer
+source_set("ksv") {
+  output_name = "ui_chromeos_ksv"
+  sources = [
+    "keyboard_shortcut_item.cc",
+    "keyboard_shortcut_item.h",
+    "keyboard_shortcut_viewer_metadata.cc",
+    "keyboard_shortcut_viewer_metadata.h",
+    "ksv_export.h",
+  ]
+
+  defines = [ "KSV_IMPLEMENTATION" ]
+
+  deps = [
+    "//ui/chromeos/strings",
+    "//ui/events:events_base",
+  ]
+}
diff --git a/ui/chromeos/ksv/DEPS b/ui/chromeos/ksv/DEPS
new file mode 100644
index 0000000..bf8f56a
--- /dev/null
+++ b/ui/chromeos/ksv/DEPS
@@ -0,0 +1,7 @@
+include_rules = [
+  # KSV is intended to be a small app with restrictive DEPS in order to make it
+  # easy to be migrated to a completely independent mojo app under mustash.
+  "-ash",
+  "-chrome",
+  "+ui/events/keycodes"
+]
diff --git a/ui/chromeos/ksv/README.md b/ui/chromeos/ksv/README.md
new file mode 100644
index 0000000..132127e6
--- /dev/null
+++ b/ui/chromeos/ksv/README.md
@@ -0,0 +1,4 @@
+This directory contains Keyboard Shortcut Viewer (KSV), which is an easily
+discoverable and intuitively organized UI for users to be familiar with
+Chrome OS keyboard shortcuts. The KSV is designed as a self-contained app.
+Design doc: go/chrome-os-ksv
diff --git a/ui/chromeos/ksv/keyboard_shortcut_item.cc b/ui/chromeos/ksv/keyboard_shortcut_item.cc
new file mode 100644
index 0000000..1fbb3d9
--- /dev/null
+++ b/ui/chromeos/ksv/keyboard_shortcut_item.cc
@@ -0,0 +1,38 @@
+// 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 "ui/chromeos/ksv/keyboard_shortcut_item.h"
+
+#include <tuple>
+
+#include "base/logging.h"
+
+namespace keyboard_shortcut_viewer {
+
+bool AcceleratorId::operator<(const AcceleratorId& other) const {
+  return std::tie(keycode, modifiers) <
+         std::tie(other.keycode, other.modifiers);
+}
+
+KeyboardShortcutItem::KeyboardShortcutItem(
+    const std::vector<ShortcutCategory>& categories,
+    int description_message_id,
+    int shortcut_message_id,
+    const std::vector<AcceleratorId>& accelerator_ids,
+    const std::vector<ui::KeyboardCode>& shortcut_key_codes)
+    : categories(categories),
+      description_message_id(description_message_id),
+      shortcut_message_id(shortcut_message_id),
+      accelerator_ids(accelerator_ids),
+      shortcut_key_codes(shortcut_key_codes) {
+  DCHECK(!categories.empty());
+  DCHECK(!accelerator_ids.empty() || !shortcut_key_codes.empty());
+}
+
+KeyboardShortcutItem::KeyboardShortcutItem(const KeyboardShortcutItem& other) =
+    default;
+
+KeyboardShortcutItem::~KeyboardShortcutItem() = default;
+
+}  // namespace keyboard_shortcut_viewer
diff --git a/ui/chromeos/ksv/keyboard_shortcut_item.h b/ui/chromeos/ksv/keyboard_shortcut_item.h
new file mode 100644
index 0000000..f5da4b1
--- /dev/null
+++ b/ui/chromeos/ksv/keyboard_shortcut_item.h
@@ -0,0 +1,104 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_ITEM_H_
+#define UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_ITEM_H_
+
+#include <vector>
+
+#include "base/macros.h"
+#include "ui/chromeos/ksv/ksv_export.h"
+#include "ui/events/keycodes/keyboard_codes.h"
+
+namespace keyboard_shortcut_viewer {
+
+// The categories the shortcut belongs to. Used to group shortcuts in the
+// viewer.
+enum class ShortcutCategory {
+  kPopular = 0,
+  kTabAndWindow,
+  kPageAndBrowser,
+  kSystemAndDisplay,
+  kTextEditing,
+  kAccessibility,
+};
+
+// AcceleratorId describes an accelerator key + modifiers combination. //ash
+// and //chrome provide helpers for working with accelerator combinations but
+// we cannot depend on them here. The key + modifiers are also used to populate
+// the values of |shortcut_key_codes| field in KeyboardShortcutItem, in order to
+// show the key and modifiers in the viewer with different styles.
+struct KSV_EXPORT AcceleratorId {
+  bool operator<(const AcceleratorId& other) const;
+
+  ui::KeyboardCode keycode = ui::VKEY_UNKNOWN;
+  int modifiers = 0;
+};
+
+// Metadata about a VKEY-based keyboard shortcut in ui::Accelerator tables in
+// both //ash and //chrome, including descriptive string resources ids.
+// For example, a shortcut with description string of "Go to previous
+// page in your browsing history" has shortcut string of "Alt + left arrow" and
+// the category of Category::kTabAndWindow.
+// To make the replacement parts highlighted in the UI, in this case, the I18n
+// string of the shortcut is "<ph name="modifier">$1<ex>ALT</ex></ph> +
+// <ph name="key">$2<ex>V</ex></ph>". The l10n_util::GetStringFUTF16() will
+// return the offsets of the replacements, which are used to generate style
+// ranges to insert symbols for the modifiers and key. The first placeholder
+// (modifier) will be replaced by text "Alt" for search. The second placeholder
+// (key) will be replaced by text "left arrow" so that users can search by
+// "left" and/or "arrow". But the UI representation of the key is an icon of
+// "left arrow".
+struct KSV_EXPORT KeyboardShortcutItem {
+  KeyboardShortcutItem(
+      const std::vector<ShortcutCategory>& categories,
+      int description_message_id,
+      int shortcut_message_id,
+      const std::vector<AcceleratorId>& accelerator_ids,
+      const std::vector<ui::KeyboardCode>& shortcut_key_codes = {});
+  explicit KeyboardShortcutItem(const KeyboardShortcutItem& other);
+  ~KeyboardShortcutItem();
+
+  // The categories this shortcut belongs to.
+  std::vector<ShortcutCategory> categories;
+
+  // Id of the message resource describing what action the shortcut performs.
+  int description_message_id;
+
+  // Id of the message template resource used to list the keys making up the
+  // shortcut.
+  int shortcut_message_id;
+
+  // Multiple accelerators can be mapped to the same KeyboardShortcutItem.
+  // |shortcut_key_codes| could be auto-generated from |accelerator_ids| to
+  // avoid duplicates.
+  //  There are four rules:
+  //  1. For regular accelerators, we show all modifiers and key in order, then
+  //     we can auto-generate it by |accelerator_ids| (actually only one
+  //     accelerator_id in this case).
+  //  2. For grouped |accelerator_ids| with the same modifiers, we can
+  //     auto-generate the modifiers. We will not show the key.
+  //     E.g. shortcuts for "CTRL + 1 through 8.", we will provide
+  //     shortcut_string " + 1 through 8", and auto-generate {ui::VKEY_CONTROL}.
+  //  3. For grouped |accelerator_ids| with different modifiers, e.g.
+  //     SHOW_KEYBOARD_OVERLAY, we can not auto-generate it and we will provide
+  //     the |shortcut_key_codes|.
+  //  4. For ksv items not in the two accelerator_tables, we will provide the
+  //     |shortcut_key_codes| and |accelerator_ids| will be empty.
+  std::vector<AcceleratorId> accelerator_ids;
+
+  // The VKEY codes of the key and each modifier comprising the shortcut. These
+  // are translated to text or icons representing each key, and substituted into
+  // the shortcut-message template string, to display to the user.
+  // For example of shortcut "Alt + left arrow", |shortcut_key_codes| will be
+  // {ui::VKEY_LMENU, ui::VKEY_LEFT}. ui::VKEY_LMENU indicates to display a text
+  // "Alt" and ui::VKEY_LEFT insidcates to display an icon of "left arrow".
+  // Note that the modifier is converted to ui::KeyboardCode so that there is
+  // only one enum type to deal with.
+  std::vector<ui::KeyboardCode> shortcut_key_codes;
+};
+
+}  // namespace keyboard_shortcut_viewer
+
+#endif  // UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_ITEM_H_
diff --git a/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.cc b/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.cc
new file mode 100644
index 0000000..092951c
--- /dev/null
+++ b/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.cc
@@ -0,0 +1,40 @@
+// 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 "ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.h"
+
+#include "base/macros.h"
+#include "ui/chromeos/ksv/keyboard_shortcut_item.h"
+#include "ui/chromeos/strings/grit/ui_chromeos_strings.h"
+#include "ui/events/event_constants.h"
+
+namespace keyboard_shortcut_viewer {
+
+const std::vector<KeyboardShortcutItem>& GetKeyboardShortcutItemList() {
+  CR_DEFINE_STATIC_LOCAL(
+      std::vector<KeyboardShortcutItem>, item_list,
+      // TODO(crbug.com/793997): These are two examples how we organize the
+      // metadata. Full metadata will be provided.
+      ({{// |categories|
+         {ShortcutCategory::kPopular, ShortcutCategory::kSystemAndDisplay},
+         IDS_KSV_DESCRIPTION_LOCK_SCREEN,
+         IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY,
+         // |accelerator_ids|
+         {{ui::VKEY_L, ui::EF_COMMAND_DOWN}}},
+
+        // Some accelerators are grouped into one metadata for the
+        // KeyboardShortcutViewer due to the similarity. E.g. the shortcut for
+        // "Change screen resolution" is "Ctrl + Shift and + or -", which groups
+        // two accelerators.
+        {// |categories|
+         {ShortcutCategory::kSystemAndDisplay},
+         IDS_KSV_DESCRIPTION_CHANGE_SCREEN_RESOLUTION,
+         IDS_KSV_SHORTCUT_CHANGE_SCREEN_RESOLUTION,
+         // |accelerator_ids|
+         {{ui::VKEY_OEM_MINUS, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN},
+          {ui::VKEY_OEM_PLUS, ui::EF_CONTROL_DOWN | ui::EF_SHIFT_DOWN}}}}));
+  return item_list;
+}
+
+}  // namespace keyboard_shortcut_viewer
diff --git a/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.h b/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.h
new file mode 100644
index 0000000..541b723
--- /dev/null
+++ b/ui/chromeos/ksv/keyboard_shortcut_viewer_metadata.h
@@ -0,0 +1,22 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_VIEWER_METADATA_H_
+#define UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_VIEWER_METADATA_H_
+
+#include <vector>
+
+#include "ui/chromeos/ksv/ksv_export.h"
+
+namespace keyboard_shortcut_viewer {
+
+struct KeyboardShortcutItem;
+
+// Returns a list of Ash and Chrome keyboard shortcuts metadata.
+KSV_EXPORT const std::vector<KeyboardShortcutItem>&
+GetKeyboardShortcutItemList();
+
+}  // namespace keyboard_shortcut_viewer
+
+#endif  // UI_CHROMEOS_KSV_KEYBOARD_SHORTCUT_VIEWER_METADATA_H_
diff --git a/ui/chromeos/ksv/keyboard_shortcut_viewer_strings.grdp b/ui/chromeos/ksv/keyboard_shortcut_viewer_strings.grdp
new file mode 100644
index 0000000..63cf7d4
--- /dev/null
+++ b/ui/chromeos/ksv/keyboard_shortcut_viewer_strings.grdp
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<grit-part>
+  <!-- Generic shortcut strings -->
+  <message name="IDS_KSV_SHORTCUT_ONE_MODIFIER_ONE_KEY" desc="Human readable version of the keyboard shortcut. This is for all single modifier shortcuts.">
+    <ph name="modifier">$1<ex>CTRL</ex></ph> + <ph name="key">$2<ex>V</ex></ph>
+  </message>
+
+  <message name="IDS_KSV_DESCRIPTION_LOCK_SCREEN" desc="Description of the command in keyboard shortcut viewer.">
+    Lock your screen
+  </message>
+
+  <message name="IDS_KSV_DESCRIPTION_CHANGE_SCREEN_RESOLUTION" desc="Description of the command in keyboard shortcut viewer.">
+    Change screen resolution
+  </message>
+  <message name="IDS_KSV_SHORTCUT_CHANGE_SCREEN_RESOLUTION" desc="Human readable version of the keyboard shortcut.">
+    <ph name="ctrl">$1</ph> + <ph name="shift">$2</ph> and + or -
+  </message>
+</grit-part>
diff --git a/ui/chromeos/ksv/ksv_export.h b/ui/chromeos/ksv/ksv_export.h
new file mode 100644
index 0000000..925cf585
--- /dev/null
+++ b/ui/chromeos/ksv/ksv_export.h
@@ -0,0 +1,32 @@
+// Copyright 2018 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_CHROMEOS_KSV_KSV_EXPORT_H_
+#define UI_CHROMEOS_KSV_KSV_EXPORT_H_
+
+// Defines KSV_EXPORT so that functionality implemented by
+// the keyboard shortcut viewer module can be exported to consumers.
+
+#if defined(COMPONENT_BUILD)
+#if defined(WIN32)
+
+#if defined(KSV_IMPLEMENTATION)
+#define KSV_EXPORT __declspec(dllexport)
+#else
+#define KSV_EXPORT __declspec(dllimport)
+#endif  // defined(KSV_IMPLEMENTATION)
+
+#else  // defined(WIN32)
+#if defined(KSV_IMPLEMENTATION)
+#define KSV_EXPORT __attribute__((visibility("default")))
+#else
+#define KSV_EXPORT
+#endif
+#endif
+
+#else  // defined(COMPONENT_BUILD)
+#define KSV_EXPORT
+#endif
+
+#endif  // UI_CHROMEOS_KSV_KSV_EXPORT_H_
diff --git a/ui/chromeos/ui_chromeos_strings.grd b/ui/chromeos/ui_chromeos_strings.grd
index 90fcccb..b4e1fd5 100644
--- a/ui/chromeos/ui_chromeos_strings.grd
+++ b/ui/chromeos/ui_chromeos_strings.grd
@@ -120,6 +120,8 @@
   </translations>
   <release seq="1" allow_pseudo="false">
     <messages fallback_to_english="true">
+      <part file="ksv/keyboard_shortcut_viewer_strings.grdp" />
+
       <!-- Default user profile images. -->
       <!-- User Image default image accessible descriptions -->
       <message name="IDS_LOGIN_DEFAULT_USER_DESC_19" desc="Description of the default user icon with a picture of a bicycle">
diff --git a/ui/compositor/BUILD.gn b/ui/compositor/BUILD.gn
index b8f0cac..5a0df5d 100644
--- a/ui/compositor/BUILD.gn
+++ b/ui/compositor/BUILD.gn
@@ -151,8 +151,8 @@
     "//components/viz/host",
     "//components/viz/service",
     "//components/viz/test:test_support",
-    "//gpu/command_buffer/client:gles2_c_lib",
     "//gpu/command_buffer/client:gles2_implementation",
+    "//gpu/command_buffer/client:raster",
     "//gpu/command_buffer/common",
     "//gpu/ipc:gl_in_process_context",
     "//gpu/skia_bindings",
diff --git a/ui/compositor/test/in_process_context_provider.cc b/ui/compositor/test/in_process_context_provider.cc
index e6061dc..8c72225 100644
--- a/ui/compositor/test/in_process_context_provider.cc
+++ b/ui/compositor/test/in_process_context_provider.cc
@@ -13,7 +13,6 @@
 #include "base/trace_event/trace_event.h"
 #include "components/viz/common/gpu/context_cache_controller.h"
 #include "gpu/command_buffer/client/gles2_implementation.h"
-#include "gpu/command_buffer/client/gles2_lib.h"
 #include "gpu/command_buffer/client/raster_implementation_gles.h"
 #include "gpu/command_buffer/client/shared_memory_limits.h"
 #include "gpu/ipc/gl_in_process_context.h"
diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc
index 433ff446..8021d0a 100644
--- a/ui/events/android/motion_event_android.cc
+++ b/ui/events/android/motion_event_android.cc
@@ -341,6 +341,22 @@
       AttachCurrentThread(), event_, pointer_index));
 }
 
+float MotionEventAndroid::GetXPix(size_t pointer_index) const {
+  DCHECK_LT(pointer_index, cached_pointer_count_);
+  if (pointer_index < MAX_POINTERS_TO_CACHE)
+    return cached_pointers_[pointer_index].position.x() / pix_to_dip_;
+  return JNI_MotionEvent::Java_MotionEvent_getXF_I(AttachCurrentThread(),
+                                                   event_, pointer_index);
+}
+
+float MotionEventAndroid::GetYPix(size_t pointer_index) const {
+  DCHECK_LT(pointer_index, cached_pointer_count_);
+  if (pointer_index < MAX_POINTERS_TO_CACHE)
+    return cached_pointers_[pointer_index].position.y() / pix_to_dip_;
+  return JNI_MotionEvent::Java_MotionEvent_getYF_I(AttachCurrentThread(),
+                                                   event_, pointer_index);
+}
+
 float MotionEventAndroid::GetRawX(size_t pointer_index) const {
   return GetX(pointer_index) + cached_raw_position_offset_.x();
 }
diff --git a/ui/events/android/motion_event_android.h b/ui/events/android/motion_event_android.h
index e23d0e5..e45ece7f 100644
--- a/ui/events/android/motion_event_android.h
+++ b/ui/events/android/motion_event_android.h
@@ -79,6 +79,9 @@
 
   // Convenience method returning the pointer at index 0.
   gfx::PointF GetPoint() const { return gfx::PointF(GetX(0), GetY(0)); }
+  gfx::PointF GetPointPix() const {
+    return gfx::PointF(GetXPix(0), GetYPix(0));
+  }
 
   // ui::MotionEvent methods.
   uint32_t GetUniqueEventId() const override;
@@ -119,6 +122,9 @@
 
   base::android::ScopedJavaLocalRef<jobject> GetJavaObject() const;
 
+  float GetXPix(size_t pointer_index) const;
+  float GetYPix(size_t pointer_index) const;
+
  private:
   struct CachedPointer;
 
diff --git a/ui/events/event_utils.cc b/ui/events/event_utils.cc
index 796518f1..2ac65ff6 100644
--- a/ui/events/event_utils.cc
+++ b/ui/events/event_utils.cc
@@ -135,4 +135,19 @@
   }
 }
 
+void ConvertEventLocationToTargetWindowLocation(
+    const gfx::Point& target_window_origin,
+    const gfx::Point& current_window_origin,
+    ui::LocatedEvent* located_event) {
+  if (current_window_origin == target_window_origin)
+    return;
+
+  DCHECK(located_event);
+  gfx::Vector2d offset = current_window_origin - target_window_origin;
+  gfx::PointF location_in_pixel_in_host =
+      located_event->location_f() + gfx::Vector2dF(offset);
+  located_event->set_location_f(location_in_pixel_in_host);
+  located_event->set_root_location_f(location_in_pixel_in_host);
+}
+
 }  // namespace ui
diff --git a/ui/events/event_utils.h b/ui/events/event_utils.h
index f15a2dba..5e1d931 100644
--- a/ui/events/event_utils.h
+++ b/ui/events/event_utils.h
@@ -177,6 +177,14 @@
 // Registers a custom event type.
 EVENTS_EXPORT int RegisterCustomEventType();
 
+// Updates the location of |located_event| from |current_window_origin| to be in
+// |target_window_origin|'s coordinate system so that it can be dispatched to a
+// window based on |target_window_origin|.
+EVENTS_EXPORT void ConvertEventLocationToTargetWindowLocation(
+    const gfx::Point& target_window_origin,
+    const gfx::Point& current_window_origin,
+    ui::LocatedEvent* located_event);
+
 }  // namespace ui
 
 #endif  // UI_EVENTS_EVENT_UTILS_H_
diff --git a/ui/file_manager/file_manager/foreground/js/import_controller.js b/ui/file_manager/file_manager/foreground/js/import_controller.js
index 0454b59b..b449abd 100644
--- a/ui/file_manager/file_manager/foreground/js/import_controller.js
+++ b/ui/file_manager/file_manager/foreground/js/import_controller.js
@@ -805,11 +805,13 @@
 importer.RuntimeCommandWidget.prototype.update = function(
     activityState, opt_scan, opt_destinationSizeBytes) {
   if (opt_scan) {
-    if (opt_scan.getFileEntries().length) {
-      var photosText = strf('CLOUD_IMPORT_ONE_FILE');
+    const detectedFilesCount = opt_scan.getFileEntries().length;
+    if (detectedFilesCount) {
+      var photosText = detectedFilesCount == 1 ?
+          strf('CLOUD_IMPORT_ONE_FILE') :
+          strf('CLOUD_IMPORT_MULTIPLE_FILES', detectedFilesCount);
     } else {
-      var photosText =
-          strf('CLOUD_IMPORT_ONE_FILE', opt_scan.getFileEntries().length);
+      var photosText = '';
     }
   }
   switch(activityState) {
diff --git a/ui/gfx/canvas_unittest.cc b/ui/gfx/canvas_unittest.cc
index 837518a..25bc314 100644
--- a/ui/gfx/canvas_unittest.cc
+++ b/ui/gfx/canvas_unittest.cc
@@ -72,12 +72,11 @@
 }
 
 // Line height is only supported on Skia.
-#if defined(OS_MACOSX) || defined(OS_ANDROID)
+#if defined(OS_ANDROID)
 #define MAYBE_StringSizeWithLineHeight DISABLED_StringSizeWithLineHeight
 #else
 #define MAYBE_StringSizeWithLineHeight StringSizeWithLineHeight
 #endif
-
 TEST_F(CanvasTest, MAYBE_StringSizeWithLineHeight) {
   gfx::Size one_line_size = SizeStringInt("Q", 0, 0);
   gfx::Size four_line_size = SizeStringInt("Q\nQ\nQ\nQ", 1000000, 1000);
diff --git a/ui/gfx/canvas_unittest_mac.mm b/ui/gfx/canvas_unittest_mac.mm
index 99b2570..78d0487c 100644
--- a/ui/gfx/canvas_unittest_mac.mm
+++ b/ui/gfx/canvas_unittest_mac.mm
@@ -49,8 +49,8 @@
 
     float canvas_width = kReallyLargeNumber;
     float canvas_height = kReallyLargeNumber;
-    Canvas::SizeStringFloat(
-        text16, font_list, &canvas_width, &canvas_height, 0, 0);
+    Canvas::SizeStringFloat(text16, font_list, &canvas_width, &canvas_height, 0,
+                            0, Typesetter::NATIVE);
 
     EXPECT_NE(kReallyLargeNumber, mac_width) << "no width for " << text;
     EXPECT_NE(kReallyLargeNumber, mac_height) << "no height for " << text;
@@ -64,10 +64,9 @@
   Font font_;
 };
 
- // Tests that Canvas' SizeStringFloat yields result consistent with a native
- // implementation.
-// Disabled for the typesetter migration. http://crbug.com/803354.
-TEST_F(CanvasTestMac, DISABLED_StringSizeIdenticalForSkia) {
+// Tests that Canvas' SizeStringFloat yields result consistent with a native
+// implementation when using Typesetter::NATIVE.
+TEST_F(CanvasTestMac, StringSizeIdenticalForSkia) {
   CompareSizes("");
   CompareSizes("Foo");
   CompareSizes("Longword");
@@ -80,8 +79,8 @@
   float height = kReallyLargeNumber;
 
   FontList font_list;
-  Canvas::SizeStringFloat(
-      base::UTF8ToUTF16("Test"), font_list, &width, &height, 0, 0);
+  Canvas::SizeStringFloat(base::UTF8ToUTF16("Test"), font_list, &width, &height,
+                          0, 0, Typesetter::NATIVE);
 
   EXPECT_GT(width, static_cast<int>(width));
 }
diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc
index b5f58764e..75f68b9 100644
--- a/ui/gfx/render_text.cc
+++ b/ui/gfx/render_text.cc
@@ -913,11 +913,6 @@
                         sel.is_reversed() ? CURSOR_BACKWARD : CURSOR_FORWARD);
 }
 
-std::vector<Rect> RenderText::GetSubstringBoundsForTesting(
-    const gfx::Range& range) {
-  return GetSubstringBounds(range);
-}
-
 const Vector2d& RenderText::GetUpdatedDisplayOffset() {
   UpdateCachedBoundsAndOffset();
   return display_offset_;
diff --git a/ui/gfx/render_text.h b/ui/gfx/render_text.h
index 0b8b82a..950dd48 100644
--- a/ui/gfx/render_text.h
+++ b/ui/gfx/render_text.h
@@ -478,8 +478,13 @@
   // chosen.
   virtual std::vector<FontSpan> GetFontSpansForTesting() = 0;
 
-  // Helper function to be used in tests for retrieving the substring bounds.
-  std::vector<Rect> GetSubstringBoundsForTesting(const gfx::Range& range);
+  // Get the visual bounds containing the logical substring within the |range|.
+  // If |range| is empty, the result is empty. These bounds could be visually
+  // discontinuous if the substring is split by a LTR/RTL level change.
+  // These bounds are in local coordinates, but may be outside the visible
+  // region if the text is longer than the textfield. Subsequent text, cursor,
+  // or bounds changes may invalidate returned values.
+  virtual std::vector<Rect> GetSubstringBounds(const Range& range) = 0;
 
   // Gets the horizontal span (relative to the left of the text, not the view)
   // of the sequence of glyphs in |text_range|, over which the cursor will
@@ -585,14 +590,6 @@
   // Sets the selection model, |model| is assumed to be valid.
   void SetSelectionModel(const SelectionModel& model);
 
-  // Get the visual bounds containing the logical substring within the |range|.
-  // If |range| is empty, the result is empty. These bounds could be visually
-  // discontinuous if the substring is split by a LTR/RTL level change.
-  // These bounds are in local coordinates, but may be outside the visible
-  // region if the text is longer than the textfield. Subsequent text, cursor,
-  // or bounds changes may invalidate returned values.
-  virtual std::vector<Rect> GetSubstringBounds(const Range& range) = 0;
-
   // Convert between indices into |text_| and indices into
   // GetDisplayText(), which differ when the text is obscured,
   // truncated or elided. Regardless of whether or not the text is
diff --git a/ui/gfx/render_text_unittest.cc b/ui/gfx/render_text_unittest.cc
index ea11f54..abb7c81d4 100644
--- a/ui/gfx/render_text_unittest.cc
+++ b/ui/gfx/render_text_unittest.cc
@@ -533,8 +533,7 @@
 #endif
 
   Rect GetSubstringBoundsUnion(const Range& range) {
-    const std::vector<Rect> bounds =
-        render_text_->GetSubstringBoundsForTesting(range);
+    const std::vector<Rect> bounds = render_text_->GetSubstringBounds(range);
     return std::accumulate(bounds.begin(), bounds.end(), Rect(), UnionRects);
   }
 
diff --git a/ui/latency/latency_tracker.cc b/ui/latency/latency_tracker.cc
index 6b50846..85e2592 100644
--- a/ui/latency/latency_tracker.cc
+++ b/ui/latency/latency_tracker.cc
@@ -104,13 +104,6 @@
   }
 }
 
-void LatencyTracker::ReportRapporScrollLatency(
-    const std::string& name,
-    const LatencyInfo::LatencyComponent& start_component,
-    const LatencyInfo::LatencyComponent& end_component) {
-  // Only supported by RenderWidgetHostLatencyTracker.
-}
-
 void LatencyTracker::ReportUkmScrollLatency(
     const InputMetricEvent& metric_event,
     const LatencyInfo::LatencyComponent& start_component,
@@ -193,10 +186,6 @@
           original_component, gpu_swap_begin_component);
     }
 
-    ReportRapporScrollLatency("Event.Latency.ScrollBegin." + input_modality +
-                                  ".TimeToScrollUpdateSwapBegin2",
-                              original_component, gpu_swap_begin_component);
-
   } else if (latency.FindLatency(
                  ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT,
                  &original_component)) {
@@ -215,10 +204,6 @@
           original_component, gpu_swap_begin_component);
     }
 
-    ReportRapporScrollLatency("Event.Latency.ScrollUpdate." + input_modality +
-                                  ".TimeToScrollUpdateSwapBegin2",
-                              original_component, gpu_swap_begin_component);
-
   } else if (latency.FindLatency(ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0,
                                  &original_component)) {
     if (latency.source_event_type() == SourceEventType::KEY_PRESS) {
diff --git a/ui/latency/latency_tracker.h b/ui/latency/latency_tracker.h
index f0180ebc4..24397fc 100644
--- a/ui/latency/latency_tracker.h
+++ b/ui/latency/latency_tracker.h
@@ -29,11 +29,6 @@
  protected:
   ukm::SourceId ukm_source_id() const { return ukm_source_id_; }
 
-  virtual void ReportRapporScrollLatency(
-      const std::string& name,
-      const LatencyInfo::LatencyComponent& start_component,
-      const LatencyInfo::LatencyComponent& end_component);
-
  private:
   enum class InputMetricEvent {
     SCROLL_BEGIN_TOUCH = 0,
diff --git a/ui/shell_dialogs/select_file_dialog_mac.mm b/ui/shell_dialogs/select_file_dialog_mac.mm
index e408e215..33f2661e 100644
--- a/ui/shell_dialogs/select_file_dialog_mac.mm
+++ b/ui/shell_dialogs/select_file_dialog_mac.mm
@@ -429,6 +429,18 @@
   return [url isFileURL];
 }
 
+- (BOOL)panel:(id)sender validateURL:(NSURL*)url error:(NSError**)outError {
+  // Refuse to accept users closing the dialog with a key repeat, since the key
+  // may have been first pressed while the user was looking at insecure content.
+  // See https://crbug.com/637098.
+  if ([[NSApp currentEvent] type] == NSKeyDown &&
+      [[NSApp currentEvent] isARepeat]) {
+    return NO;
+  }
+
+  return YES;
+}
+
 @end
 
 @implementation ExtensionDropdownHandler
diff --git a/ui/snapshot/snapshot.cc b/ui/snapshot/snapshot.cc
index 756f65d..0c26ef2 100644
--- a/ui/snapshot/snapshot.cc
+++ b/ui/snapshot/snapshot.cc
@@ -21,6 +21,8 @@
 
 scoped_refptr<base::RefCountedMemory> EncodeImageAsPNG(
     const gfx::Image& image) {
+  if (image.IsEmpty())
+    return nullptr;
   std::vector<uint8_t> result;
   DCHECK(!image.AsImageSkia().GetRepresentation(1.0f).is_null());
   gfx::PNGCodec::FastEncodeBGRASkBitmap(image.AsBitmap(), true, &result);
diff --git a/ui/snapshot/snapshot_android.cc b/ui/snapshot/snapshot_android.cc
index 8151090..dbf0a89 100644
--- a/ui/snapshot/snapshot_android.cc
+++ b/ui/snapshot/snapshot_android.cc
@@ -38,6 +38,11 @@
     gfx::NativeWindow window,
     const gfx::Rect& source_rect,
     viz::CopyOutputRequest::CopyOutputRequestCallback callback) {
+  if (!window->GetCompositor()) {
+    std::move(callback).Run(std::make_unique<viz::CopyOutputResult>(
+        viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP, gfx::Rect()));
+    return;
+  }
   std::unique_ptr<viz::CopyOutputRequest> request =
       std::make_unique<viz::CopyOutputRequest>(
           viz::CopyOutputRequest::ResultFormat::RGBA_BITMAP,
diff --git a/ui/strings/translations/ui_strings_am.xtb b/ui/strings/translations/ui_strings_am.xtb
index 8bfaec53..630adbd3 100644
--- a/ui/strings/translations/ui_strings_am.xtb
+++ b/ui/strings/translations/ui_strings_am.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">ቅጽበታዊ ገጽ እይታ</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{ከ1 ወር በፊት}one{ከ# ወሮች በፊት}other{ከ# ወሮች በፊት}}</translation>
 <translation id="4316910396681052118">ሁሉም መተግበሪያዎች</translation>
-<translation id="4320177379694898372">ምንም የበይነመረብ ግንኙነት የለም</translation>
 <translation id="4588090240171750605">ወደ ቀኝ ሸብልል</translation>
 <translation id="4724120544754982507">የማሳወቂያ ማዕከል፣ <ph name="UNREAD_NOTIFICATION_COUNT" /> ያልተነበቡ ማሳወቂያዎች</translation>
 <translation id="4730374152663651037">በብዛት ጥቅም ላይ የዋለ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">የግራ ጠርዝ</translation>
 <translation id="8331626408530291785">ወደ ላይ ሸብልል</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 አመት}one{# ዓመቶች}other{# ዓመቶች}}</translation>
-<translation id="8371695176452482769">አሁን ይናገሩ</translation>
 <translation id="838869780401515933">አመልክት</translation>
 <translation id="8393700583063109961">መልዕክት ይላኩ</translation>
 <translation id="8394908167088220973">ሚዲያ አጫውት/ለአፍታ አቁም</translation>
diff --git a/ui/strings/translations/ui_strings_ar.xtb b/ui/strings/translations/ui_strings_ar.xtb
index 234c1ba..a8aea46c 100644
--- a/ui/strings/translations/ui_strings_ar.xtb
+++ b/ui/strings/translations/ui_strings_ar.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">لقطة شاشة</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{قبل شهر واحد}zero{قبل # شهر}two{قبل شهرين (#)}few{قبل # أشهر}many{قبل # شهرًا}other{قبل # شهر}}</translation>
 <translation id="4316910396681052118">جميع التطبيقات</translation>
-<translation id="4320177379694898372">لا يتوفر اتصال بالإنترنت</translation>
 <translation id="4588090240171750605">التمرير إلى اليسار</translation>
 <translation id="4724120544754982507">مركز الإشعارات، <ph name="UNREAD_NOTIFICATION_COUNT" /> من الإشعارات غير المقروءة</translation>
 <translation id="4730374152663651037">التطبيقات المستخدمة بشكل متكرر</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">الحافة اليمنى</translation>
 <translation id="8331626408530291785">التمرير إلى أعلى</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{سنة واحدة}zero{# سنة}two{سنتان (#)}few{# سنوات}many{# سنةً}other{# سنة}}</translation>
-<translation id="8371695176452482769">تحدث الآن</translation>
 <translation id="838869780401515933">الاختيار</translation>
 <translation id="8393700583063109961">إرسال رسالة</translation>
 <translation id="8394908167088220973">تشغيل/إيقاف الوسائط</translation>
diff --git a/ui/strings/translations/ui_strings_bg.xtb b/ui/strings/translations/ui_strings_bg.xtb
index 3c8d551..94d3a0d0 100644
--- a/ui/strings/translations/ui_strings_bg.xtb
+++ b/ui/strings/translations/ui_strings_bg.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Eкранна снимка</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Преди 1 месец}other{Преди # месеца}}</translation>
 <translation id="4316910396681052118">ВСИЧКИ ПРИЛОЖЕНИЯ</translation>
-<translation id="4320177379694898372">Няма връзка с интернет</translation>
 <translation id="4588090240171750605">Превъртане надясно</translation>
 <translation id="4724120544754982507">Център за известия, <ph name="UNREAD_NOTIFICATION_COUNT" /> непрочетени</translation>
 <translation id="4730374152663651037">ЧЕСТО ИЗПОЛЗВАНИ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Ляв край</translation>
 <translation id="8331626408530291785">Превъртане нагоре</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 година}other{# години}}</translation>
-<translation id="8371695176452482769">Говорете сега</translation>
 <translation id="838869780401515933">отмятане</translation>
 <translation id="8393700583063109961">Изпратете съобщение</translation>
 <translation id="8394908167088220973">Мултимедия, пускане/пауза</translation>
diff --git a/ui/strings/translations/ui_strings_bn.xtb b/ui/strings/translations/ui_strings_bn.xtb
index 2b0e65c5..62747cb 100644
--- a/ui/strings/translations/ui_strings_bn.xtb
+++ b/ui/strings/translations/ui_strings_bn.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">স্ক্রীনশট</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{১ মাস আগে}one{# মাস আগে}other{# মাস আগে}}</translation>
 <translation id="4316910396681052118">সব অ্যাপ</translation>
-<translation id="4320177379694898372">কোনো ইন্টারনেট সংযোগ নেই</translation>
 <translation id="4588090240171750605">ডান দিকে স্ক্রোল করুন</translation>
 <translation id="4724120544754982507">বিজ্ঞপ্তি কেন্দ্র, <ph name="UNREAD_NOTIFICATION_COUNT" />টি না পড়া বিজ্ঞপ্তি</translation>
 <translation id="4730374152663651037">ঘন ঘন ব্যবহার করা হয়</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">বাঁ প্রান্ত</translation>
 <translation id="8331626408530291785">উপরে স্ক্রোল করুন</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 বছর}one{# বছর}other{# বছর}}</translation>
-<translation id="8371695176452482769">এখনই বলুন</translation>
 <translation id="838869780401515933">চেক করুন</translation>
 <translation id="8393700583063109961">বার্তা পাঠান</translation>
 <translation id="8394908167088220973">মিডিয়া প্লে করুন/বিরতি</translation>
diff --git a/ui/strings/translations/ui_strings_ca.xtb b/ui/strings/translations/ui_strings_ca.xtb
index 41256e7f..95115eb 100644
--- a/ui/strings/translations/ui_strings_ca.xtb
+++ b/ui/strings/translations/ui_strings_ca.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captura de pantalla</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Fa 1 mes}other{Fa # mesos}}</translation>
 <translation id="4316910396681052118">TOTES LES APLICACIONS</translation>
-<translation id="4320177379694898372">No hi ha connexió a Internet</translation>
 <translation id="4588090240171750605">Desplaçament a la dreta</translation>
 <translation id="4724120544754982507">Centre de notificacions, <ph name="UNREAD_NOTIFICATION_COUNT" /> notificacions no llegides</translation>
 <translation id="4730374152663651037">UTILITZADES FREQÜENTMENT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Extrem esquerre</translation>
 <translation id="8331626408530291785">Desplaçament amunt</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 any}other{# anys}}</translation>
-<translation id="8371695176452482769">Parla ara</translation>
 <translation id="838869780401515933">marca</translation>
 <translation id="8393700583063109961">Envia el missatge</translation>
 <translation id="8394908167088220973">Fitxer multimèdia: reprodueix/posa en pausa</translation>
diff --git a/ui/strings/translations/ui_strings_cs.xtb b/ui/strings/translations/ui_strings_cs.xtb
index ad90798..c354db9 100644
--- a/ui/strings/translations/ui_strings_cs.xtb
+++ b/ui/strings/translations/ui_strings_cs.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Snímek obrazovky</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{před 1 měsícem}few{před # měsíci}many{před # měsíce}other{před # měsíci}}</translation>
 <translation id="4316910396681052118">VŠECHNY APLIKACE</translation>
-<translation id="4320177379694898372">Žádné připojení k internetu</translation>
 <translation id="4588090240171750605">Posuv doprava</translation>
 <translation id="4724120544754982507">Centrum oznámení – nepřečtená oznámení: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">ČASTO POUŽÍVANÉ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Levý okraj</translation>
 <translation id="8331626408530291785">Posuv nahoru</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 rok}few{# roky}many{# roku}other{# let}}</translation>
-<translation id="8371695176452482769">Mluvte</translation>
 <translation id="838869780401515933">zaškrtnout</translation>
 <translation id="8393700583063109961">Odeslat zprávu</translation>
 <translation id="8394908167088220973">Média – přehrát/pozastavit</translation>
diff --git a/ui/strings/translations/ui_strings_da.xtb b/ui/strings/translations/ui_strings_da.xtb
index 8185a987..0af46ca 100644
--- a/ui/strings/translations/ui_strings_da.xtb
+++ b/ui/strings/translations/ui_strings_da.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{For 1 måned siden}one{For # måned siden}other{For # måneder siden}}</translation>
 <translation id="4316910396681052118">ALLE APPS</translation>
-<translation id="4320177379694898372">Ingen internetforbindelse</translation>
 <translation id="4588090240171750605">Scroll til højre</translation>
 <translation id="4724120544754982507">Underretningscenter, <ph name="UNREAD_NOTIFICATION_COUNT" /> ulæste underretninger</translation>
 <translation id="4730374152663651037">OFTE ANVENDT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Venstre kant</translation>
 <translation id="8331626408530291785">Scroll Up</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 år}one{# år}other{# år}}</translation>
-<translation id="8371695176452482769">Indtal nu</translation>
 <translation id="838869780401515933">markér</translation>
 <translation id="8393700583063109961">Send en besked</translation>
 <translation id="8394908167088220973">Medie: Afspil/Pause</translation>
diff --git a/ui/strings/translations/ui_strings_de.xtb b/ui/strings/translations/ui_strings_de.xtb
index bda412d..2b8e1358 100644
--- a/ui/strings/translations/ui_strings_de.xtb
+++ b/ui/strings/translations/ui_strings_de.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{vor 1 Monat}other{vor # Monaten}}</translation>
 <translation id="4316910396681052118">ALLE APPS</translation>
-<translation id="4320177379694898372">Keine Internetverbindung</translation>
 <translation id="4588090240171750605">Nach rechts blättern</translation>
 <translation id="4724120544754982507">Benachrichtigungscenter, <ph name="UNREAD_NOTIFICATION_COUNT" /> ungelesene Benachrichtigungen</translation>
 <translation id="4730374152663651037">HÄUFIG VERWENDET</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Linker Rand</translation>
 <translation id="8331626408530291785">Nach oben blättern</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 Jahr}other{# Jahre}}</translation>
-<translation id="8371695176452482769">Jetzt sprechen</translation>
 <translation id="838869780401515933">auswählen</translation>
 <translation id="8393700583063109961">Nachricht senden</translation>
 <translation id="8394908167088220973">Medien – Wiedergabe/Pause</translation>
diff --git a/ui/strings/translations/ui_strings_el.xtb b/ui/strings/translations/ui_strings_el.xtb
index a004e28..76007a83 100644
--- a/ui/strings/translations/ui_strings_el.xtb
+++ b/ui/strings/translations/ui_strings_el.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Στιγμιότυπο οθόνης</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Πριν από 1 μήνα}other{Πριν από # μήνες}}</translation>
 <translation id="4316910396681052118">ΟΛΕΣ ΟΙ ΕΦΑΡΜΟΓΕΣ</translation>
-<translation id="4320177379694898372">Χωρίς σύνδεση στο διαδίκτυο</translation>
 <translation id="4588090240171750605">Κύλιση δεξιά</translation>
 <translation id="4724120544754982507">Κέντρο ειδοποιήσεων, <ph name="UNREAD_NOTIFICATION_COUNT" /> μη αναγνωσμένες ειδοποιήσεις</translation>
 <translation id="4730374152663651037">ΣΥΧΝΗ ΧΡΗΣΗ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Αριστερή άκρη</translation>
 <translation id="8331626408530291785">Κύλιση επάνω</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 χρόνος}other{# χρόνια}}</translation>
-<translation id="8371695176452482769">Μιλήστε τώρα</translation>
 <translation id="838869780401515933">ενεργοποίηση</translation>
 <translation id="8393700583063109961">Αποστολή μηνύματος</translation>
 <translation id="8394908167088220973">Αναπαραγωγή/παύση πολυμέσων</translation>
diff --git a/ui/strings/translations/ui_strings_en-GB.xtb b/ui/strings/translations/ui_strings_en-GB.xtb
index ac82ea4..0f35145 100644
--- a/ui/strings/translations/ui_strings_en-GB.xtb
+++ b/ui/strings/translations/ui_strings_en-GB.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 month ago}other{# months ago}}</translation>
 <translation id="4316910396681052118">ALL APPS</translation>
-<translation id="4320177379694898372">No internet connection</translation>
 <translation id="4588090240171750605">Scroll Right</translation>
 <translation id="4724120544754982507">Notification Centre, <ph name="UNREAD_NOTIFICATION_COUNT" /> unread notifications</translation>
 <translation id="4730374152663651037">FREQUENTLY USED</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Left Edge</translation>
 <translation id="8331626408530291785">Scroll Up</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 year}other{# years}}</translation>
-<translation id="8371695176452482769">Speak now</translation>
 <translation id="838869780401515933">tick</translation>
 <translation id="8393700583063109961">Send message</translation>
 <translation id="8394908167088220973">Media Play/Pause</translation>
diff --git a/ui/strings/translations/ui_strings_es-419.xtb b/ui/strings/translations/ui_strings_es-419.xtb
index 01a9478b..30e1fef 100644
--- a/ui/strings/translations/ui_strings_es-419.xtb
+++ b/ui/strings/translations/ui_strings_es-419.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captura de pantalla</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Hace 1 mes}other{Hace # meses}}</translation>
 <translation id="4316910396681052118">TODAS LAS APPS</translation>
-<translation id="4320177379694898372">Sin conexión a Internet</translation>
 <translation id="4588090240171750605">Desplazar a la derecha</translation>
 <translation id="4724120544754982507">Centro de notificaciones, notificaciones sin leer: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">USADAS CON FRECUENCIA</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Borde izquierdo</translation>
 <translation id="8331626408530291785">Desplazar hacia arriba</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 año}other{# años}}</translation>
-<translation id="8371695176452482769">Hablar ahora</translation>
 <translation id="838869780401515933">marcar</translation>
 <translation id="8393700583063109961">Enviar mensaje</translation>
 <translation id="8394908167088220973">Reproducir o pausar contenido multimedia</translation>
diff --git a/ui/strings/translations/ui_strings_es.xtb b/ui/strings/translations/ui_strings_es.xtb
index c8e5daf..a91dcfd3c 100644
--- a/ui/strings/translations/ui_strings_es.xtb
+++ b/ui/strings/translations/ui_strings_es.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captura de pantalla</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Hace 1 mes}other{Hace # meses}}</translation>
 <translation id="4316910396681052118">TODAS LAS APLICACIONES</translation>
-<translation id="4320177379694898372">No hay conexión a Internet</translation>
 <translation id="4588090240171750605">Desplazar a la derecha</translation>
 <translation id="4724120544754982507">Centro de notificaciones: <ph name="UNREAD_NOTIFICATION_COUNT" /> notificaciones sin leer</translation>
 <translation id="4730374152663651037">UTILIZADAS CON FRECUENCIA</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Borde izquierdo</translation>
 <translation id="8331626408530291785">Desplazar hacia arriba</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 año}other{# años}}</translation>
-<translation id="8371695176452482769">Habla ahora</translation>
 <translation id="838869780401515933">marcar</translation>
 <translation id="8393700583063109961">Enviar mensaje</translation>
 <translation id="8394908167088220973">Pausar/Reproducir contenido multimedia</translation>
diff --git a/ui/strings/translations/ui_strings_et.xtb b/ui/strings/translations/ui_strings_et.xtb
index f690752..827bfaa 100644
--- a/ui/strings/translations/ui_strings_et.xtb
+++ b/ui/strings/translations/ui_strings_et.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Ekraanipilt</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 kuu tagasi}other{# kuud tagasi}}</translation>
 <translation id="4316910396681052118">KÕIK RAKENDUSED</translation>
-<translation id="4320177379694898372">Interneti-ühendus puudub</translation>
 <translation id="4588090240171750605">Keri paremale</translation>
 <translation id="4724120544754982507">Märguandekeskus, <ph name="UNREAD_NOTIFICATION_COUNT" /> lugemata märguannet</translation>
 <translation id="4730374152663651037">SAGELI KASUTATUD</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Vasak serv</translation>
 <translation id="8331626408530291785">Keri üles</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 aasta}other{# aastat}}</translation>
-<translation id="8371695176452482769">Alustage rääkimist</translation>
 <translation id="838869780401515933">mrgista</translation>
 <translation id="8393700583063109961">Saatke sõnum</translation>
 <translation id="8394908167088220973">Meediumi esitamine/peatamine</translation>
diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb
index 094e211..e2de228e 100644
--- a/ui/strings/translations/ui_strings_fa.xtb
+++ b/ui/strings/translations/ui_strings_fa.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">عکس صفحه‌نمایش</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{۱ ماه قبل}one{# ماه قبل}other{# ماه قبل}}</translation>
 <translation id="4316910396681052118">همه برنامه‌ها</translation>
-<translation id="4320177379694898372">اتصال اینترنتی ندارید</translation>
 <translation id="4588090240171750605">پیمایش به راست</translation>
 <translation id="4724120544754982507">مرکز اعلان، <ph name="UNREAD_NOTIFICATION_COUNT" /> اعلان خوانده‌نشده</translation>
 <translation id="4730374152663651037">مکرراً استفاده‌شده</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">حاشیه چپ</translation>
 <translation id="8331626408530291785">پیمایش به بالا</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{۱ سال}one{# سال}other{# سال}}</translation>
-<translation id="8371695176452482769">اکنون صحبت کنید</translation>
 <translation id="838869780401515933">علامت‌گذاری</translation>
 <translation id="8393700583063109961">ارسال پیام</translation>
 <translation id="8394908167088220973">پخش/مکث رسانه</translation>
diff --git a/ui/strings/translations/ui_strings_fi.xtb b/ui/strings/translations/ui_strings_fi.xtb
index 40462ce3..ffe4e36 100644
--- a/ui/strings/translations/ui_strings_fi.xtb
+++ b/ui/strings/translations/ui_strings_fi.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Kuvakaappaus</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 kuukausi sitten}other{# kuukautta sitten}}</translation>
 <translation id="4316910396681052118">KAIKKI SOVELLUKSET</translation>
-<translation id="4320177379694898372">Ei internetyhteyttä</translation>
 <translation id="4588090240171750605">Vieritä oikealle</translation>
 <translation id="4724120544754982507">Ilmoituskeskus, <ph name="UNREAD_NOTIFICATION_COUNT" /> lukematonta ilmoitusta</translation>
 <translation id="4730374152663651037">USEIN KÄYTETYT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Vasen reuna</translation>
 <translation id="8331626408530291785">Vieritä ylös</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 vuosi}other{# vuotta}}</translation>
-<translation id="8371695176452482769">Puhu nyt</translation>
 <translation id="838869780401515933">valitse</translation>
 <translation id="8393700583063109961">Lähetä viesti</translation>
 <translation id="8394908167088220973">Media: toista/keskeytä</translation>
diff --git a/ui/strings/translations/ui_strings_fil.xtb b/ui/strings/translations/ui_strings_fil.xtb
index fe31e77..9464d3e 100644
--- a/ui/strings/translations/ui_strings_fil.xtb
+++ b/ui/strings/translations/ui_strings_fil.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 buwan ang nakalipas}one{# buwan ang nakalipas}other{# na buwan ang nakalipas}}</translation>
 <translation id="4316910396681052118">LAHAT NG APP</translation>
-<translation id="4320177379694898372">Walang koneksyon sa internet</translation>
 <translation id="4588090240171750605">Mag-scroll Pakanan</translation>
 <translation id="4724120544754982507">Notification Center, <ph name="UNREAD_NOTIFICATION_COUNT" /> (na) hindi pa nababasang notification</translation>
 <translation id="4730374152663651037">MADALAS GAMITIN</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Kalwang Edge</translation>
 <translation id="8331626408530291785">Mag-scroll Pataas</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 taon}one{# taon}other{# na taon}}</translation>
-<translation id="8371695176452482769">Magsalita ngayon</translation>
 <translation id="838869780401515933">I-tsek</translation>
 <translation id="8393700583063109961">Ipadala ang mensahe</translation>
 <translation id="8394908167088220973">I-Play/I-Pause ang Media</translation>
diff --git a/ui/strings/translations/ui_strings_fr.xtb b/ui/strings/translations/ui_strings_fr.xtb
index fe00aaa..ee7bd21 100644
--- a/ui/strings/translations/ui_strings_fr.xtb
+++ b/ui/strings/translations/ui_strings_fr.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Capture d'écran</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Il y a 1 mois}one{Il y a # mois}other{Il y a # mois}}</translation>
 <translation id="4316910396681052118">TOUTES LES APPLICATIONS</translation>
-<translation id="4320177379694898372">Aucune connexion Internet.</translation>
 <translation id="4588090240171750605">Défilement vers la droite</translation>
 <translation id="4724120544754982507">Centre de notification, <ph name="UNREAD_NOTIFICATION_COUNT" /> notifications non lues</translation>
 <translation id="4730374152663651037">SOUVENT UTILISÉES</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Côté gauche</translation>
 <translation id="8331626408530291785">Défilement vers le haut</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 an}one{# an}other{# ans}}</translation>
-<translation id="8371695176452482769">Parlez maintenant.</translation>
 <translation id="838869780401515933">cocher</translation>
 <translation id="8393700583063109961">Envoyer un message</translation>
 <translation id="8394908167088220973">Contenu multimédia : lecture/pause</translation>
diff --git a/ui/strings/translations/ui_strings_gu.xtb b/ui/strings/translations/ui_strings_gu.xtb
index 1ee0eab..73eb569c 100644
--- a/ui/strings/translations/ui_strings_gu.xtb
+++ b/ui/strings/translations/ui_strings_gu.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">સ્ક્રીનશૉટ</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 મહિના પહેલાં}one{# મહિના પહેલાં}other{# મહિના પહેલાં}}</translation>
 <translation id="4316910396681052118">બધી ઍપ્લિકેશનો</translation>
-<translation id="4320177379694898372">કોઈ ઇન્ટરનેટ કનેક્શન નથી</translation>
 <translation id="4588090240171750605">જમણે સ્ક્રોલ કરો</translation>
 <translation id="4724120544754982507">સૂચના કેન્દ્ર, વાંચ્યા વગરની <ph name="UNREAD_NOTIFICATION_COUNT" /> સૂચનાઓ</translation>
 <translation id="4730374152663651037">વારંવાર વપરાયેલ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">ડાબી કિનારી</translation>
 <translation id="8331626408530291785">ઉપર સ્ક્રોલ કરો</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 વર્ષ}one{# વર્ષ}other{# વર્ષ}}</translation>
-<translation id="8371695176452482769">હવે બોલો</translation>
 <translation id="838869780401515933">તપાસો</translation>
 <translation id="8393700583063109961">સંદેશ મોકલો</translation>
 <translation id="8394908167088220973">મીડિયા ચલાવો/થોભાવો</translation>
diff --git a/ui/strings/translations/ui_strings_hi.xtb b/ui/strings/translations/ui_strings_hi.xtb
index 27e6d7f..f968e47c 100644
--- a/ui/strings/translations/ui_strings_hi.xtb
+++ b/ui/strings/translations/ui_strings_hi.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">स्क्रीनशॉट</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 माह पहले}one{# माह पहले}other{# माह पहले}}</translation>
 <translation id="4316910396681052118">सभी ऐप्लिकेशन</translation>
-<translation id="4320177379694898372">कोई इंटरनेट कनेक्‍शन नहीं</translation>
 <translation id="4588090240171750605">दाएं स्क्रॉल करें</translation>
 <translation id="4724120544754982507">सूचना केंद्र, <ph name="UNREAD_NOTIFICATION_COUNT" /> गैर-पढ़ी गई सूचनाएं</translation>
 <translation id="4730374152663651037">अक्सर उपयोग किए गए</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">बायां सिरा</translation>
 <translation id="8331626408530291785">ऊपर स्क्रॉल करें</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 वर्ष}one{# वर्ष}other{# वर्ष}}</translation>
-<translation id="8371695176452482769">अब बोलें</translation>
 <translation id="838869780401515933">चेक करें</translation>
 <translation id="8393700583063109961">संदेश भेजें</translation>
 <translation id="8394908167088220973">मीडिया चलाएं/रोकें</translation>
diff --git a/ui/strings/translations/ui_strings_hr.xtb b/ui/strings/translations/ui_strings_hr.xtb
index 564a135..1e6f5eb 100644
--- a/ui/strings/translations/ui_strings_hr.xtb
+++ b/ui/strings/translations/ui_strings_hr.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Snimka zaslona</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Prije mjesec dana}one{Prije # mjeseca}few{Prije # mjeseca}other{Prije # mjeseci}}</translation>
 <translation id="4316910396681052118">SVE APLIKACIJE</translation>
-<translation id="4320177379694898372">Nema internetske veze</translation>
 <translation id="4588090240171750605">Pomakni se desno</translation>
 <translation id="4724120544754982507">Centar za obavijesti, nepročitanih obavijesti: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">ČESTO KORIŠTENO</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Lijevi rub</translation>
 <translation id="8331626408530291785">Pomakni se gore</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 godina}one{# godina}few{# godine}other{# godina}}</translation>
-<translation id="8371695176452482769">Govorite sad</translation>
 <translation id="838869780401515933">označi</translation>
 <translation id="8393700583063109961">Pošaljite poruku</translation>
 <translation id="8394908167088220973">Reproduciraj/pauziraj Medije</translation>
diff --git a/ui/strings/translations/ui_strings_hu.xtb b/ui/strings/translations/ui_strings_hu.xtb
index d1b0ad2d..e7ee140 100644
--- a/ui/strings/translations/ui_strings_hu.xtb
+++ b/ui/strings/translations/ui_strings_hu.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Képernyőkép</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 hónapja}other{# hónapja}}</translation>
 <translation id="4316910396681052118">MINDEN ALKALMAZÁS</translation>
-<translation id="4320177379694898372">Nincs internetkapcsolat</translation>
 <translation id="4588090240171750605">Görgetés jobbra</translation>
 <translation id="4724120544754982507">Értesítési központ, <ph name="UNREAD_NOTIFICATION_COUNT" /> olvasatlan értesítés</translation>
 <translation id="4730374152663651037">GYAKRAN HASZNÁLT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Bal sarok</translation>
 <translation id="8331626408530291785">Görgetés felfelé</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 év}other{# év}}</translation>
-<translation id="8371695176452482769">Most beszéljen</translation>
 <translation id="838869780401515933">Megjelölés</translation>
 <translation id="8393700583063109961">Üzenet küldése</translation>
 <translation id="8394908167088220973">Lejátszás/szüneteltetés</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb
index 391851a..a70ae90d 100644
--- a/ui/strings/translations/ui_strings_id.xtb
+++ b/ui/strings/translations/ui_strings_id.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 bulan yang lalu}other{# bulan yang lalu}}</translation>
 <translation id="4316910396681052118">SEMUA APLIKASI</translation>
-<translation id="4320177379694898372">Tidak ada sambungan internet</translation>
 <translation id="4588090240171750605">Gulir ke Kanan</translation>
 <translation id="4724120544754982507">Pusat Notifikasi, <ph name="UNREAD_NOTIFICATION_COUNT" /> notifikasi belum dibaca</translation>
 <translation id="4730374152663651037">SERING DIGUNAKAN</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Tepi Kiri</translation>
 <translation id="8331626408530291785">Gulir ke Atas</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 tahun}other{# tahun}}</translation>
-<translation id="8371695176452482769">Bicaralah sekarang</translation>
 <translation id="838869780401515933">centangi</translation>
 <translation id="8393700583063109961">Kirim pesan</translation>
 <translation id="8394908167088220973">Putar/Jeda Media</translation>
diff --git a/ui/strings/translations/ui_strings_it.xtb b/ui/strings/translations/ui_strings_it.xtb
index ef6e1c7e..683afde 100644
--- a/ui/strings/translations/ui_strings_it.xtb
+++ b/ui/strings/translations/ui_strings_it.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 mese fa}other{# mesi fa}}</translation>
 <translation id="4316910396681052118">TUTTE LE APP</translation>
-<translation id="4320177379694898372">Nessuna connessione Internet</translation>
 <translation id="4588090240171750605">Scorri a destra</translation>
 <translation id="4724120544754982507">Centro notifiche, <ph name="UNREAD_NOTIFICATION_COUNT" /> notifiche da leggere</translation>
 <translation id="4730374152663651037">USATE SPESSO</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Margine sinistro</translation>
 <translation id="8331626408530291785">Scorri verso l'alto</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 anno}other{# anni}}</translation>
-<translation id="8371695176452482769">Parla adesso</translation>
 <translation id="838869780401515933">seleziona</translation>
 <translation id="8393700583063109961">Invia messaggio</translation>
 <translation id="8394908167088220973">Play/Pausa contenuti multimediali</translation>
diff --git a/ui/strings/translations/ui_strings_iw.xtb b/ui/strings/translations/ui_strings_iw.xtb
index ff517ff..41a580c 100644
--- a/ui/strings/translations/ui_strings_iw.xtb
+++ b/ui/strings/translations/ui_strings_iw.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">צילום מסך</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{לפני חודש אחד}two{לפני חודשיים}many{לפני # חודשים}other{לפני # חודשים}}</translation>
 <translation id="4316910396681052118">כל האפליקציות</translation>
-<translation id="4320177379694898372">אין חיבור לאינטרנט</translation>
 <translation id="4588090240171750605">גלול ימינה</translation>
 <translation id="4724120544754982507">מרכז הודעות, <ph name="UNREAD_NOTIFICATION_COUNT" /> הודעות שלא נקראו</translation>
 <translation id="4730374152663651037">בשימוש לעתים קרובות</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">קצה שמאלי</translation>
 <translation id="8331626408530291785">גלול למעלה</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{שנה אחת}two{שנתיים}many{# שנים}other{# שנים}}</translation>
-<translation id="8371695176452482769">דבר עכשיו</translation>
 <translation id="838869780401515933">סמן</translation>
 <translation id="8393700583063109961">שלח הודעה</translation>
 <translation id="8394908167088220973">הפעלה/השהיה של המדיה</translation>
diff --git a/ui/strings/translations/ui_strings_ja.xtb b/ui/strings/translations/ui_strings_ja.xtb
index f34ab50..87d9532 100644
--- a/ui/strings/translations/ui_strings_ja.xtb
+++ b/ui/strings/translations/ui_strings_ja.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">スクリーンショット</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 か月前}other{# か月前}}</translation>
 <translation id="4316910396681052118">すべてのアプリ</translation>
-<translation id="4320177379694898372">インターネットに接続されていません</translation>
 <translation id="4588090240171750605">右にスクロール</translation>
 <translation id="4724120544754982507">通知センター: <ph name="UNREAD_NOTIFICATION_COUNT" /> 件の未読通知</translation>
 <translation id="4730374152663651037">よく使用するアプリ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">左端</translation>
 <translation id="8331626408530291785">上にスクロール</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 年}other{# 年}}</translation>
-<translation id="8371695176452482769">お話しください</translation>
 <translation id="838869780401515933">チェックを付ける</translation>
 <translation id="8393700583063109961">メッセージを送信</translation>
 <translation id="8394908167088220973">メディアの再生/一時停止</translation>
diff --git a/ui/strings/translations/ui_strings_kn.xtb b/ui/strings/translations/ui_strings_kn.xtb
index 4e9c9f7b..6e7be2dd 100644
--- a/ui/strings/translations/ui_strings_kn.xtb
+++ b/ui/strings/translations/ui_strings_kn.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">ಸ್ಕ್ರೀನ್‌ಶಾಟ್</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 ತಿಂಗಳ ಹಿಂದೆ}one{# ತಿಂಗಳುಗಳ ಹಿಂದೆ}other{# ತಿಂಗಳುಗಳ ಹಿಂದೆ}}</translation>
 <translation id="4316910396681052118">ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು</translation>
-<translation id="4320177379694898372">ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ</translation>
 <translation id="4588090240171750605">ಬಲಕ್ಕೆ ಸ್ಕ್ರೋಲ್ ಮಾಡಿ</translation>
 <translation id="4724120544754982507">ಅಧಿಸೂಚನೆ ಕೇಂದ್ರ, <ph name="UNREAD_NOTIFICATION_COUNT" /> ಓದದಿರುವ ಅಧಿಸೂಚನೆಗಳು</translation>
 <translation id="4730374152663651037">ಪದೇ ಪದೇ ಬಳಸಿರುವುದು</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">ಎಡ ಬದಿ</translation>
 <translation id="8331626408530291785">ಮೇಲೆ ಸ್ಕ್ರೋಲ್ ಮಾಡು</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 ವರ್ಷ}one{# ವರ್ಷಗಳು}other{# ವರ್ಷಗಳು}}</translation>
-<translation id="8371695176452482769">ಈಗ ಮಾತನಾಡಿ</translation>
 <translation id="838869780401515933">ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="8393700583063109961">ಸಂದೇಶ ಕಳುಹಿಸು</translation>
 <translation id="8394908167088220973">ಮೀಡಿಯಾ ಪ್ಲೇ/ವಿರಾಮ</translation>
diff --git a/ui/strings/translations/ui_strings_ko.xtb b/ui/strings/translations/ui_strings_ko.xtb
index 851abf2..1d1868b 100644
--- a/ui/strings/translations/ui_strings_ko.xtb
+++ b/ui/strings/translations/ui_strings_ko.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">캡처화면</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1개월 전}other{#개월 전}}</translation>
 <translation id="4316910396681052118">모든 앱</translation>
-<translation id="4320177379694898372">인터넷에 연결되지 않음</translation>
 <translation id="4588090240171750605">오른쪽 스크롤</translation>
 <translation id="4724120544754982507">알림 센터, 읽지 않은 알림 <ph name="UNREAD_NOTIFICATION_COUNT" />개</translation>
 <translation id="4730374152663651037">자주 사용하는 앱</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">왼쪽 모서리</translation>
 <translation id="8331626408530291785">위로 스크롤</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1년}other{#년}}</translation>
-<translation id="8371695176452482769">말하세요</translation>
 <translation id="838869780401515933">선택</translation>
 <translation id="8393700583063109961">메시지 보내기</translation>
 <translation id="8394908167088220973">미디어 재생/일시중지</translation>
diff --git a/ui/strings/translations/ui_strings_lt.xtb b/ui/strings/translations/ui_strings_lt.xtb
index a25a968..3570995 100644
--- a/ui/strings/translations/ui_strings_lt.xtb
+++ b/ui/strings/translations/ui_strings_lt.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Ekrano kopija</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Prieš 1 mėnesį}one{Prieš # mėnesį}few{Prieš # mėnesius}many{Prieš # mėnesio}other{Prieš # mėnesių}}</translation>
 <translation id="4316910396681052118">VISOS PROGRAMOS</translation>
-<translation id="4320177379694898372">Nėra interneto ryšio</translation>
 <translation id="4588090240171750605">Slinkti į dešinę</translation>
 <translation id="4724120544754982507">Pranešimų centras, neskaitytų pranešimų: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">DAŽNAI NAUDOJAMOS PROGRAMOS</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Kairysis kraštas</translation>
 <translation id="8331626408530291785">Slinkti į viršų</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 metai}one{# metai}few{# metai}many{# metų}other{# metų}}</translation>
-<translation id="8371695176452482769">Kalbėti dabar</translation>
 <translation id="838869780401515933">tikrinti</translation>
 <translation id="8393700583063109961">Siųsti pranešimą</translation>
 <translation id="8394908167088220973">Leisti / pristabdyti mediją</translation>
diff --git a/ui/strings/translations/ui_strings_lv.xtb b/ui/strings/translations/ui_strings_lv.xtb
index b375e7f..12c640a 100644
--- a/ui/strings/translations/ui_strings_lv.xtb
+++ b/ui/strings/translations/ui_strings_lv.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Ekrānuzņēmums</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Pirms 1 mēneša}zero{Pirms # mēnešiem}one{Pirms # mēneša}other{Pirms # mēnešiem}}</translation>
 <translation id="4316910396681052118">VISAS LIETOTNES</translation>
-<translation id="4320177379694898372">Nav interneta savienojuma.</translation>
 <translation id="4588090240171750605">Ritināt pa labi</translation>
 <translation id="4724120544754982507">Paziņojumu centrs, <ph name="UNREAD_NOTIFICATION_COUNT" /> nelasīts(-i) paziņojums(-i)</translation>
 <translation id="4730374152663651037">BIEŽI IZMANTOTĀS</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Kreisā mala</translation>
 <translation id="8331626408530291785">Ritināt augšup</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 gads}zero{# gadu}one{# gads}other{# gadi}}</translation>
-<translation id="8371695176452482769">Runājiet tūlīt</translation>
 <translation id="838869780401515933">prbaudt</translation>
 <translation id="8393700583063109961">Sūtīt ziņojumu</translation>
 <translation id="8394908167088220973">Multivide — atskaņot/apturēt</translation>
diff --git a/ui/strings/translations/ui_strings_ml.xtb b/ui/strings/translations/ui_strings_ml.xtb
index af6b8fc..d3cdadd 100644
--- a/ui/strings/translations/ui_strings_ml.xtb
+++ b/ui/strings/translations/ui_strings_ml.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">സ്‌ക്രീൻഷോട്ട്</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{ഒരു മാസം മുമ്പ്}other{# മാസം മുമ്പ്}}</translation>
 <translation id="4316910396681052118">എല്ലാ ആപ്പുകളും</translation>
-<translation id="4320177379694898372">ഇന്റർനെറ്റ് കണക്ഷനൊന്നുമില്ല</translation>
 <translation id="4588090240171750605">വലത്തോട്ട് സ്ക്രോള്‍ ചെയ്യുക</translation>
 <translation id="4724120544754982507">അറിയിപ്പ് കേന്ദ്രം, <ph name="UNREAD_NOTIFICATION_COUNT" /> വായിക്കാത്ത അറിയിപ്പുകൾ</translation>
 <translation id="4730374152663651037">പതിവായി ഉപയോഗിക്കുന്നത്</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">ഇടത് അഗ്രം</translation>
 <translation id="8331626408530291785">മുകളിലേക്ക് സ്ക്രോള്‍ ചെയ്യൂ</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{ഒരു വര്‍ഷം}other{# വർഷം}}</translation>
-<translation id="8371695176452482769">ഇപ്പോള്‍ സംസാരിക്കുക</translation>
 <translation id="838869780401515933">പരിശോധിക്കൂ</translation>
 <translation id="8393700583063109961">സന്ദേശം അയയ്ക്കുക</translation>
 <translation id="8394908167088220973">മീഡിയ പ്ലേ ചെയ്യുക/താൽക്കാലികമായി നിർത്തുക</translation>
diff --git a/ui/strings/translations/ui_strings_mr.xtb b/ui/strings/translations/ui_strings_mr.xtb
index 82a9e21..0a4f27b 100644
--- a/ui/strings/translations/ui_strings_mr.xtb
+++ b/ui/strings/translations/ui_strings_mr.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">स्क्रीनशॉट</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 महिन्यापूर्वी}one{# महिन्यापूर्वी}other{# महिन्यांपूर्वी}}</translation>
 <translation id="4316910396681052118">सर्व अ‍ॅप्स</translation>
-<translation id="4320177379694898372">कोणतेही इंटरनेट कनेक्शन नाही</translation>
 <translation id="4588090240171750605">उजवे स्क्रोल करा</translation>
 <translation id="4724120544754982507">सूचना केंद्र, <ph name="UNREAD_NOTIFICATION_COUNT" /> न वाचलेल्या सूचना</translation>
 <translation id="4730374152663651037">वारंवार वापरलेले</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">डावे काठ</translation>
 <translation id="8331626408530291785">वर स्क्रोल करा</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 वर्ष}one{# वर्ष}other{# वर्षे}}</translation>
-<translation id="8371695176452482769">आता बोला</translation>
 <translation id="838869780401515933">तपासा</translation>
 <translation id="8393700583063109961">संदेश पाठवा</translation>
 <translation id="8394908167088220973">मीडिया प्ले करा/विराम द्या</translation>
diff --git a/ui/strings/translations/ui_strings_ms.xtb b/ui/strings/translations/ui_strings_ms.xtb
index f93e134d..69898fe 100644
--- a/ui/strings/translations/ui_strings_ms.xtb
+++ b/ui/strings/translations/ui_strings_ms.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Tangkapan skrin</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 bulan yang lalu}other{# bulan yang lalu}}</translation>
 <translation id="4316910396681052118">SEMUA APL</translation>
-<translation id="4320177379694898372">Tiada sambungan Internet</translation>
 <translation id="4588090240171750605">Tatal ke Kanan</translation>
 <translation id="4724120544754982507">Pusat Pemberitahuan, <ph name="UNREAD_NOTIFICATION_COUNT" /> pemberitahuan belum dibaca</translation>
 <translation id="4730374152663651037">KERAP DIGUNAKAN</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Tepi Kiri</translation>
 <translation id="8331626408530291785">Tatal Ke Atas</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 tahun}other{# tahun}}</translation>
-<translation id="8371695176452482769">Cakap sekarang</translation>
 <translation id="838869780401515933">periksa</translation>
 <translation id="8393700583063109961">Hantar mesej</translation>
 <translation id="8394908167088220973">Main/Jeda Media</translation>
diff --git a/ui/strings/translations/ui_strings_nl.xtb b/ui/strings/translations/ui_strings_nl.xtb
index 45b7b8b..3c126e4 100644
--- a/ui/strings/translations/ui_strings_nl.xtb
+++ b/ui/strings/translations/ui_strings_nl.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Screenshot</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 maand geleden}other{# maanden geleden}}</translation>
 <translation id="4316910396681052118">ALLE APPS</translation>
-<translation id="4320177379694898372">Geen internetverbinding</translation>
 <translation id="4588090240171750605">Naar rechts bladeren</translation>
 <translation id="4724120544754982507">Meldingscentrum, <ph name="UNREAD_NOTIFICATION_COUNT" /> ongelezen meldingen</translation>
 <translation id="4730374152663651037">VEELGEBRUIKT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Linkerzijde</translation>
 <translation id="8331626408530291785">Omhoog bladeren</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 jaar}other{# jaar}}</translation>
-<translation id="8371695176452482769">Begin nu te spreken</translation>
 <translation id="838869780401515933">Selecteren</translation>
 <translation id="8393700583063109961">Bericht verzenden</translation>
 <translation id="8394908167088220973">Media afspelen/onderbreken</translation>
diff --git a/ui/strings/translations/ui_strings_no.xtb b/ui/strings/translations/ui_strings_no.xtb
index d6466dd5..904776e 100644
--- a/ui/strings/translations/ui_strings_no.xtb
+++ b/ui/strings/translations/ui_strings_no.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Skjermdump</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{for 1 måned siden}other{for # måneder siden}}</translation>
 <translation id="4316910396681052118">ALLE APPER</translation>
-<translation id="4320177379694898372">Ingen Internett-tilkobling</translation>
 <translation id="4588090240171750605">Rull mot høyre</translation>
 <translation id="4724120544754982507">Varselsenter, <ph name="UNREAD_NOTIFICATION_COUNT" /> uleste varsler</translation>
 <translation id="4730374152663651037">OFTE BRUKT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Venstre kant</translation>
 <translation id="8331626408530291785">Rull opp</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 år}other{# år}}</translation>
-<translation id="8371695176452482769">Snakk nå</translation>
 <translation id="838869780401515933">merk av</translation>
 <translation id="8393700583063109961">Send melding</translation>
 <translation id="8394908167088220973">Media – spill av / pause</translation>
diff --git a/ui/strings/translations/ui_strings_pl.xtb b/ui/strings/translations/ui_strings_pl.xtb
index 0a1002e..4d2cd60 100644
--- a/ui/strings/translations/ui_strings_pl.xtb
+++ b/ui/strings/translations/ui_strings_pl.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Zrzut ekranu</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{miesiąc temu}few{# miesiące temu}many{# miesięcy temu}other{# miesiąca temu}}</translation>
 <translation id="4316910396681052118">WSZYSTKIE APLIKACJE</translation>
-<translation id="4320177379694898372">Brak połączenia z internetem</translation>
 <translation id="4588090240171750605">Przewiń w prawo</translation>
 <translation id="4724120544754982507">Centrum powiadomień, liczba nieprzeczytanych powiadomień: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">CZĘSTO UŻYWANE</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Krawędź po lewej</translation>
 <translation id="8331626408530291785">Przewiń w górę</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 rok}few{# lata}many{# lat}other{# roku}}</translation>
-<translation id="8371695176452482769">Mów teraz</translation>
 <translation id="838869780401515933">zaznacz</translation>
 <translation id="8393700583063109961">Wyślij wiadomość</translation>
 <translation id="8394908167088220973">Odtwórz/wstrzymaj multimedia</translation>
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb
index 30cc147f..0afd3358 100644
--- a/ui/strings/translations/ui_strings_pt-BR.xtb
+++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captura de tela</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 mês atrás}one{# mês atrás}other{# meses atrás}}</translation>
 <translation id="4316910396681052118">TODOS OS APPS</translation>
-<translation id="4320177379694898372">Sem conexão com a Internet</translation>
 <translation id="4588090240171750605">Percorrer à direita</translation>
 <translation id="4724120544754982507">Central de Notificações: <ph name="UNREAD_NOTIFICATION_COUNT" /> notificações não lidas</translation>
 <translation id="4730374152663651037">USADOS FREQUENTEMENTE</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Borda esquerda</translation>
 <translation id="8331626408530291785">Percorrer para cima</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{ ano}one{# ano}other{# anos}}</translation>
-<translation id="8371695176452482769">Fale agora</translation>
 <translation id="838869780401515933">marcar</translation>
 <translation id="8393700583063109961">Enviar mensagem</translation>
 <translation id="8394908167088220973">Reproduzir/pausar mídia</translation>
diff --git a/ui/strings/translations/ui_strings_pt-PT.xtb b/ui/strings/translations/ui_strings_pt-PT.xtb
index 3c8d203..de57f816 100644
--- a/ui/strings/translations/ui_strings_pt-PT.xtb
+++ b/ui/strings/translations/ui_strings_pt-PT.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captura de ecrã</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Há 1 mês}other{Há # meses}}</translation>
 <translation id="4316910396681052118">TODAS AS APLICAÇÕES</translation>
-<translation id="4320177379694898372">Sem ligação à Internet</translation>
 <translation id="4588090240171750605">Deslocar-se para a direita</translation>
 <translation id="4724120544754982507">Centro de notificações, <ph name="UNREAD_NOTIFICATION_COUNT" /> notificações não lidas</translation>
 <translation id="4730374152663651037">UTILIZADAS FREQUENTEMENTE</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Margem esquerda</translation>
 <translation id="8331626408530291785">Deslocar-se para cima</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 ano}other{# anos}}</translation>
-<translation id="8371695176452482769">Falar agora</translation>
 <translation id="838869780401515933">verificar</translation>
 <translation id="8393700583063109961">Enviar mensagem</translation>
 <translation id="8394908167088220973">Reproduzir/interromper multimédia</translation>
diff --git a/ui/strings/translations/ui_strings_ro.xtb b/ui/strings/translations/ui_strings_ro.xtb
index 59c0039..9e5ca5c4 100644
--- a/ui/strings/translations/ui_strings_ro.xtb
+++ b/ui/strings/translations/ui_strings_ro.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Captură de ecran</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Acum 1 lună}few{Acum # luni}other{Acum # de luni}}</translation>
 <translation id="4316910396681052118">TOATE APLICAȚIILE</translation>
-<translation id="4320177379694898372">Fără conexiune la internet</translation>
 <translation id="4588090240171750605">Derulează spre dreapta</translation>
 <translation id="4724120544754982507">Centrul de notificări, <ph name="UNREAD_NOTIFICATION_COUNT" /> notificări necitite</translation>
 <translation id="4730374152663651037">FOLOSITE FRECVENT</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Marginea stângă</translation>
 <translation id="8331626408530291785">Derulează în sus</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 an}few{# ani}other{# de ani}}</translation>
-<translation id="8371695176452482769">Rostește acum</translation>
 <translation id="838869780401515933">bifează</translation>
 <translation id="8393700583063109961">Trimite un mesaj</translation>
 <translation id="8394908167088220973">Redați/întrerupeți conținutul media</translation>
diff --git a/ui/strings/translations/ui_strings_ru.xtb b/ui/strings/translations/ui_strings_ru.xtb
index 78fb522..e959c391 100644
--- a/ui/strings/translations/ui_strings_ru.xtb
+++ b/ui/strings/translations/ui_strings_ru.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Скриншот</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{месяц назад}one{# месяц назад}few{# месяца назад}many{# месяцев назад}other{# месяца назад}}</translation>
 <translation id="4316910396681052118">ВСЕ ПРИЛОЖЕНИЯ</translation>
-<translation id="4320177379694898372">Нет подключения к Интернету</translation>
 <translation id="4588090240171750605">Прокрутка вправо</translation>
 <translation id="4724120544754982507">Центр уведомлений. Непрочитанных: <ph name="UNREAD_NOTIFICATION_COUNT" />.</translation>
 <translation id="4730374152663651037">ЧАСТО ИСПОЛЬЗУЕМЫЕ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Левый край</translation>
 <translation id="8331626408530291785">Прокрутка вверх</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 год}one{# год}few{# года}many{# лет}other{# года}}</translation>
-<translation id="8371695176452482769">Говорите</translation>
 <translation id="838869780401515933">поставить галочку</translation>
 <translation id="8393700583063109961">Отправить сообщение</translation>
 <translation id="8394908167088220973">Воспроизведение/пауза</translation>
diff --git a/ui/strings/translations/ui_strings_sk.xtb b/ui/strings/translations/ui_strings_sk.xtb
index 200d6e56..53ec4c5 100644
--- a/ui/strings/translations/ui_strings_sk.xtb
+++ b/ui/strings/translations/ui_strings_sk.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Snímka obrazovky</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{pred mesiacom}few{pred # mesiacmi}many{pred # mesiacom}other{pred # mesiacmi}}</translation>
 <translation id="4316910396681052118">VŠETKY APLIKÁCIE</translation>
-<translation id="4320177379694898372">Žiadne internetové pripojenie</translation>
 <translation id="4588090240171750605">Rolovať doprava</translation>
 <translation id="4724120544754982507">Centrum upozornení – počet neprečítaných upozornení: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">ČASTO POUŽÍVANÉ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Ľavý okraj</translation>
 <translation id="8331626408530291785">Rolovať nahor</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 rok}few{# roky}many{# roka}other{# rokov}}</translation>
-<translation id="8371695176452482769">Hovorte…</translation>
 <translation id="838869780401515933">označiť</translation>
 <translation id="8393700583063109961">Odoslať správu</translation>
 <translation id="8394908167088220973">Média – prehrať / pozastaviť</translation>
diff --git a/ui/strings/translations/ui_strings_sl.xtb b/ui/strings/translations/ui_strings_sl.xtb
index d371828..a24e892 100644
--- a/ui/strings/translations/ui_strings_sl.xtb
+++ b/ui/strings/translations/ui_strings_sl.xtb
@@ -60,7 +60,6 @@
 <translation id="4250229828105606438">Posnetek zaslona</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Pred 1 mesecem}one{Pred # mesecem}two{Pred # mesecema}few{Pred # meseci}other{Pred # meseci}}</translation>
 <translation id="4316910396681052118">VSE APLIKACIJE</translation>
-<translation id="4320177379694898372">Ni internetne povezave</translation>
 <translation id="4588090240171750605">Pomik desno</translation>
 <translation id="4724120544754982507">Središče za obvestila, št. neprebranih sporočil: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">POGOSTO UPORABLJENE</translation>
@@ -135,7 +134,6 @@
 <translation id="8328145009876646418">Levi rob</translation>
 <translation id="8331626408530291785">Pomik gor</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 leto}one{# leto}two{# leti}few{# leta}other{# let}}</translation>
-<translation id="8371695176452482769">Začnite govoriti</translation>
 <translation id="838869780401515933">potrdi</translation>
 <translation id="8393700583063109961">Pošlji sporočilo</translation>
 <translation id="8394908167088220973">Ustavitev/začasna ustavitev</translation>
diff --git a/ui/strings/translations/ui_strings_sr.xtb b/ui/strings/translations/ui_strings_sr.xtb
index c07a2f2..13ea0720 100644
--- a/ui/strings/translations/ui_strings_sr.xtb
+++ b/ui/strings/translations/ui_strings_sr.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Снимак екрана</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Пре месец дана}one{Пре # месец}few{Пре # месеца}other{Пре # месеци}}</translation>
 <translation id="4316910396681052118">СВЕ АПЛИКАЦИЈЕ</translation>
-<translation id="4320177379694898372">Нема интернет везе</translation>
 <translation id="4588090240171750605">Помери надесно</translation>
 <translation id="4724120544754982507">Центар за обавештења, непрочитаних обавештења: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">ЧЕСТО КОРИШЋЕНЕ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Лева ивица</translation>
 <translation id="8331626408530291785">Помери нагоре</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 година}one{# година}few{# године}other{# година}}</translation>
-<translation id="8371695176452482769">Почните да говорите</translation>
 <translation id="838869780401515933">изабери</translation>
 <translation id="8393700583063109961">Пошаљите поруку</translation>
 <translation id="8394908167088220973">Пуштање/паузирање медија</translation>
diff --git a/ui/strings/translations/ui_strings_sv.xtb b/ui/strings/translations/ui_strings_sv.xtb
index 3d83c0a..eba4c49 100644
--- a/ui/strings/translations/ui_strings_sv.xtb
+++ b/ui/strings/translations/ui_strings_sv.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Skärmdump</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 månad sedan}other{# månader sedan}}</translation>
 <translation id="4316910396681052118">ALLA APPAR</translation>
-<translation id="4320177379694898372">Ingen internetanslutning</translation>
 <translation id="4588090240171750605">Rulla åt höger</translation>
 <translation id="4724120544754982507"><ph name="UNREAD_NOTIFICATION_COUNT" /> olästa aviseringar i meddelandecentret</translation>
 <translation id="4730374152663651037">OFTA ANVÄNDA</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Vänsterkant</translation>
 <translation id="8331626408530291785">Rulla uppåt</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 år}other{# år}}</translation>
-<translation id="8371695176452482769">Prata nu</translation>
 <translation id="838869780401515933">kryssa för</translation>
 <translation id="8393700583063109961">Skicka meddelande</translation>
 <translation id="8394908167088220973">Spela upp/Pausa</translation>
diff --git a/ui/strings/translations/ui_strings_sw.xtb b/ui/strings/translations/ui_strings_sw.xtb
index 7d1ba36..be4089a 100644
--- a/ui/strings/translations/ui_strings_sw.xtb
+++ b/ui/strings/translations/ui_strings_sw.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Picha ya skrini</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{Mwezi 1 uliopita}other{Miezi # iliyopita}}</translation>
 <translation id="4316910396681052118">PROGRAMU ZOTE</translation>
-<translation id="4320177379694898372">Hakuna muunganisho wa intaneti</translation>
 <translation id="4588090240171750605">Sogeza Kulia</translation>
 <translation id="4724120544754982507">Kituo cha Arifa, arifa <ph name="UNREAD_NOTIFICATION_COUNT" /> ambazo hujasoma</translation>
 <translation id="4730374152663651037">ZINAZOTUMIKA SANA</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Ncha ya Kushoto</translation>
 <translation id="8331626408530291785">Sogeza Juu</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{Mwaka 1}other{Miaka #}}</translation>
-<translation id="8371695176452482769">Ongea sasa</translation>
 <translation id="838869780401515933">chunguza</translation>
 <translation id="8393700583063109961">Tuma ujumbe</translation>
 <translation id="8394908167088220973">Cheza Media/Sitisha</translation>
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb
index 711a614..7345030c 100644
--- a/ui/strings/translations/ui_strings_ta.xtb
+++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">ஸ்கிரீன் ஷாட்</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 மாதத்திற்கு முன்}other{# மாதங்களுக்கு முன்}}</translation>
 <translation id="4316910396681052118">எல்லாப் பயன்பாடுகளும்</translation>
-<translation id="4320177379694898372">இணைய இணைப்பு இல்லை</translation>
 <translation id="4588090240171750605">வலப்புறம் உருட்டு</translation>
 <translation id="4724120544754982507">அறிவிப்பு மையம், <ph name="UNREAD_NOTIFICATION_COUNT" /> படிக்காத அறிவிப்புகள்</translation>
 <translation id="4730374152663651037">அடிக்கடிப் பயன்படுத்தியவை</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">இடதுபுற முனை</translation>
 <translation id="8331626408530291785">மேலே உருட்டு</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 ஆண்டு}other{# ஆண்டுகள்}}</translation>
-<translation id="8371695176452482769">இப்போது பேசுக</translation>
 <translation id="838869780401515933">சரிபார்</translation>
 <translation id="8393700583063109961">செய்தி அனுப்பு</translation>
 <translation id="8394908167088220973">ஊடகத்தை இயக்கு/இடைநிறுத்து</translation>
diff --git a/ui/strings/translations/ui_strings_te.xtb b/ui/strings/translations/ui_strings_te.xtb
index 0dfea8a..183e1e8a 100644
--- a/ui/strings/translations/ui_strings_te.xtb
+++ b/ui/strings/translations/ui_strings_te.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">స్క్రీన్‌షాట్</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 నెల క్రితం}other{# నెలల క్రితం}}</translation>
 <translation id="4316910396681052118">అన్ని అనువర్తనాలు</translation>
-<translation id="4320177379694898372">ఇంటర్నెట్ కనెక్షన్ లేదు</translation>
 <translation id="4588090240171750605">కుడికి స్క్రోల్ చెయ్యి</translation>
 <translation id="4724120544754982507">నోటిఫికేషన్ కేంద్రం, <ph name="UNREAD_NOTIFICATION_COUNT" /> చదవని నోటిఫికేషన్‌లు</translation>
 <translation id="4730374152663651037">తరచుగా ఉపయోగించేవి</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">ఎడమ హద్దు</translation>
 <translation id="8331626408530291785">పైకి స్క్రోల్ చెయ్యి</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 సంవత్సరం}other{# సంవత్సరాలు}}</translation>
-<translation id="8371695176452482769">ఇప్పుడు మాట్లాడండి</translation>
 <translation id="838869780401515933">తనిఖీ చెయ్యి</translation>
 <translation id="8393700583063109961">సందేశాన్ని పంపండి</translation>
 <translation id="8394908167088220973">మీడియా ప్లే/పాజ్</translation>
diff --git a/ui/strings/translations/ui_strings_th.xtb b/ui/strings/translations/ui_strings_th.xtb
index 484e5572..e6af5ec 100644
--- a/ui/strings/translations/ui_strings_th.xtb
+++ b/ui/strings/translations/ui_strings_th.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">ภาพหน้าจอ</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 เดือนที่ผ่านมา}other{# เดือนที่ผ่านมา}}</translation>
 <translation id="4316910396681052118">แอปทั้งหมด</translation>
-<translation id="4320177379694898372">ไม่มีการเชื่อมต่ออินเทอร์เน็ต</translation>
 <translation id="4588090240171750605">เลื่อนทางขวา</translation>
 <translation id="4724120544754982507">ศูนย์การแจ้งเตือนมีการแจ้งเตือนที่ยังไม่อ่าน <ph name="UNREAD_NOTIFICATION_COUNT" /> รายการ</translation>
 <translation id="4730374152663651037">แอปที่ใช้บ่อย</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">ขอบซ้าย</translation>
 <translation id="8331626408530291785">เลื่อนขึ้น</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 ปี}other{# ปี}}</translation>
-<translation id="8371695176452482769">เชิญพูดเลย</translation>
 <translation id="838869780401515933">ทำเครื่องหมาย</translation>
 <translation id="8393700583063109961">ส่งข้อความ</translation>
 <translation id="8394908167088220973">เล่น/หยุดสื่อชั่วคราว</translation>
diff --git a/ui/strings/translations/ui_strings_tr.xtb b/ui/strings/translations/ui_strings_tr.xtb
index 6a12de1a..0f9c0e7 100644
--- a/ui/strings/translations/ui_strings_tr.xtb
+++ b/ui/strings/translations/ui_strings_tr.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Ekran görüntüsü</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 ay önce}other{# ay önce}}</translation>
 <translation id="4316910396681052118">TÜM UYGULAMALAR</translation>
-<translation id="4320177379694898372">İnternet bağlantısı yok</translation>
 <translation id="4588090240171750605">Sağa Kaydır</translation>
 <translation id="4724120544754982507">Bildirim Merkezi, <ph name="UNREAD_NOTIFICATION_COUNT" /> okunmamış bildirim</translation>
 <translation id="4730374152663651037">SIK KULLANILANLAR</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Sol Kenar</translation>
 <translation id="8331626408530291785">Yukarı Kaydır</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 yıl}other{# yıl}}</translation>
-<translation id="8371695176452482769">Şimdi konuşun</translation>
 <translation id="838869780401515933">işaretle</translation>
 <translation id="8393700583063109961">İleti gönder</translation>
 <translation id="8394908167088220973">Medyayı Oynat/Duraklat</translation>
diff --git a/ui/strings/translations/ui_strings_uk.xtb b/ui/strings/translations/ui_strings_uk.xtb
index 21b70f1..61a92f1 100644
--- a/ui/strings/translations/ui_strings_uk.xtb
+++ b/ui/strings/translations/ui_strings_uk.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Знімок екрана</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 місяць тому}one{# місяць тому}few{# місяці тому}many{# місяців тому}other{# місяця тому}}</translation>
 <translation id="4316910396681052118">УСІ ДОДАТКИ</translation>
-<translation id="4320177379694898372">Немає з’єднання з Інтернетом</translation>
 <translation id="4588090240171750605">Прокрутка вправо</translation>
 <translation id="4724120544754982507">Центр сповіщень, непрочитаних сповіщень: <ph name="UNREAD_NOTIFICATION_COUNT" /></translation>
 <translation id="4730374152663651037">ЧАСТО ВИКОРИСТОВУЮТЬСЯ</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Лівий край</translation>
 <translation id="8331626408530291785">Прокрутка вгору</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 рік}one{# рік}few{# роки}many{# років}other{# року}}</translation>
-<translation id="8371695176452482769">Диктуйте</translation>
 <translation id="838869780401515933">установити прапорець</translation>
 <translation id="8393700583063109961">Надіслати повідомлення</translation>
 <translation id="8394908167088220973">Відтворити чи призупинити</translation>
diff --git a/ui/strings/translations/ui_strings_vi.xtb b/ui/strings/translations/ui_strings_vi.xtb
index c28f846..a22b01f8 100644
--- a/ui/strings/translations/ui_strings_vi.xtb
+++ b/ui/strings/translations/ui_strings_vi.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">Ảnh chụp màn hình</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 tháng trước}other{# tháng trước}}</translation>
 <translation id="4316910396681052118">TẤT CẢ ỨNG DỤNG</translation>
-<translation id="4320177379694898372">Không có kết nối Internet</translation>
 <translation id="4588090240171750605">Cuộn qua Phải</translation>
 <translation id="4724120544754982507">Trung tâm thông báo, <ph name="UNREAD_NOTIFICATION_COUNT" /> thông báo chưa đọc</translation>
 <translation id="4730374152663651037">SỬ DỤNG THƯỜNG XUYÊN</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">Cạnh Bên trái</translation>
 <translation id="8331626408530291785">Cuộn Lên</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 năm}other{# năm}}</translation>
-<translation id="8371695176452482769">Nói ngay bây giờ</translation>
 <translation id="838869780401515933">chọn</translation>
 <translation id="8393700583063109961">Gửi tin nhắn</translation>
 <translation id="8394908167088220973">Phát/Tạm dừng trình phát phương tiện</translation>
diff --git a/ui/strings/translations/ui_strings_zh-CN.xtb b/ui/strings/translations/ui_strings_zh-CN.xtb
index 1a9de3d..18148d9 100644
--- a/ui/strings/translations/ui_strings_zh-CN.xtb
+++ b/ui/strings/translations/ui_strings_zh-CN.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">屏幕截图</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 个月前}other{# 个月前}}</translation>
 <translation id="4316910396681052118">所有应用</translation>
-<translation id="4320177379694898372">未连接到互联网</translation>
 <translation id="4588090240171750605">向右滚动</translation>
 <translation id="4724120544754982507">通知中心,<ph name="UNREAD_NOTIFICATION_COUNT" /> 条未读通知</translation>
 <translation id="4730374152663651037">常用应用</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">左边缘</translation>
 <translation id="8331626408530291785">向上滚动</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 年}other{# 年}}</translation>
-<translation id="8371695176452482769">请开始说话</translation>
 <translation id="838869780401515933">选中</translation>
 <translation id="8393700583063109961">发送消息</translation>
 <translation id="8394908167088220973">媒体播放/暂停</translation>
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb
index 381cb4a..bb9f58a8 100644
--- a/ui/strings/translations/ui_strings_zh-TW.xtb
+++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -64,7 +64,6 @@
 <translation id="4250229828105606438">螢幕擷取畫面</translation>
 <translation id="4266252015790371705">{MONTHS,plural, =1{1 個月前}other{# 個月前}}</translation>
 <translation id="4316910396681052118">所有應用程式</translation>
-<translation id="4320177379694898372">沒有網際網路連線</translation>
 <translation id="4588090240171750605">向右捲動</translation>
 <translation id="4724120544754982507">通知中心,<ph name="UNREAD_NOTIFICATION_COUNT" /> 則未讀通知</translation>
 <translation id="4730374152663651037">常用的應用程式</translation>
@@ -142,7 +141,6 @@
 <translation id="8328145009876646418">左邊緣</translation>
 <translation id="8331626408530291785">向上捲動</translation>
 <translation id="8352146631962686268">{YEARS,plural, =1{1 年}other{# 年}}</translation>
-<translation id="8371695176452482769">請說話</translation>
 <translation id="838869780401515933">選取</translation>
 <translation id="8393700583063109961">傳送訊息</translation>
 <translation id="8394908167088220973">媒體播放/暫停</translation>
diff --git a/ui/views/accessibility/view_accessibility.cc b/ui/views/accessibility/view_accessibility.cc
index 577872c..81f3b39f 100644
--- a/ui/views/accessibility/view_accessibility.cc
+++ b/ui/views/accessibility/view_accessibility.cc
@@ -95,6 +95,10 @@
   custom_data_.SetName(name);
 }
 
+void ViewAccessibility::OverrideName(const base::string16& name) {
+  custom_data_.SetName(base::UTF16ToUTF8(name));
+}
+
 gfx::NativeViewAccessible ViewAccessibility::GetNativeObject() {
   return nullptr;
 }
diff --git a/ui/views/accessibility/view_accessibility.h b/ui/views/accessibility/view_accessibility.h
index b9c02c4f..43efb57 100644
--- a/ui/views/accessibility/view_accessibility.h
+++ b/ui/views/accessibility/view_accessibility.h
@@ -46,6 +46,7 @@
   //
   void OverrideRole(ui::AXRole role);
   void OverrideName(const std::string& name);
+  void OverrideName(const base::string16& name);
 
   virtual gfx::NativeViewAccessible GetNativeObject();
   virtual void NotifyAccessibilityEvent(ui::AXEvent event_type) {}
diff --git a/ui/views/controls/label_unittest.cc b/ui/views/controls/label_unittest.cc
index 7e70ba3b..e777d54f 100644
--- a/ui/views/controls/label_unittest.cc
+++ b/ui/views/controls/label_unittest.cc
@@ -227,7 +227,7 @@
         label()->GetRenderTextForSelectionController();
     const gfx::Range range(index, index + 1);
     const std::vector<gfx::Rect> bounds =
-        render_text->GetSubstringBoundsForTesting(range);
+        render_text->GetSubstringBounds(range);
     DCHECK_EQ(1u, bounds.size());
     const int mid_y = bounds[0].y() + bounds[0].height() / 2;
 
diff --git a/ui/views/controls/slider.cc b/ui/views/controls/slider.cc
index c52218f..72a09cd 100644
--- a/ui/views/controls/slider.cc
+++ b/ui/views/controls/slider.cc
@@ -87,10 +87,6 @@
   SetValueInternal(value, VALUE_CHANGED_BY_API);
 }
 
-void Slider::SetAccessibleName(const base::string16& name) {
-  accessible_name_ = name;
-}
-
 void Slider::UpdateState(bool control_on) {
   is_active_ = control_on;
   SchedulePaint();
@@ -259,7 +255,6 @@
 
 void Slider::GetAccessibleNodeData(ui::AXNodeData* node_data) {
   node_data->role = ui::AX_ROLE_SLIDER;
-  node_data->SetName(accessible_name_);
   node_data->SetValue(base::UTF8ToUTF16(
       base::StringPrintf("%d%%", static_cast<int>(value_ * 100 + 0.5))));
 }
diff --git a/ui/views/controls/slider.h b/ui/views/controls/slider.h
index db8d7e1e..66121a2 100644
--- a/ui/views/controls/slider.h
+++ b/ui/views/controls/slider.h
@@ -53,8 +53,6 @@
   float value() const { return value_; }
   void SetValue(float value);
 
-  void SetAccessibleName(const base::string16& name);
-
   void set_enable_accessibility_events(bool enabled) {
     accessibility_events_enabled_ = enabled;
   }
@@ -124,7 +122,6 @@
   float keyboard_increment_ = 0.1f;
   float initial_animating_value_ = 0.f;
   bool value_is_valid_ = false;
-  base::string16 accessible_name_;
   bool accessibility_events_enabled_ = true;
 
   // Relative position of the mouse cursor (or the touch point) on the slider's
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
index deaf9cb..958ddef 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
@@ -1758,7 +1758,11 @@
   } else {
     // Another DesktopWindowTreeHostX11 has installed itself as
     // capture. Translate the event's location and dispatch to the other.
-    ConvertEventToDifferentHost(event, g_current_capture);
+    DCHECK_EQ(ui::GetScaleFactorForNativeView(window()),
+              ui::GetScaleFactorForNativeView(g_current_capture->window()));
+    ConvertEventLocationToTargetWindowLocation(
+        g_current_capture->GetLocationOnScreenInPixels(),
+        GetLocationOnScreenInPixels(), event->AsLocatedEvent());
     g_current_capture->SendEventToSink(event);
   }
 }
@@ -1766,7 +1770,11 @@
 void DesktopWindowTreeHostX11::DispatchTouchEvent(ui::TouchEvent* event) {
   if (g_current_capture && g_current_capture != this &&
       event->type() == ui::ET_TOUCH_PRESSED) {
-    ConvertEventToDifferentHost(event, g_current_capture);
+    DCHECK_EQ(ui::GetScaleFactorForNativeView(window()),
+              ui::GetScaleFactorForNativeView(g_current_capture->window()));
+    ConvertEventLocationToTargetWindowLocation(
+        g_current_capture->GetLocationOnScreenInPixels(),
+        GetLocationOnScreenInPixels(), event->AsLocatedEvent());
     g_current_capture->SendEventToSink(event);
   } else {
     SendEventToSink(event);
@@ -1778,20 +1786,6 @@
     SendEventToSink(event);
 }
 
-void DesktopWindowTreeHostX11::ConvertEventToDifferentHost(
-    ui::LocatedEvent* located_event,
-    DesktopWindowTreeHostX11* host) {
-  DCHECK_NE(this, host);
-  DCHECK_EQ(ui::GetScaleFactorForNativeView(window()),
-            ui::GetScaleFactorForNativeView(host->window()));
-  gfx::Vector2d offset =
-      GetLocationOnScreenInPixels() - host->GetLocationOnScreenInPixels();
-  gfx::PointF location_in_pixel_in_host =
-      located_event->location_f() + gfx::Vector2dF(offset);
-  located_event->set_location_f(location_in_pixel_in_host);
-  located_event->set_root_location_f(location_in_pixel_in_host);
-}
-
 void DesktopWindowTreeHostX11::ResetWindowRegion() {
   // If a custom window shape was supplied then apply it.
   if (custom_window_shape_) {
@@ -2092,7 +2086,15 @@
               xev = &last_event;
           }
           ui::MouseEvent mouseev(xev);
-          DispatchMouseEvent(&mouseev);
+          // If after CoalescePendingMotionEvents the type of xev is resolved to
+          // UNKNOWN, don't dispatch the event.
+          // TODO(804418): investigate why ColescePendingMotionEvents can
+          // include mouse wheel events as well. Investigation showed that
+          // events on Linux are checked with cmt-device path, and can include
+          // DT_CMT_SCROLL_ data. See more discussion in
+          // https://crrev.com/c/853953
+          if (mouseev.type() != ui::ET_UNKNOWN)
+            DispatchMouseEvent(&mouseev);
           break;
         }
         case ui::ET_MOUSEWHEEL: {
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
index 674951e..fde8d1d 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.h
@@ -242,11 +242,6 @@
   // Dispatches a key event.
   void DispatchKeyEvent(ui::KeyEvent* event);
 
-  // Updates the location of |located_event| to be in |host|'s coordinate system
-  // so that it can be dispatched to |host|.
-  void ConvertEventToDifferentHost(ui::LocatedEvent* located_event,
-                                   DesktopWindowTreeHostX11* host);
-
   // Resets the window region for the current widget bounds if necessary.
   void ResetWindowRegion();
 
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_config.html b/ui/webui/resources/cr_components/chromeos/network/network_config.html
index 831a7e1..4797bb1 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_config.html
+++ b/ui/webui/resources/cr_components/chromeos/network/network_config.html
@@ -163,7 +163,8 @@
       </div>
     </template>
 
-    <template is="dom-if" if="[[propertiesSent_]]">
+    <template is="dom-if"
+        if="[[connectingIsVisible_(propertiesSent_, error_)]]">
       <div class="property-box">
         <div class="start layout horizontal center">
           <cr-network-icon is-list-item
diff --git a/ui/webui/resources/cr_components/chromeos/network/network_config.js b/ui/webui/resources/cr_components/chromeos/network/network_config.js
index 32371d4..73c46628 100644
--- a/ui/webui/resources/cr_components/chromeos/network/network_config.js
+++ b/ui/webui/resources/cr_components/chromeos/network/network_config.js
@@ -348,6 +348,7 @@
     }
     this.onCertificateListsChanged_();
     this.updateIsConfigured_();
+    this.setShareNetwork_();
     requestAnimationFrame(() => {
       var e = this.$$(
           'network-config-input:not([disabled]),' +
@@ -478,7 +479,7 @@
   setNetworkProperties_: function(properties) {
     this.propertiesReceived_ = true;
     this.networkProperties = properties;
-    this.error_ = properties.ErrorState || '';
+    this.setError_(properties.ErrorState);
 
     // Set the current shareNetwork_ value when porperties are received.
     this.setShareNetwork_();
@@ -542,6 +543,10 @@
           source == CrOnc.Source.DEVICE || source == CrOnc.Source.DEVICE_POLICY;
       return;
     }
+    if (!this.shareIsVisible_()) {
+      this.shareNetwork_ = false;
+      return;
+    }
     if (this.shareAllowEnable) {
       // New insecure WiFi networks are always shared.
       if (this.networkProperties.Type == CrOnc.Type.WI_FI &&
@@ -884,10 +889,7 @@
 
     var requireCerts = (this.showEap_ && this.showEap_.UserCert) ||
         (this.showVpn_ && this.showVpn_.UserCert);
-    if (requireCerts && !this.userCerts_.length)
-      this.error_ = certError;
-    else
-      this.error_ = '';
+    this.setError_(requireCerts && !this.userCerts_.length ? certError : '');
   },
 
   /**
@@ -1018,6 +1020,14 @@
    * @return {boolean}
    * @private
    */
+  connectingIsVisible_: function() {
+    return this.propertiesSent_ && !this.error_;
+  },
+
+  /**
+   * @return {boolean}
+   * @private
+   */
   shareIsEnabled_: function() {
     if (!this.shareAllowEnable || this.getSource_() != CrOnc.Source.NONE)
       return false;
@@ -1179,9 +1189,10 @@
 
   /** @private */
   setPropertiesCallback_: function() {
-    this.error_ = this.getRuntimeError_();
+    this.setError_(this.getRuntimeError_());
     if (this.error_) {
       console.error('setProperties error: ' + this.guid + ': ' + this.error_);
+      this.propertiesSent_ = false;
       return;
     }
     var connectState = this.networkProperties.ConnectionState;
@@ -1199,11 +1210,12 @@
    * @private
    */
   createNetworkCallback_: function(guid) {
-    this.error_ = this.getRuntimeError_();
+    this.setError_(this.getRuntimeError_());
     if (this.error_) {
       console.error(
           'createNetworkError, type: ' + this.networkProperties.Type + ': ' +
           'error: ' + this.error_);
+      this.propertiesSent_ = false;
       return;
     }
     this.startConnect_(guid);
@@ -1216,18 +1228,15 @@
   startConnect_: function(guid) {
     this.networkingPrivate.startConnect(guid, () => {
       var error = this.getRuntimeError_();
-      if (!error || error == 'connected' || error == 'connect-canceled') {
-        this.close_();  // Connect completed or canceled, close the dialog.
+      if (!error || error == 'connected' || error == 'connect-canceled' ||
+          error == 'connecting') {
+        // Connect is in progress, completed or canceled, close the dialog.
+        this.close_();
         return;
       }
-      if (error == 'connecting') {
-        // Keep the dialog open while connecting. TODO(stevenjb): Add a listener
-        // for the network properties and close the dialog if connected or show
-        // an error if not.
-        return;
-      }
-      this.error_ = error;
+      this.setError_(error);
       console.error('Error connecting to network: ' + error);
+      this.propertiesSent_ = false;
     });
   },
 
@@ -1270,6 +1279,18 @@
   },
 
   /**
+   * @param {string|undefined} error
+   * @private
+   */
+  setError_: function(error) {
+    if (!error) {
+      this.error_ = '';
+      return;
+    }
+    this.error_ = error;
+  },
+
+  /**
    * @return {string}
    * @private
    */